CN101861576A - Network operating system - Google Patents

Network operating system Download PDF

Info

Publication number
CN101861576A
CN101861576A CN200880116332A CN200880116332A CN101861576A CN 101861576 A CN101861576 A CN 101861576A CN 200880116332 A CN200880116332 A CN 200880116332A CN 200880116332 A CN200880116332 A CN 200880116332A CN 101861576 A CN101861576 A CN 101861576A
Authority
CN
China
Prior art keywords
data
xml
application
assembly
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200880116332A
Other languages
Chinese (zh)
Inventor
D·阿图尔松
M·布瑞斯塔维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xcerion AB
Original Assignee
Xcerion AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xcerion AB filed Critical Xcerion AB
Priority claimed from PCT/US2008/078169 external-priority patent/WO2009043033A2/en
Publication of CN101861576A publication Critical patent/CN101861576A/en
Pending legal-status Critical Current

Links

Images

Abstract

The present invention relates to network operating system.In general, the present invention relates to a kind of network operating system that internuncial more efficient way of utilizing computer network is provided.In one embodiment, realize the XML virtual machine with the senior application code accepting to write with the XML programming language as input.Being provided for will be with XML programming language written application code translation or be construed to the function that is suitable for striding the code that computer platform carries out.In addition, XML virtual machine support model view controller (MVC) Design Mode, this Design Mode is convenient to from the True Data that is applied to common data model abstract.Can create and carry out many exemplary application, a plurality of views of the potential support of each of these examples.

Description

Network operating system
The cross reference of related application
The application requires the rights and interests of following application: the provisional application No.60/976 that on September 28th, 2007 submitted to, 216, the provisional application No.60/976 that on September 28th, 2007 submitted to, 222, the provisional application No.60/976 that on September 28th, 2007 submitted to, 246, the provisional application No.60/976 that on September 28th, 2007 submitted to, 249, the provisional application No.60/976 that on September 28th, 2007 submitted to, 252, the provisional application No.60/976 that on September 28th, 2007 submitted to, 258, the provisional application No.60/976 that on September 28th, 2007 submitted to, 266, the provisional application No.60/976 that on September 28th, 2007 submitted to, 269, the provisional application No.60/976 that on September 28th, 2007 submitted to, 275, submitted on September 28th, 2007 interim in ask No.60/976,281, the provisional application No.60/976 that on September 28th, 2007 submitted to, 283, the provisional application No.60/976 that on September 28th, 2007 submitted to, 292, the provisional application No.60/976 that on September 28th, 2007 submitted to, 301, the provisional application No.60/976 that on September 28th, 2007 submitted to, 304, the provisional application No.60/976 that on September 28th, 2007 submitted to, 308, the provisional application No.60/976 that on September 28th, 2007 submitted to, 311, the provisional application No.60/976 that on September 28th, 2007 submitted to, 312, the provisional application No.60/976 that on September 28th, 2007 submitted to, 320, the provisional application No.60/976 that on September 28th, 2007 submitted to, 325, the provisional application No.60/976 that on September 28th, 2007 submitted to, the provisional application No.60/976 that on September 28th, 327 and 2007 submitted to, 339, incorporate all these applications into this paper by reference.
Background technology
Be constructed to be used to carry out various tasks between remote system and the user day by day according to the computer network of the common protocol swap data of Internet protocol (" IP ") for example.The connectivity that provides from computer network makes searchings such as tissue be convenient to participate in the scheme of cooperating process.In this, many existing Web websites, network gateway and Distributed Application can and be cooperated the user with the several different methods shared data.In order further to support cooperation, make resource can be used as the service of network day by day and obtain.In general, service is meant the software and hardware that can conduct interviews from the network that separates with any basic technology.Correspondingly, the network service often is described to " loose couplings " nextport hardware component NextPort to operating system, programming language and execution service.As a result, even utilize different basic technologies, still can the combinational network service to create Distributed Application.
Term " cloud " calculates and is usually used in describing the trend that obtains increasing service from network.Along with increase and internuncial raising of the network bandwidth, the application of cloud computing and Economic Stimulus must continue expansion.Yet the existing systems utilization is that the operating system at center comes communication and help on the supervising the network to cooperate with the machine.In this, before developing the computer network of internet for example, having set up with the machine is the core design of the operating system at center.As a result, existing systems can not provide be easy to network service be integrated into use and the others of user experience in the vague generalization Collaborative environment.On the contrary, exploitation is convenient to share and to participate in the application of cooperating process still difficult and finally for most of users and/or tissue difficulty or expensive too.Therefore, need a kind of network operating system of replenishing internuncial effective method more of supporting computer network that provides.
Summary of the invention
In general, the present invention relates to a kind of network operating system of replenishing internuncial effective method more of supporting computer network that provides.In one embodiment, realize the XML virtual machine, the senior application code that this XML virtual machine is accepted to write with the XML programming language is as input.Being provided for will be with XML programming language written application code translation or be construed to the function that is suitable for striding the code that computer platform carries out.In addition, to be convenient to the true data of carrying out from being applied to common data model abstract for XML virtual machine support model view controller (" MVC ") Design Mode, this Design Mode.Can create and carry out many exemplary application, a plurality of views of the potential support of each example.
Description of drawings
Since by understanding the present invention better, will be easier to understand above-mentioned aspect of the present invention and many attendant advantages with reference to the detailed description of carrying out hereinafter in conjunction with the accompanying drawings, in the accompanying drawings:
Fig. 1 is that the graphical representation of exemplary that is suitable for illustrating the network environment that comprises server end data center and a plurality of client computers of each side of the present invention is represented;
Fig. 2 is that the graphical representation of exemplary that is suitable for illustrating the network environment that comprises server end data center and a plurality of client computers of each side of the present invention is represented;
Fig. 3 is the block diagram that the example hardware framework of the calculation element that is suitable for realizing each side of the present invention is shown;
Fig. 4 A-C is the block diagram that can realize exemplary platform environment of the present invention;
Fig. 5 A-B is that the graphical representation of exemplary that is suitable for illustrating the network environment that comprises server end data center and a plurality of client computers of each side of the present invention is represented;
Fig. 6 A-B illustrates and is suitable for illustrating each side of the present invention and example process association and UI XML document;
The exemplary patterns that Fig. 7 A-C illustrates the graphic element of visually representing the application described based on semanteme in Fig. 6 A-B shows;
Fig. 8 A-B is that the diagram that is suitable for illustrating the assembly of each side of the present invention is represented;
Fig. 9 is the block diagram that the exemplary administration device is constructed to realize each side of the present invention;
Figure 10 A-C illustrates execution according to an embodiment of the invention to handle to open the figure of the exemplary application initialization routine of using bag;
Figure 11 illustrates the exemplary process diagram of the routine of the execution of the logic of range code justice decided at the higher level but not officially announced excessively that is used to open and be enabled in application;
Figure 12 A-B shows to illustrate and is constructed to make the exemplary process diagram of manner of execution of the operation in the implementation step;
Figure 14 A-14B is the mutual figure that illustrates between the object that is suitable for illustrating each side of the present invention;
Figure 15 shows the exemplary process diagram that routine is handled in the action that realization function according to an embodiment of the invention is shown;
Figure 16 is the figure that object is tied to the binding processing routine of data model according to an embodiment of the invention;
Figure 17 A-B shows the figure that carries out the trigger activation routine of application code in response to the trigger that is just activating that makes according to an embodiment of the invention;
Figure 18 is constructed to the request of carrying out to guide the figure of the judgment processing routine of using the flow process of carrying out based on evaluation;
Figure 19 is the figure that routine is handled in change that description according to an embodiment of the invention is used to realize to change the logic of operation;
Figure 20 A-C shows the figure of Data Update routine of logic that realization according to an embodiment of the invention is used to revise the content of data model;
Figure 21 is description according to an embodiment of the invention is used for being provided with the logic of assembly rule in data model the figure that rule routines is set;
Figure 22 is the figure of the notice audiomonitor routine of upgrading to the object notification data according to an embodiment of the invention;
Figure 23 is the figure that plays up routine that plays up application view that makes according to an embodiment of the invention;
Figure 24 show according to an embodiment of the invention be suitable for describing use the block diagram that carries out alternant way with various exemplary data sources;
Figure 25 shows the block diagram that is suitable for describing XML file system provided by the invention;
Figure 26 shows the message server that is constructed to realize data synchronization on the network according to an embodiment of the invention;
Figure 27 shows the additional aspect of message server according to another embodiment of the invention;
Figure 28 A-28D shows the illustrative methods that is used for obtaining from file system provided by the invention file;
Figure 28 E shows the extracts of the exemplary file that is suitable for illustrating each side of the present invention;
Figure 29 shows the method that is constructed to obtain listed files according to an embodiment of the invention;
Figure 30 A-30C shows the method for creating file in the XML file system according to another embodiment of the invention;
Figure 31 A-31E shows the method for opening the existing file in the XML file system according to another embodiment of the invention;
Figure 32 shows method of carrying out the startup of network operating system on client computers according to an embodiment of the invention;
Figure 33 shows the method that articulates the network operating system group according to another embodiment of the invention;
Figure 34 A shows the method that client computers is converted to off-line state from line state according to an embodiment of the invention;
Figure 34 B shows the graphical representation of exemplary of a plurality of drivers that can be used for network cooperation according to another embodiment of the invention and represents;
Figure 35 shows the method that client computers is transformed back on line state under off-line state when client computers is operated according to another embodiment of the invention;
Figure 36 shows the method that according to another embodiment of the invention the mode according to helping to strengthen network service is handled the request of creating new file;
Figure 37 shows the shared data file that utilizes with chat application that is suitable for describing additional aspect of the present invention;
Figure 38 show according to another embodiment of the invention the assembly that utilizes by chat application and the relation between the data model;
Figure 39 shows the renewal of shared data file that is used to help chat sessions according to another embodiment of the invention;
Figure 40 shows one group of example communication carrying out according to another embodiment of the invention in chat sessions;
Figure 41 shows the use of shared data file when carrying out collaboration type communication between a plurality of client computer;
Figure 42 shows the user interface of the exemplary application that is suitable for illustrating additional aspect of the present invention; And
Figure 43 shows the user interface of the exemplary application that is suitable for illustrating additional aspect of the present invention.
Specific implementation
In general, each side of the present invention relates to the network operating system of being convenient to develop the Internet model cloud computing.In practical embodiments, network operating system described here utilizes XML (extend markup language) to represent data as general purpose language.Therefore, example provided below can be described the functional of network operating system with reference to XML structural data and document.In this, in this context, utilize XML to realize many benefit and synergy.Yet those skilled in the art etc. will recognize, under the situation of the scope that does not break away from claimed theme, can utilize other basic technology or technical combinations outside described here to realize the present invention.In addition, illustrated examples provided below and describe be not be limit or to limit the invention to disclosed concrete form.Similarly, any step hereinafter described can be exchanged to reach identical result with other step or step combination.
With reference to Fig. 1, hereinafter aim to provide the overview of the network environment 100 that can be used for realizing each side of the present invention.As shown in Figure 1, network environment 100 comprises the server end data center 102 related with server 104.Network environment 100 also comprises a plurality of client computes devices related with user 112, and these client computes devices comprise mobile phone 106, desk-top computer 108 and thin client 110.In this, server end data center 102 is constructed to communicate via network 114 and mobile phone 106, desk-top computer 108 and thin client 110, and wherein network 114 may be implemented as the wide area network (" WAN ") of LAN (Local Area Network) (" LAN "), wireless network, for example internet etc.Those skilled in the art etc. know that calculation element shown in Figure 1 can be constructed to the data of swap file, order and other type on network 114.Yet, because the network communication protocol of for example TCP/IP as well known to those skilled in the art, so will not describe these agreements here.
In existing system, application program available on one type calculation element may be incompatible with the device of other type.This incompatibility produces variety of issue.For example, on the common bench computing machine, the user can utilize application-specific to visit email message.On the other hand, in order on the limited resources device of for example mobile phone, to visit Email, may need to have another program at different characteristic and interface.This incompatibility is helpless to provide public same user experience and knowledge quantity and the technical ability that the user is needed to minimize.In addition, even similar or identical functions is carried out in many application, use the still overspending development time at dissimilar device establishments.
Each side of the present invention can be applied under a plurality of varying environments, and environment hereinafter only is an example.In one embodiment, can be from the application and the data of the calculation element calling party of any kind enabled at network operating system.As shown in Figure 1, user 112 can be connected to network 114 from mobile phone 106, desk-top computer 108 or thin client 110.In response, server end data center 102 with the network operating system service delivering to proper device.More particularly, when the user was connected to network, the client-side assembly and the user that can transmit and set up network operating system used.This locality that is applied in suitable client computes device is carried out and is not carried out on server 104.User data can be buffered on the client computes device, but will be consistent with the storage that is kept by server end data center 102.Therefore, mainly carry out communicating by letter between client computes device 106-110 and the server end data center 102, to obtain document and new data more.For example, when the client computer off-line, the client-side assembly of network operating system makes Data Update at local cache.When rebuliding the network connection, these renewals can be sent to server end data center 102 and carry out synchronously with any other variation.
At an embodiment, the public affairs that network operating system can be provided on each user's calculation element are experienced together.In this, on dissimilar fully calculation elements, transmit and set up public desktop application.Can visit all user applications and data from this public desktop.For example, the single e-mail program that can enable network operating system from any one access needle the client computes device 106-110 of user 112.Owing to can obtain user data and,, can obtain identical application (for example, e-mail program) and data (for example, email message) from server end data center 102 no matter use which calculation element as the service delivering application.
Can customize the service that offers the client computes device by network operating system according to user's preferences and other variable.In this, maintain configuration data, how this configuration data definition will provide or whether provide the service of particular network operating system.For example, the user can set up preference to have the set of different applications available or data according to the calculation element that is using.By another example, the user can be connected to network 114 from the access point of any number of comprising unsafe wireless connections.In this case, because the dangerous character that network connects can be set up security attribute so that can't visit some service and/or data.Those skilled in the art etc. should be understood that example provided above only represented to utilize some modes of customized network operating system service of the present invention.
For convenience, Fig. 1 shows server end data center 102, server computer 104, mobile phone 106, desk-top computer 108 and the thin client 110 that can be used in the network environment 100, can carry out additional mission by the remote computing device that is linked at by network 114 together in network environment 100.Yet, can utilize the client computes device of other type to realize the present invention, for example for but be not limited to: laptop computer, flat computer, PDA(Personal Digital Assistant), mixing/embedded equipment, set-top box, media center etc.In addition, those skilled in the art etc. will recognize, can realize that the present invention and example shown in Figure 1 should be interpreted as exemplary with different network configuration.
Referring now to Fig. 2, description be can be used for illustrating another network environment 200 of other aspect of the present invention.As shown in Figure 2, for example private network of enterprise network 204 can be coupled in server end data center 202.In this case, the service of complementary network operating system directly is provided for client computer 206,208 and 210 via enterprise network 204.Yet, still providing and supervising the network operating system from server end data center 216, enterprise servers end data center 202 only provides Additional Services.In addition, identical Additional Services can offer the client computer outside the enterprise network 204.In this example, server end data center 202 provides services on the Internet to client computer 212 via internet 214.To mentioned above similar, client computer 206-212 can be at any calculation element of enabling under the network operating system (mobile phone, desk-top computer, thin client etc.).In another embodiment, network operating system can directly be provided by enterprise servers end data center 202 and Additional Services thereof, and permission conducts interviews to the external server end data center 216 beyond the enterprise network 204 can or can (not depend on security configuration).
Network operating system is constructed to be convenient to participate in cooperating process.One aspect of the present invention is the XML file system, and it is as the network warehouse of the data that can store any kind that comprises XML document, executable file, binary file, multimedia etc.Can realize that the XML file system is with managing physical storage and data access in server end data center 202 or 216.Except traditional file system function, the XML file system allows the various types of collaboration spaces of definition.In the exemplary embodiment, the type of the collaboration space of being supported comprises the subclass (for example, sub-corporations, son group etc.) in corporations, group, good friend and the existing collaboration space.Root folder in the XML file system is as the warehouse of each corporation, group or other collaboration space set up.In addition, can in the XML file system related, create file and file with each user.In another embodiment, can dynamically enable the cooperation between the different user, and not need the collaboration space in the shared XML file system of user.As describing in further detail hereinafter, provide the message transmission service that allows the user to produce and accept to set up in real time the request of collaboration session.Like this, even without the existing collaboration space of definition, the user still can set up new relation by the collaboration session of dynamic foundation.
When the client-side assembly of network operating system began to carry out, can utilize login prompt to obtain the user proved.For the ease of transparent access, each file related with the user can be mapped as virtual drive on the client computer from the XML file system.For example, if the user is the member of particular group, then this group folders will occur as the virtual drive on the client computer.In one embodiment, the file in the XML file system comprises the XML structural data of the shared resource that defines collaboration space.These shared resources can include but not limited to: application, data file, visit and security set, user list, statistic, calendar etc.The XML file system can also be used as warehouse or database in one embodiment to substitute one or more application of carrying out on the network operating system environment.As describing in further detail hereinafter, can carry out automatically synchronously the data that remain in cooperation and the distributed data base by transaction management provided by the invention.Use by utilizing such cooperation and distributed data base to set up, use the feature of inheriting database and can be easy to shared data.
Because the XML file system is abideed by application programming interface (API), so other embodiment of server end data center 202 can be arranged.In this, need be in enterprise leaving over use and database on carry out abstractly thereby new application can be provided or be integrated under the situation of a plurality of application of carrying out on the network operating system environment, hope can provide other XML Web service from the XML file system.The customization of XML file system realizes selecting the grade of the function that will support.For example, support to save the support that is used for synchronized transaction in the grade at one.
Except the management data visit, the affairs control that the XML file system is provided for upgrading by synchrodata and coordination data is by the integrated framework of being convenient to the association between cooperation way establishment and the customized user.For example, use and to organize (for example, good friend) by the user together with the user data of any association and share.The function of the application of sharing can be represented in the XML document in remaining on group or user folder together with other resource with related user data.The XML file system provides the method for application that each user capture shares and related user data.By this method, can transmit and set up the application of sharing on a plurality of client computer, each group membership handles from mutually on the same group or the data of user folder.
As mentioned above, the client computer (that is, client computer 212) beyond the enterprise network 204 can obtain service from server end data center 202.By way of example, when outside enterprise network 204, employee or other user can visit Enterprise Resource.Therefore, client computer 212 can be home computer, mobile phone via 214 access server end data centers 202, internet etc.In this, those skilled in the art etc. recognize, network environment 200 can comprise the complementary network beyond the network shown in Figure 2, thereby and can by many methods re-construct among Fig. 2 exemplary configurations by other method delivery network operating system and additional XML file system the two.For example, the Network Access Point of client computer 212 can be derived from LAN (Local Area Network), wireless network, wide area network etc., and this also can be such for server end data center 202 and 216.
In another embodiment, client computer can be according to the dissimilar service of 202 acquisitions from enterprise servers end data center of one or more variablees.Not to provide identical network service to each client computer, can be according to the placement configurations network service of the Network Access Point of client computer.For example, can provide this enterprise distinctive additional customization service to the client computer 206-210 that is directly connected to enterprise network 204.Outside enterprise network 204, can transmit external service to client computer 212 (for example client, supplier, employee or other user relevant) from server end data center 202 with enterprise.Safe transfer for the ease of the customized network service can be used to manage dissimilar client computer by server end data center 202 Resources allocation.In the embodiment shown in Figure 2, server end data center 202 comprises hard disk drive 220, and the client computer 206-210 that hard disk drive 220 is allocated for to network internal provides customize services.On the other hand, hard disk drive 222 client computer that can be allocated for outside the enterprise network of for example client computer 212 provides more general service.In other embodiments, the service that offers client computer can depend on that for example the user proves, other variable of configuration information, client type etc.
In one aspect, network operating system provides is convenient to the more general framework of " enterprise is to enterprise (business-to-business) " cooperation in real time.Can create collaboration space and visit resource from the common data storage to allow different enterprises.In example shown in Figure 2, client computer 212 can be related with the partner enterprise of the enterprise at maintenance server end data center 202.In this, by operating client computer shown in Figure 2 with server end data center 202 mutual user or ageng.When operating by ageng, each side of the present invention is effectively created EDI (electronic data exchange) relation, and in this EDI relation, the user related or independent with enterprise utilizes the automatic shared resource of XML file system.Can also be by providing EDI service by the server data center 216 that the public obtains, this depends on safety requirements.Can in the XML file system, create group folders, be used to store the business rule of shared Fellow resource and/or definition EDI.Similar to above-mentioned explanation, group folders can be mapped as the virtual drive on the client computer 212, and the transparent access for the shared resource outside the enterprise network 204 is provided thus.Merit attention, sharing application can be used as the XML structural data and is delivered to client computer 206-212 from server end data center 202.Among the client computer 206-212 each is set up in this locality and is carried out and use, and Data Update is returned Shared Folders or the privately owned file of each user that reports in the XML file system.In one embodiment, server end data center 202 is constructed to managing data updates and coordinates, so that a plurality of client computer can be visited simultaneously and be upgraded identical document.If data storage in the XML file system, then can also be carried out this coordination by server end data center 216.
In one aspect, network operating system makes client computer 206-212 to carry out transparent access to external web services.Utilize application programming interface (API) can create communicator, be used to take out and be used for carrying out mutual data processing function with any (inner or outside) network service.By way of example, the developer can create be used for visit take (host) XML Web service, REST service, XML resource, RSS or Atom feeds, text, csv text in, based on the communicator of the webserver of the HTML (HTML (Hypertext Markup Language)) of Web website etc.With reference to Fig. 2, can carry out instantiation by the example of 212 pairs of communicator of client computer or " passage ", to carry out alternately with Web service 218.In this example, utilize server end data center 216 as acting server (proxy), make client computer 212 go up the service of visit network operating system at public network (that is, the internet 214).In addition, even provide the network operation service, utilize communicator still can make client computer 206-210 visit Web service 218 from private network (for example, enterprise network 204).In this case, server end data center 216 is as acting server, communicating by letter between this acting server administration client 206-210 and the Web service 218.Data processing function when therefore, client computer can utilize communicator to extract access network services.Do not repeat to write the code of communicating by letter between being used for administration client and network being served owing to require the developer, so application and development has been simplified in this aspect of the present invention.
Although Fig. 2 shows enterprise network 204, those skilled in the art etc. will recognize that this only is exemplary.In addition, the present invention can help data sync and the coordination in the network environment of other type.Therefore, except the wide area network of for example internet, the description of carrying out with reference to Fig. 2 can be applied to the LAN (Local Area Network) that kept by family and small enterprise comparably.In addition, with reference to provide the server end data center 202 of different network service to enumerate above-mentioned example to each client computer 206-212.Yet server end data center 202 can be constructed to provide another device or the resource of network or the network service of service of replenishing.For example, small enterprise can keep a network drive to the All Clients that is connected to LAN (Local Area Network).Back up under the situation that the public network device breaks down by extra storage being provided or allowing, server end data center 202 can provide the public network driver of data storage service with 216 places, supplemental services device end data center.By another example, home network can utilize the media center computing machine to provide visit to Digital Media to each this messenger client.For the storage of supplementing media central computer, server end data center 202 can provide virtual drive to all devices that are connected to home network.In this, virtual drive can be constructed to based on user's preferences or other configuration variables, the actual storage of distribute data between media center computing machine and server end data center 202.
Referring now to Fig. 3, will the example hardware framework of calculation element 300 be described.When describing Fig. 3 with reference to the calculation element that is embodied as the client computer on the network, following description can be applicable to can be used for realizing server of the present invention and other device.In addition, those skilled in the art etc. will recognize, calculation element 300 can be any one in the current available of any number or the device that waits to develop.In its most basic structure, calculation element 300 comprises at least one CPU (central processing unit) (" CPU ") 302 and the system storage 304 that connects by communication bus 306.According to the definite structure and the type of device, system storage 304 can be volatibility or nonvolatile memory, for example ROM (read-only memory) (" ROM "), random access memory (" RAM "), EEPROM, flash memory or similar memory technology.Those skilled in the art etc. will recognize, system storage 304 common storages can by CPU 302 zero accesses and/or CPU 302 current data of operating and/or program modules.In this, CPU 302 is by supporting the execution of instruction, as the computing center of calculation element 300.
Shown in Fig. 3 was further, calculation element 300 comprised network interface 310, and it comprises the one or more assemblies that communicate via network and other device.As describing in further detail hereinafter, the present invention can visit basic service, and these basic services utilize network interface 310 to use common network protocol to communicate.In exemplary embodiment shown in Figure 3, calculation element 300 also comprises storage medium 308.Yet, as describing in further detail with reference to Fig. 4 A hereinafter, can utilize not comprise the calculation element that is used for data are remained to the device of local storage medium the service of accesses network operating system.Therefore, being illustrated by the broken lines storage medium shown in Figure 3 308, is optional with indication storage medium 308.Under any circumstance, storage medium 308 can be volatibility or non-volatile, movably or immovable, and be utilize can canned data any technology realize, for example for but be not limited to hard disk drive, solid-state drive, CD-ROM, DVD or other disk storage, magnetic holder, tape, disk storage etc.
Term used herein " computer-readable medium " comprises the volatibility that realizes with any method that can canned data (for example, computer-readable instruction, data structure, program module or other data) or technology and non-volatile and removable and removable medium not.In this, system storage 304 and storage medium 308 shown in Figure 3 only are the examples of computer-readable medium.
The suitable implementation that comprises the calculation element of CPU 302, system storage 304, communication bus 306, storage medium 308 and network interface 310 is known and can purchases.In order to be easy to illustration and because inessential for understanding claimed theme, so Fig. 3 does not illustrate some typical components of many calculation elements.In this, calculation element 300 generally includes for example input media of keyboard, mouse, microphone, touch input device etc.Similarly, calculation element 300 can also comprise for example output unit of display, loudspeaker, printer etc.Because all these devices are known in the art, so here they are not described.
Referring now to Fig. 4 A-4C, will describe and to realize exemplary platform environment of the present invention.In this, Fig. 4 A-4C shows the hierarchical relationship between the podium level of calculation element 300 (Fig. 3).More particularly, the podium level of the calculation element shown in Fig. 4 A-4B 300 comprises hardware platform 402, the machine operation system 404 in the middle layer and the application platform 406 on the top layer on the bottom.Certainly, the podium level that it will be understood by those skilled in the art that the calculation element 300 shown in Fig. 4 A-4C only is exemplary.
Owing to described the example hardware platform 402 of calculation element 300 hereinbefore with reference to Fig. 3, will not provide additional description here to these assemblies.Yet shown in Fig. 4 A-4B, calculation element 300 can comprise machine operation system 404.In this, machine operation system 404 can be from (for example, the Microsoft of general-purpose operating system family that is constructed to utilize common hardware
Figure GPA00001138467500131
Operating system, Apple
Figure GPA00001138467500132
Operating system, UNIX
Figure GPA00001138467500133
Operating system, Linux
Figure GPA00001138467500134
Operating system, Nokia
Figure GPA00001138467500135
Symbian, Google
Figure GPA00001138467500136
Android etc.) any one in.In addition, machine operation system 404 can be the operating system at the dedicated computing device that utilizes non-common hardware (for example, thin client, mobile phone, large scale computer, supercomputer etc.) structure.In addition, machine operation system 404 can be the operating system that is designed to satisfy specific configuration parameters of real time operating system, embedded OS etc. for example.
A purpose of machine operation system is the details of extracting the access hardware resource and otherwise utilizing hardware resource.Therefore, the machine operation system nearly all carries out the ultimate system task, for example, and the I/O of management and utilization nextport hardware component NextPort (input and output), memory management, task scheduling etc.In this, machine operation system provides service by API to application program usually.Provide service to make the application developer needn't management access or otherwise utilize the realization details of basic calculation machine platform by API.It should be noted that each side of the present invention is only at utilizing machine operation system 404 from the basic service of all modern computing machine platforms acquisitions.In this, can utilize service to be connected to dock with the network hardware and to utilize ICP/IP protocol to set up the network that is used to communicate by letter.
In the embodiment shown in Fig. 4 A, calculation element 300 is included in the Web browser 408 of working on the top layer of application platform 406.As mentioned above, the client-side assembly 410 of network operating system can be transmitted and is based upon on the calculation element 300.In the embodiment shown in Fig. 4 A, client-side assembly 410 is constructed to work in the environment of Web browser 408.In this, Web browser 408 can be the browser application that is constructed to utilize any number that TCP/IP network communication protocol and remote-control device communicate, and includes but not limited to MozillaFirefox
Figure GPA00001138467500141
The Internet Explorer of Microsoft
Figure GPA00001138467500142
Deng.
In the embodiment shown in Fig. 4 A, client-side assembly 410 directly and machine operation system 404 carry out alternately.Instead, the basic service of using by client-side assembly 410 from Web browser 408 visits.Those skilled in the art etc. will recognize that HTTP is the high-level protocol that is higher than TCP/IP, and it allows to utilize URL(uniform resource locator) (" URL ") request/reception Internet resources etc.Usually, Web browser produces the HTTP request to obtain formaing or utilize JSON (" JavaScript object tag ") and/or JavaScript to carry out the formative Web page with SGML (for example, HTML(Hypertext Markup Language), extend markup language (XML)).In one embodiment, the client-side assembly 410 of network operating system utilizes Web browser 408 to carry out the network service of using HTTP, and plays up the graphic element representing from the HTML among other diagrammatic representation technology of Web browser acquisition.
In the embodiment shown in Fig. 4 B, the client-side assembly 410 of network operating system does not utilize Web browser and directly visits the service of machine operating system 404.Each side of the present invention allows to transmit on dissimilar fully calculation elements and set up and use.Yet Web browser is constructed to come the display graphics element according to predetermined page size and/or layout usually.Therefore, the common Web browser may not too be suitable for realizing render graphics element on the every type of the present invention calculation element.For example, it may be problematic utilizing Web browser render graphics element on the small-shape factor calculation element.In this, given applicable shapes factor, the predetermined page size and/or the layout of Web browser expection may be too big or inappropriate.Shown in Fig. 4 B, the client-side assembly 410 of network operating system may be implemented as isolated application or even is embodied as the machine operation system.In this case, client-side assembly 410 is constructed to not utilize Web browser to carry out graph rendering according to the mode of the form factor that suitably provides calculation element 300.In addition, in this embodiment, directly obtain to be used for carrying out the basic service of network service or this basic service is built in client-side assembly 410 from machine operating system 404.
In the embodiment shown in Fig. 4 C, calculation element 300 does not comprise traditional machine operation system.Instead, be used for being built into client-side assembly 410 with the mutual basic service of hardware platform 402.In this embodiment, client-side assembly 410 is carried out the ultimate system task that is used to carry out memory management, task scheduling etc.Be built in the client-side assembly 410 by basic machine service, be easy to customization and dispose each side of the present invention to use with particular hardware platform with these types.In other words, client-side assembly 410 can be constructed to be independent of the service that the provider by the machine operation system provides.
As mentioned above, when the user was connected to network, client-side assembly 410 can be used as the network service and is transmitted and set up.Shown in Fig. 4 A-4C, client-side assembly 410 is suitable for being embodied as isolation application, machine operation system or realizes under the environment of Web browser.In all these embodiment, server end data center 202 or 216 can provide the service of applied logic as network to client-side assembly 410.Therefore, the limited resources calculation element that does not have a storage medium (for example, hard disk drive, CD-ROM, DVD etc.) can be used to visit network operating system service provided by the invention.In this, client-side assembly 410 and other network operating system data can be buffered in the system storage (ROM, RAM etc.), and needn't remain to local storage medium.Like this, can be used as service delivering owing to use, so the application of enabling at network operating system does not need by " installation " on calculation element 300.
Referring now to Fig. 5 A-5B, describe according to the present invention how common data model is used for the service of delivery network operating system.Network operating system is by being separated to application component in the different layers (being model, view and controller) support model view controller (MVC) Design Mode.In the embodiment of reality, XML document is represented information " model " or common data form in the network operating system environment.Can know from following description and to find out, in this environment, utilize common data model (for example, XML document) to produce many benefits.
Network environment 500 shown in Fig. 5 A-5B comprises server end data center 502, and server end data center 502 can be connected to each of client computer 504 and 506 communicatedly via network 508.As mentioned above, the client-side assembly of network operating system can dynamically be delivered to each of client computer 504 and 506 from server end data center 502, perhaps can be installed in any one this locality of client computer 504 and 506.In either case, the client-side assembly of network operating system provides XML virtual machine 510, and XML virtual machine 510 is explained or produced and will carry out XML structuring application on client computer 504 and 506.When as service delivering, each side of the present invention makes network operating system " import (boot) " by transmitting the process XML document from server end data center 502.In this, the process XML document provides a description the logic of the initiating sequence of client computer 504 and 506.As describing in more detail hereinafter, this process XML document will be carried out in XML virtual machine 510.Initiating sequence carries out instantiation and manipulation so that can carry out other application to the group objects in the XML virtual machine 510 usually.
As mentioned above, although XML can also can use other model, data layout and data structure to realize the present invention as " model " or the common format of expression applied logic and other data in the network operating system environment.In one embodiment, the XML programming language that provides permission to use with very high level abstract design.Those skilled in the art etc. will recognize that XML is highly structural, transferable, disposable language.Like this, the applied logic of high levels of abstraction to be expressed as the XML structural data be memory-efficient (memory efficient) and produce compact application.Specifically, be provided for carrying out the platform of the logic of the application of expression in the XML document of one or more good structures (well-formed).Separate application function according to the MVC Design Mode, eliminate the iterative task of carrying out by legacy system thus.Therefore, compare, application code is sent to client computer 504 and 506 from server end data center 502 consumes a spot of bandwidth with existing system.In addition, owing to utilize XML virtual machine 510 to carry out applied logic, utilize the present invention to carry out the bandwidth that applied logic is eliminated or remarkable reduction consumes.Directly on client computer 504 or 506, handle original by carry out server " came and went " handle alternately, and needn't ask or depend on network service with server end data center 502.
One aspect of the present invention is an XML virtual machine 510, and it is provided for carrying out platform and application programming interface (API) with Application and Development to client computer 504 and 506.In this, the senior application code of writing with the XML programming language is accepted as input, and is carried out by XML virtual machine 510 in this locality of client computer 504 and 506.Be provided for the translation of senior application code or be construed to interpretable code, bytecode or the function of other low-level language of being suitable on any platform, carrying out.In this, thus XML virtual machine 510 takes out basic calculation machine platform and Internet resources to make and can carry out application on the calculation element of any kind by same way as.Therefore, XML virtual machine 510 is totally independent of platform and hardware, and can utilize the current available of any number or also the exploitation programming technique (such as but not limited to Microsoft.Net
Figure GPA00001138467500171
, Java, C, C++, HTML, JavaScript, AJAX, Adobe
Figure GPA00001138467500172
Flash, Microsoft
Figure GPA00001138467500173
SilverLight etc.) realize XML virtual machine 510.
Referring now to Fig. 5 B, will additional aspect how to use common data model that the network operating system service is provided be described.Network environment 500 shown in Fig. 5 B is included in the same components of above describing with reference to Fig. 5 A.In addition, in server end data center 502, drawn the XML file system 512 that storage and the service of other network are provided.Therefore, when providing the network operating system service, client computer 504 and 506 can be visited the data that remain in the XML file system 512.In one aspect, the present invention realizes client-side buffer 514, is used for the storage of document on administration client 504 and 506 and other runtime data.Shown in Fig. 5 B, XML virtual machine 510 is easy to visit the data that are stored in the client-side buffer 514.In one embodiment, even network connects interim unavailable or client computer 504 and 506 off-lines, client-side buffer 514 also makes the XML virtual machine can continue to carry out and uses.By way of example, when the user was in network and connects disabled motorbus, train or aircraft and other situation, the application of carrying out on client computer 504 and 506 can continue to work offline.As describing in more detail hereinafter, when rebuliding the network connection, will be synchronized to the XML file system 512 that resides in the server end data center 512 in the data variation of carrying out on client computer 504 or 506.
As mentioned above, the invention provides the programming language that makes the developer can create the application of very high levels of abstraction.In practical embodiments, these programming languages comprise process XML language, user interface (" UI ") XML language and use bag XML language.Be suitable for being expressed as the XML structural data and be stored in the XML document with these programming language written application codes.In the example shown in Fig. 5 B, process XML document 516, user interface XML document 518 and application bag XML document 520 comprise respectively with these programming language written application codes.Therefore, can in the one or more XML document that remain on server end data center 502 places, define application.In addition, application will utilize the data file of the data XML document 522 that for example remains on server end data center 502 places equally usually.When requiring, thereby client computer 504 and 506 can be visited these XML document 516-522 and can be utilized XML virtual machine 510 to carry out to use.
In one embodiment, UI XML language is used for defining " view " at the MVC Design Mode of application.In this, the original exploitation of SGML is used for describing by the mode of being played up the page by Web browser the layout of the Web page.The structuring character of SGML allows to revise the outward appearance of the Web page under the situation of the realization that does not influence Web browser or other correlation technique.In this, UI XML language defines the outward appearance and the behavior of using user interface according to the pattern (schema) that meets the XML grammer.Utilize UI XML language, the developer can create the application with the identical graphic element (that is, menu, tool bar, combobox etc.) that is present in the public desktop application.Because user interface logic does not rely on specific client or describes its realization in the peculiar mode of specific client, so UI XML language is suitable for developing the user interface of striding different platform work.In addition, user interface of describing in UI XML language and behavior according to the MVC Design Mode, are described these elements according to the XML grammer of higher levels of abstraction.Therefore, user interface of describing in the UI XML language and behavior are easy to carry out conversion or modification, and can not influence other system.This ability that UI XML language is carried out conversion allows functional based on one or more variable customized application.For example, can define conversion according to the type of the device that is utilizing to reduce or to eliminate some aspect of application function.By another example, can on UI XML language, define conversion to remove according to the user capture proof or to limit some function, perhaps localization is carried out in application at different language and/or market.
In one embodiment, process XML language is used for defining " controller " assembly of the application of MVC Design Mode.In this, process XML language makes the developer can describe the logic of using in one group of process steps.Each process steps comprises approximate be equal to instruction in traditional programming language and/or one or more operations of method call.In the MVC Design Mode, process XML language is as the cementing agent between controller or user interface (" view ") the logical and XML data (" model ").Therefore, each side of the present invention makes it possible to utilize levels of abstraction to be higher than the process XML language description applied logic of traditional programming language.In this, user interface logic (" view ") separates fully with process XML logic (" controller ").As a result, the present invention handles the data processing function that comprises the most of application codes in the existing system automatically.Specifically, use XML language can define the intelligent data binding between view logical and data model.When carrying out application, network operating system is handled the data model of arrival local cache and the I/O (input and output) or the data of Telefile and any remote monitoring device automatically.Because the developer do not provide data process method, comprise and be less than the application code that tradition is used so frequently develop application that process XML language creates and it more apace.As describing in more detail hereinafter, process XML language provide with reference to Fig. 5 A describe beyond be used for create and other advantage of distribution applications in network environment.
Except above-mentioned language, also provide and used bag XML language.Using bag XML language makes the developer can describe resource by applications exploiting.In this, can in using bag, identification define functional UI and the process XML document of using.Using logic in the bag makes the developer and be distributed to client computer with the resource of controlled and safe mode package application.In addition, use to use bag and make a plurality of examples that to create application according to the mode of security in XML virtual machine 510 can being guaranteed use.
In one aspect, the invention provides and be used for improving one's methods in network environment delivery applications and software upgrading.Utilize existing system, usually with the executable format distribution applications, this executable format is installed in " application " on the calculation element when being performed.Executable file is expressed as applied logic the peculiar machine instruction of specific calculation platform usually.Like this, executable file is that the memory intensive of using is represented, consumes a large amount of relatively bandwidth when it is distributed in network environment.Therefore, complicated and resource-intensive system need use the executable file distribution and install and use.
Be used for that delivery applications and improving one's methods of software upgrading are integrated into network operating system on network.Do not use executable file quilt " installation " on the client computes device at the application that network operating system is enabled.Instead, the present invention allows to represent applied logic with the XML structural data fully.When client computer is set up network and is connected, can from can be from this locality on the internet/privately owned server or any Web server provide the service provider of XML document, obtain the application of representing automatically in one or more XML document.Therefore, be provided on network integrated framework to the client computer delivery applications.In addition, for example the more recent version of the renewal of " patch " and application also can be transmitted to client computer automatically.In this, because representing applied logic in the XML document of distribution automatically, so also will be transmitted to client computer as the network service to any modification of XML document as the network service.In the network operating system environment, the same with any other data, applied logic can be carried out on whole network synchronously.Because XML virtual machine 510 and XML file system 512 are constructed to come synchrodata and coordinate to change by issued transaction, so can be in real time with the change of cooperation mode execution to using.For example, can open application and the execution on client computer 504 that remains in the Shared Folders.Simultaneously, the user related with client computer 506 can revise applied logic and will change and be transmitted to client computer 504 automatically.Real-time implementation to using the change of logic, therefore, is easy to observe this change when changing on client computer 504 when taking place.
With reference to as described in Fig. 5 A-5B, the XML of application represents by service provider's distribution and carries out on the client computer of using the XML virtual machine as top.As a result, client computer can be carried out application " off-line ", and handles need not require the operation of server end the time.In this case, the XML document of representing one or more application is buffered in the storer on the client computer.Under the situation that does not have network to connect, the XML virtual machine can be visited the XML document of these buffer memorys and be used to continue to carry out.In addition, when rebuliding the network connection, the Data Update that takes place when off-line also is buffered and is sent to server end.
It should be noted that to the invention provides the network operating system service, and do not require the virtual of computer resource.In this, be used for computer resource is carried out the network service that virtualized a plurality of technology is used for for example provides " cloud " storage.In general, these Intel Virtualization Technologies to usually with carry out abstract away from the related computer resource of the server of basic platform.Abstract resource be encapsulated in usually in the interface that is independent of platform that is suitable for conducting interviews from network.In this, can comprise application, hardware, desktop, machine operation system etc. by abstract computer resource.Yet complication system needs abstract by this way and the encapsulation computer resource.For example, may need server basis hardware is simulated and performance is produced at least the virtualization layer of some influences.In addition, these Intel Virtualization Technologies have promoted with the server to be the model at center, and the position transfer of resource will be realized and carry out to this model to server end.When the user who is on the increase provides services on the Internet, the processing that increases on server and other demand may be disproportionate.Therefore, utilize Intel Virtualization Technology to realize that the network service may need a uniform data center, intracardiac in this uniform data, need provide sufficient server can obtain service as required with assurance.In addition, because on the remote server but not directly on client computer, carry out applied logic, so more bandwidth of Intel Virtualization Technology consumption and cause slower user experience.This also will cause breaking down or can not obtaining to use during client computer " off-line " when network connects.
Computer resource is not being carried out realizing under the virtualized situation that the network service provides dramatic benefit.In this, provide a kind of more telescopic framework, this framework makes the ever-increasing user can access network services.Use by utilizing the XML virtual machine to carry out, can be used to processing and other resource more all sidedly from client computer at client-side.This implementation provides a kind of more telescopic framework, this be because: have the nature corresponding relation in the user's of access network services number, bandwidth use amount, processing power and between can obtaining with other resource of carrying out applied logic from client-side.Except more scalable, on client computer, carry out application by utilizing the XML virtual machine, make under " off-line " situation still access application function easily of user.When client computer " off-line ", application of representing in one or more XML document and user data can be stored in the client-side buffer memory.Therefore, the logic of all application is available and can utilizes the data in the buffer to carry out, and no matter whether exist active block to connect.Yet using when " off-line " can not the accesses network resource and may need to rebulid network and connect to realize the function of all application.On the contrary, " off-line " function that provides when utilizing Intel Virtualization Technology to realize the network service is more limited.In this, some existing network service execution " off-line " patterns, under this " off-line " pattern, the user can continue to carry out alternately with the application that is used for access network services.Yet, in order to provide this function, executable or other rudimentary expression that distribution and installation are used on client computer.When user " off-line ", carry out this rudimentary expression of using in this locality.Yet it may not be feasible or easily install using so that this " off-line " function to be provided on client computer.For example, the limited resources calculation element may not have executable or other rudimentary expression that enough storage spaces are used in order to " installation ".Say that more generally available function is limited to those application that are installed in this locality on client computer under the situation that no active block connects.Yet each expectation that client computer may not have enough computational resources (storer, internal memory, bandwidth etc.) to install and use executable or other rudimentary expression of application is used.
In one aspect, the present invention has realized being used for improving one's methods of on mobile, wireless or unstable network access network services.Those skilled in the art will recognize that, compare, move or wireless network is more unreliable and bandwidth is restricted more with cable network.By the programming language and the XML virtual machine 510 that is configured to automatically perform the repeating data processing capacity, the application that can produce highly compact and memory-efficient that applied logic is expressed as the XML structural data is provided.In this, when realizing applied logic, application can be shared the function of XML virtual machine 510 and reuse object.As a result, compare with the existing application compartment system, the application that distributed pins is enabled network operating system consumes a fraction of bandwidth.In addition, the present invention makes the XML of application represent to remain in the client-side buffer and utilizes XML virtual machine 510 to carry out in this locality.Because applied logic and data can be buffered in this locality, so the contiguous network connection is optional.Instead, to be very suitable for connecting at network may be the visit that provides on the intermittent wireless network the network service in the present invention.In addition, owing to carry out application in this locality, so the network service more reliably with certain service guarantee can be provided.For example, the present invention also is very suitable for providing enterprise-class to use as for example service of the network of internet.In this, those skilled in the art etc. will recognize, even network connects the visit of the quality influence of temporarily unavailable or Internet connection to network, still need to visit enterprise-class in enterprises and will use.Invention described here has solved this problem.
The client-side assembly of network operating system
Those skilled in the art etc. will recognize that XML is an extensible language, and it provides the basis of creating additional language.XML document has the hierarchical tree structure, wherein, tree root sign document, other node in the document is the offspring of root.The node of tree can comprise the data of the structure of document content and definition content.Except the grammer of forcing by XML, can define element and their relating attribute to set up other semantic constraint to the structure and the content of XML document.In one embodiment, the present invention realizes the grammer of being forced by XML is used the pattern and the vocabulary of additional semantic constraint.Utilize XML language provided by the invention, the logic that the developer uses by semantic expression according to the MVC Design Mode.
The MVC Design Mode is realized with the Smalltalk programming language at first and from then on is used in other engineering-environment.Those skilled in the art etc. will recognize, the MVC Design Mode is only used for describing and is used for function is separated to a plurality of layers general architecture mode.Like this, realize that under various environment the MVC Design Mode is to eliminate dependence and supporting platform independence.By way of example, the existing system of be used to store html data, collecting Dynamic Web page content and play up the Web page frequently is described as meeting the MVC Design Mode.In addition, according to the MVC Design Mode, be used for creating the development environment that Web uses and function can be separated to a plurality of layers.Under this environment, the graphic user interface that Web uses separates with data model, to support more modular application and development.Yet these existing systems are realized functions and are utilized the specific basic data model in territory more than the present invention.
Different with existing system, each side of the present invention allows to create according to the MVC Design Mode application of any kind.In other words, user interface with are not limited to logic and separating of basic data model Web application, the Web page etc.Can in the network operating system environment, create and carry out many exemplary application, make a plurality of views of the potential support of each example.In addition, these application examples are all handled the data from common data model.Since the developer needn't be provided for being provided with and visiting between the data of data model and managing user interface (" view ") and the data model synchronously and the programmed logic of exchanges data, so significantly simplified application and development.
Referring now to Fig. 6 A-6B, use description to illustrate the example process and the UI XML document of each side of the present invention.Fig. 6 A shows the example process XML document 600 (" MyTasks.xml ") of the semantic description of the controller logic that " MyTasks " application is provided.As shown in Figure 6A, MyTasks.xml document 600 is included in the trigger 602 of definition in "<trigger〉" XML element.This trigger 602 keeps one group of attribute, comprises view, assembly, incident and step attribute.In addition, with the applied logic of process XML language compilation can the definition procedure step sequence.In this example, MyTasks.xml document 600 comprises a plurality of process steps 604-610 that described by "<step〉" XML element.As shown in Figure 6A, each of two attributes and process steps 604-610 is related, comprises numbering attribute (" id ") and name attribute.In each process steps, define at least one operation.By way of example, the process steps 604 related with name attribute " InitializeApplication " (initialization application) comprises three operation 612-616 that described by "<operation〉" XML element.
Fig. 6 B shows the extracts of the UI XML document (" MyTasks_gui.xml ") of the semantic description that exemplary " view " logic that MyTasks uses is provided.Shown in Fig. 6 B, MyTasks_gui.xml document 650 comprises two button assemblies 652 and 654 of being described by "<button〉" XML element.Each button element keeps one group of attribute, comprises title, text and width attribute.In addition, MyTasks_gui.xml document 650 comprises two input modules 656 and 658 of being described by "<input〉" XML element.In this example, input module 656 and 658 keeps one group of attribute, comprises title, width and height attributes.
When starting application, the each side of the present invention that is used as the XML virtual machine can begin to explain MyTasks.xml document 600.In one embodiment, applied logic is once explained a statement, but not is all compiled before carrying out.Yet, in the embodiment of alternative, can be compiled into executable code or bytecode with the application code of XML language compilation provided by the invention.In this example, MyTasks.xml document 600 has defined trigger 602, the process steps 606 in the application that trigger 602 identifications will be carried out in response to the activation of trigger.At first, in the embodiment shown when the XML virtual machine begins to explain MyTasks.xml document 600, thereby trigger 602 is registered the activation that makes in response to trigger, the process steps 606 that it is suitable that flow process can lead.
In the MyTasks.xml document 600 shown in Fig. 6 A, the application definition name attribute is the default procedure step 604 of " Initialize Application ", wherein, in case any trigger in registered the application, then control flow is directed to this default procedure step 604.Name attribute is first operation in the initialization application process step 604 that will carry out for " open " and value attribute for the operation 612 of " apps/mytasks_gui.xml ".Execution is opened (Open) operation 612 and will be made at the view of explaining and play up the application of expression in MyTasks_gui.xml document 650 on the graphoscope.In this example, the view of application is included in the assembly 652-658 that defines by semanteme in the MyTasks_gui.xml document 650.In case opened MyTasks_gui.xml document 650, then will carry out name attribute is the operation 614 of " #MyTasks " for " action " and value attribute.In general, in case opened MyTasks_gui.xml document 650, then carry out action (Action) operation 614 and will from view, hide button assembly 654.
Referring now to Fig. 7 A-7C, the exemplary patterns of describing with the MyTasks association is shown 700.Specifically, the graphic presentation shown in Fig. 7 A 700 comprises Button1 assembly 702 corresponding with the button assembly 652-654 that describes by semanteme and Button2 assembly 704 in MyTasks_gui.xml document 650.In addition, graphic presentation 700 comprises corresponding with the semantic description of input module 656-658 respectively Input3 assembly 706 and Input4 assembly 708.In this, the visual description of the 700 expression MyTasks_gui.xml documents 650 of the graphic presentation among Fig. 7 A.As mentioned above, when starting the MyTasks application, the process logic in the MyTasks.xml document 600 is hidden Button2 assembly 704.Therefore, with dashed lines is described Button2 assembly 704 and be cannot see Button2 assembly 704 with indication initial user after carrying out motion action 614 in Fig. 7 A.
In general, exemplary MyTasks uses and is constructed to show the tabulation that is stored in the task description in " data/tasks.xml " document.More particularly, when starting application, task description will be presented in the Input3 assembly 706 defaultly.In one aspect, the user can carry out clauses and subclauses mutual and the change task description by direct and Input3 assembly 706 and revise task list.In one aspect of the method, the user can import new task description and come activated trigger 602 by selection Button1 assembly 702 to Input4 assembly 708.If receive effective input, then the new task description is added to " data/tasks.xml " document and is shown automatically by Input3 assembly 706.On the contrary, do not provide any input to Input4 assembly 708 if the user only selects Button1 assembly 702, then Button2 assembly 704 shows that the request user provides the text of effective task description.
Referring again to Fig. 6 A, name attribute is next one operation in the initialization application process step 604 that will carry out for " bind " and value attribute for the operation 616 of " data/tasks.xml ".In general, carry out binding (Bind) operation 616, will make Input3 assembly 706 become the data binding assembly of the tabulation that shows task description.Specifically, the logic that provides in the assembly element 618 of bindings 616 and association thereof is tied to Input3 assembly 706 tabulation of the task description of expression in " data/tasks.xml " document.In this example, task is defined as keeping the element of related description attribute in " data/tasks.xml " document.Select "/tasks/task/@description " attribute of task element to be used for showing by the logic that assembly element 618 provides at Input3 assembly 706.As shown in Figure 6A, bindings 616 is last operation in the initialization application process step of carrying out 604.
Referring now to Fig. 7 B, the state of carrying out the graphic presentation 700 after the bindings 616 will be described in.In this, Fig. 7 B shows identical button and the input module 702-708 that describes with reference to Fig. 7 A hereinbefore.Yet, after carrying out bindings 616, show group task description by Input3 assembly 706.Specifically, Input3 assembly 706 is bound to the description attribute of the task element of definition in " data/tasks.xml " document.Therefore, after carrying out bindings 616, the value that is assigned to these task descriptions of expression is presented in the Input3 assembly 706 in data model (for example, document object 710).
When carrying out initialization application process step 604, the execution that just recovers the applied logic of expression in MyTasks.xml document 600 up to activated trigger.In this example, MyTasks application definition trigger 602, this trigger 602 will be carried out flow guiding process steps " 2 " when Button1 assembly 702 experience " selection " incidents.Therefore, in response to selecting Button1 assembly 702, trigger 602 will be carried out the process steps 606 of flow guiding title for " Press Button " (pressing the button).In this example, name attribute is the operation in the process steps 606 of pressing the button that will carry out for the operation 620 of " #MyTasks#input4 " for " decision " and value attribute.In general, when having selected Button1 assembly 702, judge that (Decision) operation 620 execution tests are to have determined whether that any text is input in the Input4 assembly 708.When having selected Button1 assembly 702, if text is input in the Input4 assembly 708, then the logic in "<when〉" XML element 622 is carrying out flow guiding process steps 608.On the contrary, when trigger event took place, if there is not text to be input to Input4 assembly 708, then decision operation 620 made the execution flow process proceed to process steps 610.
In this example, when text is input to Input4 assembly 708, carries out flow process and proceed to " Add Task " (interpolation task) process steps 608.Therefore, name attribute is the next one operation that will carry out for " change " and value attribute for the operation 624 of " data/tasks.xml ".Changing (Change) operation 624 will make the new task element with suitable description attribute join " data/tasks.xml " document.In this, "<store〉" the XML element 626 that changes in the operation 624 provides and make the logic of text storage in the description attribute of new task of importing Input4 assembly 708 in.
Be described in the state of the graphic presentation 700 after importing new task and selecting Button1 assembly 702 referring now to Fig. 7 C.Therefore, Fig. 7 C is included in the identical assembly 702-708 that above describes with reference to Fig. 7 A-7B.In this example, the user with text " purchase airlinetickets " be input to by Input4 assembly 708 provide text filed.Above-mentioned change operation 624 is added the value of this task description to utilize corresponding document object 710 " data/tasks.xml " document.Because Input3 assembly 706 is bound to the selection that is changed the operation 624 description attributes that influence, so the tabulation of being shown by Input3 assembly 706 of task is upgraded in document object 710 automatically.In other words, the developer needn't be provided for handling the application code of the synchronous and exchanges data between Input3 assembly 706 and the data model.
In one aspect, the user can be to the 708 input new tasks descriptions of Input4 assembly and by selecting the tabulation of Button1 assembly 702 updating task.In addition, the user can be by directly revising task description with the clauses and subclauses that are presented in the Input3 assembly 706 alternately.By way of example, the user can delete current " upgrading expression " task description that is just being shown by Input3 assembly 706.Owing to defined data binding, deletion will be transmitted to " data/tasks.xml " document automatically.In this, the application of one or more assemblies and/or Local or Remote can be the data decryptor device for the task description of expression in " data/tasks.xml " document.In response to just deleting " upgrading expression " task, will notify and upgrade each of local data audiomonitor by document object 710.Deletion that it should be noted that task will be transmitted to the basic data model and then via Internet communication to any data decryptor device, and do not need the developer to be provided for the application code that deal with data is upgraded.
Referring again to Fig. 6 A, then do not carry out flow process and proceed to " Show Button " (the Show Button) process steps 610 to Input4 assembly 708 input texts if when selecting Button1 assembly 702, have.Therefore, name attribute is the next one operation that will carry out for " action " and value attribute for the operation 628 of " #MyTasks ".In general, carry out this motion action 628 and will show the initial Button2 assembly 704 of hiding (Fig. 7 A).As expression in MyTasks_gui.xml document 650, Button2 assembly 704 will show that the request user provides the text string of effective task description.
Those skilled in the art etc. will be appreciated that, it is that the height that can be used for illustrating an application of each side of the present invention is simplified example that the MyTasks that describes with reference to Fig. 6 A-7C uses.Can in the network operating system environment, create and carry out other application.Therefore, it is exemplary using with reference to the MyTasks here that the example of being lifted and the description of carrying out should be interpreted as.
Be used to develop programming language (C++, the Java of modern Application TM, Python TMDeng) have a user interface components of in the process logic of using, creating and keeping.In other words, the developer provides the logic of creating and the data on the user interface components being set clearly.In addition, developer's code of in the process logic of using, being provided for the monitoring incident and monitoring the data variation of the user interface that influence is used.These event sniffers remain between the user interface and territory specific data structure of application data variation.Yet the user interface of application and the I/O between the data structure are not standardized.Therefore, the expression of the data on the user interface of application with how in data structure expression data close-coupled.As a result, can influence the others of application to the modification of user interface or data structure.
Thereby network operating system provides the automated communications path support between user interface and the basic data model to meet the execution of the application of MVC Design Mode.In this, the developer can definition of user's interface assembly (in other programmed environment language, sometimes being called control or small tool (widget)) and the basic data model between binding.The present invention's management is simplified application and development thus to the Data Update and the coordination that influences the data variation of assembly of basic data model.Shown in the explanation that MyTasks uses,, then upgrade automatically and monitor any data binding assembly that changes if the data of representing in the basic data document change.More particularly, the bindings 616 during MyTasks uses is provided for Input3 assembly 706 is tied to the applied logic of one group of data representing in data model.Therefore, be transmitted to automatically from the basic data XML document deletion task of " upgrading expression " and be included in network and monitor the application of same document and the listening components of assembly.In addition, data binding is convenient between the local user interface assembly and the exchange of the data between the remote client on the network and synchronous.By way of example, the applied logic that the text that the change operation 624 during MyTasks uses provides utilization to import to Input4 assembly 708 upgrades the basic data document.In this, the variation of Input3 assembly 706 monitoring basic data documents.When text is input to Input4 assembly 708 and activated trigger 602, the visual display of Input3 assembly 706 is upgraded.In this example, the combination of data binding and change operation 624 makes it possible to carry out the data synchronization exchange between user interface components.
As mentioned above, binding provides the automated communications path between user interface components and the basic data model.In one aspect, the present invention allows to share and/or shift binding between user interface components.Expression is of the present invention aspect this in Fig. 8 A-8B, and wherein, Fig. 8 A-8B shows the assembly 800 and 850 of the different visual representations of the file system folder that is constructed to explicit user.Specifically, Fig. 8 A shows the assembly 800 that is constructed to the file of tree construction explicit user.If the user produces request file is shown as the input of tabulation, then the data binding to basic data of assembly 800 can be transferred to assembly 850, and this will also shift the state of assembly 800.This example illustrates the present invention and eliminated the expression of data and the dependence between the processing from the structure of data model.In addition, the transfer of data binding and share and not only to provide the path of the automated communications between the application layer according to the MVC Design Mode also is provided for the enhancing platform of Application and Development.
The invention provides one group of user interface components (that is, button, input frame, combobox, display panel etc.).For the ease of application and development, standard card cage allows to set up application from relevant user interface components.In this, user interface components can be from the parent component inherited attribute of utilizing UI XML language and is therefore made up to express complicated more user interface element.As a result, application can comprise one group of associated component organizing with hierarchical structure, and wherein, each assembly is known associated component.Alternatively, can define the whole view that the unique user interface assembly is used with expression.In addition, provide assembly API (application programming interface), it allows the developer to create the new user interface components that uses with the present invention.
In one aspect, the present invention supports the exploitation that the procedure-oriented of use XML language is used.In this, each process steps in the MyTasks.xml document 600 is represented the part of process execution flow process.Operation in the process steps can define the state variation of the application of just carrying out.By to the controlled access of the data of run time behaviour that describe to use and by utilizing the message sending end mouth, the communication between the supporting process.The developer can quote view, assembly and other run-time variables with the expression formula of utilizing the global naming object.In this, provide expression language or the common way of quoting with manipulating objects.In general, expression formula and process XML language carry out abstract to the complicacy of carrying out many exemplary application jointly.Instead, the developer can create application, just looks like that this application exists only in the single execution example the same.Shown in MyTasks.xml document 600 (Fig. 6 A), expression formula is constructed to the XML syntactic compatibility and can is demarcated or be labeled be used in other programming language.When to an evaluation of expression, the work that the XML virtual machine is carried out identification, merged and handle requested date according to the expression formula that receives.As a result, even example when carrying out a plurality of operation of application, the developer still can utilize the global naming object in application code.
The invention provides the client-side assembly of in can carrying out a plurality of " classes " of " object " instantiation, realizing.In other words, can utilize the programming language of the JavaScript that for example uses the object based programming feature to realize the client-side assembly.Alternatively, can utilize the non-object oriented language of C programming language for example or any other Languages that structure can be expressed as object to realize the present invention.It will be understood by those skilled in the art that the object of creating from class generally includes the method that encapsulates or hide the algorithm of the function that realizes object.Substitute to expose these and realize details, object provides other module can be with the interface that visits its function as abstract.Therefore, the function of XML virtual machine appears realizing according to one embodiment of present invention in the environment of the object that utilizes object-oriented and succession.
As mentioned above, the client-side assembly is as the XML virtual machine of carrying out with the application of the language compilation that meets the XML grammer.In practical embodiments, the XML virtual machine is constructed to the process model building language (for example carry out, process XML language), user interface modeling language (for example, UI XML language) and application bag modeling language (for example, using bag XML language) are pressed the application code that semanteme is described.It should be noted that and to expand understanding additional XML language or the XML virtual machine, thereby the function of not describing here is provided based on the application of XML.In addition, should be understood that and not use XML language described here to carry out programmed logic that other embodiment also is feasible.For example, JavaScript API or storehouse can be used in and set up the application that realizes identical function.Therefore, it only is exemplary utilizing the language based on XML, and can utilize traditional programming language to realize the present invention.
At any given time, the application of being explained by the XML virtual machine can be understood that to be in specific executing state.Process XML language makes the developer can be defined in the condition that changes between the state.In addition, the XML virtual machine realizes being used for the function that supervisor status changes by following operation: one group of run-time variables/object carrying out the state of using is described in (1) definition; (2) carry out the logic that when application state will take place to change, will drive; And (3) provide the rudimentary structure of the suitable variation that realizes application state.
Referring now to Fig. 9, will the client-side assembly of realization XML virtual machine and the each side of class and object be described.The client-side assembly comprises a plurality of " managers " or object, and these " managers " or object keep active by instantiation and during whole user conversation usually when the startup of the client-side assembly of network operating system.As mentioned above, the object that is provided by the client-side assembly according to illustrated embodiment utilizes object-oriented and succession.In this, can carry out instantiation to system environments object 902, it is as the placeholder that embeds manager and other object when moving.Therefore, system environments object 902 can be used for manager shown in Figure 9 (comprising application manager 904, Process Manager 906, View Manager 908, task manager 910, document manager 912 and task manager 914) is carried out instantiation.
Each manager is carried out the particular task by exposing from the interface of system environments object 902 visits usually.Therefore, other object of the present invention's realization can call and utilize the function of manager to come the carry out desired task.For example, can invoked procedure manager 906 with to carry out use cross the preparation of range code the time the process object carry out instantiation.In one aspect of the method, manager allow provide use in and the controlled instantiation of execution and communicating by letter between the object on the basis of security in the process.Although the affiliated partner that keeps with reference to cura specialis device and manager provides the description here, those skilled in the art etc. will recognize, be exemplary with function package in the manager of particular type.In other embodiments, can under situation about not encapsulating, carry out the function of describing here about cura specialis device and corresponding objects thereof, perhaps can encapsulate these functions in the mode different with described mode.In addition, object oriented programming languages described here and feature only are illustrative, can utilize other instrument under the situation of the scope of the theme that does not break away from requirement.
As shown in Figure 9, the client-side assembly comprises the application manager 904 of the logic of the life cycle that is provided for managing application.In this, application manager 904 exposes and is used to the function creating, open and stop using.Can be in inside application table be shown the application that carries out " registration " to application manager 904.When scheduled for executing is used, can call application manager 904 to create corresponding application.Therefore, application manager 904 is created and is kept intrasystem all active quoting of using.
As mentioned above, the developer can describe the attribute of one or more application by semanteme in using application bag XML Language Application bag.The attribute of describing in using bag comprises quoting the resource that is used for carrying out by application-specific and system's setting.The resource of using identification in the bag generally includes the XML document of the semantic description of view that application is provided and process logic.In one aspect, application manager 904 is constructed to when scheduled for executing is used from the information extraction of suitable application bag and obtains the resource of identification.Alternatively, any XML data resource that comprises UI and process XML document can be directly embedded into and uses in the bag.In one aspect of the method, realize making when client computer " off-line " function that application can continue to carry out by application manager 904.In this, application manager 904 can be quoted suitable application bag with the resource of identification by corresponding applications exploiting.Then, also be not buffered in local any resource from suitable service provider's identification and acquisition.
Process Manager 906 shown in Figure 9 is responsible for creating and being kept for carrying out the internal procedure object of the process steps in the application.As mentioned above, with the applied logic of process XML language compilation can the definition procedure step sequence, each process steps includes one or more operations.Process object by Process Manager 906 establishments and maintenance is responsible for searching loop and is called one or more rudimentary structures or Operation Processor.Different with traditional platform, the conceptual foundation of network operating system is based on the procedure-oriented operation of rudimentary structure being carried out modeling.Make up for example more senior structure of model workflow, Production Lifecycle Management, user collaboration etc. from these rudimentary structures.By way of example, the set that rudimentary structure is carried out the Operation Processor of modeling provided by the invention includes but not limited to: opening operation processor, bindings processor, change Operation Processor, decision operation processor etc.In addition, thus provide operation A PI to make the developer can define other Operation Processor.In this way, can expand the XML virtual machine to support and to carry out other rudimentary structure.On the other hand, the operation in can be used for using is limited to according to operation A PI and creates or by those operations provided by the invention.As a result, because only the well-defined operational set of finite sum can be used for carrying out applied logic, so the user creates Malware or realizes that the ability of malice function is subjected to strict restriction.On the one hand, be limited owing to handle the number of the mode of XML document, so fewer relatively purpose operation need be provided.Because XML is very general language, so can utilize any application of this language description or territory.Therefore, process XML language provided by the invention and respective operations thereof can be described the process logic of any kind and can be used for describing the application of any kind.
According to an embodiment, by the invention provides the instance objects of following the tracks of " run time behaviour " of carrying out application or example.Those skilled in the art etc. will recognize that when actuating logic, the run time behaviour of using in the execution is constantly evolved.The run time behaviour that instance objects is followed the tracks of and management is used in carrying out and to being used to realize that other object of XML virtual machine provides environment.Therefore, instance objects is coupled to process and operation associated execution thereof with function definition.As a result, even the run time behaviour of application example constantly changes, still to the furnish an explanation data of these variations of Operation Processor.By this method, the present invention supports to use the dynamic execution of the applied logic of stateless process object.In other words, even can there be a plurality of examples of application, still only need the application code of a version, thereby saved internal memory.
As shown in Figure 9, the client-side assembly comprises View Manager 908, " view " or the user interface of association during View Manager 908 is responsible for following the tracks of and carrying out.View Manager 908 is provided for creating the method for interior views object that is used to play up and upgrades the user interface of application.According to the MVC Design Mode, can utilize UI XML language to describe the user interface of using by semanteme.Therefore, can in the UI XML document, represent the assembly of the complete user interface used and the relation between other graphic attribute.When playing up the user interface of in the UI XML document, describing, utilize the view object of carrying out instantiation and maintenance by View Manager 908 by semanteme.In one embodiment, can carry out playing up of user interface by a series of XML conversion.Yet those skilled in the art etc. will recognize, can carry out the XML conversion and play up user interface and the above description that provides should be construed as exemplary.Under any circumstance, View Manager 908 is constructed to create view object and keeps in the system all are enlivened quoting of view.
As shown in Figure 9, the client-side assembly comprises document manager 912, is responsible for instantiation and keeps quoting document object.As mentioned above, XML document is the data model as the common data source in the network operating system environment.In XML document, represent applied logic, system's setting, application state etc.In one aspect, in the document manager 912 responsible storeies that document loaded or is buffered on the client computers.Therefore, document manager 912 can carry out alternately to obtain document with other manager of for example contact manager (hereinafter describing).Can utilize communication port to obtain document, perhaps can set up passage and remain on local hard drive on the client computers or the document on other nonvolatile memory with visit from the telecommunication network position.In one aspect of the method, document manager 912 usefulness act on the client-side buffer of following the tracks of each document in the storer that is loaded on the client computers.When obtaining document, can carry out instantiation to the internal document object of structuring object-oriented representation that document is provided in this locality.In this, document manager 912 keeps quoting and exposing and be used for method that XML document is created, retrieves, preserved and rename etc. intrasystem all document objects.
The task manager 914 that visually illustrates among Fig. 9 is as the trigger event bus, and this trigger event bus makes the each side of XML virtual machine can carry out applied logic in response to the activation of trigger.On the one hand, the process object can utilize the notifying device object to register triggers as audiomonitor to task manager 914.In the system for example other object of component object usually they self are directly registered to task manager 914 as audiomonitor.In addition, the notifying device object receives and stores the data of the process steps that is used for discerning the application that will carry out in response to activated trigger.In addition, the data that provide by the notifying device object with trigger with initiate the initiation object that trigger activates (that is, normally view or component object) and carry out association.On the other hand, when activated trigger, task manager 914 pushes (push) objects (that is, view or component object) or the audiomonitor of notification enrollment otherwise.In this example, component object will be to task manager 914 notice and Data transmission.In response, task manager 914 will be carried out inquiry with the identification audiomonitor at the incident that activates.Then, can warn suitable notifying device or other eavesdropping target and provide to it and make to use to carry out the data that proceed to suitable process steps.As describing in further detail hereinafter, discrete application example all can utilize mutually same group trigger and notifying device object.The internal memory that provides the task manager 914 that is constructed to reuse by this way same asset and interconnected system not only to improve performance but also use minimizes.
" trigger " used herein is meant the generation of the trigger event of the definition that will cause application code to be performed.Therefore, hereinbefore with reference in the described example process XML document 600 of Fig. 6 A, activated trigger 602 makes carries out the particular procedure step that defines in application code.Opposite with existing system, when Data Update took place, the trigger that the present invention realizes was not activated usually.In other words, except the operation of specifying for example data binding, the developer does not need to be provided for managing the logic of the input and output from the using user interface to the data model.Instead, the present invention is by independent Data Update notification event bus management Data Update, and Data Update does not correspond to the activation of trigger.As hereinafter describing in further detail, each side of the present invention is provided at the discrete event bus of realizing in the document object, and this event bus is automatically handled the propagation of the data update event of assembly and other object.
Task manager 910 shown in Figure 9 in addition is provided for creating and propagate the interface of the affairs of the content that is used to upgrade XML document.Therefore, when the change that will carry out the data model, this will produce affairs.In this, affairs are represented relatively to change and can be represented as to comprise and are used to realize or cancel XML data slot to the data of the change of data model.For example, in described MyTasks uses above with reference to Fig. 6 A, can cause the establishment of affairs to the change operation 624 of basic data XML document interpolation task.The Data Update that reflects in the affairs can be saved in data model and any remote monitoring device.In one embodiment, the time stamp data when task manager 910 comprises sign and creates affairs can be used for the Data Update of representing in " rollback (rollback) " affairs and discerns the order that produces affairs.
Referring now to Figure 10 A, application initializes routine 1000 will be described, this application initializes routine 1000 is carried out and is used to open the processing of using bag.Can carry out application initializes routine 1000 in response to the user produces the order that starts application.As mentioned above, each side of the present invention can provide a kind of desktop environment, and in this desktop environment, user by selecting menu item, icon etc. start to be used.In response to receiving such order, can be used to discern the URL of the position of document, XML document or the binary file related to the data type recognizer transmission in the system environments object 902 with using bag.As hereinafter describing in further detail, utilize the data type recognizer with identification maneuver and will move and carry out related in many ways with the document of particular type.Under any circumstance, when the data type recognizer determines just opening the document corresponding with using bag (for example, using the bag XML document), can carry out application initializes routine 1000.
In the application initializes routine 1000 shown in Figure 10 A, in piece 1002, utilize 904 pairs of application managers to use object and carry out instantiation.A plurality of applications of all representing different application can carry out instantiation and maintenance by application manager 904.In this time of application initializes routine 1000 repeats, can instantiation for example represent first application of word processor.In different a repetition of application initializes routine 1000, can instantiation represent second application of distinct program (for example, e-mail program).To using the instantiation and the visit of object, can not visit the internal object related (for example, view object, instance objects, process object etc.) by control with different application with the process logic of an association.Therefore, when carrying out the process logic of word processor, the view object related with the e-mail applications bag is inaccessible.As hereinafter describing in further detail, utilizing application manager 904 to come instantiation and keeping application is the part than big frame that is used to guarantee to use security in interior and the process provided by the invention.
In piece 1004, obtain the resource of the application of just opening of appointment in the application bag of correspondence.Logic in the application bag formed according to the present invention provides the resource of application and whole blueprints of setting.Therefore, using the bag XML document can discern and the process of association and UI XML document and other application resource of image, data file, XSLT document etc. for example.Comprise that the resource by applications exploiting of using bag XML document self can be buffered in the storer on the client computer or can utilize communication port (hereinafter describing) to obtain from the service provider.Except resource be provided with the management, use bag XML language and the developer can be disposed in more advanced mode use bag.Only as example, the conditional logic of using in the bag XML document can be used for the more fault-tolerant network service that realization can obtain resource from inefficacy redundant (failover) network site.Under the disabled situation in main network site, use the network site that bag can be discerned the alternative of available resource.Yet this only is that the present invention makes the developer can utilize bag XML language construct to use an example of the mode of bag.
As among Figure 10 A further shown in, in decision block 1006, example during additional operation that application initializes routine 1000 determines whether to allow to use.Use bag XML language and the developer can be set up be used to the configuration of the number that limits the application example that to create.Therefore, depend at determining of carrying out of piece 1006 and using the configuration that defines in the bag XML document.If determine not allow additional example in piece 1006, then application initializes routine 1000 enters piece 1008, in piece 1008, handles the order that is used to start the application that does not allow additional example.Example when in this, processing command can comprise the existing operation that refreshes application in piece 1008.Additionally or alternatively, processing command can comprise by dialog box notifies the user: the additional example of application is not allowed to.Then, when processing command, application initializes routine 1000 enters piece 1014, uses initialization routine 1000 and stop in piece 1014.
On the other hand, if determine that in piece 1006 additional example of using is allowed to, then application initializes routine 1000 proceeds to piece 1010.In piece 1010, the instance objects of the run time behaviour that is used to follow the tracks of and manage the application that is just starting is carried out instantiation.When constructive process and view object, each side of the present invention is carried out related with their corresponding instance these objects.The instance objects of instantiation is kept for structure, another name and other run-time variables of tracing process and view object in piece 1010.Therefore, instance objects is known process related with this application example and view object.Controlled instanceization by object and quoting can be set up localization and concern that level is to define the border of application example.As describing in further detail hereinafter, this framework carries out related with corresponding example process and view object and to concerning that from localization the visit to these objects is demarcated outside the level.
The environment that the instance objects of instantiation provides in piece 1010 can be realized function about the run time behaviour of using.In one aspect, instance objects instantiation and be kept for the expression formula that runs into is carried out the local expression formula engine of evaluation in the application code that is just making an explanation.The process object can utilize corresponding instance object and this example to keep in order to the local expression formula engine to evaluation of expression.In addition, when executable operations,, can be provided at the instance objects of instantiation in the piece 1010 for function definition being coupled to the execution of process logic.
As among Figure 10 A further shown in, in piece 1012, utilize the application of instantiation in piece 1002 to open execution with the process and the view logic of initial application.Here describe hereinafter and not be used to open with initialization procedure and UI XML document in the routine of execution of logic.It should be noted that when starting the application related, the run time behaviour that provides new instance objects to use with tracking with the application bag.For example, when starting the example of word processing application, the application of expression word processor will provide different instance objects.By utilizing application by this way, each side of the present invention can control to carry out in the visit of object of association.Then, application initializes routine 1000 proceeds to piece 1014, stops in piece 1014 application initializes routines 1000.
Referring now to Figure 10 B, will describe in detail to utilize the application package application and provide and use interior security.When starting the application of using in the bag, application manager 904 instantiation applications, this application provides the encapsulation of this application to represent.Shown in Figure 10 B, application manager 904 can instantiation application A 1030, application B 1032 and N application 1034.In one embodiment, utilize application instantiation and the one or more instance objects of maintenance.In the example shown in Figure 10 B, application A 1030 can instantiation and maintenance instance objects A1 1036, instance objects A2 1038 and instance objects A-N 1040.Similarly, application B 1032 can instantiation and maintenance instance objects B1 1042 and instance objects B-N1044.In this, the unidirectional solid arrow indication between the object shown in Figure 10 B: initiate the destination object of the source object maintenance of arrow by spear pointer identification.Therefore, indicate these objects to keep from application manager 904 to the solid arrow of application 1030-1034 by application manager 904.From shown in Figure 10 B as seen, the relation between application manager 904, application 1030-1034 and their the corresponding instance object 1036-1044 is tangible.
How relation between objects shown in Figure 10 B can guarantee to use interior security if showing the present invention.Application manager 904 controls that are used to the method creating, open and stop using by exposure are to using the visit of object.When application during by instantiation, application manager 904 is isolated this application in the storage space of separating.Share storage space, the storage space that the code of an application can not inject or otherwise different application is distributed in influence by preventing application.In addition, application provides encapsulation internal data, that use that can hide with association to represent.By the method that create to expose, all functions that control is used and to the visit of internal data.By isolating by this way and package application, make internal object (for example, view object, instance objects, process object etc.) with an association for a different application inaccessible.Therefore, when carry out using the code of application A 1030, cannot visit the internal object related with application B 1032.Although internal data that cannot access application can be utilized basic data model shared data.Therefore, if the user has enough access rights, then document can be shared by a plurality of application.In other words, the security framework does not stop the mandate of using the data between the basic data application of model to be shared in the application provided by the invention.
Referring now to Figure 10 C, will describe in detail and utilize instance objects to realize that localization concerns level.Concern level by defining localization, each side of the present invention makes can carry out many exemplary application safely.Diagram among Figure 10 C comprises application 1050 and instance objects 1052.In addition, Figure 10 C has described process object 1054, view object 1056, component object 1058 and the dialog object 1060 of instantiation when the process of opening application and UI XML document.In one embodiment, when initiating the execution of using, application 1050 provides instance objects 1052.From application 1050 to view object 1056 and the indication of the dotted line unidirectional arrow of process object 1054 concern these objects of establishment in the level in the instance objects 1052 peculiar localizations that provide.In this, instance objects 1052 keeps mini View Manager 1062 and mini Process Manager 1064.When opening the process XML document of application, provide utilizing mini Process Manager 1064 to follow the tracks of the quoting of process object 1054 of acquisition to instance objects 1052.Similarly, the view object 1056 that obtains when opening application view is provided for instance objects 1052 and is kept by mini View Manager 1062.Therefore, make instance objects 1052 can follow the tracks of the object related with the application-specific example to mini Process Manager 1064 with mini View Manager 1062 renewals with identification.
Run through the code of describing the logic of using, the developer can utilize the global naming object to define the logic of application.Can quote these global naming objects according to expression language provided by the invention.Yet, the object when global name of distributing to the object in the application code can be quoted the operation that belongs to different instances.For example, can in application code, use following expression to quote view object 1056: " #MyTasks ".In addition, following expression can be used for quoting the component object of creating (for example, button) in the environment of above-mentioned view object 1056: " #MyTasks#button1 ".For fear of ambiguity and enhancing security, each side of the present invention realizes about suitable example the global naming object that runs into being carried out the function of evaluation in application code.In this, under the situation of the process of not creating repetition or UI XML document, carry out the evaluation of global naming object.Instead, the process of application and UI document are shared and object during the operation that is used to set up a plurality of application examples.Can know from following description and to find out that localization concern that the realization of level provides the basis that is used for discerning and/or providing the suitable view object in suitable example and the access instances when to evaluation of expression.
In the example shown in Figure 10 C, between instance objects 1052 and view object 1056, show four-headed arrow.On the one hand, four-headed arrow indication instance objects 1052 knows that view object 1056 is related with this application-specific example.When by instantiation, view object 1056 can be provided for instance objects 1052 and be kept by mini View Manager 1062.On the other hand, thus when creating application view, provide the identifier of instance objects 1052 to make view object 1056 know its associated instance.As a result, when receiving when make carrying out the input of Data Update or applied logic, can discern suitable example.For example, when view object 1056 is used to open application view, can instantiation component object 1058.Owing in the environment of application view, create component object 1058, so it can communicate with view object 1056.As a result, for example provide when make carrying out the input of application code as the user, component object 1058 can be discerned suitable instance objects 1052
In the example shown in Figure 10 C, between instance objects 1052 and process object 1054, show unidirectional arrow.In one embodiment, the process steps of utilizing process object 1052 to carry out in using.By utilizing and upgrading mini Process Manager 1064, instance objects 1052 has been known the process object 1054 of its association.Yet process object provided by the invention is stateless between the execution of process steps.As a result, provide environment to the process object from single instance object 1052.In other words, process object 1052 is not known related instance objects 1052 between the execution of process steps.Yet the service of the expression formula engine (hereinafter describing) that is kept by the instance objects 1052 that provides can be provided process object 1054.Localization shown in Figure 10 C concerns that level and related description show the present invention and how can guarantee security in the process when still supporting many exemplary application.When the operation in the repetitive process step, can only provide environment to process object 1054 from an instance objects 1052.So that provide this framework of environment to process object 1054, can realize that between the object related strictness separates based on opening relationships with different instances from single instance object 1052.Therefore, when carrying out application code, the localization that process object 1054 can not be visited different instances concerns the object that level is interior.
Each side of the present invention can concern in the localization of being set up by father's example creates sub-instance in the level.In this embodiment, the localization at father's example concerns sub-view object and the subprocess object of creating sub-instance and acquisition thereof in the level.The localization of being described by sub-instance concerns that level is visible to liking for what create in the level in concerning of father's example.Yet object is not known and father's example or the related object of other sub-instance during the operation created in sub-instance.The ability that this ability that is nested with sub-instance at father's example provides bigger dirigibility and utilized different action scopes to the application developer who sets up more modular code.
Referring now to Figure 11, use description to open and the procedure initialization routine 1100 of initialization in the execution of the logic of using of crossing range code justice decided at the higher level but not officially announced.When calling of the document that comprises process logic opened in generation, but implementation initialization routine 1100.In one embodiment, calling of opening file can be sent to the data type recognizer that receives URL from the homophony object.The URL that is passed to the data type recognizer can include but not limited to use bag XML document, process XML document or UI XML document corresponding to the document of any kind.When opening the document that comprises process logic, the data type recognizer can be so that carry out the execution of specific action to help to use.In exemplary embodiment shown in Figure 11, the data type recognizer determines that the document that provides is process XML document and the distinctive action of feasible execution this document type.
But procedure initialization routine 1100 shown in Figure 11 shows two exemplary cases of opening procedure XML document.Yet, since under the situation of the scope that does not break away from claimed theme opening procedure XML document in other cases, so that example provided below should be interpreted as is exemplary.As shown in figure 11, procedure initialization routine 1100 is in piece 1102 or piece 1104 beginnings.In one exemplary embodiment, routine 1100 is in piece 1102 beginnings, and in piece 1102, the data type recognizer receives and is used to open calling of the process XML document related with using bag.In this embodiment, application receives in piece 1102 provides the instance objects of previous establishment in calling.As hereinafter describing in further detail, when the process steps that defines was carried out in expection in the process XML document, procedure initialization routine 1100 was with the instantiation process object.To quoting of this process object can offer afterwards piece 1102 receive call in the corresponding instance that provides.
In an alternative embodiment, procedure initialization routine 1100 is in piece 1104 beginning, and in piece 1104, the data type recognizer receives calling of the process XML document that is used to open the expression isolation application.Using does not need to carry out related with the application bag.In this embodiment, the data type recognizer does not receive the example that provides at piece 1104 in the calling of opening procedure XML document.The application that is configured to isolate is not by this way supported a plurality of examples to carry out and is made application can share at least some storage spaces.
In piece 1106, the data type recognizer is carried out and is handled to discern the file type of the document that will open.In this example, will determine that by the analysis that the data type recognizer is carried out with the related document that calls that receives be the process XML document.As mentioned above, the data type recognizer can carry out related with particular file types action.When running into the request of opening procedure XML document, at piece 1108, the data type recognizer is constructed to invoked procedure manager 906, and indication has received the request of opening procedure XML document.
At decision block 1110, the logic in the Process Manager 906 determines whether the process object of this process XML document is buffered in the storer.In one aspect, when initial startup was used, procedure initialization routine 1100 was responsible for the new process object of instantiation.In case by instantiation, procedure initialization routine 1100 realizes making the logic of process object implementation step of new instantiation.Because process is stateless to liking, so it can be reused.Like this, the identical process object can be used for carrying out the same instance of self-application bag or is embedded in the application code of other process in the process XML document.Therefore, can be in storer by Process Manager 906 with the process target cache of instantiation when start using.If Process Manager 906 before at the application instantiates of this in storer still the process object, then the result of the test of carrying out at piece 1110 is a "Yes", and procedure initialization routine 1100 proceeds to piece 1120, and this will carry out more detailed description afterwards.On the contrary, if determine the process object that instantiation is new, then procedure initialization routine 1100 proceeds to piece 1112.Before the new process object of instantiation, the process XML document that should can obtain just opening in this locality.For this reason, at piece 1112, Process Manager 904 produces via document manager 912 routes to obtain calling of suitable process XML document.
At piece 1114, determine whether be carried in the storer of client computes device by the process XML document of Process Manager 904 requests.As mentioned above, document manager 912 is followed the tracks of each document in the storer that is carried on the client computer as the client-side buffer.Be cited in the client-side buffer that is kept by document manager 912 if determine the process XML document of just opening, then procedure initialization routine 1100 proceeds to piece 1118, and this will carry out more detailed description afterwards.On the contrary, if the process XML document of request is not carried in the client-side buffer, then procedure initialization routine 1100 proceeds to piece 1116, at piece 1116, and the process XML document that obtains to ask from the service provider based on document manager 912.More particularly, at piece 1116, document manager 912 utilizes contact manager (hereinafter described) request to obtain suitable process XML document from the network site by the URL identification that provides.
In case can obtain this process XML document from the client-side buffer, then at the new process object of piece 1118 instantiations.Specifically, when carrying out application code, expection utilize the logic in the Process Manager 904 to come the new process object of instantiation.Then, at piece 1120 new process object is registered in as audiomonitor on its corresponding process XML document.As hereinafter describing in further detail, by as registering on the document of audiomonitor in data model, when document being carried out data designated upgrade, object can be notified and be taked certain action.
At piece 1122, at each the trigger instantiation notifying device object in using.Specifically, can carry out parsing to be identified in the trigger element that defines in the process XML document of just opening.By way of example, MyTasks application definition trigger 602 (Fig. 6 A), it will cause instantiation notifying device object in piece 1122.Trigger can be defined as the element in the process XML document, and each trigger comprises view, assembly, incident and step attribute.Distribute to application view and/or the assembly of the value identification of view and component property with activated trigger.Similarly, distribute to the type of the value identification of event attribute with the incident of activated trigger.In addition, distribute to the process steps in the range code crossed of application that the value identification of step attribute will carry out in response to trigger.For each trigger in using, can next be used to carry out the data of particular procedure step in logical instance notifying device object in the Process Manager 906 and the buffer memory notifying device object.
In addition as shown in figure 11, at piece 1124, each trigger that is defined in the application is registered to task manager 914.In one embodiment, task manager 914 keeps one group of flip-flop data is carried out related inside Hash data structure with monitoring notifying device object.Therefore, can register trigger by upgrading the Hash data structure that keeps by task manager 914.As hereinafter describing in further detail, when the incident that takes place with the incident of the assembly of registration and event type coupling, task manager 914 is notified suitable eavesdropping target and notifying device object.
In addition as shown in figure 11, determine whether the new example of instantiation at piece 1126.When the opening procedure XML document, can provide example.Specifically, when the opening procedure XML document, above-mentioned application initializes routine 1000 can instantiation and example is provided.In addition, for the support module application and development and make and the various process shared environment can in other environment, provide example.In these embodiments, with the new example of not instantiation, and procedure initialization routine 1100 proceeds to piece 1130, and this will describe in detail afterwards more.On the contrary, if instance objects is not provided, then procedure initialization routine 1100 proceeds to piece 1128, at piece 1128, and the instantiation instance objects.Specifically, at piece 1128, the logic in the Process Manager 906 produces calling of the new instance objects of instantiation.
At piece 1130, produce to carry out calling of the process steps that in the process XML document, defines.In practical embodiments, the process object is constructed to the parameter implementation step based on two receptions: the example that provides of the run time behaviour that (1) expression is used; (2) with the identifier of the process steps carried out.In this, can in the environment of using bag or isolation application, create the example that will offer the process object.In another embodiment, procedure initialization routine 1100 is constructed to provide parameter to the process object, and when carrying out each process steps that defines in the process XML document, described parameter makes can reuse this process object for a plurality of examples.Then, procedure initialization routine 1100 proceeds to piece 1132, in piece 1132 its end.
When with the implementation step, control flow is directed at the manner of execution of coding in the process object.In general, manner of execution searching loop and make to carry out each operation that in process steps, defines.In other words, manner of execution is the interface to the process operation of developing according to process operation API.Like this, in order to carry out the process steps " 1 " of definition in MyTasks uses, procedure initialization routine 1100 can be called manner of execution.In response, manner of execution will be carried out and handle so that carry out opening in this process steps 604, binding and motion action 612-616.
Referring now to Figure 12 A-12B, manner of execution 1200 will be described, this manner of execution 1200 is constructed to make the operation in the implementation step.Shown in Figure 12 A, manner of execution 1200 begins at piece 1202, at piece 1202, and the new operation in the identifying step.In one embodiment, order identification and the interior operation of implementation step usually.When running into new operation, be chosen in the expression formula that provides in the value attribute of operation to carry out evaluation at piece 1203.For example, in above-mentioned MyTasks uses, MyTasks document 600 (Fig. 6 A) definition initialization application process step 604.In this process steps 604, first operation is the opening operation 612 with value attribute " apps/mytasks_gui.xml ".In this time to manner of execution 1200 repeats, select expression formula " apps/mytasks_gui.xml " to carry out evaluation at piece 1203.
The description of carrying out with reference to Figure 12 provides the example of the operation in the order implementation step.Yet, thereby feasible not each the interior operation of implementation step sequentially of the asynchronous execution of each side support of the present invention operation.For example, if first operation requests resource that only can obtain from the telecommunication network position, then can when obtaining resource asynchronously, carry out other operation (result who does not depend on first operation).
In addition shown in Figure 12 A, in piece 1204, the expression formula of selecting to be used for evaluation at piece 1203 is tried to achieve is XBind.Here used XBind is the data type that comprises URL, basic path (for example, quoting the XPath expression formula of the XML fragment in the document of being discerned by specified URL) and select (for example, a plurality of XPath expression formulas).In the exemplary opening operation 612 of definition, at piece 1204, " apps/mytasks_gui.xml " expression formula will be tried to achieve is following XBind in MyTasks uses:
URL=apps/mytasks_gui.xml
Base?path=/
Selection=
The URL of this XBind quotes the UIXML document of the semantic description of the user interface that application is provided.Although the example that provides here utilizes URL as the form that is used for recognition resource, this should be construed as exemplary.In conjunction with the present invention can realize can unique recognition resource any system.As describing in further detail hereinafter, network operating system is provided for visiting the agreement of XML Web service of XML file system, database and use URL and abstract.Yet, can expect that other agreement can be used for discerning URL resource location in addition.The basic path of above XBind is "/", and it quotes the root element of the UI XML document of discerning in URL.When opening application view, the fragment in the UI XML document can be quoted in basic path.In this case, the semantic description of view logic is not related with the root node of UI XML document.Therefore, the XBind at this variation will comprise the basic path of quoting the node corresponding with the view logic.Because the selection at this exemplary XBind does not comprise data, so it is " null " (sky).In case expression formula has been carried out evaluation, manner of execution 1200 proceeds to piece 1206, and this will be described in detail afterwards.
Referring now to Figure 12 B, will the exchange that take place be described when to evaluation of expression.Diagram among Figure 12 B comprises a group objects, and it comprises instance objects 1250, process object 1252 and view object 1254.Similar to the above description that provides with reference to Figure 10 C, the empty arrow indication process shown in Figure 12 B before concerned with instance objects 1250 peculiar localizations that level was related with view object 1252-1254.In manner of execution 1200, process object 1252 can utilize the evaluation of expression of instance objects 1250 to running into.Owing to when initiating the execution of process steps, provide instance objects 1250, so thereby process object 1252 can utilize the instance objects 1250 in the process steps to have the expression formula of being tried to achieve by expression formula engine 1260.
In one embodiment, the present invention realizes expression formula engine 1260, and expression formula engine 1260 is constructed to the expression formula in the environment that is provided by example is carried out evaluation.Specifically, can in the environment of instance objects 1250, use the function that is encapsulated in the expression formula engine 1260, expression formula 1262 is tried to achieve be XBind 1264, XML formatted data or plain text.In case by evaluation, the XBind 1264 that is discerned by expression formula engine 1260 can be passed to process object 1252 from instance objects 1250.By utilizing instance objects 1250 instantiations and keeping local expression formula engine 1260, be easy to the evaluation of executable expressions about the environment that provides by example or any sub-instance.In addition, utilize local expression formula engine 1260 to make by this way and can in multichain connects the action scope degree of depth, carry out example and action scope processing.Therefore, can be according to the application example of carrying out, differently to evaluation of expression, and the developer does not need to solve the complicacy of many examples of management or action scope.Additional description with the type of expression that is described in detail in the functions that realize in the expression formula engine 1260 hereinafter more and can tries to achieve by the present invention.In this, expression formula engine 1260 can be used for a plurality of evaluations of expression to definition in operation.To each evaluation of these expression formulas in operating, this will be described below in greater detail hereinafter before the call operation processor.
Referring again to Figure 12 A, at piece 1206, manner of execution 1200 is initiated the execution of suitable Operation Processor.As mentioned above, the invention provides a plurality of Operation Processors.Each Operation Processor is realized for the specific function of the operation types that may run into.Therefore, if current operation is an opening operation, then call the opening operation processor in piece 1206 manners of execution 1200.Yet, realized other Operation Processor that can in manner of execution 1200, call (binding, judgement, action, change etc.).Therefore, manner of execution 1200 is constructed to transmit the argument that is suitable for utilizing the specific operation processor that well-defined process operation API calls, and this will discuss in the example below.Yet, each Operation Processor when being called, the XBind that example and process object at least is provided and tries to achieve to this Operation Processor.
At decision block 1208, manner of execution 1200 determines whether the other operation in the implementation step.Therefore, if before do not carry out the interior all operations of active procedure step, then manner of execution 1200 turns back to piece 1202, and repeats piece 1202-1208 up to having carried out each operation.It should be noted that process steps can comprise the statement of direct application execution flow process.For example, " calling " statement can be defined as the statement in the process steps, in case carried out all operations in the active procedure step, different process steps of flow guiding will be carried out in this statement.More particularly, provide " calling " operation, should " calling " operation make the developer can be with different process steps of the execution flow guiding between the operation of a process steps.When definition " calling " operation, flow process proceeds to new process steps, and turns back to the position of initiating in the process steps when finishing.In practical embodiments, can utilize that " calling " operation produces asynchronous call, time delay is called and call the time recurrence interval.Then, in case carried out all operations, manner of execution 1200 proceeds to piece 1210, in piece 1210 its end.
As mentioned above, when explaining applied logic, manner of execution 1200 is initiated the execution of specific operation processor.Continue to use, will describe the function that realizes by the specific operation processor with reference to above-mentioned MyTasks.Because Operation Processor realization state changes, so all data that provide Operation Processor to utilize.In addition, each side of the present invention is constructed to make not return data of Operation Processor.Like this, Operation Processor can be implemented as anything and the lonely function of return data not that is provided for execution.Therefore, can be at the process operation during this locality execution is used.Yet, because Operation Processor is isolated function, so can provide Operation Processor as Web service from server end data center.
Referring now to Figure 13, utilize exemplary the opening of opening operation processor to handle routine 1300 description.Use in (Fig. 6 A) at above-mentioned exemplary MyTasks, application definition opening operation 612, opening operation 612 have the value attribute that can be tried to achieve to XBind in manner of execution 1200 (Figure 12 A).Therefore, can call the opening operation processor and carry out opening operation 612.In one embodiment, argument can be passed to the opening operation processor that comprises the XBind that had before tried to achieve and suitable example and process object in calling.
As shown in figure 13, at piece 1302, in the opening operation processor, call the data type recognizer with opening document.As mentioned above, the interior fragment (node) of document that the XBind that had before tried to achieve can point to document or just open.In addition, the opening operation processor is identified in this XBind that had before tried to achieve of the document of just opening in calling to the transmission of data type recognizer.When receiving when calling, the data type recognizer is carried out the file type of the document of quoting in handling with the XBind that is identified in reception at piece 1304.In exemplary MyTasks used, the XBind that is delivered to the data type recognizer quoted the document of title for " MyTasks_gui.xml ".In this example, the data type recognizer is identified as the UI XML document with file type.As mentioned above, in the data type recognizer, provide with the action carry out related logic with particular file types.The exemplary collection of the action that starts when utilizing the data type recognizer to open the UI XML document is described hereinafter.
In opening the piece 1306 of handling routine 1300, the data type recognizer has received the request of opening the UI XML document to View Manager 908 transferring command with indication.Specifically, call View Manager 908 and will be used to play up the new user interface or the view object of application view to create.As mentioned above, can be by the semantic user interface of using of describing in UI XML document (for example, " MyTasks_gui.xml ").In this, many view object can be related with each application example.Therefore, in the calling of View Manager 908, can the identifier of suitable example be provided and describe the UI XML document of new view by the data type recognizer.
In addition as shown in figure 13, in piece 1308, start the execution of the logic of the semantic description that new application view is provided.As mentioned above, View Manager 908 is responsible for the instantiation view object and is carried out the task of can play up the application view of describing in the UI XML document that makes.In order to play up new application view, utilize view object instantiation combination and dialog object.As hereinafter being described below in greater detail with reference to Figure 23, these objects realizations provided by the invention make in the function of playing up the graphic element of describing by semanteme on the graphoscope in the UI XML document.Then, open processing routine 1300 and proceed to piece 1310, in piece 1310 its end.
Referring now to Figure 14 A-14B, when being described in detail in opening procedure and UI XML document more to the utilization of data type identifier.Figure 14 A shows and carry out mutual process object 1400, opening operation processor 1402, data type recognizer 1404, instance objects 1406, View Manager 908 and view object 1408 when opening the UI XML document.Therefore, the block diagram shown in Figure 14 A can be corresponding to by handle the object that routine 1300 is utilized in the opening operation of describing above with reference to Figure 13.Can start opening of application view by process object 1400, process object 1400 calls opening operation processor 1402 and opens the particular document of being discerned by the XBind that tries to achieve.When receiving when calling, opening operation processor 1402 utilizes data type recognizer 1404 identification file types and makes carries out suitably action.In this embodiment, when the UI XML document when opening operation processor 1402 is passed to data type recognizer 1404, the action of execution of the view logic of application is convenient to open and is started in definition.In addition, utilize data type recognizer 1404 to carry out related with suitable instance objects 1406 view object 1408 that obtains.
In the example shown in Figure 14 A, when receiving when being used to open the calling of UI XML document, data type recognizer 1404 calls View Manager 908.In order to open and carry out the logic in the UIXML document, View Manager 908 instantiation view object 1408 and to its XBind that identifier of instance objects 1406 is provided and quotes suitable UI XML document.By Data transmission by this way, the become example of the association of knowing it of view object 1408.In case instantiation view image 1408 is utilized and the above-mentioned similar function of procedure initialization routine 1100 (Figure 11), starts the execution of the logic of the semantic description that new application view is provided.Specifically, View Manager 908 can be loaded into suitable UI XML in the client-side buffer.Then, view object 1408 can and be used to play up the user interface components and the dialog box of application by instantiation.Yet different with process, a plurality of view object can and be carried out related with same instance by instantiation.
In practical embodiments, the inertia of the UI logic that each side support of the present invention is used loads and/or plays up.For this reason, the XLinks that realizes according to the standard by the World Wide Web Consortium definition can be used for carrying out the inertia loading of one or more UI XML document and/or playing up.Those skilled in the art etc. will recognize that XLink can be included in the XML document of describing the link between the different XML resources.With when linking the Web page in provide traditional hyperlink of meaning different to the user based on HTML, XLinks is easier to by software systems and computer interpretation.It should be noted that XLinks can comprise that definition will activate the condition of XLink and the logic of the action taked when activating.As a result, XLinks be suitable for carrying out use the UI logic as required and/or inertia play up.Be not the UI logic that loads all application when using when starting, thereby definable XLinks is linked to suitable XML resource on demand.For example, in above-mentioned exemplary MyTasks uses, after loading and playing up the user interface logic of all application, " hiding " Button2 assembly 704.Utilize XLinks to load when needed and/or play up the UI logic of Button2 assembly 704, can realize the function and the improved performance that are equal to.In this example, the user interface logic related with the Button2 assembly 704 in the MyTasks_gui.xml document 650 can comprise the XLink of the Local or Remote resource (for example, another UI XML document) of quoting definition relevant user interface logic.When being stipulated by applied logic, this XLinks can be used for loading and/or play up the UI logic corresponding with Button2 assembly 704.
In case opening operation processor 1402 is finished, the view object 1408 of acquisition is returned to data type recognizer 1404.Then, data type recognizer 1404 carries out related with suitable example view object 1408.Specifically, when creating new application view, data type recognizer 1404 is passed to instance objects 1406 with the view object 1408 that obtains.In response, mini View Manager 1412 is updated, thereby carries out related with corresponding instance view object 1408.Compare with the title of distributing to same object by mini View Manager 1412, in View Manager 908, distribute to the complicated more title of view object 1408.Specifically, the title of distributing to view object 1408 in the View Manager 908 comprises the identifier of corresponding instance objects 1406.As hereinafter describing in further detail,, can between a plurality of application examples, distinguish identical view by the system that realizes by this way object being named.By the transmission of control data by this way, the localization that each side of the present invention has realized defining the border of application example concerns level.
Referring now to Figure 14 B, when being described in detail in the opening procedure XML document more to the utilization of data type identifier 1404.Similar to Figure 14 A, Figure 14 B shows process object 1400, data type recognizer 1404, instance objects 1406 and Process Manager 906.Therefore, the block diagram shown in Figure 14 B can be corresponding to the object that is utilized by procedure initialization routine 1100 (Figure 11).When the opening procedure XML document, in the environment of using bag or isolation application, utilize data type recognizer 1404 to discern the file type of document.In this example, the action of opening and start execution of the logic described is convenient in data type recognizer 1404 definition in the process XML document.Specifically, carry out flow process and proceed to the Process Manager 906 that process object 1400 is carried out instantiation from data type recognizer 1404.In case opened the process XML document, can be returned to data type recognizer 1404 to the quoting of process object 1400 that obtains.Then, data type recognizer 1404 provides quoting the process object 1400 that obtains to instance objects 1406.In response, mini Process Manager 1414 is updated, and carries out related with corresponding instance process object 1400 thus.
With reference to Figure 15 A-15B, description is provided about utilizing mini View Manager so that the motion action of the example that process is carried out.In case carried out the opening operation 612 during MyTasks uses, carried out flow process and proceed to motion action 614 (Fig. 6 A).In this, describe action with reference to Figure 15 A-15B and handle routine 1500, Figure 15 A-15B shows logic and realizes mutual between the related object of routine 1500.
Shown in Figure 15 A, at piece 1502, the expression formula of representing in the value attribute of motion action 614 is tried to achieve is XBind.In exemplary MyTasks used, motion action 614 comprised value attribute " #MyTasks ", and this value attribute " #MyTasks " is tried to achieve at piece 1502 is XBind.Now specifically with reference to Figure 15 B, instance objects 1552 can be utilized the functions that are encapsulated in the expression formula engine 1550 that " #MyTasks " expression formula is tried to achieve to be XBind.In this example, expression formula engine 1550 is constructed to carry out inquiry at the view object of called after " MyTasks " in mini View Manager 1554.When creating new application view, the view object of acquisition is passed to corresponding instance, and this corresponding instance correspondingly upgrades mini View Manager 1554.In this, the MyTasks view object is assigned with the direct title in the mini View Manager 1554 that is kept by example, but not is used for the complicated more identifier of the view in the global view manager 908.Because complicated title is used to distinguish the view that belongs to different instances and application, so do not need more complicated title in this example.Because mini View Manager 1554 keeps its view, so this information is the things that example and mini View Manager 1554 thereof have been known.By this framework is provided, under the help of mini View Manager 1554, expression formula engine 1550 can and the view of different instances and association between distinguish.Therefore, in exemplary MyTasks uses, mini View Manager 1554 will comprise that name is called the view object of " MyTasks ".View object also comprises quoting the associated example of this view object.To " #MyTasks " evaluation of expression the time, expression formula engine 1550 is identified as MyTasks view object 1558 source or " transmitter " of operation.Specifically, the MyTasks view object 1558 related with instance objects 1552 be identified as transmitter but not with " MyTasks " view object that different instances is related.Since expression formula engine 1550 about example to evaluation of expression, so utilize the correct MyTasks view object 1558 of mini View Manager 1554 identifications as event source.
In this example, the XBind that turns back to process object 1556 will comprise the URL that quotes MyTasks_gui.xml document 650 and MyTasks view object 1558.Indicator will be included in that to be used to indicate MyTasks view object 1558 in the XBind be the transmitter or the source of the operation just carried out.Inquiry in mini View Manager 1554 does not have under the situation of identification and the coupling of the object quoted in expression formula, and expression formula engine 1550 is constructed to inquire about the view object to obtain to be correlated with in View Manager 908.
In the piece 1504 of routine 1500, process object 1556 starts the execution of motion action processor 1560.In exemplary MyTasks uses, utilize XBind that expression formula engine 1550 before tried to achieve and emission MyTasks view object 1558 to be passed to motion action processor 1560 by process object 1556.Then, at piece 1506, motion action processor 1560 makes carries out appointed method in the application process logic.In this example, motion action 614 definition in MyTasks uses are used to discern following "<component〉" XML element of the method for the action that will carry out and target:
<component?name=″button2″action=″hide″value=″″></component>
By defining this element, the application code guiding is hidden the assembly that name is called " button2 ".In one aspect, be used for the associated user interface assembly executing state of view object is handled the commonsense method of (include but not limited to enable, forbid, hide and display packing etc.), view object is encoded.Because MyTasks view object 1558 is passed to motion action processor 1560, so can directly call these commonsense methods on object 1558.In this example, the motion action processor calls " hiding " method and Button2 assembly 1562 is identified as the target element that will hide on MyTasks view object 1558.Then, action is handled routine 1500 and is proceeded to piece 1508, in piece 1508 its end.
Referring now to Figure 16 in detail, the realization of bindings processor will be described more.In case carried out opening and motion action 612-614 during MyTasks uses, carried out flow process and proceed to bindings 616 (Fig. 6 A).As shown in figure 16, at piece 1602, the expression formula of representing in the value attribute of bindings 616 is tried to achieve to XBind and is returned to suitable process object.Similar to description provided above, the evaluation of expression of expression formula engine to providing of example this locality is provided the process object.In exemplary bindings 616, at piece 1602, " data/tasks.xml " expression formula will be tried to achieve is following XBind:
URL=data/tasks.xml
Base?path=/
Selection=
The URL of this XBind quotes and is used for the data file that store tasks is described.In addition, the sky that is chosen as of the root node of the data file corresponding with URL and this exemplary XBind is quoted in basic path.
Handle the piece 1604 of routine 1600 in binding, the process object that is used to carry out the active procedure step starts the execution of bindings processor.In this calls, XBind that the reception of bindings processor had before been tried to achieve and suitable process and instance objects.As mentioned above, the developer can be according to the process operation API and the XML semantic structure that can be positioned at the main body of operation, creation operation processor of defined function call parameters.In this example, below bindings 616 (Fig. 6 A) defines "<component〉" XML element 618:
<component?view=″MyTasks″name=″input3″select=″/tasks/task/@description″>
Therefore, bindings processor (calling at piece 1604) is responsible for this logic is made an explanation specific components is tied to the fragment in the XML document.Say that more generally each Operation Processor is responsible for the logic that defines is made an explanation in the daughter element of operation element.In this, thus process operation API makes the XML grammer in the main body that the developer can defining operation can be configured in the logic of carrying out in the Operation Processor as required.
At piece 1605, the view object corresponding with the assembly that will be tied to basic XML document is identified and is returned to the bindings processor.In this example, the assembly element explained by the bindings processor 618 is identified as " Input3 " in the environment that is created in " MyTasks " view object.Because suitable instance objects is provided for the bindings processor, so can be easy to discern correct view object.Specifically, carry out the inquiry in the mini View Manager 1554 of example, and " MyTasks " view object is directly turned back to the bindings processor.
As shown in figure 16, at piece 1606, in the bindings processor, create the XBind of translation.Be passed to the document (" data/tasks.xml ") of the XBind identification storage of bindings processor by the content of MyTasks applications exploiting.Yet only a subclass of the data in Shi Bie the XML document will be bound to the Input3 assembly.Therefore, the binding of being carried out by bindings 616 in this example is constructed to the binding of Input3 assembly is reduced to the fragment of the data in " data/tasks.xml " document of being discerned by the XPath expression formula.Specifically, the selection attribute in the assembly element 618 comprises the XPath expression formula, and this XPath expression formula limits the interior expression formula of value attribute of bindings 616.In this example, the XBind that XPath expression formula identification is used for entering is limited to the bindings processor and creates suitable fragment in the XML document of the XBind that translates below:
URL=data/tasks.xml
Base?path=/tasks/task/@description
Selection=
The XBind of above-mentioned translation can be written as " data/tasks.xml#/tasks/task/@description " with shorthand notation.In this, the XML document in the data model of the URL reference stores inter-related task of the XBind of translation description.In the XML document by URL identification, task element and corresponding description attribute thereof are quoted in basic path.As hereinafter describing " Selection " of the supplementary features the when fragment that provides in the reference data model can also be provided XBind in further detail.
In the piece 1608 of routine 1600 is handled in binding, call by what suitable user interface components provided data function is set.In this example, the Input3 assembly is the object of bindings 616 and the tabulation that will be bound to task description.Assembly API can be used for defining some method that is used for specific components is provided with data.In one embodiment, the Input3 assembly can be included in the data method that is provided with that calls in the piece 1608.It should be noted that when calling the bindings processor, can discern suitable assembly based on view object with to the quoting of the component Name that receives at piece 1604.
When being called, data method being set carrying out management function and fault processing usually and also not be tied to the XML document in the data model to guarantee assembly.Then, at piece 1612, be used as the Input3 assembly of the object of bindings 616 and upgrade audiomonitor and add " data/tasks.xml " document to.As mentioned above, the invention provides the structuring object-oriented representation of the XML document of document object form.In one embodiment, document object is as the wrapper of DOM (" the DOM Document Object Model ") object that is utilized by Web browser and XML resolver.In this, coding strengthens feature in document object provided by the invention, and these strengthen feature and comprise the ability of the interior any object of network operating system environment as the audiomonitor of the renewal that the data model is carried out that be present in of adding., can be that the object of Data Update audiomonitor includes but not limited to process, view, assembly, communication port etc. only as example.At piece 1612, carry out and call so that the Input3 assembly is added to and the corresponding object of " data/tasks.xml " document as upgrading audiomonitor.In this, each document object keep will be in response to Data Update the tabulation of notified audiomonitor.Upgrade audiomonitor by sending at piece 1612 to call to add, the Input3 assembly will become one of potential many Data Update audiomonitors on the same document object.
At decision block 1614, determine as upgrading whether service regeulations of assembly that audiomonitor adds document to.In one aspect, the present invention supports the function of feasible rule and data binding component liaison.In this, rule processor can be included in the data model, is used for definitions component and other object and will how explains their data binding.As describing in further detail hereinafter, rule makes common component explain, learn and take suitable action according to the content in the data model.Therefore, have any XML semanteme of different elements, attribute and level or the common component that language was appreciated that and/or was bound to same type.In other words, need not create the assembly of service regeulations particularly at certain data model.Instead, rule makes the common component group to use with the basic data of any kind, and the True Data of therefore being convenient in the MVC Design Mode is abstract.Assembly does not need to understand the basic data structure of models and can utilize rule to come explanatory content to realize desired function.When the binding of setting up with the assembly of service regeulations, thus realize being used to being provided with and/or the update rule processor make can application rule function.Adding assembly, can comprise whether sign is regular user with indication component as upgrading in the calling of audiomonitor.Therefore, if the sign indication component that receives is not regular user, then the result of the test of carrying out at piece 1614 is a "No", and binding handles routine 1600 and proceed to piece 1618, and this will be described below in greater detail hereinafter.On the contrary, if the sign indication component that receives is regular user, then Ce Shi result is that "Yes" and binding processing routine proceed to piece 1616.At piece 1616, to carry out rule routines 1600 is set, its rule with the data binding assembly applies and is incorporated into the rule processor that keeps in data model.In this, describe in detail more by the logic that rule routines is carried out is set with reference to Figure 21 hereinafter.
Handle in the piece 1618 of routine 1600 in binding, produce and call with the user interface of renewal as the assembly of the object of bindings.Can be used for carrying out the renewal of user interface according to the method for assembly API definition.Specifically, assembly API makes the developer be provided for realizing the logic of " Update () " method of assembly.In this, describe the logic that can in " Update () " method, realize more in detail with reference to Figure 22 hereinafter.In this example, the task description that will cause keeping in data model with " Update () " method of Input3 component liaison is shown.Then, binding is handled routine 1600 and is proceeded to piece 1620, in piece 1620 its end.In case bindings 616 is finished execution, influence the renewal of data model (" data/tasks.xml ") to new data bundled components notice.
In exemplary MyTasks used (Fig. 6 A), bindings 616 was last operation in the initialization application process step of carrying out 604.When carrying out bindings 616, it is idle that the processing that MyTasks uses keeps, up to trigger event takes place.In this, describe trigger with reference to Figure 17 hereinafter and activate routine 1700.Yet, before the use that trigger is discussed, will describe the explanation of the function that realizes by expression formula engine provided by the invention more in detail.
In existing platform, be provided for the identical programming tool of the computational logic of data query and definition application to the developer.In this, the logical expressions in the most all application of compulsory programming language in nature are the sequence of orderly statement.Although force the orderly character of programming tool to be very suitable for realizing computational logic, the data query ability of imperative language is not too healthy and strong.Instead, optional Programming with Pascal Language instrument will be suitable for inquiry or visit data otherwise more.For this reason, provide expression language so that the developer can utilize optional programming tool when carrying out I/O.In this, expression formula is constructed to the XML syntactic compatibility and is demarcated be used in the programming language based on XML provided by the invention.Provide process XML language how can easily use the specific example of expression formula here.Yet, since expression formula can be merged be used in other XML language and directly the program code in the object carry out evaluation and use, so should to be interpreted as be exemplary to these examples.
Realization is constructed to carry out the development platform of the application that meets the MVC Design Mode, and the data that can develop when moving about visit have proposed challenge.In one embodiment, XBind is provided for the standardization means of object, document, data subset etc. in the reference stores device.As mentioned above, XBind is the three-dimensional data type, comprises URL, basic path (for example, can quote the interior fragment of XML document or the XPath expression formula of whole XML document) and selects (for example, a plurality of XPath expression formulas).Can know from example hereinafter described and to find out, the standardized method that the XBind data type provides the object that can develop when operation to transmit their state.Like this, XBind allows the different piece of loosely-coupled system can transmit their status information with standardized method efficiently.In this, XBind provides the simple directly method to the user interface components binding data.Select by utilizing, can describe the state of assembly in XBind, this state can be used as input and offers other system.More generally, can be at any time at the XBind of the state of description object, each object in the requester network operating system environment.Therefore, the XBind of state that can description object (for example, assembly) be set to different objects is with " clone " or pass on the state of assembly.In one aspect of the method, can be on network synchronously and the XBind of object association.As a result, the object that can utilize XBind to be updated in to carry out on the remote computer is to keep synchronous state.This is each side of the present invention can realize live collaboration on network a kind of mode.
In one embodiment, can use the XPath evaluation by the expression formula engine.Those skilled in the art etc. will recognize, XPath provides World Wide Web Consortium (W3C) standard of the language of the data that are used to discern and be chosen in the specific location in the XML document.In addition, XPath sets up the agreement that is used to form the evaluation of expression of particular value.For example, XPath expression formula "/tasks/task/@description " is used in MyTasks uses, and it comprises the abbreviation grammer of " " symbol of the attribute that is used for selecting name to be called " description ".This grammer meets the XPath agreement and is used to quote the subclass of the data in the XML document that satisfies specific selection or matching parameter.
Expression language provided by the invention makes the developer can quote object in the meeting storer that the experience state changes when operation.For example, " #MyTasks " quotes different views and component object respectively with " #MyTask#input3 " expression formula.Utilize simple symbol, the developer can be in to these storeies distinguishes between the quoting of object and their data binding.For example, if developer visit be tied to " Input3 " assembly data but not to object self quote, then can utilize " { #MyTasks#input3} " expression formula.This particular expression formula will be tried to achieve the value of finding in the XML document of quoting in the XBind related with the Input3 in the MyTasks view.When running into the expression formula that comprises braces, one or more XML nodes that the expression formula engine will be tied to the object of identification convert text or XML to.In this, view provided by the invention and component object are known their data binding and can be inquired about at their XBind.By about example to evaluation of expression, to the evaluation of expression of these types the time, the expression formula engine can be discerned suitable object and corresponding data binding.Therefore, expression language makes the developer can utilize object and their data binding in the identical simple symbol reference stores device.In addition, expression formula can be quoted the external resource by URL identification, and this URL utilizes communication port to obtain automatically.
Different with the existing system that utilizes XPath that the data in the document are navigated and to select, each side of the present invention can be utilized object and their associated data in the XPath agreement reference stores device.Supposing that an assembly that is called " Input1 " is present in the application view that is called " MyView ", will be the effective expression formula of being tried to achieve by the present invention below:
{#MyView#input1#@name}
In quoting XML document, variable or storer, behind the object, after about last " # " character in the expression formula of assembly XBind, use the XPath agreement.When running into relevant XPath expression formula, the basic path in the assembly or select will with the XPath that is provided that routine 1600 (Figure 16) describes be provided with reference to binding merge.In above-mentioned exemplary expression formula, last " # " indication XPath expression formula (for example, " ") is relative, thereby makes this XPath expression formula to merge with the XBind of assembly.Yet the XPath expression formula of evaluation of the present invention can also be absolute.To with "/" be beginning character represent absolute XPath evaluation of expression the time, each side of the present invention will be ignored any basic path or the selection of the XBind of assembly.Each side of the present invention is utilized the XPath agreement by other method outside the said method.Can be that the exercise question of submitting on September 28th, 2007 is the commonly assigned U.S. Provisional Patent Application No.60/976 of " Network-Based Operation System ", find the other example of the use that XPath arranges and the expression formula that can carry out other type of evaluation by the present invention in 339, clearly incorporate the content of this temporary patent application into this paper by reference.
In one embodiment, can utilize Properties of Objects in the expression language reference-to storage.Can be according to following grammer no matter these character of visit under the situation of the data type of these character:
#MyView.id
#MyView#input1.name
Can also utilize expression language to call the method for object in the storer being carried out action.In this, can encode to object in the storer provided by the invention by several different methods.Utilize expression language, can directly on these objects, call method.For example, be the type of expression of the method for on object, calling of evaluation of the present invention below.
#MyView#maximize()
#MyView#input1.clear()
In addition, by the present invention to accepting the senior evaluation of expression of other expression formula as argument.In other words, the expression language support meets the recurrence evaluation of the expression formula of optional programming technique, shown in following example:
#MyView#{#MyView#input1.getName()}
In this example, at first in the internal expression that uses getName () method, try to achieve the title of Input1 assembly.The expression formula of the recurrence evaluation of recognizer component title is provided as the parameter of outside expression formula then.This only is an example of carrying out the method for integrated and the optional programming tool of use with XML programming language provided by the invention in combination.
In the network operating system environment, can be in response to the generation implementation step and related operation of trigger event.In other words, the execution of process steps can be by event-driven.Therefore, when opening MyTasks.xml document 600, thereby to trigger 602 register make can flow guiding is suitable when the activated trigger process steps.Describe trigger with reference to Figure 17 A-17B and activate routine 1700, Figure 17 A-17B shows flow process between the object that is used to realize routine 1700 and mutual.As mentioned above, trigger 602 below 600 definition of MyTasks.xml document.
<trigger?view=″MyTasks″component=″button1″event=″select″step=″2″>
Trigger shown in Figure 17 activates routine 1700 and supposes that users have selected the Button1 assembly of discerning in this trigger element, thus at piece 1702 activated triggers 602.
At piece 1704, be activated in response to trigger, the component object that trigger event takes place transmits the notice audiomonitor to task manager 914 and calls.In this calls, suitable component object one group of event data is provided and has guided task manager 914 notification enrollment the notifying device object or with all event sniffers of other object of the Data Matching that provides.Specifically with reference to Figure 17 B, at piece 1704, the Button1 component object 1750 related with MyTasks view object 1752 will transmit the notice audiomonitors to task manager 914 and call.In this calls, provide identification to initiate the expression formula (for example, " #MyTasks#button1 ") and the event type (for example, " select ") of the assembly of trigger event.
At piece 1706, task manager 914 is to the activation of one or more eavesdropping target's Warning Events.Specifically, the inquiry that the event data transmitted from Button1 component object 1750 and the data that before provided during audiomonitor when enrollment time are mated is provided for task manager 914.In this, procedure initialization routine 1100 (Figure 11) provide object how in task manager 914 enrollment time audiomonitor description.In one embodiment, when initial startup is used, each trigger that runs in the process XML document will make corresponding notifying device object be buffered in the storer in advance as event sniffer.When estimating one or more application examples with activated trigger, when initial startup was used, the notifying device object was buffered in the storer in advance.The notifying device object of buffer memory is related with view name, component Name and event type in advance, and described view name, component Name and event type are jointly as unique key word of carrying out inquiry in piece 1706.In other words, only during the incident of the type of in trigger, discerning when the assembly in given view experience, just activate to corresponding notifying device object notification event.Like this, irrelevant with the number of the application example of carrying out, at the trigger that defines in the process XML document, only single notifying device object will be registered in the task manager 914.Even there are a plurality of examples of using, this framework also makes each application example can reuse identical notifying device object.Therefore, since only trigger according to the form registering events audiomonitor of the notifying device object of sharing by a plurality of application examples subsequently, so this framework makes task manager 914 can repeat and notify audiomonitor more efficiently.In other words, the performance of the inquiry of carrying out at piece 914 does not depend on the number of the application example of carrying out.
In trigger activates the piece 1708 of routine 1700, identification and the related suitable example of incident (trigger) that activates.When being warned the generation incident, argument is passed to task manager 914, is used to discern suitable eavesdropping target and affected example.In this example, the component view object of quoting that the expression formula of identification Button1 component object 1750 is provided for task manager 914 and can be used for keeping the example that belongs to by visiting is discerned suitable example.As mentioned above, when opening application view, quoting of example is provided for the view object of acquisition.Therefore, MyTasks view object 1754 is known the instance objects 1758 of its association.Owing to create component object in the environment of view, in piece 1708, Button1 component object 1750 can utilize the suitable example of MyTasks view object 1754 identifications.In case known suitable example, instance objects 1758 is provided for the manner of execution in the process object.
Framework shown in Figure 17 B and description provided above show the present invention and how can the stateless of supporting process step carry out in the system that the event-driven of supporting applied logic is carried out.As mentioned above, utilize single process XML document to carry out a plurality of application examples.In this, the different application example is the reuse process object repeatedly, carries out the efficient platform of using thereby provide.Even at the buffer memory notifying device object 1756 only in advance of each trigger in using, the present invention still can provide suitable example to process object 1700.In this, when task manager 914 receives when comprising the incident of unique keyword matching of view, assembly and event type, notifying device object 1756 is activated.In addition, assembly, view or the action listener object that provides can be provided task manager 914, and identification also provides suitable instance objects 1758 to notifying device object 1758.In trigger activates the piece 1712 of routine 1700, produce to carry out and use calling of interior process steps.As mentioned above, the process steps of carrying out is buffered in the notifying device object 1756 or by the action listener object knows.Therefore, in case suitable example is provided, notifying device object 1756 can call manner of execution (Figure 12) at piece 1712, thereby the interior process steps (for example, " 2 ") of process logic of instance objects 1758 of (1) current run time behaviour that expression is used and the application that (2) will carry out is provided.Then, trigger activates routine 1700 and proceeds to piece 1714, in piece 1714 its end.Other action listener object also can invoked procedure object step or is directly carried out it self custom code.
When the trigger in the activation MyTasks application, carry out flow process and proceed to decision operation 620.In general, when trigger 602 was activated, the logic in the decision operation 620 was carried out test to determine whether any text is input in the Input4 assembly.In this, with reference to Figure 18 the judgment processing routine 1800 that realizes decision operation 620 is described.As shown in figure 18, judgment processing routine 1800 is in piece 1802 beginnings, and in piece 1802, expression formula is passed to the expression formula engine to carry out evaluation.In this example, decision operation 620 is included in piece 1802 will be passed to the value attribute of expression formula engine with " #MyTasks#input4 " that carry out evaluation.As mentioned above, the developer can utilize object in the expression language reference stores device provided by the invention.Specifically, selected and be passed to the expression formula engine and quote with using with " #MyTask#input4 " expression formula of carrying out evaluation and carry out and component object that the experience state changes at piece 1802.
At decision block 1804, determine just whether quoted the assembly related with data binding by the expression formula of evaluation.In some instances, the definable data binding wherein, is propagated between assembly and data model automatically by assembly input and/or data presented.On the other hand, assembly can be " atom " or not related with existing data binding.When quoting the evaluation of expression of atom component, the expression formula engine is implemented in visit in the logic of Operation Processor from the data of assembly I/O or influence the function of other data of the state of assembly.By realizing this function, the expression formula engine makes always can utilize based on the expression formula of XML visits this data.
In order to determine at piece 1804 whether assembly is related with data binding, and the expression formula engine can utilize the example recognition name to be called the component object of " Input4 ".As mentioned above, component object provided by the invention is known their data binding.Therefore, in case discerned suitable component object, the expression formula engine can determine easily that assembly is atom or related with data binding.If the assembly that the result of the test of carrying out indication is quoted in expression formula is not related with data binding, then judgment processing routine 1800 proceeds to piece 1808, and this shall be described in more detail below.On the contrary, if the result of the test of carrying out at piece 1804 indicates expression formula to quote the assembly related with data binding, then judgment processing routine 1800 proceeds to piece 1806.
If arrive piece 1806, then the assembly of quoting in the expression formula that runs into is related with data binding.In this example, to evaluation of expression and factor is not created interim XBind according to not depositing of binding.More particularly, the expression formula engine at piece 1806 to " #MyTasks#input4 " evaluation of expression and from Input4 components request XBind.In this example, the XBind that is returned by the expression formula engine will provide to Operation Processor and carry out required anything.
In one embodiment, the developer can provide the XML semantic description with visit data or otherwise carry out I/O.Yet, expression formula can actual request only can be from script (for example, the data that object obtains in the storer of JavaScript) realizing.Therefore, even assembly is not related with binding, the present invention still makes expression formula can utilize the interior object of corresponding storer to operate and the data of visit and component liaison.That decision operation 620 in for example, MyTasks uses comprises is following "<when〉" XML element 622.
<when?test=″text()=″″step=″3″/>
<otherwise?step=″4″/>
When element 622 comprises XPath expression formula " text () ", and it is used the XPath evaluation and arranges to ask input text in the Input4 assembly.Because assembly is an atom, so utilize existing data binding can't obtain requested data.Instead, even the present invention does not still allow visit data to evaluation of expression and current the remaining on of requested data based on XML in the data model.Instead, create fragment in the state document that interim XBind provides with cited system at object (for example, assembly).As hereinafter describing in further detail, the state XML document that system provides can comprise all status informations of associated component.
In the piece 1808 of judgment processing routine 1800, object obtains requested data in the storer related with atom component.The logic that realizes in Operation Processor can be utilized the data of the state that comprises atom component.For example, if arrive the piece 1808 of judgment processing routine 1800, then the Input4 assembly is not related with data binding atom component.Therefore, the request of the XPath expression formula " text () " in the main body of decision operation 620 comprises the data of the state of the assembly that is not tied to the known document in the data model.For to the correct evaluation of such expression formula, should obtain requested data from data model.In this, owing to the XBind that asks in expression formula does not exist, so the expression formula engine can be to Input4 assembly query-relevant data.
In one embodiment, when in just by the expression formula of evaluation, quoting atom component, the state XML document of utilizing the current state update system of assembly to provide.As hereinafter describing in further detail, can create interim XBind then, the suitable fragment that obtains requested data in the state XML document that its pointing system provides.Alternatively, can utilize the function that is encapsulated in the state supervisor, constantly the state of each assembly in the state XML document broadcasting system that system provides (no matter assembly is atom or related with data binding).In this example, as described below, can obtain requested data and can utilize the XBind of translation to visit these requested data from data model.It should be noted that this embodiment is convenient to the state synchronization of using on a plurality of client computers.In addition, from trend data mould spread state information, be closed and open subsequently, then can easily recover the state of using if use by by this way.
At piece 1810, produce the interim XBind be used to visit the data that obtain from atom component and it is turned back to suitable process object.When application comprises the operation that utilizes atom component, can be directly from component object directly obtain data and state document that its system of being stored in is provided in.Produce the XBind that temporarily is used for the translation of this evaluation of expression, to quote the position that obtains requested data in the state document.To " #MyTask#input4 " evaluation of expression the time, the expression formula engine can produce and following similar XBind:
URL=#State
Base?path=/states/state[@qid=′#MyTasks#input4′]
Select=
The URL of this XBind quotes the state XML document that the system that is allocated for the memory module status information provides.In addition, at piece 1808, the storage in the basic path point state document is input to the node of the text of Input4 assembly.In case by evaluation, interim XBind turns back to suitable process object from the expression formula engine.By storaging state information by this way and produce interim XBind, each side of the present invention can be utilized based on the expression formula of XML the developer to come references component and their data, and no matter whether assembly related with data binding.More generally say, the visit XML document all operations processor can also with do not work and it quoted with the related atomic object of data binding.As mentioned shown in the example, in the expression formula quoting of object (for example, assembly) tried to achieve and be XBind.As a result, each side of the present invention can be bound assembly each other.When the such binding of definition, second assembly is the XBind of " clone " first assembly effectively.In other words, provide synchronous XBind from first assembly to second assembly.When the target of binding is atom component, still can between assembly, carry out data binding.In this example, the XBind of the state document that second assembly will provide with the system of the state of quoting description first assembly carries out related.Because first assembly is an atom, so this will effectively create two master slave relations between the assembly.
In addition as shown in figure 18, call the decision operation processor to carry out the evaluation of definition in decision operation 606 at piece 1812.In this, transmit parameter to the decision operation processor in calling, if operation relates to atom component, then described parameter can comprise interim XBind.In one embodiment, the developer can come creation operation according to the operation A PI of defined function call parameters and the XML semantic structure that can be present in the main body of operation.In decision operation 620, definition is used for guiding based on the result to the XPath evaluation of expression element of the flow process of program execution.In this example, in the decision operation processor, carry out string relatively to determine whether text is input in the Input4 assembly.Therefore, in the decision operation processor, XPath expression formula (for example, " text () ") is tried to achieve is text.Ought be just by the expression formula of evaluation from the example of atom component reference data, for the interim XBind that particular expression formula evaluation is translated is used to obtain requested data.Specifically, quoting the addressable state document that provides from the system of the previous status data that extracts of Input4 assembly can be provided the XBind that is passed to the decision operation processor.
Then, at piece 1814, the calling of the suitable process steps in produce to carry out using.The result of the evaluation of carrying out in the decision operation processor determines whether execution flow guiding process steps 608 or 610.When calling the decision operation processor, receive XBind and process and instance objects.The argument of these receptions makes the decision operation processor can easily start the next suitably execution of process steps based on the result of evaluation.In this, the argument of reception can be made amendment or directly transmission by the decision operation processor.Then, judgment processing routine 1800 proceeds to piece 1816, in piece 1816 its end.
As mentioned above, when trigger event 602 took place, if do not have input text in the Input4 assembly, then decision operation 620 made that carrying out flow process proceeds to process steps 610.Only the operation in the process steps 610 is the motion action 628 that makes that button assembly is shown.In this, can utilize with reference to Figure 15 A-15B in above-described motion action processor execution motion action 628.Therefore, will can not describe the additional description of the function that when program circuit guiding process steps 610, realizes in here more in detail.
When having imported text in the Input4 assembly when trigger event 602 takes place, the execution that MyTasks uses proceeds to process steps 608.The operation of definition is to change operation 624 in process steps 608, changes operation 624 and makes the text that is input to assembly add XML document to.In this, describe the exemplary change that utilizes the change Operation Processor to realize Data Update with reference to Figure 19 and handle routine 1900.
As shown in figure 19, change processing routine 1900 in piece 1902 beginnings, at piece 1902 executable expressions evaluations.Specifically, at piece 1902, " data/tasks.xml " expression formula in the value attribute of change operation 624 is tried to achieve is XBind.In this example, will comprise the basic path and the URL of the root node of quoting " data/tasks.xml " document from the XBind of evaluation acquisition.
Shown in describing as mentioned, at each operation in using, the expression formula in the value attribute of operation is tried to achieve is XBind.In one embodiment, can be to the evaluation of expression in the main body of operation in the logic that realizes by Operation Processor.Alternatively, can be to the evaluation of expression in the main body of operation before calling the proper handling processor.Although two embodiment are supported, in the logic of Operation Processor, be preferred to the evaluation of expression in the main body of operation, this is because it is more efficient.In this, change operation 624 and comprise following "<store〉" XML element 626:
<store?type=″append″select=″tasks/task/@description″value=
″{#MyTasks#input4}″
At piece 1904, " { #MyTasks#input4} " in storage (store) element 626, expression formula was tried to achieve is text.As mentioned above, expression formula engine provided by the invention makes the developer can utilize the braces symbol that the expression formula that is used for evaluation is demarcated.Can be in attribute, between the element and these expression formulas of other location definition in the application code.In this example, the logic in the expression formula engine makes " { #MyTasks#input4} " expression formula is tried to achieve and is text.
Usually, the change operation that realizes of the present invention is provided for the content of XML document is carried out the raw data manipulate tools revised of being necessary to the developer.In this, provide in fact a plurality of data manipulation primitive (primitive) with the DOM conformance to standard of World Wide Web Consortium.In addition, each side of the present invention provides and comprises the additional data manipulation primitive of replacing text (replaceText) and the sub-primitive of deletion.Therefore, can utilize change provided by the invention operation to carry out following illustrative primitive to revise the content of XML document: replace, replace text, back additional, preceding additional, insert, remove, remove child, newly-built and deletion.Those skilled in the art etc. will recognize, can utilize and will make up so that the data model is carried out all necessary modifications these primitive that provides.As hereinafter describing in further detail, any change operation that influences data model will make creates the affairs of describing the definite renewal that will carry out in task manager 910.
In changing the piece 1906 of handling routine 1900, change Operation Processor by suitable process object reference.When arriving piece 1906, carrying out the process object of active procedure can be with the XBind that had before tried to achieve and suitably example and process object are passed to the change Operation Processor.As hereinafter describing in further detail, the argument that changes Operation Processor utilization reception is revised the content of XML document.
In changing the decision block 1908 of handling routine 1900, determine whether the change operation of just carrying out has defined data conversion.The identification of the value attribute of definition is as the document (for example, " data/tasks.xml ") of the object that changes operation in changing operation 624.In storage element 626, (for example, tasks/task/@description), this XPath expression formula is quoted the interior position that will carry out data modification of XML document of appointment to select attribute can comprise the XPath expression formula.In addition, select attribute can comprise to will by after add, replace or be included in content in the XML document and carry out the expression formula of evaluation (for example, " { #MyTasks#input4} ").In one embodiment, each side of the present invention make it possible to add, replace after with data or join data model before in changing operation, data are carried out conversion.For example, storage element 626 can comprise the conversion attribute of quoting the XSLT (Extensible Stylesheet Language (XSL) conversion) that is used to carry out the particular data conversion.When having defined such data conversion, the result of the test of carrying out at piece 1908 proceeds to piece 1910 for "Yes" and routine 1900.Yet the change operation 624 during exemplary MyTasks uses does not comprise the conversion attribute.In this example, the result of the test of carrying out at piece 1908 will be a "No", and routine 1900 will proceed to piece 1912, and this will describe in detail hereinafter more.
At piece 1910, based on the logic application data conversion of definition in changing operation.In practical embodiments, the storage element that changes in the operation can comprise the conversion attribute of quoting the XSLT document.At piece 1910, the logic in the XSLT document can be applied to data are transformed into the purpose form from source format.Traditionally, XSLT has been used for transform data to support the dynamic creation and the modification of the Web page.In addition, XSLT also is used for carrying out conversion between the counter structure as the part of electronic data interchange (EDI) integrating server of the commercial form language of XML and they.Yet these examples only are exemplary, and XSLT is used for other example.In addition, it is restrictive can using the use of other mapping language and XSLT should not be interpreted as in conjunction with the present invention.Under any circumstance, those skilled in the art etc. will recognize, XSLT is based on the language of XML, is used to define between the various SGMLs (XML, HTML, XHTML etc.) and XML pattern and the XML document of the different XML patterns of realization or the conversion between the DTD (DTD (Document Type Definition)).In this, at piece 1910, change Operation Processor and can utilize xslt processor to apply data conversion.By supporting the dynamic application of conversion by this way, a kind of enhancing development platform is provided, wherein, be equipped with to use better with swap data, mutual and integrated/as to reuse function.
The computer user will take a plurality of application usually, such as Email, Web browser, calendar application, word processor, media player etc.Yet, utilize existing system, data layout and the logic utilized by different application are seldom compatible.For example, e-mail program allows user definition to be used to store and visit " contact person " with another user-dependent information.On the other hand, calendar application allows the user to create and follows the tracks of meeting and the appointment that relates to other user, group etc.In response to the message of consulting the contact person who defines in the comfortable e-mail program, the user may think to create automatically new meeting in calendar application.Yet, utilize existing system to be not easy to carry out and make different application carry out mutual support function by this way.
Before carrying out the raw data manipulation that changes operation, the data conversion of using in piece 1910 takes place.By supporting the dynamic application of such data conversion, each side of the present invention provides utilization to use the function of acquisition and the more good opportunity of data from other to the application developer.In example provided above, can carry out being easy to make Email and calendar application to carry out mutual data conversion.For example, the definable XSLT conversion Email and/or the contact person that are used for receiving converts the data item of describing new appointment to.In this, conversion can utilize the content of associated person information, email message and/or set up the attribute of meeting from user's input.In changing operation, can use such XSLT conversion, even make and utilize different basic schemas and XML structure, different application still can communicate.
In change handling the piece 1912 of routine 1900, suitable URL object is used to carry out the calling of particular data renewal of expression in changing operation.As hereinafter describing in further detail, URL object provided by the invention is revised each the light weight pointer of method among the primitive (above-mentioned) as exposing to be used to carry out by changing data of different types that Operation Processor supports.Therefore, change Operation Processor utilization XBind that receives and the logics that change in the operation 626, discern suitable URL object to call.Should appropriately understand, the utilization that only realizes the URL object is to cover with the mutual details of document and can easily realize the present invention by alternate manner.In case carried out the calling of URL object, carried out flow process and proceed to the Data Update routine of describing with reference to Figure 20 hereinafter 2000.Then, change processing routine 1900 and proceed to piece 1914, in piece 1914 its end.
Referring now to Figure 20 A-20C, data of description is upgraded mutual between the object that routine 2000 and routine 2000 use.Data Update routine 2000 shown in Figure 20 shows two examples in the piece 2002 of carrying out Data Update or piece 2004 beginnings.Working as Data Update routine 2000 in the embodiment of piece 2002 beginnings, the URL object is received in and carries out calling of Data Update in the environment that changes Operation Processor 1250.As mentioned above, application can comprise the change operation of the content that is used to revise XML document.Therefore, change handling routine 1900 (Figure 19) can be created in the URL object 1253 to appointment that piece 2002 receives and carry out calling of Data Update.
When routine 2000 during, the URL object 1253 of appointment is carried out calling of Data Update be derived from user interface components in piece 2004 beginning.When having defined binding, assembly becomes and knows URL and the XML document related with binding.For example, when carrying out bindings 616, the Input3 assembly during MyTasks uses will receive the URL object corresponding with " data/tasks.xml " document.As hereinafter describing in detail more and, can adopting and utilize the Web browser of HTML DOM to play up user interface according to an embodiment.In this embodiment, the component object of creating in the environment of respective view object is registered on the HTML DOM that is utilized by Web browser the variety of event audiomonitor.Assembly for example can be monitored as the user and input is provided or otherwise carry out the incident that influences HTML DOM that takes place when mutual with the user interface that is shown by Web browser.Specifically with reference to Figure 20 B, the data of 1252 pairs of receptions of assembly make an explanation and produce the calling to realize data update event of URL object 1253 to it.For example, when deletion " renewal presents (Update Presentation) " task in exemplary MyTasks uses, create and call the URL object corresponding to delete task description from data model with " data/tasks.xml " document.As hereinafter describing in further detail, URL object 1253 is sent to Data Update task manager 910 then.Then, task manager 910 is transmitted to Data Update the basic XML document object that makes that in fact Data Update is achieved.Except realizing Data Update, document object 1254 will make Data Update be transmitted to all suitable monitored data upgating objects.These eavesdropping targets usually are assemblies, but also can be the objects of other type.Between the remote computer that monitoring XML document object changes, can share XML document.Yet, before Data Update is transmitted to any remote monitoring device, realize remaining on the Data Update of the local document object 1254 in the client-side buffer.In other words, after Data Update is realized in this locality, carry out whole network and upgrade.
At the piece 2006 of Data Update routine 2000, the URL object 1253 corresponding with the document object that will upgrade 1254 makes and produces new affairs.In this, at piece 2006, call task manager 910 to create new " affairs " or the XML fragment of the relative variation of representing XML document.In one embodiment, task manager 910 comprise be used to realize and the XML fragment of replying relative variation in information.In addition, change the Operation Processor or the environment of assembly no matter Data Update comes from, the XBind that is serialized into XML is included in the affairs that piece 2006 is created.As hereinafter describing in further detail, task manager 910 makes Data Update not only realize but also be transmitted to any remote monitoring device in this locality.In either case, provide XBind, be used for the position that will carry out Data Update in the recognition data model and comprise the data manipulation that is used to the request of replying operating the XML formatted data of the logic of (being referred to as execution " rollback " here).
At piece 2008, task manager 910 makes Data Update carry out in this locality.Affairs can be represented the session that is made of a plurality of and potential dissimilar modification to the data model.Therefore, in the data notification incident, create one or more update event objects with the unit of expression description to the modification of data model.On the other hand, affairs are described one or more changes that the data model is carried out and the logic that is used to reply these variations comprehensively.In addition, except sending the data notification incident, document object is provided for being modified in the method for the actual content of the basic XML document of expression in the update event object.Specifically, in the corresponding method that provides by URL object 1253, task manager 910 and document object 1254, each data manipulation primitive that realization can be carried out XML document (replace, additional, preceding additional, the insertion in back etc.).
In addition as shown in figure 20, at piece 2012, task manager 910 calling communication managers 1256 are propagated affairs to any remote monitoring device.In this, contact manager 1256 makes application can instantiation pair carry out abstract passage with communicating by letter of telecommunication network service.Based on the XBind that receives, contact manager 1256 is used for identification to send the suitable communication port (if any) of affairs on network.As hereinafter describing in further detail, communication port is operated under the different agreement by the URL standard definition.For example, can in the agreement of identification in the URL of for example " http: // ", " xios: // " or " database: // ", discern suitable communication port.The logic that utilization obtains according to communicator API, the data that receive from task manager 910 are translated into the form that the telecommunication network service is understood.In this, the system and method that utilizes communication port to carry out network service will be described hereinafter more in detail.It should be noted that to be independent of and on network, to send corresponding affairs, and carry out the logic that is used to notify and upgrade the local data audiomonitor before this.In one embodiment, the present invention is constructed to asynchronous propagation affairs on network.As a result, intrinsic network sluggishness or other delay of network service can not hinder the execution of applied logic in this locality.Then, in case affairs offer suitable passage, Data Update routine 2000 proceeds to piece 2014, in piece 2014 its end.
Referring now to Figure 20 C, description is suitable for illustrating the example network environment how affairs are propagated between remote client.As mentioned above, task manager 910 feasible affairs or the data slots that are illustrated in the relative variation of the local document of storing are transmitted to any remote monitoring device.In the example shown in Figure 20 C, be sent to the XML file system 2084 that remains on server end data center continuously by client computer 2080 and 2082 affairs of initiating.Specifically, client computer 2080 and 2082 each propagate affairs 2086-2088 and 2090-2092 to the active document of sharing 2093.Any Data Update of carrying out in this locality in client-side buffer 2098 to document object 2094 or 2096 is identified and is transmitted to XML file system 2084, so that client computer 2080 and 2082 can the Real-Time Sharing data.
Referring now to Figure 21, will describe about how application rule is to provide the additional description of the assembly of intelligence more.When being bound to data, in data model, using with any rule of component liaison and to it and distribute the unique name space.In general, rule makes common component can make an explanation, learn and take suitable action according to the content in the data model.In other words, need not create the assembly of service regeulations at particular data model.In this, above-mentioned binding processing routine 1600 (Figure 16) can be determined specific components utilization rule.In this example, can call with reference to what Figure 21 described and rule routines 2100 is set with application and the merging rule related with the data binding of New Parent.In one embodiment, unique XML name space of assembly rule is integrated with in the data model and is easy to and obtained by the assembly that is bound to data model.In an alternative embodiment, can remote storage and the rule of component liaison and can conducting interviews to it via Web service or additional XML document.
As shown in figure 21, rule routines 2100 is set,, has determined whether to define the rule processor of suitable document at decision block 2104 in piece 2102 beginnings.In this, rule processor allows about the rule of identical data execution with different component liaisons.Each rule that is tied to XML document uses the rule of correspondence processor of assembly in remaining on data model that logic (for example, " rule ") is provided.Therefore, if utilize the assembly of rule before to be bound to relevant documentation, then rule of correspondence processor will exist, and routine 2100 proceeds to piece 2108, and this will describe in detail hereinafter more.In this, if a plurality of rule uses assembly to be bound to identical document, then the same rule processor is used for all these assemblies.On the contrary, if rule uses assembly before not to be tied to relevant documentation, then routine 2100 proceeds to piece 2106.In addition as shown in figure 21, at piece 2106, create the rule that new rule processor is used to keep be tied to each assembly of same basic data.
As mentioned above, provide by the one group common component of modern times based on the type of the application use of figure.By definition rule, common component provided by the invention does not need to understand anything about the basic data model.In this, Fig. 8 A shows tree assembly 800, and tree assembly 800 shows the level of the file in the file system and comprises Folder Name, icon etc. with visual means.Definable is provided for utilizing the content that remains in the data model to set up the rule of the logic of common tree assembly.For example, each side of the present invention can be in the folders.xml document content of description document system, in the folders.xml document, the different files of each element representation in the document.Can be according to the data related of identifier, icon etc. for example of the Attribute Recognition in the file element with particular file folder.As just example, the rule below the definable explains that content in the folders.xml document is to show in the tree assembly 800 shown in Fig. 8 A.
<tree?name=″folder?tree″>
<rule?match=″folder″display=″@id″/>
<rule?match=″folder[@id=′email′]″display=″@id″icon=
″icons/mailicon.png″/>
</tree>
In this, coupling (match) attribute for " folder " and show that (display) attribute be “ @id " the feasible content of first rale element with " id " attribute in the folders.xml document be shown as Folder Name.The title of the file in the tree assembly 800 that therefore, can utilize rule to define to distribute to shown in Fig. 8 A.Match attribute is " folder[@id=' email '] " second rale element make to folder allocation with the email message related special icon of name attribute, shown in Fig. 8 A for " email ".Should understand appropriately that the rule that provides above only is exemplary and only comprises the subclass of the logic that is actually used in the content that makes up tree assembly 800.Under the situation of the structure of revising the folder.xml document, the rule of assembly is easy to upgrade with explanation and changes.In addition, according to the mode identical, use the assembly notice to change to rule with other Data Update.Specifically, can utilize the notice audiomonitor routine 2200 of the data update event notice bus of describing in detail more hereinafter, establishment event update object is also used it for to the variation of assembly notice.
Referring again to Figure 21, use the rule of the assembly that is tied to data model at piece 2108.In case created rule processor, its rule offered suitable rule processor as the assembly of the object of bindings.In this, rule processor is as the expansion of data model and the rule of the different pieces of information bundled components that management is tied to identical document.In one embodiment, can distribute name space in data model, it separates the vocabulary of the Different Rule of using assembly or object.By utilizing name space to distribute and the Management Unit rule, rule processor can be carried out all component rule according to the mode that prevents appearance conflict in data model.
When piece 2108 is used new regulation, call rule processor and make the rule of carrying out each assembly that is tied to relevant documentation.In other words, about the current version execution of data model and the rule of potential a plurality of data binding component liaisons.Then, in case carried out all rules, just know the name space that distributes by rule processor of its correspondence as the assembly of the object of bindings.Specifically, the name space of rule processor in the component passes related with new data binding is used to discern the data model of the rule of distributing to assembly quotes.
At the piece 2110 that rule routines 2100 is set, merged by rule with other assembly with rule as the component liaison of the object of bindings.The developer can utilize the semantic logic of the rule of the language definition assembly based on XML provided by the invention.By way of example, rule can comprise that XPath expression formula, UI XML logic quote, describe the element of other assembly, variable, another name and other of the outer data of the container in rule name space quoted.In this, the data binding of different assemblies is because the application and the logic rules of their association can have the relation of can passing.Therefore, the rule of the different assemblies of working on the same basic data also remains in the data model.In case make assembly know its name space, produce and call assembly is provided with new data.In this case, be used for to assembly be provided with calling of new data make with name space that the rule that is associated with other assembly is separated in the semantic logic of the rule of assembly is included in the data model.
At piece 2112, generation is called with the Data Update that will reflect in data model and is transmitted to any Data Update audiomonitor.As mentioned above, document object keeps the tabulation of the audiomonitor notify in response to Data Update.When taking place when data model adds new regulation, will upgrade to corresponding audiomonitor notification data at piece 2010.In this, describe the logic that is used for to the audiomonitor update notifications more in detail with reference to Figure 22 hereinafter.Then, rule routines 2100 is set proceeds to piece 2114, in piece 2114 its end.
In above example, the definition binding is so that assembly shows the content that remains in the data model automatically.By utilizing binding by this way, the developer needn't be provided in application code the user interface components setting and the logic of new data more.Yet, above example be highly simplify and only reflect an illustrative aspects of the present invention.In this, binding and their corresponding XBind can realize complicated more function.
In one embodiment, the invention provides the standardized way that object was described, stores and transmitted their current state.By way of example, Fig. 8 A shows and makes the user to navigate and from the tree assembly 800 of file system select File folder.Can describe user's selection in XBind, this provides the standardized variable form in the network operating system environment.In the example shown in Fig. 8 A, the user carries out a series of selection to navigate to the file of title for " video_encoding ".State about the tree assembly 800 of the selection of this particular file folder is described in the XBind that can be below:
URL:folders.xml
XPath:/
Selection:/folders/research/work/video_encoding/
The example that more than provides be simplify and only be used for illustrative purposes.In practical embodiments, the XBind that describes the state of tree assembly 800 is actually:
URL:folders.xml
XPath:/
Selection:/fs:folder/fs:folder[@name=' research ']/fs:folder[@name=' work ']/fs:folder[@name=' videoencoding] all XBind described here can be used for reference data, and no matter data storage where.Therefore, if basic data remains on the network site, then can select more than the description in the XBind below:
URL:http://www.networkdomain.com.folders.xml
Base?path:/
Selection:/folders/research/work/video_encoding/
Under any circumstance, other object will usually utilize the user is selected to be described as being used to carry out action or otherwise realizing the XBind on the basis of application function.Shown in Fig. 8 B, list element 850 shows can be based on the file system data of user's selection of carrying out from tree assembly 800.For example, list element 850 can be constructed to the file display document (for example, " whitepaper.txt ", " testresults.xml " and " blog.html ") based on selection in tree assembly 800.The XBind that describes described selection is output to the data model of being shared by tree assembly 800.Then, this XBind can be provided as the input of other eavesdropping target (for example, list element 850).Therefore, offering the input of an object (being list element 850) interweaves with the output that before is saved in data model from different objects (promptly setting assembly 800).The realization of XBind provides this common variables form that interweaves of realizing I/O, and wherein depends on the value of previous I/O from the value of data model access.In this, realize the XML virtual machine object the internal calculation logical and they with the mutual uncoupling of other object and system.In one aspect, XBind is provided for interactive modeling and realizes the standardized variable form of this uncoupling.XBind provided by the invention does not cover the value of requested data.Instead, XBind quotes the position that can obtain data, thereby makes different objects and system can utilize identical basic data to carry out work.In addition, can also carry out conversion, merging and serialization to be used for system to XBind based on XML.Shown in describing here, XBind is as the carrier of the Obj State information of the selection aspect that utilizes XBind.It should be noted that because XBind quotes the position that can obtain Obj State information, thus under any one situation that not have warning or the information quoted of change or object transferring status data.
When the user navigated in file system, tree assembly 800 can utilize all dimensions (dimension) of XBind to describe and select.For example, if the user will select to set " whitepaper.txt " and " testresults.xml " these two documents in the assembly 800, then can in the XBind below this selection be described.
URL:folders.xml
Base?path:/folders/research/work/video_encoding/
Selection:/folders/research/work/video_encoding/document[@name=′testresults.xml′]
/folders/research/work/video_encoding//document[@name=′whitepaper.txt′]
Once more, above example is used for the illustration purpose and does not represent practical embodiments of the present invention.The URL of this XBind quotes the basic XML document of description document system, and basic path is limited to the binding of " video_encoding " file.In addition, the selection of this XBind comprises the array of the XPath expression formula of each document that the identification user selects.Similar to the above description that provides, this XBind can be used as the basis that other object is carried out action.By way of example, the user can produce the incident of the document of deletion selection.The above XBind that describes the selection mode of tree assembly 800 will offer the system that realizes file delete as input.
As mentioned above, can be in response to the variation of data model notification component and other object.Each side of the present invention makes assembly can be registered as audiomonitor at the Data Update that particular document is carried out.When Data Update takes place, to the notified Data Update of each audiomonitor of document object registration and can therefore upgrade their user interface.Referring now to Figure 22, will the notice audiomonitor routine of upgrading to the listening components propagation data 2200 be described.Although with reference to listening components object factory notice audiomonitor routine 2200, because other object can be the Data Update audiomonitor, so this only is exemplary.
As shown in figure 22, notice audiomonitor routine 2200 at piece 2202, is carried out Data Update to XML document in piece 2202 beginnings.As shown in the example above, can under different situations, carry out Data Update to the data model.When carrying out when mutual with the data binding assembly, the user can produce the input that is saved in data model by assembly automatically.On the other hand, the result as carrying out the applied logic of definition in changing operation can carry out Data Update.In addition, when utilizing the data model of sharing and binding, realize that the object of XML virtual machine is carried out Data Update as communication interface.For example, the semantic description of the rule of assembly can be saved in data model, and this makes different assemblies can explain the same basic data.
At decision block 2204, determine whether it is to having the document execution Data Update of corresponding rule processor.If owing to rule is used assembly before to be tied to the document not have the definition rule processor, then the result of the test of carrying out at piece 2204 is that "No" and notice audiomonitor routine 2200 proceed to piece 2208, and this will describe in detail hereinafter more.On the contrary, if relevant documentation has corresponding rule processor, then notify audiomonitor routine 2200 to proceed to piece 2206.
At piece 2206, call and the rule processor that experiences the document associations of Data Update.By calling this rule processor, realize that logic is to guarantee that the rule name space by each data binding component understand is current and the integrality of retention data model.In this, the Data Update of carrying out at piece 2002 can relate to and adds logic or logic is made amendment in rule processor.For example, when having defined new data when binding, rule routines 2100 (Figure 21) is set makes the rule of the New Parent related be incorporated in the data model with the rule of other assembly with data binding.In notice audiomonitor routine 2200, notify Data Update to rule processor to any listening components that is tied to the same basic document.
Above-mentioned being provided with in the rule routines 2100 (Figure 21), rule processor makes carries out the strictly all rules that reflects in the current version of data model.Then, to the assembly related with new data binding provide with data model in the rule of correspondence of the assembly current namespace information of being correlated with.Yet, can influence the binding that Else Rule uses assembly owing to add new regulation, so also offering these rules, update notification uses assembly.Therefore, when when piece 2206 is called, rule processor makes carries out the strictly all rules that reflects in the current version of data model.As a result, rule processor can offer current namespace information and up-to-date rule any listening components as regular user.Then, assembly is provided with this new data, makes it possible to the Data Update of reflection new regulation in the data binding of listening components thus.
In case rule processor is finished, call " Update () " method related with listening components at piece 2208.Because according to one group of assembly API definitions component, so the logic of carrying out in " Update () " method is configurable.In other words, each assembly will can not be realized the identity logic in its " Update () " method.Instead, the developer can adopt this logic and create the effectively New Parent of the ability of expansion XML virtual machine.Therefore, hereinafter describe and hereinafter describe the logic that only representative can realize with reference to providing in " Update () " method by assembly provided by the invention.
At decision block 2210, determine whether to have carried out the primary data renewal at piece 2202.In one embodiment, upgrade by task manager 910 directs data.Can create one or more event update objects that expression is used to realize the atomic unit of Data Update, and next provide described event update object in the calling of " Update () " method (receiving) of listening components at piece 2208.In one embodiment, if receiving the event update object in the calling of " Update () " method, then Data Update is not initial renewal, and notice audiomonitor routine 2200 proceeds to piece 2214, and this will carry out more detailed description hereinafter.If do not receiving the event update object in the calling of " Update () " method, then routine 2200 is determined just carrying out primary data and is upgraded and proceed to piece 2212.
At piece 2212, utilize the complete representation of the basic data that is tied to assembly, play up the user interface of assembly with visual means.If arrive piece 2212, then just carrying out primary data and upgrading, and should in the user interface of assembly, reflect all data that are provided with on the assembly.In this, describe in detail more with reference to Figure 23 hereinafter and make the routine of in the user interface of assembly, playing up the XML formatted data.Yet, should suitably understand how to carry out to play up and depend on the developer rather than stipulate by assembly API.As hereinafter describing in further detail, can utilize various technology (to include but not limited to XSLT, JavaScript, HTML, VML/SVG or Adobe TMFlash) play up.
As mentioned above, when calling " Update () " method of listening components, can provide one or more event update objects.As shown in figure 22, the event update object of the reception of the atomic unit of selection expression data of description renewal is to be used for the processing of piece 2212.In one embodiment, realize that logic is so that be reflected in the Data Update of representing in one or more upgating objects in the user interface of listening components.
At decision block 2214, determine whether the event update object of selecting represents to influence the Data Update of listening components.As mentioned above, the assembly or the operation of initiation Data Update provide XBind, the position that influenced by Data Update in this XBind reference data model.Description is included in the event update object that is transmitted to each listening components this variable of the change that the data model is carried out.In this, XBind also is used for the binding of data of description to the user interface of listening components.In one embodiment, the XBind of the data binding of description listening components can compare with the XBind that the data of description that provides is upgraded.(for example, whether the user interface that XBind) makes listening components can carry out comparison and definite assembly is subjected to the influence of Data Update to utilize the public variable form.If this result relatively indicates listening components not to be subjected to the influence of Data Update, then notify audiomonitor routine 2200 to proceed to piece 2222, this will describe in detail hereinafter more.On the contrary, if the data binding of the user interface of listening components is subjected to the influence of Data Update, then notify audiomonitor routine 2200 to proceed to piece 2216.
In one aspect, support of the present invention is to the local updating of the visual display of the user interface of assembly.At decision block 2216, determine whether listening components can carry out local updating.In this, if the logic of the local updating that provides support in " Update () " method of listening components then notifies audiomonitor routine 2200 to proceed to piece 2220, this will describe in detail hereinafter more.On the contrary, if listening components is not supported local updating, then notify audiomonitor routine 2200 to proceed to piece 2218, at piece 2218, " Update () " method is played up the user interface of assembly based on all data of reflection in the module data binding.In this, be described in detail in the routine of rendered formats XML on the user interface of assembly hereinafter more with reference to Figure 23.
In the piece 2220 of notice audiomonitor routine 2200, carry out local updating to the user interface of assembly.When supporting local updating, only utilize the data that are subjected in the module data binding that Data Update influences to carry out local updating.At piece 2220, the XBind that provides is provided, can discern these data and assembly is provided with this data." Update () " method of assembly makes based on the local updating of reflection in the module data binding now, plays up the user interface of assembly.
At decision block 2222, determine whether any additional renewal of reflection in the user interface of assembly.Therefore, if before be not chosen in the middle any event object that receives of calling of " Update () " method, then routine 2200 turns back to piece 2212, and piece 2212-2220 carries out repetition up to selecting and handled each event update object.Then, change in case reflected the institute that represents in Data Update in the user interface of assembly, routine 2200 proceeds to piece 2224, in piece 2224 its end.
With reference to as described in Fig. 4 A-4B, can in the environment of Web browser, on client computers, realize network operating system, as in the past as isolation application or machine operation system.In this, play up routine 2300, play up routine 2300 and carry out processing from assembly and the dialog box played up with graphics mode and initialization is used with reference to Figure 23 description.Although specifically with reference to the particular Web browser technology, should suitably understand hereinafter, can under the situation of not utilizing Web browser, realize the present invention.In addition, in an alternative embodiment, can differently realize playing up routine 2300 to solve the distinctive variation of browser.Therefore, the description that provides with reference to Figure 23 hereinafter only is exemplary and can differently carries out on various platforms.
As shown in figure 23, play up routine 2300 in piece 2302 beginning, at piece 2302, instantiation and call view object to play up new application view.As mentioned above, can make can the new view object of instantiation when opening the UI XML document for data type recognizer provided by the invention.Then, at piece 2304, view object produces the request that obtains new dialog object.In general, dialog box is as the frame of the assembly of using and comprise and be used for the control that the visual representation to the view used minimizes, expands and handles.In one embodiment, provide dialog box manager, it is configured to reclaim dialog object, reduces the amount of ram that consumes thus.Therefore, if the previous dialog object of creating does not re-use but still remains in the storer, then existing dialog object will be reallocated to new application view.
At the piece 2306 of playing up routine 2300, view object is registered on the corresponding view.xml document as audiomonitor.Similar to user interface components, view object can be registered as the audiomonitor at the Data Update that the data model of describing view is carried out.As hereinafter describing in further detail, when coming from the allocate event of Web browser, the view object view.xml document that is registered as audiomonitor will be updated therein.Usually, when providing input or user otherwise to carry out when mutual with system, incident will be that the user produces.
At the piece 2308 of playing up routine 2300, the description based on XML of the user interface of application is transformed and converts to the expression based on HTML.As mentioned above, the present invention makes the developer can utilize UI XML programming language to describe the visual representation of the view of using by semanteme.In this, UI XML programming language does not need the developer that any calculating or script logic are provided.The abstractdesription of graphic element and relation thereof instead, only is provided in the UI XML document of using.In utilizing the example of Web browser, can define XSLT other tag format so that UI XML logical conversion is become HTML or is suitable for being played up by Web browser.It should be noted that when when 2308 couples of UI XML of piece logic is carried out conversion, be included in the DOM of the HTML as a result document of playing up by Web browser with the unique identifier of the component liaison of using.In case when having carried out conversion, Web browser will be played up the graphic element related with the view of using.
At piece 2310, instantiation comprise assembly computational logic object and carry out related with corresponding view object it.In one embodiment, traversal is described the UIXML document of using user interface logic.Be chosen in each assembly of expression in the UI XML document and the component object of instantiation correspondence.In one embodiment, separating between the computational logic that the invention provides assembly and its diagrammatic representation.In other words, the UI XML of the visual representation of assembly describes and does not comprise any computational logic and can carry out conversion by variety of way and at different platform, and can not influence the behavior of assembly.In this, the computational logic of assembly is encoded at the component object of piece 2310 instantiations, wherein, can be with Script Programming language (for example, JavaScript, SilverLight or Adobe TMFlash) computational logic of expression assembly.Yet the developer does not use the behavior of script definitions component.Instead, the developer uses the expected behavior of UI XML language definition assembly.New if desired assembly, the developer can create new assembly according to assembly API.In this, each component object is realized some method based on the information that receives according to assembly API.These methods comprise " Initialize () " method and " Update () " method that is used for the user interface of assembly is carried out renewal that is used for assembly is provided with data.Can in assembly, realize many methods of not discussing here, for example, when closing application view, remove " Unload () " of assembly.Yet,, just can utilize any available technology of playing up to realize assembly as long as there is the basic skills that defines by assembly API.In other words, assembly does not need to utilize XSLT to play up their user interface to HTML, though this be here in the main embodiment that describes.In addition, can play up logic by the component description that uses traditional programmed logic.
At piece 2312, initialization is in the calculating behavior of the component object of piece 2310 instantiations.When the UI XML logic of the view used is carried out conversion, be included in the DOM of the HTML as a result document of playing up by Web browser with the identifier of one or more component liaisons.When the behavior of piece 2312 initialization component, use the view.xml document, suitably quote relevant in the view object identification HTML DOM with assembly.By explaining the view.xml document, the component object that view object is can instantiation corresponding with the HTML DOM of generation and each component object is connected to corresponding user interface.Like this, on the user interface of assembly, call the calculating behavior and the logic of assembly.In case assembly is related with its each user interface, the default setting and/or the value of assembly is set according to " Initialize () " method of utilizing assembly API to realize in each assembly.When all component of representing in the UIXML document of using has been initialised, plays up routine 2300 and proceed to piece 2314, in piece 2314 its end.
In general, make view object be convenient between based on the application of XML and HTML DOM, communicate by playing up function that routine 2300 carries out by the Web browser utilization.In response to the generation of incident in the Web browser, can notify affected assembly and view object, and after processing, with the extremely suitable event sniffer (for example, trigger in the process XML document or action listener object) of event propagation.As mentioned above, in case defined binding, when " Update () " method of invocation component correspondence, can change the diagrammatic representation of the assembly in the Web browser in the mode of update all or local updating.
It should be noted that assembly API only needs assembly to realize one group of basic computational logic.As a result, assembly can be easy to be constructed to use the technology of playing up outside the HTML and still know Data Update, and can be tied to data.In an alternative embodiment, can utilize Adobe
Figure GPA00001138467500811
Flash, Micorsoft
Figure GPA00001138467500812
SilverLight, Java
Figure GPA00001138467500813
Applet or any other that can call in the computational logic of the XML virtual machine of carrying out each client-side assembly computational logic are played up technology and are come initialization and play up assembly.In addition, when on dissimilar calculation elements, realizing when of the present invention, can carry out the above-mentioned routine 2300 of playing up by different modes.When not utilizing Web browser, can play up the user interface logic of application and need not carry out conversion between XML and the HTML at piece 2308.Instead, graphic primitive can be provided, these graphic primitives are suitable for being implemented and calling playing up the user interface of assembly in " Initialize () " and/or " Update () " method, and utilize traditional programming language (as C, C++, Java or Microsoft SilverLight) set up.
The XIOS overview of communicating by letter
XIOS applications exploiting model-view-controller (MVC) model of writing at network operating system.For this reason, XIOS uses main and data model (content of data source abstract) and carries out alternately.This level of abstraction between XIOS application and the data source allows XIOS application and the variation of carrying out in data source are isolated.In other words, the variation in the data source might not require the variation in the XIOS application.
Figure 24 shows in this framework XIOS and uses 2402 and how to carry out the overview of a mutual embodiment with various exemplary data sources.Under the MVC condition, XIOS uses 2402 main and data models and carries out alternately.In an embodiment of this framework, XIOS uses 2402 by carrying out alternately with the XML document of the data model of each data source of expression, carries out alternately with the data model of various data sources.In another embodiment, XIOS application 2402 is directly carried out with the programming objects that expose above-mentioned data model alternately.Hereinafter describe relating generally to XIOS and use 2402 and carry out mutual embodiment, but those skilled in the art will recognize that, can replace other embodiment of MVC pattern with XML document.
Handle and the communicating by letter of given data source by contact manager 2412, wherein, contact manager 2412 can be embedded in the system environments object 902 (Fig. 9) when moving.Contact manager 2412 management one group communication device example, each in this group communication device example realizes communicator API2410.Communicator API 2410 exposes the normal operations that can be applicable to any given data source.For example, communicator API 2410 makes XIOS application 2402 can load, revises, creates or delete document, and expression is connected to data source, modification is stored in the interior data of data source, creates new data in data source, inquires about or remove data etc. from data source.
Set up communicator API2410 based on the thought of only utilizing URL just can visit any data source.Realize that the communicator of communicator API 2410 can visit its data via URL, and return XIOS and use 2402 XML document that can handle as data model.Utilize this straightforward procedure, use the XIOS application 2402 of the XML document of returning not need to know document from which passage arrives or created the kind of its basic data source.Have the unified mode of use, manipulation and establishment data, simplified the realization of application and development and data abstraction scheme.XIOS uses 2402 and also can be easy to change over another data source and/or data source is carried out conversion from a data source.
The communicator that contact manager 2412 instantiations provide receives passage is created in the request of URL in response to use 2402 from XIOS thus.Provide the title of passage or type as the URL agreement, and the remainder of URL provide information to passage.Passage is then with the distinctive mode process information of passage.For example, web search passage for example can be accepted the URL of " websearch: //example+search+terms ".Agreement " websearch " can indicate contact manager 2412 to transmit URL to web search passage, and web search passage can utilize position " example+search+terms " to set up the search inquiry that will submit to the web search engine.As the example of another passage, when for example having transmitted the URL of " imap: //servername/user1/inbox/message1 ", can be in a similar manner via the message in the inbox of IMAP channel access IMAP file storage.
In some cases, simple URL can be passed to the function of the communicator API 2410 that is realized by the specific communications device, for example, and value-added tax function or hold function.Under other situation, action URL can be passed to communicator.Read/edit when the normal data that is provided by communicator API 2410 is provided needs/write/during the additional function of back beyond the additional operations, action URL can be used in the communicator.Action URL can provide the communicator functions peculiar, and these communicator functions peculiar are used basic data model, other resource or basic data model and other resource.An example can be to make communicator carry out the action URL of the complex process of basic data model, makes the programmer needn't carry out this processing thus in program code.Another example can provide functional based on data outside the basic data source or function.The form of action URL is similar to the form of any other URL that is passed to communicator API 2410: " channel_name: //function (param1; param2; ... param n) ", wherein, " channel_name " determines to handle the communicator of action URL, and " function " is used for that what determines to carry out by communicator and handles, " param1; param2 ... param n " be the tabulation that will be sent to function parameters.In one embodiment, XML document is returned in the request of action URL.
Figure 24 illustrates three examples of data model document, communicator and data source. , MSN LiveSearch etc. the communicator 2414 that communicates of web search service 2426.XIOS uses 2402 from document manager 912 request web search model documents 2404, this web search model document 2404 abstract with the communicating by letter of web search service 2426.Carry out when mutual with web search model document 2404 when XIOS uses 2402, document manager 912 utilizes communicator API2410 and web to search for communicator 2414 and communicates.Then, web search communicator 2414 will be translated into the form of being understood by the SOAP interface 2420 of the function that exposes web search service 2426 via the request that communicator API 2410 submits to.Therefore, when using 2402, XIOS for example during the URL of " websearch: //example+search+terms ", returns the XML document of for example web search model document 2404 of expression Search Results from document manager 912 requests.
Another example shown in Figure 24 is a SQL model document 2406.The same with web search model document 2404, XIOS uses 2402 and handles SQL model document 2406.The variation of this document makes document manager 912 call SQL communicator 2416 by communicator API 2410.SQL communicator 2416 will be translated into the form that SQL web service 2422 is understood from calling of communicator API 2410.SQL web service 2422 is the front ends that allow SQL API 2432 that SQL database 2428 is conducted interviews.
As another example shown in Figure 24, XIOS uses 2402 can ask for example document of IMAP model document 2408.When XIOS used 2402 manipulation IMAP model documents 2408, document manager 912 communicated with imap traffic device 2418 by communicator API 2410.Imap traffic device 2418 will be translated into the form that IMAP web service 2424 is understood from the request of communicator API 2410.IMAP web service 2424 is front ends of the standard I MAP interface 2434 on the imap server 2430.
Take for example each communicator example of web search communicator 2414, SQL communicator 2416 and imap traffic device 2418 in by the contact manager 2412 of client-side assembly 2400.Contact manager 2412 is responsible for comprising the request of URL and asking the required communicator of instantiation to form passage in response to each from document manager 912 receptions.For example, if contact manager 2412 receives with imap: the request of the URL of // beginning, then contact manager 2412 is passed to this imap traffic device 2418 with instantiation imap traffic device 2418 (if current do not have instantiation imap traffic device 2418) and with request.
As shown in figure 24, can visit each data source (web service 2426, SQL database 2428 and imap server 2430) by front end (for example, SOAP interface 2420, SQL web service 2422 and IMAP web service 2424) based on web.When client-side assembly 2400 only with can communicate the time via the data source of HTTP visit, client-side assembly 2400 obtains reusing the benefit of a large amount of existing communication functions (for example being included in the function in standard web browser, acting server, the fire wall etc.).Yet can also create does not need the communicator of HTTP enable data source as the rear end.For example, utilize suitable communicator, can remove IMAP web service 2424 or SQL web service 2422, and imap traffic device 2418 and SQL communicator 2416 then can be respectively directly and IMAP interface 2434 or SOL API 2432 communicate.
XIOS file system-server-side component
Figure 25 shows the overview of an embodiment of XML file system server end assembly 2500.As shown in figure 24, client-side assembly 2400 be included in realize in the XML-FS model document 2502, can use 2402 data models that obtain by XIOS by document manager 912.Carry out when mutual with XML-FS model document 2502 when XIOS uses 2402, document manager 912 communicates with the XIOS communicator 2504 of being taken in by contact manager 2412 by communicator API 2410.XIOS communicator 2504 communicates with server-side component 2500 then.Server-side component 2500 comprises client interface assembly 2506 and data storage component 2514.
Client interface assembly 2506 is the primary clusterings that communicate with XIOS communicator 2504.XML web service 2510 (together with its HTTP front ends 2508 based on web) and affairs coordinator 2522 are main modes that XIOS communicator 2504 and server-side component 2500 communicate.The function that XML web service 2510 exposes in the XML file system, for example, document creation, file recovery, file delete, file search etc.Affairs coordinator 2522 (will describe in detail more hereinafter) helps the variation of the file in the coordination data storage 2514 when the client computer current accessed same file that surpasses, and as buffer memory mechanism.Message server 2512 (will describe in detail more hereinafter equally) is used for the variation of the object subscribed to by XIOS communicator 2504 via XIOS communicator 2504 in client-side assembly 2400 notice XML file system 2500.
As shown in FIG., communicating by letter between XIOS communicator 2504 and the XML web service 2510 is two-way.In other words, XIOS communicator 2504 had not only been served 2510 transmission information but also had been served 2510 reception information from XML web to XML web.On the contrary, message server 2512 is mainly to XIOS communicator 2504 pushed information.
Data storage component 2514 comprises file server 2516, index server 2518 and file database 2520.In one embodiment, the XML file system is three discrete part store file data.Be included in raw data in the file as file storage on file server 2516.Filename, author, modification date, access control list (ACL) and be stored in the file database 2520 with other public documents information of each file association.File database 2520 is gone back the file level that storage file is organized therein, comprise the ACL of each file and for example relevant icon, file (are for example played up type, therefore the indication file comprises picture, and should utilize picture thumbnail to play up) appended document that waits presss from both sides metadata.Index server 2518 storage for example is used for by utilizing full-text search to come search metadata to discern attaching metadata with locating file.
Although each of these assemblies is described to a discrete assembly on the server in Figure 25, those skilled in the art will recognize that, can on discrete physical hardware, take one or more in these assemblies in.Alternatively, one or more in these assemblies can be separated into a plurality of assemblies, duplicate in server-side component 2500, perhaps in function combinations to an assembly with them.For example, can on same physical machine, all take XML web service 2510, message server 2512, affairs coordinator 2522, index server 2518, file server 2516 and file database 2520 in.As another example, file database 2520 can separate with remaining component, and based on the data storage of SQL, perhaps file server 2516 can be positioned on the special-purpose high power capacity document storage system as independently.In addition, the XML file system can only comprise a server-side component 2500 or can comprise a lot of.
In one embodiment, XIOS communicator 2504 can be always and same server end assembly 2500 communicate.Server-side component 2500 is included in utilization then by the information in the URL of XIOS communicator 2504 requests, determines that suitable XML web service 2510, message server 2512 etc. are to provide service to request.Can also transmit request to more suitable server-side component 2500 by the server-side component 2500 that XIOS communicator 2504 contacts.Like this, the client-side assembly 2400 and the complicacy of any load balance that is realized by server-side component 2500, redundancy or calibration framework are isolated.
Figure 26 shows the embodiment of some details of the content of message server 2512.Message server 2512 comprises the subscription list of each client computer of using the XML file system.For example, Figure 26 shows two client computer: client computer 1 2606 and client computer 2 2608.Client computer 1 2606 is related with client computer 1 subscription list 2602, and client computer 2 2608 is related with client computer 2 subscription lists 2604.
Each subscription list comprises when upgating object client computer and wishes the notified tabulation by server-side component 2500 objects stored.Client computer 1 subscription list 2602 indication client computer 1 2606 are wished the variation of notified foo.doc (file), bar.doc (also being file), the variation of user's 3 states, the variation of group 1 Folder List, and by other object and the change in information of server-side component 2500 storages.When by another client computer renewal, deletion, rename, open any or they among foo.doc and the bar.doc when being changed by certain alternate manner, will make more New Client 1 2606 of message server 2512 to the subscription of these files.When user 3 state changed, for example, user 3 reached the standard grade or off-line, and he is busy for user's 3 indications, user's 3 input idle conditions etc., will make client computer 1 2606 be updated about the clauses and subclauses of user 3 state.When upgrade, file that deletion belongs to group 1 or when these files are added projects or change these files by certain alternate manner, will make client computer 12606 be updated about the clauses and subclauses of organizing 1 Folder List.And the in a similar manner running similar of clauses and subclauses in client computer 2 subscription lists 2604 to the clauses and subclauses in client computer 1 subscription list 2602, but relative with client computer 1 2606, will make that client computer 2 2608 is updated.In one embodiment, send notice via long poll, but instead can use other suitable technique to the client computer pushed information by message server 2512.
When for example the client computer of client computer 1 2606 was initially connected to server-side component 2500, client computer 1 2606 can be added object to subscription list by 2504 requests of XIOS communicator.In one embodiment, XIOS communicator 2504 is added document to its inside subscription list, and in response, document manager 912 (perhaps another sub-component of client-side assembly 2400) sends request to XML web service 2510.XIOS communicator 2504 communicates with XML web service 2510, and Indication message server 2512 adds object to the subscription list of client computer 1 2606.Because client computer 1 2606 did not connect as yet before, so being client computer 1, message server 2512 creates new subscription list, for example, client computer 1 subscription list 2602.This tabulation will be discerned by key word 2610.Key word 2610 comprises and preferably is difficult to the unique identifier guessed.This key word 2610 is sent out back client computer 1 2606 via XML web service 2510 and XIOS communicator 2504 then, thereby makes client computer 1 2606 know key word 2610.In one embodiment, XML web service 2510 and message server 2512 are worked to produce key word 2610 simply together, and this key word 2610 is sent to client computer 1 2606 then.In this embodiment, client computer 1 2606 (serving 2510 relative with XML web) Indication message server 2512 adds object to the subscription list of client computer 1 2606.
As mentioned above, for example the client computer of client computer 1 2606 will be authenticated so that security to be provided by the XML file system when login.In one embodiment, this authentication does not repeat between message server 2512 and client computer 1 2606.Except previous authentication, the difficulty of the key word 2610 among this embodiment guesses that character should provide enough securities at the third party of eavesdropping client computer 1 subscription list 2602.Relative with the authentication techniques of resource-intensive more, utilize the client computer of 2610 pairs of message servers 2512 of key word to provide another advantage of security to be to reduce load on the message server 2512.
Figure 27 shows another aspect of an embodiment of the operation of message server 2512.In this width of cloth figure, three subscription lists below utilizing come describing message server 2512: client computer 1 subscription list 2602, client computer 2 subscription lists 2604 and client computer 3 subscription lists 2702.In the process of the operation that XML web serves, notice affairs coordinator 2522 when the object that is monitored changes.Affairs coordinator 2522 is notification message server 2512 then: notice should be sent to the All Clients of having subscribed to this object.
Those skilled in the art will recognize that, because message server 2512 comprises the clauses and subclauses that the subscription list of each client computer of using the XMLweb service and each subscription list comprise each object that related client computer monitoring, so be stored in the data volume on the message server 2512 and the number of the notice that must be sent by message server 2512 will rise very fast along with the number of the client computer that is connected to XML web service.A kind of mode that reduces the required workload of message server 2512 is by utilizing chain of messages 2704.Chain of messages 2704 is that each subscription list that will monitor given object carries out related chained list.For example, in Figure 27, chain of messages 2704 just each subscription list on the message server 2512 of eavesdropping target bar.doc links.By utilizing this chain of messages 2704, when when message server 2512 notice bar.doc change, message server 2512 is at first by notice client computer 1, then by notice client computer 2, by notice client computer 3, only need travel through the chained list of chain of messages 2704 then.This has removed message server 2512 and has determined that in a large amount of subscription lists which comprises the needs of quoting to bar.doc, has saved the processing time thus and has improved the efficient of message server 2512.Although in Figure 27, only show a chain of messages 2704 for simplification, should be understood that can exist with the XML file system in a chain of messages of current each object association that is just monitoring by client computer.
XIOS file system-file operation
As mentioned above, XML file system storage representation is stored in the information of the level of the intrasystem file in the file database 2520.XIOS uses 2402 and can carry out alternately with the file level by serving the 2510 folders.xml files of fetching by XIOS communicator 2504 from XML web.
Figure 28 A-28D shows an embodiment of the illustrative methods 2800 that is used to get the folders.xml file.From begin block 2802, method 2800 proceeds to piece 2804, and at piece 2804, XIOS uses 2402 establishments and submits to document manager 912 to the file request of folders.xml file and with this document request.In one embodiment, this request comprises folder identifier (" file ID "), this document folder not only unique identification file of identifier but also the information of the position of the storage folder information that server-side component 2500 can be used for indicating file database 2520 is provided.The folders.xml file can comprise the information of the file that belongs to related with file ID and press from both sides the interior related information of sub-folder with this document.As mentioned above, the folders.xml file can also comprise the attaching metadata related with each file.In one embodiment, use the form that URL is taked in 2402 requests of submitting to by XIOS.In another embodiment, XIOS uses 2402 can be simply from document manager 912 request folders.xml files, and document manager 912 will form the URL of expression request.
In one embodiment, document manager 912 may have the cached copies of folders.xml file, and in this case, document manager 912 will provide the cached copies of document simply to XIOS application 2402.Yet there is not the cached copies of the document of request in the remainder supposition of this paper in document manager 912.Method 2800 proceeds to piece 2806, and at piece 2806, document manager 912 obtains XIOS communicator 2504 and file request is passed to the value-added tax function of XIOS communicator 2504 from contact manager 2412.Method 2800 proceeds to piece 2808 then, and at piece 2808, XIOS communicator 2504 will be sent to the suitable XML web service 2510 of server-side component 2500 to the request of folders.xml file, and described request comprises file ID.Next, at piece 2810, server-side component authenticates the user, and routes requests to XML web service 2510.Method 2800 proceeds to piece 2812 then, and at piece 2812, XML web service 2510 determines to take in the file database of the folder tree related with file ID at least in part based on the content of file ID.Method 2800 proceeds to then and continues terminal (" terminal A1 ").
From terminal A1 (Figure 28 B), method 2800 proceeds to piece 2814, and at piece 2814, XML web service 2510 is inquired about suitable file database 2520 to fetch the information related with the file of asking.This information of fetching can comprise file access control list (ACL), and can comprise additional file metadata information.Next, method 2800 proceeds to and continues terminal (" terminal B "), proceeds to piece 2816 then, and at piece 2816, XML web service 2510 is added folder information to the folders.xml file.In one embodiment, the folder information of adding the folders.xml file to does not comprise file ACL.Instead, folders.xml hint request user at least read access each file in the folders.xml file.Can be in this embodiment via independently asking the more detailed information of acquisition about the ACL of file.The complexity of the size that is exemplified as the folders.xml file of some advantages of this technology and the processing carried out by server-side component 2500 remains minimum.
In this, the folders.xml file that is made up by XML web service 2510 comprises the information that only belongs to by the file of file ID identification.Also will return the information of the sub-folder that belongs to requested file to the folders.xml file to the request of given file.Because the folder information of a plurality of files (each in these files may have different association permission (therefore having different ACL)) will be returned to client computer in a folders.xml file, so importantly only be included in the given folders.xml file about the information with the file that mates ACL.Then, method 2800 proceeds to piece 2818, and at piece 2818, XML web serves 2510 inquiry files folders database 2520 to fetch the related information of direct sub-folder with the file of being discerned by file ID, comprises the file ID and the ACL of each sub-folder.Then, utilize the result of this inquiry, method 2800 proceeds to from the FOR circulation of piece 2820 beginnings and the continuation terminal (" terminal C ") of indicating the FOR round-robin to begin.From terminal C, method 2800 proceeds to piece 2822, and at piece 2822, XML web service 2510 compares the ACL of sub-folder and the ACL of requested file.Method 2800 proceeds to another then and continues terminal (" terminal A2 ").
From terminal A2 (Figure 28 C), method 2800 proceeds to decision block 2824, at piece 2824, carry out test with the ACL that determines sub-folder whether with the ACL coupling of requested file.If the result of the test of decision block 2824 is a "Yes", then method 2800 is returned terminal B, add current sub-folder to the folders.xml file at piece 2816, and any further sub-folder of 2800 pairs of current sub-folders of method carries out the recurrence processing.Otherwise, if the result of the test of decision block 2824 is "No", then method 2800 proceeds to piece 2826, at piece 2826, relative with any out of Memory about sub-folder, the XLINK that quotes sub-folder is added in XML web service 2510 to the folders.xml file.Method 2800 proceeds to decision block 2828 then, at piece 2828, carries out test to determine whether also there is any other sub-folder.
Utilize the new folders.xml file of the sub-folder that XLINK provides enough information to comprise with request to have different ACL to client computer, and can not expose the information that require independent License Check to client computer.This is important because as mentioned above, the folders.xml file comprise client computer at least read access be included in each file in the folders.xml implicit expression assert.If a sub-folder (for example has the ACL different with requested file, if this sub-folder is had by a different user, if this sub-folder is not shared on the same group etc. one), then asserting for this implicit expression of this sub-folder may be for untrue.Utilize XLINK to allow in the authenticity that still keeps this implicit expression to assert to provide minimal information about this sub-folder to client computer.
If the result in the test of decision block 2828 is a "Yes", then method 2800 proceeds to and continues terminal C, and next sub-folder is handled.Otherwise if are "No" in the result of the test of decision block 2828, then method 2800 proceeds to another and continues terminal (" terminal A3 ").
From terminal A3 (Figure 28 D), method 2800 proceeds to piece 2830, at piece 2830, XML web serves the copy of the complete folders.xml file of 2510 buffer memorys and (supposes and the file level is not changed between client requests with the following processing of request of accelerating the same file folder, in this case, the folders.xml file of buffer memory will be produced again).Next, at piece 2832, XML web service 2510 turns back to XIOS communicator 2504 with complete folders.xml file.Method 2800 proceeds to piece 2834 then, and at piece 2834, XIOS communicator 2504 provides folders.xml file to document manager 912.Next, at piece 2836, document manager 912 buffer memory folders.xml files, and use 2402 to XIOS folders.xml is provided file.Method 2800 proceeds to then finishes piece 2836 and end.
Figure 28 E shows an example by the folders.xml file 2840 of the embodiment generation of above-mentioned method 2800.For Figure 28 E, suppose the file level of the file level that 2500 storages of XML file system are for example described in the tree assembly 800 of Fig. 8 A, and the user has asked the folders.xml file to file " RESEARCH ".In addition, one group of row numbers 2842 has been described, so that discuss in Figure 28 E.
Shown in Figure 28 E, method 2800 has been created folders.xml file 2840 in response to request.The 1-4 of file 2840 is used to discern the XML version of document remainder and the header of pattern capable comprising.Method 2800 is created the clauses and subclauses (the 6th row) of requested file " RESEARCH ", and the sub-folder of enumerating requested file then has any other file of the ACL of coupling with interpolation.In this case, in Fig. 8 A and at the 7th, 8 and 12 file " PERSONAL ", " WORK " and " LETTERS " that go of file 2840, be found ACL respectively with coupling.This method also continues to add any sub-folder of these files of the ACL that has coupling equally.In this case, file " PERSONAL " and " LETTERS " do not have any sub-folder, but file " WORK " has two sub-folders of the ACL that has coupling, that is, and and at " BROWSERS " and " VIDEO ENCODING " of the 9th and 10 row discoveries.For each file, method 2800 is added limited metadata information to file 2840.Among the embodiment shown here, method 2800 interpolations comprise " name " (title) of each file, the metadata of " id " and " type " (type), but in other embodiments, can add more or less metadata.In addition, although for " id " element shown in simplifying is a round values, " id " value can comprise the aforesaid complicated more information that is used to indicate the file database 2520 of storage folder information.Alternatively, for example integer-valued plian value can be used for " id " element, and can carry out inquiry to determine the file database 2520 of storage folder information.
Method 2800 is also created the clauses and subclauses of file " EMAIL ", and file " EMAIL " does not have the ACL with the ACL of " RESEARCH " file coupling.The clauses and subclauses of " EMAIL " file shown in 13-19 is capable comprise the minimal information about this document folder, only show its " name " element.It also comprises XLINK, and the user can travel through this XLINK comprises the information of " EMIAL " file (and having and any sub-folder of the ACL of " EMAIL " file ACL coupling) with generation new folders.xml file.
In one embodiment, the folders.xml file comprises the information about the file level, but does not comprise the information about each file in the file.Figure 29 shows an embodiment of method 2900 who does not fetch the tabulation of the file in the given file when the folders.xml file during include file list information.From begin block 2902, method 2900 proceeds to piece 2904, and at piece 2904, XIOS uses 2402 and creates the listed files request and document manager 912 is submitted in the listed files request, and this document list request comprises the file ID of specified folder.As mentioned above, file ID comprises the information of indication storage about the file database 2520 of the information of the content of specified folder.The listed files request can also comprise other option, for example, and the filtrator of expectation file type, ordering preference, date range filtrator etc.Next, method 2900 proceeds to piece 2906, and at piece 2906, document manager 912 obtains XIOS communicator 2504 from contact manager 2412, and the listed files request is passed to XIOS communicator 2504.Next, at piece 2908, XIOS communicator 2504 sends inquiry to the suitable XML web service 2510 of server-side component 2500.Method 2900 proceeds to piece 2910 then, and at piece 2910,2500 couples of users of server-side component authenticate and route requests to XML web service 2510, the permission that XML web service 2510 is checked requested file 2910.In order to check permission to requested file, XML web service 2510 can inquiry file folder database 2520 fetching the ACL of given parent folder, and determine that this ACL is whether to the user grants access of authentication.
In case the user obtains authentication and permission is verified, method 2900 proceeds to piece 2912, and at piece 2912, XML web service 2510 is determined the index server 2518 corresponding with requested file ID and sent inquiry to index server 2518.As mentioned above, XML web service 2510 can utilize the information that is included in the file ID to determine corresponding index server 2518.Next, at piece 2914, index server 2518 search indexes to be obtaining the listed files of requested file, and handle the result about the ACL of each file in tabulating.In one embodiment, the index of index server 2518 is full-text indexs of fileinfo, and one of the index field of each file comprises the file ID of parent folder.By the result about the ACL of each file in tabulating is handled, guarantee that only the file of the user capture of authentication is added to Folder List.In one embodiment, saved this processing, and changed force users permission when the user attempts visiting one of these files in order to save the processing time.
Next, at piece 2916, the tabulation of the file that index server 2518 will be returned by index and (for example be formatted as suitable format from the limited file metadata that index obtains, ATOM, RSS or other suitable format) feed (feed), and it is returned to client-side assembly 2400.Limited file metadata can comprise the project of for example revising date, author, file type etc. at last.Method 2900 proceeds to end block 2918 then and finishes.
Because data are stored in the XML file system with cooperation mode and a plurality of client computer can be upgraded given parent folder or create same file, so the simple establishment of the file in the XML file system in certain embodiments can comprise the coordination between document creation client computer and the server-side component 2500.Figure 30 A-30C shows an embodiment who is used for creating the method 3000 of file in the XML file system.From begin block 3002, method 3000 proceeds to piece 3004, and at piece 3004, XIOS uses the file name and the purpose file of the new file of 2402 appointments, and the original file data content is carried out initialization.The original file data content is carried out initialization can create new empty file, perhaps existing content can be inserted in the original file data (for example when the user at first preserves the content that she has begun to create).Next, at piece 3006, XIOS uses 2402 to document manager 912 request to create of presenting a paper, and this document request to create comprises file name, purpose file ID and original file data content.In one embodiment, at least a portion of this request is formatted as URL.Method 3000 proceeds to piece 3008 then, and at piece 3008, document manager 912 obtains XIOS communicator 2504 from contact manager 2412, and the document creation request is passed to XIOS communicator 2504.Next, at piece 3010, XIOS communicator 2504 sends the request of creating new file to the XML of server-side component 2500 web service 2510.Method 3000 proceeds to piece 3012 then, and at piece 3012,2500 couples of users of server-side component authenticate and route requests to XML web service 2510.
Next, method 3000 proceeds to piece 3014 then, and at piece 3014, XML web service 2510 determines to take in the file database of purpose file, and checks that the user has the permission of creating file in the purpose file.As mentioned above, the file ID of purpose file comprises the information that makes XML web service 2510 determine to comprise the file database of the information related with the purpose file.Similarly, as described above, whether XML web service 2510 has authorized due authority to the user who authenticates by inquiry file folder database 2520 with ACL and definite this ACL that obtains the purpose file, can guarantee that the user has the permission of creating file.Method 3000 proceeds to then and continues terminal (" terminal A1 ").
From terminal A1 (Figure 30 B), method 3000 proceeds to piece 3016, and at piece 3016, XML web service 2510 checks whether the purpose file of appointment is special folder.In one embodiment, in the XML file system, there is two types file: storage folder and special folder.Because storage folder is mainly used in storage file and other file, so storage folder is more as the file in the traditional file systems.Relative with it, the XML file system utilizes special folder to come the communication of abstract another kind of form.This makes XIOS use 2402 can carry out mutual same way as according to the interior file of it and storage, carries out alternately with communicating by letter of this another form, thereby has simplified application and development.For example, special folder can be designated as the Email special folder, and creates new file will make and send an Email in the Email special folder.In one embodiment, there are two special folder: Incoming special folder or " inbox ", and out special folder or " outbox " for each user.In other embodiments, there is more or less special folder.
Method 3000 proceeds to decision block 3018, and whether at decision block 3018, carrying out test is special folder with the purpose file of determining appointment.If the result of the test of decision block 3018 is "Yes", then method 3000 proceeds to piece 3019, and at piece 3019, request is sent to the server process related with special folder further to handle.About method shown in Figure 36 3600 and appended literal, the example of the embodiment of this processing is discussed hereinafter.Method 3000 proceeds to then and continues terminal (" terminal B ").
Although Figure 30 B showed when create new file in special folder before for example method of method 3600 taking place, is not must be this situation.In one embodiment, can change the test that (for example in terminal B (Figure 30 C) back) execution is carried out at decision block 3018 after creating file into.In such an embodiment, with directly relative, monitor that the server process of special folder will be operated the file of creating in special folder to operating from the request of client computer.Can be by the content of special folder is carried out poll to the establishment of server process circular document.Alternatively, subscription list by the procedure correlation on establishment and the message server, add special folder to subscription list, and for example receive notice from message server thus about the establishment of file at the piece 3030 of method 3000, can be to the establishment of server process circular document.
If the result of the test of decision block 3018 is "No", then method 3000 proceeds to piece 3020, at piece 3020, file server 2516 is the original file data allocation space of new file in the memory location related with file server, and initial original file data is stored in this memory location.Next, at piece 3022, file database 2520 is new document creation clauses and subclauses in the file database, and these clauses and subclauses comprise the limited metadata with file association, comprise filename, date created, unique file ID, memory location etc.In one embodiment, file can have related with file ID document flow more than one.In this case, file server 2516 is the separate space of each flow distribution in the memory location, and the metadata that is stored in the file database 2520 is carried out related with all memory locations file ID.The XML file system is passed through the available metadata of file to client computer exposure all streams with file association.
Method 3000 proceeds to piece 3024 then, and at piece 3024, file database 2520 carries out related with the purpose file of appointment new file.Parent folder and related the making when searching for the file that is included in the file of newly creating between the file, XML web service 2510 can utilize file ID inquiry file folder database 2520 and index server 2518 with the discovery file.Method 3000 proceeds to another then and continues terminal (" terminal A2 ").
From terminal A2 (Figure 30 C), method 3000 proceeds to piece 3026, and at piece 3026, XML web service 2510 metadata with new file are sent to index server 2518.This metadata can be the same metadata by the file database storing, and it is copied to index server 2518 so that the quick full-text search of metadata.The metadata that is sent to index server 2518 can also comprise the other information that helps full-text index outside the information that is stored in the file database, for example, and the characteristic of user or application appointment, author information, user comment etc.The metadata that is sent to index server 2518 can also comprise directly from the information of extracting with one or more document flows of file association.
Next, at piece 3028, the notice of new file is created in XML web service 2510 in message server 2512 is sent in the purpose file of appointment.Alternatively, when detecting new file and parent folder related, can send these notices by file database 2520 or index server 2518.Method 3000 proceeds to piece 3030 then, and at piece 3030, message server 2512 sends update notification to each client computer of the purpose file that has appointment in subscription list.Next, at piece 3032, client computer sends request by XML web service 2510 to message server 2512, adds new file with the subscription list to client computer, and this request comprises file ID.Next, at piece 3034, message server 2512 adds new file to the subscription list of client computer.Then, method 3000 proceeds to terminal B, proceeds to end block 3036 then, finishes in end block 3036 methods 3000.
Figure 31 A-31E shows an embodiment of the method 3100 that is used to open the existing file in the XML file system.From begin block 3102, method 3100 proceeds to and is continuing terminal (" terminal B ") and withdrawing from a group of methods step 3104 that defines between the terminal (" terminal C ").This group of methods step 3104 has been described the method for opening the existing file of not sharing (in other words, the current file of not opened by another client computer).From terminal B (Figure 31 B), method 3100 proceeds to piece 3110, and the XIOS on piece 3110, the first client computer uses 2402 from document manager 912 demand files, and this request comprises file ID.In one embodiment, request is the form of URL.This request can comprise the file ID in the URL that is merged in new generation, and perhaps first client computer can obtain and can for example be included in the file URL in the listed files to the URL of file addressing.In one embodiment, URL is include file ID self not, but but changes the information that comprises export ID into.
Next, at piece 3112, document manager 912 obtains XIOS communicator 2504 and transmits file request to XIOS communicator 2504 from contact manager 2412.Method 3100 proceeds to piece 3114 then, and at piece 3114, XIOS communicator 2504 is served 2510 requests that send file to the suitable XML web of server-side component 2506, and this request comprises file ID.As mentioned above, request can be the form that comprises the URL of file ID, but perhaps instead can comprise the information of export ID.Next, at piece 3116,2506 couples of users of server-side component authenticate and route requests to XML web service 2510.
In one embodiment, be included in file ID in the request or file URL also comprise the indication file the information of resident file server 2516, determine that to help XML web service 2510 suitable file database 2520, file server 2516 or affairs coordinators 2522 are to obtain file.In another embodiment, this request can also comprise the file ID of parent folder, and XML web service 2510 can be identified for obtaining the proper data storage server of file based on the information that is included in the file ID.The number of the different server that must get in touch for a file request and the quantity of information that correspondingly provides in file ID or file URL depend on how database is divided, thereby the amount of the scalability that is provided by specific embodiment are provided.
Next, at piece 3117, XML web service 2510 checks that the user of first client computer has the permission that opens file, and will submit to suitable affairs coordinator 2522 to the request of file.In one embodiment, XML web service 2510 by obtaining file from suitable file database 2520 ACL and by checking whether this ACL allows the user capture file that authenticates, check the client computer permission.Next, at piece 3118, affairs coordinator 2522 Indication message servers 2512 add requested file to the subscription list of first client computer.Method 3100 proceeds to piece 3119 then, and at piece 3119, affairs coordinator 2522 is determined the current this document of whether sharing.Method 3100 proceeds to then and continues terminal (" terminal B1 ").
From terminal B1 (Figure 31 C), method 3100 proceeds to decision block 3120, at decision block 3120, carries out test to determine current whether shared file.If the result of the test of decision block 3120 is "Yes", then method proceeds to and continues terminal (" terminal D 1 ").Otherwise if the result of the test of decision block 3120 is "No", then method 3100 proceeds to piece 3122, and at piece 3122, affairs coordinator 2522 is inquired about suitable file database 2520 to determine the file server 2516 of storage original file data.Next, at piece 3124, affairs coordinator 2522 obtains original file data from suitable file server 2516.Then, at piece 3126, affairs coordinator 2522 turns back to original file data XML web service 2510 and shares sign and is set to " vacation ".Next, at piece 3128, XML web service 2510 turns back to original file data the XIOS communicator 2504 of first client computer and shares sign and is set to " vacation ".Method 3100 proceeds to piece 3129 then, and at piece 3129, XIOS communicator 2504 provides visit to original file data to document manager 912, and document manager 912 is used 2402 visits that provide original file data to XIOS then.Method 3100 proceeds to another then and continues terminal (" terminal C ").
From terminal C (Figure 31 A), method 3100 proceeds to a group of methods step 3106 that defines between terminal D and terminal E, and this group of methods step 3106 has been described the method for just opening the existing file of being shared by another client computer.In order to illustrate, this group of methods step 3106 supposition first client computer has been carried out this group of methods step 3104, and therefore first client computer has been opened requested file.
From terminal D (Figure 31 D), method 3100 proceeds to piece 3130, XIOS application 2402 on piece 3130, the second client computer sends file request via document manager 912 and XIOS communicator 2504 to server-side component 2514, and this file request comprises file ID.As mentioned above, request can be the form that comprises the URL of file ID, but perhaps can be the form of URL that comprises the information of export ID.Owing to describe each action of the action that comprises piece 3130 hereinbefore in detail, so in order briefly to have saved these more detailed descriptions here.Next, at piece 3132, the user of 2514 pairs second client computer of server-side component authenticates, and serves 2510 route requests to XML web.Method 3100 proceeds to piece 3134 then, and at piece 3134, XML web service 2510 checks that the user of second client computer has the permission that opens file, and will submit to suitable affairs coordinator 2522 to the request of file.Method 3100 proceeds to piece 3136 then, and at piece 3136, affairs coordinator 2522 Indication message servers 2512 add file to the subscription list of second client computer.Those skilled in the art will recognize that, to this moment, about between the piece 3110-3116 and the similarity of the method that defines between the corresponding blocks 3130-3136, almost there is not difference being used to open the file that is shared and being used to open between the method for the file that is not shared.
Next, at piece 3138, affairs coordinator 2522 is determined the current requested file of just sharing.This moment, it is different with the method that is used to open the file that is not shared to be used to open the method for the file that is shared.Method 3100 proceeds to terminal D 1, proceeds to piece 3140 then, and at piece 3140, affairs coordinator 2522 inquiry files folder database 2520 is to determine the file server 2516 of storage original file data.Next, at piece 3142, affairs coordinator 2522 obtains the copy of original file data and carries out buffer memory from suitable file server 2516.Next, at piece 3144, affairs coordinator 2522 Indication message servers 2512 are shared now to the first client computer circular document.Method 3100 proceeds to another then and continues terminal (" terminal D 2 ").
From terminal D 2 (Figure 31 E), method 3100 proceeds to piece 3146, and at piece 3146, affairs coordinator 2522 sends original file data and shares sign to XML web service 2510 and is set to " very ".This will notify XML web service 2510 and XIOS communicator 2504, differently treat original file data with the situation that file is not shared.Next, at piece 3148, XML web service 2510 turns back to original file data second client computer and shares sign and is set to " very ".Method 3100 proceeds to piece 3150 then, and at piece 3150, message server 2512 is shared now to the first client computer circular document at least.Method 3100 proceeds to piece 3152 then, and at piece 3152, in response to receiving the notice that file is shared now, first client computer sends to XML web service 2510 with any previous affairs of not submitting to.
As described below, when the file data model on first client computer changed, the task manager 910 of first client computer can be collected these variations, and immediately they was not sent to XMLweb service 2510 to store.This is especially possible under the situation of operating under the off-line mode in first client computer, but it also may take place owing to high network delay, high processor load etc.When first client computer received the notice that file is shared now, task manager 910 was obtained any affairs of not submitting to and they is sent to XML web service 2510.
Piece 3154 in method 3100, XML web service 2510 is after receiving these affairs, the affairs of not submitting to are sent to affairs coordinator 2522, and affairs coordinator 2522 is submitted the affairs of not preserving to the cached version of the original file data of being stored by affairs coordinator 2522.These affairs will finally be submitted to the original file data on the file server 2516.In one embodiment, when the client computer that keeps file was carried out hold-over command, affairs were with submitted.In another embodiment, behind scheduled time slot, change submitted.In another embodiment, the All Clients user at document has disconnected connection back change with submitted.Next, at piece 3156, affairs coordinator 2522 Indication message servers 2512 are monitored the change that the client computer notice is submitted to all.Method 3100 proceeds to piece 3158 then, receives the notice of the change of submitting to from message server in piece 3158, the first client computer and second client computer.Next, method 3100 proceeds to terminal E and end.
The network operating system client component starts
Figure 32 A shows an embodiment of the method 3200 of the client-side assembly 2400 that starts network operating system.From begin block 3202, method 3200 proceeds to piece 3204, at piece 3204, and boot loader instantiation system environments object 902 (Fig. 9) of client-side assembly 2400 and related manager thereof, and start to the communication port of XML file system 2500.In certain embodiments, owing to the XML virtual machine has been included in the client-side assembly 2400, so do not need to utilize boot loader.For example, this will be the situation in the embodiment that realizes client-side assembly 2400 outside the Web browser as independent utility (for example in mobile device, on set-top box or thin client assembly).This also will be the situation as the embodiment of the machine operation system realization that does not need host operating system to carry out.Network operating system can be carried out work by obtaining file (comprising the file that defines start-up course) via any network connection (including but not limited to utilize on the internet http protocol).Even without the start-up course of describing in method 3200, network operating system will be worked, but will manually carry out configuration step by the user drives any initial configuration.
Different with traditional operating system, some embodiment of client-side assembly 2400 can take in another program, for example are positioned at the existing Web browser.For these embodiment, can by utilize mainframe program, HTTP query argument, HTTP cookies or with other configuration parameter of client associations (for example, IP, position, machine, browser ID etc.) and the position URL that navigates to, come to determine specific setting, comprise being connected with which specific XML file system 2500 or starting which communication port about initiating sequence.For example, can make client-side assembly 2400 be connected to an XML file system 2500 the Web browser http://os1.icloud.com that leads, and can make client-side assembly 2400 be connected to the 2nd XML file system 2500 of taking in the Web browser http://os2.icloud.com that leads in the position different with an XML file system 2500.
In one embodiment, during initiating sequence, client-side assembly 2400 can start to the communication port (or the two) of the data source beyond the XML file system 2500, perhaps can be connected to remote data source or can visit local data source.For example, a file system can be the overall XIOS file system that provides by service provider data center.Another file system that connects during initiating sequence can be installed in this locality of enterprise network.The 3rd file system that connects during initiating sequence can provide the visit to user's local hard drive.Figure 32 B shows between the starting period as the several examples of driver by the data source of client-side assembly 2400 bindings.For example, the bound conduct of the driver of local machine " local drive ".In addition, the bound conduct of file in the XML file system 2500 " is shared family's file ".As another example, the bound conduct of the root folder of group " 1992 grades of reunions ".Importantly, although each of these data sources is stored in different places and conducts interviews via different technologies, use 2402 from XIOS and hidden these difference, thereby simply regard each data source as addressable driver.Although these examples are not limits, their intentions show that initiating sequence can be connected to one or more file system.In case the user is certified, initiating sequence can continue with the specific initiating sequence of user, and the specific initiating sequence of this user can comprise the connection of appended document system and the initialization of additional channel.
Another difference between the embodiment of network operating system that another contents of program stays and traditional operating system is, the execution that the operation of carrying out about mainframe program can broken clients machine end assembly 2400.For example, after the user successfully finished initiating sequence and signs in to network operating system, mainframe program can be carried out the operation of reloading client-side assembly 2400.In certain embodiments, client-side assembly 2400 is handled this situation by making the logging status of client-side assembly 2400 after the reloading network operating system before can obtaining to reload to recover its state.For this reason, at piece 3206 (Figure 32 A), client-side assembly 2400 checks whether the user logins.Method 3200 proceeds to decision block 3208, at decision block 3208, carries out test to determine whether the user logins.If the result of the test of decision block 3208 is "Yes", then method 3200 proceeds to and continues terminal (" terminal A "), thereby skips the login part of startup method.
If the result of the test of decision block 3208 is "No", then method 3200 proceeds to piece 3210, and at piece 3210, client-side assembly 2400 is opened the login related with communication port and used.Can use by the definite particular login that will start of communication port, but the login application will be asked user's proof, for example user's name and password safely usually.Other embodiment that has login process, wherein, asking log-on message and this log-on message directly is passed to communication port before the beginning Bootstrap Loading does not need other user interactions to authenticate.In not having the embodiment of boot loader, client-side assembly 2400 can directly be passed to communication port to authenticate with log-on message.Modification can also be arranged, and wherein, after directly loading, boot loader oneself is asked log-on message and then this information is passed to communication port, and does not utilize independent login to use.Next, at piece 3212, communication port is handled user's proof.Communication port can be by being sent to authentication service with user's proof or by in this locality they being handled, coming user's proof is handled.
Method 3200 proceeds to terminal A then.From terminal A, method 3200 proceeds to piece 3214, at piece 3214, communication port provides user's settings.xml file, client-side assembly 2400 to utilize the settings.xml file to carry out the specific initiating sequence of user and the virtual drive of all appointments is installed to client-side assembly 2400.Communication port can obtain the settings.xml file from remote data source, obtains the settings.xml file from local data source, perhaps produces default settings.xml file based on the specific default value of communication port.The settings.xml file comprises the set of the specific setting of user that is used for configuration network operating system.These are provided with and can include but not limited to: set (comprising group, as described below), buddy list and the initiating sequence of the root folder ID of the setting of user's name, e-mail address, various application, the virtual drive (communication port) that will install when starting and association.Be included in initiating sequence in the settings.xml file and specify in successfully which program login back client-side assembly 2400 should start, comprise opening which desktop handler, control desk or beginning using.Next, method proceeds to end block 3216 and finishes.
In certain embodiments, the settings.xml file is better than the passive container of the metadata of each project in the expression network operating system, and starts the more importantly effect of performance when driving initiating sequence that is applied in.For example, in one embodiment, start application and be performed, carry out second then and use (for example desktop application) to show desktop to the user.Although will should be used for carrying out this sequence by starting in this embodiment, start and use also to determine to carry out which second application by consulting settings.xml file.
Network operating system group and good friend
In network operating system, group is used for realizing quickly and efficiently cooperation and file-sharing between the user.Different with other system, in network operating system, create new group and realize that the burden of cooperation and file-sharing is very light.For example, in one embodiment, the user only needs right click to create new group, and this will create the common storage file automatically and make the member of group to exchange messages, and create new identity and carry out alternately with other member with group, and live collaboration each other.
The set of group storage sets information when creating.This group information comprises root folder ID, and as mentioned above, root folder ID is with doing quoting the memory location in the XML file system 2500.Only the group membership can visit file and the file that is positioned at this memory location.As mentioned above, when starting client-side assembly 2400, obtain the settings.xml file for login user.This settings.xml file comprises the set of quoting for its member's group to the user.By providing to contact manager 2412 thereby quoting of expectation group started suitable communicator and communication port, client-side assembly 2400 can utilize these to quote then and articulate group, just as it is any other memory location or file system.
Figure 33 shows an embodiment of the method 3300 that is used to articulate the network operating system group.From begin block 3302, method 3300 proceeds to piece 3304, and at piece 3304,2400 pairs of groups of client-side assembly start communication port.Next, at piece 3306, the communication port pair user related with user proof is handled.Communication port can be at the distinctive any additional proof of group (for example, membership qualification title and password) prompting user, and perhaps it can be write comments on a document (sign-on) at easy single and reuse user's login.Suppose that communication port can verify that the user proves, method 3300 proceeds to piece 3308 then, at piece 3308, and the root folder ID acquisition group folders.xml file that the communication port utilization obtains from user settings.xml file.Next, at piece 3310, the existing folders.xml file of client-side assembly 2400 on client computer adds quoting group folders.xml file.(describe the establishment of existing folders.xml file hereinbefore more in detail about Figure 28 A-28D, and the embodiment via this process or another process creating at least one folders.xml file between the starting period).This quotes the tunnel that can represent contact manager XML document #CommunicatinManager, and this document comprises the tabulation of all the open communication passages on the client computer.Next, at piece 3312, if having the autostart.xml file of a group then communication port obtains this autostart.xml file, and client-side assembly 2400 is carried out the instruction or the application of appointments in the autostart.xml file.This autostart.xml file makes the Group administrators can specify the common program of always being carried out by the group membership when signing in to group, for example, and the corporations of review procedure, welcome screen, public desktop configure, expression group etc.Group can also specify the user can select as their the alternative initiating sequence of user's initiating sequence when login system.Method 3300 enters end block 3314 then and finishes.
In certain embodiments, because file storage location has the identical feature of feature most and group, so method 3300 also can be used for articulating file storage location.File storage location lacks the notion of the member's that has as file storage location (describing at group hereinbefore) association, but the process that articulates file storage location and visit the file in this position is very similar.File storage location even can comprise aforesaid autostart.xml file.
Group function or file storage location also can be used for realizing corporations.File storage location can be used for creating corporations and does not need specific membership qualification.In other words, all users will become the member of corporations automatically.On the other hand, the group function can be used for creating only membership qualification corporations.
Above-mentioned group information can also comprise the set of membership qualification.Membership qualification be the user with group between related, and the expression user is the member's of group the fact.Each membership qualification can have the associated name that other member to group is shown, carries out thus creating new identity for the user when mutual in organizing.Because the user can create the membership qualification title when user's adding group,, the user has the group of changeable theme in the secret that keeps them so can adding.For example, name is called the set that the group of " group 1 " can have membership qualification, to be used to indicate user's name be the user of " Alice " and user's name for the usefulness of " Bob " be the member of group 1 per family.Indication Alice is that the member's of group 1 first membership qualification can be same or similar with the user's name of Alice, for example is " AliceGroupOne ".Indication Bob is that the member's of group 1 second membership qualification can be different with the user's name of Bob, for example is " AnonymousGroupMember ".When Alice searched for other group membership, she visited the tabulation of membership qualification title and the user's name of dereferenced.So she will see that " AnonymousGroupMember " is the member of group, but she can not know that " AnonymousGroupMember " is actual related with " Bob ".Alternatively, the member in the group can select to make that related user's name is open, and in this case, it is related with " Bob " that Alice can discern " AnonymousGroupMember ".
Message send service can process user between a plurality of user identity in the communication.Because a user can keep same good friend with the form of two different clauses and subclauses in his buddy list, and do not know this actual be same individual, also be such so handle this for the good friend of system.The user also will receive different instant messages and not know that they are all sent by same people from two different clauses and subclauses.
Transformation between on line state and the off-line state
In some embodiment of network operating system, client-side assembly 2400 can and be worked under off-line state under normal on line state, and wherein under off-line state, client-side assembly 2400 is not visited any server end resource.Provide an advantage of this function to be in client-side assembly 2400: it helps application of all operating of client-side assembly 2400 seamless supports under online mode and off-line mode, simultaneously the application developer is supported these two kinds of required workloads of pattern to minimize.
The client-side assembly 2400 that Figure 34 shows first client computer is converted to an embodiment of the method 3400 of off-line state from line state.The client-side assembly 2400 of this method 3400 supposition first client computer had before started via the methods of for example method 3200 and had been connected to XML file system 2500.From begin block 3402, method 3400 proceeds to piece 3404, notifies by sending to the XML of XML file system 2500 web service 2510 at the client-side assembly 2400 of piece 3404, the first client computer, and the state of first client computer is set to off-line state.Other client computer utilizes identical this state of XML web service inspection to determine that first client computer is an off-line then.Next, at piece 3406, XML web serves 2510 Indication message servers 2512 send notice from the first client computer off-line to all other client computer of the state of subscribing to first client computer.Usually, be connected to XML file system 2500 and their subscription list on message server 2512 is added first client computer with related other client computer of the group identical with first client computer.Message server 2512 is given notice with the identical mode of describing in detail more hereinbefore of notifying about the file renewal by essence.
Client-side assembly 2400 and the application carried out by client-side assembly 2400 be in order to work under the situation that can't visit XML file system 2500, client-side assembly 2400 must be on first client computer buffer memory from any resource requirement of XML file system 2500.For this reason, method 3400 proceeds to piece 3408, is loaded in all resources of not downloading as yet that still exist of indicating in the application bag related with current each example of being carried out by client-side assembly 2400 for 904 times at the application manager of piece 3408, the first client computer.The application developer can indicate client-side assembly 2400 to use the off-line use which resource in the bag is used with realization by buffer memory.Alternatively, client-side assembly 2400 can be by analyzing by quoting that the assembly of using bag uses, and determining automatically should what resource of buffer memory.
In certain embodiments, application manager 904 can carry out be used for determining should be on first client computer additional optional step of what resource of buffer memory.For example, method 3400 can proceed to piece 3410, downloads any resource by each example dynamic load at the application manager 904 of piece 3410, the first client computer.These resources will be can't help the application bag related with example and be quoted, and be determined by example but will change into when carrying out.Method 3400 can proceed to piece 3412 then, downloads the resource related with each view file of opening at the application manager 904 of piece 3412, the first client computer.As the resource of dynamic load, each view file of opening can carry out related with the resource of not quoted by the application bag.Method 3400 can also proceed to piece 3414, and at piece 3414, application manager 904 is similarly downloaded the resource with each procedure correlation.Those skilled in the art will recognize that, because piece 3410-3414 is optionally, so can in the embodiment of method 3400, carry out in these pieces one, a plurality of or do not carry out in these pieces any one.
In piece 3408 and in piece a plurality of in 3410-3414 or in the zero piece after the downloaded resources, method 3400 proceeds to piece 3416 then, the system sign of the indication first client computer off-line is set at the client-side assembly 2400 of piece 3416, the first client computer.This system sign can be used for changing client-side assembly 2400 and the behavior of the application carried out on first client computer.For example, in one embodiment, method 3400 proceeds to piece 3418, at piece 3418,2400 pairs of file operations afterwards of the client-side assembly of first client computer are ranked, and each passage buffer memory description afterwards of first client computer is to the affairs of file modifying, rather than sends file operation and affairs to XML file system 2500 immediately.Because client-side assembly 2400 ranks and the buffer memory affairs to file operation when off-line, so seem not take place when the first client computer off-line any variation for the user of network operating system.
Can also be by the application that client-side assembly 2400 is carried out based on system sign, for example the function that needs network to connect by forbidding changes their behavior.If the user of first client computer attempts carrying out the action that needs network to connect, then client-side assembly 2400 self can be for example by showing that error message further changes its behavior.Method 3400 enters end block 3402 then and finishes.
Figure 35 shows when first client computer and has carried out the method for method 3400 for example and return an embodiment of the method 3500 of on line state during operation under off-line state.From begin block 3502, method 3500 proceeds to piece 3504, carries out onlinely in piece 3504, the first client computer, and the client-side assembly 2400 of first client computer sends the notice of on line states to XML web service 2510.First client computer can be by carrying out online at being not limited to foundation such as one of LAN (Local Area Network), wireless network, Dial-up Network etc. or rebuliding connection.Alternatively, when having set up network and connect, wish to carry out when online first client computer and can carry out online when the user indicates.Next, at piece 3506, XML web serves 2510 Indication message servers 2512 and sends the online notice of first client computer to the All Clients of the state of subscribing to first client computer.
Method 3500 proceeds to piece 3508 then, downloads any variation that is buffered in the document on first client computer at the task manager 910 of piece 3508, the first client computer from XML web service 2510.In one embodiment, the variation of these downloads is variations of by other client computer the document in the XML file system 2500 being carried out when the first client computer off-line.Next, any conflict between the variation of document that the task manager 910 of piece 3510, the first client computer solves buffer memorys and download.In one embodiment, task manager 910 only detects conflict and exists, and prompting user manually manage conflict (by creating new file to comprise the variation of buffer memory, selecting the variation of downloading etc. with the variation of cancellation buffer memory).In another embodiment, task manager 910 is carried out and is judged the algorithm that keep which variation and should abandon which variation.
Next, send the file operation of any queuing to XML web service 2510 at the task manager 910 of piece 3512, the first client computer.For example, if the user of first client computer attempts creating when off-line, any file in deletion or the rename XML file system 2500, then these file operations will be sent to XML file system 2500 this moment.In one embodiment, XML file system 2500 will detect with any conflict of the variation of being undertaken by other user (for example, trial that the file of previous deletion is renamed etc.) and suitably respond.
Method 3500 proceeds to piece 3514 then, serves 2510 contacted message servers 2512 at the client-side assembly 2400 of piece 3514, the first client computer by XML web and adds any monitored object again with the subscription list to first client computer.Next, the client-side assembly 2400 in piece 3516, the first client computer is provided with the system sign that indication first client computer is on line state.In one embodiment, this system sign being set makes client-side assembly 2400 and uses the mode of operation that the normal network turn back to them is connected.Method 3500 proceeds to end block 3518 then and finishes.This moment, the XML file system of first client computer is carried out synchronous and online with the server-side component 2500 of network operating system then.
XML file system special folder
As mentioned above, some file in the XML file system 2500 can be designated as special folder.In one embodiment, the clauses and subclauses of special folder are stored in the file database 2520 in the mode identical with the clauses and subclauses of normal folder, are special folder but sign is set with indication this document folder.In one embodiment, special file is clipped in clauses and subclauses in the file database 2520 and also comprises the request of file is created in processing in special folder the indication of one of many server process.In another embodiment, server process is handled all requests of creating file in special folder, and determines how to handle file based on the content of the file of the file type of for example file.
These special folder do not provide file storage, but some other data processing routines that can send with the asynchronous message between the user for example of opposing is abstract.The example that this asynchronous message sends is the use that is used to receive and handle the outbox file of the message of sending to other user.The use of the special folder that is used for communicating by letter between the user provides many advantages.For example, it has simplified the client application exploitation.XIOS uses 2402 and can utilize the message related with special folder to send agreement, and not need the difficult basic details that tackles communication protocol by the simple document creation routine of being familiar with of using.As another example, as mentioned above, the use of the special folder that is used for communicating by letter between the user makes XIOS use 2402 can replenish the group function of supporting to be included in the XML file system 2500.So, the XIOS that uses special folder to carry out the message transmission uses 2402 does not need to increase the additional code that is used to realize security, group membership, buddy list, addressing, anonymity etc., and this is because it can simply rely on the basic function of XML file system 2500 for these features.
Figure 36 shows the request of new file is created in processing in the outbox special folder a embodiment of method 3600.Seem for 2402 that as it be the request of creating file although this request is used for the XIOS that carries out on client computer, server will be considered as this request to send to second user request of message.From begin block 3602, method 3600 proceeds to piece 3604, and at piece 3604, the server process related with first user's outbox file is received in the request of creating new file in the outbox special folder.Next, at piece 3606, server process is extracted expection addressee's address from this request.Method 3600 proceeds to piece 3608 then, at piece 3608, and second user of server process identification and expection addressee's address correlation.
The group of above-mentioned XML file system 2500 and good friend's listing function allow a plurality of dissimilar addressing to discern second user.For example, first user can directly be addressed to message second user's user's name.As another example, first user can be addressed to message the membership qualification title related with second user.In this case, second user's anonymity is with protected, but first user still can be addressed to message second user.As another example, first user can with the message addressing all for example telephone numbering be stored in address in the metadata related with second user.Server process will be determined to have utilized the addressing of which kind of type and will discern second user thus.
Next, at piece 3610, server process is determined second user's folder ID.In one embodiment, this only relates to the search folder related with second user in file database 2520.Method 3600 proceeds to piece 3612 then, and at piece 3612, server process utilizes folder ID to create new file in second user's folder, and this new file comprises the data in the request of being included in.In the embodiment that has created file in special folder (directly to handle the document creation request relative with server process), server process moves to new file second user's folder simply from first user's outbox file.Next, method 3600 proceeds to end block 3614 and finishes.
Example application-chat
As mentioned above, network operating system advantage is to be embedded in feature in the network operating system and makes and can develop reusable, scalable, the cross-platform cooperation assembly that comprises abundant security and anonymous function rapidly.An embodiment of exemplary application who utilizes many advantages of these features is a chat application hereinafter described.
Figure 37 is with a high-level embodiment who shows the shared data file 3710 of chat application 3700 and correspondence thereof.Substitute new traffic agreement and certificate scheme are designed and encode, chat application 3700 resides in communication between the participant that the shared data files 3710 in the XML file system 2500 carry out in the chat sessions by utilization.The interface of chat application 3700 comprises four primary clusterings: main window assembly 3712, text display assembly 3702, text input module 3704 and button assembly 3706.When the beginning chat sessions, text display assembly 3702 is bound to shared data file 3710 via binding 3708, (has saved this text for clear from Figure 37) thereby make the change of by any participant shared data file 3710 being carried out in chat sessions will be reflected in the text display assembly 3710.
Figure 38 also is bound to shared data file 3710 with high-level text display assembly 3702 and the button assembly 3706 that shows chat application 3700.As user during, change in the shared data file 3710 to text input module 3704 input texts and button click assembly 3706.This variation will be transmitted to all component that is tied to shared data file 3710 then, comprise text display assembly 3702.
Figure 39 is with the renewal of the shared data file 3710 in the chat sessions between the high-level chat application that shows first user 3902 and second user's 3904 the chat application.In this width of cloth figure, the text display assembly 3702 of the text display assembly 3702 of first user's 3902 chat application and second user's 3904 chat application is bound to shared data file 3710, and therefore shows the content of shared data file 3710.First user has imported text and has clicked button assembly 3706 to text input module 3704.Button assembly 3706 is related with trigger, wherein, when the button click assembly, this trigger makes to carry out and reads text from text input module 3704, to append to shared data file 3710 behind the text 3906, and remove the step of text from text input module 3704.
This process that is used to upgrade shared data file 3710 helps at least one advantage of display network operating system: the developer only need carry out four above-mentioned assemblies the rule that association and establishment are tied to the text input module, to realize this function.In these scene back, network operating system will be handled a large amount of details of upgrading shared data file 3710.For example, in one embodiment, the copy of the shared data file 3710 of buffer memory is stored in the client-side buffer by document manager 912.Corresponding URL object receives the request of upgrading shared data file 3710, and this makes task manager 910 create the affairs of the described change of expression.Task manager 910 is transmitted to the remote monitoring device by making affairs be submitted to XML web service 2510 via XIOS communicator 2504 and XIOS passage with affairs.XML web service 2510 is noticed that text is shared and the affairs of submitting to is forwarded to affairs coordinator 2522.Affairs coordinator 2522 is submitted affairs then to, upgrades the shared data file 3710 in the XML file system 2500.
Figure 40 is with transmission propagation, chat messages via the variation of shared data file 3710 among the high-level embodiment who shows chat application 3700.As mentioned above, the text display assembly 3702 of the chat application of the chat application of first client computer 3902 and second client computer 3904 all is bound to shared data file 3710.So, when XML file system 2500 is upgraded shared data files 3710, change and correspondingly it upgraded to each notice of bundled components.
Advantageously, this makes the developer that the UI assembly is propagated by data update event always to show the correct information synchronous with shared data file 3710 automatically, and does not need thus to write any code and change into by simply component binding to shared data file 3710 just having been finished chat communication.As the renewal of shared data file 3710, network operating system is handled a large amount of details of these affairs.For example, in one embodiment, when affairs coordinator 2522 was submitted affairs to, its Indication message server 2512 is notified to each client computer of the variation of subscribing to shared data file 3710: shared data file 3710 had been updated.Message server 2512 sends these notices to each client computer, and this client computer is extracted updated information or contact XML file system 2500 latest editions with the acquisition file from notice.In this, the task manager 910 of first client computer will recognize that first client computer submitted change to, and will can not repeat to upgrade the cached version of its shared data file 3710.The task manager 910 of other client computer will make these variations be merged in the cached version of their shared data files 3710 separately.When other Data Update took place, any listening components (the text display assembly 3702 that comprises the chat application of the chat application of first client computer 3902 and second client computer 3904) was updated notified file.Text display assembly 3702 will correspondingly be upgraded with the content 3906 of adding then automatically.
Figure 41 shows the supplementary features by utilize shared data file 3710 to realize at the collaboration type communication between the client computer.That is to say, when the renewal to given shared data file 3710 is transmitted to the client computer of any number of subscribing to shared data file 3710, do not needing odd word above carrying out collaboration type communication between two the participant.As shown in figure 41, other client computer of any number (for example, the 3rd client computer 4102 and the 4th client computer 4104) can add the session between first client computer 3902 and second client computer 3904, and without any need for other design variation.As mentioned above, each client computer will be tied to shared data file 3710 and receive and upgrade.
Add the contact person and set up independent chat sessions to the tabulation of given user's chat buddies and can also illustrate and be included in the many features that comprise in the network operating system.In one embodiment, first user can only send or from second user (its be first user buddy list the member and agree to carry out chat communication with first user) the reception chat messages.First user's buddy list can be stored in the document in the XML file system 2500, and a part that perhaps can be used as the settings.xml file is stored and sent.In order to add second user to buddy list, first user at first must search subscriber.In one embodiment, in order to keep the user's who belongs to group anonymity, first user will only can search for the membership qualification title, and each of these membership qualification titles is related with the group under the user and first user.In one embodiment, first user also can search for global group, in this global group, have the indication of user's real name, but not with the getting in touch of the title of discovery in group.
In either case, search turns back to first user with the address related with second user.First user will send to second user's address then: add second user's request to first user's buddy list.In one embodiment, utilize with above-mentioned method 3600 similar methods and finish this operation, wherein, first user creates the file that constitutes the buddy list request in first user's outbox file, this file is routed and is sent to second user's folder then by server process.On second user's client computer, obtain this request from second user's inbox, and show that dialog box is to inquire second user whether she wishes to allow first user she to be added to his buddy list.When second user response, message is sent out back first user in a similar manner finishing the buddy list that second user is added to first user, and first user can begin the chat sessions with second user then.
For first user who begins to carry out with second user chat sessions, similar process takes place.First user's chat application is created shared data file 3710, its text display assembly 3702 is tied to shared data file 3710, and sends the request of beginning chat sessions to second user's address.Request is transmitted as mentioned above.If second user accepts request, then notice is sent to first user's chat application, and first user's chat application sends the document id of shared data file 3710 then to second user's chat application.Second user's chat application is tied to shared data file 3710 with its text display assembly 3702, and chat sessions can carry out as mentioned above.
Although described these features about chat, those skilled in the art recognize that, can utilize the shared data file to realize for example server intermediary communication of other form of message board, Email etc.In addition, the shared data file can be used in coordination does not need server to carry out the communication of other form of intermediary.For example, first user and second user can utilize the peer-to-peer communications of shared data file at for example VOIP or video conference, the agreed bandwidth setting, encrypt and to be provided with etc.
In addition, although in order to simplify, more than the description of chat supposition chat application is handled all message that arrive folder, and the add-on assemble on the client computer can be managed the message that enters.In one embodiment, the assembly on the client computer is analyzed each message that comes across in the folder, and is identified for handling the suitable application of this message.Assembly starts this application then and delivers messages to this application further to handle.In this way, chat application be need not move, the chat request or the buddy list request that enter just can be handled.
Figure 42 shows another advantage of utilizing reusable assembly when XIOS uses creating.This illustrates an embodiment of the network operating system of taking in Web browser, and can represent the appearance of network operating system in other embodiment of the isolation application of for example client-side assembly 2400 or machine operation system implementation.Each frame table in the Web browser shows that the XIOS that creates with reusable assembly (for example, e-mail component, clock assembly, web search component, group message components and weather forecast assembly) uses 2402.With only the situation in isolated chat application is relative, bottom-right frame is presented at reusing of the interior chat application assembly of this web browser.Because reusable assembly does not need to write again to work under varying environment, so use reusable assembly can develop this application that is combined into rapidly.Can create synthetic another advantage of using is: the basic data that offers application from data model can form from a plurality of diverse sources merging, so make application to carry out work from the composite in mass data source.
Example application-reunion
Figure 43 shows the embodiment example cooperation of establishment easily that utilizes system.1992 grades of application of meeting again are examples can presenting to the member's of group function.About as described in Figure 42, Figure 43 shows the set of the assembly of quoting a plurality of data sources as above.Meet again to use the set that shows the assembly that can start for 1992 grades as the part of the autostart.xml file that loads when the bindings group file.Shown in above Figure 32 B, 1992 grades of reunion group folders can be used as data source and are bound by client computer, and in this case, it will be shown as the driver in the user interface.When opening that data source after the user (perhaps when user at first during the binding data source), the autostart.xml document related with group folders will make and show for example set of the assembly of activity scheduling, reunion activity map, reunion countdown etc.
Except the automatic demonstration of these assemblies, the group function also will provide security.For example, only Zu member can watch the clauses and subclauses in the photograph album, and it can only be the view that is stored in the file in the group folders level.As shown in the chat components of Figure 43 of other online member of demonstration group, the group function also will provide with the easy of other member who organizes cooperates, and need not at first require the user to add other group membership to buddy list.
Although illustrate and described illustrative embodiment, should be understood that under the situation that does not break away from the spirit and scope of the present invention and can carry out various changes.
Claims (according to the modification of the 19th of treaty)
1. an application platform that is used to carry out application is separated to function in a plurality of layers according to the MVC Design Mode in described application, and described application platform is constructed to:
The object that is provided for defining in the user interface logic of using is tied to the bindings (1600) of the document in the data model, and wherein a plurality of objects can be bound to same document;
Make described object can utilize rule and explain content in the document that object is tied to and the structure (2206) of Function Coupling that will the object data in the document; And
How the object that keeps definition to be tied to each service regeulations of document in data model will explain the rule processor (2100) of their data binding.
2. application platform according to claim 1 also comprises:
Make the eavesdropping target be registered as audiomonitor at the Data Update of on document, carrying out; And
Experienced Data Update in response to document, notice and be provided for determining to the eavesdropping target whether this eavesdropping target is subjected to the data of the influence of described Data Update.
3. application platform according to claim 1, wherein, how the object that keeps definition to be tied to each service regeulations of document in data model will explain that the rule processor of their data binding comprises: make the semantic logic of object rule be included in the data model in the name space that the associated name space of different objects with separates.
4. application platform according to claim 1, wherein, the document that the object that will define in the user interface logic of using is tied in the data model comprises:
Be identified in the semantic description of the bindings that runs in the application code, described semantic description has the expression formula that will bind the document of runtime object in the reference data model; And
About application example to this evaluation of expression.
5. application platform according to claim 4, wherein, the object that is bundled in definition in the user interface logic of application comprises: object is registered on the document as the Data Update audiomonitor, wherein notifies described Data Update audiomonitor when the Data Update of the data binding of the described object that makes a difference.
6. application platform according to claim 1, wherein, the object that will define in the using user interface logic is tied to document and comprises:
Determine whether object utilizes rule;
If object has utilized rule, so:
Make the rule of rule processor about the current version application of data model;
The rule of object is merged in the data model, and described rule is integrated in the name space that different objects with separate.
7. application platform according to claim 1 wherein, keeps rule processor to comprise in data model:
Receive the Data Update that modification remains on the rule in the data model from object;
Notify described Data Update to the object of the one or more existing service regeulations that are tied to document; And
The data model executing rule processor that can use about the object of described one or more existing service regeulations.
8. Data Update bus that is constructed to carry out propagation data method for updating between data model and one or more object comprises:
Abstract representation (for example " document object ") to document carries out instantiation (1254);
One or more objects are registered in (1612) on the document object as the Data Update audiomonitor;
That receive to carry out Data Update calls (2002-2004), the described fragment of calling the relative variation that comprises the data of description model;
For each object that is registered as the Data Update audiomonitor:
Determine whether the data binding with object association is subjected to the influence (2214) of described Data Update; And
If data binding is subjected to the influence of described Data Update, then will be arranged on (2008) on the object from the new data of data model.
9. Data Update bus according to claim 8 wherein, is registered one or more objects and is comprised as the Data Update audiomonitor: creates the XBind of translation, the data of the described one or more objects of binding in the XBind reference data model of described translation.
10. Data Update bus according to claim 8 wherein, comprises for the Data Update audiomonitor liking user interface components and registering object:
Make the rule of rule processor about the current version using user interface assembly of data model; And
To merge in the data model that has with the rule of different object associations with the related rule of user interface components.
11. Data Update bus according to claim 8, wherein, described section encapsulation is used for carrying out the data data updated in the serialized data model with XML.
12. Data Update bus according to claim 8 wherein, is utilized communicating by letter between local calculation element and the network service carried out abstract passage, described fragment is transmitted to the remote monitoring device.
13. Data Update bus according to claim 8, wherein, determine that the influence whether data binding with object association is subjected to described Data Update comprises: will with the XBind of object association and reference data model in be subjected to the influence of described Data Update the XBind of position compare.
14. Data Update bus according to claim 8 wherein, if object utilizes rule, then is provided with data to object, comprising:
Make rule processor carry out the rule with document associations; And
Provide current namespace information to object.
15. a calculation element, the rule that is constructed to object is set comprises with the content in the decryption model:
Processor (300);
Storer (304) has computer executable instructions, and described computer executable instructions makes calculation element when being carried out by processor:
Rule processor in remaining on data model adds the rule (1616) with new object association;
Make rule processor use the rule (2108) of new object about the current version of data model; And
The rule of new object is merged to (2110) in the data model, described rule be integrated into distribute to be tied to data model in the name space that separates of the name space of rule of one or more existing object associations of document in.
16. calculation element according to claim 15 also is constructed to the described one or more existing object notice that is tied to document remaining on the Data Update of the rule in the data model.
17. calculation element according to claim 15 wherein, comprises to the rule of rule processor interpolation with new object association: register new object as Data Update audiomonitor notified when document experiences Data Update.
18. calculation element according to claim 15, wherein, the rule that makes rule processor use new object about the current version of data model comprises: the rule of carrying out the described one or more existing objects that are tied to document.
19. calculation element according to claim 15 wherein, merges to the rule of new object in the rule processor and to comprise: the quoting new object that is provided for discerning the XML name space of the rule of distributing to object.
20. calculation element according to claim 15, wherein, described newly to as if according to making the developer needn't be provided for the user interface components of application programming interface definition of script logic of the function of definitions component.
21. one kind is carried out the method that the instruction of evaluation is carried out in being used for of being carried out by calculation element to the expression formula of quoting atom component, described method comprises:
Semantic formula in determine using whether ask with not with the related related data (1804) of atom component of data binding that define;
Object (1806) when identification keeps about the operation of the data of the current state of atom component, the state of object is constructed to the term of execution change in application during described the operation;
Object requests and be received in the data of quoting in the described expression formula (1808) during from the operation corresponding with atom component; And
The data dissemination that to quote in described expression formula to the system that remains in the data model provides document (1810).
22. method according to claim 21, wherein, described expression formula utilization is quoted atom component for application for the title of the overall situation, and wherein, and object comprised that identification makes the application example of instantiation atom component when identification kept about the operation of the data of the current state of atom component.
23. method according to claim 21, wherein, whether the semantic formula in determine using asks the data related with atom component to comprise: the XBind of object data binding was inquired about when object was configured at the definition operation in the time of will be with each operation of association.
24. method according to claim 23, wherein, XBind is the multidimensional data type that comprises URL, basic path and optional selection at least.
25. method according to claim 21, wherein, object requests and be received in the data of quoting in the described expression formula and comprise during from the operation corresponding with atom component: the data serial that object keeps in the time of will be by operation changes into XML.
26. method according to claim 21, wherein, each expression formula by evaluation of definition meets the XML grammer in using, and wherein, the state document that provides of data dissemination to the system that will quote in described expression formula comprises: the expression formula of translation of creating the position of the addressable data of quoting in the state document that pointing system provides in described expression formula.
27. a system that is used to take in network file system(NFS), described system comprises:
XML network service (2510) is used for carrying out two-way communication with the client computes device;
File server (2516) is used to store raw data file;
Index server (2518) is used for the full-text index of storage file metadata and raw data file; And
File database (2520) is used for the storage folder hierarchical information.
28. system according to claim 27, also comprise affairs coordinator, described affairs coordinator is used for when a plurality of client computes devices all register to object by the affairs coordinator buffer memory as audiomonitor, helps described a plurality of client computes device to use simultaneously to remain on the file in the network file system(NFS).
29. system according to claim 28 also comprises message server, described message server is used for providing about the notice of influence by the renewal of the object of affairs coordinator buffer memory to the client computes device.
30. system according to claim 27, also be included in the communication port of instantiation on the client computes device, described communication port to the application of on the client computes device, carrying out provide function with carry out by network service comprising of exposing by the one or more file system operation that loads, opens and preserve in the group that file constitutes.
31. system according to claim 27 also comprises the communication port that is constructed to transmit to the network service instantiation on the client computes device of action URL, the type of the processing that the service of described action URL recognition network will be carried out.
32. system according to claim 27, wherein, the network service also is constructed to:
Accept carrying out the request of search from the application carried out at the client computes device with the file of the metadata association of appointment;
Make to have one or more files with the attribute of meta data match from the index identification of the file metadata created by index server, the tabulation of described file is returned with the form of web feeds from index server; And
Described tabulation is turned back to the application of on the client computes device, carrying out.
33. system according to claim 27, wherein, the file hierarchical information that remains in the file database also comprises the permission related with the file in the file system, and described permission is used for determining whether the user is the group membership with authority of access group file.
34. system according to claim 27, wherein, the network service also is constructed to make up the document of description document folder tree, comprising:
Obtain the file metadata related from the file database with root folder;
Obtain to describe the metadata of each file in the root folder from index server; And
To insert described document with root folder corresponding file folder and file metadata.
35. system according to claim 34 also comprises:
For each sub-folder with identical with root folder permission for the user,
Obtain the file metadata related from the file database with this sub-folder;
Obtain the metadata of each file in the descriptor file folder from index server;
To insert described document with sub-folder corresponding file folder and file metadata.
36. system according to claim 35 also comprises:
For each sub-folder with different with root folder permissions for the user,
The XLink corresponding with this sub-folder inserted described document, allow this sub-folder of user capture in case the authority of this sub-folder of visit of user obtains authenticating described XLink.
37. one kind offers the system of client computes device with software as service, comprising:
Network service (2510) provides the visit to network file system(NFS), and user file can be used as the virtual drive on the client computes device and obtains in this network file system(NFS);
At least one application (2402) provides applied logic in the semantic applications code of writing according to one or more XML patterns;
XML virtual machine (510), from being constructed to explain that the network service (2510) of the semantic applications code of writing according to one or more XML patterns transmits, described semantic applications code is translated into platform independent code on the client computes device as service;
Wherein, XML virtual machine (510) is constructed to the feasible logic of carrying out described at least one application, and does not need to be installed on the client computes device as executable program.
38. according to the described system of claim 37, wherein, the data and the applied logic of described at least one application of being carried out by the XML virtual machine are separated into model, view and controller.
39. according to the described system of claim 37, wherein, described at least one application according to described one or more XML pattern description applied logics is constructed to provide common desktop environment, in described common desktop environment, can cross over different calculation element visit common application and user data.
40. according to the described system of claim 37, wherein, the using user interface logic of being explained by the XML virtual machine meets an XML pattern, and wherein, the application process logic meets the 2nd XML pattern.
41. according to the described system of claim 37, wherein, the network service also is constructed to help a plurality of users to use file simultaneously, order is arrived each user to the renewal real time communication of described file.
42. according to the described system of claim 37, wherein, the network service also is constructed to:
Authenticated the user and be the member of the group of authority with the root folder in the accesses network file system;
Produce and send the document of the content of describing root folder to the client computes device.
43., wherein, produce and comprise to the document that the client computes device sends the content of describing root folder according to the described system of claim 42:
(a) obtain the file metadata related from the file database with root folder;
(b) metadata of each file in the root folder to be described from index server; And
(c) for each file with identical with root folder permission for the user, repeating step (a) and (b).
44. a method that realizes in computer executable instructions, described computer executable instructions generate the document of the description document folder tree that sends to the client computes device when being carried out by computer processor, described method comprises:
In response to the request that receives the visit root folder from the client computes device, the file data base querying related with root folder comprise the information (2814) of description about the Access Control List (ACL) of the access privilege of root folder;
Authenticate the user and had the authority (3116) of visit root folder;
Document to description document folder tree adds the metadata (2816) related with root folder;
For each son file for user's permission identical of having in the level of root folder with root folder,
Obtain the file metadata (2818) of this sub-folder from the file database;
Document to description document folder tree adds the metadata (2816) related with this sub-folder.
45., also comprise according to the described method of claim 44:
The information of each file in index server in the query specification root folder;
To the document interpolation of description document folder tree and the metadata of each file association in the root folder; And
Wherein, at least one file in the root folder is the file type that starts the execution of using when root folder is articulated on the client computes device as virtual drive.
46., also comprise according to the described method of claim 44:
Accept the file related with given content carried out the request of search from the client computes device;
Discern one or more files from the index of the content of the Data Matching that has and this request, provide.
47. one kind is constructed to provide message server about the notice of subscribed object to the client computes device, described message server comprises:
Processor (300); And
Computer-readable medium (304), store computer executable instructions on it, described computer executable instructions makes message server carry out to the client computes device when being carried out by processor method about the notice of subscribed object is provided, and described method comprises:
Receive the notice (3144) that subscribed object has been updated;
The chain of messages (3150) of location and subscribed object association;
Travel through the link (2704) in this chain of messages; And
Send notice (3156) to each the client computes device when traveling through described chain of messages, discerned that is registered in as audiomonitor on the subscribed object.
48. according to the described message server of claim 47, wherein, computer-readable medium has at least one subscription list related with the client computes device, each subscribed object that described subscription list identification client computes device is registered as audiomonitor.
49. according to the described message server of claim 48, wherein, the client computes device as audiomonitor be registered subscribed to as if from the variation of user's on line state, shared file with influence select the group of modification of group folders one or more.
50., wherein, will link with the clauses and subclauses in the related subscription list of different client computes devices with the chain of messages of subscribed object association according to the described message server of claim 47.
51. according to the described message server of claim 47, wherein, the affairs coordinator that communicates with message server makes message server send the notice that indication is shared by a plurality of users actively by the file of affairs coordinator buffer memory to a plurality of client computes devices.
52. according to the described message server of claim 47, wherein, the file of the communication that subscribed object representation storage is just exchanging in chat sessions sends chat communication when the file of the data that described message server is constructed to exchange has experienced Data Update during being stored in chat sessions.
53. a method of carrying out in computer executable instructions, described computer executable instructions start the chat sessions between two or more calculation elements when being carried out by computer processor, described method comprises:
On network file system(NFS), create file (3000);
For each user who participates in described chat sessions,
Registered user's conduct is at the audiomonitor (3034) of the Data Update of the file on the network file system(NFS);
Cache file version (1116) on the local client computer calculation element;
The one or more user interface components that show chat communication are tied to FileVersion at local cache; And
In response on the local client computer calculation element, importing chat communication, upgrade user interface components and be buffered in binding between the local FileVersion, and the affairs that will comprise chat communication are transmitted to network service (2010) with demonstration chat communication (2008).
54., also comprise according to the described method of claim 53:
Receive affairs in network service center;
Determine that file is shared actively by a plurality of client computes devices; And
Chat communication is sent to registration as each the client computes device at the audiomonitor of the Data Update of file.
55. according to the described method of claim 54, wherein, determine that file is made message server carry out searching of object in subscription list actively shared comprising, described object is at a plurality of client computes devices of chain of messages internal chaining.
56. according to the described method of claim 53, wherein, the registered user is included in as the audiomonitor at the Data Update of the file on the network file system(NFS) and keeps special folder in the network file system(NFS), and described special folder monitors by abstract server process is carried out in the startup of the chat sessions of the application carried out on the client computes device.
57., wherein, on network file system(NFS), create file and comprise according to the described method of claim 53:
Obtain original file data from file server; And
The object of representing when instantiation and buffer memory provide the operation of file on affairs coordinator.
58. according to the described method of claim 53, wherein, the registered user comprises as the audiomonitor at the Data Update of the file on the network file system(NFS):
The Indication message server adds object to the subscription list related with the client computes device; And
If a plurality of client computes devices are registered as audiomonitor, then between a plurality of subscription lists, link the clauses and subclauses of this object.
59., wherein, comprise at a version of cache file on the local client computer calculation element and to utilize communication port load document in the client-side buffer according to the described method of claim 53.
60. according to the described method of claim 53, wherein, carry out application code in response to input chat communication on the local client computer calculation element, described local client computer calculation element is constructed to:
The text that is input to user interface components is transmitted to the file that is buffered in this locality; And
Utilize the network service that text is sent to remote-control device.
61. one kind in instruction, realize by computer processor operation be used to carry out chat application with the real-time Communication for Power of remote computing device, comprising:
Data model (2500) is used to be stored in the data that transmit during the chat sessions;
Be tied to the text display assembly (3702) of described data model;
Text input module (3704) is used to be received in the chat communication of user's input during the chat sessions; And
Sending assembly (3706) produces the activation incident that sends chat communication in response to the user and carries out application code, and described application code is constructed to:
With the chat communication file (2508) of text display assembly that has been transmitted to binding in the data model; And
Utilize the network service that chat communication is sent to remote computing device (2510).
62. according to the described chat application of claim 61, also comprise communication port, this communication port is constructed to:
Receive the chat communication that produces by remote computing device from the network service; And
With the chat communication that the receives file of text display assembly that has been transmitted to binding in the data model.
63., wherein, text display component binding to data model is comprised according to the described chat application of claim 61:
The instantiation document object; And
The text display assembly is registered on the document object as the Data Update audiomonitor, wherein, when chat communication is transmitted to data model, document object notification text display module.
64. according to the described chat application of claim 63, wherein, the text display assembly is provided at least one the rule how chat communication in the decryption model is visually shown.
65. according to the described chat application of claim 61, wherein, the text input module is not have the atom component related with data binding, and wherein, the file that chat communication is transmitted in the data model comprises that object is to obtain the text of chat communication when visiting the operation related with the text input module.
66., comprise that also the operation that is constructed to the accesses network file system is to load the communication port of the file of being shared actively by a plurality of calculation elements according to the described chat application of claim 61.
67. a client computes device that is constructed to which directs network operating system comprises:
Processor (300);
Computer-readable medium (304) stores computer executable instructions on it, described computer executable instructions makes calculation element carry out the method for which directs network operating system when being carried out by processor (300), and this method comprises:
Start the process virtual machine (3204) that is constructed on the client computes device, carry out one or more application;
Instantiation is used to manage with the communication port of communicating by letter of data source and utilizes this communication port to obtain the specific initiating sequence (3210) of user; And
Carry out described initiating sequence (3214), wherein carry out described initiating sequence and comprise from data source and obtain at least one application and carry out described at least one application by the process virtual machine.
68. according to the described client computes device of claim 67, wherein, the process virtual machine is to be constructed to carry out based on the XML virtual machine of semanteme with the application of one or more XML programming languages descriptions, and wherein, starting the XML virtual machine comprises from server end data center and obtains this XML virtual machine.
69. according to the described client computes device of claim 67, wherein, the process virtual machine is embedded in the interior microprocessor of client computes device.
70. according to the described client computes device of claim 67, wherein, based on the position URL that utilizes main frame Web browser program to navigate, identification is by the specific communications passage of instantiation.
71. according to the described client computes device of claim 67, wherein, based on a configuration parameter related with the client computes device of selecting from the group of HTTP query argument, HTTP cookie data, IP address, geographic position and Machine Type, identification is by the specific communications passage of instantiation.
72. according to the described client computes device of claim 67, wherein, communication port is constructed to manage and the communicating by letter and carry out the specific initiating sequence of user not needing to utilize under the situation of any network service of the data source of client computes device this locality.
73. according to the described client computes device of claim 67, wherein, carrying out initiating sequence makes and utilizes independent communication port all to be articulated on the client computes device as virtual drive from the file of first network file system(NFS) with from the file of second network file system(NFS).
74. according to the described client computes device of claim 67, wherein, in the configurable XML document of the one or more application that after being identified in successfully game server end data center, start based on the described initiating sequence of semantic description.
75., wherein, land and use and start the communication port that proves with the user who obtains to be used to articulate group folders and carry out related according to the described client computes device of claim 67.
76. one kind is connected to the system of a plurality of data sources with the client computes device, described system comprises:
First data source (2500) related with first communication port (2504) is used for to client computes device transport process virtual machine;
Second data source (2420) related with second communication passage (2414);
The client computes device is constructed to:
Instantiation first communication port (2504) is articulated on the client computes device with the virtual drive that will represent first data source; And
Be enabled in the execution (1000) of at least one application on the process virtual machine, described application is constructed to instantiation second communication passage (2414), and second communication passage (2414) will represent that the virtual drive of second data source (2420) is articulated on the client computes device.
77. according to the described system of claim 76, wherein, first data source is to be the file system that provides from private network from the network file system(NFS) and second data source of internet access.
78. according to the described system of claim 76, wherein, the data source that articulates as virtual drive is one that selects from the group of local memory storage, network file system(NFS) and shared group file.
79. according to the described system of claim 76, wherein, the data source that is articulated on the client computes device as virtual drive is the folder tree of network file system(NFS), and wherein, articulate folder tree and comprise that establishment is used to be sent to the document of client computes device, comprising:
The inquiry information related in the file database with the root folder of folder tree;
Authenticate the user and had the authority of visit root folder; And
Add the metadata related to described document with root folder.
80., also comprise according to the described system of claim 79:
For each sub-folder for user's permission identical of having in the level of root folder with root folder,
Obtain the file metadata of this sub-folder; And
Document to description document folder tree adds the metadata related with this sub-folder.
81. according to the described system of claim 76, wherein, at least one file in the root folder is the file type that starts the execution of using when root folder is articulated on the client computes device as virtual drive.
82., wherein,, create first and second communication ports according to the communicator application programming interface of the logic of the XML form of accepting to be used for the data of access data sources and data translation to be become executory application expectation according to the described system of claim 76.
83. according to the described system of claim 76, wherein, the application access model document of being carried out by the process virtual machine to be realizing application function, and need not directly carry out alternately with the data source of being managed by communication port.
84. a method of carrying out in computer executable instructions, described computer executable instructions is created communication port according to application programming interface when being carried out by computer processor, and described method comprises:
Acceptance is intended to create one or more API Calls of communication port (2504), and described one or more API Calls comprise that definition is used for obtaining from data source (2500) at least the call parameters of the logic of data and model of creation document (2502);
Instantiation is implemented in the communication port (2504) of the logic of definition in described one or more API Calls; And
Obtain data and model of creation document (2502) from data source (2500), wherein, application access model document (2502) to be realizing application function, and with by the data source of communication port (2504) management directly do not dock.
85. 4 described methods according to Claim 8, wherein, the logical definition that provides according to API is used to load, read and edit the standardization of data operation that obtains from data source.
86. 4 described methods according to Claim 8, wherein, obtain data and model of creation document from data source and be included in the client computes device and articulate virtual drive, and wherein, data source is one that selects from the group of local memory storage, network file system(NFS) and shared group file.
87. a method of utilizing action URL to make the function that the application access second of winning uses, described method comprises:
Instantiation is used to manage the communication port (3210) that the message between first and second application is transmitted;
Make action URL use and be passed to communication port (2806) that wherein, the form of action URL comprises and is used for the identification communication passage provides motion descriptors with the first that handles action URL and the document path that utilizes the URL standard second portion from first; And
Be invoked at second function of using (3000) of appointment in the motion descriptors part of action URL.
88. 7 described methods according to Claim 8 wherein, are called second function of using and are comprised:
The motion descriptors request of partly translating into the network service expectation with action URL; And
Described request is sent to the network service.
89. 7 described methods according to Claim 8, wherein, the motion descriptors of action URL partly has following form, and this form comprises the function title of the function that identification will be called and will be passed to second one or more parameters of using.
90. 7 described methods according to Claim 8, wherein, first uses and is constructed to the XML document in the visit data model when the execution application function, and described method also is constructed to:
Obtain to use the data that produce from the network service by second; And
Described data translation is become to supply the XML form of first application access.
91. 7 described data according to Claim 8 wherein, are called second function of using and are comprised:
Be identified in the data type of document of appointment in the parameter of action URL; And
The action of recognition data type is depended in execution.
92. according to the described method of claim 91, wherein, described document provides the process logic of application, and wherein, depends on that the action that the recognition data type is carried out is used to start second application.
93. 7 described methods according to Claim 8, wherein, except the normalizing operation that in communicator API, defines, the specific operation of action URL accessing communication device.
94. 7 described methods according to Claim 8, wherein, action URL calls the application function that is used for the data outside the XML virtual machine environment in the deal with data model on local calculation element.
95. 7 described methods according to Claim 8, wherein, XLink is inserted in the XML document of describing first logic of using, and wherein, action URL uses from first and is passed to communication port when activating XLink.
96. according to the described method of claim 95, wherein, the logic of quoting in XLink is current not to be stored on the local calculation element, and wherein, the function of calling second application comprises utilizes communication port to load document from the network service.
97. 7 described methods wherein, when the user activates the XLink that is embedded in the html document, are called second function of using as required according to Claim 8.
98. according to the described method of claim 97, wherein, it is related that XLink and the invitation that will become the group membership are carried out, and wherein, activate XLink and comprise:
The URL that will move is sent to network file system(NFS);
Group folders in the customer access network file system of mandate appointment in action URL; And
Group folders is articulated on the client computes device related with the user as virtual drive.
99. 7 described methods according to Claim 8 wherein, and are called second function of using the transmission that is applied to the action URL of communication port from first are taken place asynchronously.
100. the system with computer executable instructions, described computer executable instructions will be linked by the function that different resource provides when being carried out by computer processor, and described system comprises:
At least one XLink (2826), the definite relation between the definition resource, wherein, the resource of quoting in XLink (2826) can or reside on the calculation element of separation in this locality;
Action URL has the second portion that the document path of discerning the first that is used for the communication protocol (2414-2418) of transmission data between resource and utilizing the URL standard provides motion descriptors; And
Wherein, the activation of XLink (2826) make to utilize the communication protocol of discerning in action URL (2414-2418) will move URL and is sent to second resource from first resource.
101. according to the described system of claim 100, also comprise the data type recognizer, the action that described data type recognizer is constructed to be identified in the data type of the resource of quoting in the action URL and initiates to carry out the processing of depending on the recognition data type.
102., wherein, depend on that the action that the recognition data type is carried out is one that selects from start the group of using and play up at least one user interface components according to the described system of claim 101.
103. according to the described system of claim 100, wherein, first and second resources are one that selects from the group of file, image, document, application and Query Result.
104. according to the described system of claim 100, also comprise the communication port that is used to manage the communication between first and second resource, and wherein, the activation of XLink starts from the transmission of the action URL that is applied to communication port that is carried out by the XML virtual machine.
105. according to the described system of claim 104, wherein, communication port also is constructed to:
From the data of network service acquisition by the generation of second resource; And
To become XML form from the content translation that the network service obtains for the application access of carrying out by the XML virtual machine.
106. according to the described system of claim 100, wherein, first and the communication port of action URL carries out related, and wherein, motion descriptors comprises function title and one or more parameter.
107. a method that realizes in computer executable instructions, to the selection mode modeling of user interface components, described method comprises described computer executable instructions when being carried out by computer processor:
Binding (616) between the document in definition of user's interface assembly and the data model, wherein, described binding makes the one or more data items in the document be presented on the user interface components;
Wherein, user interface components is constructed to:
Permission selects to be presented at the one or more data items (2300) on the user interface components; And
Selection in response to described one or more data items, produce the variable (1502) of the selection mode of expression user interface components, described variable has at least three dimensions, and first dimension, restriction that comprises the document in the reference data model is to second dimension of the selection of the ancestor node in the document and discern the third dimension degree of one or more descendent node from the ancestor node of storing selected one or more data items.
108. according to the described method of claim 107, wherein, binding between the document in definition of user's interface assembly and the data model comprises and will be transmitted to data model with the related one or more rules of user interface components, and described one or more rules provide and make the logic of the content of common component in can the decryption model.
109. according to the described method of claim 107, wherein, described variable is the XBind with URL, the basic path expression in second dimension and a plurality of basic path expressions in the third dimension degree in first dimension.
110. according to the described method of claim 107, wherein:
If selected a data project, then second dimension of variable is quoted the root node of XML document, and third dimension degree provides to the path of the descendent node of the root node of the data items of storage selection; And
If selected a plurality of data items, then second dimension of variable provides to the path of the father node of described one or more descendent node, and third dimension degree comprises the specific data item purpose XPath expression formula that is used to discern in the descendent node.
111., also comprise the Xpath expression formula tried to achieve being text according to the described method of claim 110.
112. according to the described method of claim 107, wherein, user interface components shows the folder tree from network file system(NFS), and wherein, the file that the user in the described identification variables network file system(NFS) selects.
113. the computer-readable medium with computer-executable modules of the standard mode that the state of representing user interface components is provided comprises:
Data model (710) is used for structured data;
At least one user interface components is constructed to:
One or more data items (2200) of video data model when user interface components carries out visual playing up;
Select described one or more data items (2300); And
Produce the variable (1502) of the selection mode of expression user interface components; And
State supervisor, the selection mode that is constructed to the user interface components that will represent in described variable is transmitted to data model (710).
114. according to the described computer-readable medium of claim 113, wherein, binding between the XML document in application definition user interface components and the data model, wherein, the described one or more data items that are presented on the user interface components are discerned by the application in the XPath expression formula.
115., wherein, comprise the rule of object when rule processor provides a plurality of operation that is tied to same document at data model stored structural data according to the described computer-readable medium of claim 113.
116. according to the described computer-readable medium of claim 113, wherein, the variable that is produced by user interface components has at least three dimensions, and the ancestor node of one or more data items that first dimension, restriction that comprises the described one or more data item destination documents of storage in the reference data model selected to second dimension of the selection of the ancestor node in the document with from storage is discerned the third dimension degree of one or more descendent node.
117. according to the described computer-readable medium of claim 113, wherein, the variable that is produced by user interface components is URL, the basic path expression in second dimension and the XBind of a plurality of basic path expressions in the third dimension degree that has as first dimension.
118. according to the described computer-readable medium of claim 113, wherein, state supervisor also is constructed to help cross over the state synchronized of the application of a plurality of client computes devices, comprising:
For with each user interface components of executory association,
Will (for example, XBind) selection mode of user interface components of expression be transmitted to data model with the public variable form; And
Via to carrying out abstract communication port, be transmitted in the selection mode of serialized user interface components among the XML with communicating by letter of network service.
119. according to the described computer-readable medium of claim 113, wherein, state supervisor also is constructed to help to carry out the recovery of the application state between the session, comprising:
For with each user interface components of executory association, with the state propagation of the user interface components state document to the data model;
In first session, state document is saved in network file system(NFS); And
In second session, each user interface components that obtains state document and feasible and this association from network file system(NFS) recovers their selection mode.
120. according to the described computer-readable medium of claim 113, wherein, user interface components is not have and the related atom component of data binding that defines, and wherein, the variable that produces the selection mode of expression user interface components comprises:
The text of object accesses input user interface assembly during from operation;
In the state document in the described text insertion data model; And
Create the XBind of the position of pointing to the described text of storage in the state document.
121. according to the described computer-readable medium of claim 113, wherein, one or more data items of data presented model are described the folder tree of network file system(NFS) when visual the playing up of user interface components.
122. a computer-readable medium is constructed to comprise from the state of previous BlueDrama recovery application:
Server end data center (502) is used to store the user data that comprises the data of describing the state of using;
At least one client computes device (300) comprising:
Processor (300);
Storer (304) has the computer-executable modules of the state that is used to preserve and recovers to use, and these modules comprise:
Data Update bus (710), be constructed to one or more data items of data model are provided with to be shown by the user interface components with association, wherein, the described one or more data items that shown by user interface components can be selected by the user;
State supervisor, be constructed in first BlueDrama will with the state propagation of each user interface components of association to state document (2202) and make state document be kept at server end data center (502);
Wherein, in second BlueDrama, calculation element also is constructed to:
By each binding of user interface components and described one or more data items (1600) of video data model; And
Obtain state document (1116) and recover to be present in the state of the user interface components first BlueDrama from server end data center (502).
123., wherein, (for example, XBind) describe selection mode with each user interface components of association with the public variable form according to the described system of claim 122.
124. according to the described system of claim 122, wherein, the state that recovers user interface components comprises: play up user interface components at the coordinate position place that occupies during first BlueDrama on the screen display.
125., wherein, obtain state document from server end data center and comprise: utilize state document to be loaded in the client-side buffer to carrying out abstract communication port with communicating by letter of specific network service according to the described system of claim 122.
126., wherein, will comprise with state propagation to the state document of each user interface components of association according to the described system of claim 122:
Determine whether user interface components is related with data binding; And
If user interface components is an atom component and not related with data binding, then from when operation the object accesses data dissemination importing the data of this user interface components and will import this user interface components to state document.
127. method that in computer executable instructions, realizes, described computer executable instructions is when being carried out by computer processor, satisfy the request that the second client computes device is opened this document when having opened file by the first client computes device, described method comprises:
On the server calculation element, obtain (3124) and original file data is buffered in the storer;
Original file data is sent to the second client computes device (3128);
Be shared (3150) to first client computes device notice this document;
Obtain and submit to (3152-3154) any previous affairs of not submitting to from the first client computes device; And
Be shared (3156) and the affairs of any submission that will obtain from the first client computes device are transmitted to the second client computes device to second client computes device notice this document.
128., also comprise and explain affairs that are transmitted to the second client computes device and the version that upgrades the file of local storage according to the described method of claim 127.
129. according to the described method of claim 127, wherein, obtain original file data and it is buffered in the storer from file server by affairs coordinator, described affairs coordinator is constructed to the Indication message server to be added this document and the related subscription list of the first and second client computes devices to.
130., wherein, between first and second client computes device, propagate any previous affairs of not submitting to and comprise according to the described method of claim 127:
Receive affairs in network service center;
Determine that this document shared by a plurality of client computes devices; And
Make message server that affairs are sent to as audiomonitor and be registered in each client computes device on this document.
131. according to the described method of claim 127, wherein, the Data Update that takes place when being opened file by a plurality of users that represent in affairs is sent to server end and submits to the source document that is buffered in the storer, and need not be submitted to the file in the storer that remains on the file server immediately.
132. according to the described method of claim 131, wherein, produce the order of preserving file, each client computes device close file and from creating affairs in the past behind the predetermined amount of time in response to the user, the affairs of the file that influence is opened by a plurality of users are submitted to the storer on the file server.
133. according to the described method of claim 127, wherein, before source document was sent to the calculation element related with the user, the user was authenticated to be the authority with visit this document.
134. according to the described method of claim 127, wherein, the task manager on the second client computes device is constructed to determine whether have any conflict between the affairs that the affairs of being submitted to file by the first client computes device produce in this locality with when the second client computes device offline time.
135. the computer-readable medium with computer executable instructions, described computer executable instructions are carried out the method for creating file in group folders when being moved by computer processor, described method comprises:
Receive the subscribe request (3136) of the variation of monitoring group folders from the first client computes device;
Be received in the document creation request (3010) of creating new file in the group folders from the second client computes device;
It in the memory location original file data allocation space (3020);
Indicate the clauses and subclauses of the new file of file database initialize and should carry out related (3022) with group folders by new file; And
Message is sent to the first client computes device (3030), and described message makes the view that upgrades the group folders on the first client computes device to reflect the new document creation that is undertaken by the second client computes device.
136. according to the described computer-readable medium of claim 135, wherein, on the first client computes device, carry out abstract communication port, produce subscribe request by generation and transmission to the request of the variation of monitoring group folders.
137. according to the described computer-readable medium of claim 135, wherein, communication port makes group folders be articulated on the first and second client computes devices as virtual drive.
138. according to the described computer-readable medium of claim 135, wherein, the applications exploiting URL demand file of carrying out on the client computes device, and is wherein carried out abstract by the communication port of described application instantiates to the loading of carrying out file from network file system(NFS).
139. according to the described computer-readable medium of claim 135, wherein, the startup of the real-time Communication for Power session between abstract first and second client computes device of the establishment of file.
140., wherein, make the establishment file to initiate the chat sessions between the group membership in the application of carrying out on the second client computes device according to the described computer-readable medium of claim 135.
141. according to the described computer-readable medium of claim 135, wherein, receive document creation by the network service and be used for authenticated is created file in group folders authority, comprising:
Inquiry file folder database and the acquisition Access Control List (ACL) related with group folders; And
The permission that Access Control List (ACL) and user is associated compares.
142. according to the described computer-readable medium of claim 135, wherein, a plurality of memory locations that the clauses and subclauses of the file in the file database are all stored original file data with file identifier and each are carried out related.
143. according to the described computer-readable medium of claim 135, wherein, new file is carried out related comprising with group folders: will be transmitted to the index server of the full-text index that is constructed to the execute file data with the metadata of file association.
144. according to the described computer-readable medium of claim 135, wherein, the subscribe request that receives the variation of monitoring group folders from the first client computes device comprises that the object with the expression group folders adds to and the related subscription list of the first client computes device, and wherein, message is sent to the first client computes device and comprises that the localization message chain is registered as audiomonitor at the renewal of described group folders to discern which client computes device.
145. a system that allows a plurality of users to receive the renewal that influences the group folders in the network file system(NFS) comprises:
Memory module (2514) is constructed to the storage of intrasystem original file data of managing network files and file;
Message server (2512) is used for:
Reception is used to monitor the subscribe request (3136) to the modification of the group folders of being shared by a plurality of group memberships;
Management and the client computes device related subscription list (2704) of monitoring to the group membership of the modification of group folders;
Affairs coordinator (2522) helps client computes device access group file, and described affairs coordinator is used for:
Obtain folder information (3122) from memory module (2514); And
In response to the modification that influences group folders, make message server (2512) send the message (3156) of this modification of describing group folders to group membership's client computes device.
146. according to the described system of claim 145, wherein, the modification that influences group folders is to create new file in group folders, and wherein, affairs coordinator also is constructed to:
Make that memory module is the original file data allocation space; And
The clauses and subclauses of the new file of indication file database initialize and this document is related with group folders.
147. a method of opening the application bag of the process that comprises application and UI logic, described method comprises:
In the resource (1116) that obtains in correspondence is used bag, to be appointed as the application of just opening on the local client computer calculation element;
Instantiation is constructed to manage the instance objects (1128) of the run time behaviour of described application; And
Utilization has distributed the application of storage space by application manager, starts the process used and the execution (1130) of view logic.
148. according to the described method of claim 147, wherein, the resource of the application that acquisition is just being opened comprises:
The expression formula based on XML to URL with at least one resource of quoting described application is carried out evaluation; And
Check that the current interior resource of client-side buffer that remains on is to determine whether can to obtain described at least one application resource in this locality.
149., wherein, be limited to specifying number of in using bag, indicating by the number of the application example of instantiation according to the described method of claim 147.
150. according to the described method of claim 147, wherein, the application of just opening is appointed as in acquisition in correspondence is used bag resource comprises: instantiation is configured to the application of a plurality of instance objects.
151. according to the described method of claim 147, wherein, the resource of the application that acquisition is just being opened comprises:
Determine whether can accessing storage resources main network site; And
If can not obtain resource, then utilize the semantic logic identification secondary network position of using in the bag from main network site.
152. according to the described method of claim 147, wherein, the resource of the appointment in using bag of acquisition comprises at least one resource of selecting from image, XML document and binary file.
153. according to the described method of claim 147, wherein, instance objects be constructed to follow the tracks of with the view layer of association that meets the MVC Design Mode at least one object and at least one object in the controller layer.
154. according to the described method of claim 147, wherein, instance objects keeps local expression formula engine, and about suitable application example, for quoting application is carried out evaluation for the expression formula of the named object of the overall situation.
155. according to the described method of claim 147, wherein, data are provided with the application bag of description with the state of the serialized executory application of XML, and wherein, the process that startup is used and the execution of view logic comprise creates application state again.
156. according to the described method of claim 147, wherein, the process of start using and the execution of view logic comprise: utilize the data type recognizer from use bag semantic data identification Doctype and carry out identification Doctype specific action.
157. the computer-readable medium with computer executable instructions, described computer executable instructions are carried out the method that obtains one or more application resources when preparing to be converted to off-line state when being moved by computer processor, comprising:
Determine whether executory application is constructed to when operation dynamic resource is carried in (3408) on the client computes device, wherein, does not discern described dynamic resource in using bag; And
Be not buffered on the client computes device if discerned dynamic resource, then obtain dynamic resource (3412-3414) from the network service.
158., also comprise according to the described computer-readable medium of claim 157:
Identification is by the static resource of the applications exploiting of appointment in using bag; And
If static resource is not buffered on the client computes device, then obtain static resource from the network service.
159. according to the described computer-readable medium of claim 158, wherein, identification is comprised by the static resource of applications exploiting: definition is described and the resource of association and the XML pattern of setting according to the structuring semantic format.
160., wherein, be embedded in by the static resource of applications exploiting and use in the bag according to the described computer-readable medium of claim 158.
161., also comprise according to the described computer-readable medium of claim 157:
User's off-line to the network Service Notification first client computes device; And
To as the audiomonitor of user's network state and the second client computes device of subscribing to is notified the user off-line.
162., wherein, determine whether executory application is constructed to dynamic resource is carried on the client computes device to comprise: identification and at least one UI that opens or the related resource of process XML document according to the described computer-readable medium of claim 157.
163., wherein, obtain dynamic resource from the network service and comprise: utilize the communication port of the operation of abstract network file system, resource is carried in the client-side buffer according to the described computer-readable medium of claim 147.
164. a system that is used for obtaining when off-line state changes when the client computes device application resource comprises:
Server end data center (502) is constructed to provide to the visit of using resource as the network service;
At least one client computes device (300) comprising:
Processor (302); And
Network interface (310) is used for via network and server end data center swap data; And
Computer-readable medium (304), but the computing machine executive module that obtains application resource from server end data center had, comprising:
Application manager (904) is constructed to discern the static resource by the applications exploiting of appointment in using bag;
Whether example components (1406) is used to determine to provide the application code of the logic of application to quote when described application is carried out and will dispatches the dynamic resource of loading; And
Communications component (2504), be constructed to when client computes device (300) be scheduled obtain when being converted to off-line state to use be not stored in local static and dynamic resource.
165. according to the described system of claim 164, wherein, the state that application manager also is constructed to server end data center notice client computes device is an off-line, and wherein, server end data center also is constructed to notify at least one audiomonitor the variation of user's network state.
166., wherein, determine to provide the application code of the logic of application whether to quote dynamic resource and comprise: identification and at least one UI that opens or the related resource of process XML document according to the described system of claim 164.
167. the method for execution that is used to start the application process code that realizes in the instruction of being carried out by computer processor, described method comprises:
The data type (1106) of the document of the association of identification and startup; And
If determine that document comprises the application process code, then:
Instantiation has the process object (1118) of the manner of execution of carrying out the process steps in using;
This process object and application example are carried out related (1000); And
Activate in this process object manner of execution (1130) and to this process object corresponding application example is provided and the application process code that will carry out in process steps.
168. according to the described method of claim 167, wherein, describe the application process code in meeting the process XML document of first pattern, described process XML document has at least one the operation element that is used to open the UI XML document that meets second pattern.
169. according to the described method of claim 167, wherein, identification comprises with the data type of the document of the association that starts: utilize the data type recognizer that the structural data in the document is used and the related standard of a plurality of data types.
170. according to the described method of claim 169, wherein, the data type recognizer is constructed to whether basis has started application bag or independent utility when the opening procedure XML document, carries out different set of actions.
171. according to the described method of claim 167, wherein, the instantiation process object comprises:
Identification also is registered in the trigger that defines in the trigger element of process XML document; And
Experience trigger event in response to user interface components, carried out the process steps of appointment in the trigger element.
172. according to the described method of claim 167, wherein, the process logic that the process object of instantiation makes second object be registered as in response to executory application is modified and notified audiomonitor.
173. according to the described method of claim 167, wherein, in XML document, describe the application process code, and wherein, the manner of execution of activation object comprises carries out evaluation to the expression formula of quoting XML document.
174. the process XML pattern of utilizing that realizes in the instruction of being carried out by computer processor is carried out the method for application process code, described method comprises:
Definition procedure XML pattern (600), wherein the effective procedure XML document comprises:
Trigger element (602) has one or more attributes of crossing range code that identification is carried out in response to user interface components experience trigger event;
At least one operates element (612), has one or more attributes of Operation Processor that identification will carry out and related expression formula; And
Have the trigger event of the attribute that mates with the trigger element in response to the user interface components experience, carry out the logic (1800) of expression in described at least one operation element (620).
175. according to the described method of claim 174, wherein, the trigger element comprises discerns the application view related with trigger and the view and the component property of assembly.
176. according to the described method of claim 174, wherein, the trigger element comprises the allocate event type and the incident and the step attribute of the process steps that will carry out in response to activated trigger.
177. according to the described method of claim 174, wherein, the operation element comprises the assembly element of the one or more attributes with recognition user interface assembly and related XPath expression formula.
178., wherein, carry out the logic of in described at least one operation element, representing and comprise: the XBind that creates the data in the reference data model according to the described method of claim 177.
179. according to the described method of claim 174, wherein, carrying out the logic of representing in described at least one operation element comprises: open the UI XML document of discerning and visually playing up the application view of representing on the graphoscope in expression formula in the UI XML document.
180. according to the described method of claim 174, wherein, utilize metadata editing machine production process XML document, wherein, the constraint of process XML pattern is applied to the figure input that the user provides.
181. one kind offers the system of one or more client computes devices with software as service, comprising:
Network file system(NFS) (2500) is used to store the raw data document and makes that can be used as virtual drive on the client computes device obtains the user data document;
At least one application (2402) provides the applied logic in the semantic applications code of writing according to one or more XML patterns; And
XML virtual machine (510), from being constructed to explain that the server calculation element of the semantic applications code of writing according to described one or more XML patterns transmits, described semantic applications code is translated into the code that is independent of platform by XML virtual machine (510).
182. according to the described system of claim 181, wherein, the XML virtual machine is constructed to carry out the logic of described at least one application, is not installed on the client computes device and be not used as executable program.
183. according to the described system of claim 181, wherein, the XML virtual machine is constructed to explain the user interface logic of the form that meets an XML pattern, and wherein, the application process logic of being explained by the XML virtual machine is the form that meets the 2nd XML pattern.
184. according to the described system of claim 181, wherein, described at least one application according to described one or more XML pattern description applied logics is constructed to provide common desktop environment, can cross over different calculation element access application and user data in this common desktop environment.
185. according to the described system of claim 181, wherein, network file system(NFS) also is constructed to help to use file simultaneously by a plurality of client computes devices, order to the renewal of this document by real time communication to each client computes device.
186. according to the described system of claim 181, wherein, network file system(NFS) also is constructed to:
Authenticated the user and be the member of the group of authority with the root folder in the accesses network file system; And
Produce to describe and deliver to the client computes device with the file cocurrent of described group of related folder tree.
187. a method that realizes in computer executable instructions, described computer executable instructions are opened new application view and this view and application example carried out related when being carried out by computer processor, described method comprises:
The data type of utilizing data type recognizer identification file is for comprising using user interface logic (1304);
The view object (1308) of the user interface components of application is played up in establishment; And
Utilize the data type recognizer that the view object that obtains is passed to instance objects (1012).
188. according to the described method of claim 187, wherein, the data type of identification file comprises the structural data applying hierarchical standard in file, and wherein, the data type recognizer is constructed to carry out different actions according to the type of the file of just opening.
189., wherein, play up the using user interface assembly and comprise according to the described method of claim 187:
Object when instantiation provides the operation of computational logic of user interface components;
To be transformed into the form that to play up by Web browser based on the user interface logic of XML based on HTML; And
Object when graphic element that utilizes view object to be connected to play up in the Web browser and described operation.
190. according to the described method of claim 189, wherein, with object provides during by operation based on the definition of the different programming language of the user interface logic of XML computational logic.
191., also comprise one group of data utilizing in the XPath expression formula recognition data model being tied to by the user interface components data presented according to the described method of claim 187.
192. according to the described method of claim 187, wherein, the identifier of application-specific example is provided for view object, and wherein, the title of distributing to the view object in the global view manager comprises the identifier of related application example.
193. according to the described method of claim 192, wherein, the identifier in the title of view object is distributed in the utilization of global view manager, with the related view of different application examples between distinguish.
194. according to the described method of claim 187, wherein, the title of distributing to the view object in the View Manager of example this locality does not comprise the identifier of application example.
195. according to the described method of claim 187, wherein, in meeting the UI XML document of first pattern, describe the using user interface logic, and wherein, in meeting the process XML document of second pattern, describe the application process logic.
196. a method of utilizing UI XML mode-definition Graphics Application layout that realizes in by the computer processor execution command, described method comprises:
Definition UI XML pattern (518), effective UIXML document (650) comprises the view elements of the title that application view is provided at least in described UI XML pattern;
Specify the pattern layout of interior element of UI XML document (650) and at least one user interface components in the attribute; And
In response to start using, object (1050) and on graphic alphanumeric display, play up described at least one user interface components (2300) when the operation of application view is represented in instantiation according to the pattern layout that UI XML document (650) in, defines.
197. according to the described method of claim 196, wherein, according to assembly API definition of user's interface assembly, described assembly API accepts to be used for be provided with from the data of data model on the user interface components and the logic of the data that renewal is visually played up by user interface components during when data model experience Data Update.
198., also comprise according to the described method of claim 197:
Object when instantiation realizes the operation of computational logic of user interface components according to assembly API; And
The computational logic that object provided when initialization was by operation when user interface components carries out visual playing up.
199. according to the described method of claim 196, wherein, the unique name that is used to quote user interface components in the Attribute Recognition expression formula related with the user interface components in the UI XML document.
200., wherein, play up application view and do not need to be applied in the UI XML document any resource of definition or scripted code according to the described method of claim 196.
201. according to the described method of claim 196, wherein, object comprised when the operation of application view was represented in instantiation:
Be identified in the semantic description of crossing the opening operation that runs in the range code of application; And
The expression formula of quoting the view that UI XML document in define related with opening operation carried out evaluation.
202. according to the described method of claim 196, wherein, object comprised the data type of utilizing data type recognizer identification UI XML document when the operation of application view was represented in instantiation.
203. a system that is used to open application view comprises:
Opening operation processor (1402) is constructed to carry out the opening operation of using of crossing range code justice decided at the higher level but not officially announced;
Data type recognizer (1404) is used for when the data type of being determined document by opening operation processor (1402) when calling; And
View object (1408) is constructed to:
Play up the graphic element of in the document of the visual layout that defines application view, representing (2300); And
The graphic element of playing up is connected (1700) with the range code of crossing of application.
204. according to the described system of claim 203, also comprise the instance objects that is constructed to function definition is connected to the execution of crossing range code of application, and wherein, the data type recognizer also is constructed to carry out related with corresponding instance objects view object.
205., also comprise the expression formula engine that is constructed to the expression formula of quoting view object be carried out evaluation about suitable application example according to the described system of claim 204.
206. according to the described system of claim 203, also be included in the one or more user interface components created in the level that concern of view object, and wherein, the graphic element of playing up is connected with the application process code comprises notification triggers device event bus when described one or more user interface components experience trigger event.
207. a method that realizes in the executable instruction of computing machine, described computer executable instructions are provided with the rule related with user interface components in data model when being carried out by computer processor, described method comprises:
Object (1308) when instantiation realizes the operation of computational logic of user interface components;
If user interface components is regular user, then be the assembly regular allocation name space (2106) in the data model;
Come the rule (2108) of using user interface assembly by the execution of rule processor; And
The rule related with user interface components merged to (2110) in the data model, and described rule is integrated into the name space that the associated name space of different assemblies with in the data model separates.
208. according to the described method of claim 207, wherein, in response to the modification to the data model, user interface components is constructed to:
Receive the variable of the position that is modified in the data of description model; And
If the rule in the data model is modified, then the executing rule processor is to guarantee the integrality about the data model of user interface components.
209. according to the described method of claim 208, wherein, expression is to the modification of data model in a plurality of objects, each object provides the XBind of the position of the generation data model modification of quoting in the XML document.
210. a method that realizes in computer executable instructions, described computer executable instructions are carried out the partial update by the user interface components data presented when being moved by computer processor, described method comprises:
User interface components is tied to one group of data (1600) in the data model; And
In response to the modification to the data model, user interface components is constructed to:
Receive the variable (2208) of the position that is modified in the data of description model;
Identification is subjected to subclass influence, the current data presented of user interface components (2216) to the modification of data model; And
Upgrade the binding related and play up subclass influence, the current data presented of user interface components (2220) that is subjected to Data Update again with user interface components.
211. according to the described method of claim 210, wherein, do not play up again the modification that is not subjected to data model influence, the user interface components data presented.
212. according to the described method of claim 210, wherein, the one group of data that user interface components is tied in the data model comprise: the constructing user interface assembly is inquired about when satisfying the operation to the XBind of the position of the user bound interface assembly in the reference data model.
213. according to the described method of claim 210, wherein, expression is to the modification of data model in a plurality of objects, each object provides the XBind of the position of the generation data model modification of quoting in the XML document.
214. according to the described method of claim 210, wherein, the variable of the position that is modified in the data of description model comprises the XPath expression formula of the subclass that is used to select the data in the XML document.
215. according to the described method of claim 210, wherein, subclass influence, the current data presented of user interface components of modification that identification is subjected to data model comprises: when using when carrying out in operation to the XPath evaluation of expression.
216. according to the described method of claim 210, wherein, user interface components also is constructed to utilize rule to come the interior content of decryption model, described rule makes common component be applicable to a plurality of XML patterns.
217. according to the described method of claim 216, wherein, in the related rule of user interface components remains on the name space that separates with the associated rule of the different objects that are tied to same document.
218. according to the described method of claim 210, wherein, user interface components is one that selects from tree assembly, list element and grid assembly.
219. according to the described method of claim 210, wherein, one group of data that user interface components is tied in the data model comprise:
Determine whether user interface components is just experiencing primary data and upgrading; And
Carry out if primary data is upgraded, then be presented at the complete representation of the basic data of quoting in the XBind by user interface components.
220. a method that realizes in computer executable instructions, described computer executable instructions utilize application programming interface to create user interface when being carried out by computer processor, described method comprises:
Accept one or more API Calls from the application that is intended to create the new user interface assembly, described one or more API Calls comprise that definition at least is used for being provided with from the data (1608) of data model on the user interface components and the call parameters of the computational logic of the data (2218) that renewal is visually played up during when data model experience Data Update; And
Object (1308) when instantiation is implemented in the operation of the computational logic of definition in described one or more API Calls, and when visually playing up user interface components the computational logic (2312) of object during this operation of initialization.
221. according to the described method of claim 220, wherein, the call parameters of described one or more API Calls comprises that section data that execution is visually played up by user interface components is upgraded or the logic of update all, wherein, the feasible subclass of playing up the current data presented of user interface components again of partial update.
222. according to the described method of claim 220, wherein, the call parameters of described one or more API Calls comprises that also definition is used for the logic of the offloading functions of execute store management when closing user interface components.
223. according to the described method of claim 220, wherein, object when create realizing being used on user interface components, being provided with the operation of data computing logic, and do not allow any resource of application definition or scripted code.
224. according to the described method of claim 220, wherein, the computational logic of object comprises during the initialization operation:
Play up the view of application; And
Object when at least one graphic element during the playing up of the user interface components that will represent in application view is connected to the operation that is provided for being provided with the data computing logic on user interface components.
225., wherein, when being independent of the operation that is provided on user interface components, being provided with the data computing logic, in the XSLT of object definition, describe the logic that is used for visually playing up user interface components according to the described method of claim 220.
226. according to the described method of claim 220, wherein, the user interface components that utilizes application programming interface to create is constructed to inherit the attribute of parent component.
227. the method for the user interface components of an initialization application that realizes in the instruction of being carried out by computer processor, described method comprises:
Application view is connected to when the visual display of user and calculation element carries out the incident (2306) that produces when mutual;
The logic of the visual layout of utilization description application view is played up the graphic element (2308) of at least one user interface components;
Object (2310) when instantiation provides the operation of computational logic of user interface components wherein, is independent of the logic that is used for playing up with visual means user interface components, defines described computational logic; And
The computational logic (2312) of initialization object of described when operation when visually playing up user interface components.
228., wherein, application view is connected to the incident of carrying out producing when mutual when the visual display of user and calculation element comprises according to the described method of claim 227:
Be used to play up at Web browser on the DOM object of application view and register audiomonitor; And
In the DOM object, insert unique identifier to carry out graphic element object when moving related.
229., also comprise according to the described method of claim 228:
Receive the notice of the incident of user's generation;
From the unique identifier of DOM object identification with this event correlation; And
Object during operation that the incident that notice is produced by this user activates.
230., wherein, application view is connected to the incident of carrying out producing when mutual when the visual display of user and calculation element comprises: utilize the data type recognizer to determine that document comprises the user interface logic of application according to the described method of claim 227.
231. according to the described method of claim 227, wherein, application view being connected to the incident of carrying out producing when mutual when the visual display of user and calculation element comprises: determine whether that the previous dialog box of creating still remained in the storer to be reallocated to application view.
232. according to the described method of claim 227, wherein, the graphic element of playing up at least one user interface components comprises the XML user interface logic is transformed into the form based on HTML that can be played up by Web browser, and wherein, with the computational logic of the programming language definition of user's interface assembly different with the XML user interface logic.
233. according to the described method of claim 227, wherein, the graphic element of playing up at least one user interface components comprises the intrinsic graphic primitive of the resource access calculation element that does not utilize Web browser.
234. according to the described method of claim 227, wherein, the computational logic of object comprises that utilization is provided with the default setting of user interface components according to the method for assembly API definition, provides any source or scripted code and need not to use during the initialization operation.
235., also comprise user interface components is tied to document in the data model according to the described method of claim 227.
236. the computer-readable medium with computer executable instructions, described computer executable instructions are carried out the method for visually playing up user interface components when being moved by computer processor, described method comprises:
In the document (650) of the description of the view logic that comprises application, insert the XLink that points to the view logic related with user interface components;
Under the situation that does not activate XLink, play up the view logic (2300) of application;
In response to executory application activating XLink, obtain the view logic (1116) related with user interface components; And
Utilize the logic that when activating XLink, obtains to play up user interface components (2300).
237., wherein, play up the view logic of the application of in document, representing when starting when using, and when by user access, play up user interface components on demand according to the described computer-readable medium of claim 236.
238. according to the described computer-readable medium of claim 236, wherein, XLink is inserted in the XML document as element and two bi-directional chainings between the document is provided.
239. according to the described computer-readable medium of claim 236, wherein, the view logic of quoting in XLink is current not to be stored on the local calculation element, and the acquisition view logic related with user interface components comprises that utilization loads document to carrying out abstract passage with communicating by letter of network service.
240. according to the described computer-readable medium of claim 236, wherein, the view logic of quoting in XLink provides the XML semantic description of the visual layout of the user interface components with any resource or scripted code.
241. according to the described computer-readable medium of claim 236, wherein, the XLink that inserts provides insufficient information with the acquisition view logic related with user interface components to application, and does not expose information to the client computes device that requires independent License Check to be stored in the data of network file system(NFS) with visit.
242. a calculation element that is used to play up the user interface components that application view and initialization use comprises:
Processor (300);
Storer (304) has the computer-executable modules of the computational logic that is used for visually playing up application view and initialization user interface components, and described module comprises:
Graph rendering module (408) is used on graphoscope render graphics element and receives the notice of the incident that the user produces;
At least one user interface components (706), object (1562) is related with the logic that is used for visually playing up user interface components on graphoscope and when the operation of independent definition of the computational logic that satisfies the incident that the user produces is provided; And
Views module (1558), the computational logic that being constructed to the graphic element that will be played up by graph rendering module object with by operation the time provides is connected.
243. according to the described calculation element of claim 242, wherein, graph rendering module is a Web browser, and wherein, the render graphics element comprises the conversion of execution XML formatted data to html format on graphoscope.
244. according to the described calculation element of claim 242, wherein, the intrinsic graphic primitive that the graph rendering module utilization is provided by the machine operation system and do not utilize the resource of Web browser.
245., also comprise being used for and being arranged on data binding on the user interface components the binding module to the data model by the position of XPath expression formula identification according to the described calculation element of claim 242.
246. according to the described calculation element of claim 245, wherein, object also is constructed to add the rule that is used for the content in the decryption model to rule processor during operation.
247. the computer-readable medium with computer executable instructions, described computer executable instructions are carried out the method for the XML document application data being handled primitive when being moved by computer processor, described method comprises:
Providing during identification is used utilizes data manipulation primitive to revise the operation (1202) of the logic of the data in the XML document;
Generation meets the variable (1203) of quoting the position that is subjected to the influence of data manipulation primitive in the XML document of common data type; And
Represent (for example, " document object ") to be implemented in the data manipulation primitive of appointment in the operation during operation of call XML document, wherein, when using when carrying out, realize data manipulation primitive by document object in operation.
248. according to the described computer-readable medium of claim 247, wherein, it is one that from replace, replace additional, preceding additional, the group of inserting, remove, remove child, newly-built and deletion of text, back, selects at the data manipulation primitive that operation the time realizes on XML document.
249. according to the described computer-readable medium of claim 247, wherein, the data manipulation primitive that is implemented in appointment in the operation comprises:
Produce the affairs of the relative variation of expression XML document; And
Sending described affairs on the network on remote computing device, to realize and to change relatively.
250. according to the described computer-readable medium of claim 247, wherein, the data manipulation primitive that is implemented in appointment in the operation comprises expression formula tried to achieve and is text, comprising:
Be identified in the user interface components of quoting in the expression formula; And
If user interface components is atom and not related with data binding, the text of object accesses input user interface assembly during then directly from the operation of correspondence.
251., wherein, produce the variable meet the common data type and comprise the expression formula in using is tried to achieve to having URL and pointing to the XBind in basic path of the subclass of the data in the XML document according to the described computer-readable medium of claim 247.
252. according to the described computer-readable medium of claim 247, wherein, the logic in the application meets the MVC Design Mode, and wherein, the process logic that data manipulation primitive is used for using is to revise the content of data model.
253. according to the described computer-readable medium of claim 247, wherein, the data manipulation primitive that is implemented in appointment in the operation comprises in the data conversion and the data insertion XML document with the purpose form of execution from source format to the purpose form.
Formative data translation becomes to meet the form of the 2nd XML pattern 254. according to the described computer-readable medium of claim 253, wherein, described conversion is the Extensible Stylesheet Language (XSL) conversion, and this transform definition how will be according to an XML pattern.
255. according to the described computer-readable medium of claim 247, wherein, by be applied in type attribute with the particular type that is used for discerning the data manipulation primitive that will realize, be used to select to insert XML document data optional selection attribute and be used to quote the storage element of value attribute of the subclass of the data in the XML document, definition of data is handled primitive.
256. a method that realizes in computer executable instructions, described computer executable instructions is transformed into the purpose form with data from source format when being carried out by computer processor, and described method comprises:
Being provided for during identification is used carried out the operation (1202) of the logic of data conversion;
Obtain the data (1908) of source format from the document of in the logic of described operation, discerning; And
Data to source format are applied in the conversion (1910) that defines in the described operation, wherein, use described conversion when using execution when operation.
257., wherein, in the operation that also is constructed to the data of purpose form are inserted XML document, use described conversion according to the described method of claim 256.
258., wherein, the data of conversion are inserted XML document comprise according to the described method of claim 257:
Create the affairs of the relative variation of expression XML document; And
Make data bus be implemented in the relative variation of representing in the described affairs.
259. according to the described method of claim 256, wherein, the data of the purpose form of conversion are provided for being applied in second basis of using the logic of interior definition.
Formative data translation becomes to meet the form of the 2nd XML pattern 260. according to the described method of claim 256, wherein, described conversion is the Extensible Stylesheet Language (XSL) conversion, and this transform definition how will be according to an XML pattern.
261. according to the described method of claim 256, wherein, the data that obtain source format in the logic of described operation from the document of discerning comprise: the expression formula will using is tried to achieve the XBind into the subclass of pointing to the data in the document.
262. according to the described method of claim 256, wherein, be applied in the conversion that defines in the described operation and comprise providing and be constructed to carry out the XML virtual machine that has separated the application of application function according to the MVC Design Mode that the logic of described conversion is defined within the model XML document.
But 263. one kind have the computer-readable medium that is used for the XML document application data is handled the computing machine executive module of primitive, comprising:
The change that application component (600), definition are used to utilize data manipulation primitive to revise the data in the XML document is operated;
Document object (710) provides to have when being used for that XML document carried out the operation of XML document of method of a plurality of data manipulation primitive and represents;
Change processor, be constructed to:
(1902) are resolved in the change operation that defines in application component;
Logic from change operation produces quotes the XBind (1904) of the position that is subjected to this change operating influence in the XML document; And
Call the method that is used to carry out data manipulation primitive (2008) of document object, wherein, this method call provides the XBind that quotes the position that is subjected to this change operating influence in the XML document to document object (710).
264., also comprise according to the described computer-readable medium of claim 263:
Communication port is used for the network service between the service of abstract local client computer calculation element and network; And
Task manager is used to create being illustrated in the affairs that change the relative variation of the XML document of definition in the operation and utilizing communication port that these affairs are sent to the network service.
265. according to the described computer-readable medium of claim 263, wherein, change processor and also be constructed to before XML document is carried out data manipulation primitive, to carrying out the Extensible Stylesheet Language (XSL) conversion, to be transformed into the 2nd XML pattern according to the formative data of an XML pattern.
266. according to the described computer-readable medium of claim 263, wherein, by change data manipulation primitive that processor carries out be from replace, replace text, preceding additional, the back is additional, insert, remove, remove child, select the group of newly-built and deletion one.
Carry out the method that related localization concerns level 267. an establishment will be used to carry out the object of application with example, described method comprises:
The instance objects (1128) of the run time behaviour of executory application is managed in instantiation, and described instance objects is related with Provisioning Instance Identifier;
Provide quote (1012) to instance objects at least one object of being constructed to carry out the operation that in the application process code, defines;
View object to the user interface logic that is used for realizing using provides Provisioning Instance Identifier (1306); And
Provide quote (1308) to instance objects to view object.
268., also comprise the incident that produces in response to using user interface experience user according to the described method of claim 267:
Make the component object that keeps by view object utilize Provisioning Instance Identifier identification to experience the application example of described incident; And
Suitable instance objects is offered described at least one object with the application process logic association.
269. according to the described method of claim 267, wherein, be constructed to carry out the operation that in the application process logic, defines described at least one to as if stateless and use by each example of the application of just carrying out.
270. according to the described method of claim 267, wherein, instance objects is kept by the application that has been assigned with storage space by application manager.
271. according to the described method of claim 267, wherein, instance objects is safeguarded the local mini View Manager of quoting that keeps view object.
272. according to the described method of claim 267, wherein, instance objects safeguard to keep the local mini Process Manager of quoting to described at least one object that is constructed to carry out the operation that defines in the application process code.
273. according to the described method of claim 267, wherein, instance objects is safeguarded the local expression formula engine that is used for the expression formula of reference data model is carried out evaluation.
274. according to the described method of claim 273, wherein, described application meets the MVC Design Mode, and wherein, the expression formula engine queries data model layer that the object utilization related with the controller layer of using provided by instance objects, and the object in not direct and the different layers carries out alternately.
275. according to the described method of claim 267, wherein, the data type recognizer is constructed to Provisioning Instance Identifier is passed to view object and return quoting to be followed the tracks of by mini View Manager view object.
276. according to the described method of claim 267, wherein, the data type recognizer is constructed to transmit to the quoting of described at least one object that is constructed to carry out the operation that defines in the application process code, to be followed the tracks of by mini Process Manager.
277. an execution meets the method for many exemplary application of MVC Design Mode, described method comprises:
Example, at least one object related with the process logic of using and and related at least one object of the user interface logic used between opening relationships level (1308);
Experienced the incident that the user produces in response to using user interface, made and discern the example (1708) that has experienced described incident with described at least one object of using user interface logic association; And
Notify the incident of described user's generation and suitable example (1712) is provided to the object related with the process logic of using.
278. according to the described method of claim 277, wherein, example, at least one object related with the process logic of using and and related at least one object of the user interface logic used between the opening relationships level comprise:
The instantiation instance objects;
Wherein, described instance objects is constructed to have local mini View Manager and mini Process Manager, described mini View Manager maintenance is quoted described at least one object related with the user interface logic of using, and described mini Process Manager keeps quoting described at least one object related with the process logic of using.
279. according to the described method of claim 278, wherein, provide suitable example to comprise expression formula carried out evaluation, comprising:
In the mini View Manager in this locality, search quoting to the view object in expression formula, quoted; And
If this view object not in the mini View Manager in this locality, is then inquired about this view object in the global view manager.
280. according to the described method of claim 277, wherein, the opening relationships level comprises to described at least one object with the using user interface logic association provides Provisioning Instance Identifier.
281. according to the described method of claim 277, wherein, described example is by having the application maintenance that is assigned to the storage space of application by application manager.
282. according to the described method of claim 277, wherein, utilization is constructed to register the task manager of the object conduct related with the controller layer in the MVC application at the audiomonitor of the incident that is produced by the related object of the user interface layer in using with MVC, carries out incident from described user's generation to the object related with the process logic of application that notify.
283. the controller layer with application is connected to the system of the data model layer and the view layer of application, described system comprises:
Expression formula engine (1260) is constructed to provide from the statement visit to model layer of the process logic used, and need not make in the controller layer object directly and the object in the model layer carry out alternately;
Task manager (914) is used for making the process logic of using to register the audiomonitor of the trigger event of initiating at the object in the view layer of using;
Process component (600) is constructed to:
About suitable application example the expression formula of reference data model layer is carried out evaluation (1708) by the expression formula engine;
Utilize task manager to register one or more triggers (1124); And
When the experience of the object in the view layer of using trigger event, receive notice (1172) from task manager (914).
284. according to the described system of claim 283, wherein, about suitable application example the expression formula of reference data model layer being carried out evaluation by the expression formula engine comprises: instance objects and at least one object related with controller layer and and related at least one object of view layer between the opening relationships level.
285. according to the described system of claim 283, wherein, about suitable application example the expression formula of reference data model layer is carried out evaluation by the expression formula engine and comprise: the structure instance objects is to keep the expression formula engine.
286. according to the described system of claim 283, wherein, the notice that receives trigger comprises the application example that makes the interior object of using of view layer discern the experience trigger event.
287. the method that current namespace information is provided to object when carrying out the Data Update that influences the one or more rules in the data model, described method comprises:
Reception notification (2202) when the rule in the document in remaining on data model experiences Data Update;
Call and the rule processor (2206) that has experienced the document associations of described Data Update; And
Provide current namespace information (2208) to described object, described current namespace information makes the content in the data model of the identification of described object and the rule association of described object.
288. the data synchronization system of the executory application of management, described system comprises:
Task manager (910) is constructed to receive document is carried out the request of Data Update and the affairs that the relative variation of document is represented in establishment;
Document (710) in the data model is used for receiving the affairs that produced by task manager (910), carries out the Data Update of representing in described affairs, and to the Data Update of one or more audiomonitor notices to the data model; And
Data binding assembly (706) is constructed to be registered as the audiomonitor at the Data Update of document (710), reception notification when document (710) experience Data Update, and the information and executing that is presented on the user interface upgraded to reflect described Data Update.
289. the system that the data source level of abstraction of application is provided, described system comprises:
Contact manager (2412), be constructed to create and be kept for obtaining one or more communication ports (2414-2418) of resource from external source, reception obtains the request of resource from external source, identification is constructed to the communication port of processes said request, and makes communication port obtain resource from external source; And
Document manager (912) is constructed to iff obtaining one or more document objects (2404-2408) that resource then provides the request that obtains resource and maintenance to make the application access resource to contact manager (2412) from external source.
290. a system that manages the control flow in the executory application comprises:
Process steps (612) has one or more operations of definition of order execution thread, wherein, in case carried out all operations (614-618) in the process steps (612), carries out flow process and turns back to the homophony object; And
Call statement in the main body of process steps (612) is rewritten default execution flow process and is made and carries out the object procedure step that is directed at identification in the call statement, wherein, in case the object procedure step is finished execution, carries out flow process and turns back to described call statement.
291. according to the described system of claim 290, wherein, described call statement is constructed to time delay and calls, and in described time delay is called, after the fixed time section of appointment in call statement, carries out flow process and is directed to described object procedure step.
292. according to the described system of claim 290, wherein, described call statement is constructed to the time interval and calls, in calling in the described time interval, in call statement, after the designated time intervals, carry out flow process and turn back to described process steps from the object procedure step.
293. according to the described system of claim 290, wherein, described call statement is constructed to asynchronous call, in described asynchronous call, the execution flow process in the process steps is proceeded and is not waited for that the object procedure step finishes execution.
294. according to the described system of claim 290, also comprise the decision operation in the process steps, described decision operation compares between at least two selections, and the result of described comparison rewrites default execution flow process and makes the object procedure step of carrying out identification in the main body be directed at decision operation and do not make and carry out flow process and turn back to described process steps.
295., wherein, in the main body of decision operation, carry out and relatively comprise: the XPath expression formula that defines in the main body of decision operation is carried out evaluation according to the described system of claim 294.
296. according to the described system of claim 290, also comprise opening operation, this opening operation makes and obtains the using user interface logic and visually play up one or more user interface components.
297. according to the described system of claim 290, also comprise trigger, this trigger is constructed to:
The sign of the process steps that cache responses is carried out in trigger event; And
In response to the generation of trigger event, the process steps of flow guiding sign will be carried out.
298. a method of managing the execution flow process in the application, described method comprises:
With the process steps of carrying out in the application of one or more operations that flow guiding has the definition of order execution thread (612) (1130);
During call statement between the operation in running into process steps (612), execution is directed at the object procedure step of discerning in the call statement (1712); And
In case the object procedure step is finished execution, make the execution flow process turn back to described call statement (1200).
299., also comprise according to the described method of claim 298:
During decision operation in running into process steps, between at least two selections, compare; And
Result based on the comparison will carry out the object procedure step of identification in one of selection that flow guiding defines in the main body of decision operation, do not carry out flow process and return described process steps and do not make.
300. according to the described method of claim 299, wherein, relatively comprise in execution between at least two selections: the XPath expression formula that defines in to the main body in decision operation is carried out evaluation.
301. according to the described method of claim 298, wherein, described call statement is constructed to time delay and calls, and in described time delay is called, after the fixed time section of appointment in call statement, carries out flow process and is directed to described object procedure step.
302. according to the described method of claim 298, wherein, described call statement is constructed to the time interval and calls, in calling in the described time interval, after the fixed time section of appointment in call statement, carry out flow process and turn back to described process steps from the object procedure step.
303. according to the described method of claim 298, wherein, described call statement is constructed to asynchronous, and the execution flow process in the process steps is proceeded and do not waited for that the object procedure step finishes execution.
304., wherein, the process steps of carrying out in the flow guiding application is comprised according to the described method of claim 298:
Identification and registration are by the trigger of application definition; And
In response to the incident that activates described trigger, the process steps that flow process is discerned from the Object Oriented OO that activates described trigger will be carried out.
305. according to the described method of claim 298, wherein, as carrying out flow process and make the asynchronous request to data be sent to the network service guiding as shown in the call statement via communication port.
306. a method of utilizing the process operation application programming interface to expand XML virtual machine (512), described method comprises:
Foundation can be present in the interior XML syntactic structure of main body of operation (614-618), comprising:
The definition of at least one daughter element (622) with associated name and data type is provided; And
Related with described at least one daughter element (622) definition with at least one attribute of the usage whether associated name, data type and appointment need attribute is provided;
Generation is used for explaining the Operation Processor (1402) of the logic of definition in described at least one daughter element (622), and described Operation Processor (1402) is constructed to dock with the manner of execution of each Operation Processor transmission identical parameters type of calling to the application of just being carried out by XML virtual machine (510).
307. according to the described method of claim 306, wherein, the parameter that is passed to Operation Processor comprises instance objects, process object and the XBind that tries to achieve.
308. according to the described method of claim 307, wherein, anything of the logic in Operation Processor is provided for the main body of interpreter operation and not to the manner of execution return data.
309. according to the described method of claim 306, wherein, Operation Processor is to conduct interviews and the standalone feature directly do not carried out on the client computes device from the network service.
310. a method that obtains the tabulation of the file in the file, described method comprises:
Reception is to can be by the folder identifier (2908) in the request of the tabulation of the file in the file of user capture;
The search index server is to obtain the tabulation (2910) of the file related with this document folder identifier;
Search one or more limited files (2912) in the tabulation of file, each limited file has the associated data that the indication user does not have the authority of visit this document;
Remove one or more files (2914) from the tabulation of file; And
The tabulation of file is sent to client computes device (2916).
311. the method that privacy is provided in the environment of group membership, described method comprises:
Acquisition is used to quote the user's of the membership qualification that does not have definition in the corporations overall user's name (3204);
Establishment has the group (3300) of associated with folder, and this associated with folder storage is used for quoting user's user definition handle in the group environment;
Overall user's name is mapped to one or more group the user definition handle (2704) of described user for the member; And
With the communicating by letter of group membership in, between overall user's name and user definition handle, resolve user's identity (3100).
312. the method that the Application of composite of a plurality of remote data sources of visit is provided, described method comprises:
Definition is used for obtaining from each described remote data source one or more communication ports (2414-2418) of data;
With at least one component binding to the data that receive via described one or more communication ports being carried out document (1600) in the abstract data model; And
When via described one or more communication ports (2414-2418) when remote source receives data, upgrade the user interface (2300) of assembly.
313. computer-readable medium shown and described herein, calculation element, equipment, method and system.

Claims (4)

1. an application platform that is used to carry out application is separated to function in a plurality of layers according to the MVC Design Mode in described application, and described application platform is constructed to:
The object that is provided for defining in the user interface logic of using is tied to the bindings processor of the document in the data model, and wherein a plurality of objects can be bound to same document;
Make described object can utilize rule and explain the content in the document that object is tied to and needn't understand the structure of document; And
How the object that keeps definition to be tied to each service regeulations of same document in data model will explain the rule processor of their data binding.
2. application platform according to claim 1 also comprises:
Make the eavesdropping target be registered as audiomonitor at the Data Update of on document, carrying out; And
Experienced Data Update in response to document, exercise notice and be provided for determining to each eavesdropping target whether this eavesdropping target's data binding is subjected to the data of the influence of described Data Update.
3. application platform according to claim 1, wherein, how the object that keeps definition to be tied to each service regeulations of same document in data model will explain that the rule processor of their data binding comprises: make the semantic logic of object rule be included in the data model in the name space that separates with the associated rule of other object.
4. described herein and shown in application platform and use its method.
CN200880116332A 2007-09-28 2008-09-29 Network operating system Pending CN101861576A (en)

Applications Claiming Priority (32)

Application Number Priority Date Filing Date Title
US97624907P 2007-09-28 2007-09-28
US97628107P 2007-09-28 2007-09-28
US97622207P 2007-09-28 2007-09-28
US97624607P 2007-09-28 2007-09-28
US97626907P 2007-09-28 2007-09-28
US97621607P 2007-09-28 2007-09-28
US97626607P 2007-09-28 2007-09-28
US97627507P 2007-09-28 2007-09-28
US97625807P 2007-09-28 2007-09-28
US97625207P 2007-09-28 2007-09-28
US60/976,311 2007-09-28
US60/976,312 2007-09-28
US60/976,327 2007-09-28
US60/976,275 2007-09-28
US60/976,308 2007-09-28
US60/976,246 2007-09-28
US60/976,258 2007-09-28
US60/976,292 2007-09-28
US60/976,320 2007-09-28
US60/976,222 2007-09-28
US60/976,281 2007-09-28
US60/976,249 2007-09-28
US60/976,339 2007-09-28
US60/976,325 2007-09-28
US60/976,283 2007-09-28
US60/976,269 2007-09-28
US60/976,216 2007-09-28
US60/976,252 2007-09-28
US60/976,301 2007-09-28
US60/976,304 2007-09-28
US60/976,266 2007-09-28
PCT/US2008/078169 WO2009043033A2 (en) 2007-09-28 2008-09-29 Network operating system

Publications (1)

Publication Number Publication Date
CN101861576A true CN101861576A (en) 2010-10-13

Family

ID=42946622

Family Applications (4)

Application Number Title Priority Date Filing Date
CN200880116332A Pending CN101861576A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116396A Pending CN101861580A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116398A Pending CN101861582A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116397A Pending CN101861581A (en) 2007-09-28 2008-09-29 Network operating system

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN200880116396A Pending CN101861580A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116398A Pending CN101861582A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116397A Pending CN101861581A (en) 2007-09-28 2008-09-29 Network operating system

Country Status (1)

Country Link
CN (4) CN101861576A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107409090A (en) * 2015-03-19 2017-11-28 株式会社理光 Communication control unit, communication system, communication control method and computer program product
CN110870256A (en) * 2017-07-18 2020-03-06 甲骨文国际公司 Methods, systems, and computer-readable media for operating a telecommunications network using a native computing system and a non-native cloud computing system
WO2022121492A1 (en) * 2020-12-07 2022-06-16 北京锐安科技有限公司 File transmission method and apparatus, computer device, and storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346460B (en) * 2011-05-27 2013-11-13 运软网络科技(上海)有限公司 Transaction-based service control system and method
CN105956145B (en) * 2016-05-12 2019-05-17 武汉斗鱼网络科技有限公司 The realization method and system of the mashed up load of different style contents in a kind of list
CN111404764B (en) * 2019-01-02 2021-11-19 中国移动通信有限公司研究院 Telecommunication cloud pre-integration deployment test method and device
CN114063886A (en) * 2020-07-31 2022-02-18 伊姆西Ip控股有限责任公司 Method, electronic device and computer program product for storage management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289457A1 (en) * 2004-06-29 2005-12-29 Microsoft Corporation Method and system for mapping between structured subjects and observers
US20060112399A1 (en) * 2004-11-18 2006-05-25 Lessly Roger T Automated binding for object oriented programming user interface components
CN1834906A (en) * 2005-03-15 2006-09-20 微软公司 Rich data-bound applications
US20070061740A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Content based user interface design

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289457A1 (en) * 2004-06-29 2005-12-29 Microsoft Corporation Method and system for mapping between structured subjects and observers
US20060112399A1 (en) * 2004-11-18 2006-05-25 Lessly Roger T Automated binding for object oriented programming user interface components
CN1834906A (en) * 2005-03-15 2006-09-20 微软公司 Rich data-bound applications
US20070061740A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Content based user interface design

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRIAN WALSH: "AJAX and the Spring Framework with TIBCO General Interface", 《HTTP://WWW.THESERVERSIDE.COM》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107409090A (en) * 2015-03-19 2017-11-28 株式会社理光 Communication control unit, communication system, communication control method and computer program product
CN110870256A (en) * 2017-07-18 2020-03-06 甲骨文国际公司 Methods, systems, and computer-readable media for operating a telecommunications network using a native computing system and a non-native cloud computing system
CN110870256B (en) * 2017-07-18 2023-07-07 甲骨文国际公司 Method, system and computer readable medium for operating a telecommunication network
WO2022121492A1 (en) * 2020-12-07 2022-06-16 北京锐安科技有限公司 File transmission method and apparatus, computer device, and storage medium

Also Published As

Publication number Publication date
CN101861581A (en) 2010-10-13
CN101861582A (en) 2010-10-13
CN101861580A (en) 2010-10-13

Similar Documents

Publication Publication Date Title
US11838358B2 (en) Network operating system
CN101861578B (en) Network operating system
US7917584B2 (en) Gesture-based collaboration
CN101952815A (en) Cooperation based on attitude
CN101861576A (en) Network operating system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20101013