US20030055927A1 - Framework for a device and a computer system needing synchronization - Google Patents

Framework for a device and a computer system needing synchronization Download PDF

Info

Publication number
US20030055927A1
US20030055927A1 US10/164,224 US16422402A US2003055927A1 US 20030055927 A1 US20030055927 A1 US 20030055927A1 US 16422402 A US16422402 A US 16422402A US 2003055927 A1 US2003055927 A1 US 2003055927A1
Authority
US
United States
Prior art keywords
framework
computer system
application
offline
synchronization
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US10/164,224
Inventor
Claudius Fischer
Thorsten Stephan
Markus Schmidt-Karaca
Jochen Hertweck
Franz Muller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
SAPMarkets Inc
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US10/164,224 priority Critical patent/US20030055927A1/en
Assigned to SAPMARKETS, INC. reassignment SAPMARKETS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FISCHER, CLAUDIUS, HERTWECK, JOCHEN, MULLER, FRANZ, SCHMIDT-KARACA, MARKUS, STEPHAN, THORSTEN
Publication of US20030055927A1 publication Critical patent/US20030055927A1/en
Assigned to SAP AG reassignment SAP AG ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SAPMARKETS, INC.
Abandoned legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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/46Multiprogramming arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • This invention relates to providing a platform-independent framework that enables devices, such as handheld computers, personal digital assistants (PDAs), Internet-enabled phones, laptops, and desktop computers or the like, to run business applications offline and synchronize data with a computer system, such as a business electronic commerce system, via a standard Internet connection or other connection. Further, it allows the automatic installation and/or deinstallation of applications on the mobile devices or desktops from the computer system.
  • devices such as handheld computers, personal digital assistants (PDAs), Internet-enabled phones, laptops, and desktop computers or the like
  • PDAs personal digital assistants
  • desktop computers such as a business electronic commerce system
  • Another situation where such a system would be useful would be with sales personnel that call on customers. For instance, during a sales call, a customer may desire to change a previously placed order. The sales person would then need to record a modified order. Exchanging this information through a computer system would make much more sense than doing so verbally and would also provide a computer record of the transaction.
  • An embodiment of the present invention provides a mobile framework that permits mobile devices to run business applications offline and synchronize data with a computer system over a standard Internet connection or other connection.
  • Another embodiment of the present invention provides a mobile framework that permits mobile devices to run business applications either online or offline and synchronize data with a computer system over a standard Internet connection or other connection.
  • Another embodiment of the present invention provides a mobile framework that automatically downloads software from a computer system to a mobile device and installs it thereupon.
  • FIG. 1 is a block diagram of a mobile device according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of a mobile device having an API layer according to an embodiment of the present invention.
  • FIG. 3 is a block diagram of a synchronization system according to an embodiment of the present invention.
  • FIG. 4 is a block diagram of a computer system having a synchronization system according to an embodiment of the present invention.
  • FIG. 5 is a flow chart illustrating a synchronization process according to an embodiment of the present invention.
  • FIG. 6 is a block diagram of a deployment console according to an embodiment of the present invention.
  • FIG. 7 is a flow chart illustrating a deployment process according to an embodiment of the present invention.
  • FIG. 8 is a flow chart illustrating a deployment process according to another embodiment of the present invention.
  • FIG. 1 depicts a mobile device according to an embodiment of the present invention.
  • Mobile device 100 may be a PDA, a laptop computer, an Internet capable phone, or another similar device.
  • the mobile device has an operating system with Java VM 1.1.4 or PersonalJava and at least about 5 MB of memory.
  • mobile engine 110 is based on Java, so that it may run on any platform supporting Java.
  • Mobile device 100 contains an Internet browser 105 . It also contains mobile engine 110 .
  • Mobile engine 110 should be capable of generating any standard markup language, such as HTML, so that Internet browser 105 may be a standard browser, such as Microsoft Internet Explorer or Netscape, rather than a proprietary one. However, a proprietary browser could be used on mobile device 100 in addition to or in lieu of the standard browser if desired.
  • Mobile engine 110 contains two major components: a Java plug-in 90 and various components for data synchronization and deployment.
  • the Java plug-in contains web server 115 , servlet engine 120 , modular offline application building blocks 125 , 130 and 135 , and API layer 145 . All of the information to start and run the Java plug-in is preferably held in separate property files.
  • the information related to the web server including host, port, and wwwroot, can exist in a file named webserver.properties.
  • the information related to mappings, such as URL to servlet mappings can exist in a file named mappings.properties.
  • the information relating to mimes, such as mime types, can exist in a file named mime.properties.
  • Web server 115 is preferably programmed in Java and provides the ability for the user of mobile device 100 to log onto web server 115 contained within mobile device 100 when operating offline. By doing so, the user is provided with the same or similar look and feel to operating online over the Internet and can run the same applications offline that the user could run over the Internet in an online mode.
  • web server 115 is single threaded and has a small footprint.
  • Web server 115 is connected to servlet engine 120 .
  • Servlet engine 120 enables the mobile device's user to engage various offline applications locally on mobile device 100 through web server 115 .
  • Servlet engine would preferably be based upon Java Servlet API 2.1.
  • Web server 115 and servlet engine 120 preferably would meet the Sun Java WebServer 2.0 Specification.
  • MicroITS model 125 contains a flow logic parser, HTML business parser, language resource parser/preparser and module provider.
  • Java Server Pages model 130 may be deployed to take advantage of Java features. Java Server Pages model 130 would preferably be based upon TomCat.
  • Custom plug-in model 135 can also be used as needed.
  • Custom plug-in model would permit users to implement their own logic.
  • These other models may be proprietary or standards-based.
  • Mobile engine API layer 145 which will be discussed in more detail below, provides independence between modular offline application building blocks 125 , 130 , 135 and servlet engine 120 .
  • Modular offline application building blocks 125 , 130 , and 135 utilize programming sources stored in memory 140 . While memory 140 is shown within mobile engine 110 , it may be located elsewhere.
  • Mobile engine API layer 145 forms an interface between the various programming models 125 , 130 and 135 and the application data that resides on database 180 within mobile device 100 . While database 180 is shown within mobile engine 110 , it may be located elsewhere. By providing API layer 145 , alternative programming models, offline applications and services may be incorporated, activated or substituted for existing models, offline applications and services in the future without having to completely reprogram mobile engine 110 .
  • API layer 145 contains file I/o APIs, database APIs, synchronization layer APIs and XML parsing APIs.
  • API layer 145 also provides device independence so that any application can run on any device without specific programming for device specific dependencies.
  • API layer 145 provides an interface between application or service 50 and the mobile device's file programming interface 40 on the mobile device platform 45 .
  • Service 50 may be any of the previously mentioned services, such as data exchange 150 , or the like, or an offline application.
  • API layer 145 consists of various module providers, such as EBP.class 5 , ISALES.class 10 and MY.class 15 .
  • Java methods grouped in packages 20 , 30 , and 35 such that all methods needed for a specific function are part of a corresponding package, also form part of API layer 145 . These methods can be called by the appropriate module provider.
  • Enterprise Buyer Professional is a product available from SAP Markets, Inc. It provides the ability to coordinate the Internet business procurement process. The product permits the creation of shopping baskets and catalogs.
  • a package for Enterprise Buyer Professional would include the module provider of EBP.class 5 and the groups of methods basket.class 20 a and catalog.class 20 b.
  • Module providers 5 , 10 , and 15 instantiate the appropriate Java method calls and make them available for the flow logic in an application or service. There is always one module provider assigned to each package of the API layer 145 .
  • Data exchange 150 is utilized during a synchronization procedure when data is to be exchanged between a computer system and mobile device 100 .
  • a personalization service 160 can be included. Personalization permits the manipulation of settings necessary to operate within a given server environment, such as a server URL, logon data, proxy, etc. Multiple user control can be included if more than one user of a device would be anticipated.
  • An installation service 165 can also be provided.
  • Installation service 165 automatically installs or uninstalls offline applications, offline application building blocks and other software so that the device is outfitted as it should be based upon a deployment console, as will be discussed in detail later, located at the computer system.
  • the installation service 165 creates a new entry in registry service 175 (discussed below) when a new application is installed and deletes an entry when an offline application is deleted. This function occurs in the background so as to be transparent to the user.
  • Local database access 170 is provided to permit access to database 180 .
  • a home service 172 can be provided that sets up a homepage that the user accesses offline that provides links to the offline applications resident on the mobile device.
  • the synchronization service is accessible through this page by clicking on an icon, for example.
  • Library service 174 offers standard functionality for application methods. It handles file operations and parsing. Library service 174 contains an open catalog interface and parser for XML parsing, as well as a local data storage encryptor.
  • Registry service 175 maintains a list of all installed offline applications.
  • registry service 175 can maintain a list of all installed software subject to deployment from the deployment console, which would include at least offline applications and modular offline application building blocks.
  • information from the registry 175 is provided to the deployment console during a synchronization and used by the deployment console to make sure that mobile device 100 is outfitted as it should be. The operation of registry service 175 will be discussed in more detail later.
  • Synchronization layer 185 is part of mobile engine 110 .
  • Synchronization layer 185 controls the synchronization of data on mobile device 100 with computer system 200 once the mobile device achieves connection through the Internet (or alternatively, through another means) to computer system 200 , such as an application server, as is represented by box 195 .
  • the synchronization layer 185 does this by sending the data containers resident in synchronization folder 187 .
  • Synchronization layer 185 preferably will contain an inbound/outbound queue, module(s) supporting different types of synchronization, a file handler, an error handler, a SOAP connector for XML, a data transmission security module, a synchronization security module and an authority checker. The details of the creation of such components would be apparent to one skilled in the art. This synchronization layer 185 and synchronization process will be discussed in greater detail later.
  • a few examples of offline applications that can be run on mobile device 100 are now discussed. Such applications can be created through the use of a tool such as Web Application Builder by SAP, AG.
  • One such application is an easy shopping application. Easy shopping permits one-step wireless shopping and buying, personalized product offerings, seamless integration into a full internet sales cycle, seamless integration into a procurement cycle, intelligent status tracking/synchronization, easy changing web templates, XML catalog content exchange, and provides the identical look and feel for sales and procurement.
  • Functions supported could be catalog, shopping cart, synchronization, and order status.
  • the catalog can include search functionality and can hierarchically group products.
  • the shopping basket allows for the creation of multiple orders and provides order status information. When this data from this application is synchronized with the central computer system, catalog content, orders, and software can be updated.
  • Manager's inbox is another possible offline application. Manager's inbox contains an inbox overview listing incoming messages and work items. View selection can be available. When an inbox item is clicked, the message or the work item can be displayed. Work item details such as the ability to approve or reject a work item and forms can be shown. During synchronization, inbox items, item details, and approvals/forms would be updated.
  • Plant maintenance is another application.
  • Plant maintenance includes an order section.
  • Functions possible with plant maintenance could include searching for open or released orders, selecting operations, and adding components.
  • the catalog function can provide a hierarchical view catalog with search functionality. During synchronization open and released orders would be exchanged, catalogs would be updated and new components would be added.
  • FIG. 3 a synchronization system according to an embodiment of the present invention is shown.
  • Mobile device 100 is shown connected to computer system 200 through a connection such as the Internet. Other networks or a direct connection can alternatively be used.
  • the synchronization process could begin through clicking on an icon, button, hyperlink or the like, on a home page displayed via the browser. Alternatively, it could automatically occur upon a link being established between mobile device 100 and computer system 200 .
  • Mobile engine 110 through API layer 145 and synchronization layer 185 , talks with functional module 220 on computer system 200 through synchronization RFC 210 .
  • This communication is carried out through the use of data containers, such as data container 230 .
  • Data container 230 is normally made up of a header 240 and a body 250 .
  • the header 240 can be made up of the following parts: 1) a container ID that uniquely identifies the particular container; 2) an identification of the user of the device; 3) an identification of the type of container; 4) the method describing which function module should be called in the computer system to process the data; 5) the date the container is sent; 6) the time the container is sent; 7) the date the method was executed to create the data container; 8) the time the method was executed; and 9) the status relating to the data.
  • the body 250 of container 230 can be made up of a container ID, line number, field name and field value.
  • FIG. 4 shows a computer system with synchronization capability and FIG. 5 shows a synchronization process according to an embodiment of the present invention.
  • the synchronization layer on the computer system has an inbound/outbound queue, module(s) for different types of synchronization, a dispatcher, a spooler, a file handler, an error handler, a mapping algorithm, a data transmission security module, a synchronization security module, and an authority checker.
  • module(s) for different types of synchronization a dispatcher, a spooler, a file handler, an error handler, a mapping algorithm, a data transmission security module, a synchronization security module, and an authority checker.
  • the embodiment shown in FIG. 5 includes an optional data preservation scheme.
  • a container In order to preserve the containers, a container is maintained on at least one location. The container on the mobile device will remain on the mobile device if a problem occurs such as the connection getting lost during synchronization. If that occurs, it will be sent automatically with the next synchronization. If there is no entry in the mapping table for the function module call, the container remains in the incoming table on the computer system and a program is used to generate an automatic mapping, as will be discussed later.
  • the container remains in the incoming table. If the called function module has the wrong interface implemented, it remains on the incoming table. If the data contained in the container is errored, the called function module returns an error message to the mobile device for processing by the offline application.
  • step 230 of FIG. 5 the user of mobile device 100 clicks the synch icon, button, hyperlink, or the like, on the home page to initiate the synchronization process.
  • the synchronization class reads all data containers in the synchronization folder and compares the containers with a history table that records the container IDs for containers already sent by the mobile device 100 and received by computer system 200 as shown in step 232 . This is done so that duplicate containers, should they arise for some reason, such as a reboot of the mobile device, can be deleted from the mobile device without sending them.
  • step 234 the synchronization class sends the remaining containers over the synchronization transport layer to synchronization RFC function module 210 in the computer system in step 252 .
  • step 236 the synchronization RFC function module 210 writes the incoming containers into container database 260 .
  • the incoming containers are stored in database 260 as a failsafe to ensure that the containers are available should a problem occur after they are passed on to mapping layer 265 .
  • Synchronization RFC function also reads out from the outgoing container database 275 any data containers with the same class and user as those received and sends them to mobile device 100 . Additionally, it sends an acknowledgement for the containers just received and stored in incoming container database 260 .
  • step 238 the mobile device 100 then writes the container ID referred to by the acknowledgment into a history table indicating that it was previously received by the computer system 200 and no longer needs to be maintained on the mobile device 100 .
  • the container is then deleted off of mobile device 100 .
  • step 240 the incoming containers are read out of inbound container database 260 by scheduled function module 265 .
  • scheduled function module 265 consults mapping table stored in database 270 to map the data within the container so that it may be processed accordingly.
  • Scheduled function module 265 then calls the appropriate function module 220 to execute the function required in step 244 .
  • One such function module could be an EBP processing function, for example.
  • step 246 appropriate function module 220 sends back responsive data, such as status, to scheduled function module 265 .
  • Scheduled function module 265 then places the data in a container and writes it to outgoing container database 275 in step 248 .
  • the responsive outgoing containers may be sent immediately in step 249 or may be stored until the next time a synchronization process is initiated.
  • the first type is publish synchronization.
  • the type of container used can be called an outbound container.
  • the outbound container is created in mobile device 100 and, when a connection is present, is sent to computer system 200 for processing. Once it has been received by computer system 200 , any return containers waiting to be sent to the same user and of the same method are sent back to the user. The connection is terminated however, prior to any outgoing containers responsive to the data just sent by the user being sent back to the mobile device.
  • the second type of synchronization is online processing. This type is similar to publish but includes return of responsive outgoing containers having processed data relating to the container that was just sent.
  • the owner sends a request-type container. First the connection is made. Then the request-type container is sent. The container is then received by the computer system 200 . Because it is a request type container, the computer system returns not only any containers waiting to be sent to the same owner of the same method, but also processes the incoming container and sends a response to that container prior to the connection being terminated.
  • the third type of synchronization is subscribe. Subscribe synchronization is used to check on the status of previously sent containers. For instance, it can be used to check on the status of an electronic order placed through a shopping cart.
  • the owner sends a notify-type container to computer system 200 .
  • Computer system 200 then returns containers of same method and user. Such containers need not include a body, as the status information is contained within the head of the containers.
  • a generator tool can generate the wrapper function module that maps the generic structure of a container to the individual interface of a function module and generate the table entries for the mapping table.
  • the tool will utilize the programming language of the computer system.
  • a tool can also be used as a Java class generator to handle flow logic to Java for modular offline application building blocks 125 and/or 135 .
  • the tool utilizes Java on the mobile device.
  • These tools are essentially translators. Creation of such translators would be well within the abilities of one of ordinary skill in the art.
  • a computer aided test tool can also be created and used for modular application building blocks 125 and/or 135 .
  • a deployment console 400 is resident on the computer system as one of the application function modules 220 .
  • Deployment console 400 is preferably programmed in a language supported by computer system 200 .
  • the computer system is a MySAP Workplace system by SAP, AG, then the deployment console could be programmed in ABAP.
  • Deployment console 400 has an overview of all installed offline applications per user and device through an installation log 432 that records that an installation has occurred whenever an offline application, modular offline application building blocks or other software is deployed and installed on a device.
  • Role assignment module 410 permits an administrator to assign a user to a role and to assign what software should be installed for each role.
  • a user may have one or more roles if desired.
  • personal assignment module 412 can be provided. Personal assignment module 412 would permit an administration to assign an application that may be needed by an individual, but not by others within the same role. For example, a vice president of sales may be assigned a role of vice president, but may need some but not all applications of the salesman role. Personal assignment module 412 would permit such customization.
  • the deployment console 400 can also manage versions of software for deployment by defining the current version of each offline application that should be installed. Version control module 416 provides an administrator with this functionality.
  • Storage media such as database 418 , keeps track of what software should be installed on each device for each user. This data stored therein is based upon the parameters set by role assignment module 410 , personal assignment module 412 and version control module 416 .
  • Storage media 436 is provided upon which software that may be downloaded to a device and installed thereupon is provided.
  • software may include offline applications, modular offline application building blocks, patches, and other software.
  • Installation protocol module 434 is provided. It permits an administrator to update or alter installation protocol.
  • Device type/ID handler 440 is provided which determines how to handle different device types.
  • Installer 430 is provided that retrieves software from storage media 436 for downloading and installation on a device. This is done based upon the comparison of information from a registry service on a device to information stored in database 418 relating to what is supposed to be resident on that particular device. Additionally, installer 430 is equipped to provide mobile device with a deinstall instruction should the information from the registry service indicate that software is installed on the device that should not be.
  • installer 430 retrieves software from storage media 436 and sends it off to a device and retrieves a notice from the device that the software was received, it stores the information relating to the download and install in install log 432 .
  • Install log 432 , database 418 , and storage media 436 may be collocated or separate. Moreover, they may be a part of deployment console 400 as shown, or alternatively, any of them may be located externally.
  • FIG. 7 A process for deploying and installing the framework according to an embodiment of the present invention is shown in FIG. 7.
  • a user opens browser 105 on mobile device 100 and connects to computer system 200 online as shown in step 300 . Once online, an install mobile engine icon, hyperlink or the like is displayed. In step 305 , the user selects to install mobile engine 110 by clicking on the icon, hyperlink or the like.
  • step 310 the mobile engine framework is downloaded to mobile device 100 and, preferably, is automatically installed by installation service 165 . Once installation is complete, the user connects into the deployment console system in step 315 .
  • a data container containing information from registry service 175 is sent to a deployment console on computer system 200 .
  • the console reads the registry and determines that no offline applications are currently installed on mobile device 100 and then downloads the appropriate applications that are supposed to reside on mobile device 100 .
  • These offline applications are installed automatically by installation service 165 .
  • Installation service 165 also automatically updates registry service 175 to reflect the installation of the new offline applications.
  • a deployment console When a deployment console receives information from a registry service that indicates an outdated version of a program or a version requiring a patch is resident on a mobile device, the current version and/or patch can be sent to the device and installed and the old version deinstalled, as needed, just as any other program, as will be described with respect to FIG. 8. It should also maintain error logs sent by the mobile devices.
  • step 350 the user opens browser 105 and connects to computer system 200 through the Internet, or the like, using the synchronization function.
  • mobile device 100 then sends a data container containing the data within the registry service 175 that is eventually retrieved by the deployment console as shown in step 355 .
  • This retrieval may be in the manner discussed above relating to the retrieval of data from data containers during the synchronization process.
  • the console compares the data from registry service 175 to stored information that reflects what offline applications (or alternatively what software that is subject to deployment through deployment console) are supposed to be resident on mobile device 100 in step 360 .
  • step 365 it is determined if changes need to be made to the mobile device.
  • a few examples of changes that may need to be made include: 1) an offline application may no longer be authorized and may need to be deleted from the mobile device; 2) a new application may need to be added; 3) a new version of an existing application may need to be placed on the mobile device; 4) a patch for an existing application may need to be installed on the mobile device; 5) modular application building blocks may need to be deleted and/or installed; and 6) other software such as special extra HTML pages and/or graphics, for example, may need to be added or deleted, such as for a “Christmas” special.
  • step 370 it is determined if a deinstall is needed. If one is, then a data container is sent to mobile device 100 directing installation function 165 to deinstall the appropriate offline application or other software. It is then determined if an install is necessary in step 385 . If no install is needed, then the routine ends. If an install is needed, in step 390 , the offline application or other software to be installed is downloaded to mobile device and installed automatically through the installation function 165 .
  • This sending of the registry occurs each time there is a synchronization process. This way the deployment console keeps the mobile devices outfitted as they should be.

Abstract

A platform-independent framework that enables devices, such as handheld computers, personal digital assistants (PDAs), Internet enabled phones, laptops, and desktop computers or the like to run business applications offline and synchronize data with a computer system, such as a business electronic commerce system via a standard Internet connection or other network connection. Further, it allows the automatic installation and/or deinstallation of applications on the mobile devices or desktops from the computer system.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application arises from provisional application No. 60/296,234 filed on Jun. 6, 2001 and No. 60/296,993 filed on Jun. 8, 2001 and claims the benefit thereof.[0001]
  • FIELD OF THE INVENTION
  • This invention relates to providing a platform-independent framework that enables devices, such as handheld computers, personal digital assistants (PDAs), Internet-enabled phones, laptops, and desktop computers or the like, to run business applications offline and synchronize data with a computer system, such as a business electronic commerce system, via a standard Internet connection or other connection. Further, it allows the automatic installation and/or deinstallation of applications on the mobile devices or desktops from the computer system. [0002]
  • BACKGROUND OF THE INVENTION
  • Many businesses have a need to exchange information between a central location and employees operating in the field. Much of this information is stored on centralized computer systems and many field employees may have a mobile computing platform, such as a laptop computer, handheld computer, personal digital assistant or Internet-enabled phone with which to work. Thus, it would be beneficial to enable the exchange of information between the computer system and the devices deployed in the field. [0003]
  • One situation where such system would be useful is with a field engineer. At the start of a day, the engineer may need to determine his daily tasks and by the end of the day he may need to report his progress back to his employer. Rather than exchange this information verbally, it would make more sense to download the tasks he has to perform that day from a central computer system onto a mobile computing platform. When he finishes his tasks for the day, or at another convenient time, he could respond to the computer system with reports relating to the calls, setting forth the trouble found, the repair performed, the time it took to complete the job and/or any other desired information. [0004]
  • Another situation where such a system would be useful would be with sales personnel that call on customers. For instance, during a sales call, a customer may desire to change a previously placed order. The sales person would then need to record a modified order. Exchanging this information through a computer system would make much more sense than doing so verbally and would also provide a computer record of the transaction. [0005]
  • Companies, whose employees have a need for such devices, may have different classes of employees that may need different devices for their job functions. Their needs may differ due to size constraints, processing power needs, memory requirements or other reasons. Thus, it may be necessary for a company to deploy more than one type of device that can exchange information with a central computer system. Some jobs may require the use of personal digital assistants, while others require handheld computers, while still others require laptops. Others, that do not involve travel, may require desktops. For ease of use and management, it then becomes important that the software being used to perform the various tasks be platform-independent so that it may run on all devices that such a company may utilize. [0006]
  • It also is important to permit the information to be entered on the devices while the device is offline. Field personnel are not always in locations where they can establish connectivity to the computer system. It would be beneficial, therefore, to enable the field personnel to enter the information they need to transmit back to the computer system when it is convenient for them, such as immediately following a repair, rather than making them enter the information while the device is online with the computer system. [0007]
  • It is also important for ease of use that when people are working offline, the software operates in a similar way with a similar look and feel as though they were actively operating online. [0008]
  • Because a company may have hundreds or thousands of mobile device users that access the computer system from time-to-time, an easy way to keep track of what software is loaded on what device and to control and manage software loads on the devices without inconveniencing the users is imperative. Thus, an easy way to control, manage, and monitor software installation on the devices is needed. [0009]
  • A need exists for a platform-independent mobile framework that would permit mobile devices or desktop computers to run business applications offline and to synchronize data with a computer system over a standard Internet connection or other connection and to facilitate the automatic tracking, downloading, and installation of applications on the mobile devices from the computer system. [0010]
  • SUMMARY OF THE INVENTION
  • An embodiment of the present invention provides a mobile framework that permits mobile devices to run business applications offline and synchronize data with a computer system over a standard Internet connection or other connection. [0011]
  • Another embodiment of the present invention provides a mobile framework that permits mobile devices to run business applications either online or offline and synchronize data with a computer system over a standard Internet connection or other connection. [0012]
  • Another embodiment of the present invention provides a mobile framework that automatically downloads software from a computer system to a mobile device and installs it thereupon. [0013]
  • As such, it is an object of the present invention to permit business applications to be run on a mobile device either online or offline and to synchronize data between the mobile device with a computer system over a standard Internet connection or other connection. [0014]
  • It is a further object of the present invention to permit the automatic downloading and installation of software from a computer system onto a mobile device.[0015]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a mobile device according to an embodiment of the present invention. [0016]
  • FIG. 2 is a block diagram of a mobile device having an API layer according to an embodiment of the present invention. [0017]
  • FIG. 3 is a block diagram of a synchronization system according to an embodiment of the present invention. [0018]
  • FIG. 4 is a block diagram of a computer system having a synchronization system according to an embodiment of the present invention. [0019]
  • FIG. 5 is a flow chart illustrating a synchronization process according to an embodiment of the present invention. [0020]
  • FIG. 6 is a block diagram of a deployment console according to an embodiment of the present invention. [0021]
  • FIG. 7 is a flow chart illustrating a deployment process according to an embodiment of the present invention. [0022]
  • FIG. 8 is a flow chart illustrating a deployment process according to another embodiment of the present invention.[0023]
  • DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The present invention will be better understood by reference to the accompanying drawings. [0024]
  • FIG. 1 depicts a mobile device according to an embodiment of the present invention. [0025] Mobile device 100 may be a PDA, a laptop computer, an Internet capable phone, or another similar device. Preferably, the mobile device has an operating system with Java VM 1.1.4 or PersonalJava and at least about 5 MB of memory. Preferably, mobile engine 110 is based on Java, so that it may run on any platform supporting Java.
  • [0026] Mobile device 100 contains an Internet browser 105. It also contains mobile engine 110. Mobile engine 110 should be capable of generating any standard markup language, such as HTML, so that Internet browser 105 may be a standard browser, such as Microsoft Internet Explorer or Netscape, rather than a proprietary one. However, a proprietary browser could be used on mobile device 100 in addition to or in lieu of the standard browser if desired.
  • When [0027] mobile device 100 is operating with a computer system over the Internet in an online mode and applications are being run from computer system 200 across the connection, browser 105 is connected to computer system 200, such as an application server, in a traditional manner represented by box 197.
  • When [0028] mobile device 100 is operating in an offline mode and applications are being run locally on mobile device 100, mobile engine 110 is engaged. Mobile engine 110 contains two major components: a Java plug-in 90 and various components for data synchronization and deployment. The Java plug-in contains web server 115, servlet engine 120, modular offline application building blocks 125, 130 and 135, and API layer 145. All of the information to start and run the Java plug-in is preferably held in separate property files. For instance, the information related to the web server, including host, port, and wwwroot, can exist in a file named webserver.properties. The information related to mappings, such as URL to servlet mappings, can exist in a file named mappings.properties. The information relating to mimes, such as mime types, can exist in a file named mime.properties.
  • [0029] Web server 115 is preferably programmed in Java and provides the ability for the user of mobile device 100 to log onto web server 115 contained within mobile device 100 when operating offline. By doing so, the user is provided with the same or similar look and feel to operating online over the Internet and can run the same applications offline that the user could run over the Internet in an online mode. Preferably, web server 115 is single threaded and has a small footprint.
  • [0030] Web server 115 is connected to servlet engine 120. Servlet engine 120 enables the mobile device's user to engage various offline applications locally on mobile device 100 through web server 115. Servlet engine would preferably be based upon Java Servlet API 2.1. Web server 115 and servlet engine 120 preferably would meet the Sun Java WebServer 2.0 Specification.
  • Various different programming models can be deployed in [0031] mobile engine 110 as modular offline building blocks. For instance, a proprietary model 125, like SAPMarket's MicroITS, may be deployed which is designed to maximize certain types of transactions based upon the foreseen use of mobile device 100. MicroITS model 125 contains a flow logic parser, HTML business parser, language resource parser/preparser and module provider.
  • A Java [0032] Server Pages model 130 may be deployed to take advantage of Java features. Java Server Pages model 130 would preferably be based upon TomCat.
  • Other models, such as custom plug-in [0033] model 135, can also be used as needed. Custom plug-in model would permit users to implement their own logic. These other models may be proprietary or standards-based. By using modular offline application building blocks and permitting the use of one or more models, the mobile engine architecture is easy to enhance or modify. Moreover, new offline application building blocks can be downloaded and installed via the deployment and installation process discussed hereinafter with respect to FIGS. 6 and 7. Mobile engine API layer 145, which will be discussed in more detail below, provides independence between modular offline application building blocks 125, 130, 135 and servlet engine 120.
  • Modular offline [0034] application building blocks 125, 130, and 135 utilize programming sources stored in memory 140. While memory 140 is shown within mobile engine 110, it may be located elsewhere.
  • Mobile [0035] engine API layer 145 forms an interface between the various programming models 125, 130 and 135 and the application data that resides on database 180 within mobile device 100. While database 180 is shown within mobile engine 110, it may be located elsewhere. By providing API layer 145, alternative programming models, offline applications and services may be incorporated, activated or substituted for existing models, offline applications and services in the future without having to completely reprogram mobile engine 110. API layer 145 contains file I/o APIs, database APIs, synchronization layer APIs and XML parsing APIs.
  • This mobile [0036] engine API layer 145 also provides device independence so that any application can run on any device without specific programming for device specific dependencies. Referring now to FIG. 2, API layer 145 provides an interface between application or service 50 and the mobile device's file programming interface 40 on the mobile device platform 45. Service 50 may be any of the previously mentioned services, such as data exchange 150, or the like, or an offline application.
  • [0037] API layer 145 consists of various module providers, such as EBP.class 5, ISALES.class 10 and MY.class 15. Java methods grouped in packages 20, 30, and 35, such that all methods needed for a specific function are part of a corresponding package, also form part of API layer 145. These methods can be called by the appropriate module provider.
  • For instance, Enterprise Buyer Professional is a product available from SAP Markets, Inc. It provides the ability to coordinate the Internet business procurement process. The product permits the creation of shopping baskets and catalogs. A package for Enterprise Buyer Professional would include the module provider of [0038] EBP.class 5 and the groups of methods basket.class 20 a and catalog.class 20 b.
  • [0039] Module providers 5, 10, and 15 instantiate the appropriate Java method calls and make them available for the flow logic in an application or service. There is always one module provider assigned to each package of the API layer 145.
  • Various services that can be integrated that operate through [0040] API layer 145 are shown. Data exchange 150 is utilized during a synchronization procedure when data is to be exchanged between a computer system and mobile device 100.
  • Many business applications utilize XML. So an [0041] XML translation service 155 can be provided.
  • A [0042] personalization service 160 can be included. Personalization permits the manipulation of settings necessary to operate within a given server environment, such as a server URL, logon data, proxy, etc. Multiple user control can be included if more than one user of a device would be anticipated.
  • An [0043] installation service 165 can also be provided. Installation service 165 automatically installs or uninstalls offline applications, offline application building blocks and other software so that the device is outfitted as it should be based upon a deployment console, as will be discussed in detail later, located at the computer system. The installation service 165 creates a new entry in registry service 175 (discussed below) when a new application is installed and deletes an entry when an offline application is deleted. This function occurs in the background so as to be transparent to the user.
  • [0044] Local database access 170 is provided to permit access to database 180.
  • A [0045] home service 172 can be provided that sets up a homepage that the user accesses offline that provides links to the offline applications resident on the mobile device. Preferably, the synchronization service is accessible through this page by clicking on an icon, for example.
  • [0046] Library service 174 offers standard functionality for application methods. It handles file operations and parsing. Library service 174 contains an open catalog interface and parser for XML parsing, as well as a local data storage encryptor.
  • [0047] Registry service 175 maintains a list of all installed offline applications. Alternatively, registry service 175 can maintain a list of all installed software subject to deployment from the deployment console, which would include at least offline applications and modular offline application building blocks. Preferably, information from the registry 175 is provided to the deployment console during a synchronization and used by the deployment console to make sure that mobile device 100 is outfitted as it should be. The operation of registry service 175 will be discussed in more detail later.
  • [0048] Synchronization layer 185 is part of mobile engine 110. Synchronization layer 185 controls the synchronization of data on mobile device 100 with computer system 200 once the mobile device achieves connection through the Internet (or alternatively, through another means) to computer system 200, such as an application server, as is represented by box 195. The synchronization layer 185 does this by sending the data containers resident in synchronization folder 187. Synchronization layer 185 preferably will contain an inbound/outbound queue, module(s) supporting different types of synchronization, a file handler, an error handler, a SOAP connector for XML, a data transmission security module, a synchronization security module and an authority checker. The details of the creation of such components would be apparent to one skilled in the art. This synchronization layer 185 and synchronization process will be discussed in greater detail later.
  • A few examples of offline applications that can be run on [0049] mobile device 100 are now discussed. Such applications can be created through the use of a tool such as Web Application Builder by SAP, AG. One such application is an easy shopping application. Easy shopping permits one-step wireless shopping and buying, personalized product offerings, seamless integration into a full internet sales cycle, seamless integration into a procurement cycle, intelligent status tracking/synchronization, easy changing web templates, XML catalog content exchange, and provides the identical look and feel for sales and procurement. Functions supported could be catalog, shopping cart, synchronization, and order status. The catalog can include search functionality and can hierarchically group products. The shopping basket allows for the creation of multiple orders and provides order status information. When this data from this application is synchronized with the central computer system, catalog content, orders, and software can be updated.
  • Manager's inbox is another possible offline application. Manager's inbox contains an inbox overview listing incoming messages and work items. View selection can be available. When an inbox item is clicked, the message or the work item can be displayed. Work item details such as the ability to approve or reject a work item and forms can be shown. During synchronization, inbox items, item details, and approvals/forms would be updated. [0050]
  • Plant maintenance is another application. Plant maintenance includes an order section. Functions possible with plant maintenance could include searching for open or released orders, selecting operations, and adding components. The catalog function can provide a hierarchical view catalog with search functionality. During synchronization open and released orders would be exchanged, catalogs would be updated and new components would be added. [0051]
  • The discussion above, with respect to FIG. 1, focused on the use of the framework with a mobile device. Another use for this framework would be to install it as described above on a desktop computer rather than a mobile device or on a laptop that has a more or less permanent network connection. Having such a framework would permit users to run applications offline and then exchange information between the desktop and the computer system during a synchronization process. Thus, when offline application data needs to be provided to the computer system, it is provided to the system through the synchronization layer. The synchronization process can occur upon the clicking of an icon or hyperlink or the like, or alternatively, because a network connection does exist, it can automatically be provided without user intervention when data is available to be sent. [0052]
  • By using the mobile engine framework on a desktop, or laptop with a somewhat permanent network connection, the volume of exchange of information between the computer system and the desktop can be minimized. This would mean that entire HTML pages would no longer need to be exchanged. Instead, just the data of the business objects would be exchanged. [0053]
  • In FIG. 3, a synchronization system according to an embodiment of the present invention is shown. [0054] Mobile device 100 is shown connected to computer system 200 through a connection such as the Internet. Other networks or a direct connection can alternatively be used. The synchronization process could begin through clicking on an icon, button, hyperlink or the like, on a home page displayed via the browser. Alternatively, it could automatically occur upon a link being established between mobile device 100 and computer system 200.
  • Sample Java code for initiating a synchronization process follows: [0055]
    try{
    SyncOutboundContainer.doSync();
    } catch (SyncException ex) {
    // do something
    }
  • [0056] Mobile engine 110, through API layer 145 and synchronization layer 185, talks with functional module 220 on computer system 200 through synchronization RFC 210. This communication is carried out through the use of data containers, such as data container 230.
  • [0057] Data container 230 is normally made up of a header 240 and a body 250. However, certain types of containers may not require a body 250. The header 240 can be made up of the following parts: 1) a container ID that uniquely identifies the particular container; 2) an identification of the user of the device; 3) an identification of the type of container; 4) the method describing which function module should be called in the computer system to process the data; 5) the date the container is sent; 6) the time the container is sent; 7) the date the method was executed to create the data container; 8) the time the method was executed; and 9) the status relating to the data. The body 250 of container 230 can be made up of a container ID, line number, field name and field value.
  • The following is sample Java code for an outgoing data container: [0058]
    String MyOwner; // best the username on the PDA
    try{
    SyncOutboundContainer syncOutboundContainer = new
    SyncOutboundContainer(MyOwner,GETAPPROVERLIST );
    syncOutboundContainer.open();
    String value_for_I_CFGUID = // do something to fill
    value
    syncOutboundContainer.addItem(“I_CFGUID”, 0,
    value_for_I_CFGUID);
    String value_for_I_OBJTYPE = // do something to fill
    value
    syncOutboundContainer.addItem(“I_OBJTYPE”, 0,
    value_for_I_OBJTYPE);
    int NoOfLinesInTable_E_APPROVER;
    for (int line=0; line < NoOfLinesInTable_E_APPROVER ;
    line++) {
    String line for_E_APPROVER = // do something to fill
    line
    syncOutboundContainer.addItem(“E_APPROVER”,line,line_for_E_
    APPROVER);
    }
    syncOutboundContainer.close();
    } catch (SyncException ex) {
    // will always happen if method “GETAPPROVERLIST ” is not
    registered
    }
  • FIG. 4 shows a computer system with synchronization capability and FIG. 5 shows a synchronization process according to an embodiment of the present invention. Preferably, the synchronization layer on the computer system has an inbound/outbound queue, module(s) for different types of synchronization, a dispatcher, a spooler, a file handler, an error handler, a mapping algorithm, a data transmission security module, a synchronization security module, and an authority checker. The details of the creation of such components would be apparent to one skilled in the art. [0059]
  • The embodiment shown in FIG. 5 includes an optional data preservation scheme. In order to preserve the containers, a container is maintained on at least one location. The container on the mobile device will remain on the mobile device if a problem occurs such as the connection getting lost during synchronization. If that occurs, it will be sent automatically with the next synchronization. If there is no entry in the mapping table for the function module call, the container remains in the incoming table on the computer system and a program is used to generate an automatic mapping, as will be discussed later. [0060]
  • If the called function module aborts and creates a dump, the container remains in the incoming table. If the called function module has the wrong interface implemented, it remains on the incoming table. If the data contained in the container is errored, the called function module returns an error message to the mobile device for processing by the offline application. [0061]
  • Making reference now to FIGS. 4 and 5, in [0062] step 230 of FIG. 5, the user of mobile device 100 clicks the synch icon, button, hyperlink, or the like, on the home page to initiate the synchronization process. The synchronization class reads all data containers in the synchronization folder and compares the containers with a history table that records the container IDs for containers already sent by the mobile device 100 and received by computer system 200 as shown in step 232. This is done so that duplicate containers, should they arise for some reason, such as a reboot of the mobile device, can be deleted from the mobile device without sending them.
  • In [0063] step 234, the synchronization class sends the remaining containers over the synchronization transport layer to synchronization RFC function module 210 in the computer system in step 252. In step 236, the synchronization RFC function module 210 writes the incoming containers into container database 260. The incoming containers are stored in database 260 as a failsafe to ensure that the containers are available should a problem occur after they are passed on to mapping layer 265. Synchronization RFC function also reads out from the outgoing container database 275 any data containers with the same class and user as those received and sends them to mobile device 100. Additionally, it sends an acknowledgement for the containers just received and stored in incoming container database 260.
  • In [0064] step 238, the mobile device 100 then writes the container ID referred to by the acknowledgment into a history table indicating that it was previously received by the computer system 200 and no longer needs to be maintained on the mobile device 100. The container is then deleted off of mobile device 100.
  • In [0065] step 240, the incoming containers are read out of inbound container database 260 by scheduled function module 265. In step 242, scheduled function module 265 consults mapping table stored in database 270 to map the data within the container so that it may be processed accordingly. Scheduled function module 265 then calls the appropriate function module 220 to execute the function required in step 244. One such function module could be an EBP processing function, for example.
  • In [0066] step 246, appropriate function module 220 sends back responsive data, such as status, to scheduled function module 265. Scheduled function module 265 then places the data in a container and writes it to outgoing container database 275 in step 248. Depending on the type of incoming containers, the responsive outgoing containers may be sent immediately in step 249 or may be stored until the next time a synchronization process is initiated.
  • At least three separate types of synchronization would preferably be supported. The first type is publish synchronization. In publish synchronization, the type of container used can be called an outbound container. The outbound container is created in [0067] mobile device 100 and, when a connection is present, is sent to computer system 200 for processing. Once it has been received by computer system 200, any return containers waiting to be sent to the same user and of the same method are sent back to the user. The connection is terminated however, prior to any outgoing containers responsive to the data just sent by the user being sent back to the mobile device.
  • The second type of synchronization is online processing. This type is similar to publish but includes return of responsive outgoing containers having processed data relating to the container that was just sent. With online processing synchronization, the owner sends a request-type container. First the connection is made. Then the request-type container is sent. The container is then received by the [0068] computer system 200. Because it is a request type container, the computer system returns not only any containers waiting to be sent to the same owner of the same method, but also processes the incoming container and sends a response to that container prior to the connection being terminated.
  • The third type of synchronization is subscribe. Subscribe synchronization is used to check on the status of previously sent containers. For instance, it can be used to check on the status of an electronic order placed through a shopping cart. The owner sends a notify-type container to [0069] computer system 200. Computer system 200 then returns containers of same method and user. Such containers need not include a body, as the status information is contained within the head of the containers.
  • Development tools can be utilized with the mobile engine according to an embodiment of the present invention. On the computer system, a generator tool can generate the wrapper function module that maps the generic structure of a container to the individual interface of a function module and generate the table entries for the mapping table. Preferably, the tool will utilize the programming language of the computer system. A tool can also be used as a Java class generator to handle flow logic to Java for modular offline [0070] application building blocks 125 and/or 135. Preferably, the tool utilizes Java on the mobile device. These tools are essentially translators. Creation of such translators would be well within the abilities of one of ordinary skill in the art. A computer aided test tool can also be created and used for modular application building blocks 125 and/or 135.
  • Referring now to FIG. 6, to handle the management of the myriad of differently programmed mobile devices, a [0071] deployment console 400 is resident on the computer system as one of the application function modules 220. Deployment console 400 is preferably programmed in a language supported by computer system 200. For example, if the computer system is a MySAP Workplace system by SAP, AG, then the deployment console could be programmed in ABAP.
  • [0072] Deployment console 400 has an overview of all installed offline applications per user and device through an installation log 432 that records that an installation has occurred whenever an offline application, modular offline application building blocks or other software is deployed and installed on a device.
  • Some computer systems serving a plurality of users install applications according to user roles. For example, an employee may have a role of salesman, field engineer, secretary, or the like. [0073] Role assignment module 410 permits an administrator to assign a user to a role and to assign what software should be installed for each role. A user may have one or more roles if desired.
  • Because, in some cases, deviation from a strict role-based regiment may be desired, [0074] personal assignment module 412 can be provided. Personal assignment module 412 would permit an administration to assign an application that may be needed by an individual, but not by others within the same role. For example, a vice president of sales may be assigned a role of vice president, but may need some but not all applications of the salesman role. Personal assignment module 412 would permit such customization.
  • The [0075] deployment console 400 can also manage versions of software for deployment by defining the current version of each offline application that should be installed. Version control module 416 provides an administrator with this functionality.
  • Storage media, such as [0076] database 418, keeps track of what software should be installed on each device for each user. This data stored therein is based upon the parameters set by role assignment module 410, personal assignment module 412 and version control module 416.
  • [0077] Storage media 436 is provided upon which software that may be downloaded to a device and installed thereupon is provided. Such software may include offline applications, modular offline application building blocks, patches, and other software.
  • [0078] Installation protocol module 434 is provided. It permits an administrator to update or alter installation protocol.
  • Device type/[0079] ID handler 440 is provided which determines how to handle different device types.
  • [0080] Installer 430 is provided that retrieves software from storage media 436 for downloading and installation on a device. This is done based upon the comparison of information from a registry service on a device to information stored in database 418 relating to what is supposed to be resident on that particular device. Additionally, installer 430 is equipped to provide mobile device with a deinstall instruction should the information from the registry service indicate that software is installed on the device that should not be.
  • When [0081] installer 430 retrieves software from storage media 436 and sends it off to a device and retrieves a notice from the device that the software was received, it stores the information relating to the download and install in install log 432. Install log 432, database 418, and storage media 436 may be collocated or separate. Moreover, they may be a part of deployment console 400 as shown, or alternatively, any of them may be located externally.
  • A process for deploying and installing the framework according to an embodiment of the present invention is shown in FIG. 7. [0082]
  • In order to install the mobile engine framework, a user opens [0083] browser 105 on mobile device 100 and connects to computer system 200 online as shown in step 300. Once online, an install mobile engine icon, hyperlink or the like is displayed. In step 305, the user selects to install mobile engine 110 by clicking on the icon, hyperlink or the like.
  • In [0084] step 310, the mobile engine framework is downloaded to mobile device 100 and, preferably, is automatically installed by installation service 165. Once installation is complete, the user connects into the deployment console system in step 315.
  • Upon this connection, a data container containing information from [0085] registry service 175 is sent to a deployment console on computer system 200. As shown in step 325, the console reads the registry and determines that no offline applications are currently installed on mobile device 100 and then downloads the appropriate applications that are supposed to reside on mobile device 100. These offline applications are installed automatically by installation service 165. Installation service 165 also automatically updates registry service 175 to reflect the installation of the new offline applications.
  • When a deployment console receives information from a registry service that indicates an outdated version of a program or a version requiring a patch is resident on a mobile device, the current version and/or patch can be sent to the device and installed and the old version deinstalled, as needed, just as any other program, as will be described with respect to FIG. 8. It should also maintain error logs sent by the mobile devices. [0086]
  • In FIG. 8, a process using the registry in association with the deployment console is depicted. In [0087] step 350, the user opens browser 105 and connects to computer system 200 through the Internet, or the like, using the synchronization function. As part of the synchronization process, mobile device 100 then sends a data container containing the data within the registry service 175 that is eventually retrieved by the deployment console as shown in step 355. This retrieval may be in the manner discussed above relating to the retrieval of data from data containers during the synchronization process.
  • The console then compares the data from [0088] registry service 175 to stored information that reflects what offline applications (or alternatively what software that is subject to deployment through deployment console) are supposed to be resident on mobile device 100 in step 360. In step 365, it is determined if changes need to be made to the mobile device. A few examples of changes that may need to be made include: 1) an offline application may no longer be authorized and may need to be deleted from the mobile device; 2) a new application may need to be added; 3) a new version of an existing application may need to be placed on the mobile device; 4) a patch for an existing application may need to be installed on the mobile device; 5) modular application building blocks may need to be deleted and/or installed; and 6) other software such as special extra HTML pages and/or graphics, for example, may need to be added or deleted, such as for a “Christmas” special.
  • If no changes need to be made, then the routine ends. If changes do need to be made, it is determined if a deinstall or an install needs to be performed. In [0089] step 370, it is determined if a deinstall is needed. If one is, then a data container is sent to mobile device 100 directing installation function 165 to deinstall the appropriate offline application or other software. It is then determined if an install is necessary in step 385. If no install is needed, then the routine ends. If an install is needed, in step 390, the offline application or other software to be installed is downloaded to mobile device and installed automatically through the installation function 165.
  • This sending of the registry occurs each time there is a synchronization process. This way the deployment console keeps the mobile devices outfitted as they should be. [0090]
  • Although the preferred embodiments of the present invention have been described and illustrated in detail, it will be evident to those skilled in the art that various modifications and changes may be made thereto without departing from the spirit and scope of the invention as set forth in the appended claims and equivalents thereof. [0091]

Claims (36)

What is claimed is:
1. A framework for use with a device and a computer system comprising:
a web server, said web server being located on said device;
a programming model said programming model being used to run an offline application on said device;
an offline application, said offline application being related to an application resident on said computer system;
applications data,
an API layer, said APT layer providing an interface between said programming model and said applications data;
a synchronization layer, said synchronization layer being capable of performing a synchronization of applications data upon said device and upon said computer system.
2. A framework as in claim 1, wherein said web server is programmed in Java.
3. A framework as in claim 1, wherein said synchronization layer supports a plurality of types of synchronization.
4. A framework as in claim 3, wherein said plurality of types of synchronization comprise publish, subscribe and online synchronization.
5. A framework as in claim 1, wherein said synchronization layer synchronizes data between said device and said computer system through data containers, each of said data containers comprising a header.
6. A framework as in claim 5, wherein said header comprises a container ID, a user ID, a type of container, a method ID, a send date, a send time, an execution date, an execution time, and a status.
7. A framework as in claim 5, wherein at least one of said data containers further comprises a body, said body comprising a container ID, line number, field name, and field value.
8. A framework as in claim 5, wherein said container remains on said device at least until said device has received notification from said computer system that said container was received.
9. A framework as in claim 1, wherein additional offline applications can be deployed automatically from said computer system to said device.
10. A framework as in claim 9, wherein said deployment is at least in part role-based.
11. A framework as in claim 9, wherein said computer system comprises a deployment console, said deployment console comprising information related to which offline applications are intended to be installed on said device.
12. A framework as in claim 11, wherein said deployment console facilitates version management.
13. A framework as in claim 11, wherein said deployment console facilitates manual assignment of offline applications to be installed on said device.
14. A framework as in claim 11, wherein said deployment console comprises a log of errors sent by said device.
15. A framework as in claim 11, wherein said device comprises a registry, said registry comprising an indication of all offline applications resident on said device.
16. A framework as in claim 15, wherein said registry is sent to said computer system upon said connection being made between said device and said computer system.
17. A framework as in claim 16, wherein said deployment consol compares said registry to said information related to which offline applications are intended to be installed.
18. A framework as in claim 17, wherein if said comparison determines that an offline application not intended to be installed on said device is installed on said device, said computer system sends a message to said device, said message comprising an instruction to deinstall said offline application not intended to be installed on said device.
19. A framework as in claim 18, wherein said deinstallation takes place automatically in the background.
20. A framework as in claim 17, wherein if said comparison determines that an offline application intended to be installed on said device is not installed on said device, said computer system downloads said offline application to said device for installation by said device.
21. A framework as in claim 20, wherein said installation takes place automatically in the background.
22. A framework as in claim 1, wherein said device comprises a personalized start page displaying offline applications available to a user of said device.
23. A framework as in claim 1, wherein said device further comprises a library, said library offering standard functionality for application methods.
24. A framework as in claim 1, wherein said synchronization occurs upon initiation by a user on a homepage of said device when a connection between said device and said computer system is present.
25. A framework as in claim 1, wherein said offline application comprises a shopping application, said shopping application providing catalog, search functionality, shopping baskets, and status information.
26. A framework as in claim 25, wherein during a synchronization, catalog content and orders in said shopping application are able to be updated.
27. A framework as in claim 1, wherein said offline application comprises a manager's inbox application, said manager's inbox application facilitating a users' handling of incoming messages, work tasks, said work tasks being subject to approval or disapproval by said user, forms, said manager's inbox further providing view selection capability.
28. A framework as in claim 27, wherein during a synchronization, incoming messages, work tasks, approvals, disapprovals and forms in said manager's inbox application are able to be updated.
29. A framework as in claim 1, wherein said offline application comprises a plant maintenance application, said plant maintenance application facilitating a user's search for open/released orders, selection of operations, addition of components, said plant maintenance application further providing a catalog with search functionality.
30. A framework as in claim 29, wherein during a synchronization, open/released orders, catalogs, and new components in said plant maintenance application are able to be updated.
31. A framework as in claim 1, wherein said device comprises a handheld computer.
32. A framework as in claim 1, wherein said device comprises a personal digital assistant.
33. A framework as in claim 1, wherein said device comprises an Internet-enabled phone.
34. A framework as in claim 1, wherein said device comprises a laptop computer.
35. A framework as in claim 1, wherein said device comprises a desktop computer.
36. A framework as in claim 1, wherein said computer system comprises an application server.
US10/164,224 2001-06-06 2002-06-05 Framework for a device and a computer system needing synchronization Abandoned US20030055927A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/164,224 US20030055927A1 (en) 2001-06-06 2002-06-05 Framework for a device and a computer system needing synchronization

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29623401P 2001-06-06 2001-06-06
US29699301P 2001-06-08 2001-06-08
US10/164,224 US20030055927A1 (en) 2001-06-06 2002-06-05 Framework for a device and a computer system needing synchronization

Publications (1)

Publication Number Publication Date
US20030055927A1 true US20030055927A1 (en) 2003-03-20

Family

ID=26969557

Family Applications (6)

Application Number Title Priority Date Filing Date
US10/164,187 Abandoned US20030046448A1 (en) 2001-06-06 2002-06-05 Application programming interface layer for a device
US10/164,188 Abandoned US20030046017A1 (en) 2001-06-06 2002-06-05 Deployment console for use with a computer system deploying software to remotely located devices
US10/164,145 Expired - Lifetime US7143419B2 (en) 2001-06-06 2002-06-05 Device for running offline applications and synchronizing with a central computer system
US10/164,224 Abandoned US20030055927A1 (en) 2001-06-06 2002-06-05 Framework for a device and a computer system needing synchronization
US10/164,225 Expired - Lifetime US7162543B2 (en) 2001-06-06 2002-06-05 Process for synchronizing data between remotely located devices and a central computer system
US10/164,248 Abandoned US20030056207A1 (en) 2001-06-06 2002-06-05 Process for deploying software from a central computer system to remotely located devices

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US10/164,187 Abandoned US20030046448A1 (en) 2001-06-06 2002-06-05 Application programming interface layer for a device
US10/164,188 Abandoned US20030046017A1 (en) 2001-06-06 2002-06-05 Deployment console for use with a computer system deploying software to remotely located devices
US10/164,145 Expired - Lifetime US7143419B2 (en) 2001-06-06 2002-06-05 Device for running offline applications and synchronizing with a central computer system

Family Applications After (2)

Application Number Title Priority Date Filing Date
US10/164,225 Expired - Lifetime US7162543B2 (en) 2001-06-06 2002-06-05 Process for synchronizing data between remotely located devices and a central computer system
US10/164,248 Abandoned US20030056207A1 (en) 2001-06-06 2002-06-05 Process for deploying software from a central computer system to remotely located devices

Country Status (4)

Country Link
US (6) US20030046448A1 (en)
EP (6) EP1407364A4 (en)
AU (4) AU2002314948A1 (en)
WO (6) WO2002099596A2 (en)

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023657A1 (en) * 2001-06-06 2003-01-30 Claudius Fischer Device for running offline applications and synchronizing with a central computer system
US20030061247A1 (en) * 2001-09-21 2003-03-27 Benjamin Renaud Method and apparatus for smart directories for application deployment
WO2004092982A2 (en) * 2003-04-07 2004-10-28 Dexterra, Inc. System and method for context sensitive mobile data and software update
US20050050142A1 (en) * 2003-08-28 2005-03-03 Aligo Inc. Method and framework for transaction synchronization
US20050097061A1 (en) * 2003-10-31 2005-05-05 Shapiro William M. Offline access in a document control system
US20050097441A1 (en) * 2003-10-31 2005-05-05 Herbach Jonathan D. Distributed document version control
WO2005101239A1 (en) * 2004-04-13 2005-10-27 Nokia Corporation Sharing of data between devices
US20060161471A1 (en) * 2005-01-19 2006-07-20 Microsoft Corporation System and method for multi-dimensional average-weighted banding status and scoring
US20070050237A1 (en) * 2005-08-30 2007-03-01 Microsoft Corporation Visual designer for multi-dimensional business logic
WO2007032766A1 (en) * 2005-09-13 2007-03-22 Quark, Inc. Systems and methods for call center processing
US20070112607A1 (en) * 2005-11-16 2007-05-17 Microsoft Corporation Score-based alerting in business logic
US20070143175A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Centralized model for coordinating update of multiple reports
US20070143161A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Application independent rendering of scorecard metrics
US20070143174A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Repeated inheritance of heterogeneous business metrics
US20070156680A1 (en) * 2005-12-21 2007-07-05 Microsoft Corporation Disconnected authoring of business definitions
US20070234198A1 (en) * 2006-03-30 2007-10-04 Microsoft Corporation Multidimensional metrics-based annotation
US20070255681A1 (en) * 2006-04-27 2007-11-01 Microsoft Corporation Automated determination of relevant slice in multidimensional data sources
US20070254740A1 (en) * 2006-04-27 2007-11-01 Microsoft Corporation Concerted coordination of multidimensional scorecards
US7366460B2 (en) 2003-01-23 2008-04-29 Dexterra, Inc. System and method for mobile data update
US20080104195A1 (en) * 2006-10-30 2008-05-01 Microsoft Corporation Offline execution of web based applications
US20080172414A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Business Objects as a Service
US20080172287A1 (en) * 2007-01-17 2008-07-17 Ian Tien Automated Domain Determination in Business Logic Applications
US20080172629A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Geometric Performance Metric Data Rendering
US20080172348A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Statistical Determination of Multi-Dimensional Targets
US20080184130A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation Service Architecture Based Metric Views
US20080184099A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Data-Driven Presentation Generation
US20080183564A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation Untethered Interaction With Aggregated Metrics
US20080189724A1 (en) * 2007-02-02 2008-08-07 Microsoft Corporation Real Time Collaboration Using Embedded Data Visualizations
US20080189632A1 (en) * 2007-02-02 2008-08-07 Microsoft Corporation Severity Assessment For Performance Metrics Using Quantitative Model
US20090248695A1 (en) * 2008-03-31 2009-10-01 Microsoft Corporation Online and offline applications
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8190992B2 (en) 2006-04-21 2012-05-29 Microsoft Corporation Grouping and display of logically defined reports
US8527361B2 (en) * 2011-06-27 2013-09-03 Amazon Technologies, Inc. Service for adding in-application shopping functionality to applications
US8762578B2 (en) 2004-05-18 2014-06-24 Koninklijke Philips N.V. Method of data synchronization
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US9710248B2 (en) 2013-05-29 2017-07-18 Microsoft Technology Licensing, Llc Application install and layout syncing
US10044836B2 (en) * 2016-12-19 2018-08-07 Palantir Technologies Inc. Conducting investigations under limited connectivity
US10452222B2 (en) 2013-05-29 2019-10-22 Microsoft Technology Licensing, Llc Coordination of system readiness tasks
US10656800B2 (en) 2013-03-29 2020-05-19 Microsoft Technology Licensing, Llc Visual configuration and activation
US10839329B2 (en) 2016-10-25 2020-11-17 Sap Se Process execution using rules framework flexibly incorporating predictive modeling
US11016784B2 (en) 2019-03-08 2021-05-25 Palantir Technologies Inc. Systems and methods for automated deployment and adaptation of configuration files at computing devices
US11063744B2 (en) 2017-10-20 2021-07-13 Sap Se Document flow tracking using blockchain
US11580440B2 (en) 2016-12-02 2023-02-14 Sap Se Dynamic form with machine learning

Families Citing this family (341)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689721B2 (en) * 1998-05-29 2010-03-30 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
JP2001093226A (en) 1999-09-21 2001-04-06 Sony Corp Information communication system and method, and information communication device and method
JP4507319B2 (en) * 1999-12-17 2010-07-21 ソニー株式会社 Information processing device, information processing method, program, recording medium, terminal device, system, and system method
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US7716163B2 (en) 2000-06-06 2010-05-11 Microsoft Corporation Method and system for defining semantic categories and actions
US7770102B1 (en) 2000-06-06 2010-08-03 Microsoft Corporation Method and system for semantically labeling strings and providing actions based on semantically labeled strings
US7712024B2 (en) 2000-06-06 2010-05-04 Microsoft Corporation Application program interfaces for semantically labeling strings and providing actions based on semantically labeled strings
US7788602B2 (en) * 2000-06-06 2010-08-31 Microsoft Corporation Method and system for providing restricted actions for recognized semantic categories
US7219304B1 (en) * 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7778816B2 (en) * 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
JP4936037B2 (en) * 2001-08-31 2012-05-23 ソニー株式会社 Information processing apparatus and method, and program
US20030167318A1 (en) * 2001-10-22 2003-09-04 Apple Computer, Inc. Intelligent synchronization of media player with host computer
US6934812B1 (en) * 2001-10-22 2005-08-23 Apple Computer, Inc. Media player with instant play capability
JP4204977B2 (en) * 2001-10-22 2009-01-07 アップル インコーポレイテッド Intelligent sync operation for media players
WO2003058375A2 (en) 2001-10-26 2003-07-17 Zeosoft Corporation Development, management of distributed clients and servers
WO2003058372A2 (en) * 2002-01-07 2003-07-17 Flash Networks Ltd. A system and a method for accelerating communication between client and an email server
US8204930B1 (en) * 2002-02-15 2012-06-19 F5 Networks, Inc. Method and system for controlling and accessing content servers
US7571221B2 (en) * 2002-04-03 2009-08-04 Hewlett-Packard Development Company, L.P. Installation of network services in an embedded network server
US9412417B2 (en) * 2002-04-05 2016-08-09 Apple Inc. Persistent group of media items for a media device
US7797446B2 (en) 2002-07-16 2010-09-14 Apple Inc. Method and system for updating playlists
US7433546B2 (en) * 2004-10-25 2008-10-07 Apple Inc. Image scaling arrangement
US7680849B2 (en) 2004-10-25 2010-03-16 Apple Inc. Multiple media type synchronization between host computer and media device
US7827259B2 (en) * 2004-04-27 2010-11-02 Apple Inc. Method and system for configurable automatic media selection
US9715500B2 (en) * 2004-04-27 2017-07-25 Apple Inc. Method and system for sharing playlists
US8150937B2 (en) * 2004-10-25 2012-04-03 Apple Inc. Wireless synchronization between media player and host device
US8151259B2 (en) * 2006-01-03 2012-04-03 Apple Inc. Remote content updates for portable media devices
US7818365B2 (en) * 2002-05-01 2010-10-19 Sybase, Inc. System, method, and computer program product for online and offline interactive applications on mobile devices
US7707496B1 (en) 2002-05-09 2010-04-27 Microsoft Corporation Method, system, and apparatus for converting dates between calendars and languages based upon semantically labeled strings
US7742048B1 (en) 2002-05-23 2010-06-22 Microsoft Corporation Method, system, and apparatus for converting numbers based upon semantically labeled strings
US7707024B2 (en) * 2002-05-23 2010-04-27 Microsoft Corporation Method, system, and apparatus for converting currency values based upon semantically labeled strings
US7281245B2 (en) * 2002-06-05 2007-10-09 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US7827546B1 (en) 2002-06-05 2010-11-02 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US7356537B2 (en) * 2002-06-06 2008-04-08 Microsoft Corporation Providing contextually sensitive tools and help content in computer-generated documents
US9171049B2 (en) * 2002-06-13 2015-10-27 Salesforce.Com, Inc. Offline simulation of online session between client and server
US7716676B2 (en) 2002-06-25 2010-05-11 Microsoft Corporation System and method for issuing a message to a program
US7209915B1 (en) 2002-06-28 2007-04-24 Microsoft Corporation Method, system and apparatus for routing a query to one or more providers
US7166791B2 (en) 2002-07-30 2007-01-23 Apple Computer, Inc. Graphical user interface and methods of use thereof in a multimedia player
US7956272B2 (en) 2002-07-30 2011-06-07 Apple Inc. Management of files in a personal communication device
US20040216139A1 (en) * 2002-08-21 2004-10-28 Rhoda Merlin A. System controlling test/measurement devices on a network using markup language documents and methods thereof
US20040040023A1 (en) * 2002-08-22 2004-02-26 Ellis David G. Remote identification loader
US7373414B2 (en) 2002-08-29 2008-05-13 Amx Llc Multi-media system and method for simultaneously delivering multi-media data to multiple destinations
US20040054757A1 (en) * 2002-09-14 2004-03-18 Akinobu Ueda System for remote control of computer resources from embedded handheld devices
TWI231669B (en) * 2002-11-02 2005-04-21 Ibm System and method for using portals by mobile devices in a disconnected mode
US7359991B2 (en) * 2002-11-05 2008-04-15 Microsoft Corporation Folder synchronization
US20040142683A1 (en) * 2002-11-08 2004-07-22 Matt Clark Programming interface layer of a service provider for data service delivery
US20060164239A1 (en) * 2003-01-14 2006-07-27 Loda David C Shipping container and method of using same
US7783614B2 (en) * 2003-02-13 2010-08-24 Microsoft Corporation Linking elements of a document to corresponding fields, queries and/or procedures in a database
US7296255B2 (en) * 2003-02-25 2007-11-13 Bea Systems, Inc. Systems for incremental application deployment
US20040172584A1 (en) * 2003-02-28 2004-09-02 Microsoft Corporation Method and system for enhancing paste functionality of a computer software application
US7809679B2 (en) * 2003-03-03 2010-10-05 Fisher-Rosemount Systems, Inc. Distributed data access methods and apparatus for process control systems
US7305681B2 (en) * 2003-03-20 2007-12-04 Nokia Corporation Method and apparatus for providing multi-client support in a sip-enabled terminal
US20040205749A1 (en) * 2003-03-26 2004-10-14 Lockheed Martin Corporation System for enabling application software of data acquisition devices
US7831199B2 (en) * 2006-01-03 2010-11-09 Apple Inc. Media data exchange, transfer or delivery for portable electronic devices
US7724716B2 (en) 2006-06-20 2010-05-25 Apple Inc. Wireless communication system
US7711550B1 (en) 2003-04-29 2010-05-04 Microsoft Corporation Methods and system for recognizing names in a computer-generated document and for providing helpful actions associated with recognized names
US7221331B2 (en) * 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US7827232B2 (en) 2003-05-05 2010-11-02 Microsoft Corporation Record button on a computer system
US7551199B2 (en) * 2003-05-05 2009-06-23 Microsoft Corporation Computer camera system and method for reducing parallax
US20040235520A1 (en) * 2003-05-20 2004-11-25 Cadiz Jonathan Jay Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer
US20040267812A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Media platform
US7739588B2 (en) 2003-06-27 2010-06-15 Microsoft Corporation Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data
US7860727B2 (en) * 2003-07-17 2010-12-28 Ventana Medical Systems, Inc. Laboratory instrumentation information management and control network
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
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7549145B2 (en) 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7389508B2 (en) 2003-09-25 2008-06-17 International Business Machines Corporation System and method for grouping processors and assigning shared memory space to a group in heterogeneous computer environment
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7415703B2 (en) * 2003-09-25 2008-08-19 International Business Machines Corporation Loading software on a plurality of processors
US7496917B2 (en) 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7516456B2 (en) 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US7444632B2 (en) 2003-09-25 2008-10-28 International Business Machines Corporation Balancing computational load across a plurality of processors
US7475257B2 (en) * 2003-09-25 2009-01-06 International Business Machines Corporation System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US20050071828A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation System and method for compiling source code for multi-processor environments
US7548255B2 (en) * 2003-09-30 2009-06-16 Microsoft Corporation Method and system for capturing video on a personal computer
US7216221B2 (en) 2003-09-30 2007-05-08 Microsoft Corporation Method and system for unified audio control on a personal computer
US7565650B2 (en) * 2003-10-23 2009-07-21 International Business Machines Corporation Method, apparatus and computer program product for deploying software via post-load images
US20050102429A1 (en) * 2003-11-06 2005-05-12 Sap Ag Portal cluster manager
US8055996B2 (en) * 2003-11-13 2011-11-08 International Business Machines Corporation Lightweight form pattern validation
US20050108690A1 (en) * 2003-11-17 2005-05-19 Tira Wireless Inc. System and method of generating applications for mobile devices
JP4666906B2 (en) * 2003-12-04 2011-04-06 株式会社ブロードリーフ Method for detecting violation of system environment rules of client device
US7487513B1 (en) 2003-12-30 2009-02-03 Sap Ag Web service archive
US20050182617A1 (en) * 2004-02-17 2005-08-18 Microsoft Corporation Methods and systems for providing automated actions on recognized text strings in a computer-generated document
US7315791B2 (en) * 2004-02-18 2008-01-01 National Instruments Corporation Application programming interface for synchronizing multiple instrumentation devices
US8239858B2 (en) 2004-02-25 2012-08-07 Research In Motion Limited Method and system for selecting a program for download
WO2005116888A2 (en) * 2004-05-26 2005-12-08 Man Bytes Dog Limited Method of providing computing resources to computers operated by different companies
US8443038B2 (en) 2004-06-04 2013-05-14 Apple Inc. Network media device
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US8797926B2 (en) 2004-06-04 2014-08-05 Apple Inc. Networked media station
US10972536B2 (en) 2004-06-04 2021-04-06 Apple Inc. System and method for synchronizing media presentation at multiple recipients
US7444342B1 (en) * 2004-08-06 2008-10-28 Unisys Corporation System for accessing and transforming data, information and data relational rules in a multi-dimensional database
US8261246B1 (en) 2004-09-07 2012-09-04 Apple Inc. Method and system for dynamically populating groups in a developer environment
US20060101374A1 (en) * 2004-10-14 2006-05-11 Beng Giap Lim Enterprise management system installer
US7706637B2 (en) * 2004-10-25 2010-04-27 Apple Inc. Host configured for interoperation with coupled portable media player device
US20060095898A1 (en) * 2004-10-28 2006-05-04 International Business Machines Corporation Method for integrating multiple object files from heterogeneous architectures into a set of files
JP4549809B2 (en) * 2004-10-29 2010-09-22 京セラ株式会社 Mobile phone terminal, program management method and computer program
US20060130054A1 (en) * 2004-11-12 2006-06-15 Research In Motion Limited System and method for downloading or enabling download of a program from a program store location
US7342584B2 (en) * 2004-11-18 2008-03-11 Amx, Llc Method and computer program for implementing interactive bargraphs of any shape or design on a graphical user interface
US7634780B2 (en) * 2004-11-23 2009-12-15 Microsoft Corporation Method and system for exchanging data between computer systems and auxiliary displays
US7711868B2 (en) 2004-11-23 2010-05-04 Microsoft Corporation Waking a main computer system to pre-fetch data for an auxiliary computing device
US7581034B2 (en) * 2004-11-23 2009-08-25 Microsoft Corporation Sending notifications to auxiliary displays
US20060136901A1 (en) * 2004-12-22 2006-06-22 Sony Ericsson Mobile Communications Ab Mobile financial transaction management system and method
US11314378B2 (en) 2005-01-07 2022-04-26 Apple Inc. Persistent group of media items for a media device
US7958441B2 (en) * 2005-01-07 2011-06-07 Apple Inc. Media management for groups of media items
US7536565B2 (en) * 2005-01-07 2009-05-19 Apple Inc. Techniques for improved playlist processing on media devices
US7784065B2 (en) * 2005-02-07 2010-08-24 Microsoft Corporation Interface for consistent program interaction with auxiliary computing devices
US7546586B2 (en) * 2005-02-15 2009-06-09 Microsoft Corporation Multi-Interface aware scenario execution environment
DE102005009558A1 (en) * 2005-03-02 2006-06-08 Siemens Ag Process and installion to create a client-specific financial offer to lease medical applicances whereby centrally held base data are copied to a localized calculating unit which generates offer using program
US7797399B1 (en) * 2005-03-14 2010-09-14 Qurio Holdings, Inc. Method and system for allowing distributed importing of guest images in a peer-based photosharing network
US7739682B1 (en) * 2005-03-24 2010-06-15 The Weather Channel, Inc. Systems and methods for selectively blocking application installation
US20060242590A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Simple content format for auxiliary display devices
US8300841B2 (en) 2005-06-03 2012-10-30 Apple Inc. Techniques for presenting sound effects on a portable media player
US7698712B2 (en) * 2005-07-21 2010-04-13 Sap Ag Selectively transmitting transaction data
US7532906B2 (en) * 2005-07-29 2009-05-12 Sap Ag Mobile electronic device and methods for providing information to a mobile electronic device using a web service
US7590772B2 (en) 2005-08-22 2009-09-15 Apple Inc. Audio status information for a portable electronic device
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US7788590B2 (en) * 2005-09-26 2010-08-31 Microsoft Corporation Lightweight reference user interface
US7992085B2 (en) 2005-09-26 2011-08-02 Microsoft Corporation Lightweight reference user interface
US7930369B2 (en) 2005-10-19 2011-04-19 Apple Inc. Remotely configured media device
US9497292B2 (en) * 2005-11-18 2016-11-15 Adobe Systems Incorporated Facilitating the operation of a client/server application while a client is offline or online
US8654993B2 (en) 2005-12-07 2014-02-18 Apple Inc. Portable audio device providing automated control of audio volume parameters for hearing protection
CN100407656C (en) * 2005-12-09 2008-07-30 华为技术有限公司 Method and system for managing terminal equipment
US8321859B2 (en) 2005-12-22 2012-11-27 Alan Joshua Shapiro Method and apparatus for dispensing on a data-storage medium customized content comprising selected assets
CN101390050B (en) 2005-12-22 2018-04-24 艾伦·J·薛比洛 Reach the apparatus and method of selectivity distribution software resource by subtractive installation
US8255640B2 (en) * 2006-01-03 2012-08-28 Apple Inc. Media device with intelligent cache utilization
US7673238B2 (en) * 2006-01-05 2010-03-02 Apple Inc. Portable media device with video acceleration capabilities
BRPI0706686A2 (en) * 2006-01-19 2011-04-05 Belron Us Inc method and device for providing location-based content distribution
US7848527B2 (en) * 2006-02-27 2010-12-07 Apple Inc. Dynamic power management in a portable media delivery system
KR100782858B1 (en) * 2006-04-11 2007-12-06 삼성전자주식회사 Method and apparatus for synchronizing contents of home network devices
US7831786B2 (en) * 2006-05-08 2010-11-09 Research In Motion Limited Sharing memory resources of wireless portable electronic devices
US8073984B2 (en) 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
US20070271116A1 (en) 2006-05-22 2007-11-22 Apple Computer, Inc. Integrated media jukebox and physiologic data handling application
US9137309B2 (en) * 2006-05-22 2015-09-15 Apple Inc. Calibration techniques for activity sensing devices
US20070270663A1 (en) * 2006-05-22 2007-11-22 Apple Computer, Inc. System including portable media player and physiologic data gathering device
US7643895B2 (en) * 2006-05-22 2010-01-05 Apple Inc. Portable media device with workout support
US8358273B2 (en) * 2006-05-23 2013-01-22 Apple Inc. Portable media device with power-managed display
US7738920B1 (en) * 2006-07-12 2010-06-15 Sprint Communications Company L.P. Operating a computing device with an operating system and a wireless data access on a mobile device
US8353048B1 (en) 2006-07-31 2013-01-08 Sprint Communications Company L.P. Application digital rights management (DRM) and portability using a mobile device for authentication
US7913297B2 (en) * 2006-08-30 2011-03-22 Apple Inc. Pairing of wireless devices using a wired medium
US7813715B2 (en) * 2006-08-30 2010-10-12 Apple Inc. Automated pairing of wireless accessories with host devices
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US7997498B2 (en) * 2006-09-08 2011-08-16 Mastercard International, Inc. Identification of installable card
US20080061150A1 (en) * 2006-09-08 2008-03-13 Simon Phillips Identification token and method of making identification token
US7729791B2 (en) * 2006-09-11 2010-06-01 Apple Inc. Portable media playback device including user interface event passthrough to non-media-playback processing
US8090130B2 (en) * 2006-09-11 2012-01-03 Apple Inc. Highly portable media devices
US8341524B2 (en) * 2006-09-11 2012-12-25 Apple Inc. Portable electronic device with local search capabilities
US7743328B2 (en) * 2006-10-12 2010-06-22 Microsoft Corporation Preserving a process instance for use by different user interfaces
US7861931B2 (en) * 2006-11-06 2011-01-04 Mastercard International, Inc. Method, apparatus, assembly and kit for identification token
US20100198937A1 (en) * 2006-12-29 2010-08-05 Bernard Schletz Management of data for installation on a remote device
US8730012B2 (en) * 2007-01-05 2014-05-20 Mastercard International Incorporated Enabling identification token for a timed period
US10083184B2 (en) * 2007-01-07 2018-09-25 Apple Inc. Widget synchronization in accordance with synchronization preferences
US20080168185A1 (en) * 2007-01-07 2008-07-10 Robbin Jeffrey L Data Synchronization with Host Device in Accordance with Synchronization Preferences
US8850140B2 (en) 2007-01-07 2014-09-30 Apple Inc. Data backup for mobile device
US8631088B2 (en) 2007-01-07 2014-01-14 Apple Inc. Prioritized data synchronization with host device
US7589629B2 (en) * 2007-02-28 2009-09-15 Apple Inc. Event recorder for portable media device
US20080215664A1 (en) * 2007-03-01 2008-09-04 Microsoft Corporation Occasionally connected edge application architecture
US7698101B2 (en) * 2007-03-07 2010-04-13 Apple Inc. Smart garment
US20100005102A1 (en) * 2007-03-22 2010-01-07 Arinc Incorporated Method and apparatus for managing document/message content for distribution to subscribers
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8626771B2 (en) * 2007-06-29 2014-01-07 Microsoft Corporation Container reputation
US20090024645A1 (en) * 2007-07-16 2009-01-22 Sudhir Krishna S Method and system for generating offline applications
EP2053504A1 (en) * 2007-08-09 2009-04-29 France Telecom System and method for managing processing resources
US8046369B2 (en) 2007-09-04 2011-10-25 Apple Inc. Media asset rating system
US7992779B2 (en) * 2007-09-10 2011-08-09 Mastercard International, Inc. Method for use in association with identification token and apparatus including identification token
US7837123B2 (en) * 2007-09-10 2010-11-23 Mastercard International, Inc. Identification token and method of making identification token
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
US10783514B2 (en) * 2007-10-10 2020-09-22 Mastercard International Incorporated Method and apparatus for use in personalizing identification token
US8226013B2 (en) * 2007-10-26 2012-07-24 Mastercard International, Inc. Method and apparatus for use in providing an identification token
US9201921B2 (en) * 2007-11-02 2015-12-01 Adobe Systems Incorporated Methods and systems for offline execution of rich internet applications
US20090138673A1 (en) * 2007-11-28 2009-05-28 Apple Inc. Internal memory mapped external memory interface
US8037110B2 (en) * 2007-12-27 2011-10-11 Microsoft Corporation Business data access client for online/offline client use
US20090166428A1 (en) * 2007-12-28 2009-07-02 Simon Phillips Methods and apparatus for use in association with media
US8286862B2 (en) * 2007-12-28 2012-10-16 Mastercard International, Inc. Methods and apparatus for use in association with security parameter
US8794532B2 (en) * 2008-12-29 2014-08-05 Mastercard International Incorporated Methods and apparatus for use in association with identification token
US8991695B2 (en) * 2007-12-28 2015-03-31 Mastercard International Incorporated Methods and apparatus for use in docking
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US9135321B2 (en) * 2008-02-06 2015-09-15 Microsoft Technology Licensing, Llc Synchronization infrastructure for networked devices, applications and services in a loosely coupled multi-master synchronization environment
US20090228545A1 (en) * 2008-03-07 2009-09-10 Mendez Jose A Online mobile applications capable of dealing with occasional disconnects
US20090234872A1 (en) * 2008-03-11 2009-09-17 Microsoft Corporation Synchronization of disconnected/offline data processing/entry
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US8307395B2 (en) * 2008-04-22 2012-11-06 Porto Technology, Llc Publishing key frames of a video content item being viewed by a first user to one or more second users
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US7865573B2 (en) * 2008-05-29 2011-01-04 Research In Motion Limited Method, system and devices for communicating between an internet browser and an electronic device
EP2128760A1 (en) * 2008-05-29 2009-12-02 Research in Motion Limited A method and system for performing a software upgrade on an electronic device connected to a computer
US8041346B2 (en) 2008-05-29 2011-10-18 Research In Motion Limited Method and system for establishing a service relationship between a mobile communication device and a mobile data server for connecting to a wireless network
US8418168B2 (en) * 2008-05-29 2013-04-09 Research In Motion Limited Method and system for performing a software upgrade on an electronic device connected to a computer
US20090300169A1 (en) * 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US8612520B2 (en) 2008-06-16 2013-12-17 Microsoft Corporation Online/offline proto link behavior and proto page conflict resolution
US9032390B2 (en) * 2008-07-29 2015-05-12 Qualcomm Incorporated Framework versioning
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US9197486B2 (en) * 2008-08-29 2015-11-24 Google Inc. Adaptive accelerated application startup
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US8812402B2 (en) * 2009-01-05 2014-08-19 Mastercard International Incorporated Methods, apparatus and articles for use in association with token
US8684261B2 (en) * 2009-01-20 2014-04-01 Mastercard International Incorporated Methods, apparatus, computer program products and articles for use in providing human understandable indication of account balance
US20100262582A1 (en) * 2009-04-10 2010-10-14 Microsoft Corporation Content synchronization across multiple computers
US20100268735A1 (en) * 2009-04-17 2010-10-21 Microsoft Corporation Online content service with catalog-based interaction
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US20100328029A1 (en) * 2009-06-30 2010-12-30 Martin Edward Kolek Method and apparatus for communication device
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US8311987B2 (en) * 2009-08-17 2012-11-13 Sap Ag Data staging system and method
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
WO2011089450A2 (en) 2010-01-25 2011-07-28 Andrew Peter Nelson Jerram Apparatuses, methods and systems for a digital conversation management platform
US20110202384A1 (en) * 2010-02-17 2011-08-18 Rabstejnek Wayne S Enterprise Rendering Platform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8307235B2 (en) 2010-05-05 2012-11-06 National Instruments Corporation Cross controller clock synchronization
US20110289424A1 (en) * 2010-05-21 2011-11-24 Microsoft Corporation Secure application of custom resources in multi-tier systems
GB2481132A (en) * 2010-06-09 2011-12-14 Omnifone Ltd Execution container with individual components
TWI505189B (en) * 2010-08-27 2015-10-21 Ibm A method computer program and system for automatic upgrade of virtual appliances
WO2012037489A1 (en) 2010-09-17 2012-03-22 Google Inc. Moving information between computing devices
US8850399B2 (en) * 2010-11-15 2014-09-30 Microsoft Corporation Software development using code retraction and background warm up
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US8924556B2 (en) * 2011-03-11 2014-12-30 Qualcomm Incorporated System and method for accessing a device having an assigned network address
US8799470B2 (en) 2011-03-11 2014-08-05 Qualcomm Incorporated System and method using a client-local proxy-server to access a device having an assigned network address
US8862693B2 (en) 2011-03-11 2014-10-14 Qualcomm Incorporated Remote access and administration of device content and configuration using HTTP protocol
US9052898B2 (en) 2011-03-11 2015-06-09 Qualcomm Incorporated Remote access and administration of device content, with device power optimization, using HTTP protocol
US8819233B2 (en) 2011-03-11 2014-08-26 Qualcomm Incorporated System and method using a web proxy-server to access a device having an assigned network address
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
JP5975125B2 (en) * 2011-03-30 2016-08-23 富士通株式会社 Application providing system and application providing method
JP5760716B2 (en) 2011-03-30 2015-08-12 富士通株式会社 Application providing system, application providing method, information processing apparatus, and information processing program
US20120311614A1 (en) * 2011-06-02 2012-12-06 Recursion Software, Inc. Architecture for pervasive software platform-based distributed knowledge network (dkn) and intelligent sensor network (isn)
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
US20130007726A1 (en) * 2011-06-30 2013-01-03 Indrajit Poddar Virtual machine disk image installation
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US20130159389A1 (en) * 2011-12-19 2013-06-20 Microsoft Corporation Utilizing Dynamic Heuristic Transitions between Local and Remote Data for Displaying Electronic Communications
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
KR102118209B1 (en) 2013-02-07 2020-06-02 애플 인크. Voice trigger for a digital assistant
US9519490B2 (en) * 2013-03-07 2016-12-13 Microsoft Technology Licensing, Llc Adaptive data synchronization
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
KR101959188B1 (en) 2013-06-09 2019-07-02 애플 인크. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
CN105265005B (en) 2013-06-13 2019-09-17 苹果公司 System and method for the urgent call initiated by voice command
US9600805B2 (en) * 2013-06-25 2017-03-21 Sap Se Presenting information on a mobile communication device
CN105453026A (en) 2013-08-06 2016-03-30 苹果公司 Auto-activating smart responses based on activities from remote devices
EP2851833B1 (en) 2013-09-20 2017-07-12 Open Text S.A. Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
US10116697B2 (en) 2013-09-20 2018-10-30 Open Text Sa Ulc System and method for geofencing
US10824756B2 (en) 2013-09-20 2020-11-03 Open Text Sa Ulc Hosted application gateway architecture with multi-level security policy and rule promulgations
US20150188991A1 (en) * 2013-12-31 2015-07-02 Google Inc. Simulated tethering of computing devices
US9703801B2 (en) * 2014-03-25 2017-07-11 Alfresco Software, Inc. Synchronization of client machines with a content management system repository
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
CN105245558B (en) * 2014-07-09 2020-04-21 腾讯科技(深圳)有限公司 Application program running method, system and server supporting virtual online
US10303531B2 (en) 2014-07-28 2019-05-28 Red Hat, Inc. Console application through web service
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US9872174B2 (en) 2014-09-19 2018-01-16 Google Inc. Transferring application data between devices
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10599423B2 (en) * 2014-11-20 2020-03-24 Red Hat, Inc. Source code management for a multi-tenant platform-as-a-service (PaaS) system
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
CN106161368B (en) 2015-04-07 2020-04-14 阿里巴巴集团控股有限公司 Method, device and system for remotely accessing cloud application
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US11593075B2 (en) * 2015-11-03 2023-02-28 Open Text Sa Ulc Streamlined fast and efficient application building and customization systems and methods
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US11388037B2 (en) 2016-02-25 2022-07-12 Open Text Sa Ulc Systems and methods for providing managed services
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179309B1 (en) 2016-06-09 2018-04-23 Apple Inc Intelligent automated assistant in a home environment
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. Far-field extension for digital assistant services
US10783929B2 (en) 2018-03-30 2020-09-22 Apple Inc. Managing playback groups
US10993274B2 (en) 2018-03-30 2021-04-27 Apple Inc. Pairing devices by proxy
US11297369B2 (en) 2018-03-30 2022-04-05 Apple Inc. Remotely controlling playback devices
US10614857B2 (en) 2018-07-02 2020-04-07 Apple Inc. Calibrating media playback channels for synchronized presentation
CN109491673A (en) * 2018-11-01 2019-03-19 郑州云海信息技术有限公司 A kind of method and system of automatic verifying software deployment integrality
JP2022014972A (en) * 2020-07-08 2022-01-21 富士通株式会社 Information processing device and placement destination determination program
CN113559502A (en) * 2021-07-27 2021-10-29 Oppo广东移动通信有限公司 Game offline processing method and device, storage medium and electronic equipment

Citations (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428729A (en) * 1991-12-20 1995-06-27 International Business Machines Corporation System and method for computer aided software engineering
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
US5862346A (en) * 1996-06-28 1999-01-19 Metadigm Distributed group activity data network system and corresponding method
US5870759A (en) * 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US5870610A (en) * 1996-06-28 1999-02-09 Siemens Business Communication Systems, Inc. Autoconfigurable method and system having automated downloading
US5923552A (en) * 1996-12-31 1999-07-13 Buildnet, Inc. Systems and methods for facilitating the exchange of information between separate business entities
US6006274A (en) * 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US6052588A (en) * 1996-10-17 2000-04-18 Electronics And Telecommunications Research Institute Method for archiving and retrieving telemetry in a satellite control center
US6112246A (en) * 1998-10-22 2000-08-29 Horbal; Mark T. System and method for accessing information from a remote device and providing the information to a client workstation
US6134552A (en) * 1997-10-07 2000-10-17 Sap Aktiengesellschaft Knowledge provider with logical hyperlinks
US6138153A (en) * 1994-02-14 2000-10-24 Computer Associates Think, Inc. System for software distribution in a digital computer network
US6141010A (en) * 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
US6226739B1 (en) * 1999-12-14 2001-05-01 International Business Machines Corporation Method and computer program for distributing software to a personal palm-type device through a global software distribution package transmittable over the world wide web
US6237092B1 (en) * 1998-05-05 2001-05-22 International Business Machines Corp. Client-server system with central application management allowing an administrator to configure user and group contexts during application configuration without relaunching the application
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6295645B1 (en) * 1997-12-22 2001-09-25 Texas Instruments Incorporated Method and apparatus for providing downloadable functionality to an embedded coprocessor
US20010034771A1 (en) * 2000-01-14 2001-10-25 Sun Microsystems, Inc. Network portal system and methods
US6311321B1 (en) * 1999-02-22 2001-10-30 Intel Corporation In-context launch wrapper (ICLW) module and method of automating integration of device management applications into existing enterprise management consoles
US20010049624A1 (en) * 2000-06-06 2001-12-06 Masashi Uyama Advertisement distributing method and system
US6338068B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Method to demonstrate software that performs database queries
US6349408B1 (en) * 1998-03-23 2002-02-19 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6349333B1 (en) * 1998-12-04 2002-02-19 Sun Microsystems, Inc. Platform independent alarm service for manipulating managed objects in a distributed network management system
US6366876B1 (en) * 1997-09-29 2002-04-02 Sun Microsystems, Inc. Method and apparatus for assessing compatibility between platforms and applications
US20020049603A1 (en) * 2000-01-14 2002-04-25 Gaurav Mehra Method and apparatus for a business applications server
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6390920B1 (en) * 1999-06-18 2002-05-21 Rockwell Collins, Inc. Vehicle entertainment system having seat controller cards programmed to operate as both browser and server
US6430599B1 (en) * 1999-06-15 2002-08-06 Sun Microsystems, Inc. Just-in-time services for small footprint devices
US20020138582A1 (en) * 2000-09-05 2002-09-26 Mala Chandra Methods and apparatus providing electronic messages that are linked and aggregated
US20020147850A1 (en) * 2001-04-05 2002-10-10 Richards Gregory W. Electronic survey tool and dynamic workflow tool
US6466950B1 (en) * 1998-10-20 2002-10-15 Mitsubishi Denki Kabushiki Kaisha Update log management device and an update log management method decreasing the data amount of transmitting and the update log amount of holding based on the result of comparing the amount of the update log with the amount of the updated data plus the log applied information
US20020161826A1 (en) * 2001-01-25 2002-10-31 Carlos Arteaga System and method for remote communication transactions
US20020174372A1 (en) * 2001-05-18 2002-11-21 Buvana Venkataraman Method and apparatus for providing synchronized data
US20020178218A1 (en) * 2001-05-24 2002-11-28 Stefan Butlin Method of browser-server communication
US6496979B1 (en) * 1997-10-24 2002-12-17 Microsoft Corporation System and method for managing application installation for a mobile device
US6510466B1 (en) * 1998-12-14 2003-01-21 International Business Machines Corporation Methods, systems and computer program products for centralized management of application programs on a network
US20030023657A1 (en) * 2001-06-06 2003-01-30 Claudius Fischer Device for running offline applications and synchronizing with a central computer system
US6553375B1 (en) * 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
US6560655B1 (en) * 1999-06-22 2003-05-06 Microsoft Corporation Synchronization manager for standardized synchronization of separate programs
US20030088483A1 (en) * 2000-12-28 2003-05-08 Bissell, Inc. System, method and computer program product for an enhanced E-commerce graphical user interface
US6574617B1 (en) * 2000-06-19 2003-06-03 International Business Machines Corporation System and method for selective replication of databases within a workflow, enterprise, and mail-enabled web application server and platform
US6574561B2 (en) * 2001-03-30 2003-06-03 The University Of North Florida Emergency management system
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6615276B1 (en) * 2000-02-09 2003-09-02 International Business Machines Corporation Method and apparatus for a centralized facility for administering and performing connectivity and information management tasks for a mobile user
US20040015566A1 (en) * 2002-07-19 2004-01-22 Matthew Anderson Electronic item management and archival system and method of operating the same
US6714933B2 (en) * 2000-05-09 2004-03-30 Cnet Networks, Inc. Content aggregation method and apparatus for on-line purchasing system
US6742025B2 (en) * 1999-09-30 2004-05-25 International Business Machines Corp. System and method for server managed modification of operating system data stored within a network device
US6785721B1 (en) * 2000-06-19 2004-08-31 International Business Machines Corporation System and method for providing a distributable runtime that deploys web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6801940B1 (en) * 2002-01-10 2004-10-05 Networks Associates Technology, Inc. Application performance monitoring expert
US6813777B1 (en) * 1998-05-26 2004-11-02 Rockwell Collins Transaction dispatcher for a passenger entertainment system, method and article of manufacture
US6845383B1 (en) * 2000-06-19 2005-01-18 International Business Machines Corporation System and method for managing concurrent scheduled or on-demand replication of subscriptions
US6845503B1 (en) * 1999-08-13 2005-01-18 Sun Microsystems, Inc. System and method for enabling atomic class loading in an application server environment
US6915525B2 (en) * 2000-04-14 2005-07-05 Sony Corporation Method and apparatus for controlling set-top box hardware and software functions
US6957186B1 (en) * 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134552A (en) * 1991-07-25 1992-07-28 Progenics Corporation Acceleration activated energizing device
WO1994025913A2 (en) * 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US5485503A (en) * 1993-08-02 1996-01-16 Motorola, Inc. Method of remote launching applications in a message delivery system
US5694546A (en) * 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US6769009B1 (en) * 1994-05-31 2004-07-27 Richard R. Reisman Method and system for selecting a personalized set of information channels
WO1996006393A1 (en) * 1994-08-24 1996-02-29 Arcada Software, Inc. Application program interface (api) for a medium changer
US5815682A (en) * 1994-12-13 1998-09-29 Microsoft Corporation Device independent modem interface
US5923885A (en) 1996-10-31 1999-07-13 Sun Microsystems, Inc. Acquisition and operation of remotely loaded software using applet modification of browser software
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
EP1073955B1 (en) * 1998-03-03 2008-04-16 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
US6131192A (en) 1998-06-18 2000-10-10 Microsoft Corporation Software installation
US6481632B2 (en) * 1998-10-27 2002-11-19 Visa International Service Association Delegated management of smart card applications
US6507867B1 (en) * 1998-12-22 2003-01-14 International Business Machines Corporation Constructing, downloading, and accessing page bundles on a portable client having intermittent network connectivity
US6553037B1 (en) 1999-04-08 2003-04-22 Palm, Inc. System and method for synchronizing data among a plurality of users via an intermittently accessed network
US6425126B1 (en) * 1999-05-19 2002-07-23 International Business Machines Corporation Apparatus and method for synchronizing software between computers
JP2001005622A (en) * 1999-05-26 2001-01-12 Xerox Corp Printlet system and its method
EP1093061A1 (en) 1999-10-14 2001-04-18 SAP Aktiengesellschaft Integrated database federation system
US6910053B1 (en) 1999-06-18 2005-06-21 Sap Aktiengesellschaft Method for data maintenance in a network of partially replicated database systems
WO2001011466A2 (en) 1999-08-11 2001-02-15 Ethos Technologies, Inc. Download manager
US6772393B1 (en) * 2000-01-04 2004-08-03 International Business Machines Corporation System and method for room decoration and inheritance
WO2001052056A2 (en) 2000-01-14 2001-07-19 Saba Software, Inc. Method and apparatus for a business applications management system platform
JP2001306308A (en) 2000-04-11 2001-11-02 Sap Ag Method for defining class of data center application
US7814208B2 (en) * 2000-04-11 2010-10-12 Science Applications International Corporation System and method for projecting content beyond firewalls
AU2001275874A1 (en) * 2000-07-07 2002-01-21 Consilient, Inc. Method and apparatus for providing process-container platforms
US20020065800A1 (en) * 2000-11-30 2002-05-30 Morlitz David M. HTTP archive file
US20020073076A1 (en) * 2000-12-11 2002-06-13 Yongjie Xu System and method for enabling off-line database functionality
US7024428B1 (en) * 2001-02-23 2006-04-04 Openwave Systems Inc. Reliable data synchronization over unreliable networks

Patent Citations (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428729A (en) * 1991-12-20 1995-06-27 International Business Machines Corporation System and method for computer aided software engineering
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
US6138153A (en) * 1994-02-14 2000-10-24 Computer Associates Think, Inc. System for software distribution in a digital computer network
US5684984A (en) * 1994-09-29 1997-11-04 Apple Computer, Inc. Synchronization and replication of object databases
US5752042A (en) * 1996-06-07 1998-05-12 International Business Machines Corporation Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer
US5862346A (en) * 1996-06-28 1999-01-19 Metadigm Distributed group activity data network system and corresponding method
US5870610A (en) * 1996-06-28 1999-02-09 Siemens Business Communication Systems, Inc. Autoconfigurable method and system having automated downloading
US5870759A (en) * 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US6052588A (en) * 1996-10-17 2000-04-18 Electronics And Telecommunications Research Institute Method for archiving and retrieving telemetry in a satellite control center
US6202085B1 (en) * 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US5923552A (en) * 1996-12-31 1999-07-13 Buildnet, Inc. Systems and methods for facilitating the exchange of information between separate business entities
US6006274A (en) * 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US6366876B1 (en) * 1997-09-29 2002-04-02 Sun Microsystems, Inc. Method and apparatus for assessing compatibility between platforms and applications
US6134552A (en) * 1997-10-07 2000-10-17 Sap Aktiengesellschaft Knowledge provider with logical hyperlinks
US6496979B1 (en) * 1997-10-24 2002-12-17 Microsoft Corporation System and method for managing application installation for a mobile device
US6295645B1 (en) * 1997-12-22 2001-09-25 Texas Instruments Incorporated Method and apparatus for providing downloadable functionality to an embedded coprocessor
US6202207B1 (en) * 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
US6349408B1 (en) * 1998-03-23 2002-02-19 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US6237092B1 (en) * 1998-05-05 2001-05-22 International Business Machines Corp. Client-server system with central application management allowing an administrator to configure user and group contexts during application configuration without relaunching the application
US6813777B1 (en) * 1998-05-26 2004-11-02 Rockwell Collins Transaction dispatcher for a passenger entertainment system, method and article of manufacture
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6141010A (en) * 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6466950B1 (en) * 1998-10-20 2002-10-15 Mitsubishi Denki Kabushiki Kaisha Update log management device and an update log management method decreasing the data amount of transmitting and the update log amount of holding based on the result of comparing the amount of the update log with the amount of the updated data plus the log applied information
US6112246A (en) * 1998-10-22 2000-08-29 Horbal; Mark T. System and method for accessing information from a remote device and providing the information to a client workstation
US6553375B1 (en) * 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
US6349333B1 (en) * 1998-12-04 2002-02-19 Sun Microsystems, Inc. Platform independent alarm service for manipulating managed objects in a distributed network management system
US6338068B1 (en) * 1998-12-14 2002-01-08 International Business Machines Corporation Method to demonstrate software that performs database queries
US6510466B1 (en) * 1998-12-14 2003-01-21 International Business Machines Corporation Methods, systems and computer program products for centralized management of application programs on a network
US6311321B1 (en) * 1999-02-22 2001-10-30 Intel Corporation In-context launch wrapper (ICLW) module and method of automating integration of device management applications into existing enterprise management consoles
US6957186B1 (en) * 1999-05-27 2005-10-18 Accenture Llp System method and article of manufacture for building, managing, and supporting various components of a system
US6430599B1 (en) * 1999-06-15 2002-08-06 Sun Microsystems, Inc. Just-in-time services for small footprint devices
US6390920B1 (en) * 1999-06-18 2002-05-21 Rockwell Collins, Inc. Vehicle entertainment system having seat controller cards programmed to operate as both browser and server
US6560655B1 (en) * 1999-06-22 2003-05-06 Microsoft Corporation Synchronization manager for standardized synchronization of separate programs
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6845503B1 (en) * 1999-08-13 2005-01-18 Sun Microsystems, Inc. System and method for enabling atomic class loading in an application server environment
US6742025B2 (en) * 1999-09-30 2004-05-25 International Business Machines Corp. System and method for server managed modification of operating system data stored within a network device
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6226739B1 (en) * 1999-12-14 2001-05-01 International Business Machines Corporation Method and computer program for distributing software to a personal palm-type device through a global software distribution package transmittable over the world wide web
US20010034771A1 (en) * 2000-01-14 2001-10-25 Sun Microsystems, Inc. Network portal system and methods
US20020049603A1 (en) * 2000-01-14 2002-04-25 Gaurav Mehra Method and apparatus for a business applications server
US6615276B1 (en) * 2000-02-09 2003-09-02 International Business Machines Corporation Method and apparatus for a centralized facility for administering and performing connectivity and information management tasks for a mobile user
US6915525B2 (en) * 2000-04-14 2005-07-05 Sony Corporation Method and apparatus for controlling set-top box hardware and software functions
US6714933B2 (en) * 2000-05-09 2004-03-30 Cnet Networks, Inc. Content aggregation method and apparatus for on-line purchasing system
US20010049624A1 (en) * 2000-06-06 2001-12-06 Masashi Uyama Advertisement distributing method and system
US6845383B1 (en) * 2000-06-19 2005-01-18 International Business Machines Corporation System and method for managing concurrent scheduled or on-demand replication of subscriptions
US6785721B1 (en) * 2000-06-19 2004-08-31 International Business Machines Corporation System and method for providing a distributable runtime that deploys web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6574617B1 (en) * 2000-06-19 2003-06-03 International Business Machines Corporation System and method for selective replication of databases within a workflow, enterprise, and mail-enabled web application server and platform
US20020138582A1 (en) * 2000-09-05 2002-09-26 Mala Chandra Methods and apparatus providing electronic messages that are linked and aggregated
US20030088483A1 (en) * 2000-12-28 2003-05-08 Bissell, Inc. System, method and computer program product for an enhanced E-commerce graphical user interface
US20020161826A1 (en) * 2001-01-25 2002-10-31 Carlos Arteaga System and method for remote communication transactions
US6574561B2 (en) * 2001-03-30 2003-06-03 The University Of North Florida Emergency management system
US20020147850A1 (en) * 2001-04-05 2002-10-10 Richards Gregory W. Electronic survey tool and dynamic workflow tool
US20020174372A1 (en) * 2001-05-18 2002-11-21 Buvana Venkataraman Method and apparatus for providing synchronized data
US20020178218A1 (en) * 2001-05-24 2002-11-28 Stefan Butlin Method of browser-server communication
US20030023657A1 (en) * 2001-06-06 2003-01-30 Claudius Fischer Device for running offline applications and synchronizing with a central computer system
US20030037254A1 (en) * 2001-06-06 2003-02-20 Claudius Fischer Process for synchronizing data between remotely located devices and a central computer system
US20030046448A1 (en) * 2001-06-06 2003-03-06 Claudius Fischer Application programming interface layer for a device
US20030056207A1 (en) * 2001-06-06 2003-03-20 Claudius Fischer Process for deploying software from a central computer system to remotely located devices
US20030046017A1 (en) * 2001-06-06 2003-03-06 Claudius Fischer Deployment console for use with a computer system deploying software to remotely located devices
US6801940B1 (en) * 2002-01-10 2004-10-05 Networks Associates Technology, Inc. Application performance monitoring expert
US20040015566A1 (en) * 2002-07-19 2004-01-22 Matthew Anderson Electronic item management and archival system and method of operating the same

Cited By (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143419B2 (en) 2001-06-06 2006-11-28 Sap Ag Device for running offline applications and synchronizing with a central computer system
US20030037254A1 (en) * 2001-06-06 2003-02-20 Claudius Fischer Process for synchronizing data between remotely located devices and a central computer system
US20030046448A1 (en) * 2001-06-06 2003-03-06 Claudius Fischer Application programming interface layer for a device
US20030056207A1 (en) * 2001-06-06 2003-03-20 Claudius Fischer Process for deploying software from a central computer system to remotely located devices
US20030023657A1 (en) * 2001-06-06 2003-01-30 Claudius Fischer Device for running offline applications and synchronizing with a central computer system
US7162543B2 (en) 2001-06-06 2007-01-09 Sap Ag Process for synchronizing data between remotely located devices and a central computer system
US20030061247A1 (en) * 2001-09-21 2003-03-27 Benjamin Renaud Method and apparatus for smart directories for application deployment
US7559059B2 (en) * 2001-09-21 2009-07-07 Bea Systems, Inc. Method and apparatus for smart directories for application deployment
US7366460B2 (en) 2003-01-23 2008-04-29 Dexterra, Inc. System and method for mobile data update
WO2004092982A2 (en) * 2003-04-07 2004-10-28 Dexterra, Inc. System and method for context sensitive mobile data and software update
WO2004092982A3 (en) * 2003-04-07 2005-01-20 Dexterra Inc System and method for context sensitive mobile data and software update
US20050050142A1 (en) * 2003-08-28 2005-03-03 Aligo Inc. Method and framework for transaction synchronization
US8627489B2 (en) 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US20050097441A1 (en) * 2003-10-31 2005-05-05 Herbach Jonathan D. Distributed document version control
US7930757B2 (en) * 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
US20110191858A1 (en) * 2003-10-31 2011-08-04 Adobe Systems Incorporated Offline access in a document control system
US20050097061A1 (en) * 2003-10-31 2005-05-05 Shapiro William M. Offline access in a document control system
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8479301B2 (en) * 2003-10-31 2013-07-02 Adobe Systems Incorporated Offline access in a document control system
US8627077B2 (en) 2003-10-31 2014-01-07 Adobe Systems Incorporated Transparent authentication process integration
WO2005101239A1 (en) * 2004-04-13 2005-10-27 Nokia Corporation Sharing of data between devices
US8762578B2 (en) 2004-05-18 2014-06-24 Koninklijke Philips N.V. Method of data synchronization
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US20060161471A1 (en) * 2005-01-19 2006-07-20 Microsoft Corporation System and method for multi-dimensional average-weighted banding status and scoring
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US20070050237A1 (en) * 2005-08-30 2007-03-01 Microsoft Corporation Visual designer for multi-dimensional business logic
WO2007032766A1 (en) * 2005-09-13 2007-03-22 Quark, Inc. Systems and methods for call center processing
US20070112607A1 (en) * 2005-11-16 2007-05-17 Microsoft Corporation Score-based alerting in business logic
US20070143175A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Centralized model for coordinating update of multiple reports
US20070143161A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Application independent rendering of scorecard metrics
US20070143174A1 (en) * 2005-12-21 2007-06-21 Microsoft Corporation Repeated inheritance of heterogeneous business metrics
US20070156680A1 (en) * 2005-12-21 2007-07-05 Microsoft Corporation Disconnected authoring of business definitions
US20070234198A1 (en) * 2006-03-30 2007-10-04 Microsoft Corporation Multidimensional metrics-based annotation
US8261181B2 (en) 2006-03-30 2012-09-04 Microsoft Corporation Multidimensional metrics-based annotation
US8190992B2 (en) 2006-04-21 2012-05-29 Microsoft Corporation Grouping and display of logically defined reports
US20070255681A1 (en) * 2006-04-27 2007-11-01 Microsoft Corporation Automated determination of relevant slice in multidimensional data sources
US8126750B2 (en) 2006-04-27 2012-02-28 Microsoft Corporation Consolidating data source queries for multidimensional scorecards
US20070254740A1 (en) * 2006-04-27 2007-11-01 Microsoft Corporation Concerted coordination of multidimensional scorecards
US20080104195A1 (en) * 2006-10-30 2008-05-01 Microsoft Corporation Offline execution of web based applications
US7814234B2 (en) 2006-10-30 2010-10-12 Microsoft Corporation Offline execution of web based applications
US20080172414A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Business Objects as a Service
US20080172348A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Statistical Determination of Multi-Dimensional Targets
US20080172287A1 (en) * 2007-01-17 2008-07-17 Ian Tien Automated Domain Determination in Business Logic Applications
US20080172629A1 (en) * 2007-01-17 2008-07-17 Microsoft Corporation Geometric Performance Metric Data Rendering
US9058307B2 (en) 2007-01-26 2015-06-16 Microsoft Technology Licensing, Llc Presentation generation using scorecard elements
US20080184099A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Data-Driven Presentation Generation
US20080183564A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation Untethered Interaction With Aggregated Metrics
US8321805B2 (en) 2007-01-30 2012-11-27 Microsoft Corporation Service architecture based metric views
US20080184130A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation Service Architecture Based Metric Views
US8495663B2 (en) 2007-02-02 2013-07-23 Microsoft Corporation Real time collaboration using embedded data visualizations
US9392026B2 (en) 2007-02-02 2016-07-12 Microsoft Technology Licensing, Llc Real time collaboration using embedded data visualizations
US20080189724A1 (en) * 2007-02-02 2008-08-07 Microsoft Corporation Real Time Collaboration Using Embedded Data Visualizations
US20080189632A1 (en) * 2007-02-02 2008-08-07 Microsoft Corporation Severity Assessment For Performance Metrics Using Quantitative Model
US9003059B2 (en) * 2008-03-31 2015-04-07 Microsoft Technology Licensing, Llc Running applications in an online or offline mode based on the availability of the connection to the remote web server
US20090248695A1 (en) * 2008-03-31 2009-10-01 Microsoft Corporation Online and offline applications
US9349141B2 (en) 2011-06-27 2016-05-24 Amazon Technologies, Inc. Service for adding functionality to applications
US8527361B2 (en) * 2011-06-27 2013-09-03 Amazon Technologies, Inc. Service for adding in-application shopping functionality to applications
US10656800B2 (en) 2013-03-29 2020-05-19 Microsoft Technology Licensing, Llc Visual configuration and activation
US9710248B2 (en) 2013-05-29 2017-07-18 Microsoft Technology Licensing, Llc Application install and layout syncing
US10452222B2 (en) 2013-05-29 2019-10-22 Microsoft Technology Licensing, Llc Coordination of system readiness tasks
US10839329B2 (en) 2016-10-25 2020-11-17 Sap Se Process execution using rules framework flexibly incorporating predictive modeling
US11580440B2 (en) 2016-12-02 2023-02-14 Sap Se Dynamic form with machine learning
US10523787B2 (en) 2016-12-19 2019-12-31 Palantir Technologies Inc. Conducting investigations under limited connectivity
US10044836B2 (en) * 2016-12-19 2018-08-07 Palantir Technologies Inc. Conducting investigations under limited connectivity
US11316956B2 (en) * 2016-12-19 2022-04-26 Palantir Technologies Inc. Conducting investigations under limited connectivity
US20220255983A1 (en) * 2016-12-19 2022-08-11 Palantir Technologies Inc. Conducting investigations under limited connectivity
US11595492B2 (en) * 2016-12-19 2023-02-28 Palantir Technologies Inc. Conducting investigations under limited connectivity
US11063744B2 (en) 2017-10-20 2021-07-13 Sap Se Document flow tracking using blockchain
US11016784B2 (en) 2019-03-08 2021-05-25 Palantir Technologies Inc. Systems and methods for automated deployment and adaptation of configuration files at computing devices
US11461110B2 (en) 2019-03-08 2022-10-04 Palantir Technologies Inc. Systems and methods for automated and distributed configuration of computing devices
US11789745B2 (en) 2019-03-08 2023-10-17 Palantir Technologies Inc. Systems and methods for automated and distributed configuration of computing devices

Also Published As

Publication number Publication date
EP1497743A2 (en) 2005-01-19
WO2002099592A2 (en) 2002-12-12
WO2002099595A2 (en) 2002-12-12
AU2002322042A1 (en) 2002-12-16
US20030056207A1 (en) 2003-03-20
WO2002099594A2 (en) 2002-12-12
WO2002099593A3 (en) 2003-08-28
EP1407373A2 (en) 2004-04-14
WO2002099638A1 (en) 2002-12-12
AU2002318177A1 (en) 2002-12-16
EP1497723A2 (en) 2005-01-19
EP1407353A4 (en) 2007-07-11
EP1407375A4 (en) 2007-08-01
EP1407364A4 (en) 2007-08-01
WO2002099592A3 (en) 2004-11-04
US7143419B2 (en) 2006-11-28
US20030023657A1 (en) 2003-01-30
AU2002314946A1 (en) 2002-12-16
US20030046017A1 (en) 2003-03-06
WO2002099595A3 (en) 2003-07-31
US20030046448A1 (en) 2003-03-06
EP1497723A4 (en) 2007-07-04
WO2002099593A8 (en) 2003-03-20
US20030037254A1 (en) 2003-02-20
EP1407364A2 (en) 2004-04-14
US7162543B2 (en) 2007-01-09
WO2002099593A2 (en) 2002-12-12
WO2002099596A2 (en) 2002-12-12
WO2002099594A3 (en) 2004-11-04
WO2002099596A3 (en) 2003-07-31
AU2002314948A1 (en) 2002-12-16
EP1497743A4 (en) 2007-07-04
EP1407373A4 (en) 2007-08-01
EP1407353A1 (en) 2004-04-14
EP1407375A2 (en) 2004-04-14

Similar Documents

Publication Publication Date Title
US7143419B2 (en) Device for running offline applications and synchronizing with a central computer system
US5634127A (en) Methods and apparatus for implementing a message driven processor in a client-server environment
US7370335B1 (en) System and method for providing a public application program interface
US7313782B2 (en) Method for distributing, integrating, and hosting a software platform
US7177865B2 (en) Data synchronization method and system
US6167563A (en) Method and system for building components in a framework useful in developing integrated business-centric applications
EP1438672B1 (en) Method, apparatus and system for a mobile web client
US20020065879A1 (en) Client server system with thin client architecture
US20050055698A1 (en) Server-driven data synchronization method and system
WO1999011043A1 (en) Universal adapter framework and providing a global user interface and global messaging bus
Chiu A script language for generating internet-bots
Shaofeng et al. A framework design of workflow management system with Java RMI
Christodoulou Thin Client Technology in Construction Management
Ganci et al. e-Commerce Patterns Using WebSphere Commerce Suite

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAPMARKETS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FISCHER, CLAUDIUS;STEPHAN, THORSTEN;SCHMIDT-KARACA, MARKUS;AND OTHERS;REEL/FRAME:013375/0461

Effective date: 20020923

AS Assignment

Owner name: SAP AG, GERMANY

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SAPMARKETS, INC.;REEL/FRAME:016888/0297

Effective date: 20020625

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION