Fuse Service Works Design Time Governance and S-RAMP

download Fuse Service Works Design Time Governance and S-RAMP

If you can't read please download the document

Transcript of Fuse Service Works Design Time Governance and S-RAMP

Fuse Service Works 6 -S-RAMP and Design Time Governance

Kenny PeeplesTechnical Marketing ManagerDecember 10th, 2013

Agenda (2 Hours)

What is DTGov/S-RAMP

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

Q&A

What is DTGov/S-RAMP

Fuse Service Works 6 S-RAMP and Design Time Governance

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

JBoss Fuse Service Works Components

http://www.jboss.org/overlord

https://www.jboss.org/switchyard

What are the Governance Components?

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

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

Design Time Governance Supporting Services

Deployment Service

Meta-Data Update Service

Notification Service

Why use DTGov/S-RAMP

Fuse Service Works 6 S-RAMP and Design Time Governance

S-RAMP Scenarios

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 "SOA-aware" 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 S-RAMP 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?

Design Time Governance Scenarios

Typical Use-CaseA 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.

Top Down Switchyard Use Case

Tooling:- Create Service in IDE- Maven Deploy to RepoS-RAMP:- Store, extract, derive- Status ClassificationDTGov:- Community notifications- Gov WFL Approvals- Deploy to PRODRTGov:- Add SLA (Policy)- Monitor

How to use DTGov/S-RAMP

Fuse Service Works 6 S-RAMP and Design Time Governance

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)

S-RAMP Interaction Examples

Maven S-RAMP Wagon Example:..

${project.artifactId} org.overlord.sramp s-ramp-wagon ${project.version} ..

local-sramp-repo S-RAMP Releases Repository sramp://localhost:8080/s-ramp-server/?artifactType=SwitchyardApplication

Client Example:SrampAtomApiClient client = new SrampAtomApiClient(endpoint, username, password, true);BaseArtifactType artifact = client.uploadArtifact(type, is, file);QueryResultSet rs = client.buildQuery("/s-ramp[@from-demo = ?]");

Deployment Workflow

S-RAMP triggers deploy to runtime/s-ramp/ext/SwitchyardApplication -> overlord.demo.SimpleReleaseProcessDeploymentUrl={governance.url}/deploy/copy/{target}/{uuid}NotificationUrl={governance.url}/notify/email/{group}/deployed/{target}/{uuid}UpdateMetaDataUrl={governance.url}/update/{name}/{value}/{uuid}Logs deployment status in S-RAMPSends out notificationsHuman task to approve or failtarget: 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

Deployment Workflow

Demonstration of S-RAMP

Fuse Service Works 6 S-RAMP and Design Time Governance

S-RAMP Demonstration 1

S-RAMP Demos Simple Client - This demo illustrates how easy it is to use the S-RAMP 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-ramp-demos-simple-client directory

Step 3: Run the Maven commandmvn -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.

Demonstatration 1 Output

*** Running S-RAMP Simple Client Demo ***

S-RAMP Endpoint: http://localhost:8080/s-ramp-serverS-RAMP User: adminUploading 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 ***

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-ramp-demos-query directory

Step 3: Run the Maven commandmvn -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.

Demonstration 2 Output

*** Running S-RAMP Query Demo ***

S-RAMP Endpoint: http://localhost:8080/s-ramp-serverS-RAMP User: adminUploading 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 ***

Demonstration of DTGov

Fuse Service Works 6 S-RAMP and Design Time Governance

Workflow example in JBDS which can be modified then deployed, located under data

[kpeeples@localhost jboss-eap-6.1]$ cd data/[kpeeples@localhost data]$ lltotal 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.xmldrwxrwxr-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] ------------------------------------------------------------------------

Package and Deploy the workflow to S-RAMP

Deploy to S-RAMP and add query definition to kick off workflow

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/dtgov-demos-switchyard directory

Step 3: Run the Maven commandmvn -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

Workflow Kicked Off

Lab of S-RAMP

Fuse Service Works 6 S-RAMP and Design Time Governance

S-RAMP Lab 1

S-RAMP Demos Simple Client - This demo illustrates how easy it is to use the S-RAMP 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

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

Lab of DTGov

Fuse Service Works 6 S-RAMP and Design Time Governance

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

Summary and References

Fuse Service Works 6 S-RAMP and Design Time Governance

Summary and References

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-Reference-Architecture

Thank You
Q&A

RED HAT Confidential

RED HAT Confidential Click to edit the title text formatClick to edit Master title style

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level

Seventh Outline LevelClick to edit Master text styles

Second level

Third level

Fourth level

Fifth level

RED HAT Confidential Click to edit the title text formatClick to edit Master title style

Click to edit the title text formatClick to edit Master title style

Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level

Seventh Outline LevelClick to edit Master text styles