Application
integration with
SOA and ROA
PV207 – Business Process Management
Spring 2021 Jiří Kolář, Lukáš Smiga, Lubomír Hruban
Last lecture recap
● Processes
○ What is business
process?
Last lecture recap
● Processes
○ What is business
process?
○ What is BPM?
Is a Management discipline, focused on
systematic definition and execution
measurement of processes in organizations
● An effort to describe processes in
organisation measure results and manage
process changes towards higher efficiency
● "Evolution not Revolution"
Business Process Management
4
Last lecture recap
● Processes
○ What is business process?
○ What is BPM?
○ What is BPM adoption?
Last lecture recap
● Processes
○ What is business
process?
○ What is BPM?
○ What is BPM adoption?
○ Why BPM ?
○ Roles in BPM
○ Process life-cycle
○ Phases of process
based development
● BPMS
○ BPMS components
○ Architecture
○ Human Tasks
○ Business Rules
○ BAM
○ Existing BPMS
Lecture summary
● Generations of EAI
● Motivation for SOA
● Role BPM in IT
management
● Core BPM
architecture
● BPM – SOA
relationship
● Microservices
● Web Services
○ What are WS?
○ Artifacts WS
■ WSDL
■ SOAP
○ WS - standards
● WS in Java
● REST
3 meanings of the word "service"
● ….
3 meanings of the word "service"
● "Business" service
○ Google offers paid advertising to restaurants
○ Defined by contract / service offering
3 meanings of the word "service"
● "Business" service
○ Google offers paid advertising to restaurants
○ Defined by contract / service offering
● "Technical" service
○ Google provides a search for addresses of
restaurants in neighbourhood
○ Defined by a User Interface / Programming interface
3 meanings of the word "service"
● "Business" service
○ Google offers paid advertising to restaurants
○ Defined by contract / service offering
● "Technical" service
○ Google provides a search for addresses of
restaurants in neighbourhood
○ Defined by a User Interface / Programming interface
● Web Service
○ Google provides Web Service API for retrieving GPS
coordinates of particular address
○ Defined by a WSDL/REST methods definition
○ Request - response model
Business & IT alignment
Enterprise Application Integration
Why application integration?
● Allow different applications to share data
and processes states.
● In BPMS systems we use the Service
Task to directly invoke some functionality.
Services Examples (IT/Web)
● ….
Services Examples (IT/Web)
● createUserProfile
● setUserStatus
● searchFlights
● returnAccountBallance
● ….
EAI Generations – spaghetti
https://dzone.com/articles/building-integration-solutions-a-rethink
Different communication
protocols and principles:
● File exchange
● DB access
● MQ messaging
● CORBA
● Web Services
● Proprietary connectors
EAI Generations – SOA
https://dzone.com/articles/building-integration-solutions-a-rethink
Registry, metrics, governance,
security, quality...
EAI Generations – SOA and ESB
https://dzone.com/articles/building-integration-solutions-a-rethink
Business & IT alignment
SOA motivation
● Reduction of costs on development and
integration
● Efficient maintenance and integration
across various systems
● Component/service reusability
● Integration of Legacy applications
● Efficient management and monitoring
● Just-in-time management (real time
business)
SOA definition
Service-Oriented Architecture (SOA) is an
architectural style that supports service-orientation.
Service-orientation is a way of thinking in terms of
services and service-based development and the
outcomes of services.
-- The Open Group
● BPM stands between IT and business
○ BPM reflects business needs
○ BPM orchestrates IT services
○ SOA is about these services
How is BPM and SOA related?
SOA Architecture
composition layer
base layer
common
µs µs µs µs
µs
µs
Service exposure
Internal Services/Data-Sources External Services (e.g Partners)
µsµs
Caching
Routing
Data transformation
Event triggers
Content Enrichment
µs µs µs µs
Data Virtualization
API policies
Versioning
External Entities
(apps, partners, ...)
Integration layer
24
BPM and SOA Relationship
SOA in Practice, , Nicolai M. Josuttis
SOA – Maturity Model
Sonic Software Corporation, AmberPoint Inc., 2005
SOA Governance
● Service definition
● Service deployment life cycle
● Service versioning
● Service migration
● Service registries
● Service message model
● Service monitoring
● Service ownership
● Service testing
● Service security
IBM Software Group
SOA – Methodologies
● SOA methodologies
○ IBM SOAD (Proprietary)
○ IBM SOMA (Proprietary)
○ SOA RQ (Proprietary)
○ CBDI-SAE
○ SOAF
● SOMA
○ Service-oriented modeling and architecture
--Ali Arsanjani, Chief Architect,
SOA and Web services Center of Excellence,
IBM, Software Group
EAI Generations – MSA / ROA
MSA – Microservices Architecture
Breaking monolithic application structure into set
of discrete services (IT/web).
● https://martinfowler.com/articles/microservices.html
ROA – Resource oriented Architecture
(Inter-)networking application resources
accessible through RESTful webservices.
● https://www.oreilly.com/library/view/restful-web-services/97
80596529260/ch04.html
EAI Generations – MSA / ROA + SOA
https://dzone.com/articles/building-integration-solutions-a-rethink
Business & IT alignment
Monolith
Model – View – Controller
Pros of monolithic architecture
Pros
● natural evolution of system without restriction
● everything is accessible from one place
● does not push to automate infrastructure,
deployment and testing
Cons of monolithic architecture
Cons
● large codebase
● deploy takes too long
● one fix means deploy the whole system and test
everything
● hard to scale just single part of the system
● one failure usually equals downtime of the whole
system
● team has to understand everything
Microservices
Pros of microservice architecture
Pros
● deploy of single service is easy
● scaling a service is possible
● one team is responsible for single service
● service can be created or changed in short amount of
time
● slowdown or downtime of a service does not block the
whole system
● services can be aligned to support new business needs
in short amount of time
● APIs have to be defined
Cons of microservice architecture
Cons
● deployment and versioning is complex
● more automation and DevOps knowledge is needed
● Architecture, technology and performance overhead
● team does not have to know other parts of the whole
system, only their services and related APIs
● no one know how the whole system works if business
processes are not documented/automated
● tooling for API design and management are often
necessary
Questions?
Break 10mins
SOA in practice:
ESB – Enterprise Service Bus
● Message routing
● Protocol conversion
● Security, reliability
http://wso2.com/products/enterprise-service-bus/
3 meanings of word "service"
● "Business" service
○ Restaurant owner can register his restaurant to
Google database and be shown in Google Maps
○ Defined by contract / service offering
● "Technical" service
○ Users can search for their favourite restaurant in
Google Maps
○ User interface for "Human task"
● Web Service
○ Google provide Web Service API for retrieving
location of certain address
○ WSDL interface definition
○ Request - response model
Web Service
● Service for message transport and remote
procedure calls
● Messages are transported in XML format
● Transport protocol is HTTP/HTTPS (mostly)
● Web service define:
○ Operations (method) a and their parameters
○ Return types
WSDL
WSDL (Web Service Description Language)
○ Describes basic interface of the service
○ Methods
○ Parameters and their types
○ Return values
○ Specify where is WS available
■ Protocol (HTTP/HTTPS/SMTP)
■ Port (:1666)
■ machine (kore.muni.cz)
■ URL (http://kore.muni.cz:1666/My Service)
WSDL example
Operace jePrvocislo()Sluzba pocitajici
prvocisla
SOAP
● Protocol for transfer of XML messages
● Used for communication between service
and its consumer (client)
● Common use of HTTP/HTTPS as a
transport protocol
● Request – Response communication model
SOAP example
POST / HTTP/1.1
Content-Type: text/xml; charset=utf-8
Content-Length: 423
Connection: close
SOAPAction: ""
1987
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 468
Connection: close
true
WS - Standards
WS-Policy
WS-Security
family of
specifications
WS-Reliable
Messaging
UDDI
Quality
of Service
Messaging
and Encoding
Transport
Business
Processes
Other protocols
Other services
Business Process Execution Language, BPMN
Description
and Discovery
WSDL
SOAP, SOAP Attachments
XML, XML Infoset
Transports
WS-Coordination
WS-Transactions
Web Services in Java
WS in Java - Server
● JAX-WS
● JAXB
● WS-Metadata
● REST
WS in Java - Client
● JAX-WS
● JAXB
● WS-Metadata
● REST
RESTful Web Service
Representational State Transfer
○ Uniform resource interface (a set of
constraints)
○ Client-server separation
○ Stateless
○ Cacheable resources
○ Layered system
○ Code on demand (optional – JavaScript)
https://raygun.com/blog/soap-vs-rest-vs-json/
RESTful Web Service
RESTful Web Services characteristics:
● HTTP/HTTPS protocols:
○ Using URI for resource identification
○ Only POST, GET, PUT & DELETE (CRUD)verbs (or only others
from HTTP specification)
○ HTTP Status Codes as flow control
○ XML, JSON, YAML text formats as resources representations
● OpenAPI (swagger), RAML, API Blueprint,
WADL, HAL specification formats and tools
REST example
curl -i -X POST
"http://localhost:3000/api/personal/users/4c617f2b-2bad-498b-a9c6-4e9a8c303798/bookmarks"
-H "accept: */*" -H "Authorization: Bearer eyJhbGciOiJ...."
-H "Content-Type: application/json" -d
"{\"name\":......,\"public\":true,\"lastAccessedAt\":\"2020-03-06T20:14:28.101Z\",\"likeCount\":0}"
HTTP/1.1 201 Created
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, PUT, PATCH, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization, Location
Access-Control-Expose-Headers: Content-Type, Authorization, Location
Location:
http://localhost:3000/api/personal/users/4c617f2b-2bad-498b-a9c6-4e9a8c303798/bookmarks/5e62b18b59770b5
487a4c741
Content-Type: application/json; charset=utf-8
Content-Length: 79
ETag: W/"4f-26GcBfsvgN8d+T+zqql3Y5R+Rl8"
Date: Fri, 06 Mar 2020 20:24:44 GMT
Connection: keep-alive
{"response":"Bookmark created for userId 4c617f2b-2bad-498b-a9c6-4e9a8c303798"}
WS Standards
● JAX-WS (JSR-224)
● JAX-RS (JSR-311)
● Apache Axis, Axis2
● Apache CXF
● Jersey
● Spring Boot MSA framework
Other options
EIP as microservices
Project service
implementation tips
Mock your webservice
● Use existing public APIs:
○ SOAP https://documenter.getpostman.com/view/8854915/Szf26WHn?version=latest
○ REST https://documenter.getpostman.com/view/8854915/Szf7znEe
● Use mocking framework
○ I.e. Mockito for Java https://site.mockito.org
○ Online service i.e. https://www.mockable.io
Implement your web service
Spring Boot REST Example
@RestController
public class HelloBootController {
@GetMapping("/whereami")
public String whereami(@Value("${message.prefix}") String prefix) {
String resp = String.format("%s from %s", prefix,
System.getenv().getOrDefault("HOSTNAME", "localhost"));
return resp;
}
}
● There are many frameworks available for popular modern development
platforms….
● If you implement your own microservices (not-trivial with some db
backend), you can receive some bonus help for final evaluation :-)
Web Service tutorials
● Web Services
○ http://netbeans.org/kb/docs/websvc/jax-ws.html
● REST
○ http://netbeans.org/kb/docs/websvc/rest.html
● NetBeans Trail
○ http://netbeans.org/kb/trails/web.html
SOA - Information Resources
● SOA in Practice, Nicolai M. Josuttis, 2007,
ISBN-13: 978-0596529550
● IBM Systems Journal, Volume 47,
Number 3, 2008
FIN
Questions?
PV207 – Business Process Management
Spring 2019