TECHNICAL FIELDThe present invention relates to service oriented environments, and more particularly to graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states.
BACKGROUNDA Service Oriented Architecture (SOA) is a business-driven IT architectural approach that supports integrating the business as linked, repeatable business tasks, or services. The basic building block is a service document that defines a service so that it can be managed with other services. A service document contains information about a service including the location of the service and details about the service and how to access the service. Service documents are used by analysts, architects, and developers during a development phase of the SOA lifecycle to locate services to reuse and to evaluate the impact of changes to service configurations. Service documents are variously described as metadata, objects, descriptions, entities and artifacts.
A service repository stores the service document and allows access to the service document and thereby the corresponding service. A service registry is an index of a subset of information about a service (for example the location and name of service document) enabling the corresponding service document to be located and accessed in a repository (or even the corresponding service located at the service provider). An integrated service registry and repository allows a service operation to use both the indexed service information in the registry and the detailed service information in the repository. An example of an integrated service registry and repository is IBM® WebSphere® Registry and Repository (WSRR).
Such an integrated service registry and repository has advantages of greater business agility and resilience through reuse than separate systems. Further advantages of looser coupling, greater flexibility, better interoperability, and better governance arise from the integration. These advantages are addressed by separating service descriptions from their implementations, and using the service descriptions across the lifecycle of the service. Standards-based service metadata artifacts, such as Web Service Definition Language (WSDL), Extensible Mark-up Language (XML) schema, policy or Service Component Architecture (SCA) documents, capture the technical details of what a service can do, how it can be invoked, or what it expects other services to do. Semantic annotations and other metadata can be associated with these artifacts to offer insight to potential users of the service on how and when it can be used, and what purpose it serves.
A policy is a rule that is applied to an object by an environment. For instance, access to an object can be controlled by applying a rule that only entities with a certain token can have access to the object. W3C (World Wide Web Consortium) is a community working together to develop interoperable internet technology. WS-Policy is a W3C WS (Web Service) standard that is intended to provide a means for specifying policies that need to be applied to web services and specifically service documents. A policy can be a generic policy as defined in the WS-Policy framework or it can be a domain specific policy as defined in a policy domain. The WS-Policy-Attach specification (also controlled by the W3C) specifies a standard means by which policy attachments can be defined to link a policy to a service object referenced in a service document.
Service objects or logical objects are derived from documents (WSDL (Web Service Definition Language) documents; XSD (XML schema definition) documents; XML (extensible mark-up language) documents, WS-Policy documents etc.) when they are loaded into the service registry environment. The WS-Policy-Attach specification declares different means of specifying policy attachments that link specific policies to target subjects: embedded policies in WSDL documents; embedded policy references in WSDL documents; embedded policy references from policyURl (Universal Resource Indicator) attributes in WSDL documents; embedded policies in external policy attachment files; and embedded policy references in external policy attachment files.
These service or logical objects can be transitioned through states defined in a lifecycle (e.g., assemble, deploy, manage, retire), and the resulting states will be reflected in the classification metadata associated with these objects. The service registry console or Application Programming Interfaces (APIs) can be used to locate and use the objects based upon these classifications.
Lifecycle definitions for these objects in the service registry are defined by a standard representation called State Adaptive Choreography Language (SACL). While a SACL infrastructure to manage the lifecycle of objects in the service registry gives a flexible framework to represent objects with states and transitions, it lacks the ability to pictorially present to end users information about the current lifecycle state, next lifecycle states, possible transitions and constraints represented as policy assertions on the transitions (e.g., WS-Policy assertions). That is, the current representation of lifecycle states in SACL and policies are in a disjoint and disconnected manner thereby making it difficult for the end user to predict the next possible lifecycle states as well as the policies that apply to each next possible transition.
BRIEF SUMMARYIn one embodiment of the present invention, a method for graphically displaying lifecycle information of a governed object in combination with policies associated with lifecycle states comprises retrieving properties of the governed object, where the properties comprise an object type and a current lifecycle state. The method further comprises retrieving lifecycle definitions for the current lifecycle state and one or more potential future lifecycle states associated with the governed object. In addition, the method comprises retrieving policy definitions that apply to the object type, the current lifecycle state and the one or more potential future lifecycle states. Additionally, the method comprises building a table correlating the lifecycle definitions for the current lifecycle state and the one or more potential future lifecycle states with the policy definitions. Furthermore, the method comprises generating, by a processor, a graphical representation detailing the current lifecycle state, transitions to the one or more potential future lifecycle states and the policy definitions that apply to each transition for the governed object using the table.
Other forms of the embodiment of the method described above are in a system and in a computer program product.
The foregoing has outlined rather generally the features and technical advantages of one or more embodiments of the present invention in order that the detailed description of the present invention that follows may be better understood. Additional features and advantages of the present invention will be described hereinafter which may form the subject of the claims of the present invention.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGSA better understanding of the present invention can be obtained when the following detailed description is considered in conjunction with the following drawings, in which:
FIG. 1 is a hardware configuration of a data processing system in accordance with an embodiment of the present invention;
FIG. 2 illustrates the software components used in graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states in accordance with an embodiment of the present invention;
FIG. 3 is a flowchart of a method for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states in accordance with an embodiment of the present invention; and
FIG. 4 illustrates a graphical view generated by the governance lifecycle view adapter in accordance with an embodiment of the present invention.
DETAILED DESCRIPTIONThe present invention comprises a method, system and computer program product for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states. In one embodiment of the present invention, a software component, referred to herein as the “governance lifecycle view adapter,” in the service registry retrieves a governance record for a governed object to obtain historical information (e.g., previous transitions and states of the object). The governance lifecycle view adapter further retrieves properties (e.g., object type, current lifecycle state) of the governed object. Additionally, the governance lifecycle view adapter retrieves lifecycle definitions for the current lifecycle state and one or more potential future lifecycle states associated with the governed object. Furthermore, the governance lifecycle view adapter retrieves policy definitions that apply to the object type, the current lifecycle state and the one or more potential future lifecycle states. A table is then built that correlates the retrieved lifecycle definitions for the current lifecycle state and the one or more potential future lifecycle states with the retrieved policy definitions. The governance lifecycle view adapter may then generate a graphical representation detailing the current lifecycle state, transitions to the one or more potential future lifecycle states and the policy definitions that apply to each transition for the governed object based on the built table. In this manner, a graphical representation may be made that illustrates the current lifecycle state, next lifecycle states, possible transitions and constraints represented as policy assertions on the transitions.
While the following discusses a governed object as corresponding to service objects or logical objects derived from documents, a governed object, as used herein, may also include instances of such objects which individually have lifecycles. A person of ordinary skill in the art would be capable of applying the principles of the present invention to such implementations. Further, embodiments applying the principles of the present invention to such implementations would fall within the scope of the present invention.
In the following description, numerous specific details are set forth to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without such specific details. In other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention in unnecessary detail. For the most part, details considering timing considerations and the like have been omitted inasmuch as such details are not necessary to obtain a complete understanding of the present invention and are within the skills of persons of ordinary skill in the relevant art.
Referring now to the Figures in detail,FIG. 1 illustrates a hardware configuration of acomputer system100 which is representative of a hardware environment for practicing the present invention. Referring toFIG. 1,computer system100 has aprocessor101 coupled to various other components bysystem bus102. Anoperating system103 runs onprocessor101 and provides control and coordinates the functions of the various components ofFIG. 1. Anapplication104 in accordance with the principles of the present invention runs in conjunction withoperating system103 and provides calls tooperating system103 where the calls implement the various functions or services to be performed byapplication104.Application104 may include, for example, an application for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states as discussed further below in association withFIGS. 2-4.
Referring again toFIG. 1, read-only memory (“ROM”)105 is coupled tosystem bus102 and includes a basic input/output system (“BIOS”) that controls certain basic functions ofcomputer device100. Random access memory (“RAM”)106 anddisk adapter107 are also coupled tosystem bus102. It should be noted that software components includingoperating system103 andapplication104 may be loaded intoRAM106, which may be computer system's100 main memory for execution.Disk adapter107 may be an integrated drive electronics (“IDE”) adapter that communicates with adisk unit108, e.g., disk drive. It is noted that the program for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states as discussed further below in association withFIGS. 2-4, may reside indisk unit108 or inapplication104.
Computer system100 may further include acommunications adapter109 coupled tobus102.Communications adapter109interconnects bus102 with an outside network thereby enablingcomputer system100 to communicate with other similar devices.
I/O devices may also be connected tocomputer system100 via auser interface adapter110 and adisplay adapter111.Keyboard112,mouse113 andspeaker114 may all be interconnected tobus102 throughuser interface adapter110. Data may be inputted tocomputer system100 through any of these devices. Adisplay monitor115 may be connected tosystem bus102 bydisplay adapter111. In this manner, a user is capable of inputting tocomputer system100 throughkeyboard112 ormouse113 and receiving output fromcomputer system100 viadisplay115 orspeaker114.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” ‘module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the C programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to product a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the function/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the function/acts specified in the flowchart and/or block diagram block or blocks.
As stated in the Background section, lifecycle definitions for objects in the service registry are defined by a standard representation called State Adaptive Choreography Language (SACL). While a SACL infrastructure to manage the lifecycle of objects in the service registry gives a flexible framework to represent objects with states and transitions, it lacks the ability to pictorially present to end users information about the current lifecycle state, next lifecycle states, possible transitions and constraints represented as policy assertions on the transitions (e.g., WS-Policy assertions). That is, the current representation of lifecycle states in SACL and policies are in a disjoint and disconnected manner thereby making it difficult for the end user to predict the next possible lifecycle states as well as the policies that apply to each next possible transition.
The principles of the present invention provide a means for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states as discussed below in connection withFIGS. 2-4.FIG. 2 is a diagram of the software components used in graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states.FIG. 3 is a flowchart of a method for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states.FIG. 4 illustrates the graphical view generated by the governance lifecycle view adapter.
As stated above,FIG. 2 is a diagram of the software components used in graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states. In one embodiment, these software components may reside in application104 (FIG. 1).
Referring toFIG. 2, the software components include aservice registry container201. In one embodiment,service registry container201 is an index of information about a service enabling the corresponding service document to be located and accessed in a repository (or even the corresponding service located at the service provider). In one embodiment, the repository (not shown) is combined withservice registry container201. An example of an integrated service registry and repository is IBM® WebSphere® Registry and Repository (WSRR).
Service registry container201 may include aconfiguration profile202 that stores information, such as anobject model203, alifecycle definitions module204 and apolicy definitions module205.Object model203 stores information relating to the properties of objects (e.g., object type, such as business service, document). In one embodiment, such information is represented in Web Ontology Language (OWL).Lifecycle definitions module204 stores the various states (e.g., assemble, deploy, manage, retire) an object can transition through its life. In one embodiment, such information is represented in State Adaptive Choreography Language (SACL).Policy definitions module205 store the policies or rules that are applied to objects (e.g., a specific type of document to be attached to a particular type of object). In one embodiment, such information is represented in WS-Policy.
Additionally,service registry container201 includes agovernance record module206. In one embodiment,governance records module206 stores the details regarding the previous transitions and states of objects in records. Furthermore,service registry container201 includes a governed objectsmodule207 which stores the properties (e.g., governance lifecycle name, current lifecycle state) of objects inservice registry201 that are governed. Objects refer to service objects or logical objects derived from documents as well as instances of such objects. An object is said to be governed if it currently has a lifecycle associated with it. In one embodiment, governed object properties and governance records can be access through internal APIs provided by the triple store that stores various types of objects inservice registry201.
Service registry container201 additionally includes a governance lifecycle view adapter208 configured to generate a graphical plot displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states. A more detail description of the functionality of governance lifecycle view adapter208 is discussed below in connection withFIGS. 3 and 4.
The graphical plot generated by governance lifecycle view adapter208 is accessible by a client application via an Application Programming Interface (API)209, where the graphical output of the governance lifecycle along with its related policy and history information can be provided in anXML representation210. In one embodiment, governance lifecycle view adapter208 can be implemented to return an interactive HTML with definitions of images represented in Scalable Vector Graphics (SVG).
As stated above,FIG. 3 is a flowchart of amethod300 for graphically displaying lifecycle information of a governed object in a service registry in combination with the policies associated with the lifecycle states in accordance with an embodiment of the present invention.
Referring toFIG. 3, in conjunction withFIGS. 1-2, instep301, a determination is made by governance lifecycle view adapter208 as to whether there is a governance record ingovernance records module206 that is associated with the object ofservice registry201 whose lifecycle and policy assertions are to be graphically displayed. If there is a governance record ingovernance records module206 associated with the object, then the object in question has a lifecycle applied to it (i.e., the object is a governed object). As a result, its previous transitions and states are stored in record(s) ingovernance records module206. Otherwise, the object in question has not been governed.
If there is not a governance record ingovernance records module206 that is associated with the object ofservice registry201 whose lifecycle and policy assertions are to be graphically displayed, then governance lifecycle view adapter208 determines whether there is a governance record ingovernance records module206 that is associated with another object ofservice registry201 whose lifecycle and policy assertions are to be graphically displayed.
If, however, there is a governance record ingovernance records module206 that is associated with the object ofservice registry201 whose lifecycle and policy assertions are to be graphically displayed, then, in step302, governance lifecycle view adapter208 retrieves the governance record associated with the governed object fromgovernance records module206. In one embodiment, the retrieved governance record includes details of previous transitions and states of the governed object.
Instep303, governance lifecycle view adapter208 retrieves properties of the governed object, such as the object type (e.g., business service, document) fromobject model203, the governance lifecycle name from governedobjects module207 and the current lifecycle state from governedobjects module207.
In step304, governance lifecycle view adapter208 retrieves the lifecycle definitions fromlifecycle definitions module204 for the lifecycle states, including both current and next possible (future) lifecycle states, associated with the governed object.
Instep305, governance lifecycle view adapter208 retrieves the policy definitions frompolicy definitions module205 that apply to the type of the object (retrieved in step303) and associated lifecycle states (i.e., the current and next possible lifecycle states).
Instep306, governance lifecycle view adapter208 builds a table correlating the retrieved lifecycle definitions for the lifecycle states, both current and next possible lifecycle states, with the retrieved policy definitions (i.e., the associated policy assertions. In this manner, the relationship between lifecycle transitions and policy definitions using the object type retrieved fromobject model203 instep303 can be determined as discussed below. As a result, a graphical representation, discussed below, may be generated that details the lifecycle states, including the next possible transitions and the policies that apply at each transition. In one embodiment, the table built instep306 is generated as an in-memory relationship table since the policy assertions may be modified at runtime without the knowledge of the associated governed object.
Instep307, governance lifecycle view adapter208 generates a graphical representation detailing the lifecycle states, the next possible transitions and the policies that apply to each transition. The historical information is retrieved through the governance record retrieved in step302. The current state of the object is obtained from governedobjects module207 instep303. The possible transitions and the associated policies are obtained from the table built instep306 using the object type retrieved fromobject model203 instep303.
In one embodiment, the graphical plot generated by governance lifecycle view adapter208 is accessible by a client application viaAPI209, where the graphical output of the governance lifecycle along with its related policy and history information can be provided in anXML representation210. In one embodiment, governance lifecycle view adapter208 can be implemented to return an interactive HTML with definitions of images represented in Scalable Vector Graphics (SVG).
An example of such a graphical plot is provided inFIG. 4.FIG. 4 illustrates the graphical view generated by governance lifecycle view adapter208 in accordance with an embodiment of the present invention.
Referring toFIG. 4, in conjunction withFIGS. 1-3,graphical plot400 generated by governance lifecycle view adapter208 displays the lifecycle information of the governed object in three domains, depicting the past401 (labeled “lifecycle history”), the present402 (labeled “current lifecycle state”) and the future403 (labeled “future lifecycle possibilities”) lifecycle states of the governed object.
Thecurrent lifecycle state404 has links to next possible lifecycle states405A,405B (labeled “next lifecycle state 1,” “next lifecycle state 2,” respectively) throughtransitions406A,406B, respectively (labeled “transition 1,” “transition 2,” respectively). Next possible lifecycle states405A-405B may collectively or individually be referred to as next possible states405 or next possible state405, respectively.Transitions406A-406B may collectively or individually be referred to as transitions406 or transition406, respectively. The policy assertions that apply to each of these transitions406 are also indicated ingraphical plot400. For instance,policy assertions407A,407B apply totransitions406A,406B, respectively.Policies407A-407B may collectively or individually be referred to as policies407 or policy407, respectively.
WhileFIG. 4 illustrates two particular next lifecycle states405 that may be transitioned through transitions406, governance lifecycle view adapter208 may generate any number of next possible states405 with the corresponding transitions406 and applicable policies407 based on the table built instep306 and the object type retrieved fromobject model203 instep303. The principles of the present invention are not to be limited to the depicted graph ofFIG. 4.
Thehistorical lifecycle state401 depicting theprevious lifecycle state408 and the transition details for transitioning tocurrent lifecycle state404 throughtransition409 and theapplicable policies410 are obtained from the governance record retrieved in step302. WhileFIG. 4 illustrates a singleprevious lifecycle state408, governance lifecycle view adapter208 may generate any number of previous lifecycle states408 with the correspondingtransitions409 andapplicable policies410 based on the governance records retrieved in step302. The principles of the present invention are not to be limited to the depicted graph ofFIG. 4.
As a result,graphical plot400 provides information regarding the current lifecycle state of the governed object, the previous lifecycle states, the next possible lifecycle states, what lifecycle state transitions are available, what policy assertions apply to each of these transitions and what policy assertions were successful and unsuccessful (those policy assertions that are not depicted were not successful).
In this manner, the lifecycle information of a governed object in a service registry is graphically displayed in combination with the policies associated with the lifecycle states.
In some implementations,method300 may include other and/or additional steps that, for clarity, are not depicted. Further, in some implementations,method300 may be executed in a different order presented and that the order presented in the discussion ofFIG. 3 is illustrative. Additionally, in some implementations, certain steps inmethod300 may be executed in a substantially simultaneous manner or may be omitted.
Although the method, system and computer program product are described in connection with several embodiments, it is not intended to be limited to the specific forms set forth herein, but on the contrary, it is intended to cover such alternatives, modifications and equivalents, as can be reasonably included within the spirit and scope of the invention as defined by the appended claims.