Source: http://www.google.com/patents/US7822826?dq=U.S.+Patent+
Timestamp: 2017-12-18 08:54:49
Document Index: 224342638

Matched Legal Cases: ['art 1', 'art 2', 'art 420', 'art 430', 'arts 420', 'arts 430', 'art 420', 'art 430', 'art 430']

Patent US7822826 - Deployment of a web service - Google Patents
A computing device may receive a Web service archive that includes a Web service implementation and a Web service deployment descriptor. The Web service deployment descriptor may specify how the Web service implementation is to be configured on the computing device. The computing device may deploy a...http://www.google.com/patents/US7822826?utm_source=gb-gplus-sharePatent US7822826 - Deployment of a web service
Publication number US7822826 B1
Application number US 10/750,058
Publication number 10750058, 750058, US 7822826 B1, US 7822826B1, US-B1-7822826, US7822826 B1, US7822826B1
Inventors Vladimir Savchenko, Dimitrina Stoyanova, Timm Falter
Patent Citations (214), Non-Patent Citations (96), Referenced by (29), Classifications (10), Legal Events (3)
Deployment of a web service
US 7822826 B1
A computing device may receive a Web service archive that includes a Web service implementation and a Web service deployment descriptor. The Web service deployment descriptor may specify how the Web service implementation is to be configured on the computing device. The computing device may deploy a Web service based, at least in part, on the received Web service archive.
1. A method in an application server, comprising:
receiving, by the application server, a Web service archive including:
a Web service implementation having a plurality of Web service operations and a plurality of Web service parameters, the Web service operations and Web service parameters being independent of a runtime implementation requirements of the application server,
a Web service deployment descriptor specifying a mapping of the Web service operations and Web service parameters to the runtime implementation requirements of the application server, and
a first and second virtual interface, each to selectively expose a different subset of the Web service operations and the Web service parameters in the Web service implementation, wherein each of the first and second virtual interfaces are publishable as separate deployed Web service;
unpacking the Web service implementation, the Web service deployment descriptor, and the first and second virtual interfaces from the Web service archive into a directory within the application server; and
deploying each of the first and second virtual interfaces as separately published Web services within the application server based on the mapping specified by the Web service deployment descriptor.
2. The method of claim 1, further comprising registering each of the deployed Web services with a Web services registry on the application server.
3. The method of claim 2, wherein registering each of the deployed Web services comprises automatically registering each of the deployed Web services with a Java Naming and Directory Interface (JNDI) of the application server.
4. The method of claim 1, wherein deploying each of the first and second virtual interfaces as separately published Web services within the application server comprises deploying the plurality of Web service operations and the plurality of Web service parameters in a Web services container of the application server.
5. The method of claim 4, wherein the Web services container comprises a dedicated implementation container.
6. The method of claim 5, wherein the dedicated implementation container comprises an Enterprise Java Bean (EJB) container or a servlet container.
7. A non-transitory system-readable medium having instructions stored thereon that, when executed by a processor in an application server, causes the application server to perform a method comprising:
receiving a Web service archive including:
a Web service implementation having a plurality of Web service operations and a plurality of Web service parameters, the Web service operations and Web service parameters being independent of runtime implementation requirements of the application server,
a first and second virtual interface, each to selectively expose a different subset of the Web service operations and the Web service parameters in the Web service implementation, wherein each of the first and second virtual interfaces are publishable as a separate deployed Web service;
unpacking the Web service implementation the Web service deployment descriptor, and the first and second virtual interfaces from the Web service archive into a directory within the application server; and
8. The non-transitory system-readable medium of claim 7, wherein the method further comprises registering each of the deployed Web services with a Web services registry on the application server.
9. The non-transitory system-readable medium of claim 8, wherein registering each of the deployed Web services comprises automatically registering each of the deployed Web services with a Java Naming and Directory Interface (JNDI) of the application server.
10. The non-transitory system-readable medium of claim 7, wherein deploying each of the first and second virtual interfaces as separately published Web services within the application server comprises deploying the plurality of Web service operations and the plurality of Web service parameters in a Web services container of the application server.
11. The non-transitory system-readable medium of claim 10, wherein the Web services container comprises a dedicated implementation container.
12. The non-transitory system-readable medium of claim 11, wherein the dedicated implementation container comprises an Enterprise Java Bean (EJB) container or a servlet container.
13. An application server to receive a Web service archive comprising:
a Web service deployment descriptor to specify a mapping of the Web service operations and Web service parameters to the runtime implementation requirements of the application server, and
wherein the application server to unpack the Web service implementation, the Web service deployment descriptor, and the first and second virtual interfaces from the Web service archive into a directory within the application server; and
wherein the application server to further deploy each of the first and second virtual interfaces as separately published Web services within the application server based on the mapping specified by the Web service deployment descriptor.
14. The application server of claim 13, wherein the application server to further register each of the deployed Web services with a Web services registry on the application server.
15. The application server of claim 14, wherein registering each of the deployed Web services comprises the application server to automatically register each of the deployed Web services with a Java Naming and Directory Interface (JNDI) of the application server.
16. The application server of claim 13, wherein deploying each of the first and second virtual interfaces as separately published Web services within the application server comprises the application server to deploy the plurality of Web service operations and the plurality of Web service parameters in a Web services container of the application server.
17. The application server of claim 16, wherein the Web services container comprises a dedicated implementation container.
18. The application server of claim 17, wherein the dedicated implementation container comprises an Enterprise Java Bean (EJB) container or a servlet container.
Embodiments of the invention generally relate to the field of Web services and, more particularly, to a system and method for the deployment of a Web service.
Web services are, in general terms, computer software (or, for ease of reference, software) based services that are provided over a network (e.g., the Internet). More specifically, Web services are self-contained, modularized, executable entities that can be published, searched for, and accessed across a network. Web services are portable across disparate computing platforms because they are implemented according to widely accepted standards.
FIG. 1 is a block diagram of the basic architecture of a conventional Web services framework 100. Conventional Web services framework 100 includes service provider 110, service consumer 120, and service directory 130. Service provider 110 may be, for example, a Web application server that is implemented according to any of the Java 2 Enterprise Edition Specifications, for example, v1.3, published on Jul. 27, 2001 (hereinafter, the J2EE Standard). One or more Web services are deployed on service provider 110. These Web services comply, at least in part, with the basic Web services standards including: the Extensible Markup Language (XML) standard promulgated by the World Wide Web Consortium (W3C) entitled, “Extensible Markup Language (XML) 1.0 (Second Edition),” 6 Oct. 2000 (hereinafter, the XML Standard) and the Simple Object Access Protocol (SOAP) promulgated by the W3C entitled, “SOAP Version 1.1 Part 1: Messaging Framework and Part 2: Adjuncts,” 24 Jun. 2003 (hereinafter, the SOAP Protocol).
Service provider 110 publishes one or more Web services on service directory 130 via Web Service Definition Language (WSDL) document 140. A WSDL document may be a document that complies, at least in part, with any of the WSDL standards, for example, the WSDL standard promulgated by W3C entitled, “Web Services Description Language 1.1,” 15 Mar. 2001 (hereinafter, the WSDL Standard). WSDL document 140 is an XML document that provides pertinent information about a Web service such as its name, the methods that can be called, the parameters for the methods, and a location for sending requests.
The conventional process for deploying a Web service involves locally generating a Web service implementation and additional deployment information (e.g., configuration of communication protocols) based on WSDL document 140. In some cases, it may be advantages for a computing device to import a Web service implementation along with the appropriate configuration information. Conventional Web service archives and deployment services do not support importing a Web service implementation along with the appropriate configuration information.
A computing device may receive a Web service archive that includes a Web service implementation and Web service deployment descriptor. The Web service deployment descriptor may specify how the Web service implementation is to be configured on the computing device. The computing device may deploy a Web service based, at least in part, on the received Web service archive.
Embodiments of the invention are generally directed to a system and method for the deployment of a Web service. In an embodiment, a computing device receives a Web service archive that includes a Web service implementation and a Web service deployment descriptor. The term “computing device” broadly refers to, for example, a desktop computer, laptop computer, tablet computer, handheld computer, personal digital assistant, telephone, household appliance, server, client, application server, and the like. The computing device may deploy the Web service based, at least in part, on the received Web service archive. As is further described below, in one embodiment, the Web service deployment descriptor provides configuration information that specifies how to configure the Web service implementation on the computing device.
FIG. 2 is a block diagram of selected elements of an exemplary Web service provider 210 implemented according to an embodiment of the invention. Web service provider 210 includes business logic 212, web service implementation 214, virtual interface(s) 216, development environment 218, and Web service configurations 220. The term “business logic” refers to software that performs data processing. Business logic 212 may provide the operations that are packaged as a Web service.
In an embodiment, Web service implementation 214 is the actual logic provided in each Web service. Web service implementation 214 is called an “endpoint” of the Web service because it processes requests and/or provides responses. Virtual interface 216 is an abstract interface that provides a mechanism to define several views of Web service implementation 214 and to publish each view separately as a Web service. Web service configuration 220 specifies technical features of a Web service such as which transport binding to use. Web service implementation 214, virtual interface 216, and Web service configuration 220 are further described below with reference to FIG. 4.
FIG. 3 is a block diagram of selected elements of an exemplary Web service consumer 310, implemented according to an embodiment of the invention. In an embodiment, Web service consumer 310 includes business logic 312, Web service proxy 314, and proxy configuration 316. Business logic 312 may include an application(s) that sends a request for service to a Web service. The term “application” refers to software that performs work, such as data creation or manipulation.
FIG. 4 is a block diagram of the general architecture of Web service 400, implemented according to an embodiment of the invention. The illustrated embodiment includes Web service implementation 410, Web service design time part 420, and Web service configuration part 430. In alternative embodiments, the general architecture of a Web service may include more elements, fewer elements, and/or different elements. The architecture of Web service 400, as shown in FIG. 4, may be referred to as an “inside-out” architecture. The term “inside-out” refers to first developing Web service implementation 410 and then developing one or more Web service design time parts 420 and one or more Web service configuration parts 430 for Web service implementation 410.
In contrast to the architecture shown in FIG. 4, many conventional Web service have an “outside-in” architecture. An “outside-in” architecture refers to starting with a Web service design time part (e.g., Web service design time part 420) and developing a Web service implementation (e.g., Web service implementation 410). The Java Community Process (JCP) organization has promulgated a number of Java Specification Requests (JSRs) that may be implemented, at least in part, by Web service 400. For example, JSR-101 entitled, “Java Application Program Interfaces (APIs) for Extensible Markup Language based Remote Procedure Calls,” Oct. 28, 2003 (hereinafter, the JAX-RPC Specification) provides a standard set of Java APIs that provide a foundation for developing and deploying Web services on the Java platform. Similarly, JSR-109, entitled, “Implementing Enterprise Web Services,” Nov. 15, 2002 (hereinafter, the JSR-109 Specification) provides mechanisms for deploying a Web service in a Java 2 Platform, Enterprise Edition (J2EE) environment.
Web service implementation 410 is the actual logic behind Web service 400. In an embodiment, enterprise session bean 412 is the logic that provides the methods of Web service 400. The term “enterprise bean” refers to business logic that retrieves and/or processes data and provides that data to, for example, a user. In an alternative embodiment, the business logic may be provided by a different implementation. For example, in an embodiment, Web service implementation 410 is provided by Java class (or Java classes) 414. In yet another alternative embodiment, business logic 410 may be provided by, for example, an application developed in C-sharp. The term “C-sharp” refers to an application developed according to any of the C-sharp programming language platforms including, for example, the C-sharp Language Specification, Mar. 20, 2001.
Virtual interface 422 is an abstract interface that provides a mechanism for defining multiple views of Web service implementation 410. Virtual interface 422 provides multiple “views” because it selectively exposes methods and parameters of Web service implementation 410. For example, virtual interface 422 may allow a computing device to rename or hide methods and parameters of Web service implementation 410. Also, virtual interface 422 may allow the computing device to define standard values for the parameters of Web service implementation 410. In an embodiment, virtual interface 422 may selectively convert parameter types (e.g., from integer to string). In addition, virtual interface 422 may allow the computing device to define the way the parameters are represented in SOAP messages (e.g., as either an element or an attribute, namespaces, etc.). In an embodiment, multiple virtual interfaces 422 may be implemented for Web service implementation 410. In such an embodiment, each client accessing Web service 400 may have a different view of Web service implementation 410.
In an embodiment, Web service configuration part 430 binds an abstract Web service to particular transports, bindings, and protocols. Web service configuration part 430 may include Web service 432 and Web service configuration 434. Web service 432 references Web service definition 424 and provides a container for one or more Web service configurations 434. The term “container” broadly refers to an entity that provides services to another entity. The services provided by a container may include, for example, lifecycle management, security, connectivity, transactions, and/or persistence.
In an embodiment, Web service configuration 434 specifies which transport binding will be used, a security configuration, a target address, and/or documentation for the operations of the configuration. In addition, Web service configuration 434 may specify which design-time feature will be mapped to which runtime feature. The term “design time” refers to the design and development of computer software. The term “runtime” refers to the actual execution of software. In an embodiment, each Web service configuration 434 is mapped to a WSDL port. The term “port” may refer to an association between a port type and a binding. For further information regarding bindings see, for example, the SOAP Specification.
In an embodiment a Web service, at runtime, may have a client-side implementation and a server-side implementation. For ease of reference the client-side implementation is hereinafter referred to as a “Web service client” and the server-side implementation is hereinafter referred to as the “Web service.” The role of the Web service client is to expose a method of the Web service to a client application and to send a request for service to the Web service. The role of the Web service is to process the request and provide a response. The Web service and the Web service client are more fully described below with reference to FIGS. 5-7.
FIG. 5 is a block diagram illustrating selected aspects of the server-side of Web service 500, according to an embodiment of the invention. The illustrated embodiment of Web service 500 includes transport 520, Web service runtime 530, protocols 540, transport binding 550, and implementation containers 560. In an alternative embodiment, Web service 500 may include more, fewer, and/or different elements than those shown in FIG. 5. As illustrated in FIG. 5, Web service runtime 530 has a modular architecture. This modular architecture may be extended by, for example, adding (or removing) one or more protocols 540 and/or implementation containers 560. The components of Web service runtime 530 that may be selectively added and/or removed are referred to as “pluggable” components.
FIG. 6 is a block diagram of the general architecture of Web service client 600, implemented according to an embodiment of the invention. In an embodiment, Web service client 600 includes client application 610, Service Endpoint Interface (SEI) 620, generated stub 630, proxy generator 640, transport binding 650, protocols 660, and transport 670. In an alternative embodiment, Web service client 600 may include more, fewer, and/or different elements than those shown in FIG. 6. In the illustrated embodiment, Web service client framework 655 is modular and the various elements may, therefore, be referred to as being “pluggable.”
In an embodiment, binding 754 defines message formats and communication protocol details for port 750. In an embodiment, binding 754 specifies a transport protocol to be used. Examples of transport protocols that may be used include, but are not limited to, HyperText Transfer Protocol (HTTP), SOAP over HTTP, SOAP over File Transfer Protocol (FTP), SOAP over Simple Mail Transfer Protocol (SMTP), and the like. The HTTP protocol refers to any of the HTTP protocols including, for example, the protocol described in Request For Comments (RFC) 2616 entitled, “HyperText Transport Protocol—HTTP/1.1,” June 1999 (hereinafter, the HTTP Protocol). The File Transfer Protocol refers to any of the FTPs including, for example, the FTP described in RFC 959 entitled, “File Transfer Protocol,” October 1985. The Simple Mail Transfer Protocol refers to any of the SMTPs including, for example, the SMTP described in RFC 2821 and entitled, “Simple Mail Transfer Protocol,” April 2001.
In an embodiment, a Web service homepage is generated for a Web service. The term “homepage” refers to the starting point for a hypertext document on the World Wide Web (or, for ease of reference, the Web). A homepage may be a single Web page or may include two or more Web pages. The term “Web page” refers to a hypertext document that is available via the Internet. A homepage may also include one or more links to other Web-based resources (e.g., other Web pages). The term “link” refers to an address that leads to a Web-based resource. A link may be a Uniform Resource Identifier (URI) implemented according to, for example, the Internet Engineering Task Force (IETF) Request For Comments (RFC) 2396 entitled, “Uniform Resource Identifiers (URI): Generic Syntax,” May 1997, Berners-Lee, R. Fielding, L. Masinter.
FIG. 10 illustrates WSDL Web page 1000, implemented according to an embodiment of the invention. The WSDL 1.1 Standard defines several ways to describe the same Web service. Each of the different ways to describe the Web service may produce a different XML representation of the requests and responses for the Web service. (In other cases, however, the various defined ways to describe the Web service may produce equivalent or substantially equivalent requests and responses for the Web service). The term WSDL “style” refers to the different ways that are defined to describe a Web service. In an embodiment, WSDL Web page 1000 provides one or more links to one or more supported “styles” of WSDL documents. The illustrated embodiment of WSDL Web page 1000 supports three of the most commonly used styles of WSDL documents. Thus, regardless of the WSDL style supported by a Web service consumer, the Web service consumer is likely able to generate a client based on at least one of the WSDL styles available on WSDL Web page 1000. For each supported WSDL style, WSDL Web page 1000 may include standard WSDL link 1010 and proprietary WSDL link 1020. Standard WSDL link 1010 is a link that points to a WSDL document that is compliant with the WSDL Standard. In contrast, WSDL link 1020 points to a WSDL document that includes additional proprietary features that are not supported by the WSDL Standard. In an embodiment, WSDL Web page 1000 may include download links 1030 and 1040 to simplify the process of downloading a standard WSDL document and/or a proprietary WSDL document.
FIG. 11 illustrates test Web page 1100, implemented according to an embodiment of the invention. Test Web page 1100 provides one or more tests, to test the operations of an associated Web service. In an embodiment, the one or more tests are browser-based tests. The term “browser-based” test refers to a test that is conducted via a Web browser without the need to download and/or configure additional testing code. An example of a browser-based test includes sending a client request for Web services through the Web browser and displaying the corresponding response in the Web browser.
In an embodiment, test Web page 1100 supports sessions to provide stateful communication. The term “session” refers to an active connection between two nodes. The term “stateful communication” refers to keeping track of, for example, configuration settings and/or transaction information during a session. In an embodiment, test Web page 1100 also supports testing/accessing a secured Web service (e.g., with authentication).
FIG. 14 is a flow diagram illustrating certain aspects of a method for testing a Web service from a Web service homepage, according to an embodiment of the invention. Referring to process block 1410, a deployed Web service is requested. The term “deploy” refers to unpacking a Web service archive and placing the unpacked files (along with some generated runtime data) in, for example, a directory of an application server. Deploying a Web service is further described below with reference to FIG. 29. The term “requesting a Web service” refers to, for example, receiving, requesting, and/or passing a URL of a WSDL document that describes a Web service. In an alternative embodiment, process block 1410 may be directed to, for example, registering the Web service with a service directory (e.g., a UDDI directory).
Referring to process block 1520, a Web service client proxy is generated based, at least in part, on the accessed description of the Web service. In an embodiment, the generated Web service client proxy may be either a deployable proxy or a standalone proxy. The term “deployable proxy” refers to a Web service client proxy that is to be deployed on a J2EE application server. The term “J2EE application server” refers to an application server that, at least partly, implements one of the J2EE standards. The term “standalone proxy” refers to a Web service client proxy that generates stubs and runs without the services available on a J2EE application server.
A client protocol implementation may be described in terms of one or more interfaces. FIG. 16 illustrates selected interfaces of an exemplary client protocol implementation, according to an embodiment of the invention. The illustrated interfaces incorporate the term “feature” because a client protocol implementation adds features (or functionalities) to a Web service client. In an embodiment, the interfaces of the client protocol implementation may include: clientFeatureProviderInterface 1610, FeatureProvider interface 1620, and AbstractProtocol interface 1630.
In an embodiment, the client protocol implementation accesses FeatureProvider interface 1620 through clientFeatureProviderInterface 1610. FeatureProvider interface 1620, in turn, provides access to a number of functions that are specified in underlying AbstractProtocol interface 1630 and PropertyContext 1640. In the illustrated embodiment, FeatureProvider interface 1620 accesses the underlying functions with the following methods: is FeatureImplemented( ) 1622, getName( ) 1624, and getFeature( ) 1626. In an embodiment, is FeatureImplemented( )method 1622 is used to determine whether a function is provided by a particular client protocol implementation. Method 1622 may return the value “true” if the feature named in parameter 1628 and the properties specified in parameter 1629 are provided by the protocol implementation. Method 1624 may be invoked to obtain the name of the protocol implementation. In an embodiment, method 1626 may be invoked to obtain a string array of features supported by the client protocol implementation.
In an embodiment, the client protocol implementation is described by AbstractProtocol interface 1630. AbstractProtocol interface 1630 “describes” the client protocol implementation by providing one or more method calls to the underlying PropertyContext interface(s) (e.g., PropertyContext interface 1640) that provide the functions of the client protocol implementations. Calls to the underlying functions may be made with, for example, PropertyContext property parameter 1636. In an embodiment, PropertyContext interface 1640 receives the call and returns a response to implement the function defined by PropertyContext interface 1640.
Object getProperty(String key) This method obtains a subcontext.
void setSubContext(String key, The method sets a subcontext.
void setProperty(String key, The method sets a property.
void clear( ) This method clears a property
PropertyContext This method returns a sub-property.
getSubContext(String key)
Enumeration getPropertyKeys( )- This method returns property keys.
Enumeration getSubcontextKeys( ) This method returns a sub-property
PropertyContext getClone( ) This method returns a clone of a
In an embodiment, the client protocol implementation is implemented as a Java service. The term “Java service” broadly refers to a service developed according to the Java programming language.
Authentication Type Specifications
HTTP with user name and Any of the HyperText Transfer
password Protocols (HTTPs) including, for
entitled, “HyperText Transport
Protocol - HTTP/1.1,” June 1999
HTTP secured through the Any of the HTTP protocols and any
Secure Socket Layer of the Secure Socket Layer
the protocol entitled, “The SSL
Protocol Ver. 3.0,” Nov. 18,
X.509 Client Certificates using Any of the HTTP and SSL
HTTP secured through SSL protocols and, for example, the
Recommendation X.509 (08/97)
In an embodiment, the client protocol implementation is an implementation of a wrapper protocol. The term “wrapper protocol” broadly refers to a protocol for adding a header, and/or footer, and/or wrapper to a message. For example, in an embodiment, a SOAP header protocol is used to add a SOAP header to a message. A “SOAP header” broadly refers to a message header that is implemented according to any of the SOAP protocols. Table 3 illustrates three exemplary methods that a SOAP header protocol implementation provides in an embodiment of the invention. In an alternative embodiment of the invention, a different wrapper protocol may be implemented and different or additional methods may be available.
Headers.setOutputHeader (new Name This method enables a schema-
(“urn:myuri.com”, “myHeader”), derived element type to be passed.
value) In an embodiment, a schema-
name=“myHeader”
namespace=“urn:myuri.com”
type=“tns:myType”/>.
Headers.getInputHeader This method returns a Document
(headerName: Qname): Element Object Model element with the
Headers.getInputHeader This method deserializes a schema-
(headerName: QName, declared header.
Session.closeSession( ) : void This method closes the current
Session.isMaintainSession( ) : boolean This method provides infor-
mation about the current session
FIG. 19 is a flow diagram illustrating certain aspects of creating a Web service client package, according to an embodiment of the invention. The term “Web service client package” refers to a structured collection of software entities from which a Web service client may be, at least in part, generated. Referring to process block 1910, a computing device accesses a description of a Web service. The description of the Web service may be accessed either locally or over a network (e.g., via the Internet). In an embodiment, the computing device accesses the description of the Web service from a directory of Web services (e.g., service directory 130, shown in FIG. 1). In such an embodiment, the term “accessing” refers to downloading the description from the directory and/or to directly accessing the description from the remote directory. In an embodiment, the accessed Web service description is a Web Service Description Language (WSDL) document that describes the Web service.
Referring to process block 1920, the computing device generates a service interface class. In an embodiment, the service interface class is a factory for obtaining logical ports. The term “factory” refers to a software entity (e.g., a Java object) that provides instances of a particular class of software entities (e.g., a logical port). In an embodiment, the service interface class is a Java based service interface class.
FIG. 22 illustrates selected elements of an exemplary logical port file 2200 for the calendar Web service. In an embodiment, logical port file 2200 is a markup language based file. The term “markup language based” refers to a software entity written, and/or encoded, and/or formatted in one of the markup languages. In the illustrated embodiment, logical port file 2200 is an Extensible Markup Language (XML) based file. The term “XML based” refers to a software entity written, and/or encoded, and/or formatted in one of the XML languages.
Referring again to FIG. 19, one or more files are packaged together to form a Web service client package at process block 1960. The term “packaging” broadly refers to associating two or more software entities so that they may interoperate. Packaging may include resolving dependencies and/or providing references (e.g., pointers) so that the software entities refer to each other. In an embodiment, a development environment (e.g., development environment 218, shown in FIG. 2) is used to package the files that constitute a Web service client package.
FIG. 24 is a flow diagram illustrating selected aspects of creating a Web service archive, according to an embodiment of the invention. The term “Web service archive” refers to a repository of software entities (e.g., modules, files, etc.) that describe, at least in part, a Web service. In an embodiment, a Web service is described in several abstract layers including: one or more virtual interfaces, one or more Web service definitions for each virtual interface, and one or more Web service deployment descriptors for each Web service definition. The one or more virtual interfaces (e.g., virtual interface 422, shown in FIG. 4) provide an abstraction over a Web service implementation (e.g., session bean 412, shown in FIG. 4) in which operations are selectively exposed. A Web service definition (e.g., Web service definition 424, shown in FIG. 4) provides a layer in which features (e.g., communication and security features) may be defined in an abstract form for each virtual interface. A Web service deployment descriptor provides a layer in which technical details (e.g., protocol implementations) for the features in the Web service definition are described. In an embodiment, a Web service archive may include a virtual interface, a Web service definition, and/or a Web service deployment descriptor.
FIG. 28 illustrates selected aspects of Web service archive 2800, implemented according to an embodiment of the invention. Web service archive 2800 includes virtual interface 2810, Web service definition 2820, and Web service deployment descriptor 2830. In an embodiment, virtual interface 2810 is a software entity (e.g., a module, XML file, etc) having one or more elements that define which operations (and/or which parameters) of a Web service are available. The phrase “defining virtual interface 2810” broadly refers to inserting and/or manipulating the information in virtual interface 2810 (e.g., information element 2812). In an embodiment, Web service definition 2820 is a software element (e.g., a module, XML file, etc) having one or more elements that specify features of virtual interface 2810. The phrase “creating Web service definition 2820” broadly refers to inserting and/or manipulating the information in Web service definition 2820 (e.g., information element 2822). Similarly, Web service deployment descriptor 2830 may be a software entity (e.g., a module, XML file, etc) having one or more elements that specify the technical implementations of Web service definition 2820. Creating Web service deployment descriptor 2830 broadly refers to inserting and/or manipulating the information in Web service deployment descriptor 2830 (e.g., information element 2832).
In an alternative embodiment, the received Web service archive includes a Web service implementation, one or more virtual interfaces, one or more Web service definitions, and one or more Web service deployment descriptors. In such an embodiment, each virtual interface may provide one or more operations of the Web service implementation. The term “provide one or more operations” refers to selectively providing an interface for one or more of the Web service operations described in the Web service implementation.
Each Web service definition, in turn, may specify a behavior for a virtual interface. The term “specify a behavior” refers to specifying an abstract function that is to be provided by the virtual interface. The specified function is abstract in that it is independent of a specific technical implementation. In an embodiment, the specified behavior may be an authentication function, an authorization function, a session function, a transport guarantee function, and the like.
Referring to process block 2920 a Web service is deployed to a container on the application server that received the Web service archive. The term “deploy” refers to unpacking a Web service archive and placing the unpacked files in, for example, a directory of an application server. In an embodiment, the term “deploy” also refers to generating specific data to provide support, for example, for SOAP access and WSDL for each Web service. FIG. 30 illustrates selected elements of deploying Web service archive 3010 onto computing device 3020. In an embodiment, computing device 3020 includes deploy service 3022. Deploy service 3022 performs a number of tasks related to packing and unpacking Web service archive 3010. In an embodiment, deploy service 3022 passes Web service archive 3010 to Web service container 3026 and/or dedicated implementation container 3028. In an embodiment in which some (or all) of the files within Web service archive 3010 are compressed, deploy service 3022 may decompress the files before coping them to, for example, Web service container 3026 and dedicated implementation container 3028.
A “container” refers to a logical entity that provides services to software (e.g., a Web service). The provided service may include security, connectivity, lifecycle management, transactions, persistence, and the like. A container may also provide access to Application Program Interfaces (APIs) such as messaging APIs, registry APIs, Remote Procedure Call (RPC) APIs, and the like. For additional information about containers see, for example, the J2EE Standard. A Web services container provides services to one or more Web services. Deployed Web service 3027 illustrates a Web service based, at least in part, on Web service archive 3010 that is deployed on Web services container 3026.
A “dedicated implementation container” refers to a container that provides services to a particular Web service implementation. A dedicated implementation container may be for example an Enterprise Java Bean (EJB) container or a servlet container. An EJB is a J2EE based business component and may be a session bean, an entity bean, a message driven bean, and the like. An EJB container is a container that provides services to an EJB deployed within it. The term “servlet” refers to Java programming language classes that dynamically process requests and construct responses. A servlet container is a container that provides services to a servlet deployed within it. Deployed Web service 3029 illustrates a Web service based, at least in part, on Web service archive 3010 that is deployed on dedicated implementation container 3028.
FIG. 31 is a flow diagram illustrating selected aspects of processing a request for a Web service at runtime, according to an embodiment of the invention. Referring to process block 3110, a computing device receives a request for a Web service from a client. The term “a request for a Web service” broadly refers to a message, packet, frame, object, etc. from a client that indicates the client is invoking a Web service. In an embodiment, the received request is formatted for a particular transport layer protocol. For example, the received request may be formatted in accordance with HTTP, FTP, STMP, SOAP over HTTP, and the like. The term “associated with a transport layer protocol” refers to receiving a request that is formatted in accordance with a transport layer protocol. In an embodiment, the received request is an HTTP servlet request from a Web service client. An “HTTP servlet request” refers to a request from a servlet that supports an HTTP protocol. Servlets are further discussed below with reference to FIG. 32.
FIG. 32 illustrates selected elements of Web service framework 3200 having a Web service runtime implemented according to an embodiment of the invention. Web service framework 3200 includes client computing device 3210 and server computing device 3230 which are connected by network 3220. In an embodiment, client computing device 3210 may be any of a variety of general or specialized computing devices including a desktop computer, laptop computer, telephone, personal digital assistant, application server, and the like. The label “client” is merely shorthand for describing one of the relationships between computing devices 3210 and 3230 and does not preclude computing device 3210 from being a server to another computing device. Client computing device 3210 includes Web service client 3212.
Referring to process block 3120, the computing device wraps the received request with the transport identifier. The term “wrapping” broadly refers to encapsulating, appending, and/or subtending data or software to the received request. In an embodiment, the wrapped request may be described as “associated” with a Web service configuration because the transport object (e.g., the “wrapper”) identifies the configuration.
Referring to process block 3130, the wrapped request is passed to the identified Web service configuration. In an embodiment, passing the wrapped request to the identified “Web service configuration” refers to passing the wrapped request to a Web service runtime that implements the configuration of the Web service that is specified by the configuration (e.g., specified by configuration 3234). For example, passing the wrapped request to a Web service runtime that invokes the protocols and Web service implementation that are specified by the configuration.
US6055492 Dec 12, 1997 Apr 25, 2000 International Business Machines Corporation System and method for providing trace information data reduction
US6134581 Oct 6, 1997 Oct 17, 2000 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6144967 Jan 25, 1996 Nov 7, 2000 International Business Machines Corporation Object oriented processing log analysis tool framework mechanism
US6205476 May 5, 1998 Mar 20, 2001 International Business Machines Corporation Client—server system with central application management allowing an administrator to configure end user applications by executing them in the context of users and groups
US6212520 Mar 27, 1998 Apr 3, 2001 Fujitsu Limited Database management system based on client/server architecture and storage medium storing a program therefor
US6230313 Dec 23, 1998 May 8, 2001 Cray Inc. Parallelism performance analysis based on execution trace information
US6260187 Aug 20, 1998 Jul 10, 2001 Wily Technology, Inc. System for modifying object oriented code
US6308208 Sep 30, 1998 Oct 23, 2001 International Business Machines Corporation Method for monitoring network distributed computing resources using distributed cellular agents
US6356931 Oct 6, 1997 Mar 12, 2002 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6427228 May 12, 1999 Jul 30, 2002 International Business Machines Corporation Combining a meta data file and java source code to dynamically create java classes and javabeans
US6466973 Mar 6, 1998 Oct 15, 2002 Adaptec, Inc. Method and system for managing storage devices over a network
US6470388 Jun 10, 1999 Oct 22, 2002 Cisco Technology, Inc. Coordinated extendable system for logging information from distributed applications
US6553403 Jun 3, 1998 Apr 22, 2003 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6567809 Jun 8, 2001 May 20, 2003 International Business Machines Corporation Disabling and reloading enterprise java beans using database trigger programs
US6604113 * Apr 14, 2000 Aug 5, 2003 Qwest Communications International, Inc. Method and apparatus for providing account information
US6631515 Sep 24, 1998 Oct 7, 2003 International Business Machines Corporation Method and apparatus to reduce code size and runtime in a Java environment
US6658600 Apr 24, 2000 Dec 2, 2003 Microsoft Corporation Target control abstraction for debugging embedded systems
US6708173 Oct 18, 2000 Mar 16, 2004 Unisys Corporation Method and apparatus for multiple application trace streams
US6789257 Apr 13, 2000 Sep 7, 2004 International Business Machines Corporation System and method for dynamic generation and clean-up of event correlation circuit
US6792456 May 8, 2000 Sep 14, 2004 International Business Machines Corporation Systems and methods for authoring and executing operational policies that use event rates
US6795791 Aug 28, 2001 Sep 21, 2004 Bea Systems, Inc. System and method for testing time-varying signals
US6802067 Oct 27, 2000 Oct 5, 2004 Sprint Communications Company, L.P. Computer software framework and method for logging messages
US6836878 Jun 4, 1996 Dec 28, 2004 International Business Machines Corporation Visual programming from a tree structure
US6853995 Aug 6, 2001 Feb 8, 2005 Fujitsu Limited Information retrieval/distribution system, computer readable storage medium, and program for information retrieval/distribution
US6857119 Sep 25, 2001 Feb 15, 2005 Oracle International Corporation Techniques for modifying a compiled application
US6895578 Jan 6, 2000 May 17, 2005 Parasoft Corporation Modularizing a computer program for testing and debugging
US6922417 Jan 25, 2001 Jul 26, 2005 Compuware Corporation Method and system to calculate network latency, and to display the same field of the invention
US6934942 Aug 24, 2001 Aug 23, 2005 Microsoft Corporation System and method for using data address sequences of a program in a software development tool
US6952726 Aug 27, 1999 Oct 4, 2005 Hewlett-Packard Development Company, L.P. Automatic job resource usage and retrieval
US6961918 Jun 21, 2001 Nov 1, 2005 Garner Robert E System for intellectual property reuse in integrated circuit design
US6985848 Mar 2, 2001 Jan 10, 2006 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
US6990601 Sep 27, 2000 Jan 24, 2006 Fujitsu Limited Apparatus and method for managing network and computer-readable recording medium thereof
US7000235 Oct 30, 2001 Feb 14, 2006 Sun Microsystems, Inc. Method and apparatus for managing data services in a distributed computer system
US7051324 Jan 16, 2003 May 23, 2006 International Business Machines Corporation Externalized classloader information for application servers
US7058558 May 25, 2001 Jun 6, 2006 The Boeing Company Simulation system and method
US7062540 Jan 5, 2001 Jun 13, 2006 I2 Technologies Us, Inc. System and method for remotely monitoring and managing applications across multiple domains
US7082464 Jul 6, 2001 Jul 25, 2006 Juniper Networks, Inc. Network management system
US7086065 Jul 20, 2000 Aug 1, 2006 Telesector Resources Group, Inc. Functional enterprise bean
US7093234 Aug 24, 2001 Aug 15, 2006 International Business Machines Corporation Dynamic CPU usage profiling and function call tracing
US7120685 Jun 26, 2001 Oct 10, 2006 International Business Machines Corporation Method and apparatus for dynamic configurable logging of activities in a distributed computing system
US7150014 Oct 4, 2002 Dec 12, 2006 Hewlett-Packard Development Company, L.P. Automatically deploying software packages used in computer systems
US7152104 Oct 17, 2001 Dec 19, 2006 Sun Microsystems, Inc. Method and apparatus for notifying administrators of selected events in a distributed computer system
US7174370 Dec 21, 2001 Feb 6, 2007 Atul Saini System and methodology for developing, integrating and monitoring computer applications and programs
US7184922 Feb 28, 2005 Feb 27, 2007 National Instruments Corporation Measurement device that appears to a computer system as a file storage device
US7203868 Nov 26, 2003 Apr 10, 2007 Unisys Corporation Dynamic monitoring of resources using snapshots of system states
US7209734 * Jun 30, 2004 Apr 24, 2007 Oracle International Corporation Virtual mobile service provider
US7209898 Sep 30, 2002 Apr 24, 2007 Sap Aktiengesellschaft XML instrumentation interface for tree-based monitoring architecture
US7231435 Oct 28, 2002 Jun 12, 2007 Canon Kabushiki Kaisha Network system, information processing apparatus, information processing method, and control program
US7240334 Jun 29, 2000 Jul 3, 2007 International Business Machines Corporation Methods, systems, and computer program products for deferred computer program tracing
US7251809 Apr 10, 2003 Jul 31, 2007 International Business Machines Corporation Dynamic generation of program execution trace files in a standard markup language
US7277935 May 30, 2002 Oct 2, 2007 Allied Telesis Holdings K.K. Management method for network device
US7305671 Jan 23, 2003 Dec 4, 2007 Sun Microsystems, Inc. Conversion of an object model to a source file generation model
US7373661 Feb 14, 2005 May 13, 2008 Ethome, Inc. Systems and methods for automatically configuring and managing network devices and virtual private networks
US7409709 Feb 14, 2005 Aug 5, 2008 Etsec, Inc. Systems and methods for automatically reconfiguring a network device
US7467162 Jun 27, 2005 Dec 16, 2008 Microsoft Corporation Pre-configured settings for portable devices
US7480799 * Dec 11, 2001 Jan 20, 2009 Actional Corporation Traffic manager for distributed computing environments
US7487513 * Dec 30, 2003 Feb 3, 2009 Sap Ag Web service archive
US20020029298 Aug 9, 2001 Mar 7, 2002 Magnus Wilson Arrangement, a system and a method relating to management communication
US20020075325 Dec 18, 2000 Jun 20, 2002 Allor Jason M. Method and system for making resources available
US20020188610 Mar 8, 2002 Dec 12, 2002 Herman Spencer Data storage and access employing clustering
US20030005173 Jun 29, 2001 Jan 2, 2003 International Business Machines Corporation Methods and apparatus in distributed remote logging system for remote adhoc data analysis customized with multilevel hierarchical logger tree
US20030051102 Aug 5, 2002 Mar 13, 2003 Jacobs Dean Bernard System and method for flushing bean cache
US20030069969 Sep 26, 2002 Apr 10, 2003 Renaud Benjamin Jean-Baptiste Method and apparatus for using java dynamic proxies to interface to generic, bean-like management entities
US20030110252 Dec 7, 2001 Jun 12, 2003 Siew-Hong Yang-Huffman Enhanced system and method for network usage monitoring
US20030110373 * Dec 11, 2001 Jun 12, 2003 Stele Inc. Traffic manager for distributed computing environments
US20030163450 Jan 9, 2003 Aug 28, 2003 Joram Borenstein Brokering semantics between web services
US20030191803 * Apr 9, 2002 Oct 9, 2003 Sun Microsystems, Inc. Methods, systems and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment
US20030225851 Jan 14, 2003 Dec 4, 2003 Fanshier Stephen R. Systems and methods for application management and deployment
US20030225872 May 29, 2002 Dec 4, 2003 International Business Machines Corporation Consolidated management of remot and local application logs
US20030226139 * May 28, 2002 Dec 4, 2003 Sheng Lee System update protocol
US20040003122 Jun 19, 2003 Jan 1, 2004 International Business Machines Corporation Method and system for managing non-compliant objects
US20040019662 Jul 25, 2002 Jan 29, 2004 Sridatta Viswanath Dynamic administration framework for server systems
US20040019684 Mar 28, 2003 Jan 29, 2004 Timothy Potter Systems and methods for application view transactions
US20040022237 Feb 12, 2003 Feb 5, 2004 Level 3 Communications, Inc. Voice over data telecommunications network architecture
US20040031020 Dec 31, 2002 Feb 12, 2004 International Business Machines Corporation Method and system for modifying a class file to monitor data flow
US20040073782 Apr 29, 2003 Apr 15, 2004 Adrian Price Plug-in configuration manager
US20040078722 Sep 30, 2002 Apr 22, 2004 Stephen Pfeiffer XML instrumentation interface for tree-based monitoring architecture
US20040088352 * Apr 8, 2003 May 6, 2004 Kurth Lloyd N. Business to business integration via the web
US20040123279 Dec 18, 2002 Jun 24, 2004 International Business Machines Corporation Method and system for auto-instrumenting java applications through probe injection
US20040148610 Dec 12, 2003 Jul 29, 2004 William Tsun Methods, systems and computer program products for monitoring a task on a computer
US20040154011 Apr 24, 2003 Aug 5, 2004 Hong Wang Speculative multi-threading for instruction prefetch and/or trace pre-build
US20040158837 Jun 23, 2003 Aug 12, 2004 Bea Systems, Inc. Web based interface for JAVA message service mark-up language
US20040194105 Feb 17, 2004 Sep 30, 2004 Michael Shenfield System and method of compact messaging in network communications
US20040215649 Apr 9, 2003 Oct 28, 2004 Microsoft Corporation Method and system for representing group policy object topology and relationships
US20040230650 * May 14, 2003 Nov 18, 2004 Hewlett-Packard Development Company, L.P. System and method for managing conversations
US20040230674 * May 14, 2003 Nov 18, 2004 Hewlett-Packard Development Company, L.P. System and method for managing web services
US20040230943 * May 14, 2003 Nov 18, 2004 Hewlett-Packard Development Company, L.P. System and method for managing information technology resources
US20040230973 Apr 30, 2003 Nov 18, 2004 International Business Machines Corporation Mechanism to provide adminstrative control in a multi-process application server
US20040249613 Dec 17, 2003 Dec 9, 2004 Sprogis David H. System and method for remotely monitoring, diagnosing, intervening with and reporting problems with cinematic equipment
US20040254925 * Jun 13, 2003 Dec 16, 2004 James Clough Configurable interface
US20040268314 Jul 7, 2003 Dec 30, 2004 International Business Machines Corporation System and method for automatically collecting trace detail and history data
US20050010608 Nov 18, 2003 Jan 13, 2005 Shigeru Horikawa Job scheduling management method, system and program
US20050022157 Dec 23, 2003 Jan 27, 2005 Rainer Brendle Application management
US20050028171 Oct 20, 2003 Feb 3, 2005 Panagiotis Kougiouris System and method enabling multiple processes to efficiently log events
US20050033777 Aug 4, 2003 Feb 10, 2005 Moraes Mark A. Tracking, recording and organizing changes to data in computer systems
US20050038889 Oct 31, 2003 Feb 17, 2005 Thomas Frietsch Network server and method of discovery of a network node
US20050039171 Aug 12, 2003 Feb 17, 2005 Avakian Arra E. Using interceptors and out-of-band data to monitor the performance of Java 2 enterprise edition (J2EE) applications
US20050039187 Aug 12, 2003 Feb 17, 2005 Avakian Arra E. Instrumenting java code by modifying bytecodes
US20050097110 Nov 5, 2003 May 5, 2005 Microsoft Corporation Serialization for structured tracing in managed code
US20050102536 Oct 8, 2004 May 12, 2005 Bea Systems, Inc. Dynamically configurable distributed security system
US20050132337 Dec 11, 2003 Jun 16, 2005 Malte Wedel Trace management in client-server applications
US20050154785 Jan 9, 2004 Jul 14, 2005 Reed Benjamin C. Method and system of mapping at least one web service to at least one OSGi service and exposing at least one local service as at least one web service
US20050172306 Oct 20, 2003 Aug 4, 2005 Agarwal Manoj K. Systems, methods and computer programs for determining dependencies between logical components in a data processing system or network
US20050193057 * Feb 26, 2004 Sep 1, 2005 Owen Russell N. Apparatus and method for aggregating web services
US20050216488 Mar 26, 2004 Sep 29, 2005 Petrov Miroslav R Visual administrator providing java management bean support
US20050216584 Mar 24, 2004 Sep 29, 2005 Nortel Networks Limited Method and apparatus for collecting management information on a communication network
US20050234931 Apr 6, 2004 Oct 20, 2005 Microsoft Corporation Managing client configuration data
US20050234967 Dec 29, 2004 Oct 20, 2005 Motorola, Inc. System and method for providing data storage through a device management tree using non-device management agents
US20050251495 Oct 8, 2004 Nov 10, 2005 Bea Systems, Inc. System and method for unified file management
US20050257157 May 11, 2004 Nov 17, 2005 Yuval Gilboa Developing and executing applications with configurable patterns
US20050273703 Jun 8, 2004 Dec 8, 2005 Oracle International Corporation Method of and system for providing namespace based object to XML mapping
US20060015513 May 16, 2005 Jan 19, 2006 Nokia Corporation System, network entities and computer programs for configuration management of a dynamic host configuration protocol framework
US20060031850 * May 28, 2004 Feb 9, 2006 Timm Falter System and method for a Web service virtual interface
US20060095674 Aug 25, 2004 May 4, 2006 Twomey John E Tracing instruction flow in an integrated processor
US20060136351 Dec 8, 2004 Jun 22, 2006 Rohan Angrish Techniques for automatically exposing, as web services, procedures and functions stored in a database
US20060253420 * May 6, 2005 Nov 9, 2006 International Business Machines Corp. Method and system for creating a protected object namespace from a WSDL resource description
US20070073760 * Sep 28, 2005 Mar 29, 2007 Baikov Chavdar S Method and system for generating schema to java mapping descriptors
US20070073769 * Sep 28, 2005 Mar 29, 2007 Baikov Chavdar S Method and system for generating a web services meta model on the java stack
US20070203820 Jun 30, 2005 Aug 30, 2007 Rashid Taimur A Relationship management in an auction environment
US20070245167 Apr 18, 2007 Oct 18, 2007 International Business Machines Corporation Managing failover of j2ee compliant middleware in a high availability system
US20080189713 * Aug 10, 2007 Aug 7, 2008 International Business Machines Corporation System and Method for Performing Systems Management on IT-Resources Using Web Services
EP1318461A1 Dec 7, 2001 Jun 11, 2003 SAP Aktiengesellschaft Method and computer system for refreshing client-data
JP2001195151A Title not available
JP2002073522A Title not available
JP2002082777A Title not available
WO2002005102A1 Jul 3, 2001 Jan 17, 2002 Onspec Electronic, Inc. Flashtoaster for reading several types of flash memory cards with or without a pc
WO2002041154A2 Nov 16, 2001 May 23, 2002 Cypress Semiconductor Corp. Universal serial bus (usb) interface for mass storage device
1 ""EarlyAdopter-DS.pdf, Bibliographic Data for Early Adopter: J2SE 1.4"", by Wrox Press, 1 pg.
2 ""EarlyAdopter—DS.pdf, Bibliographic Data for Early Adopter: J2SE 1.4"", by Wrox Press, 1 pg.
3 "Adding Systems to the Availability Monitoring Manually", http://help.sap.com/saphelp-erp2004/helpdata/en/38/9e0fe5d7980fffe10000009b3810a5/c . . . , Adding Systems to the Availability Monitoring Manually (SAP LIbrary - The Alert Monitoring), (Downloaded Dec. 14, 2004), 1 pg.
4 "Adding Systems to the Availability Monitoring Manually", http://help.sap.com/saphelp—erp2004/helpdata/en/38/9e0fe5d7980fffe10000009b3810a5/c . . . , Adding Systems to the Availability Monitoring Manually (SAP LIbrary - The Alert Monitoring), (Downloaded Dec. 14, 2004), 1 pg.
5 "Alert Monitoring of the J2EE Engine Using CCMS", http://help.sap.com/saphelp-webas630/helpdataien/92/ef30241c0f4a41959390a27e286ce . . . , Alert Monitoring of the J2EE Engine Using CCMS - SAP Library, (Downloaded Dec. 14, 2004), 2 pgs.
6 "Alert Monitoring of the J2EE Engine Using CCMS", http://help.sap.com/saphelp—webas630/helpdataien/92/ef30241c0f4a41959390a27e286ce . . . , Alert Monitoring of the J2EE Engine Using CCMS - SAP Library, (Downloaded Dec. 14, 2004), 2 pgs.
7 "Availability and Performance Overview Monitor", http://help.sap.comisaphelp-erp2004/helpdata/en/aelcd823bd26a5c42e10000000a114084 . . . , Availability and Performance Overview Monitor (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 3 pgs.
8 "Availability and Performance Overview Monitor", http://help.sap.comisaphelp—erp2004/helpdata/en/aelcd823bd26a5c42e10000000a114084 . . . , Availability and Performance Overview Monitor (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 3 pgs.
9 "Availability Monitoring with CCMSPRING", http://help.sap.comlsaphelp-erp2004/helpda alen/38/9e3337d7840ffee10000009b3810a5/ . . . , Availability Monitoring with CCMSPRING (SSP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 19 pgs.
10 "Availability Monitoring with CCMSPRING", http://help.sap.comlsaphelp—erp2004/helpda alen/38/9e3337d7840ffee10000009b3810a5/ . . . , Availability Monitoring with CCMSPRING (SSP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 19 pgs.
11 "CCMS Agents", http://help.sap.com/saphelp-nw04/helpdata/en/48/6a76607a7c9140947ad6c7b6f5a26/frameset.htm, 2 pgs.
12 "CCMS Agents", http://help.sap.com/saphelp—nw04/helpdata/en/48/6a76607a7c9140947ad6c7b6f5a26/frameset.htm, 2 pgs.
13 "CCMS Monitoring Architecture: Preconfigured Monitors for teh Alert Monitor", SAP Web Application Server 6.20, (Nov. 16, 2001), 52 pgs.
14 "CCMS: Informix", http://help.sap.com/saphelp-erp2004/helpdata/en/73/61c850800e25478d24696196a969a5 . . . , CCMS: Informix (SAP Library - CCMS: Informix), (Downloaded Dec. 14, 2004), 2 pgs.
15 "CCMS: Informix", http://help.sap.com/saphelp—erp2004/helpdata/en/73/61c850800e25478d24696196a969a5 . . . , CCMS: Informix (SAP Library - CCMS: Informix), (Downloaded Dec. 14, 2004), 2 pgs.
16 "Changing Monitoring Setting of Servers and Groups", http://help.sap.comisaphelp-erp2004/helpdata/en/6c/d667aa73bb9c42809786eaf559f7ea1 . . . , Changing Monitoring Setting of Servers and Groups (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 2 pgs.
17 "Changing Monitoring Setting of Servers and Groups", http://help.sap.comisaphelp—erp2004/helpdata/en/6c/d667aa73bb9c42809786eaf559f7ea1 . . . , Changing Monitoring Setting of Servers and Groups (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 2 pgs.
18 "Configuring Availability Monitoring", http://help.sap.cornIsaphelp-erp2004/helpdata/en/38/9e100dd7980fffe10000009b3810a5/ . . ., Configuring Availability Monitoring (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 4 pgs.
19 "Configuring Availability Monitoring", http://help.sap.cornIsaphelp—erp2004/helpdata/en/38/9e100dd7980fffe10000009b3810a5/ . . ., Configuring Availability Monitoring (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 4 pgs.
20 "Creating and Changing a Monitoring Pause", http://help.sap.com/saphelp-erp2004/helpdata/en/73/098488227c384f97c5642257371086 . . ., Creating and Changing a Monitoring Pause (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 2 pgs.
21 "Creating and Changing a Monitoring Pause", http://help.sap.com/saphelp—erp2004/helpdata/en/73/098488227c384f97c5642257371086 . . ., Creating and Changing a Monitoring Pause (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 2 pgs.
22 "Creating and Changing Monitoring Rules", http://help.sap.com/saphelp-erp2004/helbdata/en/40/17fd8c1754324b81da9027f1 bdbb75/ . . ., Creating and Changing Monitoring Rules (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 3 pgs.
23 "Creating and Changing Monitoring Rules", http://help.sap.com/saphelp—erp2004/helbdata/en/40/17fd8c1754324b81da9027f1 bdbb75/ . . ., Creating and Changing Monitoring Rules (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 3 pgs.
24 "Debugging J2EE Applications", Sun Microsystems, Java - J2EE 1.4 Application Server Deveoper's Guide, "Debugging J2EE Applications" Chapter 4, http://java.sun.com/j2ee/1.4 docs/devguide/dgdebug.html, 2003, printed Jul. 2, 2004 (11 pgs.), (2003), 11 pgs.
25 "Installing and Registering CCMS Agents", http://help.sap.com/saphelp-nw04/helpdata/en/48/6a76607a7c91409474ad6c7b6f5a26/framesethtm, SAP Library. (Downloaded Dec. 14, 2004), 2 pgs.
26 "Installing and Registering CCMS Agents", http://help.sap.com/saphelp—nw04/helpdata/en/48/6a76607a7c91409474ad6c7b6f5a26/framesethtm, SAP Library. (Downloaded Dec. 14, 2004), 2 pgs.
27 "Installing Availability Agent CCMSPING", http://help.sap.com/saphelp-erp2004/helpdata/en/79/498e3baeld9e7ae10000000a114084 . . . , Installing Availability Agent CCMSPING (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 2 pgs.
28 "Installing Availability Agent CCMSPING", http://help.sap.com/saphelp—erp2004/helpdata/en/79/498e3baeld9e7ae10000000a114084 . . . , Installing Availability Agent CCMSPING (SAP Library - The Alert Monitor), (Downloaded Dec. 14, 2004), 2 pgs.
29 "Java Logging Overview", (Nov. 2001), pp. 1-9.
30 "Jikes Bytecode Toolkit: Overview", Alphaworks, www.alphaworks.ibm.com/tech/jikesbt, posted Mar. 31, 2000, 2 pages, printed Sep. 28, 2006.
31 "Mobile-Code Security Mechanisms for Jini" Download code, DISCEX 2001 Paper, http://theory.stanford.edu/people/jcm/software/jinifilter.html, printed Jul. 2, 2004 - (3 pgs.), (2001), 3 pgs.
32 "Monitoring", http://help.sap.com/saphelp-webas630/helpdata/en/68/f4bc3deaf28d33e10000000a11405 . . . , Monitoring (SAP Library - J2EE Technology in SAP Web Application Server), (Downloaded Dec. 14, 2004), 3 pgs.
33 "Monitoring", http://help.sap.com/saphelp—webas630/helpdata/en/68/f4bc3deaf28d33e10000000a11405 . . . , Monitoring (SAP Library - J2EE Technology in SAP Web Application Server), (Downloaded Dec. 14, 2004), 3 pgs.
34 "Operating System Monitor", http://heip.sap.comisaphelp-nw04/helpdata/en/55/b5b93b5bb3493fe10000000a114084/frarneset.htm, SAP Library, (Downloaded Dec. 14, 2004), 1 pg.
35 "Operating System Monitor", http://heip.sap.comisaphelp—nw04/helpdata/en/55/b5b93b5bb3493fe10000000a114084/frarneset.htm, SAP Library, (Downloaded Dec. 14, 2004), 1 pg.
36 "Package Gnu.Bytecode", Package Gnu.Bytecode, http://sources.redhat.com/kawa/api.gnu/bytecode/package-summary.html, 4 pages, printed Sep. 28, 2006.
37 "The Alert Monitor", http://help.sap.corn/saphelp-nw2004s/helpdata/en/28/83493b6b82e908e10000000a11402fIcontent.htm, SAP Library, (Downloaded Dec. 14, 2004), 2 pgs.
38 "The Alert Monitor", http://help.sap.corn/saphelp—nw2004s/helpdata/en/28/83493b6b82e908e10000000a11402fIcontent.htm, SAP Library, (Downloaded Dec. 14, 2004), 2 pgs.
39 "The Java Object Instrumentation Environment", Duke University, www.cs.duke.edulari/joie/, last updated May 2003, printed Sep. 28, 2006, 2 pgs.
40 "The Monitoring Architecture: Concept", http://help.sap.com/saphelp-pw04/hepdata/en/c4/3a7da1505211d189550000e829fbbd/frameset,html, SAP Library, (Downloaded Feb. 27, 2008), 2 pgs.
41 "The Monitoring Architecture: Concept", http://help.sap.com/saphelp—pw04/hepdata/en/c4/3a7da1505211d189550000e829fbbd/frameset,html, SAP Library, (Downloaded Feb. 27, 2008), 2 pgs.
42 "The Sap J2EE Engine Monitoring Architecture", http://help.sap.com/saphelp-webas630/helpdata/en/83/6b20165833fa43b28f0349a4d3108 . . . , The SAP J2EE Engine Monitoring Architecture (SAP Library - J2EE Technology in SAP . . . , (Downloaded Dec. 14, 2004), 2 pgs.
43 "The Sap J2EE Engine Monitoring Architecture", http://help.sap.com/saphelp—webas630/helpdata/en/83/6b20165833fa43b28f0349a4d3108 . . . , The SAP J2EE Engine Monitoring Architecture (SAP Library - J2EE Technology in SAP . . . , (Downloaded Dec. 14, 2004), 2 pgs.
44 "The Source for Developers: Core Java Java Management Extensions (JMX)", Sun Microsystems, Inc, "The Source for Developers: Core Java Java Management Extensions (JMX)" 2 pages, http://java.sun.com/products/JavaManagement/printed Apr. 2, 2004., 2 pages.
45 * A. Banerji, et al. Web Services Conversation Language (WSCL) 1.0, W3C Note, World Wide Web Consortium, Mar. 2002. URL http://www.w3.org/TR/wscl10/.
46 Abdel-Aziz, A A., et al., "Mapping XML DTDs to relational schemas", IEEE, (2005), pp. 1-4.
47 Affeidt, Reynald, et al., "Supporting Objects in Run-Time Bytecode Specialization", Department of Graphics and Computer Science, University of Tokyo, ASIA-PEPM '02, Sep. 12-17, 2002, ACM, pp. 50-60., (Sept. 12-17, 2002), pp. 50-60.
48 Amer-Yahia, S, et al., "A Web-services architecture for efficient XML data exchange", IEEE, (2004), pace(s.) 1-12.
49 Burtscher, et al., ""Automatic Generation of High-Performance Trace Compressors"" IEEE, (2005), pg. 1-12.
50 Burtscher, M, ""VPC3: A Fast and Effective Trace-Compression Algorithm"", ACM, (2004), p. 167-176.
51 Chander, Ajay, et al., "Mobile Code Security by Java Bytecode Instrumentation", Proceedings of the DARPA Information Survivability Conference & Exposition DISCEX-II 2001, Jun. 12-14, 2001, Stanford University and University of Pennsylvania, (Jun. 12-14, 2001), 14 pgs.
52 Chang, L, "A Network Status Monitoring System Using Personal Computer", Global Telecommunications Conference, 1989, and Exhibition, ‘Communications Technology for the 1990s and Beyond’. GLOBECOM '89., IEEE, (1989), pp. 201-206.
53 Chang, L, "A Network Status Monitoring System Using Personal Computer", Global Telecommunications Conference, 1989, and Exhibition, 'Communications Technology for the 1990s and Beyond'. GLOBECOM '89., IEEE, (1989), pp. 201-206.
54 Cohen, Geoff A., et al., "An Architecture for Safe Bytecode Insertion", Software-Practice and Experience, [Version: Mar. 6, 2000 v2.1] "An Architecture for Safe Bytecode Insertion", Department of Computer Science, Duke University , (Mar. 6, 2000), 27 pgs.
55 Cohen, Geoff A., et al., "Automatic Program Tranformation with JOIE", Paper, Departmen of Computer Science, Duke University, 12 pages, (1998), 12 pgs.
56 Dahm, Markus, "Welcome to the Byte Code Engineering Library 4.4.1", http://bcel.sourceforge.net/main.html, last updated Apr. 12, 2002, 2 pages, printed Sep. 28, 2006.
57 Davies. Jonathan, et al., "An Aspect Oriented Performance Analysis Environment", Proceedings of the 2nd international conference on "An Aspect Oriented Performance Analysis Environment", Boston, Massachusetts Mar. 17-21, 2003, 10 pgs.
58 Ege, R K., "Object-oriented database access via reflection", IEEE, (1999), p. 36-41.
59 Etienne Gagnon, et al., "Effective Inline-Threaded Interpretation of Java Bytecode Using Preparation Sequences", Sable Research Group, Universite du Quebec a Montreal and McGill University, Montreal. Canida, Jan. 23 2003 (15 pgs.)., (Jan. 2003), 15 pgs.
60 Final Rejection for US. Appl. No. 11/322,567 mailed Oct. 13, 2009, 15 pgs.
61 Final Rejection for US. Appl. No. 11/322,567 mailed Oct. 27, 2008, 6 pgs.
62 Final Rejection for US. Appl. No. 11/322,605 mailed Ju. 11, 2009, 19 pgs.
63 Final Rejection for US. Appl. No. 11/322,605 mailed Mar. 26, 2010, 25 pgs.
64 Final Rejection for US. Appl. No. 11/323,064 mailed Apr. 15, 2010, 24 pgs.
65 Final Rejection for US. Appl. No. 11/323,064 mailed Jun. 10, 2009, 16 pgs.
66 Gill, Peter W., "Probing for a Continued Validation Prototype", a Thesis Submitted to the Faculty of the Worcester Polytechnic Institute, May 2001, 111 pages.
67 Goldberg, Allen, et al., "Instrumentation of Java Bytecode for Runtime Analysis", Fifth ECOOP Workshop on Formal Techniques for Java-like Programs, Jul. 21, 2003, Kestrel Technology, NASA Ames Research Center, Moffett Field, California USA, (9 pgs.), (Jul. 21, 2003), 9 pgs.
68 Hampton, Kip, "High-Performance XML Parsing with Sax", Published on XML.com by Feb. 14, 2001., 5 pgs.
69 Hart, James, ""Early Adopter: J2SE 1.4"", chapter 5, Wrox Press, (Sep. 2001), pp. 1-12.
70 Kaplan, et al., ""Flexible Reference Trace Reduction for VM Simulations"", ACM, (2003), p. 1-38.
71 Keller, Ralph, et al., "Supporting the Integration and Evolution of Components Through Binary Component Adaptation", www.cs.ucsb.edu/oocsb, Sep. 9, 1997, Technical Report TRCS97-15, 12 pages.
72 Lee, Han B., "Bit: Bytecode Instrumenting Tool", University of Colorado, Department of Computer Science 1997, 51 pages.
73 Lee, Han B., et al., "Bit: A Tool for Instrumenting Java Bytecodes",originaliy published in the Proceedings of the USENIX Symposium on Internet Technologies and Systems, Monterey, California, Dec. 1997. www.usenix.orgi (11 pgs.). (Dec. 1997), 11 pgs.
74 Li, Wen , et al., "Collaboration Transparency in the DISCIPLE Framework", CAIP Center, Rutgers - The State University of New Jersey, Piscataway, NJ, USA, Proceeding of the ACM International Conference on Supporting Gruop Work (Group '99) Nov. 14-17, 1999, 10 pgs.
75 Macrides. Nathan, "Sans Security Essentials (GSEC) Practical Assignment Version 1.4", Nathan Macrides, Security Techniques for Mobile Code "SANS Security Essentials (GSEC) Practical Assignment Version 1.4", Jul. 11, 2002, 11 pgs.
76 Mclaughlin, Brett, "Tip: Set up a SAX Parser", Published by International Business Machines Corporation on Jul. 2, 2003., 5 pgs.
77 Mcnamee, Dylan, et al., "Specialization Tools and Techniques for Systematic Optimization of System Software", Oregon Graduate Institute of Science & Technology, and University of Rennes/Irisa, ACM Transactions on Computer Systems, 2001, 30 pgs.
78 Non-Final Rejection for US. Appl. No. 11/322,567 mailed Dec. 31, 2007, 12 pgs.
79 Non-Final Rejection for US. Appl. No. 11/322,567 mailed Mar. 31, 2009, 21 pgs.
80 Non-Final Rejection for US. Appl. No. 11/322,605 mailed Oct. 15, 2009, 22 pgs.
81 Non-Final Rejection for US. Appl. No. 11/322,6054 mailed Nov. 14, 2008, 26 pgs.
82 Non-Final Rejection for US. Appl. No. 11/323,064 mailed Nov 19, 2008, 17 pgs.
83 Non-Final Rejection for US. Appl. No. 11/323,064 mailed Oct. 14, 2009, 20 pgs.
84 Perry, J. S., "Java Management Extensions", O'Reilly Media, Inc., (Jun. 18, 2002), 1-30.
85 Ploesh, Reinhold, "Evaluation of Assertion Support for the Java Programming Language", Johannes Kepler University Linz, Austria, JOT: Journal of Object Technology, vol. 1, No. 3, Special Issue: Tools USA 2002 Proceedings, pp. 5-17, http://www.jot.fm/issues/, (2002), pp. 5-17.
86 Rudys, Algis, et al., "Enforcing Java Run-Time Properties Using Bytecode Rewriting", International Symposium on Software Security (Tokyo, Japan), Nov. 2002, Rice University, Houston, TX 77005, USA (16 pgs.)., (Nov. 2002), 16 pgs.
87 Shepherd, et al., "Programming with Microsoft Visual C++.net," Microsoft Press, 2003, pp. 391-397, 771, 806-807, 820-826; 19 total pgs.
88 Snyder, Alan, "The Essence of Objects: Concepts and Terms", IEEE Software, Jan. 1993, pp. 31-42.
89 Stephenson, Ben, et al., "Characterization and Optimization of Java Applications", Department of Computer Science, Abstract in Western Research Forum Program & Abstracts, p. 20, 2003., (2003), p. 20.
90 Thomas-Kerr, J, et al., "Bitstream Binding Language; Mapping XML Multimedia Containers into Streams", IEEE, (2005), pp. 1-4.
91 Welch, Ian, et al., "Kava - A Reflective Java Based on Bytecode Rewriting" SpringerLink - Verlag Belling Heidelberg 2000, Chapter, Lectures Notes in Computer Science, W. Cazzola, et al. Editors, Reflection and Software Engineering, LNCS, pp. 155-167., (2000), pp. 155-167.
92 Wily Solutions "How Introscope Works" - Enterprise Application Mangernent, http/www.wilytech.com/solutions/products/howWorks.html, 1999-2004, printed Jul. 2, 2004 (1 p.)., (1999-2004), 1 page.
93 Wily Technology, Inc., Wily Solutions "Wily Introscope" -Enterprise Application Management, http://www.wilytech.com/solutions/products/introscope.html, 1999-2004, printed Jul. 2, 2004 (2 pgs.), (1999-2004), 2 pgs.
94 Wily Techonology, Inc., Wily Solutions "The Wily 5 Solution - Enterprise Aplications are Your Business", http://www.wilytech.com/solutions/ibm-family.html, 1999-2004, printed Jul. 2, 2004 (2 pgs.), (1999-2004), 2 pgs.
95 Wily Techonology, Inc., Wily Solutions "The Wily 5 Solution - Enterprise Aplications are Your Business", http://www.wilytech.com/solutions/ibm—family.html, 1999-2004, printed Jul. 2, 2004 (2 pgs.), (1999-2004), 2 pgs.
96 Wu, et al., "From Trace Generation to Visualization: A Performance Framework for Distributed Parallel Systems", IEEE, (2000), pp. 1-18.
US8327341 * May 31, 2007 Dec 4, 2012 Red Hat, Inc. Integrating aspect oriented programming into the application server
US8375362 * Nov 28, 2006 Feb 12, 2013 Emc Corporation Wizard for web service search adapter
US8640146 May 31, 2007 Jan 28, 2014 Red Hat, Inc. Providing extensive ability for describing a management interface
US8972487 * Aug 3, 2011 Mar 3, 2015 Sap Se Automated framework for testing enterprise services consumer technologies
US9009699 May 31, 2007 Apr 14, 2015 Red Hat, Inc. Providing a POJO-based microcontainer for an application server
US9058571 * Aug 31, 2007 Jun 16, 2015 Red Hat, Inc. Tool for automated transformation of a business process definition into a web application package
US9299049 Mar 15, 2013 Mar 29, 2016 Sap Se Contract-based process integration
US9342248 Apr 29, 2014 May 17, 2016 Vmware, Inc. Techniques for reducing read I/O latency in virtual machines
US9645805 * Aug 7, 2014 May 9, 2017 Vmware, Inc. Application blueprints based on service templates to deploy applications in different cloud environments
US20080301629 * May 31, 2007 Dec 4, 2008 Stark Scott M Integrating aspect oriented programming into the application server
US20080301711 * May 31, 2007 Dec 4, 2008 Stark Scott M Providing a POJO-based microcontainer for an application server
US20090083762 * Sep 24, 2007 Mar 26, 2009 Microsoft Corporation Dynamically mapping an action of a message
US20120131143 * May 31, 2011 May 24, 2012 Canon Kabushiki Kaisha User device identifying method and information processing system
US20130036156 * Aug 3, 2011 Feb 7, 2013 Mariela Todorova Automated framework for testing enterprise services consumer technologies
US20140380300 * Jun 25, 2013 Dec 25, 2014 Bank Of America Corporation Dynamic configuration framework
US20150378703 * Aug 7, 2014 Dec 31, 2015 Vmware, Inc. Application blueprints based on service templates to deploy applications in different cloud environments
WO2015077103A1 * Nov 12, 2014 May 28, 2015 Ebay Inc. Zero downtime deployment and rollback
U.S. Classification 709/217, 719/332, 719/330, 709/218, 719/331, 709/219
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAVCHENKO, VLADIMIR;STOYANOVA, DIMITRINA;FALTER, TIMM;SIGNING DATES FROM 20040213 TO 20040216;REEL/FRAME:015505/0254