860 likes | 1.16k Views
Object Oriented Analysis and Design. Service Oriented Architecture (SOA). Outline. The Service Oriented Society Service-Oriented Architecture (SOA) Web Services. Outline. The Service Oriented Society Service-Oriented Architecture (SOA) Web Services. Context, Composition and State.
E N D
Object Oriented Analysis and Design Service Oriented Architecture (SOA)
Outline • The Service Oriented Society • Service-Oriented Architecture (SOA) • Web Services
Outline • The Service Oriented Society • Service-Oriented Architecture (SOA) • Web Services
Context, Composition and State • Services are most often designed to ignore the context in which they are used • It does not mean that services are stateless they are rather context independent ! • This is precisely my / the definition of “loosely coupled” • Services can be reused in contexts not known at design time • Value can be created by combining, i.e. “composing” services • Book a trip versus book a flight, car, hotel, …
Service Interfaces • Non proprietary • All service providers offer somewhat the same interface • Highly Polymorphic • Intent is enough • Implementation can be changed in ways that do not break all the service consumers • Real world services interact with thousands of consumers • Service providers cannot afford to “break” the context of their consumers
Intents and Offers • Service consumer expresses “intent” • Service providers define “offers” • Sometimes a mediator will: • Find the best offer matching an intent • Advertise an offer in different ways such that it matches different intent • Request / Response is just a very particular case of an Intent / Offer protocol
Service Orientation and Directories • Our society could not be “service oriented” without the “Yellow Pages” • Directories and addressing mechanisms are at the center of our service oriented society • Imagine • Being able to reach a service just by using longitude and latitude coordinates as an addressing mechanism? • Only being able to use a service if you can remember its location, phone or fax number?
Service Orientation is Scalable • Consumers can consume and combine a lot of services since they don’t have to know or “learn” how to use a service • Service providers can offer their services to a lot more consumers because by optimizing • The user interface • Access (Geographical, Financial, …) • They were able to provide the best quality of service and optimize their implementations
2010 2000 1990 1980 Internet LAN Web XML WS SOA EAI ? Business Integration BPM B2B WS J2EE .NET Client / Server Web/Portal Connectivity Drives the Emergence and Convergence of Technologies Office Workflow EDI Mainframe
1980 1990 2000 2010 LAN Web XML WS SOA LAN WAN Web Global Connectivity Enables Global Processes and Information Access Internet Information Local Business Processes
SOA So… • Today, the value is not defined as much by functionality anymore but by connectivity • However, we need a new programming model • Why SOA today? • We are reaching a new threshold of connectivity and computing power Mainframe Client Server Web
Coordination oriented Build to change Incrementally built and deployed Shift To A Service-Oriented Architecture From To • Function oriented • Build to last • Prolonged development cycles • Application silos • Tightly coupled • Object oriented • Known implementation • Enterprise solutions • Loosely coupled • Message oriented • Abstraction Source: Microsoft (Modified)
Why? The Value of SOA • A Fundamental Assumption: Business Processes Rule • The Evolution of Application Architecture • Enterprises Today • Service-Oriented Enterprises: An Idealized Picture • Service-Oriented Enterprises: The Reality • Why SOA Makes Sense: Technical Benefits • Why SOA Makes Sense: Business Benefits
A Fundamental Assumption: Business Processes Rule • Everything enterprise IT does is in the service of some business process • Service-oriented architecture (SOA) is about making business processes: • Better • Easier to change • Cheaper to create
Why SOA Makes Sense: Technical Benefits • Building business processes is faster and cheaper: • Existing services can more easily be reused • Apps can expose their services in a standard way • Applications can be exposed more easily to diverse clients: • Windows clients, ASP.NET/JSP, etc.
Why SOA Makes Sense: Business Benefits • Business people understand services • So IT people can talk with them more easily • Business processes become explicit • So they can more easily be understood and improved • Applications or business processes might be more easily outsourced • Because they’re well-defined and discrete
Outline • The Service Oriented Society • Service-Oriented Architecture (SOA) • Web Services
Service Oriented Architecture • Service-oriented architecture (SOA) is an approach to loosely coupled, protocol independent, standards-based distributed computing where software resources available on the network are considered as Services • SOA is believed to become the future enterprise technology solution that promises the agility and flexibility the business users have been looking for by leveraging the integration process through composition of the services spanning multiple enterprises
What is SOA ? • A Service-Oriented Architecture (SOA) is a way of designing a software system and its surrounding environment to provide services either to end-user applications, to executable business processes or to other services through published and discoverable service interfaces. • Benefits: • Loose couplingamong interacting software agents • A mechanism for integrating software componentson dissimilar platforms • Supportsnon-intrusive reuseof software components in ways not specifically predicted at development time • Can enable easier insourced/outsourced development by breaking systems down into smaller chunks
Service Broker Company A Company B Discover Publish Application A Application B ObjectA ----------------------------- ----------------------------- ---------------------------- --------------------------- Service Interface ObjectB ------------ ------------ ------------ ------------ The Service Oriented Architecture • New? No • Rocket science? Not really • A change in thinking? Most definitely! • Can you run right out and buy one? Well…..
Applications or Services Services ServicesRequestor Not Quite Zen, But… • It’s an architectural concept, not a shrink-wrapped product… ServicesLocator ServicesBroker ServicesProvider • …with immense industry support in the form of standards and products, and momentum is growing
Services & SOA • Service is an entity that provides some capability to its clients by exchanging messages. Operations are defined in terms of message exchanges • A service oriented architecture (SOA) is one in which all entities are services and any operation visible to the architecture is the result of message exchange
What is SOA ? • Encapsulates enduring services of agency mission • Leverages highly cohesive, loosely coupled components • Provides network discovery endpoint • Establishes a contract through an interface • Decoupled from underlying implementation
Service-Oriented Architecture • Provides services to consumers via standards-based, published, and discoverable interfaces • Elevates abstraction level for code re-use • Applications can bind to services that evolve and improve over time • No modifications are required to the applications that consume them • Provides a clear model to integrate software systems • Inside the enterprise, and • Across organizational boundaries • Provides the foundation for global-class, connected applications
Paradigm Shift • Paradigm shift away from the all-encompassing software application to the ‘software-as-a-service’ model • Represents a major change in the underlying platform to one that supports interoperability of software • Focus is away from one program = one application to one application made up of a collection of software modules
Service Oriented Architecture • Software is no longer seen as an application to execute but as a service to consume • Analogy to the electric grid
Characteristics • The software components in a SOA are services based on standard protocol • Services in SOA have minimum amount of interdependencies • Communication infrastructure used within an SOA should be designed to be independent of the underlying protocol layer • Offers coarse-grained business services, as opposed to fine-grained software-oriented function calls • Uses service granularity to provide effective composition, encapsulation and management of services
Service Granularity • Service granularity refers to the scope of functionality a service exposes. Fine-grained services provide a small amount of business-process usefulness, such as basic data access. Coarse-grained services are constructed from fine-grained services that are intelligently structured to meet specific business needs
Granularity Coarser- grained Looser coupling required Looser coupling desired Looser coupling ? Finer- grained Service Granularity Add order Release order Order processmanager Add order headerrelease order item Order processmanager Addressmanager Location.Validate Locationcomponent Postcodecomponent
Service Management • There are three levels of service management • Management of the services and their interfaces • Management of the underlying system • Management of the interaction between the services and the underlying system
SOA Metamodel SOA is a form of enterprise architecture and can be represented using models. SOA metamodel is a model that contains the following three models.
Differences: SOA vs. Existing Model Driven Architecture (MDA) • SOA is an alternative model to the more traditionally tightly-coupled object-oriented models like Common Object Request Broker Architecture (CORBA) and Distributed Component Object Model (DCOM) • In SOA individual services can be build with object-oriented designs but the overall design of SOA is service-oriented
Differences (cont.) • SOA today differs in the usage of a more generic standard-based interface language XML (eXtensible Markup Language) used in Web Services Definition Language (WSDL) compared to the older Interface Definition Language (IDL) found in CORBA • SOA is based on the concept of using services that can communicate through standard protocols like SOAP allowing a more loosely coupled architecture. In older models objects were more tightly coupled due to the usage of vendor specific communication standards
Differences (cont.) • IBM’s MQseries is yet another message-oriented middleware system but it lacks the organized workflow definition required for the services to interoperate • SOA supports the composition of coarse-grained services from fine-grained services to provide a business solution in an easily deployable and usable manner • For interoperability of services spanning multiple enterprises, SOA should provide service level agreements and operational policies
Outline • The Service Oriented Society • Service-Oriented Architecture (SOA) • Web Services
Web Services and SOA • Web Services are an open standards-based way of creating and offering SOAs • Web Services are able to exchange structured documents that contain different amounts of information, as well as information about that information, known as metadata. In other words, Web Services can be coarse grained. Such coarse granularity is one of the most important features of SOAs
What Is A Web Service ? • New Buzz Word In IT Application Domain • New Application Wave After Web & HTTP • From Information Sharing To Application Sharing – “Services” Making The Internet A Great Asset • Web-Enable Features: Simplicity & Ubiquity • Next Generation Of Distributed Computing Platform – Based On Open Standards, Independent On Specific Platforms & Protocols, More Interoperability Than Middleware Platforms, Like RMI, Jini, CORBA, DCOM, … • Linking Applications Without Changing Applications, WS Wrapper • Based On Existing Technology Infrastructure • XML, HTTP
Web Services Architecture • Standards + Smart Messaging • Three Key Aspects: • Wire/Messaging Stack XML -- Common Data Exchange Format HTTP -- Run Everywhere On The Internet SOAP – XML-Formatted Envelopes, RPC/HTTP • Definition/Description Stack XML Schema WSDL – Web Service Description Language Business Process Orchestration • Discovery Stack Registry UDDI – Universal Description, Discovery and Integration
Web Services Definitions • W3C • A software system identified by a URI, who’s public interfaces and bindings are defined and described using XML. • SUN • …Software components that can be spontaneously discovered, combined and recombined to provide a solutionto a users problem or request
Web Services Definitions • IBM • “Web services are a new breed of Web application. They are self-contained, self-describing, modular applications that can be published, located, and invoked across the Web. Web services perform functions, which can be anything from simple requests to complicated business processes. Once a Web service is deployed, other applications (and other Web services) can discover and invoke the deployed service”
Web Services Definition • Self-Describing, Self-Contained, Modular Applications That Can Be Mixed and Matched With Other Web Services (IBM) • A Service Available Via The Internet That Complete Tasks, Solve Problems, Or Conduct Transactions (HP) • A Web Service Is A URL-Addressable Software That Performs Functions and Provides Answer, Supported By A Lightweight Standard SOAP Communication Protocol and UDDI Directory
Web Services Definition • 5 Key Characteristics of Web Services (SUN): • Accessibility Via The Web • Exposure Of A XML Interface • Ability To Be Located Via A Registry • Use Of XML Messages Over Standard Web Protocols • Support Of Loosely Coupled Connection Between Systems
Web Services Definition • Web Services Are A New Breed Of Web Applications. They Are Self-Contained, Self-Describing, Modular Applications That Can Be Published, Located, and Invoked Across The Web. Web Services Perform Functions That Can Be Anything From Simple Requests To Complicated Business Process. Once A Web Service Is Deployed, Other Applications (And Other Web Services) Can Discover A Deployed Service.
Benefits Of Web Services • Ease Of Integration – Enables Applications, Machines, Business Processes To Work Together In A Revolutionary Way • Accessibility – A Great Step Toward Simple Access To Software Over The Internet, Any Time, Any Place and Any Means/Devices • Dynamic Business Interoperability & Integration • Efficient & Agile Application Development – Reusable Resources • Service-Oriented Development – New Paradigm • Software As A Service -- New Business Model Web Services Providers (WSP) • WS as An e-Services Mean For Business Services
Web Services Application Infrastructure • Three Kinds Roles May Be Distinguished: • Service Providers Wrap Business Functionality Or Applications As A Web Service With SOAP, WSDL, Register & Publish It Onto Broker Using UDDI • Service Brokers UDDI Registry • Service Requesters Using UDDI Search & Discover The Desired Service From Broker, Send SOAP Requests As Specified In WSDL and Get SOAP Response From Providers
From Hype To Reality • WS Standards & Products Are Still In Their Infancy • Age-Old Problems Still Exist: Like Data Mapping, Transactional Integrity, Trust & Security etc. There Is Still Not An Acceptable Complete Security Model For Web Services • WS Needs Costs and Some Performance Trade-Off XML Messages Are Rather Large Additional Development Works • Learning Curve For Adopting New Technologies Take Time For WS To Proliferate & Accept, Especially For Experiences In Loosely-Coupled, Asynchronous Service Architecture How To Test & Debug A WS System • Licensing & Charging Models To Be Resolved
WS Applications Development Strategy • Customer-Centric Development Strategy – Closely Aligning Business Objectives • What Services The Customers Need Most, Different From Previous ? • Design/Plan From Outside In, Implement From Netting It Out • Wrap Rather Than Replace • Don’t Think Of An Entire Legacy System As A Single Web Service, Select Core, Fine Grained Functions As Web Services • Not Take A Pure WS Development For A Complete Application • Learn WS Basic By Pilot Experiments
WS Technology Categories • WS Development And Assembly Environments • WS Deployment Environments • UDDI And Directory Services • Service Infrastructure Services • Adaptive Business Process Environments