Semantic Integration - integration of data semantics
Visionaries [really farsighted] envision semantic integration as next step of SOA and application integration. EAI/SOA provides integration of technologies, but semantic integration provides integration of data and service behaviors or functionalities.
(Stretched) goal of Semantic Integration is to enable:
- automated service discovery
- automated service composition
- resilient or adaptive system
- automated service customization …etc.
Before we dive into the ways to achive these goals through usage of semantics in enterprise integration, let's look into the meaning of semantics [ sply. semantics of service ].
- Data Semantics: Formal definition of data in input and output messages of a web service which can be used for discovery and interoperability
- Functional Semantics: Formally representing capabilities of a web service which help to automatic discovery and composition
- Execution Semantics: Formally representing the execution or flow of services in a process or operations in a service to enable verification, simulation and exception handling
- QoS based Semantics: Formally describing operational metrics of a web service/process: cost, time, reliability etc. which is used for service optimization or to finding most suitable webservice for given SLA]
Three step process for moving from normal service to semantically enabled service - Semantic registration of services, which allows semantic discovery and composition to higher-level semantic service.
For semantic registration of services, there should be a way to capture semantic information of the service input/output, operations, functionality and QoS. Mainly two separate approaches are considered; by WSDL annotation or keeping separate metadata like WS-Policy etc.
Semantic discovery means selecting services from any specialized registry based on the functional requirements using semantic information of the operation and similarity based on input/output semantics of candidate services using information about the message parts.
And last but not least, semantic composition helps to achieve the most important goal of SOA based systems: reducing the complexity of creating composite services by choosing the optimal combination among possible options.