SERVICE-ORIENTED ARCHITECTURE (SOA) CONCEPTS TECHNOLOGY AND DESIGN PDF

adminComment(0)

Service Oriented Architecture (SOA) Concepts, Technology, And Design - Ebook download as PDF File .pdf), Text File .txt) or read book online. Contemporary SOA is at the core of the service-oriented "Service- Oriented Architecture: Concepts, Technology, and Design" by Thomas. “Service-Oriented Architecture: Concepts, Technology, and Design”. By Thomas Erl, Similarly, service-oriented architecture (SOA) encourages individual units.


Service-oriented Architecture (soa) Concepts Technology And Design Pdf

Author:ISABEL SILKER
Language:English, German, Hindi
Country:Brazil
Genre:Children & Youth
Pages:673
Published (Last):10.04.2016
ISBN:636-8-71846-256-9
ePub File Size:27.34 MB
PDF File Size:10.23 MB
Distribution:Free* [*Registration needed]
Downloads:33251
Uploaded by: NIDA

Thomas Erl-Service-Oriented Architecture- Concepts, Technology, Design Notification and eventing Part III: SOA and Service-Orientation Chapter 8. Principles. its successful implementation. Service-Oriented Architecture. Concepts, Technology, and Design. About the Author. THOmAS Erl is the world's top-selling SOA. For more information visit: charmaudinamas.gq . ahead to the Service-oriented business process design (a step-by-step process) section.

This solution is partially custom developed but relies mostly on out-of-the-box accounting features. Much of this book is therefore focused on realizing SOA through and applying service-orientation principles to Web services technology. Perhaps one day Web services will be supplanted by a superior platform even more capable of bringing the world closer to pure service-orientation.

For now. Introducing SOA 3. How case studies are used: After we cover the fundamental parts of a primitive SOA. Thanks Chapter 3. These conventions standardize key aspects of each business for the benefit of the consumers without significantly imposing on the individual business's ability to exercise self-governance.

By decomposing the community into specialized. Fundamental SOA Because the term "service-oriented" has existed for some time. It is already full of service-oriented businesses.

Although we want to allow outlets to interact and leverage each other's services. Units of logic are still required to conform to a set of principles that allow them to evolve independently. Though we encourage independence within our business outlets. By empowering businesses to self-govern their individual services. Distributing automation logic into separate units is nothing new. What distinguishes the service-oriented approach to separating concerns is the manner in which it achieves separation.

What this means is that logic required to solve a large problem can be better constructed. It is an established and generic theory that can be used to address a variety of problems.

A service-oriented analogy Let's take your average cosmopolitan city. It makes sense for a business community not to be served by a single business outlet providing all services.

Even in a distributed business community. Within SOA. Each of these pieces addresses a concern or a specific part of the problem. Individual companies are service-oriented in that each provides a distinct service that can be used by multiple consumers. One constant through its existence has been that it represents a distinct approach for separating concerns.

This context can be specific to a business task. How services encapsulate logic To retain their independence. What is it then that makes service-oriented separation so different? Much of this book is dedicated to answering that question. When coupled with "architecture. This approach transcends technology and automation solutions.

Thanks The concern addressed by a service can be small or large. For services to use the logic they encapsulate they can participate in the execution of business activities. A service can even encapsulate the entire process logic.

Services can encapsulate varying amounts of logic. To do so. The logic is decomposed into a series of steps that execute in predefined sequences according to business rules and runtime conditions. Figure 3. In the latter two cases. This process is comprised of logic that dictates the actions performed by the solution. In this case. As shown in Figure 3. For example. F Figure 3. One such framework is messaging.

A service description in its most basic format establishes the name of the service and the data expected and returned by the service. The manner in which services use service descriptions results in a relationship classified as loosely coupled. Because it has access to service B's service description. To that effect. How services relate Within SOA. A communications framework capable of preserving their loosely coupled relationship is therefore required. That is why we require messages to exist as "independent units of communication.

This awareness is achieved through the use of service descriptions. A message existing as an independent unit of communication. For services to interact and accomplish something meaningful. How services communicate After a service sends a message on its way. What distinguishes ours is how its three core components services.

So far. Thanks Services that provide service descriptions and communicate via messages form a basic architecture. This is where service-orientation comes in. How services are designed Much like object-orientation. Service-orientation principles address design issues. For the purpose of providing a preliminary introduction. All forms of SOA we explore from here on are based on and extend this primitive model.

All major vendor platforms currently support the creation of service-oriented solutions. Some of the extensions we discuss are attainable today through the application of advanced design techniques.

It is labeled as such because it represents a baseline technology architecture that is supported by current major vendor platforms. Autonomy Services have control over the logic they encapsulate. The application of service-orientation principles to processing logic results in standardized service-oriented processing logic.

Abstraction Beyond what is described in the service contract. The Web services technology set offers us such a platform. With a knowledge of the components that comprise our basic architecture and a set of design principles we can use to shape and standardize these components. The individual principles of service-orientation are fully explained later in this book.

When a solution is comprised of units of service-oriented processing logic. Discoverability Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms.

Reusability Logic is divided into services with the intention of promoting reuse. Loose coupling Services maintain a relationship that minimizes dependencies and only requires that they retain an awareness of each other. Service contract Services adhere to a communications agreement. Statelessness Services minimize retaining information specific to an activity. Composability Collections of services can be coordinated and assembled to form composite services.

How services are built As we mentioned earlier. For instance. Case Study RailCo's accounting solution exists as a two-tier client-server application. Within the application.

The ability for business automation logic to be partitioned into units so as to properly represent services. The ability for these units of logic to communicate with each other in such a manner that their respective independence is preserved.

If multiple services are used. This sub-process may already exist as part of a separate Customer Contact Reporting Process. The details of this application are described in the next chapter. This process was originally modeled using standard workflow logic and then implemented as part of a packaged solution. To implement such a model. Enter Customer download Order Create Customer Order The completion of each task involves a series of steps that constitute a business process. The fundamental characteristics of service encapsulation.

The ability for these units of logic to be relatively independent of each other so as to support the requirement for them to participate in different compositions.

Within a service-oriented business model. Throughout the remainder of this book. Our primitive SOA model represents a mainstream variation of SOA based solely on Web services and common service-orientation principles. Its founding principles remain. Major software vendors are continually conceiving new Web services specifications and building increasingly powerful XML and Web services support into current technology platforms.

Contemporary SOA fosters intrinsic interoperability. Contemporary SOA promotes organizational agility. Contemporary SOA is still maturing. Contemporary SOA is an achievable ideal. Chapters 6 and 7 explain how the evolving landscape of Web services specifications addresses typical quality of service QoS requirements. Contemporary SOA is based on open standards.

Contemporary SOA promotes federation. Contemporary SOA promotes discovery. Contemporary SOA is a building block. These have been grouped into the "Contemporary SOA increases quality of service" characteristic.

Contemporary SOA supports a service-oriented business modeling paradigm. Contemporary SOA increases quality of service. Contemporary SOA promotes loose coupling throughout the enterprise. Contemporary SOA is fundamentally autonomous. Contemporary SOA emphasizes extensibility.

Contemporary SOA fosters inherent reusability. Contemporary SOA builds upon the primitive SOA model by leveraging industry and technology advancements to further its original ideals. Contemporary SOA is an evolution. The result is an extended variation of service-oriented architecture we refer to as contemporary SOA. Note the absence of traditional architectural qualities such as "secure. Contemporary SOA supports vendor diversity.

Contemporary SOA promotes architectural composability. Common characteristics of contemporary SOA Numerous recent and ongoing industry trends and developments have shaped the real world look of SOA. Though the required implementation technology can vary. Contemporary SOA is at the core of the service-oriented computing platform. Contemporary SOA implements layers of abstraction. Because the acronym already represents the word "architecture" we are unfortunately subjected to statements that can be confusing.

With SOA. In doing so. Allowing tasks to be carried out reliably so that message delivery or notification of failed delivery can be guaranteed. Performance requirements to ensure that the overhead imposed by SOAP message and XML content processing does not inhibit the execution of a task.

The terms "client-server" or "n-tier. Contemporary SOA is at the core of the service-oriented computing platform Before we get into the actual meaning behind contemporary SOA. As we step through the following sections we elaborate on each of the characteristics in our list and discuss their overall meaning to SOA. For lack of a better term. The ability for tasks to be carried out in a secure manner. Along those same lines.

This relates to common quality of service requirements. Past terms used to identify distinct application computing platforms were often suffixed with the word "architecture" when the architecture was actually being referenced. Perhaps the best way to view it is that if a product. Contemporary SOA represents an architecture that promotes service-orientation through the use of Web services.

[PDF Download] Service-Oriented Architecture (SOA): Concepts Technology and Design [PDF] Full

Many argue that the manner in which SOA is used to qualify products. Transactional capabilities to protect the integrity of specific business tasks with a guarantee that should the task fail. Contemporary SOA increases quality of service There is a definite need to bring SOA to a point where it can implement enterprise-level functionality as safely and reliably as the more established distributed architectures already do. Contemporary SOA is fundamentally autonomous The service-orientation principle of autonomy requires that individual services be as independent and self-contained as possible with respect to the control they maintain over their underlying logic.

Thanks 3. An SOA limits the role of proprietary technology to the implementation and hosting of the application logic encapsulated by a service. Contemporary SOA is based on open standards Perhaps the most significant characteristic of Web services is the fact that data exchange is governed by open standards.

After a message is sent from one Web service to another it travels via a set of protocols that is globally standardized and accepted. The use of an open. This establishes a level of autonomy that can cross solution boundaries. The use of SOAP. Applications comprised of autonomous services. Contemporary SOAs fully leverage and reinforce this open. This is further realized through message-level autonomy where messages passed between services are sufficiently intelligence-heavy that they can control the manner in which they are processed by recipient services.

Later we explain how by creating service abstraction layers. The opportunity for inter-service communication is therefore always an option. SOA builds upon and expands this principle by promoting the concept of autonomy throughout solution environments and the enterprise. Standard open technologies are used within and outside of solution boundaries. A serious SOA will likely rely on some form of service registry or directory to manage service descriptions Figure 3.

In fact. Organizations can certainly continue building solutions with existing development tools and server products. This may have to do with the fact that not enough Web services were actually built to warrant a registry.

When utilized within traditional distributed architectures. Disparate technology platforms do not prevent service-oriented solutions from interoperating. SOA supports and encourages the advertisement and discovery of services throughout the enterprise and beyond.

Contemporary SOA supports vendor diversity The open communications framework explained in the previous section not only has significant implications for bridging much of the heterogeneity within and between corporations. This option is made possible by the open technology provided by the Web services framework and is made more attainable through the standardization and principles introduced by SOA.

Web services were more often employed to facilitate point-to-point solutions. Thanks Figure 3. Registries enable a mechanism for the discovery of services. Fostering this characteristic can significantly alleviate the cost and effort of fulfilling future cross-application integration requirements. Contemporary SOA fosters intrinsic interoperability Further leveraging and supporting the required usage of open standards.

When properly standardized. Regardless of whether an application actually has immediate integration requirements. Intrinsically interoperable services enable unforeseen integration opportunities. When building an SOA application from the ground up. SOA supports the automation of flexible and highly adaptive business processes.

Services enable standardized federation of disparate legacy systems. Contemporary SOA promotes federation Establishing SOA within an enterprise does not necessarily require that you replace what you already have.

Contemporary SOA promotes architectural composability Composability is a deep-rooted characteristic of SOA that can be realized on different levels. One of the most attractive aspects of this architecture is its ability to introduce unity across previously non-federated environments. While Web services enable federation. The modular nature of these specifications allows an SOA to be composed of only the functional.

A business process can therefore be broken down into a series of services. As previously mentioned. SOA promotes this cause by establishing and standardizing the ability to encapsulate legacy and non-legacy application logic and by exposing it via a common. Collections of services that form service compositions can themselves be reused by larger compositions. In other words.

Different solutions can be composed of different extensions and can continue to interoperate as long as they support the common extensions required. Thanks building blocks it requires.

What provides this flexibility is the fact that second-generation Web services specifications are being designed specifically to leverage the SOAP messaging model. This represents both composable services. Individual specifications consist of modular extensions that provide one or more specific features. The emphasis placed by SOA on the creation of services that are agnostic to both the business processes and the automation solutions that utilize them leads to an environment in which reuse is naturally realized as a side benefit to delivering services for a given project.

When service logic is properly partitioned via an appropriate level of interface granularity. Extensible services can expand functionality with minimal impact.

Contemporary SOA emphasizes extensibility When expressing encapsulated functionality through a service description. SOA encourages you to think beyond immediate. Inherent reuse accommodates unforeseen reuse opportunities. Thanks Extensibility is also a characteristic that is promoted throughout SOA as a whole. Analysts can leverage these features by incorporating an extent of service-orientation into business processes for implementation through SOAs.

Time to revisit our original definition to add a few adjectives that represent the characteristics we've covered. This is an area of SOA that is not yet widely accepted or understood. BPM models. Because the loosely coupled relationship fostered among all services minimizes inter-service dependencies. Extending entire solutions can be accomplished by adding services or by merging with other service-oriented applications which also.

Partitioning business logic into services that can then be composed has significant implications as to how business processes can be modeled Figure 3. Contemporary SOA represents an open. We therefore spend a significant portion of this book exploring the service-oriented business modeling paradigm.

A collection layer of services encapsulating business process logic. Through the implementation of service layers that abstract business and application logic.

When applied through proper design. Within an organization where service-orientation principles are applied to both business modeling and technical design. Thanks One of the characteristics that tends to evolve naturally through the application of service-oriented design principles is that of abstraction. Typical SOAs can introduce layers of abstraction by positioning services as the sole access points to a variety of resources and processing logic.

The only remaining concern is the functionality offered via the service interfaces. By implementing standardized service abstraction layers. Application logic created with proprietary technology can be abstracted through a dedicated service layer.

Services only require an awareness of each other. Contemporary SOA promotes loose coupling throughout the enterprise As we've established. Each end only requires an awareness of the other.

The result is an environment that can better accommodate business and technology-related changea quality known as organizational agility. Change in an organization's business logic can impact the application technology that automates it. Thanks [View full size image] 3.

A loosely coupled relationship between business and application technology allows each end to more efficiently respond to changes in the other. Contemporary SOA promotes organizational agility Whether the result of an internal reorganization. SOA offers the potential to increase organizational agility Figure 3. By leveraging service business representation. The more dependencies that exist between these two parts of an enterprise. Change in an organization's application technology infrastructure can impact the business logic automated by this technology.

Other benefits realized through the standardization of SOA also contribute to minimizing dependencies and increasing overall responsiveness to change: When viewed in the context of SOE. Organizational agility is perhaps the most significant benefit that can be realized with contemporary SOA.

What this all boils down to is that an individual service-oriented application can. Contemporary SOA is a building block A service-oriented application architecture will likely be one of several within an organization committed to SOA as the standard architectural platform. Change imposed on any of these environments is more easily facilitated for the same reasonsa loosely coupled state between services representing either ends of the communication channel.

In responding to business model-level changes. SOAs can be augmented to change the nature of their automation. Standards organizations and major software vendors have produced many specifications to address a variety of supplementary extensions. As companies adopt SOA during this evolution.

Even though SOA is being positioned as the next standard application computing platform. This will likely result in countless hybrid architectures. This book provides a series of. It differs from traditional client-server and distributed environments in that it is heavily influenced by the concepts and principles associated with service-orientation and Web services.

These changes foster service-orientation in support of a service-oriented enterprise. As mentioned earlier. If you needed to provide an accurate definition of SOA today. It is similar to previous platforms in that it preserves the successful characteristics of its predecessors and builds upon them with distinct design patterns and a new technology set.

Contemporary SOA is an achievable ideal A standardized enterprise-wide adoption of SOA is a state to which many organizations would like to fast-forward. An SOA consists of services within services within services. When SOA platforms and tools reach an adequate level of maturity.

Every technical environment will undergo changes during such a migration. Contemporary SOA is an evolution SOA defines an architecture that is related to but still distinct from its predecessors. Despite the fact that Web services are being used to implement a great deal of application functionality. SOA supports and promotes reuse. These and other established design principles that are commonplace in traditional distributed environments are still very much a part of SOA.

Further supporting this prediction is the evolving state of the technology set that is emerging to realize enterprise-level SOAs. This past set of characteristics has further broadened our definition.

Let's append the definition with the following: SOA can establish an abstraction of business logic and technology that may introduce changes to business process modeling and technical architecture. The reality is that the process of transitioning to this state demands an enormous amount of effort.

From here on. SOA is an evolution of past platforms. When realized through the Web services technology platform. Separating concrete characteristics Looking back at the list of characteristics we just covered.

Defining SOA Now that we've finished covering characteristics. SOA is a form of technology architecture that adheres to the principles of service-orientation. Let's therefore remove the following items from our original list: Contemporary SOA is generally: Though accurate. SOA is ideally standardized throughout an enterprise. For practical purposes. By trimming these items. SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise.

Note Though we qualify these as "concrete" here. The realization of contemporary SOA characteristics is explored in detail throughout this book.

Some believe that "SOA support" is just a re-labeling of "Web services support. To realize the benefit potential of the mainstream variation of SOA we've been discussing. The technology platform of choice is currently Web services and all that comes with it. Our focus in this section is to dispel the most common points of confusion about SOA and the use of the term "service-oriented. We compare SOA characteristics to distributed computing in detail in the following chapter.

The fact that contemporary SOAs are being implemented using Web services has led to some skepticism around the validity of the term itself. SOA is a legitimate and relatively established technical term. So whether this statement is a misperception or not actually depends on your expectations.

It represents a distinct architecture based on a set of distinct principles.

Get A Copy

It consists of a set of design principles that are related to. The reasons behind this myth are understandable. It has become a high-profile buzzword. As we've established. The myths we tackle here only scratch the surface of the change that's in store for those firmly entrenched with traditional architectural views.

It just happens that contemporary SOA also implies the use of a distinct set of technology used to realize fundamental SOA principles. Depending on which abstract model you use. A traditional distributed architecture can be called service-oriented as long as the benefits associated with primitive and contemporary SOA are not expected.

SOA is its own entity. Much of the hype surrounding SOA has overshadowed its actual meaning. This is in part due to the broad Web services technology platform imposed by contemporary SOA. Having stated that. Though this ultimate goal is attainable.

Many assume that by virtue of building service-oriented solutions. There they can be centrally positioned and assigned significant processing responsibilities. It therefore also requires that Web services be utilized and designed according to specific principles.

Web services are easily incorporated into existing traditional distributed architectures. By leveraging the open Web services communications framework.

The quality of simplicity surfaces later. Though SOA offers significant benefit potential. The emphasis placed on business logic encapsulation and the creation of service abstraction layers often will require a blend of technology and business analysis expertise.

Typical SOA implementations require more up-front research than solutions created under previous platform paradigms. It is best to assume that realizing contemporary SOA requires a separate skill set that goes beyond a knowledge of Web services technology.

Service-orientation requires a change in how business and application logic are viewed. The manner in which Web services are utilized in SOA is significantly different. Regardless of the functionality with which Web services are outfitted. The most common misperceptions relate to the use of Web services within distributed Internet architectures being mistaken as contemporary SOA.

This establishes a predictable communications medium for all applications exposed via a Web service. Some of the more dangerous assumptions about SOA are that service-oriented solutions are simple by nature.

Related Interests

A quality SOA requires that individual services conform to common design standards for federation. Improved integration and intrinsic interoperability SOA can result in the creation of solutions that consist of inherently interoperable services.

The benefits described in this section focus on tangible returns on investment. This list of common benefits is generalized and certainly not complete. Inherent reuse Service-orientation promotes the design of services that are inherently reusable. Subsequently leveraging reuse within services lowers the cost and effort of building service-oriented solutions. The net result is intrinsic interoperability.

Service-Oriented Architecture and Web Services: Concepts, Technologies, and Tools

Much of this book expands on this topic by providing details about the inner workings of service-oriented solutions. The bottom line: The cost and effort of cross-application integration is significantly lowered when applications being integrated are SOA-compliant.

Building service-oriented solutions in such a manner that services fulfill immediate application-level requirements while still supporting a degree of reuse by future potential requestors establishes an environment wherein investments into existing systems can potentially be leveraged and re-leveraged as new solutions are built.

Provided in this section is a list of the reasons why the IT community is going through the trouble of changing so much of its philosophy and technology in an effort to adopt SOA. Utilizing solutions based on interoperable services is part of service-oriented integration SOI and results in a service-oriented integration architecture.

Because of the vendor-neutral communications framework established by Web services-driven SOAs. Designing services to support reuse from the get-go opens the door to increased opportunities for leveraging existing automation logic.

Building services to be inherently reusable results in a moderately increased development effort and requires the use of design standards. It is merely an indication of the potential this architectural platform has to offer. Message-based communication in SOAs can.

As described in the Common characteristics of contemporary SOA section. Leveraging the legacy investment The industry-wide acceptance of the Web services technology set has spawned a large adapter market. As a result. Benefits of streamlined solutions and architectures include the potential for reduced processing overhead and reduced skill-set requirements because technical resources require only the knowledge of a given application.

The cost and effort of integrating legacy and contemporary solutions is lowered. It is not. Examples include: Though still riddled with risks relating mostly to how legacy back-ends must cope with increased usage volumes. Establishing standardized XML data representation On its most fundamental level. The need for legacy systems to be replaced is potentially lessened. Streamlined architectures and solutions The concept of composition is another fundamental part of SOA.

Note The reduced performance requirements mentioned previously only refer to the fact that SOA extensions are composable and therefore allow each application-level architecture to contain extensions only relevant to its solution requirements.

See the Not understanding SOA performance requirements section later in this chapter for more information. This allows IT departments to work toward a state of federation. Realizing this benefit requires adherence to design standards that govern allowable extensions within each application environment.

A standardized data representation format once fully established can reduce the underlying complexity of all affected application environments. XML's self-descriptive nature enhances the ability for data to be readily interpreted by architects. This can be due to the expense and effort required to realize the requested automation. Because SOA establishes a vendor-neutral communications framework.

With contemporary SOA. For any given piece of automation that can expose an adequate service interface. Either way. The potential scope of business requirement fulfillment increases. The result is a predictable and therefore easily extensible and adaptable communications network. The standardization level of data representation lays the groundwork for intrinsic interoperability.

A key feature of service-oriented enterprise environments is the support of "best-of-breed" technology. SOA won't solve these problems entirely.

The cost of scaling communications infrastructure is reduced. Focused investment on communications infrastructure Because Web services establish a common communications framework.

The cost and effort of application representation is achieved. SOA can centralize inter-application and intra-application communication as part of standard IT infrastructure. These approaches severely inhibited the potential benefits XML could introduce to an organization.

IT departments are frequently required to push back and limit or even reject requests to alter or expand upon existing automation solutions. The result is the potential for data within messages to be more easily maintained. This allows organizations to evolve enterprise-wide infrastructure by investing in a single technology set responsible for communication.

Past efforts to standardize XML technologies have resulted in limited success. Much of service-orientation is based on the assumption that what you build today will evolve over time. How building blocks such as these can be realized and maintained within existing financial and cultural constraints ultimately determines the agility of the organization as a whole.

Change can be disruptive. One of the primary benefits of a well-designed SOA is to protect organizations from the impact of this evolution. SOA can establish a loosely coupled relationship between these two enterprise domains.

Regardless of what parts of service-oriented environments are leveraged. This allows each domain to evolve independently and adapt to changes imposed by the other.

A standardized technical environment comprised of loosely coupled. Building automation solutions and supporting infrastructure with the anticipation of change seems to make a great deal of sense. When accommodating change becomes the norm in distributed solution design. The predictability of these qualities within the enterprise leads to a reliable level of organizational agility.

Organizational agility Agility is a quality inherent in just about any aspect of the enterprise. A simple algorithm.

The cost and effort to respond and adapt to business or technology-related change is reduced. Part of Chapter 4 is dedicated to discussing this topic. SOA is no exception. See the "Once you go SOA. Building service-oriented architectures like traditional distributed architectures Probably the number one obstacle organizations face in achieving SOA is building traditional distributed architectures under the pretense that they are building contemporary SOA. The danger with this scenario is that an organization can go quite far in terms of integrating the Web services technology set before realizing that they've been heading down the wrong path.

The ability for SOA to achieve federation across disparate environments has been well promoted.

Examples of some of the problems this can introduce include: Proliferation of RPC-style service descriptions leading to increased volumes of fine-grained message exchanges. Creation of non-composable or semi-composable services.

The potential exists. Understanding the fundamental differences between SOA and previous architectures is the key to avoiding this situation. Creation of hybrid or non-standardized services. This is a lesson many IT departments have already learned through past legacy nightmares. Improper partitioning of functional boundaries within services.

This is often the result of an acceptance of one or more of the misperceptions listed earlier in this chapter. If different development projects result in the creation of differently designed applications.

Further entrenchment of synchronous communication patterns. As with any application design or architecture. Following are descriptions of some of the more common mistakes.

The definition of transition architectures. Support for different extensions or extensions being implemented in different ways. Transition plans allow you to coordinate a controlled phasing in of service-orientation and SOA characteristics so that the migration can be planned on a technological. Incompatible data representation that results in disparate schemas representing the same types of information. SOA promotes a development environment that abstracts back-end processing so that it can execute and evolve independently within each application.

Detailed design changes to centralized logic such as a new security model. Service descriptions with irregular interface characteristics and semantics. It is this core set of standards that has fueled the creation of the many Web services specifications that are now driving SOA.

Not creating a transition plan The chances of a successful migration will be severely diminished without the use of a comprehensive transition plan. That statement has become a mantra of sorts within some organizations. So much attention is given to how data is transported between services that the manner in which this same data is structured and validated behind service lines is often neglected.

A speculative analysis that takes into account the future growth of Web services and supporting technologies. Design standards. In the world of contemporary SOA. This can lead to many problems.

Standardizing the manner in which core XML technologies are used to represent. Examples of typical areas covered by a transition plan include: An impact analysis that predicts the extent of change SOA will impose on existing resources.

Each plan. It is the standard from which multiple supplementary standards have evolved to form a de facto data representation architecture. Creating a transition plan avoids the many problems associated with an ad-hoc adoption of SOA. The results can severely affect the quality of data processing.

Because the extent to which service endpoints are positioned within an enterprise can lead to a redefinition of an IT environment's infrastructure. With this approach. Thanks SOA. Acquiring a sound knowledge of the framework now will allow you to adjust your current architecture and application designs to better accommodate upcoming changes.

This means: Testing the message processing capabilities of your environments prior to investing in Web services. These and other design measures can be implemented to avoid potential processing bottlenecks. While SSL can address many immediate security concerns. Stress-testing the vendor supplied processors for XML. Not understanding SOA performance requirements When starting out small.

The WS-Security framework establishes an accepted security model supported by a family of specifications that end up infiltrating service-oriented application and enterprise architectures on many levels.

Critical to building a successful service-oriented solution is understanding the performance requirements of your solution and the performance limitations of your infrastructure ahead of time.

Web services security measures. Performance is also one of the reasons coarse-grained service interfaces and asynchronous messaging are emphasized when building Web services. Even if your vendor platform does not yet provide adequate support for WS-Security. When services begin to take on greater amounts of processing responsibility. Once it does expand it is easy to simply continue building on simplistic message exchanges. Because contemporary SOA introduces layers of data processing.

This impact is amplified if you decide to implement a centralized security model. This is when unprepared environments can begin experiencing significant processing latency. Exploring alternative processors. As the scope increases and more functionality is added. Not understanding Web services security The extent to which Web services technology grows within a given environment is typically related to the comfort level developers and architects have with the overall technology framework.

One of the more significant design issues you may face when WS-Security hits your world is the potential introduction of centralized security. Proceeding without taking WS-Security into account will inevitably lead to expensive retrofitting and redevelopment. As different vendor alliances continue to produce competing extensions. In the meantime. As explained earlier.

Not keeping in touch with product platforms and standards development IT professionals used to working within the confines of a single development platform have become accustomed to focusing on industry trends as they apply to the product set they are currently working with.

Staying in touch with commercial and standards-related developments is an important part of keeping an existing SOA aligned with future developments. NET developers are generally not too concerned with what's happening in the Java world.

A transition plan is the best weapon against the obstacles that tend to face organizations when migrating toward SOA. While the tendency will be there to continue with what you know best. We begin with recent and current developments and end with a look at past architectural platforms. The Evolution of SOA 4. This chapter examines the relationship between XML. Web services. Thanks Chapter 4.

We then conclude by embarking on a short historical recount of application architecture over the past two decades. Note The sequence of topics in this chapter may seem a bit odd. To fully appreciate this quality we need to take a look at what industry developments are influencing SOA today and the overall direction SOA is headed.

This structure was chosen simply because the information in the last section of this chapter may not be of interest to everyone and is not considered required reading. Thanks How case studies are used: This chapter provides us with an opportunity to better establish the existing environments within our two fictional companies.

Service-Oriented Architecture and Web Services: Concepts, Technologies, and Tools

Upon the conclusion of each of the architectural comparisons. Within it. We then take a look at how the emancipation of SOA as a contemporary architectural platform in its own right has altered the roles of XML and Web services technologies. XML establishes the format and structure of messages traveling throughout services. This widely used meta language allowed organizations to add intelligence to raw document data.

In support of SOAP's new role. Although alternatives. Not only was XML used to represent data in a standardized manner. Web services required an Internet-friendly and XML-compliant communications format that could establish a standardized messaging framework. XML gained popularity during the eBusiness movement of the late 90s.

These specifications. The W3C received the first submission of the WSDL language in and has since continued revising this specification. This specification was originally designed to unify and in some cases replace proprietary RPC communication.

SOAP won out as the industry favorite and remains the foremost messaging standard for use with Web services. It is a central piece of information that assigns the service an identity and enables its invocation. XSD schemas preserve the integrity and validity of message data. This concept was called Web services. Through the use of XML. The most important part of a Web service is its public interface. To further the vision of open interoperability. The idea was for parameter data transmitted between components to be serialized into XML.

This ultimately led to the idea of creating a pure. Web services: The latter are used more frequently within SOAs. Web services could become the basis of a separate architectural platforma platform that could leverage the benefits of the Web services technology set to realize the concept of services in the enterprise. At this point an SOA was frequently classified in different ways.

This specification allows for the creation of standardized service description registries both within and outside of organization boundaries. Thanks document-style message types. UDDI has not yet attained industry-wide acceptance. Figure 4. An early model.

SORCER 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. 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,. NET, etc. 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. 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.

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.

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: Separation promotes the concept to the business that services can be delivered quickly and independently from the larger and slower-moving projects common in the organization.Case Studies Part I: The step-by-step instructions provided focus on building and orchestrating service endpointsnot the underlying component logic.

Because the acronym already represents the word "architecture" we are unfortunately subjected to statements that can be confusing. SOA offers the potential to increase organizational agility Figure 3. This context can be specific to a business task.

Who this book is for SOA is a broad subject matter. SOA is a legitimate and relatively established technical term. A full set of regression tests, scripts, data, and responses is also captured for the service. How services are designed Much like object-orientation. This new requirement ends up also affecting the design of its SOA.