motivation for soauosis.mif.vu.lt › ~valdo › webs2014 › webservices.l01.pdf · software in...

56
Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics 2014.02.28 Web Services Lecture I 2014.02.28 Valdas Rapševičius. Java Technologies 1

Upload: others

Post on 09-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Valdas Rapševičius Vilnius University

Faculty of Mathematics and Informatics

2014.02.28

Web Services Lecture I

2014.02.28 Valdas Rapševičius. Java Technologies 1

Page 2: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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”

2014.02.28 Valdas Rapševičius. Java Technologies 2

Page 3: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Motivation for SOA

● Distributed business processing ● Different Owners ● Heterogeneity ● Flexibility ● IT as the key business value enabler

Page 4: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 5: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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.02.21) ● 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.

Page 6: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 7: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 8: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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) ● Policies and processes

Page 9: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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.

Page 10: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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.

Page 11: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

SOA Concepts

● Services ● Loose Coupling ● Infrastructure

Page 12: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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 service represents a self-contained functionality that corresponds to a real-world business activity (SOA in Practice)

Page 13: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Interface

● A service is an interface for (multiple) messages that return information and/or change the state of an associated entity (backend)

● Interface 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.

Page 14: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Interface Types

● Technically Driven Interface

● Business-Driven Interface

Page 15: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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?

Page 16: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Loose Coupling

● It is a principle ● Minimize dependencies ● Motivation

– Scalability – Flexibility – Fault tolerance

Page 17: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Loose Coupling Examples

Page 18: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 19: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 20: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Heterogeneous ESB

Page 21: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

ESB: Point-to-Point vs Mediation

Page 22: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

ESB: Interceptors

Page 23: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

ESB: Protocol vs API

Page 24: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 25: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 26: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 27: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 28: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Fundamental SOA

Page 29: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 30: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Federated SOA

Page 31: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 32: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Process-enabled SOA

Page 33: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

BPM

Page 34: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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)

Page 35: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Example (1)

Page 36: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Example (2)

Page 37: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Example (3)

Page 38: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Message Exchange Patterns

● Basic MEPs – Request/Response – One way

● Complicated MEPs – Request-Callback – Publish-Subscribe

Page 39: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Request-Response MEP

Page 40: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

One-Way MEP

Page 41: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Request/Callback MEP

Page 42: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Reliability

Page 43: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Service Lifecycle

Page 44: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

Page 45: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Performance

• ESB slows calls 5 to 10 times • Techniques:

– Call Constraints – Custom services

Page 46: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Customized Services

2014.02.28 Valdas Rapševičius. Java Technologies 46

Page 47: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Security

• Characteristics: – Authentication (A) – Authorization (A) – Confidentiality – Integrity – Availability – Accounting (A) – Auditing

2014.02.28 Valdas Rapševičius. Java Technologies 47

• 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 48: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

SOA & Security

• Policy Decision Point – Policy Enforcement Point

• Transport protocols (https) • Message protocols

• DMZ

2014.02.28 Valdas Rapševičius. Java Technologies 48

Page 49: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Stateless Services

2014.02.28 Valdas Rapševičius. Java Technologies 49

Page 50: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Stateful Services

2014.02.28 Valdas Rapševičius. Java Technologies 50

Page 51: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Idempotency

2014.02.28 Valdas Rapševičius. Java Technologies 51

Page 52: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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

2014.02.28 Valdas Rapševičius. Java Technologies 52

Page 53: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Policy Example

2014.02.28 Valdas Rapševičius. Java Technologies 53

Page 54: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

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)

2014.02.28 Valdas Rapševičius. Java Technologies 54

Page 55: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

SOA Maturity

2014.02.28 Valdas Rapševičius. Java Technologies 55

Page 56: Motivation for SOAuosis.mif.vu.lt › ~valdo › webs2014 › WebServices.L01.pdf · software in the form of interoperable services. (Wikipedia, 2013.02.21) A method of design, deployment

Conclusions

• Is SOA something new? • You can not buy SOA • Distributed computing increase complexity • Recent trends:

– Distributed computing costs – Loose coupling costs – ROA – RESTful APIs

2014.02.28 Valdas Rapševičius. Java Technologies 56