WO2001086882A2 - System and method for extending an enterprise network to mobile devices - Google Patents

System and method for extending an enterprise network to mobile devices Download PDF

Info

Publication number
WO2001086882A2
WO2001086882A2 PCT/US2001/014466 US0114466W WO0186882A2 WO 2001086882 A2 WO2001086882 A2 WO 2001086882A2 US 0114466 W US0114466 W US 0114466W WO 0186882 A2 WO0186882 A2 WO 0186882A2
Authority
WO
WIPO (PCT)
Prior art keywords
mobile
data
enteφrise
domain
application
Prior art date
Application number
PCT/US2001/014466
Other languages
French (fr)
Other versions
WO2001086882A3 (en
Inventor
Marc Lurie
Michael T. Loos
Original Assignee
@ Hand Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by @ Hand Corporation filed Critical @ Hand Corporation
Priority to AU2001259486A priority Critical patent/AU2001259486A1/en
Publication of WO2001086882A2 publication Critical patent/WO2001086882A2/en
Publication of WO2001086882A3 publication Critical patent/WO2001086882A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Definitions

  • the present invention relates generally to wireless networking and, more specifically, to a system and method for extending an enterprise network to mobile devices.
  • Wireless web solutions often utilize a thin-client, browser-based interface that has, for the most part, proven unworkable.
  • the wireless web model is highly connection-dependent.
  • the Attorney Docket No. 26625.706 Patent Application connection between the thin-client and the network server should remain in place the entire time an application is in use by the mobile device. It is very difficult for mobile clients to remain connected or to guarantee connectivity for extended amounts of time. Mobile devices may only connect occasionally, and when they do connect, the connection may be for a very limited amount of time.
  • existing web-based technologies based on persistent network connections provide a sub- optimal solution for extending an enterprise network to mobile devices.
  • the data synchronization (“data synch”) model may improve upon the wireless web-based model with respect to the non-persistent nature of mobile device connectivity.
  • data synch methods often lack flexibility and usually offer very little, if any, application management capability.
  • a typical data synch method shuttles information between handheld computers on the front-end and a corporate database on the back-end.
  • the shuttling conventionally occurs through hard-wired data pipes referred to as data conduits, adapters or plug-ins. These conduits are difficult to create and manage because they operate in and link two very distinct environments.
  • the first environment surrounds the mobile device and potentially includes multiple operating systems, memory footprints, and file system architectures.
  • the second environment surrounds the enterprise back-end data sources. Each environment typically has different interface methodologies and connectivity capabilities.
  • a particular embodiment of a method incorporating teachings of the present invention includes creating a data model, creating a software application that uses the data model, and deploying the software application and at least a portion of the data model to a plurality of mobile computing devices.
  • the data model is associated with at least one of the plurality of back-end applications.
  • the method includes using a mobile computing system to extend use of the enterprise computing system to a plurality of mobile computing devices, and creating a mobile data model, where the mobile data model is associated with enterprise data to be shared between at least one of the plurality of back- end applications and at least one of the plurality of mobile computing devices.
  • a method incorporating teachings of the present invention may include creating a mobile data model, that may be associated with data from an enterprise software system, and connecting the enterprise software system with a mobile application system.
  • the mobile application system can include an integration module responsive to the enterprise software system and a connection module responsive to a plurality of mobile computing devices.
  • a method may include establishing a communication link between a mobile domain and a mobile computing device; communicating collected information to the mobile computing device via the communication link; disconnecting Attorney Docket No. 26625.706 Patent Apphcation from the communication link; establishing a second communication link between the mobile domain and the mobile computing device; receiving at the mobile domain transaction information indicative of a transaction completed by the mobile computing device; accessing a data model describing locations of enterprise objects within the enterprise data source; and routing information flow from the integration engine to the data source in accordance with the data model.
  • the mobile domain comprises an integration engine adapted to direct enterprise information collected from an enterprise data source.
  • a mobile computing system may include an integration module responsive to an enterprise system having a plurality of back-end software applications, and a connection module responsive to a plurality of mobile computing devices, at least one of the plurality of mobile computing devices including a mobile software application referencing the mobile data model.
  • the integration module may have access to a mobile data model that references at least one enterprise object associated with a back-end software application.
  • a system similar to the system described above may include a data model defining an enterprise object; an enterprise data source; a mobile domain comprising an integration engine- adapted to be communicatively coupled to the enterprise data source, and a mobile device comprising memory storing a portion of the data model.
  • the mobile device is configured to communicate with the mobile domain by using the portion of the data model stored in device memory.
  • the integration engine is adapted to read from and write to the enterprise data source by accessing the data model.
  • Figure 1 depicts a block diagram of one embodiment of a system incorporating teachings of the present invention.
  • Figure 2 depicts a general diagram of one embodiment of a mobile domain that incorporates teachings of the present invention.
  • Figure. 3 depicts a general diagram further illustrating certain portions of the embodiment depicted in Figure 1.
  • Figure 4 shows a state transition diagram that illustrates operation and use of the embodiment depicted in Figure 1.
  • Figure 5 is a flow chart that illustrates an embodiment of a software platform distribution method.
  • Figure 6 is a flow chart that illustrates an embodiment of a method of deploying a software application that references a mobile data model.
  • Figure 7 is a flow chart that illustrates an embodiment of a method of receiving, licensing, ⁇ and re-selling a software platform, or creating and selling a bundled package that includes the software platform.
  • Figure 8 is a flow chart that illustrates an embodiment of a method of hosting the software platform.
  • Figure 9 is a flow chart that illustrates an embodiment of a method of distributing and using the software platform.
  • Figure 10 is a flow chart that illustrates an embodiment of an integration method.
  • Figure 11 depicts an example of a graphical user interface for a mobile data modeler that may allow a user to generate a mobile data model that incorporates teachings of the present disclosure.
  • Figure 12 shows a diagram of a mobile data model that incorporates teachings of the present disclosure.
  • Figure 13 shows a diagram of a mobile data model that incorporates teachings of the present disclosure.
  • Figure 14 depicts a relational schema for an enterprise information system that maybe written in Structured Query Language (SQL) Server and may be translatable into a mobile data model that incorporates teachings of the present disclosure.
  • Figure 15 depicts a relational schema similar to that of Figure 14 translated into a mobile data model that incorporates teachings of the present disclosure.
  • SQL Structured Query Language
  • Figure 16 depicts a pruned mobile data model that incorporates teachings of the present disclosure.
  • system 100 includes enterprise systems 106, 108, a mobile application server network 110, and a plurality of mobile computing devices, such as devices 102 and 104.
  • Devices 102, 104 may include, for example, personal digital assistants ("PDA's"), wireless telephones, and wireless thin-client terminals.
  • PDA's personal digital assistants
  • the enterprise systems include, for example, personal digital assistants ("PDA's"), wireless telephones, and wireless thin-client terminals.
  • 106, 108 may include, for example, a plurality of different back-end end application systems, which may include accounting systems, transaction systems, databases, enterprise resource programs and other enterprise computing infrastructure.
  • the mobile application server network 110 of Figure 1 may include an integration server 116, primary server 114, data management server 118, and connection server 112.
  • a server may include, for example, computer operations running in separate computing platforms or the same computing platforms. The computer operations may be written to be object-oriented and may make use of different languages including, for example, third generation languages like Java, C++, and PL/S.
  • data management server 118 may execute code that allows it to couple to a data store 120.
  • a domain data store 120 may contain a subset of enterprise information stored, for example, on a single hard drive, an array of disks, a storage area network, or a combination thereof.
  • integration server 116 may be responsive to and in communication with the enterprise systems 106, 108.
  • the integration server 116 may also handle transaction data and information flow in communication with the enterprise systems 106, 108.
  • Connection server 112 may be communicatively coupled to the mobile computing devices 102, 104 and may be capable of deploying mobile applications and a common mobile data model to the Attorney Docket No. 26625.706 Patent Application mobile computing devices 102, 104.
  • the connection server 112 may receive stored transactions from the mobile computing devices 102, 104, where such stored transactions were created while the mobile computing devices 102, 104 were detached from the connection server 112.
  • Data management server 118 of Figure 1 may be coupled via communication links to both connection server 112 and integration server 116.
  • Primary server 114 may be coupled to connection server 112, integration server 116, and data management server 118.
  • system 100 allows back-end end applications within the enterprise systems 106, 108, to be extended to a plurality of different mobile computing devices 102, 104, via a mobile application server 110.
  • the mobile application server 110 preferably allows the mobile computing devices 102, 104, to operate on a stand-alone basis.
  • mobile devices 102, 104 may include selected applications and data to be able to perform stand alone applications while such devices are not connected with server 112.
  • the mobile computing devices 102, 104 allow mobile workforce users to have further flexibility and to perform useful functions without being tethered via inconsistent and unreliable connections to the back-end server or the back-end enterprise system 106, 108.
  • Mobile domain 200 includes interfaces to the enterprise systems 106, 108, to the mobile users and devices 102, 104, to the global application servers 110, and domain data store 120, all as illustrated in connection with system 100 of Figure 1.
  • the mobile domain 200 may allow developers 202 to build applications, data models, and integration components 210 using application server 110.
  • a data model may be embodied by computer operations and may identify Attorney Docket No. 26625.706 Patent Application data objects or enterprise objects that are used in business or other contexts and defines the relationships among these objects.
  • the mobile application server 110 via the mobile domain 200, may then colonize and deploy applications 204 to the mobile users 102, 104.
  • data from the mobile devices 102, 104 may be communicated at 206 and then stored in domain data store 120. Data from the data store
  • 120 as part of a transaction, may be packaged and then delivered via integration components 208 to the applicable enterprise system and back-end application 106, 108.
  • developers 202 may possess the ability to create mobile computing applications with data models and integration components that allow extension of enterprise system software to a variety of mobile devices with ease and flexibility.
  • mobile application server 110 and data store 120 various transactions and accompanying data from the mobile computing devices 102, 104 may be managed and appropriately interconnected with the back-end enterprise systems 106, 108. Such operations may occur despite a lack of a persistent wireless connection between mobile computing devices 102, 104 and mobile apphcation server 110 through updating events between mobile application server 110 and mobile computing devices 102,
  • Such updating events may comprise, for example, mobile application server establishing a wireless connection, and then transferring data 206 between a mobile data store and domain data store 120.
  • Domain data store 120 may also update with back end applications on enterprise systems 106, 108, and the domain data store updates may occur at various times and, as such, avoid a technical difficulty associated with conventional data synch systems.
  • Convention data synch systems often see a mass of users synching at or around one time (e.g., 8:00 am) at the beginning of Attorney Docket No. 26625.706 Patent Application a work day and again at or around another time (e.g., 5:00 pm) at the end of the work day.
  • This twice a day peaking which can overtask enterprise backends, may be avoided by.allowing domain data store 120 to update throughout the day and at least partially self-support the updating of mobile computing devices 102, 104.
  • the architecture of mobile domain 200 may allow users to wirelessly access and modify data from back-end applications without a persistent wireless connection.
  • System 300 is a more detailed illustration of a portion of system 100 depicted in Figure 1.
  • System 300 includes hand held clients, such as mobile computing devices 102, 104, enterprise data stores, and may allow for application developers 202.
  • the system 300 also includes connection server 112, data store server 118, integration server 116, and primary server 114.
  • Application developers 202 may interface with the primary server 114 via the mobile directory 318, the mobile component layer 320, and the foundation layer 312.
  • the software components 320 may be stored temporarily in component repository 322.
  • Application developers 202 may create applications that interact with a mobile data model referencing enterprise data. These applications may be distributed within the system 300.
  • applications designed for hand held clients may be distributed to the foundation layer 306 through a messenger layer 304 and then deployed to hand held clients 102, 104.
  • the deployment may occur across a persistent or a non-persistent wireless link employing various types of wireless protocols (e.g., SMS, cellular, etc.).
  • the mobile data model may be accessed so as to allow applications effective access to enterprise data stores 106, 108.
  • Transaction data from the hand held clients 104, 106 received via the mobile messenger and passed through the foundation layer 306 is synchronized via data synchronization functionality 310 to the foundation layer 306 and data manager 308.
  • Such Attorney Docket No. 26625.706 Patent Application transactions, via integration components 208, are propagated by integration server 116 to the ente ⁇ rise data stores 106, 108.
  • state transition diagram 400 illustrates one embodiment of the operation of system 100, depicted in Figure 1. State transition diagram 400 illustrates exemplary operations that may be performed using the mobile application server within the system 100.
  • An initial step in the mobile application process may be the setup and configuration of a mobile domain, step 402.
  • the mobile domain is preferably a flexible environment, supported by the mobile computing system, which provides the fundamental basis for the entire mobile application process.
  • the mobile domain manages and provides services for various type of system instances that make up the constituent population of the domain.
  • system instances types are users, groups, servers, data stores, and devices.
  • the mobile domain manages and provides services for the various types of software instances that collectively make up the machinery or Attorney Docket No. 26625.706 Patent Application automation of the domain.
  • software instance types are applications, components, and packages.
  • the mobile domain may manage the various classes of information or data instances that collectively make up the content of the domain, as required by applications which have been deployed to the domain. These instances encompass the runtime data of the domain which is accessed and distributed to consumers, persisted in domain data stores, presented to mobile users, and exchanged with ente ⁇ rise systems.
  • Entities of the mobile domain may be managed (either directly or indirectly) using the graphical user-interface provided by the mobile computing system, at 404.
  • the system administrator may add particular entities to the mobile domain, based on the initial requirements of the ente ⁇ rise applications they are attempting to extend. As the mobile domain evolves, the administrator manages the entities by modifying ones that currently exist, adding more, or removing ones that are no longer necessary.
  • consumers may be added and managed.
  • the activities in the mobile domain may be driven by system instances referred to as consumers.
  • a consumer in the mobile domain may be an entity that accepts an assigned application managed by the domain, has components of the application deployed to it, and has its components updated when changes occur.
  • a consumer may be linked to data instances managed by a domain, may receive these instances and may have transactions based on these instances re-distributed as rules in the system dictate.
  • a consumer may access, create, and update data instances managed by the domain, and may have relevant transactions based on these instances re-distributed to other interested consumers in the domain (as rules in the system dictate).
  • a set of consumers may be established such that the set is treated collectively as an individual consumer.
  • Consumers may take many forms. For example, a consumer may be a single user or group of users. A single user may typically be an individual mobile worker that is assigned one or more domain applications in order to perform that individual's required job functions. When the consumer is an individual worker, data instances may be linked to and distributed to the consumer in order to populate the applications that enable that worker's job role.
  • a group of users may be treated collectively as a single consumer, with each user in the group sharing some set of assigned privileges.
  • users may be collected into groups so that they may share domain resources based on real-world affiliations, such as geographic location or job role.
  • Another consumer type may be specific software instances that are not deployed to consumers in the domain, but to other entities of the domain, such as data stores.
  • An example of this type of consumer is an integration component. These components may access, create, and update data instances in the domain directly while interfacing with one or more ente ⁇ rise systems.
  • the consumers of a mobile domain may be managed using the graphical user-interface provided by the mobile computing system.
  • a system administrator may add consumers to the mobile domain.
  • the administrator may manage the consumers by adding more, modifying ones that currently exist, or removmg ones that are no longer necessary.
  • the consumer Before a consumer interacts with the mobile domain, the consumer may be linked, at 408, to applications that they can use on their mobile computing devices, and have those applications deployed to them.
  • Each application may be a software instance that can be created, deployed and updated by developers that interface with the mobile domain.
  • an apphcation may be managed using the graphical user-interface provided by the mobile computing system in the context of managing consumers. This interface may be used to link applications to new consumers and unlink applications from consumers, as required for the consistent operation of the mobile computing system.
  • Patent Apphcation instances that access that information is one or more mobile data models.
  • the classic definition of a data model was that it defined the physical schema or structure of a persistent data store (e.g., relational database).
  • a mobile data model extends this definition in several ways. For example, a mobile data model may define not only a physical view of data, but also simultaneously an object-oriented and logical view. This may provide a preferred access interface for applications.
  • a mobile data model may be decoupled from particular storage, distribution, access mechanism, or platform, allowing its use across a variety of back-end systems and device computing platforms.
  • a mobile data model will preferably describe transactions and define connections between individual data classes, expressing relationship and dependency relationships, to streamline access to data by applications.
  • a mobile data model may also contain embedded distribution attributes, which form the basis for effective dissemination of data instances to interested consumers.
  • a developer may build an initial mobile data model to reflect these requirements.
  • the mobile data model may be built using tools provided with the mobile computing system. As application requirements change, the developer may return to the mobile data model to update it as needed.
  • the developer can build one or more software program components that will operate on the server side of the mobile computing system in order to integrate the mobile computing system with one or more ente ⁇ rise back-end applications, at step 416.
  • These components, or software instances may be built using a variety of programming languages, depending on the systems in question. These components may facilitate the transfer of data to and from ente ⁇ rise systems as application requirements dictate.
  • Each integration component Attorney Docket No. 26625.706 Patent Application may access application programming interfaces (APIs) provided by the mobile computing system in order to access a desired information instances. As application requirements change, the developer may enhance the integration components as needed.
  • APIs application programming interfaces
  • a mobile data model, one or more device software programs, and one or more integration software programs may be introduced or installed, at step 418, into the mobile domain as software instances called components.
  • Individual components may be installed to the domain using tools provided by the mobile computing system, then managed automatically by that system. Once installed to the mobile domain, each component instance may be versioned and stored, available for access by any authorized entity of the domain or service of the computing system. Individual components are not necessarily deployed at the time they are installed to the mobile domain. They may be added to one or more package instances first. Components may be first introduced to the domain through a process referred to as installation. As application requirements change, and components are updated or enhanced, the software instances in the domain which represent the components may be revised as needed.
  • the process of mobile application deployment may begin after components have been installed to the mobile domain. At this time, the components may be combined together into software sets referred to as packages, at 420.
  • Packages may include software instances that are installed to the mobile domain using tools provided by the mobile computing system and managed by the system. Once installed, a package instance may be configured through the addition and modification of sub-instances known as targets. The target may indirectly represent an individual system instance in the mobile domain that will receive components of the package once it has been Attorney Docket No. 26625.706 Patent Application deployed by an application instance. In operation, a component my be added to a package on behalf of the target that will receive it.
  • a package target may be a data store in the mobile domain.
  • a data store target When a data store target is added to a package, it may at that time be linked to a specific version of a mobile data model component instance, which may then be added to the current version of the package instance.
  • the mobile data model component Upon deployment of the package instance, the mobile data model component is deployed to the data store, causing the mobile computing system to create or update physical database tables in the database managed by the data store instance.
  • Another example may include integration components. Individual integration component instances may be added to a package, on behalf of a data store target. These integration components may then be deployed to the data store, to be installed and managed by the mobile computing system.
  • a package target is a device in the mobile domain. Once a device target is added to the package, individual device component instances can be added to the package on behalf of the device target. These device components may then be deployed to the device, to be installed and managed by the mobile computing system. When a package is introduced to the domain, the process is called installation. As application requirements change, components are updated or enhanced, and package targets may need to be updated. The software instance in the domain that represents the package may be revised as needed. In a particular embodiment of a system inco ⁇ orating teachings of the present disclosure, there may be three types of software instances within a mobile domain: components, packages, and Attorney Docket No. 26625.706 Patent Application applications.
  • individual component instances maybe the first to be installed to the mobile domain, then packages may be created, which link together versions of these components. At this point, however, the instances may only capture the intent of a potential deployment. To commit to this intent and activate the various software programs included in a package, a version of that package may be deployed to the mobile domain, and then to consumers within the domain. Consumers, however, may not be linked to the package directly. They may, for example, be linked to an ahas, called an application. This abstraction may insulate the administrator, and the consumers, from the development details of components, packages, and targets, and instead allow a single point of association for a set of business functionality within the mobile domain.
  • the application instance may manage individual deployment instances, each of which encapsulates a particular package version, a set of component versions, and a set of targets, each linked to a particular system instance destination (e.g., device or data store). Consumers may be linked directly to these by association with the application instance.
  • system instance destination e.g., device or data store.
  • Applications may be added to the mobile domain, at 422, using the graphical user-interface provided by the mobile computing system. Consumers may be linked directly to the application instance using this same interface.
  • this functionality may be released to Consumers through the process of deployment, at step 424. It is through deployment that static software instances like package and components actually take on "life" within the context of an application.
  • the Attorney Docket No. 26625.706 Patent Application administrator may create deployment instances that are managed by the application. Each deployment is considered an instantiation of a particular package version. Once the package is selected, the deployment is configured based on the specific targets specified in the package. Each target is linked to a specific system instance, called a destination, within the domain, to which the components of the target will then be deployed. The deployment is scheduled for release, either immediately or sometime in the future.
  • the mobile computing system deploys to the mobile domain, applying components to master instances of data stores and devices, and then to individual consumers linked to the deployment's application instance.
  • the mobile worker interacts with the mobile domain by using one or more applications that are installed on their mobile computing device. These local applications may interface directly with a small portion of the mobile computing system that is also installed on the device.
  • the local mobile computing system may be responsible for managing a subset of the mobile domain which is resident on the device, as well as installing and managing itself and the applications which have been deployed to the user identity assumed by the mobile worker.
  • a mobile worker may download a small software "bootstrap" program from the mobile computing system onto their mobile computing device. This program may be referred to as the colonist.
  • the colonist may be made available to the mobile worker through a variety of means, including website, file server, email, etc...
  • the mobile worker may execute the colonist, which will then ask the worker to identify himself/herself using a set of predefined credentials. These credentials may be determined when the worker is first added to the mobile domain as a User, see step 406. Once the worker has provided a Attorney Docket No. 26625.706 Patent Application proper local login, the colonist may connect to the server-based mobile computing system (using one of a variety of communications media) to authenticate that the proper credentials were indeed provided. If properly authenticated, the colonist may then establish a full connectivity session with the server-based mobile computing system, at step 438. Once the mobile application (and mobile computing system) have been installed locally, at step 438, the mobile worker may periodically synchronize the local domain with the server-based mobile domain.
  • the mobile client may attempt to connect to the server-based mobile computing system (using one of a variety of communications media) and authenticate that the current User has current access privileges. If properly authenticated, the mobile client may estabhsh a full connectivity session with the server-based mobile computing system.
  • a synchronization process may occur, allowing the mobile client to send up any completed transactions that have been queued since the last synchronization session, at 440.
  • These transactions may contain one or more data operations that have previously been applied to the local data store, but need to be communicated to the server-based data store.
  • the transactions may be packed into optimized files (compressed and encrypted) that can be transmitted over a variety of communications media.
  • these transactions may be processed by Attorney Docket No. 26625.706 Patent Application the server-based mobile computing system. In some cases, this step may not be performed, (e.g., if a user elects to skip this step when a mobile device is first being colonized).
  • the mobile client may receive or download updates, at 442, that have been prepared for the user by the server-based mobile computing system since the last synchronization session. In some cases, updates may not be sent until the mobile client has completed communication of its queued transactions.
  • updates may include a variety of changes, including data transactions, application updates, and updates to the local mobile computing system. These updates may be available to the mobile client as size reduced files (compressed and encrypted) that can be transmitted over a variety of communications media. Each of the available update files may first be downloaded to the mobile device, then applied to the local domain.
  • the local mobile client may process them, at 444.
  • These updates may be handled in the following ways, according to their type.
  • Mobile client deployments when received, may be applied directly to the local mobile computing system. If the mobile device is currently being colonized, the update will likely contain an entire new installation of the local mobile computing services. If a mobile client deployment is received during normal synchronization, the updates may be installed to improve or enhance the core services provided by the local mobile computing system.
  • Application deployments when received, may be applied to local device applications that the mobile worker is using. If the mobile device is currently being colonized, the update will likely contain an entire new installation of one or more application components. If an application Attorney Docket No 26625.706 Patent Application deployment is received during normal synchronization, updated components may be installed to improve or enhance the user-interface or business automation presented to the mobile worker.
  • Data store deployments when received, may be applied to one or more of the data stores in the local domain. If the mobile device is currently being colomzed, the update will likely contain an entirely new mobile data model that is used to build a new local database. If a data store deployment is received dunng normal synchronization, an updated data model may be used to alter the structure of the local database (as required). Data transactions, when received, may contain data operations (inserts, updates, deletes) that need to be applied to one or more of the local data stores.
  • the mobile worker may interact with the user-interface and functionality presented by the device program components.
  • the device software programs may access various services from the mobile client, including accessing, creating, and updating data from the local domain, and connecting with the server-based mobile computing system.
  • the underlying device software components may access data from the local domain data stores using services presented by the local mobile client.
  • the mobile client may track these changes as transactions, at 448. Upon the next synchronization session, these transactions may be sent to the server, at 440.
  • pending transactions may be sent or uploaded from the local mobile computing system to the server-based mobile computing Attorney Docket No. 26625.706 Patent Application system, at 426. These transactions are received by the server-based system and prepared for processing. Transactions can also be received by the mobile computing system during deployments.
  • data transactions when received, may contain data operations (inserts, updates, deletes) that need to be applied to one or more of the data stores contained within the server-based mobile domain, at step 428. These transactions maybe applied directly to the data store, then sent to the rules-processing engine to be distributed to consumers in the mobile domain that might be "interested", at 430.
  • Data store deployments when received, may be applied to one or more of the data stores in the server-based mobile domain. If the data store is uninitialized, the deployment will likely contain an entirely new mobile data model that is used to build a new server-based database. If a data store deployment is received for an already-deployed data store, the updated data model may be used to alter the structure of the database (as required).
  • Application deployments when received, may be applied to the destination instances specified by the Deployment configuration.
  • Deployments to device targets will often contain device-based software components that will ultimately be prepared for download by individual mobile clients.
  • Application deployments to data store targets will often contain integration software components that will be installed on the server in order to link to ente ⁇ rise application systems.
  • step 430 once data transactions are applied to server-based data stores, they may be additionally processed by the server-based mobile computing system in order to determine if any consumers within the mobile domain might also need to be informed about the data operations contained therein.
  • This processing is handled by a special rules engine within the server-based Attorney Docket No. 26625.706 Patent Application mobile computing system.
  • This rules engine may be driven by special conditional logic statements developed by the administrator of the system.
  • data transactions After data transactions are applied to server-based data stores, they may also be offered to integration components that are currently deployed so that the transactions can also be integrated into one or more ente ⁇ rise back-end apphcation systems (as dictated by requirements of the mobile application), at step 432.
  • integration components may also receive updates from these systems which are then applied to the mobile domain, at step 434.
  • changes that have been applied to the mobile domain that also affect one or more consumers may be packaged into updates which are then pending for download by mobile clients, at 436.
  • a flow chart 500 of a method of distributing a software platform to multiple ente ⁇ rises is illustrated.
  • the software platform is distributed to a first ente ⁇ rise.
  • the software platform is distributed to a second ente ⁇ rise, at 504. Payment is received for the Attorney Docket No. 26625.706 Patent Application software platform from the first ente ⁇ rise, at 506, and from the second ente ⁇ rise, at 508.
  • the software platform is integrated to backend systems of the first ente ⁇ rise and payment is received for such integration, at 510.
  • the software platform is integrated to backend systems at the second ente ⁇ rise and payment is received for integration from the second ente ⁇ rise at 512.
  • the software platform is then used at the ente ⁇ rises to create a mobile data model, at 514, and to build software applications that reference the mobile data model, at 516. While the illustrative method described with respect to Figure 5 describes two ente ⁇ rises, it should be understood that the software platform may be distributed, integrated, and used by many ente ⁇ rises.
  • a method 600 of creating and deployment software applications that reference a mobile data model is illustrated.
  • a first software application that references a mobile data model is created, at 602.
  • a second software application that references the mobile data model is created, at 604.
  • the first software application is deployed to a plurality of mobile computing devices, at 606, and the second software application is deployed to a mobile application server, at 608.
  • Data is asynchronously transferred between the first software apphcation and the second software application, at 610.
  • transaction data from a mobile computer devices may be sent to the mobile application server, or data from an ente ⁇ rise backend application may be delivered to a mobile computing device for use by a mobile worker.
  • Data is transferred between the mobile application server and a backend ente ⁇ rise system, at 612.
  • an illustrative method 700 of reselling a software platform is disclosed.
  • a provider of a software platform is identified.
  • the software platform includes data modeling code to create a mobile data model and mobility deployment code.
  • the software platform Attorney Docket No. 26625.706 Patent Application is received, at 704, and is licensed from the software provider, at 706.
  • the software platform is distributed, at 708, and then used, at 710. Copies of the software platform may be made, at 712.
  • the software platform may be bundled with other software to create a bundled package, at 714.
  • the bundled package is distributed at 716.
  • Monetary value is received for distributing the software platform or for the bundled package, at 718.
  • a method of hosting 800 includes the step of receiving a software platform, at 802.
  • the software platform includes data modeling code and mobility deployment code.
  • the software platform is hosted at 804.
  • hosting involves loading the software platform onto a server that is connected with a computer network, such as the internet or an intranet, so that multiple users may access the software platform.
  • Hosting may also include hosting services that accompany the hosting process.
  • Payment, or other type of monetary value, for hosting the software platform is received at 806.
  • the ente ⁇ rise software system may be any of the various back-end types of software and accompanying computing hardware used by ente ⁇ rises.
  • the software platform in this particular embodiment includes a software tool, an integration module, and a connection module.
  • the software tool is for creating a mobile data model associated with data at the ente ⁇ rise software system.
  • the integration module is responsive to the ente ⁇ rise software system.
  • the integration module also has access to the mobile data model.
  • the connection module is responsive to mobile computer devices.
  • the software platform maybe used to create mobile software applications for the Attorney Docket No. 26625.706 Patent Application mobile computer devices, at 906. Also, the mobile applications may be deployed to one or more mobile computer devices, at 908.
  • a first computing system is integrated into a first ente ⁇ rise network, at 1002.
  • the first computing system includes an integration unit and a connection unit.
  • the integration unit is to access at least one back-end application of the first ente ⁇ rise network and to access a data model that references at least on back-end ente ⁇ rise object.
  • the connection unit is responsive to mobile computing devices. At least one of the mobile computing devices has access to the data model.
  • a second computing system is integrated into a second ente ⁇ rise network, at 1006. Integration services may also be provided in connection with integrating the first computing system or the second computing system, at 1008. Payment, or other value, is received for providing the integration, or the integration services, at 1010. Integration of the first and second computing systems allows the ente ⁇ rise network applications and object to be modeled and then used by mobile computing devices. In this manner, mobile workers can use mobile computing devices to interact with ente ⁇ rise back-end systems.
  • a system inco ⁇ orating teachings of the present disclosure may extend an ente ⁇ rise information system out to a mobile workforce and may involve the steps of building a mobile data model, writing an integration component, and writing a mobile application.
  • the system may shepherd data from the ente ⁇ rise information system out to the mobile workforce where it can be used in mission critical operations and then shepherd data back to the ente ⁇ rise.
  • a typical ente ⁇ rise information system may, for example, have diverse aggregations of hardware, software, and operating systems. Such a system may span multiple platforms, be purchased from different vendors, display dates of manufacture from different technology eras, and may be running a disparate collection of unique proprietary systems.
  • handheld devices may include laptops, palm sized computing platforms, scanning guns, and others. Each of the devices may have different screen sizes, processor types, and operating systems.
  • a mobile domain system may also include a mobile data modeler, which could be a software engine or collection of code, that enables development of a mobile data model.
  • the developed mobile data model may represent a subset of ente ⁇ rise information and may be used throughout the mobile domain system.
  • a user may build a mobile data model, write an integration component, and write a mobile application.
  • the modeling process may involve determining which subset of ente ⁇ rise data needs to be extracted or distributed so each mobile user may conduct their own desired tasks.
  • Classes may be added to the model to represent real world entities contained in the back end system. Classes may include, for example,: Customer, Order, Item, and Delivery. Fields may then be added to each class to describe attributes of individual class instances or records.
  • Example fields may include: FirstName, OrderNumber, ItemDescription, and Delivery Address. Attorney Docket No. 26625.706 Patent Application
  • Connections may then be added between classes to describe relationships between instances of those classes.
  • a mobile data model may be made available to an administrator, which may be an individual, a collection of individuals, a software engine, or collection of code.
  • the administrator may: (1) use the model to create a component, (2) add that component to a package, (3) add that package to an application, and (4) deploy that application to a particular user or many users.
  • a mobile user synchronizes and colonizes a hand-held device, at least a portion of the mobile data model maybe instantiated on the device.
  • a unifying understanding of data may exist throughout the mobile domain solution.
  • data e.g., schema or XML-like treatment
  • the new devices may be instantiated using the same mobile data model thereby addressing the problem of handheld product evaluation.
  • the mobile data model may also wrap physical data stores with a logical interface.
  • This logical interface may allow programmers easy access to data in a physical data store and maybe modifiable.
  • a mobile data modeler may be a software tool that allows a user to create, edit, validate, print, and save a mobile data model.
  • a data modeler may present a graphical user interface (GUI) like GUI 1102 depicted in Figure 11 that displays detailed information about a mobile data model as the data model progresses through development.
  • GUI graphical user interface
  • a first pane 1104 of GUI 1102 may contain information about classes, keys, fields and connections Attorney Docket No. 26625.706 Patent Application presented in a simple linear list of textual entries.
  • a second pane 1106 may provide a workspace where a user may begin to define the data model by placing classes, adding fields and connections.
  • GUI 1102 may also allow a user to switch between the physical and logical views of the data model.
  • a user may decide what real world entity or information to bring from a legacy system into the mobile domain. For example, if a mobile worker happens to be a forklift operator or truck driver, the worker may need to know customer order information stored in an ente ⁇ rise back-end application so that deliveries can be made. The worker may need to have access to information about each order placed, including product number and quantity, and the delivery address. In such a situation, a user creating a mobile data model, like mobile data model
  • 1202 of Figure 12 may decide to include customers 1204, items 1206, deliveries 1208, and products 1210 as classes in the mobile data model.
  • a class in a mobile data model may represent some real world object, place, thing, person, or collection and combination thereof. It may be used to create a physical table or group of tables in a data store that will hold physical instances of those objects, places, things, or combinations, in records. Because class names in the data model may be used to instantiate physical tables in a data store, a developer should consider naming limitations of the particular database management system (DBMS). For example, the following tables describe some common naming limitations.
  • DBMS database management system
  • a field may be an attribute of a class 1306 that describes one characteristic of the real world object that the class represents. For example, if the class is Customer, a field could be Name.
  • a physical view may give the developer a clear look at the physical properties of the model. It may also provide the developer with an indirect view of the physical data store, because the physical view may instantiate the data store.
  • a physical model may consist of Classes 1306, Fields 1304, and Connections 1308.
  • the name of the class shown in the title bar may be the name used when instantiating a table in a data store (e.g., M_DEL1N). Left of the name may be a distribution property icon 1310, which may indicate how and to whom information should be distributed. Below the title bar in the body of the class may be a list of field names, their types, and icons 1312 that indicate the role this field may play in the table. For example, in Figure 13, a primary key 1314, of which there may be only one per table, may uniquely identify each row in a table instantiated from mobile data model 1302. Similarly, foreign key 1316 may provide an indication of a field's value and type.
  • classes may represent the real world entities in an ente ⁇ rise system like: Delivery, Customer, Items, and Products. Taken separately each class may instantiate a table that will hold instances of this class. The fields may describe attributes of these instances. For example, the table instantiated from a Customer class may hold Customer instances or records. One such record might have a value for its NAME field of "ABC Hardware”. An instance of a Products class might have a value for its DESCRIPTION field of "Big Hammer”. Attorney Docket No. 26625.706 Patent Application
  • Each instance may relate to one or more instances in another table.
  • a. Delivery instance will likely relate to a Customer instance.
  • a physical relationship between two tables may allow the two tables to be joined or to combine related records from two tables into a new or merged set.
  • Mobile data models may also include connections that may create a physical relationship between instances of classes and may join together the instances to create sets of information for data distribution to the mobile users. Connections may additionally provide a simple logical interface to programmers for accessing a data store.
  • connection types may include ownership, lookup, inheritance, and association.
  • Each of these connection types may support data distribution in a different way. For example, ownership may support one to many distribution, lookup may support many to one distribution, inheritance may support one to one distribution, and association may support many to many distribution.
  • a developer will complete when developing a mobile domain solution: (1) create a mobile data model that may allow instantiation of a domain data store and a mobile data store; (2) write an integration component that facilitates communication between a domain data store and a back-end application; and (3) write a client-side or mobile device bound mobile application that support interaction between a mobile data store and a user.
  • the mobile data model may provide a layer of abstraction between a back-end database and a mobile application.
  • an integration component may access a domain data store instantiated from a Attorney Docket No. 26625.706 Patent Application mobile data model or a portion thereof, and a mobile applications may access a mobile data store instantiated from the same mobile data model or a portion thereof on an individual hand-held device.
  • a mobile data model may give a developer clear insight into the relationships within a data store. It may also provide an excellent reference for the syntax when writing code that accesses the data store.
  • a developer may use a mobile data modeler to create a new mobile data model from inception.
  • a mobile data modeler will also allow a developer to create a new mobile data model using an existing ente ⁇ rise database to provide the design requirements. Even if a back end database or system is available, a developer may not want to rely on a one-to-one mapping of the database objects when creating a mobile data model.
  • the original design of the ente ⁇ rise system may not include the requirements for a mobile domain solution and/or may include unnecessary information.
  • Mobile Data Model Development Example A developer may study an ente ⁇ rise' s requirements and determine that the following entities need to be modeled in the mobile domain: Deliveries (similar to customer Orders), Items in the Delivery, Product Information about the items, and Customers.
  • the developer may also determine that the ente ⁇ rise information system happens to be written in Structured Query Language (SQL) Server and has a relational schema similar to schema 1402 of Figure 14.
  • the developer may elect to use a mobile data modeler to derive a mobile data model from the ente ⁇ rise database or information system.
  • the mobile data model in this example may be similar to Attorney Docket No. 26625.706 Patent Application mobile data model 1502 of Figure 15.
  • the physical tables from the ente ⁇ rise system have been mapped using a one-to-one correspondence.
  • Each of the physical fields and their data types may now be represented in mobile data model 1502, and each of the physical relationships from the ente ⁇ rise system may now appear in model 1502 as a Lookup connection identified with an "L" (see L 1504).
  • the developer may determine that there is at least one extraneous table. For example, perhaps a mobile workforce does not need to know about purchase orders used to fill inventory and that this class 1506 may be deleted from mobile data model 1502. Similarly, specific mobile workers may not need all the available information. For example, a forklift operator may not need to know when the order was placed.
  • the developer may also notice that information describing a customer is stored using five separate tables: AC_ACCT, PR_PERSON, CI_CONTACTINFO, AD_ADDRESS, ST_STATE.
  • the developer may decide to collect all of that information with an SQL query and place it into one class called Customer. See, for example, mobile data model 1602 and class 1604 entitled M_CUST of Figure 16.
  • the developer may also desire to modify the connection types and the physical names.
  • the developer may elect to rename the classes OR_ORDER, OI_ORDERITEM, PR_PRODUCT to M_DELIV, M TEM, and M_PROD respectively- adding the M to indicate that the data model is a Mobile data model.
  • the developer may add fields and assign data types that are consistent with the various fields in the physical tables.
  • the developer may also delete the classes and connections that Attorney Docket No. 26625.706 Patent Application are not in use and/or incorrect, and may then add connections back having appropriate types.
  • the M_DELIV class of Figure 16 may have an ownership connection 1606 identified with an "O" to the M_ITEM class.
  • the mobile data model may be delivered to a Mobile Domain Administrator, where it may be treated as a component, added to a package, and made available for inclusion into an application. A user may then elect to add it to an application with specific destination properties, and the mobile data model or at least a portion of it may be deployed as part of the package.
  • the mobile users receiving that application may synchronize their hand-held devices and colonize.
  • This act of colonizing on a hand-held device may result in the instantiation on the device of a mobile data store described by the portion of the mobile data model distributed to that handheld device and mobile worker.
  • distinct mobile workers may share a single device and may have individualized access to a given mobile application and underlying mobile data store.
  • an ente ⁇ rise may elect to include new types of mobile employees and new classes might have to be added to the existing model to support these new user types. Because the Attorney Docket No. 26625.706 Patent Application mobile data model can represent the unde ⁇ innings of an unifying schema, the model may be redeployed to all users or just to those new users added to the solution.
  • the developer can build one or more software program components that will operate on the mobile computing devices.
  • These components, or software instances may be built using a variety of programming languages, depending on the device in question. The chief role of these components may be to manage the graphical user-interface that presents data to the device user as well as to implement the business logic required for basic user interaction and automation.
  • Each device component may access application programming interfaces (APIs) provided by the mobile computing system in order to access information instances stored in the mobile domain, as well as to access various low-level services. As application requirements change, the developer may enhance the device components as needed.
  • APIs application programming interfaces

Abstract

An extendible mobile computing system is introduced to extend usage and availability of one or more enterprise application systems to mobile workers using mobile computing devices. A common mobile data model is created that describes the data to be shared between the mobile devices and the enterprise application systems. The mobile computing system is then used to create and support custom software programs for the handheld computing devices which reference the mobile data model. The mobile computing system is also used to create and support custom software programs which control the transfer of data directly with the enterprise application systems, also referencing the mobile data model. The mobile computing system manages, deploys, and services the custom software programs on both the mobile devices and the back-end, asynchronously transferring information between them based on interactions with the mobile users and processing rules described at the middle-tier.

Description

Attorney Docket No. 26625.706 Patent Application
System And Method For Extending An Enterprise Network To Mobile Devices
Priority This application claims priority under 35 U.S.C. § 120 to the provisional application serial number 60/202,351 entitled, "Mobile Data Module Apparatus and Interface System and Method", filed on May 5, 2000.
Field of the Invention The present invention relates generally to wireless networking and, more specifically, to a system and method for extending an enterprise network to mobile devices.
Background of the Invention Advances in mobile device technology and connectivity protocols provide enterprises with an opportunity to shift automated business processes to a mobile workforce. Unfortunately, the currently available techniques for accomplishing this objective are inflexible and overly reliant on persistent connectivity.
Conventional options, such as wireless web-based connectivity, data synchronization technology, and in-house developed solutions, have substantial disadvantages. Wireless web solutions often utilize a thin-client, browser-based interface that has, for the most part, proven unworkable. The wireless web model is highly connection-dependent. To work effectively, the Attorney Docket No. 26625.706 Patent Application connection between the thin-client and the network server should remain in place the entire time an application is in use by the mobile device. It is very difficult for mobile clients to remain connected or to guarantee connectivity for extended amounts of time. Mobile devices may only connect occasionally, and when they do connect, the connection may be for a very limited amount of time. As a result, existing web-based technologies based on persistent network connections provide a sub- optimal solution for extending an enterprise network to mobile devices.
The data synchronization ("data synch") model may improve upon the wireless web-based model with respect to the non-persistent nature of mobile device connectivity. However, data synch methods often lack flexibility and usually offer very little, if any, application management capability. A typical data synch method shuttles information between handheld computers on the front-end and a corporate database on the back-end. The shuttling conventionally occurs through hard-wired data pipes referred to as data conduits, adapters or plug-ins. These conduits are difficult to create and manage because they operate in and link two very distinct environments. The first environment surrounds the mobile device and potentially includes multiple operating systems, memory footprints, and file system architectures. The second environment surrounds the enterprise back-end data sources. Each environment typically has different interface methodologies and connectivity capabilities. The conduits are hard-wired and difficult to change. As such, the entire data synch system may need to be rewritten each time new enterprise back-ends are brought on-line or members of the mobile work force choose to move to more powerful mobile devices. As such, many organizations find conventional data-synch solutions to be too inflexible to be practical. Attorney Docket No.26625.706 Patent Application
A third conventional option, in-house development, also faces the technical disadvantage of inflexibility. The development of such systems often requires excessive amounts of in-house, custom developed software and hardware. As a result, system development projects consume considerable amounts of time, money and manpower. While these conventional systems may be impressive in their scope and level of integration, modifying their functionality can require rewriting entire blocks of code. And, if the original programmers are not available, the schedule for modifying custom code can be significantly lengthened as new programmers "back-out" the processes and flows of the original code.
Accordingly, there is a need for improved methods to support enterprises in their efforts to extend enterprise networks to mobile devices.
Attorney Docket No. 26625.706 Patent Application
Summary of the Invention
In accordance with the teachings of the present invention, a system and method for extending an enterprise network to mobile devices is provided. A particular embodiment of a method incorporating teachings of the present invention includes creating a data model, creating a software application that uses the data model, and deploying the software application and at least a portion of the data model to a plurality of mobile computing devices. The data model is associated with at least one of the plurality of back-end applications. In accordance with a further embodiment, the method includes using a mobile computing system to extend use of the enterprise computing system to a plurality of mobile computing devices, and creating a mobile data model, where the mobile data model is associated with enterprise data to be shared between at least one of the plurality of back- end applications and at least one of the plurality of mobile computing devices.
In accordance with a further embodiment, a method incorporating teachings of the present invention may include creating a mobile data model, that may be associated with data from an enterprise software system, and connecting the enterprise software system with a mobile application system. In some embodiments, the mobile application system can include an integration module responsive to the enterprise software system and a connection module responsive to a plurality of mobile computing devices.
In accordance with a further embodiment, a method may include establishing a communication link between a mobile domain and a mobile computing device; communicating collected information to the mobile computing device via the communication link; disconnecting Attorney Docket No. 26625.706 Patent Apphcation from the communication link; establishing a second communication link between the mobile domain and the mobile computing device; receiving at the mobile domain transaction information indicative of a transaction completed by the mobile computing device; accessing a data model describing locations of enterprise objects within the enterprise data source; and routing information flow from the integration engine to the data source in accordance with the data model. The mobile domain comprises an integration engine adapted to direct enterprise information collected from an enterprise data source.
In accordance with a particular embodiment, a mobile computing system incorporating teachings of the present invention may include an integration module responsive to an enterprise system having a plurality of back-end software applications, and a connection module responsive to a plurality of mobile computing devices, at least one of the plurality of mobile computing devices including a mobile software application referencing the mobile data model. The integration module may have access to a mobile data model that references at least one enterprise object associated with a back-end software application. In accordance with a further embodiment, a system similar to the system described above may include a data model defining an enterprise object; an enterprise data source; a mobile domain comprising an integration engine- adapted to be communicatively coupled to the enterprise data source, and a mobile device comprising memory storing a portion of the data model. The mobile device is configured to communicate with the mobile domain by using the portion of the data model stored in device memory. The integration engine is adapted to read from and write to the enterprise data source by accessing the data model. Attorney Docket No. 26625.706 Patent Application
Brief Description of the Drawings Figure 1 depicts a block diagram of one embodiment of a system incorporating teachings of the present invention.
Figure 2 depicts a general diagram of one embodiment of a mobile domain that incorporates teachings of the present invention.
Figure. 3 depicts a general diagram further illustrating certain portions of the embodiment depicted in Figure 1.
Figure 4 shows a state transition diagram that illustrates operation and use of the embodiment depicted in Figure 1. Figure 5 is a flow chart that illustrates an embodiment of a software platform distribution method.
Figure 6 is a flow chart that illustrates an embodiment of a method of deploying a software application that references a mobile data model.
Figure 7 is a flow chart that illustrates an embodiment of a method of receiving, licensing, ■ and re-selling a software platform, or creating and selling a bundled package that includes the software platform.
Figure 8 is a flow chart that illustrates an embodiment of a method of hosting the software platform.
Figure 9 is a flow chart that illustrates an embodiment of a method of distributing and using the software platform.
Figure 10 is a flow chart that illustrates an embodiment of an integration method. Attorney Docket No. 26625.706 Patent Application
Figure 11 depicts an example of a graphical user interface for a mobile data modeler that may allow a user to generate a mobile data model that incorporates teachings of the present disclosure.
Figure 12 shows a diagram of a mobile data model that incorporates teachings of the present disclosure. Figure 13 shows a diagram of a mobile data model that incorporates teachings of the present disclosure.
Figure 14 depicts a relational schema for an enterprise information system that maybe written in Structured Query Language (SQL) Server and may be translatable into a mobile data model that incorporates teachings of the present disclosure. Figure 15 depicts a relational schema similar to that of Figure 14 translated into a mobile data model that incorporates teachings of the present disclosure.
Figure 16 depicts a pruned mobile data model that incorporates teachings of the present disclosure.
Attorney Docket No. 26625.706 Patent Application
Detailed Description of the Drawings Referring to Figure 1, a system 100 is depicted. As depicted, system 100 includes enterprise systems 106, 108, a mobile application server network 110, and a plurality of mobile computing devices, such as devices 102 and 104. Devices 102, 104 may include, for example, personal digital assistants ("PDA's"), wireless telephones, and wireless thin-client terminals. The enterprise systems
106, 108 may include, for example, a plurality of different back-end end application systems, which may include accounting systems, transaction systems, databases, enterprise resource programs and other enterprise computing infrastructure.
The mobile application server network 110 of Figure 1 may include an integration server 116, primary server 114, data management server 118, and connection server 112. A server may include, for example, computer operations running in separate computing platforms or the same computing platforms. The computer operations may be written to be object-oriented and may make use of different languages including, for example, third generation languages like Java, C++, and PL/S. As shown, data management server 118 may execute code that allows it to couple to a data store 120. As depicted, a domain data store 120 may contain a subset of enterprise information stored, for example, on a single hard drive, an array of disks, a storage area network, or a combination thereof. In operation, integration server 116 may be responsive to and in communication with the enterprise systems 106, 108. The integration server 116 may also handle transaction data and information flow in communication with the enterprise systems 106, 108. Connection server 112 may be communicatively coupled to the mobile computing devices 102, 104 and may be capable of deploying mobile applications and a common mobile data model to the Attorney Docket No. 26625.706 Patent Application mobile computing devices 102, 104. In addition, the connection server 112 may receive stored transactions from the mobile computing devices 102, 104, where such stored transactions were created while the mobile computing devices 102, 104 were detached from the connection server 112. Data management server 118 of Figure 1 may be coupled via communication links to both connection server 112 and integration server 116. Primary server 114 may be coupled to connection server 112, integration server 116, and data management server 118.
In operation, system 100 allows back-end end applications within the enterprise systems 106, 108, to be extended to a plurality of different mobile computing devices 102, 104, via a mobile application server 110. The mobile application server 110 preferably allows the mobile computing devices 102, 104, to operate on a stand-alone basis. For example, mobile devices 102, 104 may include selected applications and data to be able to perform stand alone applications while such devices are not connected with server 112. In this manner, the mobile computing devices 102, 104, allow mobile workforce users to have further flexibility and to perform useful functions without being tethered via inconsistent and unreliable connections to the back-end server or the back-end enterprise system 106, 108.
Referring to Figure 2, one embodiment of a mobile domain 200 incorporating teachings of the present invention is depicted. Mobile domain 200 includes interfaces to the enterprise systems 106, 108, to the mobile users and devices 102, 104, to the global application servers 110, and domain data store 120, all as illustrated in connection with system 100 of Figure 1. The mobile domain 200 may allow developers 202 to build applications, data models, and integration components 210 using application server 110. A data model may be embodied by computer operations and may identify Attorney Docket No. 26625.706 Patent Application data objects or enterprise objects that are used in business or other contexts and defines the relationships among these objects.
The mobile application server 110, via the mobile domain 200, may then colonize and deploy applications 204 to the mobile users 102, 104. In addition, data from the mobile devices 102, 104, may be communicated at 206 and then stored in domain data store 120. Data from the data store
120, as part of a transaction, may be packaged and then delivered via integration components 208 to the applicable enterprise system and back-end application 106, 108.
Within mobile domain 200, developers 202 may possess the ability to create mobile computing applications with data models and integration components that allow extension of enterprise system software to a variety of mobile devices with ease and flexibility. In addition, with mobile application server 110 and data store 120, various transactions and accompanying data from the mobile computing devices 102, 104 may be managed and appropriately interconnected with the back-end enterprise systems 106, 108. Such operations may occur despite a lack of a persistent wireless connection between mobile computing devices 102, 104 and mobile apphcation server 110 through updating events between mobile application server 110 and mobile computing devices 102,
104. Such updating events may comprise, for example, mobile application server establishing a wireless connection, and then transferring data 206 between a mobile data store and domain data store 120. Domain data store 120 may also update with back end applications on enterprise systems 106, 108, and the domain data store updates may occur at various times and, as such, avoid a technical difficulty associated with conventional data synch systems. Convention data synch systems often see a mass of users synching at or around one time (e.g., 8:00 am) at the beginning of Attorney Docket No. 26625.706 Patent Application a work day and again at or around another time (e.g., 5:00 pm) at the end of the work day. This twice a day peaking, which can overtask enterprise backends, may be avoided by.allowing domain data store 120 to update throughout the day and at least partially self-support the updating of mobile computing devices 102, 104. The architecture of mobile domain 200 may allow users to wirelessly access and modify data from back-end applications without a persistent wireless connection.
Referring to Figure 3, a system 300 is depicted. System 300 is a more detailed illustration of a portion of system 100 depicted in Figure 1. System 300 includes hand held clients, such as mobile computing devices 102, 104, enterprise data stores, and may allow for application developers 202. The system 300 also includes connection server 112, data store server 118, integration server 116, and primary server 114. Application developers 202 may interface with the primary server 114 via the mobile directory 318, the mobile component layer 320, and the foundation layer 312. The software components 320 may be stored temporarily in component repository 322. Application developers 202 may create applications that interact with a mobile data model referencing enterprise data. These applications may be distributed within the system 300. For example, in operation, applications designed for hand held clients may be distributed to the foundation layer 306 through a messenger layer 304 and then deployed to hand held clients 102, 104. The deployment may occur across a persistent or a non-persistent wireless link employing various types of wireless protocols (e.g., SMS, cellular, etc.). The mobile data model may be accessed so as to allow applications effective access to enterprise data stores 106, 108. Transaction data from the hand held clients 104, 106 received via the mobile messenger and passed through the foundation layer 306 is synchronized via data synchronization functionality 310 to the foundation layer 306 and data manager 308. Such Attorney Docket No. 26625.706 Patent Application transactions, via integration components 208, are propagated by integration server 116 to the enteφrise data stores 106, 108.
As a further example, core software developed by application developers 202 may be deployed via the foundation layer 306 to the data synchronization functionality, as illustrated by core software deployment action 312. Thus, the detailed implementation illustrated with system 300 describes software layers that may be utilized to extend enteφrise object data and functionality from enteφrise data stores and other enteφrise computing infrastructure for distribution to hand held clients. In addition, the system 300 allows transmission of transactions through a variety of global application servers for improved communications with enteφrise back-end applications. Referring to Figure 4, a state transition diagram 400 is depicted. State transition diagram 400 illustrates one embodiment of the operation of system 100, depicted in Figure 1. State transition diagram 400 illustrates exemplary operations that may be performed using the mobile application server within the system 100.
An initial step in the mobile application process may be the setup and configuration of a mobile domain, step 402. The mobile domain is preferably a flexible environment, supported by the mobile computing system, which provides the fundamental basis for the entire mobile application process.
In operation, the mobile domain manages and provides services for various type of system instances that make up the constituent population of the domain. Examples of system instances types are users, groups, servers, data stores, and devices. The mobile domain manages and provides services for the various types of software instances that collectively make up the machinery or Attorney Docket No. 26625.706 Patent Application automation of the domain. Examples of software instance types are applications, components, and packages.
The mobile domain may manage the various classes of information or data instances that collectively make up the content of the domain, as required by applications which have been deployed to the domain. These instances encompass the runtime data of the domain which is accessed and distributed to consumers, persisted in domain data stores, presented to mobile users, and exchanged with enteφrise systems.
Entities of the mobile domain, whether system, software, or information instances, may be managed (either directly or indirectly) using the graphical user-interface provided by the mobile computing system, at 404. At the beginning of the mobile application process, the system administrator may add particular entities to the mobile domain, based on the initial requirements of the enteφrise applications they are attempting to extend. As the mobile domain evolves, the administrator manages the entities by modifying ones that currently exist, adding more, or removing ones that are no longer necessary. At 406, consumers may be added and managed. In some embodiments, the activities in the mobile domain may be driven by system instances referred to as consumers. A consumer in the mobile domain may be an entity that accepts an assigned application managed by the domain, has components of the application deployed to it, and has its components updated when changes occur.
In operation, a consumer may be linked to data instances managed by a domain, may receive these instances and may have transactions based on these instances re-distributed as rules in the system dictate. Attorney Docket No. 26625.706 Patent Application
Further, a consumer may access, create, and update data instances managed by the domain, and may have relevant transactions based on these instances re-distributed to other interested consumers in the domain (as rules in the system dictate). In some cases, a set of consumers may be established such that the set is treated collectively as an individual consumer. Consumers may take many forms. For example, a consumer may be a single user or group of users. A single user may typically be an individual mobile worker that is assigned one or more domain applications in order to perform that individual's required job functions. When the consumer is an individual worker, data instances may be linked to and distributed to the consumer in order to populate the applications that enable that worker's job role. Similarly, a group of users may be treated collectively as a single consumer, with each user in the group sharing some set of assigned privileges. In practice, users may be collected into groups so that they may share domain resources based on real-world affiliations, such as geographic location or job role.
Another consumer type may be specific software instances that are not deployed to consumers in the domain, but to other entities of the domain, such as data stores. An example of this type of consumer is an integration component. These components may access, create, and update data instances in the domain directly while interfacing with one or more enteφrise systems. Preferably, the consumers of a mobile domain may be managed using the graphical user-interface provided by the mobile computing system. At the beginning of the mobile apphcation process, a system administrator may add consumers to the mobile domain. As the mobile domain Attorney Docket No. 26625.706 Patent Application evolves, the administrator may manage the consumers by adding more, modifying ones that currently exist, or removmg ones that are no longer necessary.
Before a consumer interacts with the mobile domain, the consumer may be linked, at 408, to applications that they can use on their mobile computing devices, and have those applications deployed to them. Each application may be a software instance that can be created, deployed and updated by developers that interface with the mobile domain. Preferably, an apphcation may be managed using the graphical user-interface provided by the mobile computing system in the context of managing consumers. This interface may be used to link applications to new consumers and unlink applications from consumers, as required for the consistent operation of the mobile computing system. Once an application is linked to one or more consumers, changes to that apphcation, including new deployments and updates, can be distributed to the consumer.
In practice, before software instances are designed and developed, operational requirements or guidelines may need to be established. For example, at 410, guidelines may be established that articulate the goals specific to extending the usage and availability of one or more enteφrise application systems. The development of these requirements may be an initial step in the mobile application process. A key advantage of the mobile application process is that it allows developers to focus on implementing these requirements in software form, rather than wasting time on the details of implementing the mechanics of the lower-level mobile computing system. This ease of use may be partially provided by an appropriate mobile data model. A mobile data model may be defined and updated, at step 412. The basis for the management of information instances in the mobile domain, as well as the development of software Attorney Docket No. 26625.706 Patent Apphcation instances that access that information is one or more mobile data models. The classic definition of a data model was that it defined the physical schema or structure of a persistent data store (e.g., relational database). A mobile data model extends this definition in several ways. For example, a mobile data model may define not only a physical view of data, but also simultaneously an object-oriented and logical view. This may provide a preferred access interface for applications. In addition, a mobile data model may be decoupled from particular storage, distribution, access mechanism, or platform, allowing its use across a variety of back-end systems and device computing platforms. A mobile data model will preferably describe transactions and define connections between individual data classes, expressing relationship and dependency relationships, to streamline access to data by applications. A mobile data model may also contain embedded distribution attributes, which form the basis for effective dissemination of data instances to interested consumers.
Once requirements for the mobile application are defined, a developer may build an initial mobile data model to reflect these requirements. The mobile data model may be built using tools provided with the mobile computing system. As application requirements change, the developer may return to the mobile data model to update it as needed.
Once a mobile data model has been built, the developer can build one or more software program components that will operate on the server side of the mobile computing system in order to integrate the mobile computing system with one or more enteφrise back-end applications, at step 416. These components, or software instances, may be built using a variety of programming languages, depending on the systems in question. These components may facilitate the transfer of data to and from enteφrise systems as application requirements dictate. Each integration component Attorney Docket No. 26625.706 Patent Application may access application programming interfaces (APIs) provided by the mobile computing system in order to access a desired information instances. As application requirements change, the developer may enhance the integration components as needed.
A mobile data model, one or more device software programs, and one or more integration software programs may be introduced or installed, at step 418, into the mobile domain as software instances called components. Individual components may be installed to the domain using tools provided by the mobile computing system, then managed automatically by that system. Once installed to the mobile domain, each component instance may be versioned and stored, available for access by any authorized entity of the domain or service of the computing system. Individual components are not necessarily deployed at the time they are installed to the mobile domain. They may be added to one or more package instances first. Components may be first introduced to the domain through a process referred to as installation. As application requirements change, and components are updated or enhanced, the software instances in the domain which represent the components may be revised as needed. The process of mobile application deployment may begin after components have been installed to the mobile domain. At this time, the components may be combined together into software sets referred to as packages, at 420. Packages may include software instances that are installed to the mobile domain using tools provided by the mobile computing system and managed by the system. Once installed, a package instance may be configured through the addition and modification of sub-instances known as targets. The target may indirectly represent an individual system instance in the mobile domain that will receive components of the package once it has been Attorney Docket No. 26625.706 Patent Application deployed by an application instance. In operation, a component my be added to a package on behalf of the target that will receive it.
For example, a package target may be a data store in the mobile domain. When a data store target is added to a package, it may at that time be linked to a specific version of a mobile data model component instance, which may then be added to the current version of the package instance.
Upon deployment of the package instance, the mobile data model component is deployed to the data store, causing the mobile computing system to create or update physical database tables in the database managed by the data store instance.
Another example may include integration components. Individual integration component instances may be added to a package, on behalf of a data store target. These integration components may then be deployed to the data store, to be installed and managed by the mobile computing system.
Another example of a package target is a device in the mobile domain. Once a device target is added to the package, individual device component instances can be added to the package on behalf of the device target. These device components may then be deployed to the device, to be installed and managed by the mobile computing system. When a package is introduced to the domain, the process is called installation. As application requirements change, components are updated or enhanced, and package targets may need to be updated. The software instance in the domain that represents the package may be revised as needed. In a particular embodiment of a system incoφorating teachings of the present disclosure, there may be three types of software instances within a mobile domain: components, packages, and Attorney Docket No. 26625.706 Patent Application applications. As described in previous steps, individual component instances maybe the first to be installed to the mobile domain, then packages may be created, which link together versions of these components. At this point, however, the instances may only capture the intent of a potential deployment. To commit to this intent and activate the various software programs included in a package, a version of that package may be deployed to the mobile domain, and then to consumers within the domain. Consumers, however, may not be linked to the package directly. They may, for example, be linked to an ahas, called an application. This abstraction may insulate the administrator, and the consumers, from the development details of components, packages, and targets, and instead allow a single point of association for a set of business functionality within the mobile domain. The application instance may manage individual deployment instances, each of which encapsulates a particular package version, a set of component versions, and a set of targets, each linked to a particular system instance destination (e.g., device or data store). Consumers may be linked directly to these by association with the application instance.
Applications may be added to the mobile domain, at 422, using the graphical user-interface provided by the mobile computing system. Consumers may be linked directly to the application instance using this same interface.
As initial or revised versions of application functionality are developed, and components and packages are installed or revised in the mobile domain, this functionality may be released to Consumers through the process of deployment, at step 424. It is through deployment that static software instances like package and components actually take on "life" within the context of an application. Using the graphical user-interface provided by the mobile computing system, the Attorney Docket No. 26625.706 Patent Application administrator may create deployment instances that are managed by the application. Each deployment is considered an instantiation of a particular package version. Once the package is selected, the deployment is configured based on the specific targets specified in the package. Each target is linked to a specific system instance, called a destination, within the domain, to which the components of the target will then be deployed. The deployment is scheduled for release, either immediately or sometime in the future. Upon release, the mobile computing system deploys to the mobile domain, applying components to master instances of data stores and devices, and then to individual consumers linked to the deployment's application instance.
Ultimately, the mobile worker interacts with the mobile domain by using one or more applications that are installed on their mobile computing device. These local applications may interface directly with a small portion of the mobile computing system that is also installed on the device. The local mobile computing system may be responsible for managing a subset of the mobile domain which is resident on the device, as well as installing and managing itself and the applications which have been deployed to the user identity assumed by the mobile worker. In order to interact initially with the mobile domain, a mobile worker may download a small software "bootstrap" program from the mobile computing system onto their mobile computing device. This program may be referred to as the colonist. The colonist may be made available to the mobile worker through a variety of means, including website, file server, email, etc... After the download, the mobile worker may execute the colonist, which will then ask the worker to identify himself/herself using a set of predefined credentials. These credentials may be determined when the worker is first added to the mobile domain as a User, see step 406. Once the worker has provided a Attorney Docket No. 26625.706 Patent Application proper local login, the colonist may connect to the server-based mobile computing system (using one of a variety of communications media) to authenticate that the proper credentials were indeed provided. If properly authenticated, the colonist may then establish a full connectivity session with the server-based mobile computing system, at step 438. Once the mobile application (and mobile computing system) have been installed locally, at step 438, the mobile worker may periodically synchronize the local domain with the server-based mobile domain. This may be accomplished, for example, by directly accessing the user-interface presented by the local computing system (called the mobile client) or by accessing functionality in the device application which in turn accesses functionality in the mobile client via its APIs. At this point, the mobile client may attempt to connect to the server-based mobile computing system (using one of a variety of communications media) and authenticate that the current User has current access privileges. If properly authenticated, the mobile client may estabhsh a full connectivity session with the server-based mobile computing system.
When a connectivity session has been established between a device's mobile client and the server-based mobile computing system, a synchronization process may occur, allowing the mobile client to send up any completed transactions that have been queued since the last synchronization session, at 440. These transactions may contain one or more data operations that have previously been applied to the local data store, but need to be communicated to the server-based data store. The transactions may be packed into optimized files (compressed and encrypted) that can be transmitted over a variety of communications media. Upon reception, these transactions may be processed by Attorney Docket No. 26625.706 Patent Application the server-based mobile computing system. In some cases, this step may not be performed, (e.g., if a user elects to skip this step when a mobile device is first being colonized).
After server-pending transactions have been sent to the server-based mobile domain, the mobile client may receive or download updates, at 442, that have been prepared for the user by the server-based mobile computing system since the last synchronization session. In some cases, updates may not be sent until the mobile client has completed communication of its queued transactions. When sent, updates may include a variety of changes, including data transactions, application updates, and updates to the local mobile computing system. These updates may be available to the mobile client as size reduced files (compressed and encrypted) that can be transmitted over a variety of communications media. Each of the available update files may first be downloaded to the mobile device, then applied to the local domain.
After the updates have been received from the server-based mobile computing system, the local mobile client may process them, at 444. These updates may be handled in the following ways, according to their type. Mobile client deployments, when received, may be applied directly to the local mobile computing system. If the mobile device is currently being colonized, the update will likely contain an entire new installation of the local mobile computing services. If a mobile client deployment is received during normal synchronization, the updates may be installed to improve or enhance the core services provided by the local mobile computing system.
Application deployments, when received, may be applied to local device applications that the mobile worker is using. If the mobile device is currently being colonized, the update will likely contain an entire new installation of one or more application components. If an application Attorney Docket No 26625.706 Patent Application deployment is received during normal synchronization, updated components may be installed to improve or enhance the user-interface or business automation presented to the mobile worker.
Data store deployments, when received, may be applied to one or more of the data stores in the local domain. If the mobile device is currently being colomzed, the update will likely contain an entirely new mobile data model that is used to build a new local database. If a data store deployment is received dunng normal synchronization, an updated data model may be used to alter the structure of the local database (as required). Data transactions, when received, may contain data operations (inserts, updates, deletes) that need to be applied to one or more of the local data stores.
Once the mobile application (and mobile computing system) has been installed locally, the mobile worker may interact with the user-interface and functionality presented by the device program components. To adequately present the proper experience for the mobile worker, the device software programs may access various services from the mobile client, including accessing, creating, and updating data from the local domain, and connecting with the server-based mobile computing system. As the mobile worker interacts with the local applications, the underlying device software components may access data from the local domain data stores using services presented by the local mobile client. As the device software components create new data instances, update existing instances, or delete unneeded mstances, the mobile client may track these changes as transactions, at 448. Upon the next synchronization session, these transactions may be sent to the server, at 440. Dunng normal synchronization sessions by the mobile client, pending transactions may be sent or uploaded from the local mobile computing system to the server-based mobile computing Attorney Docket No. 26625.706 Patent Application system, at 426. These transactions are received by the server-based system and prepared for processing. Transactions can also be received by the mobile computing system during deployments.
When transactions are received by the server-based mobile computing system, they may be processed according to the following process: data transactions, when received, may contain data operations (inserts, updates, deletes) that need to be applied to one or more of the data stores contained within the server-based mobile domain, at step 428. These transactions maybe applied directly to the data store, then sent to the rules-processing engine to be distributed to consumers in the mobile domain that might be "interested", at 430. Data store deployments, when received, may be applied to one or more of the data stores in the server-based mobile domain. If the data store is uninitialized, the deployment will likely contain an entirely new mobile data model that is used to build a new server-based database. If a data store deployment is received for an already-deployed data store, the updated data model may be used to alter the structure of the database (as required).
Application deployments, when received, may be applied to the destination instances specified by the Deployment configuration. Deployments to device targets will often contain device-based software components that will ultimately be prepared for download by individual mobile clients. Application deployments to data store targets will often contain integration software components that will be installed on the server in order to link to enteφrise application systems.
At step 430, once data transactions are applied to server-based data stores, they may be additionally processed by the server-based mobile computing system in order to determine if any consumers within the mobile domain might also need to be informed about the data operations contained therein. This processing is handled by a special rules engine within the server-based Attorney Docket No. 26625.706 Patent Application mobile computing system. This rules engine may be driven by special conditional logic statements developed by the administrator of the system.
After data transactions are applied to server-based data stores, they may also be offered to integration components that are currently deployed so that the transactions can also be integrated into one or more enteφrise back-end apphcation systems (as dictated by requirements of the mobile application), at step 432.
In some systems, while data transactions are being integrated into one or more enteφrise application systems, integration components may also receive updates from these systems which are then applied to the mobile domain, at step 434. During ongoing processing by the server-based mobile computing system, changes that have been applied to the mobile domain that also affect one or more consumers may be packaged into updates which are then pending for download by mobile clients, at 436.
Special conditional logic statements which drive the rules engine in the server-based mobile computing system may be created by the system administrator using the graphical user-interface provided by the mobile computing system, at step 427. These rules may control how data that is applied to the server-based mobile domain is distributed to other consumers in the domain. Thus, Figure 4 has illustrated the operation and use of a particular embodiment of mobile domain that may be incoφorated into a distributable software platform..
Referring to Figure 5, a flow chart 500 of a method of distributing a software platform to multiple enteφrises is illustrated. At 502, the software platform is distributed to a first enteφrise.
The software platform is distributed to a second enteφrise, at 504. Payment is received for the Attorney Docket No. 26625.706 Patent Application software platform from the first enteφrise, at 506, and from the second enteφrise, at 508. The software platform is integrated to backend systems of the first enteφrise and payment is received for such integration, at 510. Similarly, the software platform is integrated to backend systems at the second enteφrise and payment is received for integration from the second enteφrise at 512. The software platform is then used at the enteφrises to create a mobile data model, at 514, and to build software applications that reference the mobile data model, at 516. While the illustrative method described with respect to Figure 5 describes two enteφrises, it should be understood that the software platform may be distributed, integrated, and used by many enteφrises.
Referring to Figure 6, a method 600 of creating and deployment software applications that reference a mobile data model is illustrated. A first software application that references a mobile data model is created, at 602. A second software application that references the mobile data model is created, at 604. The first software application is deployed to a plurality of mobile computing devices, at 606, and the second software application is deployed to a mobile application server, at 608. Data is asynchronously transferred between the first software apphcation and the second software application, at 610. For example, transaction data from a mobile computer devices may be sent to the mobile application server, or data from an enteφrise backend application may be delivered to a mobile computing device for use by a mobile worker. Data is transferred between the mobile application server and a backend enteφrise system, at 612.
Referring to Figure 7, an illustrative method 700 of reselling a software platform is disclosed. At 702, a provider of a software platform is identified. The software platform includes data modeling code to create a mobile data model and mobility deployment code. The software platform Attorney Docket No. 26625.706 Patent Application is received, at 704, and is licensed from the software provider, at 706. The software platform is distributed, at 708, and then used, at 710. Copies of the software platform may be made, at 712. The software platform may be bundled with other software to create a bundled package, at 714. The bundled package is distributed at 716. Monetary value is received for distributing the software platform or for the bundled package, at 718.
Referring to Figure 8, a method of hosting 800 is disclosed. The method includes the step of receiving a software platform, at 802. The software platform includes data modeling code and mobility deployment code. The software platform is hosted at 804. Typically, hosting involves loading the software platform onto a server that is connected with a computer network, such as the internet or an intranet, so that multiple users may access the software platform. Hosting may also include hosting services that accompany the hosting process. Payment, or other type of monetary value, for hosting the software platform is received at 806.
Referring to Figure 9, an illustrative method of distributing a software platform is disclosed. With this method, a software platform is distributed to an enteφrise having an enteφrise software system, at 902. The enteφrise software system may be any of the various back-end types of software and accompanying computing hardware used by enteφrises. The software platform in this particular embodiment includes a software tool, an integration module, and a connection module. The software tool is for creating a mobile data model associated with data at the enteφrise software system. The integration module is responsive to the enteφrise software system. The integration module also has access to the mobile data model. The connection module is responsive to mobile computer devices. The software platform maybe used to create mobile software applications for the Attorney Docket No. 26625.706 Patent Application mobile computer devices, at 906. Also, the mobile applications may be deployed to one or more mobile computer devices, at 908.
Referring to Figure 10, a particular illustrative example of an integration method is shown. With this method, a first computing system is integrated into a first enteφrise network, at 1002. The first computing system includes an integration unit and a connection unit. The integration unit is to access at least one back-end application of the first enteφrise network and to access a data model that references at least on back-end enteφrise object. The connection unit is responsive to mobile computing devices. At least one of the mobile computing devices has access to the data model. A second computing system is integrated into a second enteφrise network, at 1006. Integration services may also be provided in connection with integrating the first computing system or the second computing system, at 1008. Payment, or other value, is received for providing the integration, or the integration services, at 1010. Integration of the first and second computing systems allows the enteφrise network applications and object to be modeled and then used by mobile computing devices. In this manner, mobile workers can use mobile computing devices to interact with enteφrise back-end systems.
An example of a mobile data model is illustrated below:
A system incoφorating teachings of the present disclosure may extend an enteφrise information system out to a mobile workforce and may involve the steps of building a mobile data model, writing an integration component, and writing a mobile application. When operational, the system may shepherd data from the enteφrise information system out to the mobile workforce where it can be used in mission critical operations and then shepherd data back to the enteφrise. Attorney Docket No. 26625.706 Patent Application
The diversity of systems found at either end of this traversal can make this task difficult to accomplish.
A typical enteφrise information system may, for example, have diverse aggregations of hardware, software, and operating systems. Such a system may span multiple platforms, be purchased from different vendors, display dates of manufacture from different technology eras, and may be running a disparate collection of unique proprietary systems.
At the other end of the data traversal, the mobile workforce may, today, choose from a wide array of inexpensive handheld devices. For example, handheld devices may include laptops, palm sized computing platforms, scanning guns, and others. Each of the devices may have different screen sizes, processor types, and operating systems.
A mobile domain system may also include a mobile data modeler, which could be a software engine or collection of code, that enables development of a mobile data model. In one embodiment, the developed mobile data model may represent a subset of enteφrise information and may be used throughout the mobile domain system. As discussed above, a user may build a mobile data model, write an integration component, and write a mobile application. The modeling process may involve determining which subset of enteφrise data needs to be extracted or distributed so each mobile user may conduct their own desired tasks. Classes may be added to the model to represent real world entities contained in the back end system. Classes may include, for example,: Customer, Order, Item, and Delivery. Fields may then be added to each class to describe attributes of individual class instances or records.
Example fields may include: FirstName, OrderNumber, ItemDescription, and Delivery Address. Attorney Docket No. 26625.706 Patent Application
Connections may then be added between classes to describe relationships between instances of those classes.
Once completed, a mobile data model may be made available to an administrator, which may be an individual, a collection of individuals, a software engine, or collection of code. In operation, the administrator may: (1) use the model to create a component, (2) add that component to a package, (3) add that package to an application, and (4) deploy that application to a particular user or many users. When a mobile user synchronizes and colonizes a hand-held device, at least a portion of the mobile data model maybe instantiated on the device.
After an application is deployed to a mobile workforce and at least a portion of the mobile data model is instantiated on the device, a unifying understanding of data (e.g., schema or XML-like treatment) may exist throughout the mobile domain solution. As old hand-held devices are retired and new ones added, the new devices may be instantiated using the same mobile data model thereby addressing the problem of handheld product evaluation.
In addition to creating a unifying schema, the mobile data model may also wrap physical data stores with a logical interface. This logical interface may allow programmers easy access to data in a physical data store and maybe modifiable.
As discussed above, a mobile data modeler may be a software tool that allows a user to create, edit, validate, print, and save a mobile data model. In one embodiment, a data modeler may present a graphical user interface (GUI) like GUI 1102 depicted in Figure 11 that displays detailed information about a mobile data model as the data model progresses through development. A first pane 1104 of GUI 1102 may contain information about classes, keys, fields and connections Attorney Docket No. 26625.706 Patent Application presented in a simple linear list of textual entries. A second pane 1106 may provide a workspace where a user may begin to define the data model by placing classes, adding fields and connections. Preferably, GUI 1102 may also allow a user to switch between the physical and logical views of the data model. When creating a mobile data model, a user may decide what real world entity or information to bring from a legacy system into the mobile domain. For example, if a mobile worker happens to be a forklift operator or truck driver, the worker may need to know customer order information stored in an enteφrise back-end application so that deliveries can be made. The worker may need to have access to information about each order placed, including product number and quantity, and the delivery address. In such a situation, a user creating a mobile data model, like mobile data model
1202 of Figure 12, may decide to include customers 1204, items 1206, deliveries 1208, and products 1210 as classes in the mobile data model.
A class in a mobile data model may represent some real world object, place, thing, person, or collection and combination thereof. It may be used to create a physical table or group of tables in a data store that will hold physical instances of those objects, places, things, or combinations, in records. Because class names in the data model may be used to instantiate physical tables in a data store, a developer should consider naming limitations of the particular database management system (DBMS). For example, the following tables describe some common naming limitations. Attorney Docket No. 26625.706 Patent Application
Figure imgf000033_0001
Figure imgf000033_0002
After a developer has determined which entities may be required to support the mobile workforce and classes have been added to the modeler, the developer may decide what information is to be included in each class to describe instances (records) of this class. As shown in Figure 13, Attorney Docket No. 26625.706 Patent Application the developer may enter these attributes into a mobile data model 1302, as Fields 1304. A field may be an attribute of a class 1306 that describes one characteristic of the real world object that the class represents. For example, if the class is Customer, a field could be Name.
As mentioned above, there may be at least two views in the mobile data modeler, a physical view and a logical view. The physical view may give the developer a clear look at the physical properties of the model. It may also provide the developer with an indirect view of the physical data store, because the physical view may instantiate the data store. As shown in Figure 13, a physical model may consist of Classes 1306, Fields 1304, and Connections 1308.
The name of the class, shown in the title bar may be the name used when instantiating a table in a data store (e.g., M_DEL1N). Left of the name may be a distribution property icon 1310, which may indicate how and to whom information should be distributed. Below the title bar in the body of the class may be a list of field names, their types, and icons 1312 that indicate the role this field may play in the table. For example, in Figure 13, a primary key 1314, of which there may be only one per table, may uniquely identify each row in a table instantiated from mobile data model 1302. Similarly, foreign key 1316 may provide an indication of a field's value and type.
As discussed above, classes may represent the real world entities in an enteφrise system like: Delivery, Customer, Items, and Products. Taken separately each class may instantiate a table that will hold instances of this class. The fields may describe attributes of these instances. For example, the table instantiated from a Customer class may hold Customer instances or records. One such record might have a value for its NAME field of "ABC Hardware". An instance of a Products class might have a value for its DESCRIPTION field of "Big Hammer". Attorney Docket No. 26625.706 Patent Application
Each instance may relate to one or more instances in another table. For example, a. Delivery instance will likely relate to a Customer instance. A physical relationship between two tables may allow the two tables to be joined or to combine related records from two tables into a new or merged set. Mobile data models may also include connections that may create a physical relationship between instances of classes and may join together the instances to create sets of information for data distribution to the mobile users. Connections may additionally provide a simple logical interface to programmers for accessing a data store.
In some embodiments, there may be at least four types of connections in the modeler that reflect four standard types of physical relationships between tables in a relational DBMS. These connection types may include ownership, lookup, inheritance, and association. Each of these connection types may support data distribution in a different way. For example, ownership may support one to many distribution, lookup may support many to one distribution, inheritance may support one to one distribution, and association may support many to many distribution.
As mentioned above, there may be three phases a developer will complete when developing a mobile domain solution: (1) create a mobile data model that may allow instantiation of a domain data store and a mobile data store; (2) write an integration component that facilitates communication between a domain data store and a back-end application; and (3) write a client-side or mobile device bound mobile application that support interaction between a mobile data store and a user. In effect, the mobile data model may provide a layer of abstraction between a back-end database and a mobile application. As such, an integration component may access a domain data store instantiated from a Attorney Docket No. 26625.706 Patent Application mobile data model or a portion thereof, and a mobile applications may access a mobile data store instantiated from the same mobile data model or a portion thereof on an individual hand-held device.
Once the physical classes, fields, and connections have been added to a model using the Physical View and renamed using the Logical View, a mobile data model may give a developer clear insight into the relationships within a data store. It may also provide an excellent reference for the syntax when writing code that accesses the data store.
As discussed above, a developer may use a mobile data modeler to create a new mobile data model from inception. Preferably, a mobile data modeler will also allow a developer to create a new mobile data model using an existing enteφrise database to provide the design requirements. Even if a back end database or system is available, a developer may not want to rely on a one-to-one mapping of the database objects when creating a mobile data model. The original design of the enteφrise system may not include the requirements for a mobile domain solution and/or may include unnecessary information.
Mobile Data Model Development Example A developer may study an enteφrise' s requirements and determine that the following entities need to be modeled in the mobile domain: Deliveries (similar to customer Orders), Items in the Delivery, Product Information about the items, and Customers. The developer may also determine that the enteφrise information system happens to be written in Structured Query Language (SQL) Server and has a relational schema similar to schema 1402 of Figure 14. The developer may elect to use a mobile data modeler to derive a mobile data model from the enteφrise database or information system. The mobile data model in this example may be similar to Attorney Docket No. 26625.706 Patent Application mobile data model 1502 of Figure 15. In model 1502, the physical tables from the enteφrise system have been mapped using a one-to-one correspondence. Each of the physical fields and their data types may now be represented in mobile data model 1502, and each of the physical relationships from the enteφrise system may now appear in model 1502 as a Lookup connection identified with an "L" (see L 1504).
The developer may determine that there is at least one extraneous table. For example, perhaps a mobile workforce does not need to know about purchase orders used to fill inventory and that this class 1506 may be deleted from mobile data model 1502. Similarly, specific mobile workers may not need all the available information. For example, a forklift operator may not need to know when the order was placed.
The developer may also notice that information describing a customer is stored using five separate tables: AC_ACCT, PR_PERSON, CI_CONTACTINFO, AD_ADDRESS, ST_STATE. The developer may decide to collect all of that information with an SQL query and place it into one class called Customer. See, for example, mobile data model 1602 and class 1604 entitled M_CUST of Figure 16. In addition, the developer may also desire to modify the connection types and the physical names.
As shown in Figure 16, the developer may elect to rename the classes OR_ORDER, OI_ORDERITEM, PR_PRODUCT to M_DELIV, M TEM, and M_PROD respectively- adding the M to indicate that the data model is a Mobile data model. Using both the relational schema and the derived classes, the developer may add fields and assign data types that are consistent with the various fields in the physical tables. The developer may also delete the classes and connections that Attorney Docket No. 26625.706 Patent Application are not in use and/or incorrect, and may then add connections back having appropriate types. For example, the M_DELIV class of Figure 16 may have an ownership connection 1606 identified with an "O" to the M_ITEM class.
As discussed above, the mobile data model may be delivered to a Mobile Domain Administrator, where it may be treated as a component, added to a package, and made available for inclusion into an application. A user may then elect to add it to an application with specific destination properties, and the mobile data model or at least a portion of it may be deployed as part of the package. There may be two general types of applications with which to deploy the package containing the mobile data model or at least a portion of it. One type may hold an integration component and another type may hold a mobile application. Preferably, both types of applications will share at least a portion of the same mobile data model.
Once an application holding a mobile user application is deployed, the mobile users receiving that application may synchronize their hand-held devices and colonize. This act of colonizing on a hand-held device may result in the instantiation on the device of a mobile data store described by the portion of the mobile data model distributed to that handheld device and mobile worker. In preferred embodiments, distinct mobile workers may share a single device and may have individualized access to a given mobile application and underlying mobile data store. Once the first mobile user colonizes, the mobile data model may be said to be in production-time.
As the use of the mobile domain solution matures, modifications to the solution may be warranted. For example, an enteφrise may elect to include new types of mobile employees and new classes might have to be added to the existing model to support these new user types. Because the Attorney Docket No. 26625.706 Patent Application mobile data model can represent the undeφinnings of an unifying schema, the model may be redeployed to all users or just to those new users added to the solution.
Once a mobile data model has been built, the developer can build one or more software program components that will operate on the mobile computing devices. These components, or software instances, may be built using a variety of programming languages, depending on the device in question. The chief role of these components may be to manage the graphical user-interface that presents data to the device user as well as to implement the business logic required for basic user interaction and automation. Each device component may access application programming interfaces (APIs) provided by the mobile computing system in order to access information instances stored in the mobile domain, as well as to access various low-level services. As application requirements change, the developer may enhance the device components as needed.
Although the present invention has been described by way of detailed examples and illustrative embodiments, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and scope of the invention. Accordingly, the invention is not to be limited by the above detailed description, but rather is defined by the appended claims and equivalents thereof, to the maximum extent permissible by law.

Claims

Attorney Docket No. 26625.706 Patent ApplicationClaimsWhat is claimed is:
1. A method for use in connection with an enteφnse computing system, the method comprising"
creating a data model, the data model associated with at least one of a plurality of back-end applications of the enteφnse computing system;
creating a software application that uses the data model; and
deploying at least a portion of the software application and at least a portion of the data model to a mobile computing device.
2. A method for use in connection with an enteφrise computing system having a plurality of back-end applications, the method comprising
using a mobile computing system to extend use of the enteφrise computing system to a plurality of mobile computing devices; and
creating a mobile data model associated with enteφnse data to be shared between at least one of the plurality of back-end applications and at least one of the plurality of mobile computing devices. Attorney Docket No . 26625.706 Patent Application
3. A mobile computing system comprising:
an integration module responsive to an enteφrise system having a back-end software application, the integration module having access to a mobile data model that references at least one enteφrise object associated with the back-end software applications; and
a connection module responsive to a mobile computing device that includes a mobile software application referencing at least a portion of the mobile data model.
4. A method of extending an enteφrise network, the method comprising:
creating a mobile data model, the mobile data model associated with data from an enteφrise software system; and
connecting the enteφrise software system with a mobile application system, the mobile application system including an integration module responsive to the enteφrise software system, the integration module having access to the mobile data model, and the mobile application system including a connection module responsive to a plurality of mobile computing devices.
Attorney Docket No. 26625.706 Patent Application
5. A system comprising:
a data model defining an enteφrise object;
an enteφrise data source;
a mobile domain comprising an integration engine adapted to be communicatively coupled to the enteφrise data source, the integration engine adapted to read from and write to the enteφrise data source by accessing the data model; and
a mobile device comprising memory storing a portion of the data model, the mobile device configured to communicatively couple with the mobile domain by using the portion of the data model stored in the memory.
6. A system to allow extension of an enteφrise network to a mobile device, the system comprising:
a server operable to execute code;
the code operable to create a mobile domain; and
the mobile domain comprising an integration engine adapted to access a data model in order to read from and write to an enteφrise data source, the mobile domain further comprising a connection engine adapted to access the data model in order to communicatively couple with the mobile computing device. Attorney Docket No. 26625.706 Patent Application
7. A method for extending an enteφrise network, the method comprising:
establishing a communication link between a mobile domain and a mobile computing device, the mobile domain comprising an integration engine adapted to direct enteφrise information collected from an enteφrise data source;
communicating collected information to the mobile computing device via the communication link;
disconnecting from the communication link;
establishing a second communication link between the mobile domain and the mobile computing device;
receiving at the mobile domain transaction information indicative of a transaction completed at the mobile computing device;
accessing a data model identifying enteφrise objects within the enteφrise data source; and
routing information flow from the integration engine to the enteφrise data source in response to the data model.
Attorney Docket No. 26625.706 Patent Application
8. A method comprising:
distributing a software platform to a first enteφrise, the software platform for use in connection with an enteφrise computing system having a plurality of backend software applications;
distributing the software platform to a second enteφrise,
wherein the software platform includes a data modeling program allowing creation of a data model associated with at least one of the plurality of backend applications; and
wherein the software platform further includes a deployment feature allowing deployment of at least a portion of the data model to a plurality of mobile computing devices.
9. A system integration method comprising:
integrating a first computing system into a first enteφrise network, the first computing system comprising:
an integration unit operable to access a backend application of the first enteφrise network, the integration engine further operable to access a first data model that references at least one enteφrise object associated with the backend software application; and
a connection unit responsive to a plurality of mobile computing devices, at least one of the plurality of mobile computing devices having access to the first data model; and
integrating a second computing system to a second enteφrise. Attorney Docket No. 26625.706 Patent Application
10. A method of distributing a software platform, the method comprising:
distributing the software platform to an enteφrise having an enteφrise software system, wherein the software platform comprises:
a software tool for creating a mobile data model, the mobile data model associated with data from the enteφrise software system;
an integration module responsive to the enteφrise software system, the integration module having access to the mobile data model; and
a connection module responsive to a plurality of mobile computing devices.
11. A method comprising: distributing to a first enteφrise a software platform, the software platform comprising: data modeling code for creating a data model that models both enteφrise backend application objects; and mobility deployment code for deploying at least a portion of the data model to a mobile computing device; and distributing to a second enteφrise a second version of the software platform. Attorney Docket No. 26625.706 Patent Application
12. A method comprising:
identifying a provider of a software platform; and
receiving the software platform, the software platform comprising: data modeling code for creating a data model that models both enteφrise backend application objects; and mobility deployment code for deploying at least a portion of the data model to a mobile computing device.
13. A method comprising: receiving a software platform, the software platform comprising: data modeling code for creating a data model that models enteφrise backend application objects; and mobility deployment code for deploying at least a portion of the data model to a mobile computing device; and hosting the software platform on a server.
Attorney Docket No. 26625.706 Patent Application
14. A method for use of a software application, the method comprising:
accessing a mobile data model, at least a portion of the mobile data model suitable to be instantiated at a distributed device to create a mobile data store containing enteφrise information on the distributed device;
creating a mobile software application to be executed at the distributed device and to interact with the mobile data store; and
making the mobile software application and at least a portion of the mobile data model available to a consumer.
15. A system for application development in a mobile domain, comprising:
a middle tier server;
a domain data store maintained in the middle tier server, the domain data store representing enteφrise information maintained in an enteφrise back end;
a mobile data model, a portion of the mobile domain suitable to be instantiated at a distributed computing platform to create a mobile data store containing enteφrise information at the distributed computing platform; and
an application development engine operable to generate instructions that can be deployed to the distributed computing platform and that allow the distributed computing platform to access information within the mobile data store. Attorney Docket No. 26625.706 Patent Application
16. A system, comprising: a distributed computing platform operable to communicate with a middle tier server at least partially across a radio frequency link; a memory associated with the distributed computing platform, the memory storing a mobile data store comprising information indicative of information in an enteφrise backend, the mobile data store representing an instantiation of at least a portion of a mobile data model.
17. A method for application deployment, the method comprising: establishing a first communication link with a mobile computing device; communicating a client-side application and a portion of a deployable mobile data model to the mobile computing device; disconnecting the first communication link; establishing a second communication link with the mobile computing device; and receiving transaction data across the second communication link, the transaction data resulting from execution of the client-side application by the mobile computing device at least a portion of the execution occurring after disconnecting the first commumcation link and before establishing the second communication link.
18. A method for application development and deployment, the method comprising: developing a mobile data model; adding at least a portion of the mobile data model to a package; including the package in a mobile user application; and deploying the mobile user application to a distributed computing device. Attorney Docket No. 26625.706 Patent Application
19. A method for extending enteφrise data to a mobile device, the system comprising:
creating a domain data store comprised of data relating to an enteφrise system;
establishing a communication link with a mobile computing device, the mobile computing device including a mobile data store comprised of at least a portion of the data;
receiving transactions from the mobile computing device, the transactions comprising at least partially data operations performed on the mobile data store prior to the communication link being established;
modifying the domain data store to reflect the transactions; and
communicating a portion of the domain data store to the enteφrise system.
20. A method for extending enteφrise data to a mobile device, the system comprising: creating a domain data store comprised of data relating to an enteφrise system; establishing a wireless communication link with a mobile computing device, the mobile computing device including a mobile data store comprised of at least a portion of the data; synchronizing the mobile data store with the domain data store; modifying the domain data store to reflect the synchronization; and communicating a portion of the domain data store to the enteφrise system. Attorney Docket No. 26625.706 Patent Application
21. A method for accessing enteφrise data from a mobile device, comprising:
storing a mobile data store, the mobile data store comprised of at least a portion of data from an enteφrise system;
creating transactions comprising data operations performed on the mobile data store;
establishing a communication link after creating the transactions with a mobile application server, wherein the mobile application server interfaces to a domain data store separate from the enteφrise system; and
transmitting the transactions to the domain data store.
22. A system for extending enteφrise data to a mobile device, the system comprising: a mobile application server operable to interface to an enteφrise system and a mobile computing device; and a domain data store communicatively coupled to the mobile apphcation server, the domain data store operable to store data from the enteφrise system; wherein the mobile application server is operable to: establish a communication link with a mobile computing device; receive transactions from the mobile computing device, the transactions comprising data operations performed on a mobile data store prior to the establishment of a wireless communication link; and modify the domain data store to reflect the transactions; and communicate a portion of the domain data store to the enteφrise system. Attorney Docket No. 26625.706 Patent Application
23. A system for accessing enteφrise data remotely, comprising: a computer readable medium; and application stored on the computer readable medium, the application operable to: store a mobile data store, the mobile data store comprised of at least a portion of data from an enteφrise system; create transactions comprising data operations performed on the mobile data store; establish a communication link after creating the transactions with a mobile application server, wherein the mobile application server interfaces to a domain data store separate from the enteφrise system; and transmit the transactions to the domain data store.
24. A system for accessing enteφrise data remotely, comprising: a mobile computing device; and a colonist stored on the mobile computing device; wherein the colonist is operable to: establish a communication link with an application server having a domain data store; receive an application, the application executable to form a mobile data store, the mobile data store comprised of at least a portion of data from a domain data store, the domain data store separate from an enteφrise system. Attorney Docket No. 26625.706 Patent Application
25. A system for extending enteφrise data to a mobile device, the system comprising: a computer readable medium; and a mobile application server stored on the computer readable medium, the mobile application server operable to operable to interface to an enteφrise system, a domain data store, and a mobile computing device; wherein the mobile application server is further operable to: establish a communication link with a mobile computing device; receive transactions from the mobile computing device, the transactions comprising data operations performed on a mobile data store prior to the establishment of a wireless communication link; and modify the domain data store to reflect the transactions; and communicate a portion of the domain data store to the enteφrise system.
Attorney Docket No . 2662 .706 Patent Application
26. A system for extending enteφrise data to a mobile device, the system comprising: a mobile application server for interfacing to an enteφrise system; a domain data store communicatively coupled to the mobile application server, the domain data store comprised of data from the enteφrise system; a mobile computing device; a mobile application stored on the mobile computing device; and a mobile data store communicatively coupled to the mobile apphcation, the mobile data store comprised of at least a portion of the data; wherein the mobile application server is operable to transmit the portion over a wireless communication link based upon characteristics of the mobile computing device.
PCT/US2001/014466 2000-05-05 2001-05-03 System and method for extending an enterprise network to mobile devices WO2001086882A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001259486A AU2001259486A1 (en) 2000-05-05 2001-05-03 System and method for extending an enterprise network to mobile devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US20235100P 2000-05-05 2000-05-05
US60/202,351 2000-05-05

Publications (2)

Publication Number Publication Date
WO2001086882A2 true WO2001086882A2 (en) 2001-11-15
WO2001086882A3 WO2001086882A3 (en) 2002-12-05

Family

ID=22749516

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/014466 WO2001086882A2 (en) 2000-05-05 2001-05-03 System and method for extending an enterprise network to mobile devices

Country Status (3)

Country Link
US (4) US7331035B2 (en)
AU (1) AU2001259486A1 (en)
WO (1) WO2001086882A2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023857A2 (en) * 2000-09-11 2002-03-21 Viafone, Inc. Method and system for integrating applications and mobile networks
US7366460B2 (en) 2003-01-23 2008-04-29 Dexterra, Inc. System and method for mobile data update
AU2005246392B2 (en) * 2004-05-20 2008-10-16 Oracle International Corporation Occasionally-connected application server
EP2081364A1 (en) * 2008-01-11 2009-07-22 Arendus GmbH & Co. KG Method, system and server for exchanging data
CN104067302A (en) * 2012-01-31 2014-09-24 Ips株式会社 Mobile terminal management server, and mobile terminal management program
EP2811431A4 (en) * 2012-01-31 2014-12-10 Ips Co Ltd Mobile terminal management server, and mobile terminal management program
US11023266B2 (en) 2017-05-16 2021-06-01 International Business Machines Corporation Detecting and counteracting a multiprocessor effect in a virtual computing environment

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996072B1 (en) * 2000-01-19 2006-02-07 The Phonepages Of Sweden Ab Method and apparatus for exchange of information in a communication network
US7248862B2 (en) 2000-01-19 2007-07-24 Sony Ericsson Mobile Communications Ab Method and apparatus for retrieving calling party information in a mobile communications system
AU2001259486A1 (en) * 2000-05-05 2001-11-20 @ Hand Corporation System and method for extending an enterprise network to mobile devices
US7143142B1 (en) * 2000-05-15 2006-11-28 Ricoh Co., Ltd. Method and apparatus for appliance host supported network-based application delivery
US20030105732A1 (en) * 2000-11-17 2003-06-05 Kagalwala Raxit A. Database schema for structure query language (SQL) server
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
US20060036941A1 (en) * 2001-01-09 2006-02-16 Tim Neil System and method for developing an application for extending access to local software of a wireless device
US20060047665A1 (en) * 2001-01-09 2006-03-02 Tim Neil System and method for simulating an application for subsequent deployment to a device in communication with a transaction server
US7865528B2 (en) * 2001-01-09 2011-01-04 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
JP2003044333A (en) * 2001-08-01 2003-02-14 Fujitsu Ltd Directory managing method, program, device and storage medium
US20030054806A1 (en) * 2001-08-15 2003-03-20 Raymond Ho System and method for defining, creating and deploying wireless applications
US20030041125A1 (en) * 2001-08-16 2003-02-27 Salomon Kirk C. Internet-deployed wireless system
US7197041B1 (en) * 2001-08-31 2007-03-27 Shipcom Wireless Inc System and method for developing and executing a wireless application gateway
US20030061106A1 (en) * 2001-09-21 2003-03-27 Sunday Orhomuru Data transfer or transfer of data using wireless mobile phone and any other wireless mobile devices
GB0123057D0 (en) * 2001-09-25 2001-11-14 Red M Communications Ltd Virtual wireless network services
US7685562B2 (en) * 2001-09-28 2010-03-23 Siebel Systems, Inc. Method and code generator for integrating different enterprise business applications
US7606881B2 (en) * 2002-04-25 2009-10-20 Oracle International Corporation System and method for synchronization of version annotated objects
US7076567B1 (en) * 2002-04-25 2006-07-11 Oracle International Corporation Simplified application object data synchronization for optimized data storage
US6965674B2 (en) * 2002-05-21 2005-11-15 Wavelink Corporation System and method for providing WLAN security through synchronized update and rotation of WEP keys
US7047259B1 (en) * 2002-06-25 2006-05-16 Oracle International Corporation Rich cross object navigation in mobile applications
US7965842B2 (en) * 2002-06-28 2011-06-21 Wavelink Corporation System and method for detecting unauthorized wireless access points
US7167861B2 (en) * 2002-06-28 2007-01-23 Nokia Corporation Mobile application service container
US7606242B2 (en) * 2002-08-02 2009-10-20 Wavelink Corporation Managed roaming for WLANS
US7801826B2 (en) * 2002-08-08 2010-09-21 Fujitsu Limited Framework and system for purchasing of goods and services
US20040107170A1 (en) * 2002-08-08 2004-06-03 Fujitsu Limited Apparatuses for purchasing of goods and services
US7606560B2 (en) * 2002-08-08 2009-10-20 Fujitsu Limited Authentication services using mobile device
US7822688B2 (en) * 2002-08-08 2010-10-26 Fujitsu Limited Wireless wallet
US7784684B2 (en) * 2002-08-08 2010-08-31 Fujitsu Limited Wireless computer wallet for physical point of sale (POS) transactions
US7522906B2 (en) * 2002-08-09 2009-04-21 Wavelink Corporation Mobile unit configuration management for WLANs
US7958144B2 (en) * 2002-08-30 2011-06-07 Boss Logic, Llc System and method for secure reciprocal exchange of data
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US20040051737A1 (en) * 2002-09-16 2004-03-18 Chung-Chih Lin Method and system of interface editing and online real-time accessing for a personal mobile device
US7787489B2 (en) * 2002-10-07 2010-08-31 Oracle International Corporation Mobile data distribution
US20060130033A1 (en) * 2003-03-03 2006-06-15 Snap-On Technologies, Inc. Method for providing a software module to an automotive vehicle control unit, and computer program for executing the method
US7822831B2 (en) * 2003-07-31 2010-10-26 International Business Machines Corporation Method, system and program product for preserving and restoring mobile device user settings
US7539971B2 (en) * 2003-11-21 2009-05-26 Microsoft Corporation System and method for registering and deploying stored procedures and triggers into a device database
US7529774B2 (en) * 2003-11-21 2009-05-05 Microsoft Corporation System and method for efficiently creating, managing, and deploying a device database
US7877605B2 (en) * 2004-02-06 2011-01-25 Fujitsu Limited Opinion registering application for a universal pervasive transaction framework
US7730097B2 (en) * 2004-02-12 2010-06-01 Mobileframe, Llc Smart database
US7565381B2 (en) * 2004-02-12 2009-07-21 Mobileframe, Llc Smart synchronization using created manifest
US20050197157A1 (en) * 2004-02-13 2005-09-08 Wendong Li System enabling easy application development on mobile devices
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
GB0406162D0 (en) * 2004-03-19 2004-04-21 Ibm Method and system for providing real world contexts to computer applications
US7526734B2 (en) * 2004-04-30 2009-04-28 Sap Ag User interfaces for developing enterprise applications
US20060031264A1 (en) * 2004-05-20 2006-02-09 Bea Systems, Inc. Synchronization protocol for occasionally-connected application server
US7730482B2 (en) * 2004-06-08 2010-06-01 Covia Labs, Inc. Method and system for customized programmatic dynamic creation of interoperability content
US7272475B2 (en) * 2004-12-02 2007-09-18 General Motors Corporation Method for updating vehicle diagnostics software
US20060190806A1 (en) * 2005-02-09 2006-08-24 David Sasson Systems and method for deploying a software application on a wireless device
EP1851982A4 (en) 2005-02-22 2008-03-12 Nextair Corp Mobile device having extensible software for presenting server-side applications, software and methods
WO2006089385A1 (en) * 2005-02-22 2006-08-31 Nextair Corporation Wireless communication device use of application server applications
WO2006089392A1 (en) * 2005-02-22 2006-08-31 Nextair Corporation Determining operational status of a mobile device capable of executing server-side applications
CA2598426C (en) * 2005-02-22 2011-10-18 Nextair Corporation Facilitating mobile device awareness of the availability of new or updated server-side applications
US9542175B2 (en) * 2005-06-24 2017-01-10 Oracle International Corporation Continuous deployment
US9075596B2 (en) * 2005-06-24 2015-07-07 Oracle International Corporation Deployment
US9063725B2 (en) * 2005-06-24 2015-06-23 Oracle International Corporation Portable management
US7941668B2 (en) * 2005-07-08 2011-05-10 Stapleton Jeff J Method and system for securely managing application transactions using cryptographic techniques
US7920944B2 (en) * 2005-10-21 2011-04-05 General Motors Llc Vehicle diagnostic test and reporting method
US20070226731A1 (en) * 2005-11-16 2007-09-27 Tseitlin Ariel D Modularity
US20070250828A1 (en) * 2005-11-16 2007-10-25 Tseitlin Ariel D Portable libraries
US20070143255A1 (en) * 2005-11-28 2007-06-21 Webaroo, Inc. Method and system for delivering internet content to mobile devices
US7958031B2 (en) * 2005-12-13 2011-06-07 International Business Machines Corporation Apparatus, system, and method for automated identity relationship maintenance
US7599861B2 (en) 2006-03-02 2009-10-06 Convergys Customer Management Group, Inc. System and method for closed loop decisionmaking in an automated care system
US7756829B2 (en) * 2006-04-18 2010-07-13 Sandeep Bhanote Method and apparatus for mobile data collection and management
US8379830B1 (en) 2006-05-22 2013-02-19 Convergys Customer Management Delaware Llc System and method for automated customer service with contingent live interaction
US7809663B1 (en) * 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US7512570B2 (en) * 2006-05-30 2009-03-31 Zaracom Technologies Inc. Artificial intelligence analyzer and generator
US7917858B2 (en) * 2006-06-09 2011-03-29 Hewlett-Packard Development Company, L.P. Engine for rendering widgets using platform-specific attributes
US20080043660A1 (en) * 2006-08-21 2008-02-21 Mark White Method of transferring data to a handheld personal electronic device
US7966599B1 (en) 2006-08-29 2011-06-21 Adobe Systems Incorporated Runtime library including a virtual file system
US8645973B2 (en) * 2006-09-22 2014-02-04 Oracle International Corporation Mobile applications
US8042090B2 (en) * 2006-09-29 2011-10-18 Sap Ag Integrated configuration of cross organizational business processes
US8843883B2 (en) * 2007-01-03 2014-09-23 International Business Machines Corporation System and method for model-driven dashboard for business performance management
JP4286296B2 (en) * 2007-03-05 2009-06-24 富士通株式会社 Requirement Confirmation Support Program, Requirement Confirmation Support Method, and Requirement Confirmation Support Device
TWI364208B (en) * 2007-04-23 2012-05-11 Inventec Corp Data updating method and electric device using the same
US8040921B2 (en) * 2007-06-15 2011-10-18 Sony Ericsson Mobile Communications Ab Method and apparatus for controlling the transfer of private information in a communication system
US7831558B2 (en) * 2007-06-22 2010-11-09 Microsoft Corporation Bi-directional data modification with synchronization
US8505005B1 (en) * 2007-07-24 2013-08-06 United Services Automobile Association (Usaa) Multi-platform network-based software distribution
US8756318B1 (en) * 2007-10-09 2014-06-17 Microsoft Corporation Software deployment using client location
US8046692B2 (en) * 2007-10-26 2011-10-25 Microsoft Corporation User interface mapping modules to deployment targets
US20090143061A1 (en) * 2007-12-03 2009-06-04 Troy Wu Method and apparatus for the remote execution of methods and objects on handsets
US8370795B1 (en) * 2008-01-31 2013-02-05 Intuit Inc. Method and system for explaining a value of a field in a form
AU2009249272B2 (en) * 2008-05-18 2014-11-20 Google Llc Secured electronic transaction system
US20090327292A1 (en) * 2008-06-27 2009-12-31 Motorola, Inc. Ensuring consistency among shared copies of a data element
US20100037204A1 (en) * 2008-08-07 2010-02-11 Google Inc. Content Distribution for Mobile Device
US8296728B1 (en) 2008-08-26 2012-10-23 Adobe Systems Incorporated Mobile device interaction using a shared user interface
US8832681B1 (en) * 2008-08-29 2014-09-09 Adobe Systems Incorporated Bundled mobile/desktop application package
GB0817514D0 (en) * 2008-09-24 2008-10-29 Symbian Software Ltd Method and apparatus for updating a computing device
US8312447B2 (en) * 2008-09-25 2012-11-13 Microsoft Corporation Managing updates using compiler and linker information
US8635585B2 (en) * 2009-02-14 2014-01-21 International Business Machines Corporation Capturing information accessed, updated and created by processes and using the same for validation of consistency
US8589863B2 (en) * 2008-12-11 2013-11-19 International Business Machines Corporation Capturing information accessed, updated and created by services and using the same for validation of consistency
US9195455B2 (en) * 2009-04-01 2015-11-24 Oracle International Corporation Reducing downtime when patching multiple inter-dependent software components
US8719776B2 (en) * 2009-12-30 2014-05-06 Foneclay, Inc. System for creation and distribution of software applications usable on multiple mobile device platforms
US8694968B2 (en) * 2009-12-30 2014-04-08 Foneclay, Inc. System for creating personalized and customized mobile devices
US20110252163A1 (en) * 2010-04-09 2011-10-13 Microsoft Corporation Integrated Development Environment for Rapid Device Development
KR101662660B1 (en) * 2010-09-30 2016-10-06 삼성전자주식회사 Server and service method thereof
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
US8898630B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a voice- and gesture-controlled mobile application development and deployment platform
US8978006B2 (en) 2011-04-06 2015-03-10 Media Direct, Inc. Systems and methods for a mobile business application development and deployment platform
US9134964B2 (en) 2011-04-06 2015-09-15 Media Direct, Inc. Systems and methods for a specialized application development and deployment platform
US9218164B2 (en) * 2011-09-26 2015-12-22 Norman Ortiz System and method for mobile application development using mobile devices
EP2811432A1 (en) * 2012-01-31 2014-12-10 IPS Co., Ltd. Mobile terminal management server, and mobile terminal management program
EP2811433A1 (en) * 2012-01-31 2014-12-10 IPS Co., Ltd. Mobile terminal management server, and mobile terminal management program
US9262149B2 (en) 2012-04-12 2016-02-16 International Business Machines Corporation Managing incrementally applied system updates
CA2885199A1 (en) * 2012-10-16 2014-04-24 The Ultimate Software Group Of Canada, Inc. System, apparatus, and method for providing workforce management
US9043810B2 (en) 2012-11-27 2015-05-26 Bank Of America Corporation Interfacing between native and web applications utilizing a mobile module
US20140164040A1 (en) * 2012-12-07 2014-06-12 Sears Brands, Llc Scalable training
US20140281886A1 (en) 2013-03-14 2014-09-18 Media Direct, Inc. Systems and methods for creating or updating an application using website content
US10303802B2 (en) 2013-03-15 2019-05-28 Gadget Software, Inc. System for mobile application search
US10075560B2 (en) 2013-03-15 2018-09-11 Gadget Software, Inc. User interface and content translation system
US10326825B2 (en) 2013-03-15 2019-06-18 Gadget Software, Inc. Apparatus for single workflow for multi-platform mobile application creation and delivery
WO2014152141A1 (en) * 2013-03-15 2014-09-25 Beeonics, Inc. Dynamic user interface delivery system
US10320885B2 (en) 2013-03-15 2019-06-11 Gadget Software, Inc. Method for single workflow for multi-platform mobile application creation and delivery
US10320942B2 (en) 2013-03-15 2019-06-11 Gadget Software, Inc. Dynamic user interface delivery system
US9038015B1 (en) * 2013-04-23 2015-05-19 Clearblade, Inc. System and method for creating a development and operational platform for mobile applications
US9116766B2 (en) 2013-07-31 2015-08-25 Sap Se Extensible applications using a mobile application framework
US20150074635A1 (en) * 2013-08-16 2015-03-12 Vito Margiotta Systems and Methods for Building Custom Mobile Device Applications Using a Mobile Devlce
US9674225B2 (en) 2013-09-20 2017-06-06 Open Text Sa Ulc System and method for updating downloaded applications using managed container
US10824756B2 (en) 2013-09-20 2020-11-03 Open Text Sa Ulc Hosted application gateway architecture with multi-level security policy and rule promulgations
EP2851833B1 (en) 2013-09-20 2017-07-12 Open Text S.A. Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
US9507609B2 (en) 2013-09-29 2016-11-29 Taplytics Inc. System and method for developing an application
US10225352B2 (en) * 2013-12-20 2019-03-05 Sony Corporation Work sessions
CN104715756A (en) * 2015-02-10 2015-06-17 百度在线网络技术(北京)有限公司 Audio data processing method and device
US10185513B1 (en) 2015-06-05 2019-01-22 Life365, Inc. Device configured for dynamic software change
US11593075B2 (en) 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
US11388037B2 (en) 2016-02-25 2022-07-12 Open Text Sa Ulc Systems and methods for providing managed services
AU2018202532B1 (en) * 2017-04-21 2018-09-20 Accenture Global Solutions Limited Application engineering platform
US10203938B2 (en) 2017-04-21 2019-02-12 Accenture Global Solutions Limited Application engineering platform
US10909271B2 (en) * 2017-09-28 2021-02-02 Citrix Systems, Inc. Policy based persistence
US11455656B2 (en) 2019-11-18 2022-09-27 Walmart Apollo, Llc Methods and apparatus for electronically providing item advertisement recommendations
US11392984B2 (en) 2019-11-20 2022-07-19 Walmart Apollo, Llc Methods and apparatus for automatically providing item advertisement recommendations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0637151A1 (en) * 1993-07-30 1995-02-01 Xerox Corporation A method and system for maintaining processing continuity to mobile computers in a wireless network
WO1999041682A2 (en) * 1998-02-17 1999-08-19 Southern Research Institute Patient data acquisition unit and data support system
WO2000043891A1 (en) * 1999-01-25 2000-07-27 3Com Corporation System and method to control network devices on a palm sized computer

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ236299A (en) * 1989-11-30 1995-07-26 Seer Technologies Inc Software distribution from central database to computers in network
US5671436A (en) * 1991-08-21 1997-09-23 Norand Corporation Versatile RF data capture system
US5560005A (en) * 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5704029A (en) * 1994-05-23 1997-12-30 Wright Strategies, Inc. System and method for completing an electronic form
US5604906A (en) * 1995-02-06 1997-02-18 Apple Computer, Inc. Method and apparatus for installing software block-by block via an image of the target storage device
US6119155A (en) 1995-12-11 2000-09-12 Phone.Com, Inc. Method and apparatus for accelerating navigation of hypertext pages using compound requests
US5873096A (en) 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US5857201A (en) * 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US6187425B1 (en) * 1996-12-30 2001-02-13 Kimberly-Clark Worldwide, Inc. Elastic materials with improved performance at body temperature
JP2002511164A (en) 1997-02-26 2002-04-09 シーベル システムズ,インコーポレイティド How to determine the visibility of a remote database client for multiple database transactions for use in simplified visibility rules
US6377993B1 (en) 1997-09-26 2002-04-23 Mci Worldcom, Inc. Integrated proxy interface for web based data management reports
CA2319004A1 (en) * 1998-01-26 1999-08-12 Unif/X Inc. A transaction execution system interface and enterprise system architecture thereof
US6343265B1 (en) * 1998-07-28 2002-01-29 International Business Machines Corporation System and method for mapping a design model to a common repository with context preservation
US6721288B1 (en) 1998-09-16 2004-04-13 Openwave Systems Inc. Wireless mobile devices having improved operation during network unavailability
US6226650B1 (en) 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US6438544B1 (en) * 1998-10-02 2002-08-20 Ncr Corporation Method and apparatus for dynamic discovery of data model allowing customization of consumer applications accessing privacy data
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6195796B1 (en) * 1998-10-21 2001-02-27 Wildseed, Ltd. User centric source control
AU2151400A (en) * 1998-11-19 2000-06-13 Accenture Llp A system, method and article of manufacture for a grouped profile network interface
US6356905B1 (en) * 1999-03-05 2002-03-12 Accenture Llp System, method and article of manufacture for mobile communication utilizing an interface support framework
SG94330A1 (en) * 1999-07-24 2003-02-18 Kent Ridge Digital Labs Mobile computing system and method for a network
US6549917B1 (en) * 1999-04-29 2003-04-15 Waveware Communications, Inc. Synchronization of host computers and handheld remote computers
US20030069874A1 (en) * 1999-05-05 2003-04-10 Eyal Hertzog Method and system to automate the updating of personal information within a personal information management application and to synchronize such updated personal information management applications
US6874146B1 (en) * 1999-06-30 2005-03-29 Unisys Corporation Metadata driven system for effecting extensible data interchange based on universal modeling language (UML), meta object facility (MOF) and extensible markup language (XML) standards
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6332163B1 (en) * 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US6553412B1 (en) * 1999-09-10 2003-04-22 Avantgo, Inc. System, method, and computer program product for web content aggregation and development, and web content delivery to clients
US7188332B2 (en) * 1999-10-05 2007-03-06 Borland Software Corporation Methods and systems for relating a data definition file and a data model for distributed computing
US6700590B1 (en) * 1999-11-01 2004-03-02 Indx Software Corporation System and method for retrieving and presenting data using class-based component and view model
US6754670B1 (en) * 1999-12-17 2004-06-22 International Business Machines Corporation Mapping relational tables to object oriented classes
EP1117035A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Runtime environment component services
US7092998B2 (en) * 2000-01-14 2006-08-15 Palm, Inc. Software architecture for wireless data and method of operation thereof
US6721787B1 (en) 2000-02-10 2004-04-13 3Com Corporation System and method for wireless hot-synchronization of a personal digital assistant
US6336137B1 (en) * 2000-03-31 2002-01-01 Siebel Systems, Inc. Web client-server system and method for incompatible page markup and presentation languages
US6636873B1 (en) * 2000-04-17 2003-10-21 Oracle International Corporation Methods and systems for synchronization of mobile devices with a remote database
AU2001259486A1 (en) * 2000-05-05 2001-11-20 @ Hand Corporation System and method for extending an enterprise network to mobile devices
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6766326B1 (en) 2000-07-24 2004-07-20 Resty M Cena Universal storage for dynamic databases
US6847146B2 (en) 2000-07-26 2005-01-25 Milwaukee Electric Tool Corporation Field assembly and methods for assembling a field assembly
US6829655B1 (en) * 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0637151A1 (en) * 1993-07-30 1995-02-01 Xerox Corporation A method and system for maintaining processing continuity to mobile computers in a wireless network
WO1999041682A2 (en) * 1998-02-17 1999-08-19 Southern Research Institute Patient data acquisition unit and data support system
WO2000043891A1 (en) * 1999-01-25 2000-07-27 3Com Corporation System and method to control network devices on a palm sized computer

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DANIELA NICKLAS, MATTHIAS GROßMANN, THOMAS SCHWARZ, STEFFEN VOLZ, BERNHARD MITSCHANG: "A Model-Based, Open Architecture for Mobile, Spatially Aware Applications" ADVANCES IN SPATIAL AND TEMPORAL DATABASES. 7TH INTERNATIONAL SYMPOSIUM, SSTD 2001. PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOL.2121), ADVANCES IN SPATIAL AND TEMPORAL DATABASES. 7TH INTERNATIONAL SYMPOSIUM, SSTD 2001. PROCEEDINGS, REDONDO BEA, pages 117-135, XP001104554 2001, Berlin, Germany, Springer Verlag, Germany ISBN: 3-540-42301-X *
MÁRIO J. SILVA, ANA PAULA AFONSO: "Designing information appliances using a resource replication model" HANDHELD AND UBIQUITOUS COMPUTING. FIRST INTERNATIONAL SYMPOSIUM, HUC'99. PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOL.1707), PROCEEDINGS OF HUC99: INTERNATIONAL SYMPOSIUM ON HANDHELD AND UBIQUITOUS COMPUTING 1999, KARLSRUHE, GERMANY, 27-29 SEP, pages 150-157, XP001104555 1999, Berlin, Germany, Springer-Verlag, Germany ISBN: 3-540-66550-1 *
STEFAN MUELLER-WILKEN, DANIEL HINZ, WINFRIED LAMERSDORF: "XML and Jini - On Using XML and the JAVA Border Service Architecture to integrate mobile devices into the JAVA Intelligent Network Infrastructure" DOCUMENT, 29 February 2000 (2000-02-29), XP002188507 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023857A2 (en) * 2000-09-11 2002-03-21 Viafone, Inc. Method and system for integrating applications and mobile networks
WO2002023857A3 (en) * 2000-09-11 2003-01-30 Viafone Inc Method and system for integrating applications and mobile networks
US7366460B2 (en) 2003-01-23 2008-04-29 Dexterra, Inc. System and method for mobile data update
AU2005246392B2 (en) * 2004-05-20 2008-10-16 Oracle International Corporation Occasionally-connected application server
EP2081364A1 (en) * 2008-01-11 2009-07-22 Arendus GmbH & Co. KG Method, system and server for exchanging data
CN104067302A (en) * 2012-01-31 2014-09-24 Ips株式会社 Mobile terminal management server, and mobile terminal management program
EP2811436A1 (en) * 2012-01-31 2014-12-10 IPS Co., Ltd. Mobile terminal management server, and mobile terminal management program
EP2811431A4 (en) * 2012-01-31 2014-12-10 Ips Co Ltd Mobile terminal management server, and mobile terminal management program
EP2811431A1 (en) * 2012-01-31 2014-12-10 IPS Co., Ltd. Mobile terminal management server, and mobile terminal management program
EP2811436A4 (en) * 2012-01-31 2014-12-10 Ips Co Ltd Mobile terminal management server, and mobile terminal management program
CN104221040A (en) * 2012-01-31 2014-12-17 Ips株式会社 Mobile terminal management server, and mobile terminal management program
US11023266B2 (en) 2017-05-16 2021-06-01 International Business Machines Corporation Detecting and counteracting a multiprocessor effect in a virtual computing environment

Also Published As

Publication number Publication date
US20020033843A1 (en) 2002-03-21
US20090183138A1 (en) 2009-07-16
WO2001086882A3 (en) 2002-12-05
AU2001259486A1 (en) 2001-11-20
US20020116698A1 (en) 2002-08-22
US7331035B2 (en) 2008-02-12
US20020057803A1 (en) 2002-05-16
US7313782B2 (en) 2007-12-25

Similar Documents

Publication Publication Date Title
US7331035B2 (en) System and method for mobile software application development and deployment
US7162543B2 (en) Process for synchronizing data between remotely located devices and a central computer system
US8307109B2 (en) Methods and systems for real time integration services
EP1438672B1 (en) Method, apparatus and system for a mobile web client
US8069437B2 (en) Framework for a composite application and a method of implementing a frame work for a composite application
US20020046301A1 (en) System and method for integrating disparate networks for use in electronic communication and commerce
US20040078373A1 (en) Workflow system and method
EP1208482A1 (en) Client server system with thin client architecture
WO2001025918A2 (en) Frameworks for methods and systems of providing netcentric computing
MX2007015887A (en) Data centric workflows.
US20130339488A1 (en) Enterprise services framework for mobile devices
JP5886901B2 (en) Storage medium for providing system, method and program for managing distribution of contents to apparatus
WO2006053814A2 (en) Method, system, and storage medium for implementing intelligent team management services
WO2002097588A2 (en) Distributed artificial intelligent agent network system and methods
Christodoulou Thin Client Technology in Construction Management
Hansen Technical White Paper
Rohr et al. SAP NetWeaver, Microsoft. NET Interoperability
Wing A Computer Aided Despatch System on Java/CORBA Platform
Mor Shared virtual space distribution manager-SVSDM: use cases
Sipos Synchronization with SyncML

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP