This document provides an agenda and overview for a presentation on Fuse Service Works 6 S-RAMP and Design Time Governance. The 2 hour presentation will cover: what DTGov/S-RAMP are; why they should be used; how to use them; demonstrations of S-RAMP and DTGov; and labs for attendees to run S-RAMP and DTGov. The document includes sections on what S-RAMP and DTGov are, scenarios for their use, interaction examples, and a deployment workflow example.
DevEX - reference for building teams, processes, and platforms
Fuse Service Works 6 - S-RAMP and Design Time Governance Overview
1. Fuse Service Works 6 S-RAMP and
Design Time Governance
Kenny Peeples
Technical Marketing Manager
December 10th, 2013
2. Agenda (2 Hours)
●
●
Why use DTGov/S-RAMP
●
How to use DTGov/S-RAMP
●
Demonstration of S-RAMP
●
Demonstration of DTGov
●
Attendees run S-RAMP Lab
●
Attendees run DTGov Lab
●
Summary and References
●
2
What is DTGov/S-RAMP
Q&A
RED HAT Confidential
3. Fuse Service Works 6 – S-RAMP and Design Time Governance
What is DTGov/S-RAMP
4. What is SOA Governance?
●
●
●
Exercising control over services in a Service
Oriented Architecture.
SOA Governance helps with the adoption and
implementation and sustainability of SOA.
SOA Governance must cover people, processes
and technologies for the entire SOA Lifecycle.
http://www.opengroup.org/soa/source-book/gov/gov.htm
4
RED HAT Confidential
5. JBoss Fuse Service Works Components
https://www.jboss.org/switchyard
5
RED HAT Confidential
http://www.jboss.org/overlord
6. What are the Governance
Components?
6
RED HAT Confidential
7. What is S-RAMP?
S-RAMP - "The SOA Repository Artifact Model and
Protocol (S-RAMP) TC defines a common data
model for SOA repositories as well as an interaction
protocol to facilitate the use of common tooling and
sharing of data."
● Artifact Repository Specification
Data Model
Protocol
● Standard Operations Supported
Add, Delete, Update
Query
●
https://vimeo.com/73473334 - S-RAMP 101
7
RED HAT Confidential
8. What is Design Time Governance?
It provides the capability to manage the lifecycle of services
from inception through deployment through subsequent
change management.
● SOA Architecture Design (Workflow)
Best practice BPMN2 based governance workflows
Repository events kick off governance workflows
Out-of-the-box integration with jBPM-6
● Workflows can be customized or new ones can be created
● DTGov web console
● Search for Services (re-use)
● Artifact Relationship Visualization
● Notifications on Service Change
●
8
RED HAT Confidential
9. Design Time Governance Supporting Services
●
●
Meta-Data Update Service
●
9
Deployment Service
Notification Service
RED HAT Confidential
10. Fuse Service Works 6 – S-RAMP and Design Time Governance
Why use DTGov/S-RAMP
11. S-RAMP Scenarios
●
●
●
11
It can be used, as an example by an insurance company, implementing SOA
Governance to store, extract, and derive content (artifacts) and Metadata
used by the company.
It also classifies the artifacts and provides rich query support.
Why should S-RAMP be used instead of some other content repository
(JCR, SharePoint, Drupal, RDBMS, etc)? The answer to that is in the "SOAaware" idea. Because S-RAMP defines some common SOA models, and
understands those models, it can provide some very useful functionality
specific to the SOA domain.
Once you have stored your SOA artifacts (WSDLs, Schemas, etc) in an SRAMP repository, you can ask it questions like this:
Which WSDLs utilize (import) the "xyz.xsd" XML schema?
Which XML Schemas import or include the "xyz.xsd" XML schema?
Which of my Service Instances are in production?
Which Service Instances are governed by SLA "abc"?
Which Service Instances are available in North America?
RED HAT Confidential
12. Design Time Governance Scenarios
●
●
●
●
12
Typical Use-Case
A typical use-case for Design Time Governance is how to progress a new service from the development phase
through to production. One way that can be done is by deploying the service into the S-RAMP repository,
and then triggering a Service Lifecycle workflow that will guide the service through the business-specific
phases needed to get it into production. This might mean deploying the service into a staging environment,
gathering approvals from stakeholders, performing automatic impact analysis, and ultimately deploying into
production.
Insurance Company Use-Case
Another use revolves around a insurance company. A large insurance company may implement Design-time
Governance to manage their services. They can search the shared assets and artifacts for existing services in
the repository and use them in further developing composite services. They can create a new insurance policy
definition, or update an existing one, and test and deploy them. In addition to services, they can also share
schema. Say, if there is a need for accessing a new insurance policy quote, a developer can look up the
schema and service definition and write a new service to access the information.
An insurance company can also share Policy definitions across the enterprise. They can impose conditions on
a policy based on access to the service. Some customers may only be permitted to access a service during
certain time periods, and their usage may be dictated by their service level (for example, how many service
calls they can make per day).
In addition to these, with Design-Time Governance, an insurance company can identify and keep track of the
changes to existing, in-production services and artifacts. This ensures that the backward incompatible
changes are introduced in a controlled way, to ensure they do not unexpectedly break existing applications.
RED HAT Confidential
13. Top Down Switchyard Use Case
Tooling:
- Create Service in IDE
- Maven Deploy to Repo
S-RAMP:
- Store, extract, derive
- Status Classification
DTGov:
- Community notifications
- Gov WFL Approvals
- Deploy to PROD
RTGov:
- Add SLA (Policy)
- Monitor
13
RED HAT Confidential
14. Fuse Service Works 6 – S-RAMP and Design Time Governance
How to use DTGov/S-RAMP
15. Interacting with S-RAMP
Through the ATOM BIND REST API using:
● any existing ATOM client
● Java, using the S-RAMP client
● Command Shell
● S-RAMP-UI Browser (Web Based)
● Maven (S-RAMP Wagon up/down)
15
RED HAT Confidential
17. Deployment Workflow
S-RAMP triggers deploy to runtime
/s-ramp/ext/SwitchyardApplication ->
overlord.demo.SimpleReleaseProcess
DeploymentUrl={governance.url}/deploy/
copy/{target}/{uuid}
NotificationUrl={governance.url}/notify/e
mail/{group}/deployed/{target}/{uuid}
UpdateMetaDataUrl={governance.url}/up
date/{name}/{value}/{uuid}
Logs deployment status in S-RAMP
Sends out notifications
Human task to approve or fail
target: dev, qa, stage, prod
https://access.redhat.com/site/documentation/en-US/Red_Hat_JBoss_Fuse_Service_Works/6/html-single/Development_Guide_Volume_3_Governance/index.html#sect-Governance_Workflows
17
RED HAT Confidential
20. Fuse Service Works 6 – S-RAMP and Design Time Governance
Demonstration of S-RAMP
21. S-RAMP Demonstration 1
S-RAMP Demos Simple Client - This demo illustrates how easy it is to use the SRAMP client to interact with the S-RAMP repository (which it does via an Atom
API)
Step 1: Make sure Fuse Service Works Server is Running
Step 2: Change to the fswinstall/jboss-eap-6.1/quickstarts/overlord/s-ramp/s-rampdemos-simple-client directory
Step 3: Run the Maven command
mvn -Pdemo -Dsramp.auth.username=admin -Dsramp.auth.password=redhat1! clean test
Step 4: Use the S-RAMP UI (browser) to take a look at the artifact that were
uploaded by this demo.
21
RED HAT Confidential
22. Demonstatration 1 Output
*** Running S-RAMP Simple Client Demo ***
S-RAMP Endpoint: http://localhost:8080/s-ramp-server
S-RAMP User: admin
Uploading some XML schemas...
Uploading artifact ws-humantask.xsd...done.
Updating meta-data for artifact ws-humantask.xsd...done.
Uploading artifact ws-humantask-context.xsd...done.
Updating meta-data for artifact ws-humantask-context.xsd...done.
Uploading artifact ws-humantask-policy.xsd...done.
Updating meta-data for artifact ws-humantask-policy.xsd...done.
Uploading artifact ws-humantask-types.xsd...done.
Updating meta-data for artifact ws-humantask-types.xsd...done.
Uploading artifact ws-humantask-leantask-api.wsdl...done.
Updating meta-data for artifact ws-humantask-leantask-api.wsdl...done.
Uploading artifact ws-humantask-protocol.wsdl...done.
Updating meta-data for artifact ws-humantask-protocol.wsdl...done.
Querying the S-RAMP repository for Schemas...success: 4 Schemas found:
* ws-humantask-context.xsd (8ad99ddc-13a6-4d0c-a6d7-c1f56d3256fa)
* ws-humantask-policy.xsd (91ace761-50f8-4b9b-a0bf-d506ad5f12fd)
* ws-humantask-types.xsd (67b97760-58d4-4220-8b9f-d596e69161d4)
* ws-humantask.xsd (a2a85ef6-5601-4b06-bf46-803177b3713c)
*** Demo Completed Successfully ***
22
RED HAT Confidential
24. S-RAMP Demonstration 2
S-RAMP Demos Query - This demo shows a few examples of how the S-RAMP
repository can be queried.
Step 1: Make sure Fuse Service Works Server is Running
Step 2: Change to the fswinstall/jboss-eap-6.1/quickstarts/overlord/s-ramp/s-rampdemos-query directory
Step 3: Run the Maven command
mvn -Pdemo -Dsramp.auth.username=admin -Dsramp.auth.password=redhat1! clean test
Step 4: Use the S-RAMP UI (browser) to take a look at the artifact that were
uploaded by this demo.
24
RED HAT Confidential
25. Demonstration 2 Output
*** Running S-RAMP Query Demo ***
S-RAMP Endpoint: http://localhost:8080/s-ramp-server
S-RAMP User: admin
Uploading some content to the S-RAMP repository...done!
Querying the S-RAMP repository for Schemas...success: 6 Schema(s) found (expected AT LEAST 2)
Querying the S-RAMP repository for WSDLs...success: 3 WSDL(s) found (expected AT LEAST 1)
Querying the S-RAMP repository for all artifacts version 1.1...success: 8 artifact(s) found (expected AT LEAST 2)
Querying the S-RAMP repository for all artifacts version 1.2...success: 1 artifact(s) found (expected AT LEAST 1)
Querying the S-RAMP repository for a unique artifact by name + version...success: 1 artifact(s) found (expected AT
LEAST 1)
Querying the S-RAMP repository for a unique artifact by name + version (again)...success: 1 artifact(s) found
(expected AT LEAST 1)
Querying the S-RAMP repository for conflicting meta data...success: 0 artifact(s) found (expected 0)
Search for all artifacts with a name starting with 'w'...success: 1 artifact(s) found (expected SOME :))
*** Demo Completed Successfully ***
25
RED HAT Confidential
27. Fuse Service Works 6 – S-RAMP and Design Time Governance
Demonstration of DTGov
28. Workflow example in JBDS which can be modified then deployed, located under data
28
RED HAT Confidential
29. Package and Deploy the workflow to S-RAMP
[kpeeples@localhost jboss-eap-6.1]$ cd data/
[kpeeples@localhost data]$ ll
total 16
-rw-rw-r-- 1 kpeeples kpeeples 6461 Oct 2 20:12 deployment-status.owl
-rw-rw-r-- 1 kpeeples kpeeples 2415 Oct 2 20:12 pom.xml
drwxrwxr-x 3 kpeeples kpeeples 4096 Dec 10 22:17 src
[kpeeples@localhost data]$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------------------------------------------------------[INFO] Building Design Time Governance: Workflows 1.0.1.Final-redhat-4
[INFO] -----------------------------------------------------------------------[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ dtgov-workflows --[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 10 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ dtgov-workflows --[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ dtgov-workflows --[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/kpeeples/mystuff/NA Enablement/fswBETA/jboss-eap-6.1/data/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ dtgov-workflows --[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ dtgov-workflows --[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ dtgov-workflows --[INFO] Building jar: /home/kpeeples/mystuff/NA Enablement/fswBETA/jboss-eap-6.1/data/target/dtgov-workflows-1.0.1.Final-redhat-4.jar
[INFO] -----------------------------------------------------------------------[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------------[INFO] Total time: 3.901s
[INFO] Finished at: Wed Dec 11 02:16:32 EST 2013
[INFO] Final Memory: 26M/321M
[INFO] ------------------------------------------------------------------------
Deploy to S-RAMP and add query definition to kick off workflow
29
RED HAT Confidential
30. DTGov Demonstration 1
This demo shows how DTGov can start a Project Workflow via a simple Maven
build. The goal is to show that an upload of a pom.xml with artifactId of "project"
kicks of a workflow of type overlord.demo.SimpleReleaseProcess.png.
Step 1: Make sure Fuse Service Works Server is Running
Step 2: Change to the fswinstall/jboss-eap-6.1/quickstarts/overlord/dtgov/dtgovdemos-switchyard directory
Step 3: Run the Maven command
mvn -Pdemo -Dsramp.auth.username=admin -Dsramp.auth.password=redhat1!
clean deploy
Step 4: Use the S-RAMP UI (browser) to take a look at the deployment that were
uploaded by this demo.
NOTE: review /tmp as it moves through the workflow, possibly setup the sym link
to prod folder and review pom.xml
30
RED HAT Confidential
33. S-RAMP Lab 1
S-RAMP Demos Simple Client - This demo illustrates how easy it is to use the SRAMP client to interact with the S-RAMP repository (which it does via an Atom
API)
Import the project in JBDS, run the test and review the artifacts in S-RAMP
33
RED HAT Confidential
34. S-RAMP Lab 2
S-RAMP Demos Query - This demo shows a few examples of how the S-RAMP
repository can be queried.
Import the project in JBDS, run the test and review the artifacts in S-RAMP
34
RED HAT Confidential
36. DTGov Lab 1
DTGov Switchyard demo - This demo shows how DTGov can start a Project
Workflow via a simple Maven build. The goal is to show that an upload of a
pom.xml with artifactId of "project" kicks of a workflow of type
overlord.demo.SimpleReleaseProcess.png.
Import the project in JBDS, deploy the switchyard application and review the
artifacts in S-RAMP
36
RED HAT Confidential
37. Fuse Service Works 6 – S-RAMP and Design Time Governance
Summary and References
38. Summary and References
●
●
●
●
●
38
Beta Download, Install Instructions, videos jboss.org/products/fsw.html and
jboss.org/products/datavirt.html
JBoss Videos - http://vimeo.com/jbossdeveloper
Git repo with examples http://github.com/FuseServiceWorksByExample And
http://github.com/DataVirtualizationByExample
Development Guides and additional docs
-https://access.redhat.com/site/documentation/Red_Hat_Jboss
_Fuse_Service_Works/
Home Loan Reference Architecture with DV/FSW
(DTGov/Switchyard with Rules/Business Process/Camel) https://github.com/FuseServiceWorksByExample/Home-Loan-Referen
RED HAT Confidential