Embodiment makes it possible to more easily development of user application, including business application and consumer's application.So that exploitationPerson can be applied with the Informal development user of workflow, without being expert program person.
The example embodiment for user using the exploitation of workflow is described in following part.In the following description,Using technological development user described herein apply people be referred to as " developer ", with at runtime use user applyPeople (" user " or " end user ") distinguishes.Note, however, " developer " referred to herein does not need with computer volumeProfessional knowledge in terms of journey.Embodiment described herein makes it possible to realize application in the case where no special programming technologyExploitation.
A. example workflow development and implementation example
It can realize the exploitation of workflow in various ways in embodiment.For example, Fig. 1 is shown according to an example realityApply the workflow development system 100 of example.As shown in Figure 1, system 100 is based on including calculating equipment 102, storage device 104, firstApplication 124A, the second network-based application 124B and the server 134 of network.Server 134 includes workflow designer 106With workflow library 118 (for example, storage).Workflow designer 106 includes UI generator 110 and workflow logic generator 112.Calculating equipment 102 includes display screen 108 and browser 136.Storage device 104 stores locally applied 122.System 100 describes such asUnder.
Calculating equipment 102 can be any kind of fixation or mobile computing device, including mobile computer or mobile meterCalculation equipment (for example,Equipment, laptop computer, notebook computer, such as AppleiPadTMEqual tablet computers, net book etc.), wearable computing devices are (for example, headset equipment, including such asGlassTMEqual intelligent glasses) or the fixed calculating equipment such as desktop computer or PC (personal computer).Server 134 can be withIncluding one or more server apparatus and/or other calculating equipment.
Locally applied 122 in storage device 104 be to calculate equipment 102 to may have access to without what is communicated by networkApplication example.Locally applied 122 can be configured as when by calculating equipment 102 processor execution when execute data processingAnd/or Data Hosting operation, and can these workflows run time between to the work created by workflow designer 106Make stream and data 132 are provided.Locally applied 122 can be it is any kind of it is locally applied/service, such as database application (for example,Electrical form), messaging application (for example,), productivity application (for example,Deng) or other kinds of application.Although figure1 shows single locally applied, but calculates at equipment 102 that there may be any number of locally applied including tens of, hundreds ofOr the number of bigger number.
First it is network-based using 124A and second it is network-based using 124B be network-based application example,It is referred to as " cloud " application or service.Network-based application 124A and 124B can be visited on network 126 by calculating equipment 102Ask, can be configured as execute data processing and/or Data Hosting operation, and can these workflows run time betweenData 130A and 130B are provided to the workflow created by workflow designer 106 respectively.Network-based application 124A and124B each can be the application/service of any kind of network-accessible, such as database application, social networking application, messageIt is answered using productivity application, cloud storage and the/file trustship of, financial service application, news application, search application, network-accessibleWith etc..The example of such application includes SQL (structured query language) database, the Salesforce.com of network-accessibleTM、Finance、The New York(www.nytimes.com), Google search,Bing、Google DocsTM、Office365、DropboxTMDeng.Although Fig. 1 shows two and network-based answersWith, but any number of network-based application can be accessed on network 126, including tens of, hundreds of, thousands of or bigger numberThe number of word.
Note that data 128, data 130A, data 130B and data 132 each may include any kind of data, packetIt includes message, notice, calculate data, retrieval data, and/or by workflow request or the information of any other available type.
It calculates equipment 102 and server 134 each and may include and make it possible to communicate with one another on network 126 and and baseIn at least one network interface of network communicated using 124A and 124B.Such network interface is (wired or wireless) example include that 802.11 Wireless LAN of IEEE (WLAN) wireless interface, World Interoperability for Microwave Access, WiMax (Wi-MAX) connectMouth, Ethernet interface, universal serial bus (USB) interface, cellular network interface, BluetoothTMInterface, near-field communication (NFC)Interface etc..Other examples of network interface are described elsewhere herein.The example of network 126 includes local area network (LAN), wideThe combination of domain net (WAN), personal area network (PAN) and/or communication network, such as internet.
Workflow designer 106 (also referred to as automatically working stream development system) is configured as being operated/being interacted to createWorkflow.For example, developer can by be able to access that it is network-based application (such as browser 136) calculating equipmentApplication interaction at 102 is to access workflow designer 106.Developer can be used browser 136 and set to traverse workflowThe network address (for example, uniform resource locator) of gauge 106, workflow designer 106 call work in browser window 114Make stream designer GUI 116 (for example, webpage).Developer can interact with workflow designer GUI 116 with development stream.
As shown in Figure 1, workflow designer 106 includes UI generator 110 and workflow logic generator 112.UI is generatedDevice 110 is configured as workflow GUI information 140 (for example, one or more webpages, picture material etc.) being transferred to browser136 to be shown as workflow designer GUI 116 in the browser window 114 in display screen 108.Workflow designer GUI116 can be interacted by developer to select with configuration work flow step into workflow.For example, developer can set in workflowBe inserted into and sort in gauge GUI 116 multiple work flow steps, wherein one or more steps with it is local or network-based answerWith associated.Browser 136 stores selected work flow step, corresponding configuration information and work flow step order informationFor the workflow information 138 of construction.The workflow information 138 of construction is transferred to the generation of the workflow logic at server 134Device 112.Workflow logic generator 112 is worked based on the workflow generation of the assembling indicated by the workflow information 138 constructedFlow logic 120.Then, the workflow indicated by workflow logic 120 can be called by end user at runtime.
Workflow run time between, workflow logic 120 can call the work flow step with workflow logic 120Associated one or more is local or the operation of network-based application.Each work flow step can be from workflow designerGUI 116 receive input data 128, from it is locally applied 122 receive data 132, from local or network-based application 124A withOne or both in 124B receives data 130A or data 130B, and/or another work flow step from workflow logic 120Receive data.
The exploitation that workflow designer 106 can be operated in various ways to realize workflow.For example, in embodiment,Workflow designer 106 can be operated according to fig. 2.Fig. 2 shows be used to develop according to the offer of an example embodimentThe flow chart 200 of the process of workflow.Flow chart 200 depicts the process for development stream according to example embodiment.Flow chart 200 and workflow designer 106 are described about Fig. 3 and 4 as follows.Fig. 3 shows work according to example embodimentFlow the block diagram of designer 106.As shown in figure 3, workflow designer 106 includes UI generator 110 and workflow logic generator112.UI generator 110 includes work flow step collection (gallery) generator 302, template set generator 304, saves workflowSelector 306, step selector 308 and step configure UI generator 310.Workflow logic generator 112 is fixed including workflowAdopted generator 312 and interface define generator 314.Fig. 4 shows the block diagram of display screen 108 according to example embodiment, showsThe example of the workflow designer GUI 116 in the browser window 402 on display screen 108 is gone out to be shown in.
The flow chart 200 of Fig. 2 is since step 202.In step 202, the exploitation of workflow is initiated.For example, at oneIn embodiment, workflow designer 106 can be called by the developer interacted with the browser 136 for calculating equipment 102.ExploitationPerson can traverse the link or other network address of the workflow designer 106 being directed toward at server 134, to call workflow to setGauge 106, to cause workflow designer 106 to provide workflow GUI information 140 (for example, one or more to browser 136Webpage, picture material etc.) to be shown as workflow designer GUI 116 in the display screen 108 in browser window 114.OneDenier is called, and developer can open work on hand stream further to be developed, or can start new workflow.
It is generated for example, the display page of workflow designer GUI 116 can be shown by work flow step collection generator 302Collection or work flow step.Work flow step collection includes multiple selectable work flow steps.Work flow step can storeIn workflow library 118, and accessed by workflow designer GUI 116 for showing.Developer can choose work flow stepOne of to be included in its workflow, and the content of configuration work flow step can be continued, and/or other work can be addedFlow step is to continue to generate its workflow.
For example, as shown in figure 4, work flow step collection generator 302 can enable to selection step 406A, 406B and406C is to be inserted into the workflow just assembled in workflow designer GUI 116 404.Any number of workflow can be insertedStep.
In another example, the display page of workflow designer GUI 116 can show raw by template set generator 304At template set.Template set includes multiple selectable workflow templates, and each template includes one of preparatory connection for operationA or multiple work flow steps.Workflow template can store in workflow library 118, and by workflow designer GUI116 access are for showing.Developer can choose one of workflow template to be included in its workflow, and can continue to matchThe content of workflow template is set, and/or additional work flow step can be added to the work flow step of workflow template to generateMore complicated workflow.
For example, in the example of fig. 4, step 406A and 406B, which can be included in, to be placed in workflow 404In workflow template, then, step 406C can be added (for example, from work flow step collection).
In another example, preservation workflow selector 306 can allow a developer to select to be opened existingThe workflow of preservation in the display page of workflow designer GUI 116 further to edit.The workflow of preservation can depositStorage is in workflow library 118 or elsewhere.For example, the list for saving workflow can be shown by saving workflow selector 306,The navigation of the workflow of preservation may be implemented, and/or can provide for selecting the workflow saved another with what is editedOne mechanism.Then, developer can continue the content of further configuration work stream, and/or can walk to the workflow of workflowSuddenly other work flow steps are added to generate more complicated workflow.
In step 204, enable to for include one or more steps in workflow selection.When developer justIn editing stream, step selector 308 can allow a developer to select for including other in workflowWork flow step and step is ranked up.Work flow step can be visited by the step selector 308 in workflow library 118It asks.For example, step selector 308 can show the drop-down menu of work flow step, available work flow step roll and/orThe list that can search for, or work flow step can be provided in another way, and can be allowed a developer to from listThe middle any number of work flow step of selection is to be included in workflow.
In one example, step selector 308 can allow a developer to selection with it is locally applied (such as) or network-based application is (such as) associated step.StepSelector 308 enables step to link together in order, optionally links together with condition step, to be included in workIt flows in logic 120.
In step 206, make it possible to the selected step of each of configuration work stream.In one embodiment, it walksRapid configuration UI generator 310 makes it possible to each work flow step in configuration work stream.Step configures UI generator 310 and accessesThe selected work flow step in each of workflow library 118 is to determine the configuration of work flow step, including its all inputs ginsengSeveral and user or developer are provided to work flow step to configure its any other selection or information.For example, stepUI can be generated in configuration UI generator 310, which allows a developer to key in, navigate to, using drop-down menu or with itInput data is input in the Text Entry or other data entry elements of work flow step (for example, input is joined mode by heNumber).Developer can configure the output of previous steps to the input data of work flow step.Step configures UI generator 310Data or other objects can be enabled to be replicated and paste, drag and drop or otherwise from elsewhere duplication be input to workMake in the data input frame of flow step.
In a step 208, the workflow logic for realizing workflow is generated.In one embodiment, workflow logicGenerator 112 is configured as when developer indicates that workflow is completed (such as when developer and workflow designer GUI 116 hand overWhen mutually to save workflow) workflow information 138 based on construction is packaged and generation workflow logic 120.As shown in figure 3, workMake the workflow information 138 that stream logic generator 112 receives construction.Which workflow step is the workflow information 138 of construction indicateSuddenly it has been inserted into workflow, their input parameter value and its sequence.Selected by workflow logic generator 112 also receivesWorkflow logic 320, be the work of each work flow step of the workflow indicated in the workflow information 138 of constructionFlow logic.In one example, workflow logic generator 112 in the workflow information 138 of construction for each of indicatingWork flow step retrieves workflow logic from workflow library 118, to receive selected workflow logic 320.Workflow is patrolledCollecting workflow information 138 and selected workflow logic 320 of the generator 112 based on construction is that workflow generation workflow is patrolledCollect 120.For example, workflow logic generator 112 can that can execute in a standalone fashion, can execute in a browser orExecutable file, zip file or the other forms that person can execute in another way generate workflow logic 120, this depends onIn the specific type of the workflow generated.
With reference to Fig. 3, workflow logic 120 is can be generated to include at least two component (examples in workflow logic generator 112Such as, file): workflow definition information 316 and interface definition information 318.Workflow definition information 316 includes limiting workflow to patrolVolume workflow sequence and operation information (for example, listing work flow step operation and its sequence/sequence) and including workMake the parameter value flowed.For example, workflow definition information 316 can be generated comprising JSON (JavaScript object representation) textPart format or another form of information.Interface definition information 318 includes limiting interface/parameter of the work flow step of workflowThe information of (for example, outputting and inputting).For example, interface, which can be generated, defines information 318 so that (REST is (representative comprising SwaggerState transfer) network service specification) file format or another form of information.For example, each work flow step can beAPI (Application Programming Interface) metadata of Swagger format is expressed as in workflow library 118, it must with limit work flow stepWhat output and input (parameter) wanted be, allows to access service according to API definition.In such an implementation, it worksThe operation referenced interface that stream defines in information 316 defines the corresponding API metadata in information 318 to provide workflow generatedComplete structure (have for example, each of defining orderly work flow step/operation with the parameter value in workflow definition information 316Have and define the corresponding API limited in information 318 in interface).
Therefore, flow chart 200 and workflow designer 106 allow a developer to creation workflow.Fig. 5-8 shows rootAccording to the view of the exemplary workflow in the various development phases of the use exploitation GUI of example embodiment.For example, in Fig. 5-8Each show browser window 402 of the display for the corresponding views of the workflow designer GUI 116 of development stream.
For example, Fig. 5 shows the browser window 402 including work flow step 502 and addition interface 504.Workflow stepRapid 502 the first step in workflow is selected as by developer.Can by developer and addition interface 504 (for example, button orOther GUI controls) it is interactive to add other work flow step to workflow.
As described above, developer can list from step or library, the collection of work flow step, template set or select elsewhereSelect work flow step 502.List, library (library) or collection (gallery) may include any number of work flow step.WorkMake flow step can with it is mentioning elsewhere or otherwise known network-based application (for example,DropboxTM) and/or mention elsewhere or otherwise it is known it is locally applied (for example,) associated.Each work flow step is configured as being inserted into workflow.Each workFlow step is configured with logic appropriate and/or (one or more) interface for executing its (one or more) corresponding function,These functions may include and Local or Remote application communication.Inquiry is transferred to for example, work flow step can be configured asUsing (for example, the search inquiry to search engine, the data base querying to database, the data from social networking application are askedAsk), work flow step is preconfigured to be how correctly to transmit and format such request to application.Work flow step canTo be configured as receiving the response to request, work flow step is preconfigured to be the sound how parsed to expected response dataIt answers.Therefore, the developer of workflow requires no knowledge about how programming language such as and writes program code, how to connect with complicated applicationMouth (for example, Application Programming Interface (API)) interface, or how to understand network communication protocol, because work flow step has been setIt sets.When work flow step is inserted into workflow logic by developer, the input (as described below) of developer's configuration work flow step,And otherwise any communication of preconfigured work flow step processing and other application.
In Fig. 6, developer interacts (for example, by mouse click etc.) with step 502 to cause step to configure UIGenerator 310 generates the UI of the configuration for step 502.For example, in the example of fig. 6, work flow step 502 is configured as supervisingWhether survey will create file (for example, by keying in, clicking in the particular file folder identified in Text Entry by developerBy the omniselector etc. of " ... " instruction).When work flow step 502 determines that file is added to the file of instruction, work is triggeredWork flow step after flow step 502.Therefore, in this illustration, work flow step 502 is considered triggering stepSuddenly.
For example, developer interacts with addition interface 504 to select subsequent work flow step 702 in Fig. 7.In a realityIt applies in example, the step selector 308 with the interaction calling figure 3 at addition interface 504 allows a developer to selection workflowStep.In the example in figure 7, work flow step 702 is condition step.In embodiment, logical elements be can choose to includeIn workflow, including arithmetical logic (for example, adder, multiplier etc.), conditional logic etc., these logical elements are based on firstThe variate-value determined in preceding work flow step is operated.The condition of work flow step 702 enables workflow to be based on conditionDetermination (for example, variate-value) carry out bifurcated.Condition may include object oriented, relationship (for example, logical relation, is such as equal to, wrapsInclude, be not equal to, be less than, be greater than) and value, they are all interacted by developer with work flow step 702 to define.Corresponding movementStep can depend on workflow and carry out the mode of bifurcated based on condition to execute.
For example, can choose object oriented (for example, from possibility list) work in an illustrated examples of Fig. 7For the title of the creation file of work flow step 502, relationship can be "comprising" (for example, by drop-down menu select) andValue can be " dummyfile " (for example, by developer's key entry).If filename includes to call the first movement work flow step704 " dummyfile ", then Conditions Evaluation is "Yes" condition, and if filename, which does not include, calls the second movement workflow stepRapid " dummyfile ", then Conditions Evaluation is "No" condition.If desired, can be that "Yes" and "No" act work by developerMake one or two of flow step 704 and 706 definition movement.
For example, in fig. 8, developer interacts with movement work flow step 704 to limit movement.In this illustration, it opensOriginator limits movement work flow step 704 by selecting work flow step via step selector 308.As shown in figure 8, displayThe list of work flow step 802A, 802B, 802C, developer can therefrom select to execute for movement work flow step 704Work flow step (for example, pass through mouse click etc.).Work flow step can be triggering step, action step or condition stepSuddenly.After selecting work flow step, developer can configuration work flow step as described above.In addition, developer can configureThe movement of work flow step 706 can add other work flow step, etc., can finally to save workflow.
It should be noted that in some embodiments, the work flow steps such as first work flow step 502 may need voucher(for example, log in and password) accesses indicated data (for example, the position that access indicates in the Text Entry in Fig. 6The file at place).In this way, developer and the first work flow step 502 can be requested to be provided in association with credential information, so that working asRun time between the first work flow step 502 be performed, accessible data.Alternatively, can be during runtime to userRequest voucher.
B. embodiment when example is run
According to embodiment, end user can execute the workflow developed as described herein.During operation, end userIt can be interacted with the GUI of workflow, this can cause workflow logic to be performed.Workflow logic can it is local (for example,In browser) and/or the execution (in " cloud ") at remote service.Accessible one by developer's configuration of workflow logicOr the data that multiple locals or network-accessible are applied.Therefore, its expectation function of workflow execution.
Fig. 9 show according to example embodiment for operate include one or more work flow steps workflowSystem 900 block diagram.As shown in figure 9, system 900 includes calculating the network-based application 124A of equipment 902, first, secondNetwork-based application 124B and server 134.Calculating equipment 902 includes that workflow applies 904.Server 134 includes workFlow enforcement engine 906.System 100 is described as follows.
The first network-based network-based application 124B of application 124A and second each there can optionally be, this is depended onThe configuration of workflow logic 120.In addition network-based application may exist, this depends on the configuration of workflow logic 120.
Calculating equipment 902 can be described herein or otherwise known any kind of fixation or mobile meterCalculate equipment.Calculating equipment 902 is configured as on network 126 network-based with the first network-based application 124A and secondIt is communicated using 124B and server 134.
In one embodiment, workflow is executed by Workflow execution engine 906 in server 134, and workflowIt is that the UI that interact with the workflow being carrying out of user calculated at equipment 902 is applied using 904, such as passes through choosingWorkflow is selected and called, receives communication (for example, message, alarm, output data etc.) from the workflow that is carrying out, to holdingCapable workflow provides requested input data, etc..In such embodiments, workflow can be and work using 904Make stream enforcement engine 906 (for example, extension that workflow can be Workflow execution engine 906 using 904) associated workUI application is flowed, Workflow execution engine 906 can be operated separately with the browser at calculating equipment 902 or be grasped in the browserMake, or can configure in another way.As shown in figure 9, Workflow execution engine 906 can load selected workflowWorkflow logic 102 (for example, being selected from workflow library by user), and workflow logic 102 can be executed to holdRow workflow.
In another embodiment, workflow can be configured as using 902 and calculate execution workflow at equipment 902.ExampleSuch as, calculate equipment 902 end user can with workflow using 902 user interface interaction to select and call particular jobStream (for example, selected from workflow library).In such embodiments, workflow logic 120 can with calculate equipment 902 atBrowser operate separately or operated in the browser, or can configure in another way.As shown in figure 9, workflowThe workflow logic 120 (for example, being selected from workflow library by user) that selected workflow can be loaded using 904,And workflow logic 120 can be executed to execute workflow.
In another embodiment, the first part of workflow logic 120 can calculate the workflow application at equipment 902It is operated in 904, and the second part of workflow logic 120 can be in the Workflow execution engine 906 at server 134And/or it operates elsewhere.
Figure 10 shows the process of the workflow logic 120 according to the offer of an example embodiment for executing workflowFlow chart 1000.Flow chart 1000 describes for illustration purposes about the system of Fig. 9 900 as follows.
Flow chart 1000 is since step 1002.In step 1002, workflow is executed.In one embodiment, it calculatesEnd user at equipment 902 can cause workflow logic 120 to be performed, such as by order line, by click/percussion orIt is otherwise interacted with the icon of application is indicated, by being selected in a browser, or in another way.Institute as aboveIt states, workflow logic 120 can apply the work in 904 and/or at server 134 in the workflow at calculating equipment 902It is executed in stream enforcement engine 906.Upon being performed, the work flow step of workflow logic 120 is executed with the sequence configured.CauseThis, one or more work flow steps can call corresponding application/service to execute their function, such as locally applied122 (with returned datas 132), network-based application 124A (with returned data 130A), network-based application.124B (withReturned data 130B) and/or other local or network-based applications.
In step 1004, workflow GUI is shown.Step 1004 is optional, is not work such as in some embodimentsStream display GUI.In one embodiment, GUI can be by the workflow of calculating equipment 902 using 904 displays.When shownWhen, user can by check display data (for example, from file, data-base recording, electrical form or by workflow readOther data structures), by the input data (for example, by key in, pass through voice, etc.) into GUI and/or by with byOne or more widget interactions that GUI is shown to interact with GUI.
In step 1006, workflow logic is triggered based on the interaction with workflow.In the one or more of workflowIn the case that work flow step needs input from the user, step 1006 is optional.In this case, user and and workThe associated workflow of work flow step of work stream logic 120 is using the widget interaction in 904 GUI to provide triggering workflowThe information that the logic of step is operated.
In this way, workflow logic 120 executes its function, and such as processing order, tracking information generate message, placeReason document is to generate task or information, collect feedback and/or any other function.
III. template in automatically working stream development system automatically generates
As described in reference diagram 3 above, the display of template set is may be implemented in template set generator 304, which includes moreA selectable workflow template, each workflow template include one or more workflows step of the preparatory connection for operationSuddenly.Workflow template can store in workflow library 118 (Fig. 1), and be accessed by workflow designer GUI 116 for showingShow.Developer can choose one of workflow template to be included in its workflow, and can continue configuration work flow templateContent, and/or other work flow steps can be added to the work flow step of workflow template to generate more complicated workIt flows.
Figure 11 depicts according to the embodiment can manually generating via it to user's presentation one or more or automaticThe example interactive display screen 1102 of the workflow designer GUI 116 of the template of generation.As shown in figure 11, multiple works are shownMake flow template instruction, including workflow template indicates 1104A-1104C.Each workflow template instruction is by rectangle icon and workThe text of the function of flow template describes to indicate.Thus, for example, the template being presented to the user in Figure 11 may include " when youWhen saving file in Office 365, uploads to SharePoint " (workflow template 1104A), " sends out your InstagramCloth to Twitter " (workflow template 1104C), " element of work is used to simplify your workflow " (workflow template 1104B)," setting project main points " and " estimation for starting to process receiving ".
Each workflow template is defined as the combination of step.For example, template (for example, workflow template 1104A) can be withThe movement for being defined as trigger (when " when you save file in Office 365 ") and being executed when trigger is activatedThe combination of (" uploading to SharePoint ").The each step for including in template may include compiling with using suitable application programThe specific connector of journey interface (API) access or the interaction of service.That is, each connector (for example, DropBox,Outlook, Bing search, SharePoint etc.) it can enable to execute one or more operations for the connector.
When user selects the specific template indicated on the screen (for example, by touching it on the touchscreen, by with mouseMark is directed toward it and click, etc.), user is brought to workflow designer screen (for example, browser window 402 of Fig. 7), shouldWorkflow designer screen provides the graphical representation of each step of template and provides user and can customize to be drawn by each stepThe means of various parameters and user can add, modify or delete step, test automation workflow, and save certainlyThe means of dynamicization workflow.
In one embodiment, each template being presented to the user via interactive display screen 1102 shown in Figure 11 can be withIt indicates by the dynamic exploitation of manpower, store and be then published for the automatically working stream used for other people.However, a large amount of existingIn the embodiment of connector (each connector may have a large amount of operations), it can be generated by combination different connector operationThe number of possibility template may be very big and may not manually generate (and optionally customizing) each possibleTemplate.
In order to solve this problem, the template generation logic of workflow designer 106 can be configured as by combining automaticallyDifferent connectors operates to automatically generate the new template that can be presented to the user.Each Combination nova can be via such as Figure 11 instituteThe interactive display screen shown is rendered as new template.Thus, for example, template generation logic can combine automatically saves fileThe operation of Office 365 and the SharePoint of upper transmitting file are operated, and save file in Office 365 to automatically create to work asWhen file is uploaded to the template of SharePoint.
In one embodiment, template generation logic is additionally configured to automatically generate what description was executed by newly-generated templateThe text of operation.Therefore, further according to aforementioned exemplary, template generation logic can automatically generate text " when you are in OfficeWhen saving file in 365, SharePoint " is uploaded to.
In another embodiment, the distant of the template automatically generated about user using the sum which is manually generated can be collectedSurvey/use statistical data.Based on such use information, it can determine which template is popular with users.The information can be used againIn it is determined which template highlighted for user on interactive display screen, which type of mould should be automatically generated in the futurePlate, and/or should manually generate and/or customize in the future which type of template.
Therefore, in embodiment, workflow designer can be configured as generation workflow template.For example, Figure 12 is shownAccording to the block diagram of the workflow designer 106 for being configured as automatically generating workflow template of example embodiment.Such as figureShown in 12, workflow designer 106 includes template generation logic 1202.Template generation logic 1202 is configured as automatically generating mouldPlate (pre-generated automatically working stream customizable by a user), these templates can be presented to the user and can be consequently forEasily and effectively develop automatically working stream.As shown in figure 12, template generation logic 1202 includes work flow step combiner1206, it describes generator 1208 and uses analyzer 1210.Work flow step combiner 1206 is configured as work in combination stream stepSuddenly to generate workflow template.Description generator 1208 is configured as generating label for workflow template generated.Using pointParser 1210 there can optionally be.When it is present, the use of monitoring flow step is configured as using analyzer 1210 and useCreation of the family from work flow step to workflow, and be determined for being used to form template based on its use statistical dataWork flow step expectation combination.
Template generation logic 1202 is described in further detail below with reference to Figure 13.Figure 13 is shown according to an example realityThe flow chart 1300 of process of the offer of example for automatically generating workflow template is provided.In one embodiment, template generation is patrolledCollecting 1202 can be operated according to flow chart 1300.Note that and non-required execution flow chart in all embodiments 1300All steps.Template generation logic 1202 and flow chart 1300 are described as follows.
Flow chart 1300 is with step 1302 beginning.In step 1302, multiple workflows in work flow step library are determinedStep.In one embodiment, the work flow step combiner 1206 of Figure 12 be configured as access workflow library 118 (and/or packetOther libraries containing work flow step) to determine the multiple work flow steps being included in.Work flow step combiner 1206 canTo determine all working flow step in library, or can be determined based on by developer/administrator configurations filter criteria(for example, filtering out certain types of work flow step, such as message transmitting step, reminds step at file monitoring step to part of itIt is rapid etc.).It can determine that the work flow step of any number and combination of type, including one or more trigger step and/or moveMake step.In general, the triggering step of workflow monitors condition, and when the conditions are met, triggering step triggering (is activated or is openedWith) one or more follow-up work flow step.Action step executes movement when reaching in workflow, such as in another movementAfter step, or when being triggered step triggering.According to specific condition step and situation, condition step is consideredTrigger step or action step.
In step 1304, one or more workflow templates are automatically generated, the workflow template packet being each automatically generatedInclude the combination of at least two work flow steps in the work flow step in library.In one embodiment, work flow step combinesDevice 1206 receives work flow step 1214 from workflow library 118.Work flow step 1214 includes the work determined in step 1302Make flow step.Work flow step combiner 1206 is configured as by combining the received workflow step in work flow step 1214It is rapid to automatically generate one or more workflow templates 1216.With with the work in combination that is such as further described above with reference to Fig. 1-8Flow step as to generate workflow class in a manner of, work flow step combiner 1206 can work in combination flow step in any wayTo generate any number of workflow template 1216.
Figure 14 is shown according to the offer of an example embodiment for that will trigger step and one or more action stepsIt combines to generate the flow chart 1400 of the process of workflow template.In one embodiment, work flow step combiner 1206 canTo be operated according to flow chart 1400.Flow chart 1400 is described as follows.
In step 1402, the triggering step of the work flow step in work flow step library is selected.In one embodiment,Work flow step combiner 1206 can choose the triggering step of work flow step 1214.Specific touching can be selected in any wayStep is sent out, including by as next triggering step with particular order, randomly, according to selection algorithm or in any other mannerSuddenly (for example, sorting according to the step identifier for being assigned to work flow step).In one example, selected triggering step canTo be to monitor the table monitoring flow step for when adding to table a line.For example, triggering step can be in GoogleSheetsTMMiddle realization.
In step 1404, at least one action step of the work flow step in work flow step library is selected.At oneIn embodiment, work flow step combiner 1206 can choose one or more action steps of work flow step 1214.It can be withIn any way select specific action step, including as with particular order, randomly, according to selection algorithm or with any otherNext action step (for example, sorting according to the step identifier for being assigned to work flow step) of mode.Continue the example, it is selectedThe action step selected can be the messaging work flow step of transmission message.For example, action step can be passed in text messageIt send in application and realizes.
In step 1406, selected triggering step and at least one selected action step are combined automatically to generateWorkflow template.In one embodiment, work flow step combiner 1206 can automatically (for example, being not necessarily to human intervention) willSelected triggering step and selected one or more action steps are combined into the workflow of interconnection.Triggering step can be byWork flow step combiner 1206 is configured to starting step, has the one or more outputs for flowing into one or more action steps(for example, trigger signal etc.) triggers one or more action steps for movement when triggering step and being triggered.When there are multipleWhen action step, action step can be configured as serial, parallel or be operated with a combination thereof.It continues the example presented above, worksFlow step combiner 1206 can be by selected table monitoring flow step and selected messaging work flow step groupIt closes, in this particular example, by Google SheetsTMUsing work flow step and text message transmission application work flow stepCombination.Work flow step combiner 1206 can be by GoogleSheetsTMWork flow step is configured to triggering text message transmissionWork flow step, so as to Google SheetsTMIn table when adding new a line, text message transmission workflow stepSuddenly it is triggered with sending information message to add a line to recipient's notice.
Note that when generating workflow template 1216, work flow step combiner 1206 may or may not with general orAnonymous way generates workflow template 1216.For example, workflow mould can be generated in work flow step combiner 1206 when anonymityPlate 1216 with do not include at least some parameters parameter value (or general parameter value).In the above examples, work flow step combinesDevice 1206 can be wiped or otherwise to by Google SheetsTMWork flow step monitoring row and/or by text messageThe parameter value for transmitting (one or more) recipient of the text message of work flow step transmission carries out generalization.When user selectsWhen (for example, duplication) workflow template 1216 is to be converted into real work stream, such parameter value can be later by such useFamily filling (as described further above).About further describing in following subdivision further for anonymous workflow templateDescription.
In one embodiment, the accessible workflow logic generator 112 (Fig. 1) of work flow step combiner 1206 orIt is similarly configured as generating workflow template in the form of workflow logic 120 with workflow logic generator 112 (Fig. 1)1216 (without at least some parameter values, as described above).For example, work flow step combiner 1206 can give birth in a variety of mannersAt workflow template 1216, such as in the form of including the packet of at least two components (for example, file): workflow definition information316 and interface define information 318 (Fig. 3).As described above, workflow definition information 316 includes the work for defining workflow logicThe sequence of stream and the information (for example, listing work flow step operation and its sequence/sequencing) of operation and the ginseng including workflowNumerical value.In addition, as described above, interface definition information 318 include define workflow work flow step interface/parameter (for example,Output and input) information.When generating workflow 1216, work flow step combiner 1206 generates workflow definition information316 to include the information for the sequence and operation for defining workflow template, and generates interface and define information 318 to include defining workMake the information of interface/parameter (for example, outputting and inputting) of the work flow step of flow template, while being omitted or substituted any anonymityThe parameter value of parameter, as described above.
Referring again to Figure 14, in step 1408, the operation that description is executed by workflow template generated is automatically generatedText.In one embodiment, there is description generator 1208, and describe generator 1208 and receive workflow template1216.Description generator 1208 is configured as automatically generating the text for the operation that description is executed by workflow template 1216, andIncluding text generated (for example, as workflow template " title " or parameter value of " title " parameter) and workflow template1216, to generate the workflow template 1218 of label.The text of generation can use in various ways, it may for example comprise displayIt is all as shown in figure 11 on the icon for indicating workflow template.
For example, description generator 1208 can upload to file to trigger when saving file in Office 365The workflow template of SharePoint automatically generates text and " when you save file in Office 365, uploads toSharePoint".Description generator 1208 can generate text in any way, including be combined into workflow mould by determinationThe title or label (for example, from " title " or " title " parameter of work flow step) of the work flow step of plate, and by reallyThe title or mark of fixed work flow step are combined into text.The example continued the above, description generator 1208 can automatically generateText " sending information when adding new a line in Google Sheets ", and text generated is saved as into workThe title or label of flow template.
Note that template generation logic 1202 can generate workflow template according to Figure 12 or otherwise.In addition, templateMultiple workflow templates can be generated based on available work flow step in various ways by generating logic 1202.Figure 15-17 is shownFor generating the various technologies of workflow template, and it is described as follows.
For example, Figure 15, which is shown, automatically generates work according to the one group of work flow step that is used to be based on of an example embodimentAll combined steps 1502 of flow template.In step 1502, iteration triggers the action step in step and work flow step libraryRapid all combinations are to generate multiple workflow templates.In one embodiment, work flow step combiner 1206 can be matchedIt is set to and is iterating through all combinations for triggering step and action step to generate multiple workflow templates.For example, if workflowThere are ten kinds of different types of triggering steps in library 118, and there are 12 kinds of different types of action steps in workflow library 118,Then a workflow template in 120 (120) can be generated in work flow step combiner 1206 comprising triggering step and movementAll combinations of step.In another embodiment, work flow step combiner 1206 can be configured as by be iterating through asGet off and generate multiple workflow templates: all combinations of triggering step and action step pair or the movement for triggering step and big figureAll combinations of step.Therefore, according to step 1502, the workflow template of big figure, some of workflow moulds can be generatedPlate may include the useful combination of work flow step, and other workflow templates can not include useful group of work flow stepIt closes.In this way it is possible to extensive work flow template be generated, although workflow template collection may be contaminated with a large amount of useless worksMake flow template, this may be undesirable for the developer for accessing the collection.
Figure 16 shows the step of number for being used to reduce the workflow template automatically generated according to example embodiment1602.Step 1602 can be used for reducing the number of the workflow template generated in the step 1502 of Figure 15.In step 1602In, administrator can plan template library to eliminate one or more workflow templates from template library.In one embodiment, it managesThe accessible template library 1212 of reason person is to check and delete the workflow template that administrator thinks useless.For example, can be to managementThe interactive display screen 1102 (Figure 11) that member's display is provided by workflow designer GUI 116 is to show the work in template library 1212Make flow template.Administrator can have the administrator right about template library 1212, so that administrator can select and deleteWorkflow template.For example, administrator can be with the label of read work flow template to notify its content to administrator, and can makeAdministrator is deleted with the information thinks the workflow template for lacking serviceability.In this way, the workflow template collection of displayWill not by user be less likely need workflow template confusion.
In other embodiments, workflow template can be automatically generated in more intelligent mode.For example, Figure 17 shows rootsAccording to example embodiment offer for based on use statistical data automatically generate workflow template process flow chart 1700.StreamJourney Figure 170 0 is with step 1702 beginning.In step 1702, the statistical data about the workflow created by developer is analyzed, withIt determines by developer in large quantities or to be greater than the workflow that the frequency of predetermined threshold creates.In one embodiment, workflow libraryWork flow step in 118 can be used for many developers to be included in workflow.It is configured as using analyzer 1210Reception is associated with workflow library 118 to use statistical data 1220.It the use of statistical data 1220 may include about workflowThe information of the access of work flow step in library 118, including developer by each work flow step be merged into workflow timeNumber, user's number for combining the particular job flow step in workflow, and/or about the work in workflow library 118Make the further information of the access of flow step.It is analyzed using statistical data 1220 using analyzer 1210 to determine in workflowThe combination of the comparative prevalence of work flow step can be advantageously formed to workflow template.As a result, allow user fromThe workflow template that selection is combined comprising the work flow step of comparative prevalence in template library 1212, rather than user must oneself groupFill the combination of these work flow steps.
For example, can be combined each particular job flow step (for example, specific with one or more using analyzer 1210The certain trigger step of action step interconnection) number that is formed workflow is compared with predetermined threshold.Predetermined threshold can be withIt is that the combination of particular job flow step must occur to be considered as popular minimum number.Stream can be generated using analyzer 1210Row workflow instruction 1222 is to indicate comprising frequency greater than one or more works that the work flow step of predetermined threshold combinesIt flows.
In step 1704, workflow template corresponding with identified workflow is generated.As shown in figure 12, workflowStep combiner 1206 receives popular workflow instruction 1222 (when existing using analyzer 1210).Work flow step combiner1206 are configurable to generate the workflow template including the work flow step combination indicated in popular workflow instruction 12221216.Work flow step combiner 1206 can generate workflow template as described herein.
In step 1706, workflow template corresponding with identified workflow is stored in template library.Such as figureShown in 12, description generator 1208 can generate label for workflow template 1216, and by the workflow template of label 1218It is stored in template library 1212 or workflow template 1216 can be stored directly in template by work flow step combiner 1206In library 1212.
Based on introduction herein, to be generated for determination and stored in template library 1212 which workflow template itsWhat his mode will be clear that those skilled in the relevant art.
Referring again to Figure 13, in step 1306, one or more workflow templates are stored in template library.Such as Figure 12Shown, the workflow template 1218 of label can be stored in template library 1212 by description generator 1208.Alternatively, being not presentIn the embodiment for describing generator 1208, workflow template 1216 can be stored directly in mould by work flow step combiner 1206In plate library 1212.Template library 1212 is workflow template library, includes any number of workflow template.
In step 1308, indicating template collection, template library include one or more in template library in graphical user interfacesThe instruction of a workflow template.In one embodiment, the mould of template set generator 304 (Fig. 3) accessible workflow templatePlate library 1212 is to be shown in workflow designer GUI 116.As described above, Figure 11 depict can via its present one orThe example interactive display screen 1102 of the workflow designer GUI 116 of template that is multiple manually generating or automatically generating.Such asShown in Figure 11, multiple workflow template instructions are shown, including workflow template indicates 1104A-1104C.Each workflow mouldPlate indicates to describe to indicate by the text of the function of icon and relevant work flow template.
In step 1310, it allows a developer to be interacted with graphic user interface to select workflow mould from template libraryPlate is to be included in workflow.In one embodiment, the workflow template that developer can choose Figure 11 (is expressed as workflowTemplate 1104A-1104C etc.) one of to be included in its workflow, and the content of configuration work flow template can be continued, and/Or other work flow steps can be added to the work flow step of workflow template to generate more complicated workflow.
IV. template is generated based on selected pre-generated triggering step
As described in preceding section, can generated workflow template in various ways, including by being iterating throughAll combinations of available work flow step (for example, triggering step and action step), allow an administrator to one group of generation of planningWorkflow template, based on generating workflow template, etc. using statistical data.In another embodiment, when developer (or pipeReason person) selection work flow step when, can automatically determine and show the selection of the work flow step compatible with work flow step.PipeReason person can choose one or more work flow steps shown automatically to combine with the work flow step of initial selected to createWorkflow template.The automatic display of compatible operations flow step facilitates developer and avoids before the compatible work flow step of selectionLag and be erroneously selected incompatible work flow step, it is ensured that only show compatible work flow step for choosing to developerIt selects.Obtained workflow template can store at workflow library 118 (Fig. 1) or elsewhere so that developer may includeIn its workflow.
For example, Figure 18 shows the template generation according to the embodiment comprising being configured to determine that compatible work flow stepThe block diagram of the workflow designer 106 of logic.As shown in figure 18, workflow designer 106 includes template generation logic 1802.MouldPlate generates logic 1802 and is configured as generating workflow template based on compatible work flow step.As shown in figure 18, template generationLogic 1802 includes compatible operations flow step determiner 1804.Compatible operations flow step determiner 1804 is configured as by automaticThe work flow step compatible with selected work flow step is determined to help to generate workflow template.
Template generation logic 1802 is more fully described below with reference to Figure 19.Figure 19 is shown according to an example embodimentProcess of the offer for automatically determining compatible work flow step flow chart 1900.In one embodiment, template generationLogic 1802 can be operated according to flow chart 1900.Note that not requiring execution flow chart in all embodiments1900 all steps.Template generation logic 1802 and flow chart 1900 are described as follows.
Flow chart 1900 is with step 1902 beginning.In step 1902, so that developer (or administrator) can selectOne work flow step.Such as above for the step 204 and UI generator 110 of flow chart 200 (Fig. 2) (for example, the step of Fig. 3 is selectedSelect device 308) further describe, developer can be selected with user interface interaction for including the workflow in workflowStep.For example, Figure 20 shows the view of browser window 402, as described above, browser window 402 is for developmentThe example GUI of stream.In Figure 20, work flow step 502 may be had been selected as in workflow being developed in developerStep.
In step 1904, the one or more work flow steps compatible with the first work flow step are automatically determined.Such as figureShown in 18, compatible operations flow step determiner 1804 receives the selection step for the work flow step that instruction selects in step 1902Instruction 1806.In one embodiment, compatible operations flow step determiner 1804 is configured to automatically determine and by selection stepIndicate the compatible one or more work flow steps of the work flow step of 1806 instructions.Compatible operations flow step determiner 1804 canTo determine the one or more work flow steps compatible with the indicated work flow step that user selects in various ways.
For example, in one embodiment, compatible operations flow step determiner 1804 can be grasped according to flow chart 2100Make.Figure 21 shows process of the offer according to example embodiment for determining compatible each other triggering step and action stepFlow chart 2100.Flow chart 2100 is described as follows.
In step 2102, it is action step in response to the first work flow step and automatically determines and the first work flow stepCompatible one or more triggering steps.In one embodiment, which kind of type compatible operations flow step determiner 1804 determinesWork flow step be indicated as being selected (for example, the parameter based on selected work flow step, based on work flow stepList of types, etc.).When determining selected work flow step is action step, compatible operations flow step determiner 1804It can be configured as and automatically determine the one or more triggering steps compatible with action step.Alternatively, compatible operations flow step is trueThe one or more action steps compatible with action step or the touching compatible with action step can be automatically determined by determining device 1804Send out the combination of step and action step.
It is to trigger step and automatically determine and the first work flow step in response to the first work flow step in step 2104Compatible one or more action steps.When determining selected work flow step is triggering step, compatible operations flow stepDeterminer 1804, which can be configured as, automatically determines the one or more action steps compatible with triggering step.Alternatively, compatible workThe one or more triggering steps compatible with step is triggered can be automatically determined or walk with triggering by making flow step determiner 1804Suddenly the combination of compatible triggering step and action step.
Compatible operations flow step determiner 1804 can be configured as determining and selected workflow in various ways and walkSuddenly compatible work flow step.For example, in one embodiment, compatible operations flow step determiner 1804 can keep it is all canWith the list of work flow step, and for each work flow step listed, can indicate and listed work flow stepCompatible all available work flow steps.If desired, each work flow step can be indicated as " triggering " or " movement " stepSuddenly, only to select compatible triggering step or action step.In another embodiment, compatible operations flow step determiner 1804 canThe work flow step that user is combined with each other in its workflow is determined using statistical data 1220 (Figure 12) with access, and canThe work flow step being combined with each other in user job stream to be classified as being compatible with each other.Other.In other embodiments, compatibleWork flow step determiner 1804 can otherwise determine compatible work flow step.
Referring again to Figure 19, in step 1906, with the first work flow step display in association with determined by one orMultiple work flow steps.In one embodiment, UI generator 110 (Fig. 1) can be configured as selects in step 1902Work flow step display in association in step 1904 determine compatible operations flow step.Can in any way with it is selectedThe work flow step selected displays in association with identified compatible operations flow step, including related to selected work flow stepIt is shown in connection left side, right side, top or the bottom of selected step, in drop-down menu, or in any other manner.It is standbySelection of land may be displayed on the same page or new page by the work flow step collection that work flow step collection generator 302 (Fig. 3) generatesOn face.
For example, as shown in figure 20, developer selects work flow step 502 to be included in workflow, and in response,Compatible connector selector 2002 can be displayed near work flow step 502 (right side in Figure 20) comprising be determinedFor the multiple work flow steps compatible with work flow step 502.Compatible connector selector 2002 can provide scrollable list,Especially when the number of identified compatible operations flow step is not suitable for one page, or compatibility can be shown in another wayWork flow step.
Once showing compatible work flow step, so that it may so that developer (or administrator) can select in themOne or more is to be merged into workflow template.Particularly, Figure 22 shows offer according to example embodiment for selectingSelect the flow chart 2200 of the process for including compatible operations flow step in workflow template.In one embodiment, it flowsJourney Figure 22 00 can be the continuation of flow chart 1900.Flow chart 2200 is described as follows.
In step 2202, allow a developer to select the second work in shown one or more work flow stepsMake flow step.In one embodiment, step selector 308 (or other mechanism for selecting work flow step) can makeDeveloper can by it is describing elsewhere or otherwise it is known it is any in a manner of from shown compatible operationsWork flow step is selected in flow step.For example, developer can roll through by compatible connector selector 2002 about Figure 20The compatible operations flow step of display.
It, will be in the workflow template of the insertion of the second work flow step and the interconnection of the first work flow step in step 2204.In one embodiment, step selector 308 (or other mechanism for selecting work flow step) can with herein otherPlace description or otherwise known any mode has the insertion of selected work flow step in step 1902In the workflow template of first work flow step of selection.For example, about Figure 20, developer can by with mouse pointer or withAny other mode clicks work flow step 2004 to select to be selected (in the step 1902 of flow chart 1900) by compatible connectorSelect the work flow step 2004 of the display of device 2002.Selected work flow step 2004 can be merged by step selector 308In workflow template with work flow step 502.Can for workflow template generate label (for example, " when creating file,By news release to Slack "), and workflow template can be saved, as described elsewhere herein.
Note that after in workflow including one of compatible operations flow step, in one embodiment, workflow compatible stepRapid determiner 1804 can determine and show another workflow compatible list of steps, be specifically for according to flow chart 1900The work flow step that has just included and determination.It can be in this way by another compatible operations flow step and even otherCompatible operations flow step is incorporated to workflow.
V. anonymous for private and public shared automatically working flow template selectivity
In one embodiment, the template generation logic 1202 and 1802 of Figure 12 and Figure 18 is configured as allowing user will be certainlyDynamicization workflow template is published to they accessible website of developer.As described above, template includes pre-generated userConfigurable automatically working stream.By allowing user to issue using exploitation/completion automatically working stream as template, mouldPlate generates that logic 1202 and 1802 advantageously allows users to identify using other people work in its community may be rightThe automatically working stream of their useful and the automatically working stream that may be used as developing oneself starting points.
Figure 23, which is depicted, to be allowed users to the workflow of completion applying the automatically working issued as templateFlow the example interactive display screen 2302 of development and application (for example, workflow designer 106 of Fig. 1).As shown in figure 23, screen2302 can interact the interactive mode member to issue exploitation/completion automatically working stream as template including userPart 2304 (for example, button).It, can also can key thereto to user presentation user as further shown in the screen 2302Enter the title (" sending information when adding a line in GoogleSheets ") (rather than automatically generating as described above) of templateThe first Text Entry 2306 and user can key in thereto automatically working stream widely describe second textThis input frame 2308.In this example, user can choose interactive element 2310 (for example, button) to mention the text of key entryIt is sent in Text Entry 2306 and 2308 with associated with workflow template.
In some embodiments, user's property of can choose with the entire public share workflow template (for example, by viaTemplate is distributed to general user group by internet), or template can be selectively shared privately (for example, by publication templateTo one group of user in private organization, such as enterprise, or template is shared with target user).It is distributed to depending on templateAudient, associated various parameters may need that anonymity may also not be needed in template.
For example, as described above, Fig. 6 shows the work flow step 502 of automatically working stream being developed.Workflow stepRapid 502 are included in the workflow in the further exploitation in Fig. 6, and workflow includes series of steps, wherein each stepWith one or more user's configurable parameters associated there.As shown in fig. 6, work flow step 502 include be shown as/The parameter of the folder name of PowerApps/FolderName.If using this automatically working stream as template with it is sameOther users in private organization are shared, then in a template include identical folder name/PowerApps/FolderNameIt may be meaningful.But it if is deleted using this automatically working stream as the user sharing except template and enterpriseExcept particular file folder title (that is, anonymity parameter) may it is more meaningful because this document folder title and enterprise except user withoutIt closes, the user except enterprise possibly can not access, and/or may include the personal information being not intended in the outward leakage of tissue.
Other examples that may need the parameter in anonymous automatically working stream when issuing except tissue may includeSuch as the identifier of certain database, the identifier of specific connection, certain accounts identifier and can be used for access in this wayDatabase, connection or the authority of account or other information.In this way, workflow designer is configured such that parameter value energyIt is enough anonymous for any of these reasons and for the other reasons that will be apparent that for those skilled in the relevant art.
Therefore, Figure 24 is to be configured as the selectively anonymous mould shared for both privately and publicly owned according to one embodimentThe block diagram of the workflow designer 106 of plate.As shown in figure 24, workflow designer 106 includes template generation logic 2402.TemplateGenerating logic 2402 includes receiving to issue such template as the automatically working stream that template is issued and thenWorkflow template distributor 2406.As further shown in Figure 24, template generation logic 2402 further includes being based on before publicationSelectively anonymity includes the certain parameters quoted in automatically working stream or by automatically working stream to one or more factorsSelective Anonymizer 2404.One or more factors may include the target audient such as, but not limited to for publication(it is the specific team publication to entire tissue or into tissue for example, being to the public or only to issue within the organization, ifOnly issued to single people, etc.), the user of shared template, the tissue for sharing in it template and construct template whereinContext.Depending on these factors, certain connections of automatically working stream and/or attribute can be anonymous before publication, andCertain connections and/or attribute can not be anonymous before publication.
Template generation logic 2402 is more fully described below with reference to Figure 25.Figure 25 is shown according to an example embodimentOffer for the parameter in anonymous workflow template process flow chart 2500.In one embodiment, template generation is patrolledCollecting 2402 can be operated according to flow chart 2500.Note that and non-required execution flow chart in all embodiments 2500All steps.Template generation logic 2402 and flow chart 2500 are described as follows.
Flow chart 2500 is with step 2502 beginning.In step 2502, automatically working flow template is received with for issuing,The automatically working flow template includes parameter.In embodiment, workflow template 2408 (for example, as described above) can be generated simultaneouslyAnd workflow template 2408 is received by template generation logic 2402.Workflow template 2408 may include one with parameter valueOr multiple parameters, as described above.This may be because workflow template 2408 is the work flow step by being assigned parameter valueWhat combination was formed.Before the publication of workflow template 2408, it may be desirable to anonymous at least some parameter value (wherein workflow mouldsPlate 2408 can be used for different user groups).Workflow template 2408 can be received by template generation logic 2402 to carry out anonymity,And it is then issued as anonymous workflow template.
The example workflow that can be received to be issued as workflow template is shown about Figure 26.Figure 26 is shownThe view of browser window 402 including workflow 2600 being developed according to example embodiment.Workflow 2600 isAutomatically working stream including series of steps, wherein each step has one or more users associated there configurableParameter.One or more work flow steps have the parameter for wanting anonymous.
For example, as shown in figure 26, workflow 2600 includes as the triggering step 2602 of first step and as second stepRapid action step 2604.Triggering step 2602 includes being filled with parameter value " https:/contoso.sharepoint.com/The website URL of teams/marketing " and filled with parameter value " assets " List name as parameter.If workflow2600 is shared as the other users in workflow template and same private organization, then includes identical website URL in template" https:/contoso.sharepoint.com/teams/marketing " may be meaningful as parameter value.ButIf workflow 2600 will delete particular station URL (that is, anonymous as the user sharing except workflow template and enterpriseParameter) it may be more meaningful, because website URL may be unrelated with the user except enterprise.
In step 2504, at least part for the parameter for including in automatically working flow template is by automatic anonymity to generateAnonymous automatically working flow template.As shown in figure 24, selective Anonymizer 2404 can receive workflow template 2408.OneIn a embodiment, selective Anonymizer 2404 is configured as hideing to one or more parameters in workflow template 2408Name removes parameter value or parameter value is replaced with general value so that it is anonymous.In one embodiment, selective Anonymizer 2404The parameter (for example, the interface for being such as stored in Fig. 3 defines in information 318) of workflow template 2408 can be had stepped through, and is selectedSelecting property to its anonymity, to determine which parameter wants anonymous, and the parameter value of these anonymous parameters determined.Such as Figure 24 instituteShow, selective Anonymizer 2404 exports anonymous workflow template 2410, is the anonymous form of workflow template 2408.
Selective Anonymizer 2404 can be configured in various ways to execute this automatic anonymity of parameter.For example, Figure 27It is the block diagram according to the embodiment for being configured as the selectively selective Anonymizer 2404 of anonymous template.As shown in figure 27, it selectsSelecting property Anonymizer 2404 includes the Anonymizer 2702 based on audient, the Anonymizer 2704 based on user identity, hideing based on tissueName device 2706 and the Anonymizer 2708 based on context.Any one or more of these components can reside in selectivity and hideIn name device 2404.In embodiment.These components of selective Anonymizer 2404 are described as follows.
Anonymizer 2702 based on audient is configured as the parameter of parsing workflow template 2408, and based on for issuingIts anonymous parameter value of audience selection ground.Audient for publication can be by the Anonymizer 2702 based on audient in various waysIt determines, including is inputted by user, the instruction of library or file is issued by target, and/or pass through other mechanism.Really based on thisFixed, the Anonymizer 2702 based on audient can be determined that the public and still only issue within the organization, be to entire tissue or toSpecific team publication in tissue, if only issued to single people, etc..Therefore, the Anonymizer 2702 based on audient is configuredWill be meaningless except this tissue for anonymity or need to maintain secrecy except this tissue parameter (if publication be to notSame tissue), the parameter that will be meaningless except this team or need to maintain secrecy except this team is (if publication isTo the different team in same tissue), if by other people if without in all senses or the parameter of need for confidentiality.
Anonymizer 2704 based on user identity is configured as the parameter of parsing workflow template 2408, and is based on workThe identity for the user that flow template 2408 is being distributed to carrys out selectively its anonymous parameter value.The identity of user for publicationIt can be determined by the Anonymizer 2704 based on user identity, including be inputted by user in various ways, mesh is possessed by userThe instruction of mark publication library or file, and/or pass through other mechanism.Based on the determination, the Anonymizer 2704 based on user identityCan the anonymous parameter nonsensical to the user identified, the parameter of user should not be leaked to, or otherwise need by withFamily adjusts the parameter to the profile of user oneself (for example, messaging identifier, such as text message transmission number or EmailAddress).
Anonymizer 2706 based on tissue is configured as the parameter of parsing workflow template 2408, and is based on workflow mouldThe identity for the tissue that plate 2408 is being distributed to carrys out selectively its anonymous parameter value.The identity of tissue for publication can be withIt is determined by the Anonymizer 2706 based on tissue, including is inputted by user in various ways, target is possessed by tissue and issues libraryOr the instruction of file, and/or pass through other mechanism.Based on the determination, the Anonymizer 2706 based on tissue can be anonymous to instituteThe nonsensical parameter of the tissue of mark, should not be leaked to the parameter of tissue, or otherwise need to be adjusted by tissue to tissueThe parameter (for example, folder name, domain name, group messaging identifier etc.) of the profile of oneself.
Anonymizer 2708 based on context is configured as the parameter of parsing workflow template 2408, and is existed based on creationWherein the context of workflow template 2408 carrys out selectively its anonymous parameter value.The context can be by hideing based on contextName device 2708 determines in various ways, including is inputted by user, by creation time of workflow template 2408, place and/Or reason, and/or pass through other mechanism.Based on the determination, the Anonymizer 2708 based on context anonymous can identifiedNonsensical parameter except context.
In one embodiment, all parameters are automatically analyzed by selective Anonymizer 2404 to determine whether to anonymous ginsengNumber.In another embodiment, other than selective Anonymizer 2404 determines whether to anonymity parameter, selective Anonymizer 2404It is also possible that developer can select one or more parameters for anonymity.
For example, Figure 28 is shown according to one embodiment for allowing a developer to selection for anonymous parameterStep 2802.In step 2802, allow a developer to choose whether anonymity in received automatically working flow templateSpecial parameter.In one embodiment, UI generator 110 (Fig. 1) is configured as display user interface controls (for example, drop-down dishList, check box, button etc.) so that developer is able to select whether the parameter of anonymous workflow template 2408.If user selectsAnonymity parameter is selected, then selective Anonymizer 2404 is configured as anonymity parameter (for example, removing parameter value, parameter value is replaced withGeneral parameter value inputs message with pad parameter value, etc.).For example, if parameter be messaging account identifier (for example,E-mail address), then selective Anonymizer 2404 can be configured as erasing current message transmission account identifier, or willIt replaces with universal information transmission account identifier.
About the example of Figure 26, selective Anonymizer 2404 can be configured as anonymous " website URL " parameter, because" https:/contoso.sharepoint.com/teams/marketing " is except the current organization of development stream 2600It is nonsensical.Therefore, selective Anonymizer 2404 can delete " https:/contoso.sharepoint.com/teams/Marketing " can be replaced with general URL or fill the parameter value (for example, " being inserted into URL here ") of message.Selective Anonymizer 2404 can be configured as anonymous " List name " parameter, because " assets " are the groups of development stream 2600The secret Asset List knitted.In this way, selective Anonymizer 2404 can delete " assets " or be replaced with universal list orFill the parameter value (for example, " being inserted into List name here ") of message.Selective Anonymizer 2404 can be configured as anonymity" recipient " parameter, because " fredjones@hotmail.com " is the individual of the personnel in the tissue of development stream 2600E-mail address.Therefore, selective Anonymizer 2404 can delete " fredjones@hotmail.com " or be replaced withUniversal information identifier or the parameter value (for example, " target receiver ") for filling message.Selective Anonymizer 2404 can determine" message " parameter has parameter value (" received project "), and the parameter value is not comprising confidential information and intentional except tissueJustice, and therefore do not need anonymity.
Note that in some embodiments, selective Anonymizer 2404, which can be configured as, partly modifies parameter value, withoutIt is complete deletion or alternative parameter value.For example, Figure 29 shows the step of being used for partly anonymity parameter according to the embodiment2902.In step 2902, the parameter that partly includes in anonymous received automatically working flow template.In such implementationIn example, selective Anonymizer 2404 is configured as analysis special parameter, and if selective Anonymizer 2404 determines that parameter is wantedIt is anonymous, then a part of selective 2404 alternative parameter value of Anonymizer.For example, selective Anonymizer 2404 can be by fileName modifications are that different folder names or general file press from both sides title, and messaging identifier can be revised as to different disappearBreath transmission identifier or universal information transmission identifier, etc..
For example, about Figure 26, selective Anonymizer 2404 can modify URL " https :/Group of the contoso.sharepoint.com/teams/marketing " to be directed toward in the tissue for wanting shared workflow templateWebsite URL, or be directed toward general URL, in either case, reality can be carried out by modifying a part of parameter valueIt is existing.It is directed toward " administrator " group to organize from " team " for example, URL can be modified, as follows: " https :/Contoso.sharepoint.com/managers/marketing ", wherein " team " is replaced by " pipe in file pathReason person ".
Referring again to Figure 25, in step 2506, anonymous automatically working flow template is issued.As shown in figure 24, it worksFlow template distributor 2406 receives anonymous workflow template 2410, is the anonymous form of workflow template 2408.Workflow mouldPlate distributor 2406 is configured as issuing anonymous workflow template 2410.Workflow template distributor 2406 can work anonymityFlow template 2410 is distributed to the file specified by user or website or is distributed to default folder or website.For example, as schemedShown in 24, workflow template distributor 2406 can be sent out by the way that anonymous workflow template 2410 to be stored in template library 1212Cloth anonymity workflow template 2410.Workflow template distributor 2406 can issue workflow template 1216 in a variety of manners, allSuch as in the form of including the packet of at least two components (for example, file): workflow definition information 316 and interface define information 318(Fig. 3).Template library 1212 can be it is publicly available, or can be by the team in organizing, organizing or one or more specificIndividual uses, and can be correspondingly anonymous.
VI. example computer system is realized
Calculate equipment 102, workflow designer 106, UI generator 110, workflow logic generator 112, locally applied122, network-based application 124A, network-based application 124B, server 134, work flow step collection generator 302, mouldPlate collection generator 304, preservation workflow selector 306, step selector 308, step configuration UI generator 310, workflow are fixedAdopted generator 312, interface define generator 314, calculate equipment 902, workflow using 904, Workflow execution engine 906, mouldPlate is generated logic 1202, work flow step combiner 1206, describes generator 1208, patrolled using analyzer 1210, template generationVolumes 1802, compatible operations flow step determiner 1804, selective Anonymizer 2404, workflow template distributor 2406, based on byAnonymizer 2702, the Anonymizer 2704 based on user identity, the Anonymizer 2706 based on tissue, the anonymity based on context of crowdDevice 2708, flow chart 200, flow chart 1000, flow chart 1300, flow chart 1400, step 1502, step 1602, flow chart1700, flow chart 1900, flow chart 2100, flow chart 2200, flow chart 2500, step 2802 and step 2902 can use hardwareOr it realizes with software and/or the hardware of firmware combinations.For example, workflow designer 106, UI generator 110, workflow logicGenerator 112, locally applied 122, network-based application 124A, network-based application 124B, server 134, workflowStep collection generator 302, template set generator 304 save workflow selector 306, step selector 308, step configuration UIGenerator 310, workflow defining generator 312, interface define generator 314, calculate equipment 902, workflow using 904, workMake stream enforcement engine 906, template generation logic 1202, work flow step combiner 1206, description generator 1208, use analysisDevice 1210, template generation logic 1802, compatible operations flow step determiner 1804, selective Anonymizer 2404, workflow templateDistributor 2406, the Anonymizer 2702 based on audient, the Anonymizer 2704 based on user identity, the Anonymizer based on tissue2706, the Anonymizer 2708 based on context, flow chart 200, flow chart 1000, flow chart 1300, flow chart 1400, step1502, step 1602, flow chart 1700, flow chart 1900, flow chart 2100, flow chart 2200, flow chart 2500, step 2802And/or step 2902 may be implemented as being configured as executing and being stored in one or more processors it is computer-readableComputer program code/instruction in storage medium, or may be implemented as hardware logic/electric circuit.
For example, in one embodiment, workflow designer 106, UI generator 110, workflow logic generator 112,Locally applied 122, network-based application 124A, network-based application 124B, server 134, work flow step collection generateDevice 302, template set generator 304, save workflow selector 306, step selector 308, step configuration UI generator 310,Workflow defining generator 312, interface define generator 314, calculating equipment 902, workflow and draw using 904, workflow executionIt holds up 906, template generation logic 1202, work flow step combiner 1206, describe generator 1208, using analyzer 1210, mouldPlate generates logic 1802, compatible operations flow step determiner 1804, selective Anonymizer 2404, workflow template distributor2406, the Anonymizer 2702 based on audient, the Anonymizer 2704 based on user identity, the Anonymizer 2706 based on tissue, be based onThe Anonymizer 2708 of context, flow chart 200, flow chart 1000, flow chart 1300, flow chart 1400, step 1502, step1602, flow chart 1700, flow chart 1900, flow chart 2100, flow chart 2200, flow chart 2500, step 2802 and/or stepOne or more of 2902 any combination can be realized in SoC together.SoC may include IC chip, integrateCircuit chip includes processor (for example, central processing unit (CPU), microcontroller, microprocessor, digital signal processor(DSP)), the memory, one or more one or more of communication interfaces and/or other circuits such as, and can be optionallyThe received program code of institute is executed, and/or including embedded firmware to execute function.
Figure 30 shows the block diagram that the EXEMPLARY MOBILE DEVICE 3002 of embodiment described herein may be implemented.For example,Mobile device 1702 can be used to implement the calculating equipment 902 of server 134.As shown in figure 30, mobile device 1702 includes eachThe optional hardware and software component of kind.Any component in mobile device 3002 can be with any other assembly communicationConvenient for explanation, all connections are not showed that.Mobile device 3002 can be various calculating equipment (for example, cellular phone, intelligenceAny one of phone, handheld computer, personal digital assistant (PDA) etc.), and can permit and such as honeycomb or satelliteThe wireless two-way communication of the one or more mobile communications network 3004 such as network or local area or wide area network.
Shown in mobile device 3002 may include controller or processor 3010 (for example, signal processor, micro processDevice, ASIC or other control and processor logic), for execute such as Signal coding, data processing, input/output processing,The tasks such as power control and/or other function.Operating system 3012 can control the distribution of the component of mobile device 3002 and makeWith, and the support to one or more application program 3014 (also referred to as " apply " or " app ") is provided.Application program 3014 canTo include common mobile computing application (for example, e-mail applications, calendar, contact manager, web browser, messageTransmission application) and any other calculating application (for example, text processing application, mapping application, media player applications).
Shown in mobile device 3002 may include memory 3020.Memory 3020 may include non-removable memory3022 and/or removable memory 3024.Non-removable memory 3022 may include RAM, ROM, flash memory, hard disk or other public affairsThe storage equipment or technology known.Removable memory 3024 may include flash memory or subscriber identification module (SIM) card (it is in GSMIt is well known in communication system) or other well known memory devices or technology, such as " smart card ".Memory 3020 can be withFor storing data and/or code for running operating system 3012 and application 3014.Sample data may include webpage, textSheet, image, audio files, video data will be sent to via one or more wired or wireless networks from one or moreNetwork server or other equipment and/or other data received from it.Code sample may include for workflow designer106, UI generator 110, workflow logic generator 112, locally applied 122, network-based application 124A, network-basedUsing 124B, server 134, work flow step collection generator 302, template set generator 304, save workflow selector 306,Step selector 308, step configuration UI generator 310, workflow defining generator 312, interface define generator 314, calculateEquipment 902, workflow apply 904, Workflow execution engine 906, template generation logic 1202, work flow step combiner1206, describe generator 1208, using analyzer 1210, template generation logic 1802, compatible operations flow step determiner 1804,Selective Anonymizer 2404, workflow template distributor 2406, the Anonymizer 2702 based on audient, the anonymity based on user identityDevice 2704, the Anonymizer 2706 based on tissue, the Anonymizer 2708 based on context, flow chart 200, flow chart 1000, processFigure 130 0, flow chart 1400, step 1502, step 1602, flow chart 1700, flow chart 1900, flow chart 2100, flow chart2200, flow chart 2500, step 2802 and/or step 2902 (including flow chart 200,1000,1300,1400,1700,1900,2100,2200,2500 any appropriate steps), and/or other embodiments described herein program code.Memory3020 can be used for storing subscriber identifier (such as International Mobile Subscriber identity (IMSI)) and device identifier (such as worldMobile Equipment Identifier (IMEI)).Such identifier can be for transmission to network server with identity user and equipment.
Mobile device 3002 can support one or more input equipments 3030 (such as touch screen 3032, microphone 3034,Camera 3036, physical keyboard 3038 and/or trace ball 3040) and 3050 (such as loudspeaker of one or more output equipments3052 and display 3054).Other possible output equipment (not shown) may include piezoelectricity or other haptic output devices.OneA little equipment can provide multiple input/output functions.For example, touch screen 3032 and display 3054 can be combined single defeatedEnter/output equipment in.Input equipment 3030 may include natural user interface (NUI).
Radio modem 3060 may be coupled to antenna (not shown), and can support processor 3010 and outsideTwo-way communication between equipment, as known in the art.Modem 3060 generally show and may include forMobile communications network 3004 communicate cellular modem 3066 and/or other based on radio modem (for example,Bluetooth 3064 and/or Wi-Fi 3062).At least one of radio modem 3060 be typically configured to one orThe communication of multiple cellular networks, such as in single cellular network, between cellular network or mobile device with public exchanges electricityThe GSM network of data and voice communication between phone network (PSTN).
Mobile device 3002 can also include at least one input/output end port 3080, power supply 3082, satellite navigation systemReceiver 3084 (such as global positioning system (GPS) receiver), accelerometer 3086 and/or physical connector 3090, physicsConnector 3090 can be USB port, the port (FireWire) IEEE 1394 and/or the port RS-232.Mobile device 3002Shown component is not required or including all, because can delete any component and can add other assemblies, such as originallyField technical staff will be recognized.
In one embodiment, mobile device 3002 is configured as executing any of above function of workflow designer 106.Computer program logic for executing these functions can store in memory 3020 and be executed by processor 3010.
Figure 31 depicts the illustrative processor-based meter that can be used to implement various embodiments described hereinCalculation machine system 3100.For example, calculate any one of equipment 102, server 134 and mobile device 3002 can with fixationOr calculating equipment 3100 in mobile computer embodiment similar one or more calculate is realized in equipment, including calculates equipment3000 one or more features and/or alternative features.The description of system 3100 provided herein is for purposes of illustrationAnd provide, rather than it is restrictive.As known to those skilled in the relevant art, embodiment can be in other kinds of computerIt is realized in system.
As shown in figure 31, system 3100 includes processing unit 3102, system storage 3104 and bus 3106, bus 3106Various system components including system storage 3104 are coupled to processing unit 3102.Processing unit 3102 may includeOne or more microprocessors or microprocessor core.Bus 3106 indicates any one of bus structures of several types or moreIt plants, including in memory bus or Memory Controller, peripheral bus, accelerated graphics port and the various bus architectures of useAny processor or local bus.System storage 3104 includes read-only memory (ROM) 3108 and arbitrary accessMemory (RAM) 3110.Basic input/output 3112 (BIOS) is stored in ROM 3108.
System 3100 is also with one or more of following driver: the hard disk for reading and being written to from hard diskDriver 3114, for being read from moveable magnetic disc 3118 or the disc driver 3116 that is written to and for from removableThe CD drive 3120 that dynamic CD 3122 reads or is written to, move such as CD ROM of CD 3122, DVD ROM,BLU-RAYTMDisk or other optical mediums.Hard disk drive 3114, disc driver 3116 and CD drive 3120 lead to respectivelyIt crosses hard disk drive interface 3124, disk drive interface 3126 and optical drive interface 3128 and is connected to bus 3106.It drivesDynamic device and its associated computer-readable medium for computer provide computer readable instructions, data structure, program module andThe non-volatile memories of other data.Although describing hard disk, moveable magnetic disc and removable CD, other can be usedThe computer readable memory devices and storage organization of type come storing data, such as flash card, digital video disc, arbitrary accessMemory (RAM), read-only memory (ROM) etc..
Multiple program modules can store on hard disk, disk, CD, ROM or RAM.These programs include operating system3130, one or more application program 3132, other programs 3134 and program data 3136.Application program 3132 or other programs3134 may include for example for realizing workflow designer 106, UI generator 110, workflow logic generator 112, localUsing 122, network-based application 124A, network-based application 124B, server 134, work flow step collection generator302, template set generator 304, preservation workflow selector 306, step selector 308, step configure UI generator 310, workMake stream definition generator 312, interface defines generator 314, calculates equipment 902, workflow using 904, Workflow execution engine906, template generation logic 1202, work flow step combiner 1206, description generator 1208, use analyzer 1210, templateGenerate logic 1802, compatible operations flow step determiner 1804, selective Anonymizer 2404, workflow template distributor 2406,Anonymizer 2702 based on audient, the Anonymizer 2706 based on tissue, is based on context at the Anonymizer 2704 based on user identityAnonymizer 2708, flow chart 200, flow chart 1000, flow chart 1300, flow chart 1400, step 1502, step 1602, streamJourney Figure 170 0, flow chart 1900, flow chart 2100, flow chart 2200, flow chart 2500, step 2802 and/or step 2902 (packetInclude any appropriate steps of flow chart 200,1000,1300,1400,1700,1900,2100,200,2500,2500), and/orThe computer program logic (for example, computer program code or instruction) of other embodiments described herein.
User can be by the input equipments such as keyboard 3138 and indicating equipment 3140 (for example, mouse) to system 3100Middle input order and information.Other input equipment (not shown) may include microphone, control stick, game console, scannerDeng.In one embodiment, provide touch screen in conjunction with display 3144, with allow user via touch (for example, by finger orStylus) it is inputted to the application of the one or more points on touch screen to provide user.These and other input equipments usually pass throughThe serial port interface 3142 for being coupled to bus 3106 is connected to processing unit 3102, but can be connected by other interfaces,Such as parallel port, game port or universal serial bus (USB).Such interface can be wired or wireless interface.
Display 3144 is connected to bus 3106 via interfaces such as video adapters 3146.In addition to display 3144 itOutside, system 3100 can also include other peripheral output devices (not shown), such as loudspeaker and printer.
System 3100 by network interface 3150, modem 3152 or for by establish on network communication otherSuitable device is connected to network 3148 (for example, the wide area networks such as local area network or internet).It can be internal or externalModem 3152 be connected to bus 3106 via serial port interface 3142.
As used in this article, term " computer program medium ", " computer-readable medium " and " computer-readable storageMedium " for referring to physical hardware medium, hard disk such as associated with hard disk drive 3114, moveable magnetic disc 3118, canMoving CD 3122, other physical hardware media, such as RAM, ROM, flash card, digital video disc, zip disk, MEM, based on receivingThe storage equipment and other kinds of physics/tangible hardware store medium (memory 1220 including Figure 12) of rice technology.ThisThe computer readable storage medium of sample is different from communication media and is not overlapped (not including communication media).Communication media is such asImplement computer readable instructions, data structure, program module or other data in the modulated data signals such as carrier wave.Term " modulationData-signal " indicates that one or more characteristic is set or changed in the mode for enabling in the signal encode informationSignal.As an example, not a limit, communication media includes wireless medium (such as acoustics, RF, infrared and other wireless mediums)And wired medium.Embodiment further relates to separate with the embodiment for being related to computer readable storage medium and nonoverlapping suchCommunication media.
As described above, computer program and module (including application program 3132 and other programs 3134) can store hardOn disk, disk, CD, ROM, RAM or other hardware store media.Such computer program can also be via network interface3150, serial port interface 3142 or any other interface type receive.When by application execution or load, such calculatingMachine program, which to calculate equipment 3100, can be realized the feature of embodiments discussed herein.Therefore, such computer programIndicate the controller of calculating equipment 3100.