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.
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.
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:
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.
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.
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.
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
Comments