Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
EasySOA: A New Approach to SOA
1. SOA Governance
A new approach with EasySOA
Marc Dutoo, R&D leader – Open Wide
Thierry Delprat, CTO - Nuxeo
2. Overview
Overview
Why
What
Use Case
Nuxeo for EasySOA
Open Wide Technologies 2
3. CONCEPTS OF SOA
Information
systems A middleware architecture
structure
pushing forward a model of
Business
processes
application interactions
orchestrate Keywords : agility, loose coupling,
Operational Applications modularity, dependencies, service
requirements
level
require made of
Policies Services States
governed by manage
constrained by share exchange
compliant with
Contracts Service Messages
components
refer to executed on diffusés via
Services contain Operational Protocols
describe
registries systems
Schemas
Open Wide Technologies 3
4. 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 Exigences
Besoins d’‛exploitatio
Métier Contraintes n
SOA needs are not always well understood de
réalisation
► A lot of services have been forgotten and are
waiting to be woken up
► New needs : Cloud, Mobility Open Wide Technologies 4
5. 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
Developer
Completion
management
Business IT Staff
User Documentation Consistency
management management
Information Open Wide Technologies 5
System Architect
6. EASYSOA – MAIN FEATURES
Developer
Service development :
Automated service
“traditional” but also scripting
discovery (parsing)
Testing
Business
User IT Staff
Core
Registry
Cloud Platform
Information Open Wide Technologies 6
System
Architect
7. EASYSOA – TOOLS
Developer
• EasyWSDL • Apache CXF
• Qdox • SCA / OSGi
• SoapUI • FraSCAti Studio
• Node.js • Talend ESB
Business
User IT Staff
Core
• Nuxeo DM
• PostgreSQL
• Apache Tomcat
• Apache HTTP Client
• Nuxeo (IHM)
• FraSCAti
• Scarbo
Information Open Wide Technologies 7
System
Architect
8. 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
Open Wide Technologies 8
the enterprise and its partners
9. THE EASYSOA PLATFORM
A light, non-intrusive solution
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
Light SOA information, coming from automated extraction
as well as manual input by SOA actors, in a Document
Management (DM) solution and its indexed database,
Core
enabling easy high volume information management
through the Web.
Integration
An ecosystem of solutions and extensions
allowing for compatibility with a large range of
« traditional » SOA architectures to further
« Traditional » SOA
Middleware empower them : business process modeling
architecture
and execution, monitoring…
The enterprise’s SOA architecture, built on
« traditional » and well-known solutions is not
impacted by using EasySOA
Open Wide Technologies 9
10. 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
11. EASYSOA – ADOPTION STEPS & SERVICE OFFERING
Discovery Sanitization
Gather existing services Put availability and quality
through static (files and of registered services
source code) and / or Developer under control
dynamic analysis Development of newly
(messages and data
1 3 specified services
flows)
Business
2 4
User Operator
Core
Cartography
Service modeling, design Registry Governance
and documentation in a
collaborative platform Custom dashboard
generation within
continuous integration
Cloud Platform process
Impact analysis on
service signature change
Information Open Wide Technologies 11
System
Architect
12. 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 Open Wide Technologies
services. 12
13. Focusing on Pivotal call to APV, with address checking
Open Wide Technologies 13
14. Commercial SI DCV Uniserv SI DPS Partenaires
AXXX sociaux
checkA
UI ddress
Pivotal APV
We
b
CRM
? Web
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?
Open Wide Technologies 14
All without burdening teams with tasks or tools they won’t use?
15. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
WS OLA
DL
on
WS
BAM_ DL APV
Métrique Pré_
TdrWe
bServic Web
Cpte
business e
WS
précompte DL
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
Open Wide Technologies 15
16. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
UI Pivotal
We CRM
b SLA
BAM_
Métrique Pré_
Cpte
business
précompte
1. Specifications phase
► Business layer – “Why” : Business Service, Actor, Service Level
Agreement…
Open Wide Technologies 16
17. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
UI Pivotal
We CRM Cré_Pr
checkA
b SLA écpte
WS
ddress
DL WS
BAM_ DL
Métrique Pré_
TdrWe
bServic
Cpte
business e
WS
précompte DL
1. Specifications phase
► Information layer – “What”: services, by actor, full WSDL support (type
extraction, preview), REST (JAXRS)-capable…
Open Wide Technologies 17
18. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
WS OLA
DL
on
WS
BAM_ DL APV
Métrique Pré_
TdrWe
bServic Web
Cpte
business e
WS
précompte DL
1. Specifications phase
► Technical layer – “How”: technical constraints (« Platforms Platforms
»)
on Components to be developed, Operational Level
Agreements…
Components
Open Wide Technologies 18
19. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
OLA
on
BAM_
APV
Métrique Pré_
TdrWe
bServic Web
Cpte
business e
WS
précompte DL
1. Specifications phase
How to set specifications in
stone? => approval & locking
How to handle (unavoidable)
changes? => versioning &
diff comparison
Open Wide Technologies 19
20. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
WS OLA
DL
on
WS
BAM_ DL APV
Métrique Pré_
TdrWe
bServic Web
Cpte
business e
WS
précompte DL
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
Registry
Open Wide Technologies 20
21. 2. Development phase
Service implementations, mocks and their extracted documentation
Artifact & dependencies
Service consumptions & tests
Open Wide Technologies 21
22. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
WS OLA
DL
on
WS
BAM_ DL APV
Métrique Pré_
TdrWe
bServic Web
Cpte
business e
WS
précompte DL
2. Development phase
How to be sure that all that should
be developed has been? And
nothing more? => matching
dashboard and guides
APV
Web
Open Wide Technologies 22
23. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
WS OLA
DL
on
WS
BAM_ DL APV
Métrique Pré_ @ http://url
@ http://url
TdrWe
bServic Web
Cpte
business e
WS
précompte DL
@ http://url
3. Deployment phase: discovery of endpoints
by web browsing, using HTTP Proxy or bookmarklet
or directly from integrated runtimes (Talend ESB, FraSCAti / CXF)
Open Wide Technologies 23
24. Commercial SI DCV Uniserv SI DPS Partenaires
sociaux
OLA
UI Pivotal
We CRM Cré_Pr
checkA
Orchestrati
b SLA écpte
ddress
_DCV
WS OLA
DL
on
WS
BAM_ DL APV
Métrique Pré_ @ http://url
@ http://url
TdrWe
bServic Web
Cpte
business SAM Agent e
WS
précompte DL
@ http://url
3. Deployment phase SAM Agent
And how can Pivotal users be really sure it went up on the other end?
=> end to end business service level indicators monitoring
Business service level indicators
Bull OW2 Jasmine
Technical
Talend Probe
Monitoring
Adapter
Service console
Activity
Monitoring
Business Rules
DB
REST Registry
Open Wide Technologies 24
25. 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
26. 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
27. EasySOA Registry – EasySOA in Nuxeo Repository
Store SOA model inside Nuxeo Content Repository
Design specifications
Implementation info
Deployment architecture
Nuxeo
Content
Repository
Open Wide Technologies 27
28. EasySOA Registry – Nuxeo Repository
Store SOA model inside Nuxeo Content Repository
Manage configurations of the content tree
► tree snapshoting nuxeo-tree-snapshot
Multi-dimensional content tree
► proxies and publishing faceted search
► custom classifications nuxeo-platform-classification
Work on complex content
► quick preview
nuxeo-diff
► diff between versions of SOA definitions
Open Wide Technologies 28
29. Make SOA easy with Nuxeo
Improve Automation
Java Bean binding (5.7)
simplify data structures for easy mapping
playground
Open Wide Technologies 29
30. 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
33. 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
34. 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