SOEN6461: Software Design Methodologies Manel Abdellatif Introduction Service-Oriented Architecture And Legacy-To-SOA Migration 1
What is a Service-oriented architecture ? Each role appropriates SOA differently: A set of services that the company wants to expose to their customers and partners, or other parts of the organization Director An architectural style based on a vendor, a consumer and a service description. It supports the properties of Business Analyst modularity, encapsulation, decoupling, reuse and composability Architects A programming model with its standards, paradigms, tools and associated technologies Developers Middleware offering functionality in terms of integration, orchestration, monitoring and service management Integrators 2
Service-oriented architecture q A service-oriented architecture (SOA) is a style of software design where services are provided through a communication protocol over a network . q Principles of service-oriented architecture –independent of vendors –products –Technologies. q A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently. 3
Evolution of programming paradigms Object-Oriented * Procedural Assembler Language * * services services Components services 01011 10100 11000 01011 Ø Growing levels of abstraction 4
SOA is an evolution of platforms - It preserves the successful characteristics of traditional architectures while adding some new principles - Shares the following characteristics of an object v Modularity (set of features that make sense) - Shares the following characteristics of a component v Black box (interface / implementation separation) v Location independent v Neutrality to transport protocols - Corresponds to a functional scope that we wish to expose to consumers 5
Service properties • Standarized contracts services de-fine their capabilities using a standard, implementation-neutral language. • Service Abstraction • Service Reusability • Service Autonomy • Service Statelessness • Service Discoverability • Service Composability • Loose Coupling 6
Example of tight coupling: Loan Management Entity LoanAgent LoanApproval Account Loan SMSGateway calculateRisk checkCredit createLoan sendConfirmation Ø LoanAgent is related to LoanApproval and Loan Ø LoanApproval is related to Account Ø Loan is related to SMSGateway 7
Example of loose coupling: Loan Management Services LoanProcess CheckAccount Notify Calculate CreateLoan Balance ViaSMS LoanRisk Ø What is LoanProcess ? Ø A business process ! It orchestrates the services => low coupling 8
Types of coupling in SOA Different types of ? coupling in a SOA It depends on the * * architectural level ? ? : x E 9
Types of coupling in SOA Different types of g n coupling in a SOA i l p u It depends on the * o * c architectural level h g i h ) A C S g g ( n n i l l i l e p l l e e p v u v v u e o e e o l c l l c l a l w l a a e c o c c s i L g i o i n g o o h o l L l c t e a t r o : x E 10
SOA Standards
SOA vs Web Services Be careful not to confuse SOA with Web Service! • SOA is a set of concepts • Web Services are about the technology • Can we implement a SOA without Web Services? 12
SOAP Web Services • SOAP stands for Simple Object Access Protocol • SOAP is an application communication protocol • SOAP is a format for sending and receiving messages • SOAP is platform independent • SOAP is based on XML • SOAP is a W3C recommendation 13
SOAP Web Services SOAP WSDL UDDI BPEL W3C W3C Microsoft, IBM, HP Oasis Simple Object Web Services Universal Description Business Process Access Protocol Description Language Discovery and Integration Execution Language Transport Contract Specification Describes the Spec for protocol business process Repository/Registry Main components of Web Services 14
SOAP Web Services 15
Restful Services • Representational State Transfer, or REST, was introduced and defined in 2000 by the doctoral dissertation of Roy Fielding, one of the principal authors of the HTTP specification versions 1.0 and 1.1. • The most important concept in REST is resources, which are identified by global IDs— typically using URIs. • Client applications use HTTP methods (GET/ POST/ PUT/ DELETE) to manipulate the resource or collection of resources. 16
Restful Web Services HTTP Method Resource Location Resource Representatio n 17
Restful vs SOAP 18
SOA layers 19
e-store : layer AccountController CartController Default SignOut SignIn Search Category Items Item Shopping Help Error Details Cart Presentation Layer Check Order Order Order My Edit Create out Billing Shipping Process Account Account Account Account Profile Product Item Inventory Cart OrderInsert OrderRead Business Logic Layer IAccount IProfile IProduct IItem IInventory IOrder Data Access Layer - 20 -
e-store : Domains Default SignOut SignIn Search Category Items Item Shopping Help Error Details Cart Presentation Layer Check Order Order Order My Edit Create out Billing Shipping Process Account Account Account Account Profile Product Item Inventory Cart OrderInsert OrderRead Business Logic Layer 1.0 1.0 10.0 5.1 1.0 1.1 2.0 11.2 5.2 6.0 1.2 3.5 11.5 5.3 7.0 IAccount IProfile IProduct IItem IInventory IOrder Data Access Layer Customer Catalog Inventory Shopping Billing - 21 -
e-store : Domains Presentation Layer Business Logic Layer Data Access Layer Customer Catalog Inventory Shopping Billing - 22 -
e-store : Services Presentation Layer Business Logic Layer Manage Show Make Service Shop Bill Layer Customer Catalog Inventory Data Access Layer - 23 -
Business Process Management (BPM) Activities : • Goal: To give the Company the means -correspond to parts of the business to manage its business processes in process that an automated way (modeling, -do not include a decision and are simulation, execution and audit) associated with roles • Optimization, adaptation to real-time -Are performed by systems or humans needs. • A process is composed of sub- • KPIs for Key Performance processes, business rules and activities Indicators capture process • An under process has its own purpose, performance inputs and outputs • A process is the result of a service orchestration • The process itself is accessible as a service 24
jBPM -Business Process Management (BPM) Suite 25
Business Process Execution Language • In SOA, Programmers use BPEL to define how a business process that involves web services will be executed in XML format. • BPEL messages are used to • invoke remote services, • orchestrate process execution • manage events and exceptions. • BPEL is often associated with Business Process Management Notation • Developers transform the visualizations to BPEL for execution. • Transaction management • Fault management 26
BPEL Example PartnerLink flow PartnerLink PartnerLink 27 loan.bpel
BPEL Example <PartnerLink> references to the services participating in the process flow <invoke> a credit rating service synchronously <faultHandlers> catch and manage PartnerLink exceptions when customer has a bad credit history <flow> initiates asynchronous loan processors in parallel of execution flow PartnerLink PartnerLink <receive> asynchronous callbacks from longrunning loan processors <switch> to the lowest loan offer 28 loan.bpel
Enterprise Service Bus 29
Enterprise Service Bus Avoids the mess of Traditional point-to-point integration!! 30
Enterprise Service Bus 31
Enterprise Service Bus • An ESB is the entry point to a service : Indirect invocation of the service via the bus. • An infrastructure that optimizes the communication between consumers and service providers. • An ESB can handle: • Routing • Data transformation • Transactions • Messaging • Protocol bindings • Security, etc. • The goal of an ESB is to ensure a simple and standardized way of communication between different applications 32
SOA Benefits • Increased Intrinsic Interoperability • Increased Business and Technology Alignment • Increased ROI • Reduce the time of development cycle • Reduce the complexity of the system • Increased Organizational Agility • Reduced IT Burden • Increase maintainability 33
SOA Challenges • Difficult to test • Security vulnerabilities • Increased overhead • Risk of proliferation of messages (between services) • Not suitable for real-time systems 34
Migration of legacy systems to SOA 35
Legacy-to-SOA Migration Context • Today’s businesses must be able to flexibly and quickly adapt to market needs • Software systems maintenance efforts must be reduced • IT systems must continue to evolve Today's best solutions are tomorrow's legacy systems 36
Recommend
More recommend