SOA has an interesting history; being both widely praised and widely dismissed. SOA offerings provide a solid solution to the problem of complex architecture and code redundancies, enabling efficient interoperability between systems, applications, and services. By shifting the practice of internal application towards the creation of reusable components called services, SOA projects allow enterprises to be more simple and agile.
The problem with SOA emerged not from flawed technology, but because businesses incorrectly structured their SOA offerings. Because of the rip and replace method of top-down SOA, entire systems were replaced over a long rollout process; a process which became incredibly time consuming, taking years to complete. Moreover, with the excessive amount of training and ongoing maintenance costs, top-down SOA became increasingly expensive.
Lastly, the vendor-specific nature of SOA stacks restricted organizations from having the flexibility to employ general IT specialists, and instead forced them to hire expensive vendor-specific SOA specialists. With all these disadvantages, SOA no longer efficiently resolved the challenges it set out to address. With a bottom-up method, companies are able to implement a new infrastructure incrementally rather than by ripping and replacing - a process proving to be vital to success. The open platform, easy-to-use tooling and multi-language support prevents vendor lock-in and enables developers to be up in running days not weeks.
These services can represent either new applications or just wrappers around existing legacy systems to make them network-enabled. Implementers commonly build SOAs using web services standards. These standards also referred to as web service specifications also provide greater interoperability and some protection from lock-in to proprietary vendor software. Architectures can operate independently of specific technologies and can therefore be implemented using a wide range of technologies, including:.
Implementations can use one or more of these protocols and, for example, might use a file-system mechanism to communicate data following a defined interface specification between processes conforming to the SOA concept. The key is independent services with defined interfaces that can be called to perform their tasks in a standard way, without a service having foreknowledge of the calling application, and without the application having or needing knowledge of how the service actually performs its tasks.
SOA enables the development of applications that are built by combining loosely coupled and interoperable services. These services inter-operate based on a formal definition or contract, e.
Converging Concepts Enabling the Internet of Services". These standards also referred to as web service specifications also provide greater interoperability and some protection from lock-in to proprietary vendor software. Lastly, the vendor-specific nature of SOA stacks restricted organizations from having the flexibility to employ general IT specialists, and instead forced them to hire expensive vendor-specific SOA specialists. As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient. What do I get with a Video?
The interface definition hides the implementation of the language-specific service. SOA-based systems can therefore function independently of development technologies and platforms such as Java,. Services written in C running on.
NET platforms and services written in Java running on Java EE platforms, for example, can both be consumed by a common composite application or client. Applications running on either platform can also consume services running on the other as web services that facilitate reuse. High-level programming languages such as BPEL and specifications such as WS-CDL and WS-Coordination extend the service concept by providing a method of defining and supporting orchestration of fine-grained services into more coarse-grained business services, which architects can in turn incorporate into workflows and business processes implemented in composite applications or portals.
Service-oriented modeling is an SOA framework that identifies the various disciplines that guide SOA practitioners to conceptualize, analyze, design, and architect their service-oriented assets. The Service-oriented modeling framework SOMF offers a modeling language and a work structure or "map" depicting the various components that contribute to a successful service-oriented modeling approach. It illustrates the major elements that identify the "what to do" aspects of a service development scheme. The model enables practitioners to craft a project plan and to identify the milestones of a service-oriented initiative.
SOMF also provides a common modeling notation to address alignment between business and IT organizations. Some enterprise architects believe that SOA can help businesses respond more quickly and more cost-effectively to changing market conditions. It can also simplify interconnection to—and usage of—existing IT legacy assets.
With SOA, the idea is that an organization can look at a problem holistically. A business has more overall control. Theoretically there would not be a mass of developers using whatever tool sets might please them. But rather they would be coding to a standard that is set within the business. They can also develop enterprise-wide SOA that encapsulates a business-oriented infrastructure. SOA has also been illustrated as a highway system providing efficiency for car drivers.
The point being that if everyone had a car, but there was no highway anywhere, things would be limited and disorganized, in any attempt to get anywhere quickly or efficiently. In some respects, SOA could be regarded as an architectural evolution rather than as a revolution.
It captures many of the best practices of previous software architectures. In communications systems, for example, little development of solutions that use truly static bindings to talk to other equipment in the network has taken place. By embracing a SOA approach, such systems can position themselves to stress the importance of well-defined, highly inter-operable interfaces. A service comprises a stand-alone unit of functionality available only via a formally defined interface. Services can be some kind of "nano-enterprises" that are easy to produce and improve.
Also services can be "mega-corporations" constructed as the coordinated work of subordinate services. Reasons for treating the implementation of services as separate projects from larger projects include:. SOA promises to simplify testing indirectly. Services are autonomous, stateless, with fully documented interfaces, and separate from the cross-cutting concerns of the implementation. If an organization possesses appropriately defined test data, then a corresponding stub is built that reacts to the test data when a service is being built. A full set of regression tests, scripts, data, and responses is also captured for the service.
The service can be tested as a 'black box' using existing stubs corresponding to the services it calls. The chapter also discusses several guidelines for creating interoperable web services. Finally, a complete, albeit trivial, example of creating web services on the. In Chapter 5 , you will become familiar with the BPEL language and a process-oriented approach to integration.
The characteristics of process-oriented integration architectures are discussed. You will learn how to identify business services and service lifecycles.
Then the role of executable business processes, which reduce the semantic gap between business and IT, is explained. You will learn about characteristics of BPEL and identify the differences between executable and abstract processes. In Chapter 6 , you will see how ESB provides a concrete infrastructure for SOA, extending the simple services model to include a robust services bus with extensive mediation functionality.
He is an Electronics Engineer from Madras University and has worked for several open source projects. His blog can be read at http: Juric holds a PhD in computer and information science.
He has more than 20 years of work experience. His work has also been published in several journals and magazines and presented at conferences. A well known and a highly sought-after trainer, Dr. Sarang has conducted several training programs on the latest technologies for several top-notch IT companies. Ramesh has full life-cycle experience setting up and managing product development organizations and motivating high-caliber engineering teams. He has strong insight into Systems software, Middleware-technology, Database internals, Internet Architectures, and frameworks.
Ramesh has led engineering efforts building software infrastructure products at Pramati and Sonic Software.
Ramesh is an accomplished Technologist and evangelist regularly speaking at workshops and seminars. Sign up to our emails for regular updates, bespoke offers, exclusive discounts and great free content. Log in to your account. Not yet a member?
Register for an account and access leading-edge content on emerging technologies. Find Ebooks and Videos by Technology Android. Web Development Latest Releases. Packt Hub Technology news, analysis, and tutorials from Packt.