JBoss.orgCommunity Documentation
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Parent Type | Properties |
---|---|---|
WebXmlDocument | ExtendedDocument | displayName |
ServletFilter | ExtendedArtifactType | displayName, filterClass |
Servlet | ExtendedArtifactType | servletClass, loadOnStartup |
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 Type | Parent Type | Properties |
---|---|---|
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 Type | Source Type | Target Type | Multiplicity |
---|---|---|---|
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 |