A preliminary design for Gunvor - SOA Repository

This document outlines a potential design of what Gunvor - SOA Repository may look like.

 

1. Requirements:

Please refer to http://www.jboss.org/community/docs/DOC-9834

 

 

2. JCR Schema

-ROOT

   -REPOSITORY_AREA
         -JBOSS ESB
             -- AirlineReservationService

                -jcr:content:

                    -- title

                    -- desc

                    -- lastModified

                    -- checkInComment

                    -- content: empty

                    -- content_binary: the AirlineReservationService.esb jar file is stored here in binary format

                    -- DefaultLifeCycle: created

                    -- dependency (multi-value-property)

                        --/ROOT/REPOSITORY_AREA/ESBBinaries/AirlineReservationService.esb

                        --/ROOT/REPOSITORY_AREA/WSDL/Public.wsdl

                        --/ROOT/REPOSITORY_AREA/Drools/rules.properties (refer to rule1 and rule2)

                        --/ROOT/REPOSITORY_AREA/Schemas/FlightMessage.xsd

                        --/ROOT/REPOSITORY_AREA/Schemas/PassengerListMessage.xsd

                        --/ROOT/REPOSITORY_AREA/JBPM/Notification.bpmn

                        --/ROOT/REPOSITORY_AREA/Document/ServiceDocument.doc

                        --/ROOT/REPOSITORY_AREA/Configuration/jboss-esb.xml

                    -- other metadata related properties
         -WSDL
           -- Public.wsdl
        -Drools

           -- rule1
           -- rule2
        -JBPM

           -- Notification.bpmn
        -BPEL
        -Documents
           -- ServiceDocument.doc
        -Schemas
           -- FlightMessage.xsd
           -- PassengerListMessage.xsd

        -Configurations

          -- jboss-esb.xml

                -jcr:content:

                    -- isGlobal: set this property to false if this file does not need to be viewed outside AirlineReservationService

                    --other metadata related properties: such as serviceCategory name, mep etc

   -SCHEMA_AREA

            -METADATA_TYPE_AREA
                        -metadata_type_string
                               -jcr:content

                                    -- description

                        -metadata_type_multi_value_string                         
                        -metadata_type_life_cycle
                        -metadata_type_dependency
            -LIFECYCLE_AREA
                        -default_life_cycle
                              -created
                                     -jcr:content

                                         -- isInitialPhase

                                         -- description

                                         -- nextPhase
                               -developed
                               -tested
                               -production
                               -retired

 

NOTE: AirlineReservationService is a leaf node. Under the AirlineReservationService node, its dependencies are stored using metadata_type_dependency property, which are references to other artifact nodes.

 

This is different from the schema that is used by Drools Gunvor:

rootnode-
          -RULES_REPOSITORY_NAME
                                    -RULE_PACKAGE_AREA
                                                                  -packageA
                                                                                 -ASSET_FOLDER_NAME
                                                                                                      -assetA
                                                                                                      -assetB
                                                                  -packageB
                                                                                 -ASSET_FOLDER_NAME
                                    -STATE_AREA
                                    -PACKAGE_SNAPSHOT_AREA

 

3. Typical Use Cases:

 

3.1: Connect to a Repository

 

Overview:

The SOA Repository is a web based application, can be accessed through browsers.

 

Connect to a repository:

1. Open a browser, point it to the URL of SOA repository. For example, http://soarepo.jboss.org/repo

 

2. Select a workspace:  A list of available workspaces is displayed. Select one workspace. A workspace is an independent domain in the repository. For example, changing the content in workspace A wont have any effect on workspace B.

selectworkspace.JPG

 

3.  Log in with user name and password

 

 

 

3.2: Work With Workspace

 

Overview:

The SOA Repository consists of three views: The workspace view, the Administration view and the Account management view.

 

Artifacts stored in a SOA Repository workspace are organized under different categories. We may support following categories (initially): JBOSS  ESB (binary format only), Drools rules, WSDL, Schema, Document.

 

workspaceoverview.JPG

NOTE: The diagram showed above is actually same with the diagram below (except: 1. all artifacts are under the "global" container by default. 2. As everything are under the global container, to make things look more organized, we put things under different categories, i.e., JBOSS ESB, Drools, WSDL, Schema etc)

 


Container1(AirlineReservationService)

    Type = Service

        Additional MetaData
            Service Type: Orchestrated, Entity, Task, Utility
            Service Category: user defined

 

        Assets:

            Message Schemas
                xxxRequest.xsd
                xxxResponse.xsd
                xxxFault.xsd

 

            WSDLs
                xxx.wsdl

 

            Configuration Artifacts
                jboss-esb.xml

 

            Additional Archive Artififacts
                smooks-res.xml
                brmsdeployedrules.properties

 

            Domain Models
                xxx.jar

 

            Additional Non-archive Artifacts
                service candidate model
                service compositions

 

Container2 (xxxService)

    Type = Business Process

 

        Assets:
            Scenarios
                xxx.scn
            Choreography
                xxx.cdm
            Endpoint Behavioral Descriptions
                ???
           
            BPMN Model
                xxx.bpmn
                xxx.bpmn_diagram

 

            Orchestration
                xxx.bpel
                xxx.

 

            ProcessDefinition
                xxx.gpd
                xxx.xml
                xxx.gif

 

Container3 (xxxService)
    Type = JMS Destinations
            Queues
                queuedef.xml
           
            Topics
                topicdef.xml

 

Global Containers

 

    Type = Policy
            xxx.xml

 

 

 

3.3: Create a JBOSS ESB Artifact
Overview:

A JBOSS ESB artifact is a .esb bundle file associated with several metadata. When adding a JBOSS ESB artifact, you will be asked for the location of ESB file (zip file) and the version label. During the uploading process, the jboss-esb.xml file is extracted from the zip file, a set of metadata is generated and stored automatically according to the information from jboss-esb.xml, such as service category name, actions etc.

 

Create a JBOSS ESB Artifact:
addesb.JPG

 

 

 

3.4: View and Edit a JBOSS ESB Artifact

 

Overview:

We have a ESB editor to view and edit JBOSS ESB artifact (.esb file).

 

View and Edit a JBOSS ESB Artifact

 

1. View the esb file: click the view button, you can download the esb file and save it as a local copy.

2. Manage the life cycle: You can choose a different life cycle type. You can also move the lifecycle phase forward or backward.
3. JBOSS ESB Configuration file: When a .esb bundle gets uploaded into the SOA repository, the jboss-esb.xml file will be extracted from the zip file, a set of metadata is generated and stored automatically according to the information from  jboss-esb.xml.
4.  Manage metadata: All metadata belongs to Quickstart_helloworld is displayed under the metadata section. User can add or remove a metadata type. Use can also edit the value of existing meta data.

5.  Add a new version of .esb file: .esb bundle file is stored in SOA repository as a binary file. User can upload a new version of Quickstart_helloworld.esb file.

 

workspaceoverview-config.JPG

 

 

 

 

3.5: Work With Drools Artifact

 

TBD

 

 

3.6: Work With Life Cycle

 

Overview:

You can define your own life cycle type from the administration menu.

lifecycle.JPG

 

 

 

 

3.7: Work With Metadata

 

Overview:

You can define your own metadata from the administration menu. At the moment, we support four types of metadata: single-valued string, multi-valued string, life cycle, dependency.

 

metadata.JPG

 

 

 

TO-DO:

 

1. Policy related:

* policy editor: the formats of policies vary a lot. how can we have a policy editor to suit all?

* shall we have a category called policies?

 

2. Search/Query