| |
||||||||||||||||||
| To many, it sounds like a collection of randomly assembled industry buzzwords. | ||||||||||||||||||
|
Introduction
I have to work within it for my livelihood, so I thought I'd place my finding and things here. Working Draft DefinitionTo understand SOA we first have to arrive at a definition. To some, it is a jumble of acronyms. Id like to approach it based on the following definition: A Service Oriented Architecture . . .
I'm not sure that these are all necessary, but this list provides a set of talking points to describe an SOA. DefinitionsThe following are definitions needed to understand the SOA.
DiscussionWhen most people speak of a service oriented architecture, they speak of a set of services residing on the Internet or an intranet using web services. There are a set of standards which are generally discussed each time web services are discussed. These include the following:
It is not within the scope of this document to discuss these standards, since, for the purposes of discussing an SOA, the specific standards involved are not, strictly, necessary. One statement, however, is necessary. That is, in order to work, agreed upon standards are vital. This is espeically true of public web services like Amazons public service. There are some -ility buzzwords associated with SOA implementation. The most commonly heard are that an SOA provides:
These can be defined as follows. Flexibility: The ability to change business processes with less effort than monolithic applications. For example, a new business process can be defined in terms of a service and inserted into the process by changing the orchistration program. Other services are not affected. Agility: The ability to implement new business processes. Because standard business functions are common across many business processes. A new process can be orchestrated by creating any unique business functions in terms of services and orchestrating existing services. The overall amount of new code needed should be minimal decreasing the development time. Scalibility: Multiple instances of services can be implemented to spread the load as demand for these services grows. In order for all this to be achieved, however, the planning effort must performed first and continued as an element of system development. PlanningSOA demands planning. Since services are descrete, it is vital that they are well planned and based on agreed upon standards and business functions. The key to an SOA is to define it in terms of business processes. In planning for services, the architect must ensure that the individual services are descrete and atomic (complete). Without planning, an SOA is nothing more than a jumble of functions and provides no more flexibility, agility or functionality to the enterprise than any monolothic application. ServicesServices should arise from business processes and functions. They should make sense to business users and be defined in terms of the business. In order to make an architecture, the services need to be designed as descrete, atomic units which can be organized (orchestrated, see below) into business processes. The idea is to provide services which can be strung together (orchestrated, see below) into meaningful business processes. It is also important to the flexibility and agility of systems that new services can be inserted into the orchestration without affecting the integrity of other services. Typically services will be defined to handle a single function. For example, a service will retrieve employee information, another might calculate wages, and yet another might update employee information. OrchestrationThe programs which access the services needs to orchestrate them in to a system. That is, the program needs to provide logic to
From a developer's point of view, they are still developing a system to perform a business process. The difference is that they are building this system up from existing services which simplify much of the work and assure a uniform product across various other systems.
-- Updated: 15-Jan-2005 History of SOAOn the Wikipedia definition page that I co-authored, a reader has asked for the history of SOA. I believe that this will be much like trying to write a history of computing. I believe that this will be an interesting effort, so I'll try to do it here and on the Wikipedia. Read more . . . Development PhilosophyA Service Oriented Architecture is as much a development philosophy as it is an architecture. In order for an organization to make a committment to SOA, they must also make a commitment to developing software which fits the SOA model. That is, they must commit to development of software by developing descrete services which are orchestrated by the client to meet the business needs. The organization must commit to using common services to perform common functions. But, more than this, they must commit to a programming style which makes use of standards to transmits and receives data from these services. The services need not be public services. They might all be developed in house. But they must adhere to standards to which all programmers in the organization code. PlanningPlanning becomes paramount in developing systems based on SOA. The issues common to systems development from the start of programming, still exist -- data integrity, ownership, translation, integration . . . But they are addressed through different paradigms. Services must be developed/chosen which meet the overall requirements of the system. They must be orchestrated in such a way to maintain the integrity of the data and implement the business requirements.
|
|||||||||||||||||
|
|
||||||||||||||||||
| Updated: 21-Jun-2004 | © Bob Breedlove all rights reserved 2003 |