motivation for soauosis.mif.vu.lt/~valdo/webs2015/webservices.l01.pdf · • introduction to soa...
TRANSCRIPT
![Page 1: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/1.jpg)
Valdas Rapševičius Vilnius University
Faculty of Mathematics and Informatics
2015.02.19
Web Services Lecture I
![Page 2: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/2.jpg)
Outline
• Introduction to SOA • SOA Concepts:
– Services – Loose Coupling – Infrastructure
• SOA Layers • MEPs • Various Service Aspects • SOA Governance • Reference:
– Nicolai M. Josuttis “SOA In Practice”
2015.02.19 Valdas Rapševičius. Web Services 2
![Page 3: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/3.jpg)
Motivation for SOA
● Distributed business processing ● Different Owners ● Heterogeneity ● Flexibility ● IT as the key business value enabler
2015.02.19 Valdas Rapševičius. Web Services 3
![Page 4: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/4.jpg)
SOA is NOT
● Concrete architecture – it is something that leads to a concrete architecture.
● Concrete solution – can’t buy SOA
● Information technology ● a Silver Bullet
2015.02.19 Valdas Rapševičius. Web Services 4
![Page 5: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/5.jpg)
SOA is ● a way of information management.
● A set of principles and methodologies for designing and developing software in the form of interoperable services (Wikipedia, 2013)
● A design pattern in which software/application components provide services to other software/application components via a protocol, typically over a network and in a loosely-coupled way. The principles of service-orientation are independent of any vendor, product or technology (Wikipedia, 2015)
● A method of design, deployment and management of applications and software infrastructure where:
– all software is organized into business services that are network accessible and executable;
– service interfaces are based on public standards for interoperability.
● SOA is a strategy that, although it might be driven by IT, always impacts the business as a whole
● SOA is a software architecture that starts with an interface definition and builds the entire application topology as a topology of interfaces, interface implementations and interface calls
● Interface-oriented architecture
● Might call it a style, paradigm, concept, perspective, philosophy, or representation.
● SOA = a strong and concrete legacy: Services / Best Practices / Governance
2015.02.19 Valdas Rapševičius. Web Services 5
![Page 6: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/6.jpg)
Important!
● Whether you introduce SOA is not what’s important.
● The important thing is that the IT solution you introduce is appropriate for your context and requirements of your business.
2015.02.19 Valdas Rapševičius. Web Services 6
![Page 7: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/7.jpg)
Large Systems
● SOA is a concept for large distributed systems. ● Large systems
– deal with legacies. – maintenance – heterogeneous – and their data have an incredibly long lifetime – complex – different owners – imperfect – redundancy – bottlenecks are suicide
2015.02.19 Valdas Rapševičius. Web Services 7
![Page 8: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/8.jpg)
Major Elements
● Services – self-contained business functionalities – can be part of one or more processes – can be implemented by any technology on any
platform
● Specific infrastructure (ESB) ● Governance (policies and processes)
2015.02.19 Valdas Rapševičius. Web Services 8
![Page 9: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/9.jpg)
Magic Bus
● Bus → EAI Bus → ESB
● Piece of infrastructure software
● High interoperability Instead of creating and maintaining individual communication
channels between different systems, each system only has to connect to the bus to be able to connect to all other systems.
2015.02.19 Valdas Rapševičius. Web Services 9
![Page 10: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/10.jpg)
SOA History
● 1994: Alexander Pasik, a former analyst at Gartner, coined the term SOA for a class on middleware that he was teaching. Pasik was working before XML or Web Services were invented, but the basic SOA principles have not changed
● 1996: Gartner analysts Roy W. Schulte and Yefim V. Natis published the first reports about SOA in 1996
● 2000: the real momentum for SOA was created by Web Services, which, initially driven by Microsoft, reached a broader public
2015.02.19 Valdas Rapševičius. Web Services 10
![Page 11: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/11.jpg)
SOA Manifesto
• The SOA Manifesto is a set of objectives and guiding principles that aim to provide a clear understanding and vision of SOA and service-orientation
• To fight "a seemingly endless proliferation of misinformation and confusion"
• Priorities: – Business value over technical strategy – Strategic goals over project-specific benefits – Intrinsic interoperability over custom integration – Shared services over specific-purpose implementations – Flexibility over optimization – Evolutionary refinement over pursuit of initial perfection
• http://www.soa-manifesto.org/ (2009+)
2015.02.19 Valdas Rapševičius. Web Services 11
![Page 12: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/12.jpg)
SOA Concepts
● Services ● Loose Coupling ● Infrastructure
2015.02.19 Valdas Rapševičius. Web Services 12
![Page 13: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/13.jpg)
Services
● Activities, Tasks ● Services Represent Business Functionality ● Definitions:
– The performance of work (a function) by one for another (dictionary)
– A self-contained, stateless business function that accepts one or more requests and returns one or more responses through a well-defined, standard interface (Wikipedia)
– A self-contained unit of functionality, such as retrieving an online bank statement (Wikipedia)
– A service represents a self-contained functionality that corresponds to a real-world business activity (SOA in Practice)
2015.02.19 Valdas Rapševičius. Web Services 13
![Page 14: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/14.jpg)
Interface
● A service is an interface for (multiple) messages that return information and/or change the state of an associated entity (backend)
● Properties – Signature – describes the input parameters, output
parameters, and possible exceptions. – Well defined – a consumer of a service must know the
complete behavior and semantics of the service. – contract – the complete specification of a service
between a specific provider and a specific consumer.
2015.02.19 Valdas Rapševičius. Web Services 14
![Page 15: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/15.jpg)
Interface Types
● Technically Driven Interface
● Business-Driven Interface
2015.02.19 Valdas Rapševičius. Web Services 15
![Page 16: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/16.jpg)
Service Attributes
● Self-Contained (independent, autonomous, autarkic) ● Coarse-Grained ● Visible/Discoverable ● Stateless ● Idempotent ● Reusable ● Composable ● Technical ● QoS- and SLA-Capable ● Pre- and Post-Conditions ● Vendor-Diverse ● Interoperable ● Implemented As Web Services?
2015.02.19 Valdas Rapševičius. Web Services 16
![Page 17: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/17.jpg)
Loose Coupling
● It is a principle ● Minimize dependencies ● Motivation
– Scalability – Flexibility – Fault tolerance
● Techtarget – System components depend on each other to the least
extent practicable. – Coupling refers to the degree of direct knowledge that
one element has of another.
2015.02.19 Valdas Rapševičius. Web Services 17
![Page 18: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/18.jpg)
Loose Coupling Examples
2015.02.19 Valdas Rapševičius. Web Services 18
![Page 19: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/19.jpg)
Forms of Loose Coupling
● Asynchronous Communication ● Heterogeneous Data Types ● Mediators (Broker or Name Server) ● Weak Type Checking ● Binding ● Platform Dependencies ● Interaction Patterns ● Compensation Transactions (not 2PC) ● Control of Process Logic ● Deployment ● Versioning
2015.02.19 Valdas Rapševičius. Web Services 19
![Page 20: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/20.jpg)
Enterprise Service Bus (ESB)
● Major piece of OSA infrastructure ● Tasks:
– Providing connectivity – Data transformation – (Intelligent) routing – Dealing with security – Dealing with reliability – Service management
● Business Activity Monitoring (BAM) ● Service Orchestrating, BPEL
– Monitoring and logging
2015.02.19 Valdas Rapševičius. Web Services 20
![Page 21: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/21.jpg)
Heterogeneous ESB
2015.02.19 Valdas Rapševičius. Web Services 21
![Page 22: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/22.jpg)
ESB: Point-to-Point vs Mediation
2015.02.19 Valdas Rapševičius. Web Services 22
![Page 23: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/23.jpg)
ESB: Interceptors
2015.02.19 Valdas Rapševičius. Web Services 23
![Page 24: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/24.jpg)
ESB: Protocol vs API
2015.02.19 Valdas Rapševičius. Web Services 24
![Page 25: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/25.jpg)
Service Layers
● Fundamental SOA – First stage of expansion – Basic services
● Federated (networked) SOA – Micro-flow – Orchestration or composition layer – Second stage of expansion – Basic and composed services
● Process-enabled SOA – Macro-flow – Third stage of expansion – Basic, composed and process
services
2015.02.19 Valdas Rapševičius. Web Services 25
![Page 26: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/26.jpg)
Basic Services
● Guidelines for achieving an optimum level of granularity for a lowest level service: – describe the service in terms of function, information,
goals, and rules, but not in terms of groups of other services
– single responsibility role – self-contained as possible. Ideally – autonomous.
● ACID principle ● Types:
– Basic Data Services – Basic Logic Services
2015.02.19 Valdas Rapševičius. Web Services 26
![Page 27: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/27.jpg)
Basic Data Services
● Read or write data from or to one backend system. ● Represent a fundamental business operation of the
backend. ● Examples:
– Create a new customer – Change the address of a customer – Return the address of a customer – Create a new contract/portfolio/account – Return a list of customers according to some search criteria – Return a customer’s balance – Send an ordered item to a customer – Return the number of customers – Return details on a customer’s payment practices
2015.02.19 Valdas Rapševičius. Web Services 27
![Page 28: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/28.jpg)
Basic Logic Services
● Basic logic services represent fundamental business rules
● Examples: – Define product catalogs and price lists – Define rules for changing customer contracts – Return whether a year is a leap year – Define allowed dates
2015.02.19 Valdas Rapševičius. Web Services 28
![Page 29: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/29.jpg)
Fundamental SOA
2015.02.19 Valdas Rapševičius. Web Services 29
![Page 30: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/30.jpg)
Composed Services
● Orchestrated services ● Orchestration - composing new services out of
existing services ● Micro flow:
– Short-term running – Stateless
● Transactions: – Two-phase commit (2PC) – Compensation
● Examples: – Updates redundant data on multiple backends – Money transfer from one backend to another
2015.02.19 Valdas Rapševičius. Web Services 30
![Page 31: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/31.jpg)
Federated SOA
2015.02.19 Valdas Rapševičius. Web Services 31
![Page 32: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/32.jpg)
Process Services
● Long-term workflows or business processes. ● Macro-flow:
– Long-running flow of activities (services) – Interruptible (by human intervention) – Stateful
● In the Backend ● In the Service
● Examples: – Shopping cart – Insurance policy purchase
2015.02.19 Valdas Rapševičius. Web Services 32
![Page 33: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/33.jpg)
Process-enabled SOA
2015.02.19 Valdas Rapševičius. Web Services 33
![Page 34: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/34.jpg)
BPM
2015.02.19 Valdas Rapševičius. Web Services 34
![Page 35: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/35.jpg)
Choreography
● Orchestration: – One central controller that
coordinates all the activities of the process
– Composite pattern, which means that the whole composition itself can be used as a service
● Choreography: – No process control – Not identified as a whole
● Used in – Business process chains – Event-driven architecture
(EDA)
2015.02.19 Valdas Rapševičius. Web Services 35
![Page 36: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/36.jpg)
Example (1)
2015.02.19 Valdas Rapševičius. Web Services 36
![Page 37: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/37.jpg)
Example (2)
2015.02.19 Valdas Rapševičius. Web Services 37
![Page 38: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/38.jpg)
Example (3)
2015.02.19 Valdas Rapševičius. Web Services 38
![Page 39: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/39.jpg)
Message Exchange Patterns
● Basic MEPs – Request/Response – One way
● Complicated MEPs – Request-Callback – Publish-Subscribe
2015.02.19 Valdas Rapševičius. Web Services 39
![Page 40: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/40.jpg)
Request-Response MEP
2015.02.19 Valdas Rapševičius. Web Services 40
![Page 41: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/41.jpg)
One-Way MEP
2015.02.19 Valdas Rapševičius. Web Services 41
![Page 42: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/42.jpg)
Request/Callback MEP
2015.02.19 Valdas Rapševičius. Web Services 42
![Page 43: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/43.jpg)
Reliability
2015.02.19 Valdas Rapševičius. Web Services 43
![Page 44: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/44.jpg)
Service Lifecycle
2015.02.19 Valdas Rapševičius. Web Services 44
![Page 45: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/45.jpg)
Versioning
● Domain Versioning – Trivial (new version = new service) – Non-Trivial (i.e. backwards compatibility)
● Configuration-Management-Driven Versioning – Pick required interface from VCS
● Data Types Versioning – Use different types for typed interfaces – Use the same types for typed interfaces – Use generic code so that type differences don’t matter
2015.02.19 Valdas Rapševičius. Web Services 45
![Page 46: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/46.jpg)
Performance
• ESB slows calls 5 to 10 times • Techniques:
– Call Constraints • Additional attributes (hints)
– Custom services • (next slide)
2015.02.19 Valdas Rapševičius. Web Services 46
![Page 47: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/47.jpg)
Customized Services
2015.02.19 Valdas Rapševičius. Web Services 47
![Page 48: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/48.jpg)
Security
• Characteristics: – Authentication (A) – Authorization (A) – Confidentiality – Integrity – Availability – Accounting (A) – Auditing
2015.02.19 Valdas Rapševičius. Web Services 48
• Security is often neglected: – Requires effort – Impossible to achieve absolute
security (except by disconnecting systems)
– Usual security mechanisms for the Internet (firewalls and special protocols such as SSL) are enough.
– Infrastructures provide enough security
– Not clear whether security is an issue for the infrastructure team or the business teams.
![Page 49: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/49.jpg)
SOA & Security
• Policy Decision Point – Policy Enforcement Point
• Transport protocols (https) • Message protocols
• DMZ
2015.02.19 Valdas Rapševičius. Web Services 49
![Page 50: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/50.jpg)
Stateless Services
2015.02.19 Valdas Rapševičius. Web Services 50
![Page 51: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/51.jpg)
Stateful Services
2015.02.19 Valdas Rapševičius. Web Services 51
![Page 52: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/52.jpg)
Idempotency
2015.02.19 Valdas Rapševičius. Web Services 52
![Page 53: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/53.jpg)
Governance
• Goals: – Making sure that people do what’s “right.” – Controlling the development and operation of software.
• Technical Tasks: – Documentation – Service management – Monitoring – Change and configuration management
• Non Technical Tasks: – Visions, objectives, business case, and funding model – Reference architecture(s) – Roles and responsibilities – Policies, standards, and formats – Processes and lifecycles
2015.02.19 Valdas Rapševičius. Web Services 53
![Page 54: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/54.jpg)
Policy Example
2015.02.19 Valdas Rapševičius. Web Services 54
![Page 55: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/55.jpg)
Establishing SOA
• SOA Steps (Josuttis): – Understand SOA – SOA Pilot – Second and third SOA projects – Become the General Strategy
• The “Four Ps” (Pulier and Taylor) – All people have to learn about the principles of SOA and their
associated technologies. – A pilot project helps to prove the concept. – A flexible multiphased project plan will help to integrate and validate
the SOA strategy in a day-to-day business. – Based on the first three Ps, you proceed by establishing SOA via
actual developments. • Architectural Roadmap (Krafzig, Banke, and Slama):
– Fundamental SOA (SOA with basic services only) – Networked SOA (SOA with composed/orchestrated services) – Process-enabled SOA (SOA with process services)
2015.02.19 Valdas Rapševičius. Web Services 55
![Page 56: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/56.jpg)
SOA Maturity
2015.02.19 Valdas Rapševičius. Web Services 56
![Page 57: Motivation for SOAuosis.mif.vu.lt/~valdo/webs2015/WebServices.L01.pdf · • Introduction to SOA • SOA Concepts: – Services – Loose Coupling – Infrastructure • SOA Layers](https://reader034.vdocuments.site/reader034/viewer/2022042316/5f0486287e708231d40e6573/html5/thumbnails/57.jpg)
Conclusions
• Is SOA something new? • You can not buy SOA • Distributed computing increase complexity • Recent trends:
– Distributed computing costs – Loose coupling costs – ROA – APIs vs SOA – RESTful APIs
2015.02.19 Valdas Rapševičius. Web Services 57