Service Oriented Architecture Alberto Polzonetti
Service-Oriented Architecture: Concepts, Technology, and Design By Thomas Erl. Publisher: Prentice Hall PTR Pub Date: August 04, 2005 ISBN: 0-13-185858-0 Pages: 792 Service-Oriented Architecture: A Field Guide to Integrating XML and Web Serviceswritten by Thomas Erl (560 pages, Paperback)
Additional information • The XML & Web Services Integration Framework (XWIF) • Some of the contents in this book originated from research I performed for SOA Systems Inc. (formerly XMLTC Consulting Inc.), as part of the XML & Web Services Integration Framework (XWIF) project. For more information, visit www.soasystems.com or www.xwif.com. • www.serviceoriented.ws • Updates, source code, and various other supporting resources can be found at www.serviceoriented.ws. • Contact the Author • www.thomaserl.com/technology. • Sito del corso
Case Studies • Due to the distinctive nature of modern-day service-oriented architectures, using case studies is an effective way of conveying the topics covered by this book. Though purely fictional, the examples derived from these case studies raise common issues and problems faced by typical IT departments • RailCo Ltd. • Transit Line Systems Inc.
Motivation • WE LIVE IN HARD TIMES. THE SOCIAL MARKET ECONOMY IS BEING REPLACED BY A GLOBAL MARKETECONOMY • you have to be fast and flexible to survive. • “It is not the strongest of the species that survive, nor the most intelligent, but the ones most responsive to change.” • The key is flexibility. • For all major companies and large distributed systems, information technology (IT) flexibility is paramount.
processes and systems are also becoming more and more complex. • We have left the stage where automation was primarily a matter of individual systems, and are fast moving toward a world where all those individual systems will become onedistributed system • The challenge is maintainability.
Centralization, the precondition for harmonization and control, does not scale, and we have reached its limits. • For this reason, we need a new approach • an approach that accepts heterogeneity and leads to decentralization.
In addition, we have to solve the problem of the business/IT gap. • This gap is primarily one of semantics • business people and IT people appear to speak and think in entirely different languages. • The new approach must bring business and IT much closer than ever before
Service-oriented architecture (SOA) is exactly what's needed It's an approach that helps systems remain scalable and flexible while growing, and that also helps bridge the business/IT gap
The approach consists of three major elements: • Services, which on the one hand represent self-contained business functionalities that can be part of one or more processes, and on the other hand, can be implemented by any technology on any platform. • A specific infrastructure, called the enterprise service bus (ESB), that allows us to combine these services in an easy and flexible manner. • Policies and processes that deal with the fact that large distributed systems are heterogeneous, under maintenance, and have different owners.
Foundamental SOA • the term "service-oriented" has existed for some time, it has been used in different contexts and for different purposes • Approach • the logic required to solve a large problem can be better constructed, carried out, and managed if it is decomposed into a collection of smaller, related pieces. • Each of these pieces addresses a concern or a specific part of the problem. • This approach transcends technology and automation solutions. It is an established and generic theory that can be used to address a variety of problems.
A service oriented analogy Credit companies are service-oriented in that each provides a distinct service that can be used by multiple consumers
Service Oriented and Composition The definition of software services aligns with the business services that a bank offers to ensure smooth business operations and to help realize strategic goals such as providing ATM and Web access to banking services in addition to providing them in the branch office.
Architecture • When coupled with "architecture," service-orientation takes on a technical connotation. • "Service-oriented architecture" is a term that represents a model in which automation logic is decomposed into smaller, distinct units of logic. • Collectively, these units comprise a larger piece of business automation logic. • Individually, these units can be distributed.
Services oriented • Business Community • impose dependencies inhibit the potential of individual businesses. • empowering businesses to self-govern their individual services allow them to evolve and grow relatively independent from each other. • Independence within our business outlets, and adhesion to certain baseline conventions • standardization key aspects of each business for the benefit of the consumers without significantly imposing on the individual business's ability to exercise self-governance. • Service-oriented architecture (SOA) • encourages individual units of logic to exist autonomously yet not isolated from each other. • Units of logic are still required to conform to a set of principles that allow them to evolve independently, while still maintaining a sufficient amount of commonality and standardization. • Within SOA, these units of logic are known as services.
How services encapsulate logic • each service can encapsulate • a task performed by an individual step • a sub-process comprised of a set of steps. • A service can even encapsulate the entire process logic.
How services relate (I) • The relationship between services is based on an understanding that for services to interact, they must be aware of each other. service descriptions. • A service description establishes • the name of the service • the data expected and returned by the service.
How services relate (II) • The manner in which services use service descriptions results in a relationship classified as loosely coupled. • Loose coupling describes an approach where integration interfaces are developed with minimal assumptions between the sending/receiving parties, thus reducing the risk that a change in one application/module will force a change in another application/module. ( wikipedia ottobre 2007 ) • A communications framework capable of preserving their loosely coupled relationship is therefore required. [ messaging ].
How services communicate • After a service sends a message, it loses control of what happens to the message thereafter. • The messages exist as "independent units of communication."
Service orientation : three core components • SERVICES • DESCRIPTIONS • MESSAGES
How services are designed :key aspects • Loose coupling Services maintain a relationship that and only requires that they retain an awareness of each other. • Service contract Services adhere to a communications agreement • AutonomyServices have control over the logic they encapsulate. • Abstraction Services hide logic from the outside world. • Reusability Logic is divided into services with the intention of promoting reuse. • Composability Collections of services can be coordinated and assembled to form composite services. • DiscoverabilityServices are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms.
How services are built • the term "service-oriented" and various abstract SOA models existed before the arrival of Web services. • However, no one technology advancement has been so suitable and successful in manifesting SOA than Web services. • All major vendor platforms currently support the creation of service-oriented solutions, and most do so with the understanding that the SOA support provided is based on the use of Web services.
What Are Web Services? • Web Services refers to a collection of standards that cover interoperability. • These standards define both the protocols that are used to communicate and the format of the interfaces that are used to specify services and service contracts.
Fundamental Web Services Standards • There are five fundamental Web Services standards. • Two of them are general standards that existed beforehand and were used to realize the Web Services approach: • XML is used as the general format to describe models, formats, and data types. • HTTP (including HTTPS) is the low-level protocol used by the Internet.
The other three fundamental standards are specific to Web Services and were the first standards specified for them: • WSDL is used to define service interfaces. In fact, it can describe two different aspects of a service: its signature (name and parameters) and its binding and deployment details (protocol and location). • SOAP is a standard that defines the Web Services protocol. While HTTP is the low-level protocol, also used by the Internet, SOAP is the specific format for exchanging Web Services data over this protocol. • UDDI is a standard for managing Web Services (i.e., registering and finding services).
Primitive SOA represents a baseline technology architecture that is supported by current major vendor platforms
Summary1.1 • SOA and service-orientation are implementation paradigms that can be realized with any suitable technology platform. • Primitive SOA model represents a mainstream variation of SOA based solely on Web services and common service-orientation principles.
Contemporary SOA • Major software vendors are continually conceiving new Web services specifications and building increasingly powerful XML and Web services support into current technology platforms. • The result is an extended variation of service-oriented architecture we refer to as contemporary SOA.
SOA increases quality of service • Ability for tasks to be carried out in a secure manner, protecting the contents of a message, as well as access to individual services. • Reliability so that message delivery or notification of failed delivery can be guaranteed. • Overhead imposed by SOAP message and XML content processing does not inhibit the execution of a task.
SOA is based on open standards • Standard open technologies are used within and outside of solution boundaries.
SOA promotes architectural composability • Different solutions can be composed of different extensions and can continue to interoperate as long as they support the common extensions required.
SOA emphasizes extensibility • Extensible services can expand functionality with minimal impact.
SOA supports a service-oriented business modeling paradigm • Partitioning business logic into services that can then be composed has significant implications as to how business processes can be modeled
SOA implements layers of abstraction • Application logic created with proprietary technology can be abstracted through a dedicated service layer.
SOA general definition • SOA is a form of technology architecture that adheres to the principles of service-orientation. • When realized through the Web services technology platform, SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise.
SOA wikipedia definition feb 2006 • In computing, the term "Service-Oriented Architecture" (SOA) expresses a software architectural concept that defines the use of services to support the requirements of software users. • In a SOA environment, nodes on a network make resources available to other participants in the network as independent services that the participants access in a standardized way. • Most definitions of SOA identify the use of Web services in its implementation. However, one can implement SOA using any service-based technology.
SOA Is a Paradigm • SOA is not a concrete architecture: it is something that leads to a concrete architecture. • You might call it a style, paradigm, concept, perspective, philosophy, or representation. • It is an approach, a way of thinking, a value system that leads to certain concrete decisions when designing a concrete software architecture. • This aspect of SOA has a very important consequence: you can't buy SOA.
SOA Aims to Improve Flexibility • A critical factor for business success is keeping time to market share. • My job is to deliver on time, on budget, with the "appropriate" quality metrics. • To deliver a quality solution right on time, you need flexibility. But flexibility has a lot to do with clear organization, roles, processes, and so on. Therefore, • SOA has to deal with all these aspects.
Distributed Systems • As businesses grow, they become more and more complex, and more and more systems and companies become involved. • SOA is a paradigm for "organizing and utilizing distributed capabilities." • SOA allows entities that need certain distributed capabilities to locate and make use of those capabilities. In other words, it facilitates interactions between service providers and service consumers, enabling the realization of business functionalities.
Different Owners and Heterogeneity • SOA includes practices and processes that are based on the fact that networks of distributed systems are not controlled by single owners. • Different teams, different departments, or even different companies may manage different systems • Thus, different platforms, schedules, priorities, budgets, and so on must be taken into account. • This concept is key to understanding SOA and large distributed systems in general.