This invention relates generally to service oriented architecture (SOA) service, and more specifically to the selection of SOA services.
In the past, software architectures have attempted to deal with increasing levels of software complexity. As the level of complexity continues to increase, traditional architectures are reaching the limit of their ability to deal with various problems. At the same time, traditional needs of information technology (IT) organizations persist. IT organizations need to respond quickly to new requirements of the business, while continuing to reduce the cost of IT to the business by absorbing and integrating new business partners, new business sets, etc.
SOA is a new architectural style that enables modularization and externalization of both business and technical operations beyond traditional enterprise application models. SOA is an IT model which mirrors the interaction of business components through a set of IT applications implemented as real-time services that interact dynamically. This coupling of real-time services provides businesses greater flexibility and the ability to react to changes more efficiently.
However, while prior art organizations adopt and deploy SOA architectures, they lack the tools and techniques to assist users (e.g., business executives) in identifying potential service candidates derived from higher-level business goals. That is, business leaders may set the strategic objectives for a firm to increase their market share or increase profits per transaction, but these high level goals can not be decomposed into potential shared services from these high level statements with existing IT management processes. This lack of a decomposition and service identification capability severely impedes more widespread deployment and subsequent realization of SOA services benefits.
In one embodiment, there is a method for selecting a service oriented architecture (SOA) service. In this embodiment, the method comprises: identifying a process that affects a business objective; identifying a set of functional capabilities of the process; and selecting a set of candidate SOA services based on the set of functional capabilities of the process.
In a second embodiment, there is a system for selecting a service oriented architecture (SOA) service. In this embodiment, the system comprises at least one processing unit, and memory operably associated with the at least one processing unit. A service selection tool is storable in memory and executable by the at least one processing unit. The service selection tool comprises: an identification component configured to identify a process that affects a business objective, and identify a set of functional capabilities of the process. A selection component is configured to select a set of candidate SOA services based on the set of functional capabilities of the process.
In a third embodiment, there is a computer-readable medium storing computer instructions, which when executed, enables a computer system to select a service oriented architecture (SOA) service, the computer instructions comprising: identifying a process that affects a business objective; identifying a set of functional capabilities of the process; and selecting a set of candidate SOA services based on the set of functional capabilities of the process.
In a fourth embodiment, there is a method for deploying a service selection tool for use in a computer system that provides selection of a service oriented architecture (SOA) service. In this embodiment, a computer infrastructure is provided and is operable to: identify a process that affects a business objective; identify a set of functional capabilities of the process; and select a set of candidate SOA services based on the set of functional capabilities of the process.
The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.
Embodiments of this invention are directed to selecting service oriented architecture (SOA) services. In these embodiments, the method comprises: identifying a process that affects a business objective; identifying a set of functional capabilities of the process; and selecting a set of candidate SOA services based on the set of functional capabilities of the process. In one embodiment, a service selection tool provides this capability.
Computer system 104 is intended to represent any type of computer system that may be implemented in deploying/realizing the teachings recited herein. In this particular example, computer system 104 represents an illustrative system for selecting a SOA service. It should be understood that any other computers implemented under the present invention may have different components/software, but will perform similar functions. As shown, computer system 104 includes a processing unit 106, memory 108 for storing a service selection tool 153, a bus 110, and device interfaces 112.
Processing unit 106 collects and routes signals representing outputs from external devices 115 (e.g., a keyboard, a pointing device, a display, a graphical user interface, etc.) to service selection tool 153. The signals can be transmitted over a LAN and/or a WAN (e.g., T1, T3, 56 kb, X.25), broadband connections (ISDN, Frame Relay, ATM), wireless links (802.11, Bluetooth, etc.), and so on. In some embodiments, the signals may be encrypted using, for example, trusted key-pair encryption. Different external devices may transmit information using different communication pathways, such as Ethernet or wireless networks, direct serial or parallel connections, USB, Firewire®, Bluetooth®, or other proprietary interfaces. (Firewire is a registered trademark of Apple Computer, Inc. Bluetooth is a registered trademark of Bluetooth Special Interest Group (SIG)).
In general, processing unit 106 executes computer program code, such as program code for operating service selection tool 153, which is stored in memory 108 and/or storage system 116. While executing computer program code, processing unit 106 can read and/or write data to/from memory 108, storage system 116, a service registry 190, a functional capabilities registry 184, and a process registry 182. In this way, each of functional capabilities registry 184, process registry 182, and service registry 190 are adaptive, updatable, and self-learning. Service registry 190 stores a plurality of SOA services and associated metadata within a portfolio, as well as rules against which the metadata is compared to locate, update, and store SOA services. The storage system and the registries can include VCRs, DVRs, RAID arrays, USB hard drives, optical disk recorders, flash storage devices, or any other similar storage device. Although not shown, computer system 104 could also include I/O interfaces that communicate with one or more external devices 115 that enable a user to interact with computer system 104.
Plurality of processes 136 may be stored in business process registry 182, and can be used to pre-fill interactive visual tool 180 with a plurality of processes for user 145 to select. Interactive visual tool 180 may also be pre-filled with strategy related policies, business domain and process policies, common domain functionality sharing policies, etc. Based on input provided by user 145, identification component 150 is configured to select process 134 from plurality of processes 136 that affect business objective 132. In one embodiment, user 145 can be guided to select an applicable process by answering a series of questions about the user's business objectives even if the precise process that performs the target function(s) is unknown by the user. Business patterns are mapped to probable processes to guide the user's selections in this guided mode of operation.
Once the process selection is made, identification component 150 is configured to identify the functional capabilities (i.e., attributes or executable actions) of process 134. Specifically, identification component 150 is configured to provide a plurality of functional capabilities 138 of process 134 that are affected by business objective 132 to user 145. User 145 is presented with a list of functional capabilities for the process, for example, via a drop-down menu. Identification component 150 is configured to select a set of functional capabilities 140 of process 134 from plurality of functional capabilities 138 of process 134 presented to user 145. In one embodiment, identification component 150 operates with a policy engine 186, which contains a number of configurable service identification rules and policies for evaluating each functional capability. Policy engine 186 ranks the functional capabilities by enterprise, program goals/objectives, current state versus desired state, etc.
Once the functional capabilities are selected, they are used by a selection component 160 to identify candidate SOA services. Specifically, selection component 160 is configured to select a set of candidate SOA services 146 based on set of functional capabilities 140 of process 134. In one embodiment, set of candidate SOA services 146 is selected from services registry 190, which contains a plurality of existing SOA services 148. Set of candidate services 146 is then presented to user 45 via interactive visual tool 180. In one embodiment, service selection tool 153 further comprises a prioritization component 170 configured to prioritize each of set of candidate SOA services 146. That is, user 145 may assign a priority level for each strategic initiative after the first two criteria selections (i.e., business process and functional capabilities) have been made. This allows executives and organizations to prioritize which services and/or business processes are modified or built first based on business priorities.
As described herein, the present invention provides an interactive process for identifying candidate SOA services that can be used to fulfill business strategies and objectives by selecting affected business processes and their functional attributes or capabilities. The present invention promotes sharing of resources and services by abstracting the service away from the line of business, thereby increasing the efficiency of the organization.
Further, it will be appreciated that service selection tool 153 of the present invention is adaptable and self-learning, in that it dynamically improves over time in making specific recommendations based on adjustments to changing environmental factors. Self-learning is achieved in a variety of ways, including by performing analytics of data flows occurring within identification component 150 and selection component 160, as well as analytics of the rules-based decision process.
It can be appreciated that the methodologies disclosed herein can be used within a computer system to provide selection of a SOA service, as shown in
The exemplary computer system 104 may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, people, components, logic, data structures, and so on that perform particular tasks or implements particular abstract data types. Exemplary computer system 104 may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
Furthermore, an implementation of exemplary computer system 104 may be stored on or transmitted across some form of computer readable media. Computer readable media can be any available media that can be accessed by a computer. By way of example, and not limitation, computer readable media may comprise “computer storage media” and “communications media.”
“Computer storage media” include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer.
“Communication media” typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier wave or other transport mechanism. Communication media also includes any information delivery media.
The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above are also included within the scope of computer readable media.
It is apparent that there has been provided with this invention an approach for selecting a SOA service. While the invention has been particularly shown and described in conjunction with a preferred embodiment thereof, it will be appreciated that variations and modifications will occur to those skilled in the art. Therefore, it is to be understood that the appended claims are intended to cover all such modifications and changes that fall within the true spirit of the invention.