US 7945860 Systems and methods for managing conversations between information technology resources
ABSTRACT – A system for managing a conversation includes one or more interfaces configured to provide management information about the conversation to a manager. The interface can be configured to provide information regarding a resource such as a Web service that contains the conversation. Information regarding the conversation that may be made available to the manager includes the number of failed messages processed by the conversation; the number of successful messages processed by the conversation; the total number of messages processed by the conversation; the number of other resources participating in the conversation; the identity of other resources participating in the conversation; an identifier of the conversation; the last message received; the last fault message received; and an identifier of the resource that contains the conversation.
The term Web services describes an approach to distributed computing in which interactions are carried out through the exchange of eXtensible Markup Language (XML) messages. Web services can perform any task that can be described and contained within one or more modules of code. For example, functions such as language translation or currency conversion, performing calculations for medical claims processing, and handling certain aspects of travel planning can be implemented in a Web service. Essentially any transaction or bit of business logic can become a Web service if it can be accessed and used by another system over a network such as the Internet.
A Web service is a software system identified by a Universal Resource Identifier (URI) whose public interfaces and bindings are typically defined and described in an XML document. The description can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols.
The Web services architecture is based upon the interactions between three primary roles: service provider, service registry, and service requestor. These roles interact using publish, find, bind and other operations. The service provider is the business that provides access to the Web service and optionally publishes the service description in a service registry. The service requestor finds the service description optionally in a service registry and uses the information in the description to bind to a service.
Web services typically send XML messages formatted in accordance with the Simple Object Access Protocol (SOAP) specification. The SOAP specification is a universally agreed-upon protocol that uses XML and optionally HTTP together to invoke functions exposed in Web services.
The XML messages are described using the Web Services Description Language (WSDL) specification, which, along with the optional Universal Description Discovery and Integration (UDDI) registry, provides a definition of the interface to a Web service and identifies service providers in a network. The WSDL specification is an XML-based language used to define Web services and describe how to access them. An application trying to use a particular Web Service uses WSDL to find the location of the Web service, the function calls available, and the format that the client must follow to access the Web service. Therefore, the client first obtains a copy of the WSDL file and then uses the information in this file to format a request, often using SOAP.
The UDDI registry supports Web services by providing a place for a company to register its business and the Web services that it offers. Users that need a Web service can use this registry to find a business that provides the service.
Web services are highly extensible, interact in a loosely coupled manner, and are deployed and utilized via various standard specifications such as SOAP, WSDL, and UDDI. In particular, Web services allow businesses to create processes that span multiple enterprises and define networks based on business partnerships. Enterprises are adopting Web services technology to address their business integration needs, but currently there is no standard framework for managing Web services.
Web services have some characteristics that make them especially challenging to manage. One characteristic is that Web services work together to form a distributed application that may extend across an enterprise or even a worldwide network such as the Internet. The challenge is that there are many viewpoints from which to manage an application. The management challenges with a distributed application involve crossing boundaries of control and management domains while maintaining a unified, yet customized view for the distributed application. For instance, an IT manager may be interested in managing all of the services in a domain, which includes several computer systems. The vantage point is all Web services on a given computer system. In another instance, a process manager may be interested in all of the Web services that work together to drive a process to completion. This may involve Web services throughout an enterprise, or possibly Web services hosted by other companies. Still further, a business manager may be interested in all of the service agreements with the company regarding Web services hosted by other companies. The business manager will be interested in making sure the company meets its service agreements with others. Additionally, the service providers’ performance in fulfilling the service agreements will be tracked to provide information for making future business decisions.
Another characteristic that presents management challenges is that Web services have been designed to be extensible at all levels. The SOAP protocol standard provides a very flexible mechanism to extend the processing of messages by adding headers to the message. Additionally, the body of the message may be any XML document that is understood by the Web service. The WSDL and XML-schema description standards provide a means to define arbitrary data types, and to extend or restrict previously defined data types. An XML-schema is a document that describes the valid format of an XML data-set, such as elements that are (and are not) allowed at any point; what the attributes for any element may be; and the number of occurrences of elements.
It is also possible for a Web service to provide several interfaces into its functionality. There are also discovery standards that provide their own extensibility mechanisms. The management challenges with such an extensible system include determining the type of a managed object and how to communicate with the object.
The UDDI standard allows WSDL documents to be discovered at run time. This discovery mechanism is not limited to use only within an enterprise, but is available wherever the Web service is available over a network, such as the Internet. Furthermore, it is possible to discover not only the basic capabilities of a Web service, but also the advanced capabilities that are specified by these standards. One management challenge with such a powerful discovery mechanism is to ensure that provided services are protected with the proper type of security. Another management challenge is identifying users accessing the provided Web services. Yet another more complex management challenge is that all appropriate service agreements are not only discoverable but also enforced.
SOAP and UDDI provide information about the Web services as they use the applications, but facilities are lacking that provide critical information on the state of the Web service as it is executing, and allow messages sent and receieved by the Web service to be managed.
In one embodiment, a system for managing a conversation in a Web service includes a conversation managed object executable on a computer processor. The conversation managed object includes one or more interfaces configured to provide management information about the conversation to a manager. The interface is configured to provide information regarding the Web service that contains the conversation.
In another embodiment, a system capable of monitoring messages between a first resource and a second resource includes a computer processor configured to communicate with the first resource. The computer processor includes executable instructions operable to: discover whether a conversation has been established between the first resource and the second resource; end the conversation; and request information regarding the conversation. The information about the conversation that is available via the interface includes, for example, the number of failed messages processed by the conversation; the number of successful messages processed by the conversation; the total number of messages processed by the conversation; the number of other resources participating in the conversation; the identity of other resources participating in the conversation; an identifier of the conversation; the last message received; the last fault message received; and/or an identifier of the first resource that contains the conversation.
In a further embodiment, a computer program product comprises a conversation interface, and a managed object interface associated with the conversation interface. The conversation interface includes information for monitoring messages in a conversation, including the number of failed messages; the number of successful messages; the total number of messages; the identity of services participating in the conversation; the number of services participating in the conversation; an identifier of the conversation; the last message received by the managed service; the last fault message received by the managed service; and/or an identifier of the managed service that contains the conversation interface.
In a still further embodiment, a method for managing a conversation for a Web service includes creating a conversation object representing the conversation, exposing management capabilities for the conversation via a plurality of interfaces; and allowing a manager to subscribe with the conversation object to receive notification of events regarding the conversation.
Various other features and advantages of embodiments of the invention will be more fully understood upon consideration of the detailed description below, taken together with the accompanying figures.