Methods and apparatuses to provide composite applications
First Claim
1. A method on a mobile device, comprising:
- receiving a representation of a workflow over a wireless connection at the mobile device to specify information including;
locations of codes of a plurality of tasks;
mappings between local variables of the tasks and global variables maintained by the mobile device; and
relations between outcomes of the tasks and corresponding ones of the tasks that are scheduled to be execute when corresponding outcomes are generated; and
loading and executing the codes on the mobile device according to the representation of the workflow.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatuses to enable the development, deployment and update of composite applications on mobile devices. In one embodiment, a method processor in a mobile device may include a workflow engine and a cache manager which looks ahead of the current execution of a workflow to preload modules. The method processor may present modal user interfaces in a non-modal way to eliminate flicker, and use a logger to stamp the workflow related data with real time measurements, such as time, location, and vehicle bus information. The logger may capture screen images and global data of the workflow during the execution. The log data stream may be collected and sent from the mobile device in real time, or in a batch mode, for monitoring, debugging, diagnosing or tuning the execution of a workflow, for providing hot update, help and guidance against deviation during the execution, and for other features.
230 Citations
167 Claims
-
1. A method on a mobile device, comprising:
-
receiving a representation of a workflow over a wireless connection at the mobile device to specify information including;
locations of codes of a plurality of tasks;
mappings between local variables of the tasks and global variables maintained by the mobile device; and
relations between outcomes of the tasks and corresponding ones of the tasks that are scheduled to be execute when corresponding outcomes are generated; and
loading and executing the codes on the mobile device according to the representation of the workflow. - View Dependent Claims (2, 3)
-
-
4. A method, comprising:
-
executing a workflow interpreter in a process running on a virtual machine for a programming language, the interpreter to parse a workflow defining execution flow among multiple modules, at least one module of the modules being in the programming language; and
loading the module in the programming language into the process for execution according to the workflow. - View Dependent Claims (5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
executing a workflow engine in a first thread of a process, the workflow engine to parse a workflow defining execution flow among multiple modules; and
executing a cache manager in a second thread of the process, the cache manager to manage caching of one or more modules of the multiple modules of the workflow. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method, comprising:
-
processing a first version of a workflow which defines first execution flow among first multiple modules;
during an execution of the workflow according to the first version of the workflow, receiving a second version of the workflow which defines second execution flow among second multiple modules, the first multiple modules and the second multiple modules having at least one common module; and
continuing the execution according to the second version of the workflow without restarting. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A method, comprising:
-
processing a workflow described in a file which defines execution flow among multiple modules;
during execution of the workflow, determining a version of one module of the multiple modules; and
loading the version of the module for execution of the workflow. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
-
30. A method, comprising:
-
executing a workflow engine to process a queue of workflows, each of the workflows defining execution flow among one or more modules;
waiting for reception of one or more workflows to be added to the queue when the queue is empty; and
receiving a user selection to start one of workflows in the queue. - View Dependent Claims (31, 32, 33, 34)
-
-
35. A method, comprising:
-
loading a first task module from a first vendor to execute a workflow application on a mobile device; and
loading a second task module from a second vendor to execute the workflow application on the mobile device. - View Dependent Claims (36, 37)
-
-
38. A method, comprising:
-
receiving a request to access a device of a type from a module of a workflow running on a mobile device;
determining a first device of the type currently available to the mobile device;
selecting one routine from a plurality of routines capable of operating a plurality of different devices of the type; and
executing the routine according to the request. - View Dependent Claims (39, 40)
-
-
41. A method, comprising:
-
executing a first module by a workflow engine in a first thread; and
executing a second module by the workflow engine in a second thread concurrently with the first thread. - View Dependent Claims (42, 43, 44, 45)
-
-
46. A method, comprising:
-
receiving a request to close a first form of a first module of a workflow, the workflow specifying a flow from the first module to the second module;
determining a second form of the second module of the workflow; and
rendering the second form before closing the first form. - View Dependent Claims (47, 48, 49, 50, 51, 52)
-
-
53. A method, comprising:
-
displaying help information relative to a current portion of user interface of a workflow during a first execution of the workflow; and
running a second execution of the workflow in a training mode in response to a user request during the first execution of the workflow. - View Dependent Claims (54, 55)
-
-
56. A method, comprising:
-
logging information related to a workflow as being processed, the workflow defining execution flow among multiple modules; and
associating the information related to the workflow with measurement information. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70)
-
-
71. A method on a mobile device, comprising:
-
receiving a representation of a workflow over a wireless connection at the mobile device to specify a plurality of tasks;
loading and executing the executable codes on the mobile device according to the representation of the workflow; and
during execution of the workflow, generating log data when entering or exiting individual ones of the tasks according to the workflow. - View Dependent Claims (72, 73, 74)
-
-
75. A method, comprising:
-
receiving a threshold level indicator;
determining a level identifier of a module of a workflow, the workflow defining execution flow among multiple modules;
determining whether or not to log information related to execution of the module based on a comparison between the threshold level indicator and the level identifier of the module. - View Dependent Claims (76, 77, 78, 79)
-
-
80. A method, comprising:
-
receiving a stream of log data of an execution of a workflow from a mobile device, the workflow defining execution flow among multiple modules; and
re-producing the execution of the workflow on a system different from the mobile device according to the stream of log data. - View Dependent Claims (81, 82, 83, 84)
-
-
85. A method in a computing device, comprising:
-
receiving a first stream of log data of a first execution of a workflow, the workflow defining execution flow among multiple modules;
comparing the first stream of log data of the first execution of the workflow with log data of a second execution of the workflow during the execution of the second execution; and
determining a deviation between the first execution of the workflow and the second execution of the workflow. - View Dependent Claims (86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96)
-
-
97. A method, comprising:
-
executing a workflow in a workflow engine, the workflow defining execution flow among multiple modules including at least one user interface module which when executed presents a graphical user interface;
loading the user interface module by the workflow engine for execution to generate the graphical user interface; and
capturing a screen image of the graphical user interface by the workflow engine to document the user interface module. - View Dependent Claims (98, 99, 100, 101)
-
-
102. A method, comprising:
-
displaying a graphical representation of a workflow; and
displaying a version of a screen image of a graphical user interface generated by a module of the workflow in the graphical representation of the workflow. - View Dependent Claims (103, 104, 105, 106, 107, 108, 109, 110, 111, 112)
-
-
113. A method, comprising:
-
receiving a stream of log data of execution of a workflow; and
identifying an occurrence of a predefined pattern in the stream of log data. - View Dependent Claims (114, 115, 116, 117, 118, 119)
-
-
120. A method, comprising:
-
determining a reference execution flow of a workflow;
comparing a first execution flow of the workflow to the reference execution flow based on log data generated for the first execution flow;
predicting an indication of a performance goal based on a result of the comparison. - View Dependent Claims (121, 122, 123, 124, 125)
-
-
126. A method, comprising:
-
generating a network connectivity map from log data of execution of one or more workflows on one or more mobile devices; and
updating a workflow according to the network connectivity map. - View Dependent Claims (127, 128, 129, 130)
-
-
131. A method on a mobile device, comprising:
-
determining a first cost to transmit first data over a first network connection;
determining a second cost to transmit the first data over a second network connection;
determining a third cost to transmit second data over the first network connection;
determining a fourth cost to transmit the second data over the second network connection; and
scheduling transmission of the first and second data based on the first, second, third and fourth costs. - View Dependent Claims (132)
-
-
133. A machine readable media embodying instructions, the instructions causing a mobile device to perform a method, the method comprising:
receiving a representation of a workflow over a wireless connection at the mobile device to specify information including;
locations of codes of a plurality of tasks;
mappings between local variables of the tasks and global variables maintained by the mobile device; and
relations between outcomes of the tasks and corresponding ones of the tasks that are scheduled to be execute when corresponding outcomes are generated; and
loading and executing the codes on the mobile device according to the representation of the workflow. - View Dependent Claims (134, 135, 136, 137, 138, 139, 140, 141)
-
142. A machine readable media embodying instructions, the instructions causing a mobile device to perform a method, the method comprising:
-
receiving a request to close a first form of a first module of a workflow, the workflow specifying a flow from the first module to the second module;
determining a second form of the second module of the workflow; and
rendering the second form before closing the first form.
-
-
143. A machine readable media embodying instructions, the instructions causing a mobile device to perform a method, the method comprising:
-
logging information related to a workflow as being processed, the workflow defining execution flow among multiple modules; and
associating the information related to the workflow with measurement information. - View Dependent Claims (144, 145, 146, 147)
-
-
148. A mobile handheld device, comprising:
a wireless communication unit to receive a representation of a workflow over a wireless connection at the mobile device to specify information including;
locations of codes of a plurality of tasks;
mappings between local variables of the tasks and global variables maintained by the mobile device; and
relations between outcomes of the tasks and corresponding ones of the tasks that are scheduled to be execute when corresponding outcomes are generated; and
a processor coupled to the wireless communication unit to load and execute the codes on the mobile device according to the representation of the workflow;
wherein the processor is to execute the workflow in one thread of a process and executes a cache manager in a second thread of the process to manage caching of one or more modules of the workflow;
wherein the processor is to log information related to the workflow as being processed and associate the information related to the workflow with measurement information. - View Dependent Claims (149)
-
150. A system, comprising:
-
a dispatch station to generate and customize a workflow, the workflow to defining execution flow among multiple modules;
a population of mobile devices;
an integration server coupled to the dispatch station, the integration server to transmit a version of the workflow to one of the mobile devices via a wireless connection;
wherein the workflow specifies;
locations of codes of a plurality of tasks;
mappings between local variables of the tasks and global variables maintained by the mobile device; and
relations between outcomes of the tasks and corresponding ones of the tasks that are scheduled to be execute when corresponding outcomes are generated.
-
-
151. A machine readable media embodying instructions, the instructions causing a mobile device to perform a method, the method comprising:
-
defining a set of global variables maintained by the mobile device;
locating of codes of a plurality of tasks;
mapping between local variables of the tasks and the global variables; and
loading and executing the codes on the mobile device according to relations between outcomes of the tasks and corresponding ones of the tasks that are scheduled to be execute when corresponding outcomes are generated.
-
-
152. A machine readable media embodying instructions, the instructions causing a mobile device to perform a method, the method comprising:
-
processing log data comprising;
information related to a workflow generated during execution of the workflow, and measurement information associated with the information related to the workflow;
wherein the measurement information is obtained while the information related to a workflow is generated. - View Dependent Claims (153, 154)
-
-
155. A machine readable media embodying data generated from execution instructions, the instructions causing a mobile device to perform a method, the method comprising:
-
logging information related to a workflow as being processed, the workflow defining execution flow among multiple modules; and
associating the information related to the workflow with measurement information.
-
-
156. A method of providing training to users of mobile devices, the method comprising:
-
recording a first execution path of a workflow;
receiving log data streams generated from the users of the mobile devices running the workflow;
monitoring executions of the workflow by the users on the mobile devices based on the log data streams; and
providing help to one user of the users based on said monitoring. - View Dependent Claims (157, 158)
-
-
159. A method of incentivizing an operator of a mobile device, the method comprising:
-
providing one or more rules to the mobile device for an incentive program;
monitoring actual performance of the operator of the mobile device during execution of a workflow;
providing to the user of the mobile device with real-time status based on said monitoring to determine performance according to the one or more rules. - View Dependent Claims (160, 161)
-
-
162. A method to provide services to vendors, the method comprising:
-
providing the vendors with means to develop customization of workflows; and
loading the customization of workflows into mobile devices of mobile device operators when the mobile device operators visit sites of the vendors. - View Dependent Claims (163, 164, 165, 166, 167)
-
Specification