authorSTREAM Share PowerPoint. Anywhere

csfsoa

Featured Animated Featured Animated
Uploaded from authorPOINT
Download as Download Not Available PPT
Presentation Description

No description available

What's up on authorSTREAM?
Views: 93
Like it  ( Likes) Dislike it  ( Dislikes)
Added: June 19, 2007 This presentation is Public
Presentation Category :Product Training/ Manuals
Presentation StatisticsNew!
Views on authorSTREAM: 93
Presentation Transcript

Constructing Software For Service Oriented Architecture : Constructing Software For Service Oriented Architecture Jean-Jacques Dubray, Ph.D. Architect jeanjadu@attachmate.com Lecture, 03/26/2004 The Pennsylvania State University The Smeal College of Business Administration


Copyright Notice : Copyright Notice According to US and Worldwide Copyright laws, it is forbidden to use all or part of this presentation without a written consent of Attachmate In particular, you are not allowed To remove attachmate logos or the author’s name Change the title of the presentation Publish part or all of the presentation under your name or the name of another organization


Acknowledgments : Acknowledgments This presentation was reviewed and commented by Jeff Schneider, CEO of OpenStorm Eric Newcomer, CTO of Iona Paul Brown, CEO of Fivesight Ben Gaucherin, CTO of Sapient I greatly appreciate their feedback


Outline : Outline Service Oriented Society The 'connected' world From Component Orientation to Service Orientation The Road to SOA Three key concepts in software construction Conclusion


The Service Oriented Society : The Service Oriented Society Imagine if we had to do everything we need to get done by ourselves?


From Craftsmen to Service Providers : From Craftsmen to Service Providers Our society has become what it is today through the forces of Specialization Standardization Scalability It is now almost exclusively 'service' oriented Transportation Telecommunication Retail Healthcare Financial services …


Attributes of physical services : Attributes of physical services Well defined, easy-to-use, somewhat standardized interface Self-contained with no visible dependencies to other services (almost) Always available but idle until requests come 'Provision-able' Easily accessible and usable readily, no 'integration' required Coarse grain Independent of consumer context, but a service can have a context New services can be offered by combining existing services Quantifiable quality of service Do not compete on 'What' but 'How' Performance/Quality Cost …


Context, Composition and State : 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 : 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 : 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 : 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 : 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


So… : So… Service orientation allows us Complete freedom to create contexts in which services are uses and combined Express intent rather than specific requests Our society should be a great source of inspiration to design modern enterprise systems and architectures or understand what kind of services these systems will consume or provide


The connected (new) world : The connected (new) world Over the past 15 years, everything got connected to everything else


Connectivity Drives the Emergence and Convergence of Technologies : Connectivity Drives the Emergence and Convergence of Technologies


Connectivity Enables Global Processes and Information Access : Connectivity Enables Global Processes and Information Access Information Business Processes Local Internet


Seamless Connectivity enables “On Demand” Computing : Seamless Connectivity enables 'On Demand' Computing Use software as you need Much lower setup time, forget about Installation Implementation Training Maintenance Scalable and effective usage of resources Provision Billed on true usage Parallelism (CPU, Storage, Bandwidth…)


But Seamless Connectivity is also questioning all our beliefs… : But Seamless Connectivity is also questioning all our beliefs… An application is NOT a single system running on a single device and bounded by a single organization Continuum Object … Document Messages and Services As opposed « distributed objects » Exchanges becomes peer-to-peer Asynchronous communications Concurrency becomes the norm while our languages and infrastructures did not plan for it


…we are reaching the point of maximum confusion : …we are reaching the point of maximum confusion Federation and Collaboration As opposed to « Integration » Language(s) Semantic (not syntactic) Declarative and Model driven (not procedural) Licensing and Deployment models …


So… : 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


Constructing Software In a Connected World : Constructing Software In a Connected World From Components to Services


Constructing software in the web era (J2EE, .Net, …) : Constructing software in the web era (J2EE, .Net, …) DB CCI CCI CCI ERP CRM request response Model ERP EAI b2b Internet CCI: Client Communication Interface Controller View


Why do we Want to Move to a New Application Model Today? : Why do we Want to Move to a New Application Model Today? We are moving away precisely because of connectivity J2EE, for instance was designed to build 24x7 scalable web-based applications Job well done But this is very different from, 'I now want my application to execute business logic in many other systems, often dynamically bound to me' JCA (J2EE Connector Architecture) is not enough EAI infrastructures are not enough


A Component now Becomes a Service Running Outside the Consumer Boundaries : A Component now Becomes a Service Running Outside the Consumer Boundaries Consumer


From Components to (Web) Services : From Components to (Web) Services Requires a client library Client / Server Extendable Stateless Fast Small to medium granularity Loose coupling via Message exchanges Policies Peer-to-peer Composable Context independent Some overhead Medium to coarse granularity


Web Services: what is changing? : Web Services: what is changing? Loose coupling (of course) Web Services don’t require a CCI (Client side Communication Interface) Very few 'gears' needed to consume a service Web Services can accept message content they do not fully understand or support XML, WSDL Web services are very late bound Location is independent of the invocation mechanism Directories


Web Services: What is Changing? : Web Services: What is Changing? Peer-to-peer interactions are possible Request / response is an inefficient and very limiting mode of interaction As components coarsen, it is difficult to differentiate a client from a server


What Happens to the Technical Services Typically Provided by an Application Server? : What Happens to the Technical Services Typically Provided by an Application Server? Transaction Security Connection pooling Naming service Scalability and failover … They become the 'Service Fabric'


What about the notion of “Container”? They become Service “Domains” : What about the notion of 'Container'? They become Service 'Domains' The notion of 'container' shifts to the notion of 'Domain Controller' A domain is a collection of web services which share some commonalities like a 'secure domain' A container is a domain with one web service Web Services do not always need a container Consumers invoke the domain rather than the service directly This concept does not exist in any specification…


A Service Fabric can be more than a Bus with a series of Containers / Adapters : A Service Fabric can be more than a Bus with a series of Containers / Adapters Consumer Domain Controller Reliable Messaging Process Registry Tx Registry register Discover and/or Bind Policies


The road to SOA… : The road to SOA…


Shift To A Service-Oriented Architecture : Shift To A Service-Oriented Architecture Function oriented Build to last Prolonged development cycles From To Coordination oriented Build to change Incrementally built and deployed Application silos Tightly coupled Object oriented Known implementation Enterprise solutions Loosely coupled Message oriented Abstraction Source: Microsoft (Modified)


So Migrating to SOA : So Migrating to SOA Would entail Organizing the business logic in a context independent way Typically, model oriented business logic is wrapped behind (web) services Re-implementing the controller with 'coordination' technologies …The view must be completely re-invented


From this point on… : From this point on… We will focus on 3 key aspects of the controller The coordination layer Information Entities The relationship between BPM and SOA


The “Coordination” Layer : The 'Coordination' Layer Many, many, many overlapping concepts not layered, not architected Composition Orchestration Choreography Collaboration … What is the relationship between these concepts?


Coordination Specification : Coordination Specification OASIS/WS-CAF Context management Coordination Transaction management As one possible, yet very important example of coordination


What is Context? : What is Context? S1 S2 S3 CTX Service S4 Peer to peer interactions mandate a 'context' service (e.g. in this case S3 may need to know the state of interaction between S1 and S4 to provide its service)


What is an activity Lifecycle Service? : What is an activity Lifecycle Service? S1 S2 S3 CTX Service S4 ALS Service ALS allow to demarcate units of work shared across several services


What is Coordination? : What is Coordination? S1 S2 S3 CTX Service S4 ALS Service Coordination Service A coordinator is an active component of the architecture It can support a service or provide services itself Multiple purposes: Transaction Orchestration Choreography …


What are the Coordination Topologies? : What are the Coordination Topologies? A B Binary relationship Context and Activity are most often implicit Self-coordination


Coordination is a key abstraction : Coordination is a key abstraction Rely on generic fabric services for types of coordination Not everything is a process… Different types of coordination can be composed A transaction may include an orchestration definition as part of an activity An orchestration definition may contain several transactions


Information Entity in SOA : Information Entity in SOA 'at the heart of Web services is a very complex problem: with distributed applications comes the need for distributed data sharing' Identification and equivalence authentication Authorization and privacy mediation synchronization Source: The Dataweb: An Introduction to XDI, Drummond Reed et al.


Information Entities in SOA : Information Entities in SOA Several dimensions appear when managing an Information Aggregate in a SOA Privacy


Key problems to solve : Key problems to solve Isolation We cannot be guaranteed that the information we have is the information held by the system of record Containment We cannot be guaranteed that a service consumer is going to apply the same privacy rules to the information provided to it


Web standards vs. Dataweb standards : Web standards vs. Dataweb standards URIs XRIs HTML XML/XDI HTTP XDI/HTTP XDI/SOAP 100% resource addressability Common representation and linking format Common interchange protocol Web Dataweb Source: Drummond Reed


Websites vs. Dataweb sites : Websites vs. Dataweb sites HTML Website A HTML HTML HTML HTML HTML HTML HTML HTML HTML Website B Source: Drummond Reed


Information Elements and Aggregate Represent a Big Challenge in SOA : Information Elements and Aggregate Represent a Big Challenge in SOA We have barely scratched the surface Thinking that we can get away by saying that we are simply exchanging messages between services is IMHO a mistake SOA will not exist without its concept of information entity Entity beans were clearly not a good solution .NET offers the concept of DataSet which I like better


SOA and BPM : SOA and BPM SOA is about constructing software components that can be reused in context unknown at design time Composition versus Extension (OO) BPM is about being able to precisely model and possibly change the context in which enterprise components are used But how the two meet?


Elements of BPM : Entity Elements of BPM Activity State Event Actor Content performs Initiates changes generates Services Represented by


How is BPM perceived today in the SOA community? : How is BPM perceived today in the SOA community? Two approaches Event Oriented BPML, BPEL Pi-Calculus (Also Event Calculus) Activity Oriented WfMC Petri nets IMHO, the approaches must be combined and state must be part of the model 'Turing complete' is the excuse for remaining 'pure' (e.g. event oriented only) Source: Paul Brown, FiveSight,


BPEL : BPEL 'BPEL is an XML language for defining the composition of (web) services into (new) services' (Paul Brown, FiveSight) BPEL is above all a simple Orchestration language not a Business Process Language BPEL would require that every process Either has a 'center' of execution A process is composed of a large set of orchestration definitions interacting with each other In pi-calculus, even a variable is a process… BPEL assumes that business processes can be fully captured in a single definition, including all possible exception paths Not sure this is the right assumption


A business process does not have a “center”…it is de facto “peer-to-peer” : OAGIS 8.1 Scenario 50 A business process does not have a 'center'…it is de facto 'peer-to-peer'


A very simple example : A very simple example A buyer orders some goods from a supplier The supplier performs a series of steps to fulfill the order Approve the order Update the order entry system Update the billing system …


Orchestration languages are a critical piece of the puzzle : Orchestration languages are a critical piece of the puzzle They allow us to implement complex services which involve: Long running (from a few hours to a few months), And event driven business logic They are not about modeling Business Processes by themselves Different orchestration (i.e. different services) can run within the same business process And vice versa


A Business Process can be Viewed as a Multi-Party Choreography (not orchestration) of Peer Services : A Business Process can be Viewed as a Multi-Party Choreography (not orchestration) of Peer Services User Activity Buyer Supplier SFA Sales person Start ERP Order Order Information Entity


Services in a SOA are orchestrated (BPEL) ! This is one of the best model to re-use existing business logic : Services in a SOA are orchestrated (BPEL) ! This is one of the best model to re-use existing business logic Quote Service Orchestration Definition RFQ Nack Quote Sales Tax andlt;andlt;sendandgt;andgt; quote updateDB Transition Message flow RFQ Quote Ok? No sendNack Order andlt;andlt;invokeandgt;andgt; calculateSalesTax andlt;andlt;invokeandgt;andgt; GetQuote Ok? No andlt;andlt;receiveandgt;andgt; RFQ


A Choreography Provides a Model of the Event Flow Between Activities : A Choreography Provides a Model of the Event Flow Between Activities


So … : So … Orchestration « … is an emerging [concept] that would give programmers a way to formally describe processes underlying business applications so that they can be exposed and linked to processes in other applications » Choreography Is a concept that specifies how these processes are linked together across the enterprise Choreography can be « active » when mapping and routing are necessary They are both a form of Coordination


Bringing BPM and SOA together : Bringing BPM and SOA together The foundation is becoming sound with strong theoretical support A big piece still missing: 'state' (IMHO) Shift from Orchestration to Business Process Definition Once the foundation is in place we should see Domain Specific Languages (DSL) appear that are a lot closer to the way the users (not the programmers) think about a Business Process


A Technical Model for Constructing Software in SOA : A Technical Model for Constructing Software in SOA We need to adapt the foundation of modern application architecture Model-View-Controller Model  Services Controller  Coordination View  ?


The Model-View-Controller pattern Revisited : The Model-View-Controller pattern Revisited Model Query UI Controller Task Engine Business Process Controller Task Request SelectTask Service Request ChangeState Controller Model Changed Model Changed SelectView WS WS WS WS


SOA requires a Complete Separation of the Business Logic and UI : SOA requires a Complete Separation of the Business Logic and UI ERP PLM CRM UI Controller Task Engine Business Process Controller Service Request WS Query Engine WS WS WS WS WS WS


It is likely that BPM will be the main paradigm for the « Controller » in a SOA : Registry Context ALS It is likely that BPM will be the main paradigm for the « Controller » in a SOA ERP PLM CRM Task Engine WS WS WS WS WS WS Orchestration Engine Orchestration Engine Orchestration Engine Business Process Execution


Conclusion : Conclusion The Future Belongs to Whom Can Master Connectivity


Service Orientation is a New Computing Paradigm : Service Orientation is a New Computing Paradigm Not as a new name for API Component A genuine set of concepts with which we can construct new kinds of software This is as significant if not more than Object Orientation In particular SO forces us to think about enabling the same piece of code to be leveraged by large numbers of consumers in unforeseen context


SOA is still far ahead of us : SOA is still far ahead of us We still need to shape what SOA means I have emphasized 3 concepts but there are a lot more and a lot more not even uncovered today BPM and SOA will complement each other We need lots of work to achieve and deliver the SOA value and go beyond 'toy' applications of SOA At best we are capable of delivering web services today Standards work is both a curse and a blessing They open the road but blur the space and bring confusion because of the lack of … coordination


We can expect : We can expect A new 'gold rush' to own and publish application 'services' Mainframe and Client Server applications (ERP, CRM, SCM…) will be impacted dramatically Far richer and smarter software Could also become a nightmare if we look at all the security breaches that occur today However, some key enabling technologies are still missing … Standards 'convergence' is now of primary importance