230 likes | 388 Views
Service Oriented Architecture. Building SOA-based Enterprise Solutions Part 2 Adomas Svirskas Vilnius University October 2005. Agenda. Towards SOA realisation SOA-oriented analysis and design Identification, specification and realisation of services. SOA is….
E N D
Service Oriented Architecture Building SOA-based Enterprise Solutions Part 2 Adomas Svirskas Vilnius University October 2005
Agenda • Towards SOA realisation • SOA-oriented analysis and design • Identification, specification and realisation of services
SOA is… • … “about bridging the gap between business and IT through a set of business-aligned IT services using a set of design principles, patterns, and techniques”. [1] • … going mainstream: “Gartner predicts that by 2008, more than 60 percent of enterprises will use SOA as a "guiding principle" when creating mission-critical applications and processes”. (ZDNet)
SOA is... …a new approach to developing applications [2]
What Is Important? • When planning to build an SOA solution the following aspects are important: • Perception of the SOA modelling and design as an inter-disciplinary practice cutting through the Object-Oriented Analysis and Design (OOAD), Enterprise Architecture (EA) frameworks, and Business Process Modeling (BPM) [3] • Knowing the activities necessary for the analysis and design required to build SOA-based solutions
What else is Important? • When implementing an SOA solution the following aspects are important: • Understanding of interrelationships between services, components and objects • Understanding of the role of enterprise-scale components • Understanding of asynchronous nature of interactions
SOA vs. OOAD, EA and BPM SOAD and its ingredients: OOAD, BPM, and EA [3]
SOA vs. OOAD/CBD, EA and BPM • OOAD focus is on class-level design thus the level of abstraction is too low for business service modelling • Associations such as inheritance result in tight coupling and too much of dependency between the parties • OOAD is the right approach for design of service realisation
The Layers of Design The layers of design [3], [4]
Flexibility through Loose Coupling • Contrary to the Object and Component Oriented Development (OOD and CBD) the SOA is about linking resources on demand in value nets • Value net example: A travel agency is allowed access into an airline reservation system and coordinates it with a rental car agency and hotel chain, updating their records and sending the itinerary to your electronic organizer • Key: Deferral of the choice of which service provider to opt for at a given point in time (loose coupling)
Scalability Through Asynchronous Behavior and Queuing [4] • It makes sense to design the services to be asynchronous: • Reducing the time a service waits for a response • Allowing the provider to service multiple clients efficiently • Message queue is used to decouple a service façade from the service to deal with very high load (TPM approach)
SOA Architectural Principles SOA solution consists of a set of business-aligned IT services that collectively fulfill an organization's business processes and goals. One can choreograph these services into composite applications and invoke them through standard protocols. [1]
SOA Modelling • “Raising of abstraction into the business domain taking the whole IT landscape into account” (Grady Booch) • Identification, specification and realisation of services • Modelling of the flows and composition of the services • Planning of deployment, monitoring, management, and governance of the services
Architectural Template for SOA An abstract view of SOA depicts it as a partially layered architecture of composite services. [1]
Operational Systems Layer [1] • Consists of existing custom built applications, otherwise called legacy systems and older object-oriented system implementations, as well as business intelligence applications • The composite layered architecture of an SOA can leverage existing systems and integrate them using service-oriented integration techniques
Enterprise Components Layer [1] • The layer of enterprise components that are responsible for realizing functionality and maintaining the QoS of the exposed services • As enterprise-scale assets, they are responsible for ensuring conformance to SLAs through the application of architectural best practices
Services Layer [1] • The services the business chooses to fund and expose reside in this layer • They can be discovered or be statically bound and then invoked, or possibly, choreographed into a composite service • The enterprise components provide service realization at runtime using the functionality provided by their interfaces
Business Process Composition/Choreography Layer • Compositions and choreographies of services exposed in Layer 3 are defined in this layer • Services are bundled into a flow through orchestration or choreography, and thus act together as a single application • These applications support specific use cases and business processes
Access or Presentation Layer [1] • SOA attempts to decouple the user interface from the components, and ultimately needs to provide an end-to-end solution from an access channel to a service or composition of services. • There is an increasing convergence of standards, such as Web Services for Remote Portlets Version 2.0 and other technologies, that seek to leverage Web services at the application interface or presentation level
Integration (ESB) • This layer enables the integration of services through the introduction of a reliable set of capabilities, such as intelligent routing, protocol mediation, and other transformation mechanisms, often described as the Enterprise Service Bus (ESB) • Web Services Description Language (WSDL) specifies a binding, which implies a location where the service is provided. On the other hand, an ESB provides a location independent mechanism for integration.
Quality of Service (QoS) • This layer provides the capabilities required to monitor, manage, and maintain QoS such as security, performance, and availability • This is a background process through sense-and-respond mechanisms and tools that monitor the health of SOA applications
References • [1] Arsanjani, A. Service-oriented modeling and architecture. 2004. http://www-128.ibm.com/developerworks/webservices/library/ws-soa-design1/ • [2] Carges, M. Taking SOA from "Pilot to Production" with Service Infrastructure http://www.infoworld.com/event/soa/InfoWorld_SOA_Mark_Carges.ppt • [3] Zimmerman, O. et al. Elements of Service-Oriented Analysis and Design. 2004. http://www-128.ibm.com/developerworks/webservices/library/ws-soad1/ • [4] Brown, A. et al. Using Service-Oriented Architecture and Component-Based Development to Build Web Service Applications • [5] Booth, D. 2005. From Web Services to the Semantic Web: Global Data Reuse, http://www.w3.org/2005/Talks/0110-dbooth-semweb/slide14-0.html