This innovation relates to Web services, and, more particularly, to methods for installing a Web service application on a target environment.
Web Services
The promise of the Internet is an open e-business platform where companies can do business spontaneously with anyone, anywhere, and anytime without requiring that companies abandon their existing software applications and infrastructures. Increasingly companies rely on the Internet to obtain loosely coupled Web services deployed by Web service application providers on application-based servers, which are computers on networks that mange the networks.
Web services are business-enterprise computer applications that can be utilized singly or collectively to accomplish a wide range of intended purposes, such as determining health-care patients' eligibility for benefits, submitting health-care claims, and providing stock quotes. Web services help companies dramatically cut costs, increase revenues, and improve competitive agility by combining existing, heterogeneous systems into cross-functional, multi-company applications. For example, Web services designed for insurance companies help them rapidly automate their business processes, eliminating paper and manual touches and saving them tens of millions of dollars annually. To supply such valuable and widely needed services, Web service providers may offer multiple Web services to client businesses.
Because Web services can operate independently of a particular computer language, platform, or location, a client business and a Web service may each use different computer languages, platforms, and locations in widely distributed systems over one or more networks.
Open Web service standards have been developed for compatibility among Web service applications. A standard called SOAP (Simple Object Access Protocol) has been developed to define the format of messages exchanged among applications. The content of messages, such as a request for an action to be performed by a Web service, is currently described in WSDL (Web Services Description Language), which is an XML (Extensible Markup Language)-formatted language. Web services are cataloged in a Web-based directory and infrastructure called UDDI (Universal Description, Discover and Integration), which is an Internet registry where businesses list themselves according to their services. Communications between a client business and a Web service further rely on the use of a shared transport protocol, such as HTTP (Hypertext Transport Protocol), which enables communications over the Internet.
Typically a client business employs a client application to communicate from its Web site over the Internet according to these standards, to obtain the Web services offered by a Web service application provider from its server-based Web site. The Web service application provider uses the same standards to reply to a client. Other known or not-yet-known Web service protocols and standards may be used for this communications.
Web Service Applications
Web service applications are computer applications that use Web services singly or collectively to accomplish intended purposes. To work with a specific Web service application, a Web service needs accept business documents, process them, and pass them on in ways compatible with the Web service application.
A Web service application typically consists of one or more Web services, a document that describes how those Web services are choreographed and used and those Web services' Web portal pages and UDDI entries.
A Web portal page 200 is a Web-site interface that a person can reach over the Internet. Web-site interfaces are computer-programmed modules that allow end-users to select variables and parameters from easy-to-use visual displays or to type in this input, save the information through selecting a save option, and have their selections automatically applied by computer subsequently, without those users having to program the information manually.
In this example, an attendant at a clinic computer 150 can use the Internet, through a wired link 144, a telephone network 130, and another wired link 142, to reach the portal Web page 200 on the Web service application provider server 100. The attendant can then use the portal Web page 200 to fill out a claim file form 220 for one of the clinic's patients and submit it to Web service application 1240.
Other means for submitting claims also exist. For example, an attendant at a hospital computer 160 might use link 146, network 130, and link 142 for a machine-to-machine transmission of a claim file directly to Web service application 1220. Many kinds of wired and unwired links and networks could used for this machine-to-machine transmission, such as the Internet, a private LAN (Local Area Network), a wireless network, a TCP/IP (Transmission Control Protocol/Internet Protocol) network, or other communications system.
To continue with the example, Web service application 1240 receives each claim file through Web service 1241 and, if necessary, uses Web service 2 to transform the format of the claim file to a format that Web service application 1240 can use for its full operations. For example, a claim file might have been sent in NSF (National Science Foundation) format, but Web service application 1240 might require HIPAA (Health Insurance Portability and Accountability Act) format.
After the claim file is transformed to the correct message format, Web service 3243 is used to validate the claim file, and Web service 4244 is used to send the claim file back over link 142, network 130, and link 148 to an insurance company server 170 for payment to the clinic.
The same process is also typically carried out over networked systems in which a Web service application 240 employs Web services on multiple different servers, as shown in
Because of the value of Web service applications, Web service application providers typically offer them to clients for sale or lease. A client business that buys or leases a Web service application may run that application on one of the Web service application provider's servers. On the other hand, client businesses frequently want to run a bought or leased Web service application on their own servers. In other cases, client businesses may want to test or further develop third-party Web service applications on their own servers. Therefore, as shown in
Prior Methods
Typically, Web service applications are transferred manually after being loaded on storage means such as computer discs or electronically through transmission over the Internet or other communication means. However, in both cases the process of moving a Web service application from one operating environment to another operating environment requires manual installation of some of the Web service application's components and the editing of the Web service application's instruction document to reflect the new locations. This makes the process very laborious, error prone, and expensive.
In addition, prior packaging/unpacking utilities have been devised for Web service application installations, but these are not fully automatic. They do not account for the semantic dependencies among various Web service application components and how those components are to be packaged, unpackaged and installed in an integral manner to coexist with each other.
For example, enterprise archives (EAR) and Web-application archives (WAR) have been used to deploy applications in J2 EE environments. But both of these archives can only put a single application on a single machine. In connection with Web services, these archives can only place a single Web service on a single server and can neither place a Web service application on a server nor place multiple chained Web services on multiple servers. To deploy a networked Web service application, such as Web service 1240 in
Therefore there is a need for a method and apparatus that provides a more automatic method for installing Web service applications on target environments that may include one or more servers.
These and other needs are addressed by the present invention. The following explanation describes the present invention by way of example and not by way of limitation.
It is an aspect of the present invention to provide an automatic method for installing a Web service application on a target environment.
It is another aspect of the present invention to provide a deployment archive (DAR) file that is useful for installing a Web service application on a target environment.
It is another aspect of the present invention to provide a method for the automatic packaging of Web service application installation data into a DAR file.
It is another aspect of the present invention to provide a method for the automatic unpackaging of a DAR file.
It is another aspect of the present invention to provide a configuration set for installing a Web service application on a target environment.
These and other aspects, features, and advantages are achieved according to the method and apparatus of the present invention. In accordance with the present invention, a packaging utility is created that can in turn create a deployment archive (DAR) file containing the data required to install a Web service application, comprising, for example, portlets for creating Web pages for the Web service's user interface, UDDI entries, executable programs, and application-wide properties. The application-wide properties may comprise elements to be used in connection with one or more Web services, for example, encryption levels, service levels, timeouts, and number of retries. For administration efficiency the application-wide properties may be applied according to hierarchies, for example from groupings of Web services to individual Web services and from organizations of users to individual users. An unpackaging tool is created to unpackage and install the DAR file on a target environment. A configuration set is employed by the unpackaging tool to determine where the elements of the Web service application are to be installed on the target environment.
The following embodiment of the present invention is described by way of example only, with reference to the accompanying drawings, in which:
The following description explains a system and method that automatically deploys a Web service application on a target environment. The details of this explanation are offered to illustrate the present invention clearly. However, it will be apparent to those skilled in the art that the concepts of the present invention are not limited to these specific details. Commonly known elements are also shown in block diagrams for clarity, as examples and not as limitations of the present invention.
Operating Environment
An embodiment of the operating environment of the present invention is shown in
The DAR tools 300 are useful for transferring Web service application 240 to a target environment comprising servers 182 and 184 via a wired or wireless link 142, a wired or wireless network 130, and wired or wireless links 143 and 145.
The servers 100, 182, and 184 may be personal computers or larger computerized systems or combinations of systems.
The network 130 may be the Internet, a private LAN (Local Area Network), a wireless network, a TCP/IP (Transmission Control Protocol/Internet Protocol) network, or other communications system, and can comprise multiple elements such as gateways, routers; and switches. Links 142, 143, and 145 use technology appropriate for communications with network 130.
Through the operating environment shown in
In other embodiments elements of the present invention may be created and employed in more widely dispersed systems. For example, the DAR tools 300 could be created on server 100 and sent to another server such as server 2182 for use on a Web service application created on server 2184. The DAR tools 300 could then be used to deploy the Web service application on server 2184 to server 3100.
In another embodiment, the configuration set 500 could be created on one server 182 and sent to another server 100 for use with the DAR tools 300 to deploy Web service application 1240 on server 2182.
Also note that other embodiments may be used to update existing Web service applications on target environments and to incorporate existing Web services on target environments into Web service applications.
Process of Deploving a Web service Application—Overview
Step 1000 in
In an embodiment, a Web service application provider creates DAR (Deployment Archive) tools 300, shown in
Step 2000 in
In an embodiment, the Web service application provider employs packaging utility 302, shown in
The Web service application 240, shown in
Step 3000 in
In an embodiment, the Web service application provider creates a configuration set 500, shown in
In another embodiment, the Web service application provider receives a configuration set 500, containing information about the configuration of the target environment 182 and 184, from a party at the target environment, such as a party at server 2182.
Step 4000 in
In an embodiment, the Web service application provider employs the DAR tools 300, shown in
Creating DAR Tools
Packaging Utility
In an embodiment, the Web service application provider creates a packaging utility 302 to assemble, from the file folders, databases, and UDDI of the Web service application provider's server 100, shown in
The packaging utility 302 also writes the installation data, 400, shown in
Installation Data
In an embodiment, executable Programs 424, shown in
Metadata Entries
The following are examples of useful elements for metadata entries 420, shown in
Hierarchies
In connection with the above-mentioned application-wide properties and hierarchies, this application is related to pending utility patent application 10/898633, Method and Apparatus for Dynamic, Non-Intrusive Personalization of Web Services, for Chaitanya Laxminarayan, Michael Perham, Matthew Sanchez, and Keith Yarbrough.
For simpler administration of application-wide properties 428, shown in
Examples of useful categories for hierarchies 430 comprise Web service hierarchies and user hierarchies.
Web Service Hierarchies
The following list shows an example of a Web service hierarchy comprising the following categories:
For example, a Web service application provider might offer, along with other suites of services, a “Health Care” suite of multiple health-care related services. At the application level, the Web service application provider might set up multiple applications, including one for “Claims Filing.” At the business service level the Web service application provider could set up multiple business services, with one for “Claims Uploading,” and. at the Web service level, multiple Web services, with one called “Upload Service.”
To utilize this hierarchy for simpler administration, the Web service application provider would set up a conversion algorithm so that all parameters set up for the “Health Care” Network would apply automatically to Claims Filing, Claims Upload, and Upload Service. A parameter set up directly for the Claims Upload service, however, would override the analogous parameter set up for Heath Care and would also apply to the Claims Upload and Upload Services.
User Hierarchies
A Web service application provider can also organize a user hierarchy of multiple levels for simplified administration of application-wide properties. In an embodiment, the highest level is for the organization, the next highest level is for the group, and the lower level is for the individual, who is one of potentially multiple users belonging to the organization. For example, the organization level could represent a system administrator, the group level could represent an administrator, and the individual level could represent an end-user.
Further useful divisions of these hierarchies are possible. For example, the organization level could itself be further divided into sub-organizations. Company A might be the organization level, with sub-organizations called “Sales Division” and “Development Division.”
Combined Hierarchical Order
The following example shows a section of an algorithm for administering hierarchies 430, shown in
This algorithm uses the hierarchies to apply parameters in the following combined hierarchical order:
Unpackaging Utility
To return to
Step 2020 in
In an embodiment, the Web service application provider creates an unpackaging utility 304, shown in
The DAR File
To return to
Step 2000 in
In an embodiment, the Web service application provider employs packaging utility 302, shown in
A DAR (deployment archive) file 320 contains all the data required to install Web service application 1240, comprising, for example, the programs that make up the Web services 241 and 242, portlets 410, shown in
Configuration Set
To return to
Step 3000 in
In an embodiment the Web service application provider may employ server 100, shown in
For example, in the example shown in
Deploying the Web Service Application
In an embodiment, the next step in the process shown in
Step 4000. Use the DAR tools 300 with configuration set 500 to deploy a Web service application, such as Web service application 1240 on target environment 182 and 184.
The Web service application provider employs the unpackaging utility 304, shown in
As a result, all the installation data required for Web service application 1 is sent automatically to the target environment 182, shown in
In another embodiment the DAR file 320 may be saved to a storage means, comprising a CD or floppy disc, for example, and manually loaded onto the target environment 182 and 184 by using the unpackaging utility 304 and configuration set 500. Many other means of transferring the installation data in the DAR file 320 to the target environment 182 and 184 exist, via infrared or LAN connections, to cite only two examples.
The result is the full deployment on server 2182 of Web service application 1240 and Web service 1241 and on server 3184 of the chained Web service 2242.
Groupings of Web Services
It is important to note that the installation data 400, shown in
Thus a single DAR file 320 may be used to deploy multiple Web service applications 240, 250, and 260, shown in
For example,
Computer System Overview
The network interface 1402 is attached to a bus 1406 or other means of communicating information. Also attached to the bus 1406 are the following:
a processor 1404 for processing information;
a storage device 1408, such as an optical disc, a magneto-optical disc, or a magnet disc, for storing information and instructions;
main memory 1410, which is a dynamic storage device such as a random access memory (RAM) that stores information and instructions to be carried out by processor 1404; a bios 1412 or another form of static memory such as read only memory (ROM), for storing static information and instructions to be carried out by processor 1404; a display 1414, such as a liquid crystal display (LDC) or cathode ray tube (CRT) for displaying information to user of the computer system 1400; and an input device 1416, with numeric and alphanumeric keys for communicating information and commands to processor 1404. In another embodiment a mouse or other input devices can also be used.
The computer system 1400 is used to implement the methods of the present invention in one embodiment. However, embodiments of the present invention are not limited to specific software and hardware configurations. Computer system 1400 can send data to target computer 150 and target server 103, through a network 130 such as the Internet, and appropriate links 142, such as wired or wireless ones, and its network interface 1402.
Computer system 1400 carries out the methods of the present invention when its processor 1404 processes instructions contained in its main memory 1410. Another computer-readable medium, such as its storage device 1408, may read these instructions into main memory 1410 and may do so after receiving these instructions through network interface 1402. Processor 1404 further processes data according to instructions contained in its storage device 1408. Data is relayed to appropriate elements in computer system 1400 through its bus 1406. Instructions for computer system 1400 can also be given through its input device 1416 and display 1414.
“Computer-readable medium” refers to any medium that provides instructions to processor 1404, comprising volatile, non-volatile, and transmission media. Volatile media comprise dynamic memory, such as main memory 1410. Non-volatile media comprise magnetic, magneto-optical, and optical discs, such as storage device 1408. Transmission media comprise a wide range of wired and unwired transmission technology, comprising cables, wires, modems, fiber optics, acoustic waves, such as radio waves, for example, and light waves, such as infrared, for example. Typical examples of widely used computer-readable media are floppy discs, hard discs, magnetic tape, CD-ROMs, punch cards, RAM, EPROMs, FLASH-EPOMs, memory cards, chips, and cartridges, modem transmissions over telephone lines, and infrared waves. Multiple computer-readable may be used, known and not yet known, can be used, individually and in combinations, in different embodiments of the present invention.
Alternate Embodiments
The descriptions above have outlined multiple alternate embodiments of the present invention.
It will be also apparent to those skilled in the art that different embodiments of the present invention may employ a wide range of possible hardware and of software techniques. For example the communication between a Web service application provider and target servers could take place through any number of links including wired, wireless, infrared, or radio ones and through other communication networks beside those cited, including any not yet in existence.
Also, the term computer as used here is used in its broadest sense to include personal computers, laptops, telephones with computer capabilities, personal data assistants (PDAs) and servers, and it should be recognized that it could include multiple servers, with storage and software functions divided among the servers. A wide array of operating systems, compatible e-mail services, Web browsers and other communications systems can be used to transmit messages among client applications and Web services.
Furthermore, in the previous description the order of processes, their numbered sequences, and their labels are presented for clarity of illustration and not as limitations on the present invention.
The following code is an example of application wide properties used for the granting of roles 25 within an application.