JBoss.orgCommunity Documentation

Chapter 3. S-RAMP Data Models

3.1. Core Data Model (core)
3.2. XML Schema (XSD) Data Model (xsd)
3.3. WSDL Data Model (wsdl)
3.4. Policy Data Model (policy)
3.5. SOA Data Model (soa)
3.6. Service Implementation Data Model (serviceImplementation)
3.7. Custom/Extension Data Models (ext)
3.8. Java Data Model
3.9. KIE Data Model (Knowledge is Everything)
3.10. SwitchYard Data Model
3.11. Teiid Data Model (Teiid)

The S-RAMP specification defines a number of built-in artifact types, while also allowing clients to define their own (implicit) types. This section of the Guide describes these different models.

An artifact may have document (e.g file) content or it may be a purely logical artifact. In either case, clients typically add artifacts to the repository directly (e.g. via the S-RAMP Atom API, described later in this guide).

Additionally, some document style artifact types when added to the repository, will result in the creation of a set of "derived" artifacts. For example, if an XSD document is added to the repository, the server will automatically extract the element declarations from the content of the file resulting in a set of additional artifacts "related" to the original. This will be described in detail further in the XSD Data Model section.

The S-RAMP core model defines some basic artifact types including Document and XmlDocument. These basic types allow clients to add simple files to the repository as artifacts.

Artifact TypeParent TypeProperties

Document

 

contentType, contentSize, contentHash

XmlDocument

Document

contentEncoding

The XSD model defines a single document style artifact, XsdDocument, and a number of derived artifact types. When an XSD document is added to the repository, the server will additionally "index" the artifact by automatically creating a number of derived artifacts of the following types from the XSD content.

Artifact TypeParent TypeProperties

XsdDocument

XmlDocument

targetNamespace

AttributeDeclaration

<derived>

ncName, namespace

ElementDeclaration

<derived>

ncName, namespace

SimpleTypeDeclaration

<derived>

ncName, namespace

ComplexTypeDeclaration

<derived>

ncName, namespace

The WSDL model defines a single document style artifact, WsdlDocument, and a number of derived artifact types. Similarly to the XsdDocument type, when a WSDL dcument is added to the repository, the server will automatically derive additional artifacts (listed below) from the content of the WSDL file.

For further details about the WSDL Model, please see the S-RAMP specification’s foundation document, section 2.4.2.

Artifact TypeParent TypeProperties

WsdlDocument

XmlDocument

targetNamespace, xsdTargetNamespaces

WsdlService

<derived>

ncName, namespace

Port

<derived>

ncName, namespace

WsdlExtension

<derived>

ncName, namespace

Part

<derived>

ncName, namespace

Message

<derived>

ncName, namespace

Fault

<derived>

ncName, namespace

PortType

<derived>

ncName, namespace

Operation

<derived>

ncName, namespace

OperationInput

<derived>

ncName, namespace

OperationOutput

<derived>

ncName, namespace

Binding

<derived>

ncName, namespace

BindingOperation

<derived>

ncName, namespace

BindingOperationInput

<derived>

ncName, namespace

BindingOperationOutput

<derived>

ncName, namespace

BindingOperationFault

<derived>

ncName, namespace

This data model is present to represent the primary components of a WS-Policy document.

Artifact TypeParent TypeProperties

PolicyDocument

XmlDocument

 

PolicyExpression

<derived>

 

PolicyAttachment

<derived>

 

The SOA model exists to provide a link to the work done by the Open Group SOA Ontology group. All of the artifacts in this model are non-document artifacts which are directly instantiated by clients.

Artifact TypeParent TypeProperties

HumanActor

  

Choreography

  

ChoreographyProcess

  

Collaboration

  

CollaborationProcess

  

Composition

  

Effect

  

Element

  

Event

  

InformationType

  

Orchestration

  

OrchestrationProcess

  

Policy

  

PolicySubject

  

Process

  

Service

  

ServiceContract

  

ServiceComposition

  

ServiceInterface

  

System

  

Task

  

The Service Implementation model adds SOA service implementation artifact types underneath the (already mentioned) SOA Data Model.

Artifact TypeParent TypeProperties

Organization

 

end

ServiceEndpoint

 

end, url

ServiceInstance

 

end, url

ServiceOperation

 

end, url

Clients can define their own (implicit) data models by using the "ext" model space defined by the S-RAMP specification. This allows clients to add documents with custom artifact types. For example, a client can add an artifact to /s-ramp/ext/PdfDocument. This provides a way for clients to define their own data models with their own properties and relationships. Note however that the server will not have a definition of the model - it is up to the client to properly conform to their own implicit model. Custom properties and user-defined relationships allow clients to richly define their own models.

As an example, a client might define the following Data Model for a J2EE web application domain:

Artifact TypeParent TypeProperties

WebXmlDocument

ExtendedDocument

displayName

ServletFilter

ExtendedArtifactType

displayName, filterClass

Servlet

ExtendedArtifactType

servletClass, loadOnStartup

The S-RAMP server adds a custom (ext) model for dealing with Java artifacts. The following table lists the Java artifact types that are supported out of the box. These artifacts can either be directly added to the repository or they can be added as part of the expansion of some other artifact. A typical example of the latter is how JavaClass artifacts may be added because they are contained within an archive of some kind.

Artifact TypeParent TypeFile ExtensionProperties

JavaArchive

ExtendedDocument

jar

 

JavaWebApplication

ExtendedDocument

war

 

JavaEnterpriseApplication

ExtendedDocument

ear

 

BeanArchiveDescriptor

ExtendedDocument

beans.xml

 

JavaClass

ExtendedDocument

class

packageName, className

JavaInterface

ExtendedDocument

class

packageName, className

JavaEnum

ExtendedDocument

class

packageName, className

The S-RAMP server includes basic out of the box support for Drools (KIE) artifact types. The following table lists the KIE artifact types that are currently supported.

Artifact TypeParent TypeFile ExtensionProperties

KieJarArchive

ExtendedDocument

jar

 

KieXmlDocument

ExtendedDocument

kmodule.xml

 

BpmnDocument

ExtendedDocument

bpmn

 

DroolsDocument

ExtendedDocument

drl

 

The S-RAMP server inclues a custom (ext) data model for SwitchYard artifacts. The following table lists the artifact types currently supported. The non-derived artifacts can be added directly to the repository or expanded out of some archive type artifact.

Artifact TypeParent TypeProperties

SwitchYardApplication

ExtendedDocument

 

SwitchYardXmlDocument

ExtendedDocument

targetNamespace

SwitchYardService

<derived from SwitchYardXmlDocument>

 

SwitchYardComponent

<derived from SwitchYardXmlDocument>

requires

SwitchYardComponentService

<derived from SwitchYardXmlDocument>

 

SwitchYardTransformer

<derived from SwitchYardXmlDocument>

transformer-type

SwitchYardValidator

<derived from SwitchYardXmlDocument>

validator-type

Additionally, the SwitchYard derived artifacts have various relationships automatically created between and amongst them (as well as to other derived artifacts such as those derived from XML Schema artifacts). The following table outlines all the relationships currently defined in the SwitchYard Model.

RelationshipSource Artifact TypeTarget Artifact Type

implementedBy

SwitchYardComponent

JavaClass

implementedBy

SwitchYardTransformer

JavaClass

implementedBy

SwitchYardValidator

JavaClass

implements

SwitchYardService

JavaInterface, PortType

implements

SwitchYardComponentService

JavaInterface, PortType

offers

SwitchYardComponent

SwitchYardComponentService

promotes

SwitchYardService

SwitchYardComponent

references

SwitchYardComponent

JavaInterface, PortType

transformsFrom

SwitchYardTransformer

JavaClass, ElementDeclaration

transformsTo

SwitchYardTransformer

JavaClass, ElementDeclaration

validates

SwitchYardValidator

JavaClass, ElementDeclaration

The Teiid model adds Teiid-related artifact types, derived artifacts, and relationships. There are artifact types for the following Teiid resources: VDBs (*.vdb), models (*.xml), VDB manifests (usually named vdb.xml), and VDB configuration files (ConfigurationInfo.def). Teiid resources should be added to the repository using the corresponding artifact types listed in the following table:

Artifact TypeParent TypeProperties

TeiidVdb

  

TeiidModel

ExtendedArtifactType

description, maxSetSize, mmuuid, modelType, nameInSource, primaryMetamodelUri, producerName, producerVersion, visible

TeiidVdbConfigInfo

ExtendedArtifactType

 

TeiidVdbManifest

ExtendedArtifactType

description, preview, UseConnectorMetadata, vdbVersion, <custom properties>

TeiidVdbDataPolicy

<derived from TeiidVdbManifest>

anyAuthenticated, description, roleNames, tempTableCreatable

TeiidVdbEntry

<derived from TeiidVdbManifest>

description, <custom properties>

TeiidVdbImportVdb

<derived from TeiidVdbManifest>

importDataPolicies, vdbVersion

TeiidVdbPermission

<derived from TeiidVdbManifest>

alterable, condition, creatable, deletable, executable, languagable, mask, readable, updatable

TeiidVdbSchema

<derived from TeiidVdbManifest>

builtIn, checksum, description, indexName, metadata, metadataType, modelClass, modelUuid, pathInVdb, schemaType, visible, <custom properties>

TeiidVdbSource

<derived from TeiidVdbManifest>

jndiName, translatorName

TeiidVdbTranslator

<derived from TeiidVdbManifest>

description, translatorType, <custom properties>

TeiidVdbValidationError

<derived from TeiidVdbManifest>

message, severity

When a TeiidVDB or a TeiidVdbManifest artifact type is added to the repository, relationships between it and its derived artifacts are created. Note that the TeiidVdbContains relationship is the inverse of the expandedFromDocument relationship. Here is a list of the Teiid relationship types:

Relationship TypeSource TypeTarget TypeMultiplicity

TeiidVdbContains

TeiidVdbManifest

TeiidVdbDataPolicy, TeiidVdbEntry, TeiidVdbSchema, TeiidVdbTranslator, TeiidVdbImportVdb

1 to many

TeiidVdbDataPolicyPermissions

TeiidVdbDataPolicy

TeiidVdbPermission

1 to many

TeiidVdbPermissionDataPolicy

TeiidVdbPermission

TeiidVdbDataPolicy

1 to 1

TeiidVdbSchemaSources

TeiidVdbSchema

TeiidVdbSource

1 to 1

TeiidVdbSchemaValidationErrors

TeiidVdbSchema

TeiidVdbValidationError

1 to many

TeiidVdbSourceSchemas

TeiidVdbSource

TeiidVdbSchema

1 to many

TeiidVdbSourceTranslator

TeiidVdbSource

TeiidVdbTranslator

1 to 1

TeiidVdbTranslatorSources

TeiidVdbTranslator

TeiidVdbSource

1 to many

TeiidVdbValidationErrorSource

TeiidVdbValidationError

TeiidVdbSource

1 to 1

expandedFromDocument

TeiidVdbDataPolicy, TeiidVdbEntry, TeiidVdbSchema, TeiidVdbTranslator, TeiidVdbImportVdb

TeiidVdbManifest

many to 1