Book Author: Nicolai M. Josuttis Chapter Two: SOAIT-Slideshares http://it-slideshares.blogspot.com/
2.1 Definitions of SOA SOA is a paradigm (style, perspective, concept, representation or philosophy) that leads to a value system for large distributed systems with different owners. SOA is NOT a concrete tool or framework. SOAs comprise loosely coupled, highly interoperable application services. A SOA is independent of development technology (such as Java and .NET) The software components become very reusable because the interface is defined in a standards-compliant manner.
2.1.1 SOA is a Paradigm SOA is not a concrete architecture: it is something that leads to a concrete architecture. SOA might call it a style, paradigm, concept, perspective, philosophy, or representation. You cant buy SOA. There is no tool or recipe you can use to make everything work. You must make specific decisions that are appropriate for your circumstances.
2.1.2 SOA Improves flexibility The key reason for using SOA is that it should help you in your business A critical factor for business success these days is keeping time to market share. E.g. You can rant and rave all you want about software quality (or lack thereof), but the marketing guys run the world, and they want market share now . . . period, end of discussion. My job is to deliver on time, on budget, with the "appropriate" quality metrics. Flexibility has a lot to do with clear organization, roles, processes, and so on. Therefore, SOA has to deal with all these aspects.
2.2 SOA Drivers: Distributed Sys Distributed Systems: SOA is well-suited Different Owners: The OASIS SOA Reference Models definition of SOA continues by stating that those distributed capabilities "may be under the control of different ownership domains. SOA includes practices and processes that are based on the fact that networks of distributed systems are not controlled by single owner.
2.2.2 SOA Drivers:Different Owners you have to compromise with others, and you have to accept that different priorities and solutions exist
2.2.3 SOA Drivers: HeterogeneityLarge systems use different platforms, different programming languages (andprogramming paradigms), and even different middleware. They areheterogeneous. Similar to "agile" methods of software development, whichaccept that requirements change instead of trying to fight against thosechanges, SOA just accepts that there is heterogeneity in large systems
2.3 SOA Concepts Services The goal of SOA is to structure large distributed systems based on the abstractions of business rules and functions. A service is an IT representation of some business functionality at this level of abstraction, platform-specific details dont matter. Thus, platforms can be heterogeneous. Interoperability for SOA, high interoperability is the beginning, not the end. Loose coupling: Minimizing dependencies, boost scalability. SOA has goals. And remember, SOA is only a paradigm, not a recipe. Flexibility Scalability Fault tolerance
2.4 SOA Ingredients You can’t buy SOA. Need the right degree of centralization, set up corresponding processes, projects. Infrastructure The infrastructure of a SOA landscape is called an enterprise service bus (ESB). The key feature of the ESB is that it enables you to call services between heterogeneous systems. Its responsibilities include data transformation, (intelligent) routing, dealing with security and reliability, service management, monitoring, and logging. Architecture OASIS SOA Reference Model Definition of SOA Web Service-based architectures and technologies are specific and concrete. While the concepts in the Reference Model apply to such systems, Web Services are too solution specific to be part of a general reference model. Processes Business Process Modeling (BPM) Model-Drive Software Development (MDSD) Governance Set up the right process to establish SOA in your organization Finding the right people who are able to combine all the different SOA ingredients, SOA competence center deals with infrastructure, architecture, processes … Understanding Governance, management support, doing the right homework are key success factors
2.5 SOA Is NOT a Silver Bullet SOA is the ideal solution for very special circumstances: heterogeneous distributed systems with different owners. But theres a price to pay for dealing with heterogeneity and different owners, and providing flexibility, scalability, and fault tolerance. If you have everything under control (i.e., a homogenous system and/or no different owners), SOA might be pointlessly expensive for you.
2.6 SOA is Not a Specific Technology SOA is the paradigm; Web Services are one possible way to realize the infrastructure by using a specific implementation strategy. Web Services are emerging as the de facto standard for SOA implementations. Web Services might help provide the infrastructure, but you will still have to construct the architecture, and set up all the complicated processes. Web Services standard is not mature. SOA with other technologies (CORBA, MQ, TIBCO …etc)
2.7 SOA Versus Distributed Objects The idea was to enable remote access to objects of external systems. Distributed Objects approach was having one general business object model spanning distributed systems which may be hard to organize, too much centralization, and too many dependencies. With SOA, data is exchanged between different systems, and each system operates on its local (redundant) copy with its own local methods and procedures. Unlike with distributed objects, this approach decouples the systems and lets them scale.
2.8 SOA Terminology A provider is a system that implements a service (a business functionality) so that other systems can call it. A consumer (requestor) is a system that calls a service (uses a provided service). If you want to use a generic term for both the provider and the consumer, you can use the term participant.
2.9 Summary SOA is an architectural paradigm for dealing with business processes distributed over a large landscape of existing and new heterogeneous systems that are under the control of different owners. The key technical concepts of SOA are services, interoperability, and loose coupling. The key ingredients of SOA are infrastructure, architecture, and processes (including the meta-process of establishing SOA, governance). The key success factors for SOA are understanding, governance, management support, and doing your homework. SOA is neither a specific technology nor a silver bullet. There are places where SOA is appropriate and places where it is not. Web Services are one possible way of realizing the infrastructure aspects of SOA. Using Web Services is often recommended because it seems to be becoming established as the standard technology.IT-Slideshares http://it-slideshares.blogspot.com/