The purpose of the SOA Ontology (SOA-O) is to develop and foster common understanding of the SOA in order to improve alignment between the business and information technology communities, and facilitate SOA adoption:
- The SOA-O defines the concepts, terminology, and semantics of SOA in both business and technical terms, in order to:
- Create a foundation for further work in domain-specific areas.
- Enable communications between business and technical people.
- Enhance the understanding of SOA concepts in the business and technical communities.
- Provide a means to state problems and opportunities clearly and unambiguously to promote mutual understanding.
- The SOA-O potentially contributes to model-driven SOA implementation.
The OWL ontology is available online.
The SOA-O is designed for use by:
- Business people, to give them a deeper understanding of SOA concepts and how they are used in the enterprise and its environment.
- Architects, as metadata for architectural artifacts.
- Architecture methodologists, as a component of SOA meta-models.
- System and software designers for guidance in terminology and structure.
This standard defines a formal ontology for SOA. The ontology is represented in the Web Ontology Language (OWL) – using OWL-DL, one of three sub-languages that provides the greatest expressiveness possible while retaining computational completeness and decidability.
The ontology contains classes and properties corresponding to the core concepts of SOA. The formal OWL definitions are supplemented by natural language descriptions of the concepts, with graphic illustrations of the relations between them, and with examples of their use. For purposes of exposition, the ontology also includes UML diagrams that graphically illustrate its classes and properties of the ontology. The natural language and OWL definitions contained in this specification constitute the authoritative definition of the ontology; the diagrams are for explanatory purposes only.
Figure 1. SOA-O – Graphical Overview.
The class hierarchy is as follows:
Figure 2. The SOA-O Class Hierarchy.
The SOA-O was developed in order
- to aid understanding, and
- potentially to be a basis for model-driven implementation.
To aid understanding, this specification can simply be read. To be a basis for model-driven implementation, it should be applied to particular usage domains and application to example usage domains will aid understanding.
The SOA-O can be used as a core for domain-specific ontologies that apply to the use of the SOA in particular sectors of commerce and industry. The ontology is applied to a particular usage domain by adding SOA OWL class instances of things in that domain. This is sometimes referred to as "populating the ontology". In additional, an application can add definitions of new classes and properties, can import other ontologies into the SOA-O, and can import the SOA-O into other ontologies.
The ontology defines the relations between terms, but does not prescribe exactly how they should be applied.
- Element Class
- uses and usedBy Properties
- System Class
- represents and representedBy Properties
- HumanActor Class
- Task Class
- Service Class
- performs and performedBy Properties
- ServiceContract Class
- interactionAspect and legalAspect Datatype Properties
- hasContract and isContractFor Properties
- involvesParty and isPartTo Properties
- Effect Class
- specifies and isSpecifiedBy Properties
- ServiceInterface Class
- Constraints Datatype Property
- hasInterface and isInterfaceOf Properties
- InformationType Class
- hasInput and isInputAt Properties
- hasOutput and isOutputAt Properties
- Composition Class
- compositionPattern Datatype Property
- orchestrates and orchestratedBy Property
- ServiceComposition Class
- Process Class
- Policy Class
- appliedTo and isSubjectTo Properties
- setsPolicy and isSetBy Properties
- Event Class
- generates and generatedBy Properties
- respondsTo and respondedToBy Properties