easysoa: a new approach to soa
DESCRIPTION
TRANSCRIPT
SOA Governance A new approach with EasySOA
Marc Dutoo, R&D leader – Open Wide Thierry Delprat, CTO - Nuxeo
Overview
Overview Why
What
Use Case
Nuxeo for EasySOA
Open Wide Technologies 2
A middleware architecture pushing forward a model of
application interactions Keywords : agility, loose coupling, modularity, dependencies, service
level
CONCEPTS OF SOA
Open Wide Technologies 3
Information systems
Business processes
Applications
Policies
Contracts
Operational requirements
Schemas
Messages
States Services
Service components
Operational systems
Protocols
made of
share
structure
manage governed by
require
compliant with
diffusés via
orchestrate
executed on
constrained by
contain describe
exchange
Services registries
refer to
Contraintes de
réalisation
SOA – STATE OF THE ART
Information Systems, getting open and interconnected… Growing awareness in IT departments
Democratization of message and data exchanges
Acknowledgement of architectural best practices
…however… SOA projects are complex
► Different actors with various concerns & profiles (Business vs Technical) ► Technology heterogeneity (risk management) ► Different partners (internal vs external services) ► Not much knowledge sharing on how things are done
SOA needs are not always well understood ► A lot of services have been forgotten and are
waiting to be woken up ► New needs : Cloud, Mobility
Open Wide Technologies 4
Besoins Métier
Exigences d’‛exploitatio
n
EASYSOA
An SOA governance administration solution A critical tool for Information System Architects…
…to keep business process consistency in check…
…all while maintaining service lifecycle management…
… from specification to development and up to service operation
Open Wide Technologies 5 Information System Architect
Business User
Developer
IT Staff Documentation management
Completion management
Consistency management
EASYSOA – MAIN FEATURES
Open Wide Technologies 6
Business User
Developer
IT Staff
Information System
Architect
Cloud Platform
Registry
Core�
Service development : “traditional” but also scripting Testing
Automated service discovery (parsing)
EASYSOA – TOOLS
Open Wide Technologies 7
Business User
Developer
IT Staff
Information System
Architect
• Apache Tomcat • Apache HTTP Client • Nuxeo (IHM) • FraSCAti • Scarbo
• Nuxeo DM • PostgreSQL
Core�
• Apache CXF • SCA / OSGi • FraSCAti Studio • Talend ESB
• EasyWSDL • Qdox • SoapUI • Node.js
EASYSOA – GOALS
To ease up SOA governance… Add a lighter, non-intrusive layer over « traditional » SOA in order to provide governance overview
Keep changes to a minimum on existing services and applications while maximizing extracted value (documentation, practices, uses)
Service quality analysis for SOA sanitization
Agile approach through extracted as well as collaborative documentation and prototyping
Fosters emergence and evaluation of best and most urgent needs to be implemented next using existing « traditional » SOA
Version management and impact analysis of service changes (internal or external) on business processes
…to secure and optimize exchanges between services of the enterprise and its partners Open Wide Technologies 8
Light
Core
« Traditional » SOA Middleware architecture
Integration
A light, non-intrusive solution
THE EASYSOA PLATFORM
Open Wide Technologies 9
An additional, non-intrusive layer over the enterprise’s SOA allowing for Web tools that ease up gathering and analysis of existing services, as well as developing simple new services using scripting, RAD or Point-and-Click.
A consistent multimedia registry aggregating all SOA information, coming from automated extraction as well as manual input by SOA actors, in a Document Management (DM) solution and its indexed database, enabling easy high volume information management through the Web.
An ecosystem of solutions and extensions allowing for compatibility with a large range of « traditional » SOA architectures to further empower them : business process modeling and execution, monitoring…
The enterprise’s SOA architecture, built on « traditional » and well-known solutions is not impacted by using EasySOA
EASYSOA – PARTNERS
Partner list Open Wide – Global architecture, BPM (Eclipse JWT / OW2 Scarbo), EasySOA community leader
Nuxeo – Collaborative document management platform (GED / ECM) for SOA models, documents and deliverables
Talend – SOA and data connectors (ETL & ESB) with graphical configuration
Bull – SOA Administration & Monitoring (OW2 Jasmine)
EasiFab – SOA Model (Eclipse SOA), Business monitoring (Galaxy)
INRIA Labs – Light service engine (OW2 FraSCAti)
Open Wide Technologies 10
EASYSOA – ADOPTION STEPS & SERVICE OFFERING
Open Wide Technologies 11
Business User
Developer
Operator
Information System
Architect
Cloud Platform
Registry
Core�
1
Discovery Gather existing services through static (files and source code) and / or dynamic analysis (messages and data flows)
Cartography Service modeling, design and documentation in a collaborative platform
2
Sanitization Put availability and quality of registered services under control
Development of newly specified services 3
Governance Custom dashboard generation within continuous integration process
Impact analysis on service signature change
4
USE CASE
ANCV (National Agency for Holiday Vouchers) Two different businesses, done by separate departments, each with its own Information System (IS)
► Selling holiday vouchers, by the DCV entity ► Funding holidays for underpriviledged people, by the DPS entity
DPS has now decided for its IS to go beyond spreadsheets ► This use case is the real story of DPS IT being built from the ground
up, rewritten with EasySOA Registry, Talend ESB and OW2 Jasmine.
Existing applications ► SI DCV – Pivotal : management of ANCV social partners. Customized
MS .NET web CRM. ► Uniserv : online address checking service
New applications : SI DPS – APV ► Management of « holiday projects ». subcontracted Java web
business application. Has to connect with Pivotal, using services.
Open Wide Technologies 12
Focusing on Pivotal call to APV, with address checking Open Wide Technologies 13
UI Web
Pivotal CRM
Commercial AXXX
SI DCV SI DPS Partenaires sociaux
APV Web
Uniserv
checkAddress
? How to provide checked information from Pivotal to APV ?
Simple: some service plumbing between both and Uniserv!
But how to separate ITs share (in)formal specifications? Design them together without over-meeting? With each having its own point of view?
How to set them in stone, and still handle (unavoidable) changes?
How to best share knowledge about what is being developed, so one team can easily use and test what the other did?
How to be sure that everything that should be developed and provided has been? And nothing more?
And how can Pivotal users be really sure it went up on the other end?
All without burdening teams with tasks or tools they won’t use? Open Wide Technologies 14
1. Specifications phase How can separate ITs share specifications? => Nuxeo collaborative platform!
► SOA concepts as well as office documents and images
► Tree navigation, search ► Document comments, web preview &
publishing ► Social features: like, follow, wall
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V WSDL WS
DL
WSDL
Open Wide Technologies 15
1. Specifications phase ► Business layer – “Why” : Business Service, Actor, Service Level Agreement…
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
SLA
BAM_ Pré_ Cpte
Métrique business précompte
Open Wide Technologies 16
1. Specifications phase ► Information layer – “What”: services, by actor, full WSDL support (type
extraction, preview), REST (JAXRS)-capable…
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
TdrWebServic
e
SLA
BAM_ Pré_ Cpte
Métrique business précompte
WSDL WS
DL
WSDL
Open Wide Technologies 17
1. Specifications phase ► Technical layer – “How”: technical constraints (« Platforms »)
on Components to be developed, Operational Level Agreements…
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V WSDL WS
DL
WSDL
Platforms
Components
Open Wide Technologies 18
1. Specifications phase How to set specifications in stone? => approval & locking
How to handle (unavoidable) changes? => versioning & diff comparison
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V
WSDL
Open Wide Technologies 19
2. Development phase How to best share knowledge about what’s being developed, so one team can easily know, use and test earlier what the other team did? => source code discovery, automatically at build time
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V WSDL WS
DL
Registry
WSDL
Open Wide Technologies 20
2. Development phase Service implementations, mocks and their extracted documentation
Service consumptions & tests
Artifact & dependencies
Open Wide Technologies 21
2. Development phase How to be sure that all that should be developed has been? And nothing more? => matching dashboard and guides
APV Web
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V WSDL WS
DL
WSDL
Open Wide Technologies 22
3. Deployment phase: discovery of endpoints by web browsing, using HTTP Proxy or bookmarklet
or directly from integrated runtimes (Talend ESB, FraSCAti / CXF)
@ http://url @ http://url
@ http://url
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V WSDL WS
DL
WSDL
Open Wide Technologies 23
3. Deployment phase And how can Pivotal users be really sure it went up on the other end? => end to end business service level indicators monitoring
Talend Service Activity
MonitoringDB
SAM Agent
SAM Agent
Technical Monitoring console
Business service level indicators
Probe Adapter
REST Business Rules
Bull OW2 Jasmine
@ http://url @ http://url
@ http://url
APV Web
UI Web
Pivotal CRM
Commercial SI DCV SI DPS Partenaires sociaux
Uniserv
checkAddress
Cré_Précpte
OLA
TdrWebServic
e
SLA OLA
BAM_ Pré_ Cpte
Métrique business précompte
Orc
hest
rati
on
_DC
V WSDL WS
DL
WSDL
Registry Open Wide Technologies 24
All without burdening teams with tools they won’t use? => integrate EasySOA within their own, a few ideas:
Business design tool, such as Eclipse JWT up to full BPM solution, such as OW2 Scarbo 2
Rapid online service prototyping in the Cloud, such as FraSCAti Studio Open Wide Technologies 25
EasySOA & Nuxeo
Building EasySOA registry was an interesting journey
new challenging use cases for Nuxeo Platform ► new services and features
study “state of the art” SOA architectures ► improve how Nuxeo Platform exposes services
Open Wide Technologies 26
EasySOA Registry – EasySOA in Nuxeo Repository
Store SOA model inside Nuxeo Content Repository
Design specifications
Implementation info
Deployment architecture
Open Wide Technologies 27
Nuxeo Content
Repository
EasySOA Registry – Nuxeo Repository
Store SOA model inside Nuxeo Content Repository
Manage configurations of the content tree ► tree snapshoting
Multi-dimensional content tree ► proxies and publishing faceted search ► custom classifications
Work on complex content ► quick preview ► diff between versions of SOA definitions
Open Wide Technologies 28
nuxeo-tree-snapshot
nuxeo-platform-classification
nuxeo-diff
Make SOA easy with Nuxeo
Improve Automation
Java Bean binding (5.7)
simplify data structures for easy mapping
playground
Open Wide Technologies 29
Make SOA easy with Nuxeo
Connect Nuxeo to ESB
expose automation operations to the service bus ► expose high level / business custom services
bridge Nuxeo event bus with the global service bus
Open Wide Technologies 30
31
Contacts
Open Wide Technologies
http://www.easysoa.org/
https://github.com/easysoa
Thank you !
[email protected] http://technologies.openwide.fr
BONUS
Open Wide Technologies 32
Even more Light tools
EasySOA Proxy (“HTTP Mining”) : listen to service exchanges to
► discover and register them ► record and replay them ► play alternative exchanges suggested
through correlation ► generate simulations or assertions ► trigger other services
SOAPUI integration (service testing) : ► generate SOAPUI configurations filled
with all EasySOA known WSDLs and endpoints (“no more URL copy / paste”)
Open Wide Technologies 33
Even more - UIs
Indicators on the SOA model ► Amount of services without documentation, ► Without any implementation ► Or consumption ► Or endpoint ► Amount of unkown (« placeholder ») implementations
Service Browsing UI ► Service doc UI ► Tag them and browse by tags
Open Wide Technologies 34