Randall and Kurt will present how Guvnor is being reborn so that it can manage artifacts from a variety of domains, including web services, data services, business rules and processes, and metadata management. Guvnor not only will storing these artifacts, but it will fully manage their lifecycle, enable search and discovery, and provide insight into how, when and where they can be used. They'll also describe Guvnor's architecture and use of JCR, REST, GWT, Atom, and S-RAMP.
2. Governing Services,
Data, Rules, Processes
and more
Randall Hauch Kurt Stam
Project Lead, ModeShape Project Lead, Guvnor
@rhauch @modeshape @guvtalk
Sunday, May 1, 2011 2
3. Scenario 1
Build business processes
using existing services
Sunday, May 1, 2011 3
4. Scenario 1
Build business processes
using existing services
• What services are available? • What does each service use?
• What stage are they in? other services? databases? external sites?
dev? test? QA? prod? EOL? • What are the performance
• What services are planned? metrics of each service?
• What schemas are used? • What’s impact of changes?
common? standards? • Who can approve such changes?
• What do message look like? • What SLAs are in place? And for
• What’s already using each what services?
service? • Who’s the primary contact?
Sunday, May 1, 2011 4
5. Scenario 2
Integrate DBs acquired thru M&A
multiple ETL systems app-specific DBs in the cloud
multiple data centers regional databases remote office databases
Sunday, May 1, 2011 5
6. Scenario 2
Integrate DBs acquired thru M&A
• What databases are available? • How many entities deal with
• What stage are they in? customer? accounts? records?
dev? test? QA? prod? EOL? sales? purchases? products? etc.
• What schemas are deployed? • What data transformations are
On which DBMSes? performed?
• Where is each DB instance • What’s impact of changes?
located? • Who can approve such changes?
• What applications use each DB? • What SLAs are in place?
• What about data virtualization? • Who’s the primary contact?
Sunday, May 1, 2011 6
7. A few other scenarios
• Determine why we’re not meeting our SLAs
• Determine impact of a bug fix in a critical service
• Determine impact/exposure to security vulnerability
• Determine impact of changes new version of API
• What’s our process for rolling out a new deployment
Sunday, May 1, 2011 7
8. ? ? ?
?
? ? Lots of questions!
?
Finding answers to these questions
takes time and costs money
$ $ $
$ $
Sunday, May 1, 2011 8
10. Open source “production”
a lifecycle of project deliverables
build upload
download
deploy
development produced Maven
artifacts repository
(jars)
disk runtime
platform
project lead announce users
Sunday, May 1, 2011 10
11. More than just JAR files & manifests
• JARs and manifests are required for runtime deployment
• They don’t tell us everything we need
- interchange formats and structures (e.g., XSDs, JSON, XML)
- data structures (e.g., DDL files, XSDs)
- interface/API representation formats (e.g., WSDL)
- semantic models (e.g., BPMN, rules, models)
• Also need to track other things
- policies (e.g., SLA, security)
- stages (e.g., planned, in test, QA, ready for production, deployed, retired)
- acceptance, reviews and approvals
Sunday, May 1, 2011 11
12. Governance repository
track artifacts and relationships
processes rules
virtual
databases
business data
services services
databases
policies message
structures
Sunday, May 1, 2011 12
13. Governance repository
track artifacts and relationships throughout lifecycle
testing support
development acceptance
quality documentation
integration deployment
change security
Sunday, May 1, 2011 13
14. Governance repository provides
• Tracking artifact states
• Transitioning through lifecycle model
• Managing relationships
- between artifacts and components
- automatically deriving where possible
• Automation
• Notification
• Visibility and access
• Search and structured query
• Versioning
• Security and audit capabilities
Sunday, May 1, 2011 14
16. Drools Guvnor
• Very successful
• Governs rules, from development to deployment
• Starting to also govern processes
• Some extension capability
• Great starting point
• Lots of best practices and lessons
Sunday, May 1, 2011 16
18. Drools Guvnor
• Great starting point
• Lots of best practices and lessons
• But limited to rules and processes
- user interface, semantic concepts, mental model
• Not possible to use for SOA services or Data Services
Sunday, May 1, 2011 18
19. Current Guvnor
Drools
guvnor-web-app
guvnor-repository
JCR
Sunday, May 1, 2011 19
20. Guvnor roadmap
Drools
guvnor-web-app
guvnor-repository
JCR
Make more general-purpose
Sunday, May 1, 2011 20
21. Guvnor roadmap
Drools
guvnor-web-app
guvnor-repository
JCR (ModeShape)
Additional features when
using ModeShape
Sunday, May 1, 2011 21
22. Guvnor roadmap
Services Rules & Processes Data
guvnor-web-app
guvnor-repository
JCR (ModeShape)
Add services-specific Add rules-specific Add data-specific
functionality via extensions functionality via extensions functionality via extensions
Sunday, May 1, 2011 22
23. Guvnor roadmap
Services Drools Data
s-ramp webdav guvnor-web-app
guvnor-repository
JCR (ModeShape)
Support client access over
REST & WebDAV
Sunday, May 1, 2011 23
24. S-RAMP
SOA Repository Artifact Model & Protocol
• Currently in work by OASIS Technical Committee
- IBM, HP, SOA Software, TIBCO, Red Hat, WSO2 & others
• Common data model for SOA repositories
- artifacts, derived information, taxonomies, query model
• Interaction protocol using AtomPub
- CRUD, batch ops, query, notifications
The goal is interoperability for SOA tooling
Sunday, May 1, 2011 24
25. WebDAV
• Remotely access repository
- mount repository as network share
- or access via HTTP
• Navigate, create and delete folders
• Download, upload or delete files
• Use in scripts for automation
- particularly useful for deployments
Sunday, May 1, 2011 25
26. Why ModeShape
• Content Repository for Java (JCR) API
- JSR-170 (1.0)
- JSR-283 (2.0)
• Easily clusterable (JGroups FTW!)
• Plays nice with JBoss technologies
- uses Hibernate, JGroups, Infinispan, RESTEasy, PicketBox, etc.
- deploy as a service within JBoss AS
- monitor with Embedded Console and JON
• Rich query capabilities (beyond spec)
• JDBC driver for querying content
• Connectors for storing & accessing content
- JDBC (via JPA/Hibernate), Infinispan, SVN, file system, JDBC metadata
• Sequencers ...
Sunday, May 1, 2011 26
27. JCR stores files
• Files are content
- stored as binary data
LoanService.wsdl - metadata (MIME type, who, when,...)
• Optionally version some/all files
• Extract text for searching
but nothing else
Sunday, May 1, 2011 27
28. ModeShape understands files
LoanService.wsdl • Files are content
- stored as binary data
embedded XSD types - metadata (MIME type, who, when,...)
creditInformationMessage • Optionally version some/all files
- name (xsd:string)
- amount (xsd:integer) • Extract text for searching
approvalMessage but can also “sequence” these files:
- accept (xsd:string)
loanServicePortType • Determine MIME type
- input (creditInformationMessage) • Parse files
- output (approvalMessage)
• Extract structure
loadServiceBinding
- operation (“request”) • Store that back in the repository
with input, output, fault
- where it can be queried & accessed
...
Sunday, May 1, 2011 28
29. ModeShape understands files
• ZIP, JAR, EAR, and WAR files
• DDL files • Plans for more
• Java source and class files - WSDL documents
• Teiid Relational models and VDBs - XSD documents
• Text files (CSV and delimited) - BPEL processes
• JCR Compact Node Definition - Drools rules
• XML documents
Sunday, May 1, 2011 29
30. Guvnor roadmap
Services Drools Data
s-ramp webdav guvnor-web-app
guvnor-repository
JCR (ModeShape)
ModeShape sequencers for domain-specific file types
Sunday, May 1, 2011 30
31. Summary
• Track the artifacts we produce, throughout their lifecycle
• Provide access to the governed artifacts (via REST/WebDAV)
• Automate workflow
• Notify people when actions are required
• Provide visibility (navigation & search & query)
Sunday, May 1, 2011 31
32. Status
• Collaborating with multiple JBoss.org projects
- most work under Guvnor
- communities will eventually own their own extensions
• Working with the Drools community
- enabling use of ModeShape in place of Jackrabbit
- extract the general parts of Guvnor
- keep Guvnor working for Drools
• S-RAMP
- Working with OASIS S-RAMP TC
- Working on an implementation
• WebDAV client and server libraries
Sunday, May 1, 2011 32