[go: up one dir, main page]

CN101861582A - Network operating system - Google Patents

Network operating system Download PDF

Info

Publication number
CN101861582A
CN101861582A CN200880116398A CN200880116398A CN101861582A CN 101861582 A CN101861582 A CN 101861582A CN 200880116398 A CN200880116398 A CN 200880116398A CN 200880116398 A CN200880116398 A CN 200880116398A CN 101861582 A CN101861582 A CN 101861582A
Authority
CN
China
Prior art keywords
data
application
xml
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
CN200880116398A
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/078166 external-priority patent/WO2009043030A2/en
Publication of CN101861582A publication Critical patent/CN101861582A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

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, the provisional application No.60/976 that on September 28th, 2007 submitted to, 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 GPA00001138394900131
Operating system, Apple
Figure GPA00001138394900132
Operating system, UNIX Operating system, Linux
Figure GPA00001138394900134
Operating system, Nokia
Figure GPA00001138394900135
Symbian, Google
Figure GPA00001138394900136
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 GPA00001138394900141
The Internet Explorer of Microsoft
Figure GPA00001138394900142
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, 202 or 216 can provide the service of applied logic as network to client-side assembly 410 in the server end data.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 GPA00001138394900171
Java, C, C++, HTML, JavaScript, AJAX, Adobe
Figure GPA00001138394900172
Flash, Microsoft
Figure GPA00001138394900173
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 A11036, instance objects A21038 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 GPA00001138394900811
Flash, Micorsoft
Figure GPA00001138394900812
SilverLight, Java
Figure GPA00001138394900813
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
Figure GPA00001138394900814
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 SQLAPI 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.Visitor's corpse machine 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) routed source (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. platform XML virtual machine (510) independently, this XML virtual machine (510) are accepted with XML programming language written application code as input and carry out at calculation element (300) and go up the method for carrying out described application code, and this method comprises:
Object (902-914) when definition is used to carry out one group of operation of application, described application comprises the instance objects that is constructed to function definition is coupled to the execution of application process code;
The low structure (" Operation Processor ") (1206) of the operation that execution defines in the application process code is provided; And
Execution makes stateless process object provide the logic (1504) of instance objects to Operation Processor, and the variation of using run time behaviour between the application process code period is being carried out in this instance objects explanation.
2. XML virtual machine according to claim 1 (510), wherein, object (902-914) comprising when definition was used to carry out one group of operation of application: the localization that the border of application example delimited in definition concerns level.
3. XML virtual machine according to claim 1 (510), wherein, the logic that execution makes stateless process object be used to carry out the application process code comprises provides trigger event bus (914), and this trigger event bus (914) is constructed to use the single notifying device object registration trigger of being shared by a plurality of application examples.
4. XML virtual machine according to claim 1 (510), wherein, the logic that execution makes stateless process object be used to carry out the application process code comprises provides expression formula engine (1260), and this expression formula engine (1260) is constructed to carry out evaluation to using for many exemplary application as the expression formula of the object oriented of the overall situation about suitable application example.
5. XML virtual machine according to claim 1 (510), wherein, object (902-914) comprising when definition was used for carrying out one group of operation of application: be shown in the notifying device object of the trigger that application code runs into to trigger event bus (914) registration form, the notifying device object of registration is discerned the user interface components and the event type that will activate corresponding trigger at least.
6. XML virtual machine according to claim 5 (510) also comprises:
Receive user interface components in the trigger event bus and experienced notice by the event type of the notifying device object appointment of registration; And
Activate the notifying device object and carry out the application process step that is buffered in the storer.
7. XML virtual machine according to claim 5 (510), wherein, XML virtual machine (510) is constructed to use at each application example of carrying out the application code of a version.
8. XML virtual machine according to claim 1 (510), wherein, provide the low structure (1260) of the operation that execution defines in the application process code to comprise and realize the opening operation processor, this opening operation processor is used to make application view instantiation and related with corresponding application example.
9. XML virtual machine according to claim 1 (510), wherein, provide the low structure (1260) of the operation that execution defines in the application process code to comprise the bindings processor is provided, this bindings processor is used for setting up the automated communications path between the document of user interface components and data model.
10. XML virtual machine according to claim 1 (510), wherein, make stateless process object provide instance objects (1504) to comprise to Operation Processor: the constructing user interface assembly is to provide corresponding instance objects when the trigger that defines is activated in application code.
11. one kind is constructed to accept and carries out calculation element (300) with the application code of semantic procedure language compilation, comprising:
Storer (304) is used to store data;
Processor (302) can be coupled to storer communicatedly, is used for execution command so that described calculation element:
Be identified in the semantic description (1203) of the operation that runs in the application code with associative expression formula;
Expression formula is carried out evaluation (1204);
Call the Operation Processor corresponding (1206) with the operation that is run into; And
Wherein, Operation Processor receives application example and the expression formula of trying to achieve at least.
12. calculation element according to claim 11 (300), wherein, Operation Processor is constructed to make object-instantiated and related with corresponding application example when using view and carry out the operation of modeling.
13. calculation element according to claim 12 (300) also is constructed to play up on graphoscope with semantic ui language written application view, this semanteme ui language meets the pattern different with procedural language.
14. calculation element according to claim 11 (300), wherein, Operation Processor is constructed to carry out the application state change of particular type, and data is not returned to the interior process of XML virtual machine (510) of call operation processor.
15. calculation element according to claim 11 (300) wherein, carries out evaluation (1204) to expression formula and comprising:
Determine whether the resource of quoting is buffered in this locality in expression formula; And
If this resource is not buffered in this locality, then use abstract communication port to obtain this resource from the network site.
16. calculation element according to claim 11 (300), wherein, described expression formula meets the XPath agreement, and wherein, expression formula is carried out evaluation (1204) comprise and produce XBind, object and remaining on when this XBind describes operation based on the binding between the data in the data model of XML.
17. calculation element according to claim 16 (300), wherein, XBind is the multidimensional data type that comprises that URL, basic path and operation are selected.
18. one kind has the system that is used to carry out with the computer-executable modules of the application of semantic applications code compiling, this system comprises:
Example components (1250) is constructed to:
Manage the run time behaviour of executory application example;
The border of object when delimiting the operation related with this executory application example;
Evaluation of expression assembly (1260) is used for carrying out evaluation about the expression formula of this executory application example application code;
Process component (1252) is used for:
Make the evaluation of expression assembly carry out evaluation to the expression formula that in application code, runs into; And
The call operation processor realizes that the state in the described executory application example changes.
19. system according to claim 18 also comprises data type recognizer (1404), this data type recognizer (1404) is used for based on the semantic attribute identification Doctype of document and makes carrying out the peculiar action of the document type.
20. system according to claim 19, wherein, the action that data type recognizer (1404) is carried out comprises application view related with suitable application example.
21. system according to claim 19, wherein, the action that data type recognizer (1404) is carried out comprises the process object related with suitable application example.
22. system according to claim 18, wherein, example components (1250) is constructed to make the concurrent execution of a plurality of examples of application, and wherein, process component (1252) is constructed to make a plurality of application examples to share stateless process object.
23. system according to claim 18, wherein, evaluation of expression assembly (1260) is implemented to instance objects this locality.
24. a trigger event bus (914) that is used for starting in response to the activation of trigger by counter processor implementation code is constructed to:
Register at least one object as trigger audiomonitor (1124), object is used for the process steps that buffer memory will be carried out during described at least one operation when trigger is activated in when operation;
Receive the notice (1704) that trigger is activated, this notice identification is at least initiated user interface components and the event type that trigger activates;
Call described at least one object (1706) that is registered as the trigger audiomonitor in when operation; And
The process steps (1712) of target cache when make carrying out by described at least one operation.
25. trigger event bus according to claim 24 (914), wherein, described at least one in when operation object share by each example of the application of carrying out.
26. trigger event bus according to claim 24 (914), wherein, calling described at least one when operation object (1706) that is registered as the trigger audiomonitor comprising: use view name, component Name and event type to carry out as unique key word and search, object when being registered as described at least one operation of trigger audiomonitor with identification.
27. trigger event bus according to claim 24 (914), wherein, user interface components is constructed to provide the instance objects of association when trigger is activated.
28. trigger event bus according to claim 24 (914), wherein, the trigger that starts the execution of application code activates and does not correspond to document experience Data Update.
29. method shown and described herein, computer-readable medium, system and calculation element.

Claims (5)

1. platform XML virtual machine independently, this XML virtual machine are accepted with XML programming language written application code as input and carry out the method for carrying out described application code on calculation element, and this method comprises:
Object when definition is used to carry out the one group of operation that comprises application, described application comprises the instance objects that is constructed to function definition is coupled to the execution of crossing range code of application;
The low structure (" Operation Processor ") of crossing the operation that defines in the range code that provides execution using; And
Execution makes stateless process object provide the logic of instance objects to Operation Processor, the variation of the run time behaviour that this instance objects explanation is used when carrying out the mistake range code of using.
2. XML virtual machine according to claim 1, wherein, object comprised when definition was used to carry out one group of operation of application: the localization that defines the border of the peculiar delimitation application example of described instance objects concerns level.
3. XML virtual machine according to claim 1, wherein, the logic that execution makes stateless process object be used to carry out the application process code comprises provides the trigger event bus, and this trigger event bus is constructed to use the trigger of the single notifying device object registration of being shared by a plurality of application examples in using.
4. XML virtual machine according to claim 1, wherein, the logic that execution makes stateless process object be used to carry out the application process code comprises provides the expression formula engine, and this expression formula engine is constructed to about suitable application example the global naming object that utilizes be carried out evaluation in application code.
5. described herein and shown in the XML virtual machine and use its method.
CN200880116398A 2007-09-28 2008-09-29 Network operating system Pending CN101861582A (en)

Applications Claiming Priority (32)

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

Publications (1)

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

Family

ID=42946622

Family Applications (4)

Application Number Title Priority Date Filing Date
CN200880116398A Pending CN101861582A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116396A Pending CN101861580A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116397A Pending CN101861581A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116332A Pending CN101861576A (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
CN200880116397A Pending CN101861581A (en) 2007-09-28 2008-09-29 Network operating system
CN200880116332A Pending CN101861576A (en) 2007-09-28 2008-09-29 Network operating system

Country Status (1)

Country Link
CN (4) CN101861582A (en)

Families Citing this family (7)

* 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
JP2016178419A (en) * 2015-03-19 2016-10-06 株式会社リコー Communication controller, communication system, communication method and program
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
US10327175B2 (en) * 2017-07-18 2019-06-18 Oracle International Corporation Methods, systems, and computer readable media for operating a telecommunications network using an on-premises computing system and an off-premises cloud computing system
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
CN112559472B (en) * 2020-12-07 2024-05-14 北京锐安科技有限公司 File transmission method, device, computer equipment and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098476B2 (en) * 2004-06-29 2015-08-04 Microsoft Technology Licensing, Llc Method and system for mapping between structured subjects and observers
US7571425B2 (en) * 2004-11-18 2009-08-04 Hewlett-Packard Development Company, L.P. Automated binding for object oriented programming user interface components
US20060212842A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Rich data-bound application
US7831918B2 (en) * 2005-09-12 2010-11-09 Microsoft Corporation Content based user interface design

Also Published As

Publication number Publication date
CN101861576A (en) 2010-10-13
CN101861581A (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
CN101952815A (en) Cooperation based on attitude
CN101861582A (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