SOEN6461: Software Design Methodologies Manel Abdellatif 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 updated independently. 3
Evolution of programming paradigms Ø Growing levels of abstraction Object-Oriented * Procedural Assembler Language * * services services services Components 01011 10100 11000 01011 4
SOA is an evolution of platforms - 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 Standardized Service Service contracts Abstraction Reusability Service Service Service Autonomy Statelessness Discoverability Service Loose Composability 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 e l 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 c l 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 • It 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 Representation 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 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 28 loan.bpel
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
What is a legacy system? • Definition 1 : « Large software systems that we don't know how to cope with but that are vital to our organization. Legacy software was written years ago using outdated techniques, yet it continues to do useful work. » Bennett (1995) • Definition 2 : « Aging application systems developed during the last three decades. They constitute a large number of existing systems. » Rahgozar&Oroumchian (2002) • Definition 3 : « Older IT systems—legacy systems such as mainframes and COBOL based software. » Geetha (2012) 36
Legacy-to-SOA Migration Context Legacy software systems are still Maintenance tasks become central essential in many businesses activities in many businesses 70% of today’s transactional operations are still managed by legacy systems Legacy systems cannot simply be removed / replaced as they execute complex business logic 37
Legacy Apps Are Critical But Challenging To Maintain • Legacy systems suffer from several shortcomings • High maintenace cost • Lack of flexibility • Lack of scalability with the evolution of the increasing business needs and technology in the market • The lack of sufficient support to the old technologies and infrastructure of legacy systems Legacy systems modernization remains essential to ease their maintenance and make them more flexible without loosing their business values 38
Motivations For Legacy-To-SOA Migration We asked 45 professionals about the main reasons of Legacy-To-SOA migration 90% 82% 80% 64% 64% 70% 60% 50% 42% 38% 38% 38% 40% 24% 30% 20% 10% 0% r e y y y e y y e t t c t c t t i i i n i i h n l l l l l i i i i i t a b a b b b b O n m i a a a a x e i l t r l r e i t e s e o a l n e p F R f v T i o r A a e r M e P t n I Reducing maintenance costs, improving the flexibility and interoperability of legacy systems are the main motivations to migrate legacy systems to SOA. 40
Recommend
More recommend