Monday, October 28, 2013

Fuse Service Works v6 Beta Announced

Announcing Fuse Service Works 6.0 Beta!

Overview of FSW

JBoss Fuse Service Works (FSW), formerly named SOA-Platform, is the Red Hat middleware solution for application integration, messaging and SOA integration. It combines the technical innovations from open source communities including the core integration technologies from the FuseSource acquisition to address integration requirements.

JBoss Fuse Service Works consists of several leading open source projects from JBoss and Apache communities such as:
  • SwicthYard – business services and SCA capabilities
  • RiftSaw - service orchestration capabilities
  • Overlord - service governance and activity monitoring 
  • Drools – business rules processing
  • Apache Camel, Apache CXF and Apache ActiveMQ - core integration capabilities
The component versions are this point are:
  • Overlord Runtime Governance  - 1.0.0.Final
  • Overlord Design Time Governance  - 1.0.0.Final
  • Overlord S-RAMP  - 0.3.0.Final
  • ModeShape  - 3.5.0.Final
  • SwitchYard - 1.1.0.M3
  • Camel - 2.10.0
  • EAP - 6.1.0
  • Smooks - 1.5.1
  • Drools/jBPM - 6.0.0.CR3
Below each project is highlighted and then we have a sample application to get you started. The Home Loan FSW Application walks you through building your first FSW application.  So to get started let's first go through the components in a little detail:

Apache Camel - implementation of the popular and widely used Enterprise Integration Patterns (EIP) framework for routing, transformation that enables faster and more efficient integration solutions

Apache ActiveMQ - high performance, reliable messaging broker that supports messaging patterns such as publish-subscribe, point-to-point and store-forward, and multiple cross language clients

Apache CXF - web services framework which exposes integration assets as services and calls external services, supporting all major web services standards.

SwitchYard – lightweight service delivery framework, based on SCA (Service Component Architecture), providing full life-cycle support for developing, deploying, and managing service-oriented applications
 
Design time Governance (Overlord) – manage the life-cycle of services from design, development through deployment by defining, exposing and enforcing rules or policies
  • Built on top of the S-RAMP artifact repository
  • Supports triggering Governance Workflows based on repository changes
    • Embeds jBPM 6 to support workflow execution
    • Maps an S-RAMP query to a workflow definition
  • Includes an out-of-the-box Governance Workflow to handle Deployment Lifecycle Management
  • Implements several REST services to support Governance Workflows
    • General purpose Notification (email) Service
    • Artifact meta-data Update Service (used to add meta-data to the S-RAMP artifact being governed)
    • Deployment Service used to deploy binary artifacts into runtime EAP systems
      • Supports RHQ
      • Supports JBoss AS CLI
      • Supports direct file copying
      • Can also deploy into a Maven repository
      • Supports multiple, configurable logical deployment targets (e.g. DEV, TEST, PROD)
  • Web UI
    • Includes a Task Inbox for human tasks created by the Governance Workflows
    • Provides a UI specific to the Deployment Lifecycle Governance Workflow
      • Can drill into a deployment to see its contents
      • Shows the change history for a deployment
      • Provides a way to see which deployments are deployed to which environments
Overlord Runtime Governance (Overlord)  – capture service activity information, define and collect metrics, define alerts to optimize and meet Business/Service Level Agreements (SLA)
    • Activity Collector
      • Activity events can be reported directly to the Activity Server via REST service, OR
    • Embedded collector to intercept activities, pre-process the information to extract correlation details and business relevant properties, before batching events for distribution to the server.
      • Events can be 'validated' using pluggable event processors, which can be used to block business transactions
  • Activity Server

    • Provides a REST interface to enable events to be reported
    • Persists activity information
    • Distributes reported events to subscribed components.
  • Event Processor Network

    • Subscribes to the Activity Server, to receive reported activity events
    • Distributes activity events through a series of registered networks, that consist of event processors to validate, transform and retransmit events. Processors can be specified using Java, Drools CEP rules and MVEL.
  • Maintaining Derived Results

    • Information derived by the Event Processor Network can be presented as a set of 'active' collections
    • Components can directly access these collections, or issue queries through a REST API.
  • Web UI

    • Runtime governance information is provided through a set of gadgets.

      • Service Response Time Gadget - displays response time information per service and optionally operation.
      • Situations Gadget - table for displaying situations detected by the event processing (e.g. SLA violation)
      • Call Trace Gadget - provides a tree based visual display of the call stack associated with a business transaction
      • Service Overview - graphical representation of the services and their dependencies, showing response time and invocation details.

        Introducing the Home Loan FSW Application 1.0


        TheHome Loan FSW Application 1.0 in a nutshell takes a home loan application in Fannie Mae standard and processes it through the system to get a decision. The diagram below is a high level overview of the application.


For our sample we are a creditor service and receive loan applications from different interfaces like messaging and SOAP in a special format, “Fannie Mae 1003 Loan Application”. Each application is processed with customer data based on different sources. According to a business process, if it's an existing customer there is a manual task to be performed by a loan officer. Otherwise it is an automatic task performed by business rules. The business process is shown below which is from the IDE.




The Home Loan v1 on FSW 6.0 is using Switchyard, DTGov and Camel. We are also using Data Virtualization 6.0. In the future we will be adding RTGov in the demo. The application can be viewed through the Switchyard composite in the IDE.


The diagram below describes the pieces of the Switchyard composite.


Download the FSW and DV Enterprise Products from jboss.org at http://www.jboss.org/products. Check out additional code on www.github.com/FuseServiceWorksByExampleCheck out the Wiki for step by step instructions for setting up and running the sample application. We will by adding more to this example for the different components.