|
The Service Discovery
Registry (SDR) functionality is as follows:
·
Allows the Service Providers to
publish their services into any of Service Discovery Registry from
the Network;
·
Allows the Customers to find
services they need by querying from any registry node of the
network.
The SDR allows for
matching customer’s required profiles with the provider offers.
Each service (and query, too) handled by the component is described
using the OWL-S specification (Service Profile). Furthermore, the
Service Provider specifies the signature of the advertised service
through the ontology class of inputs, outputs and service’s
classification.
When a new service is
published into the SDR, the SDR stores a local copy of service and
update the index information used from the others peers of Service
Discovery Registries Network. When a query is submitted, through an
OWL-S Service Profile, the SDR uses a semantic engine to retrieve
the local published services with one of the following degree of
match: Exact Match, Plug-in Match, Subsumes match, Subsumed-by
match, and Nearest-neighbour match. The first three degree of match
is logic based and the last two are hybrid due to the required
additional computation of syntactic similarity values.
If the size of
collected results is not enough, the SDR would forward the query to
others semantic relevant instance of SDR.
Prerequisites
Software Installation
Service Discovery API
Prerequisites
The Service Discovery
Registry component requires Microsoft .NET Framework 3.5 or higher,
IIS with WCF capability enabled, Java 5 or higher, Tomcat 5.5 or
higher.
Installation
The Service Discovery
Registry is shipped with three sub-components: SDRService, SDRWeb
and SDRSemanticEngine. The SDRService component must be deployed on
Microsoft Internet Information Services (IIS) on Windows XP
Professional, Windows Vista, Windows Server 2003 and Windows Server
2008. The SDRSemanticEngine must be deployed on Tomcat Server.
In order to deploy the
complete SDR package the user has to execute the related installer
following the instruction for a correct configuration. The installer
by default will create a ‘virtual’ directory in the IIS called "SDRService".
By opening the IIS Management Console the user will have to make
these sub-directories application directories (See Figure 10).

The services should be
accessible locally at the following URLs:
·
http://localhost/SDRService/SDService.svc
·
http://localhost/SDRWeb/Default.aspx
The execution of the
installer creates the following configuration files (SDRService\Web.config
and
SDRWeb\Web.config), in the case the user
wants to change them manually, see below:
Update
SDRSemanticEngine
and
SATSLARepositoryService
endpoints

·
Update the application settings:
o
BreinSdWcfService_WebRef_SATSLARepository_SATSLARepositoryService,
endpoint of the
SATSLARepositoryService
o
BreinSdWcfService_WebRef_MatchmakerInterface_MatchmakerInterfaceService,
endpoint of the
SDRSemanticEngine
o
SemXConeLocalAddress, defines the local
node address which is used to communicate with the others nodes of
the network
o
SemXConeLocalPort, defines the local node
port which is used to communicate with the others nodes of the
network
o
SemXConeIsBootStrapNode, defines if the
local SD node is a bootstrap node of Service Discovery Registries
Network
o
SemXConeHostAddress, defines the SD node
address to start the bootstrap process
o
SemXConeHostPort, defines the SD node port
to start the bootstrap process
o
SemanticEngineHostAddress, node address of
the
SDRSemanticEngine
o
SemanticEngineHostPort, node port of the
SDRSemanticEngine
o
CatOntology, the URI to category ontology
which classify the published services

After the installation
the user has to deploy the SDRSemanticEngine into the
webapps directory of the local instance of
Tomcat application server. The installer modifies your windows
firewall configuration as well by adding the follow rule:
·
Accept any TCP communication
(in/out) from SemXConeLocalPort
Note:
At the end of the installation process, execute "iisreset"
from command line to restart IIS. This is needed to synchronize IIS
with the new system environment variables.
Service Discovery API
|
Method |
void AddService(string serviceId, string
profile, KVPair[]
additionalInfo) |
|
Arguments |
string serviceId
– Unique identifier of the service profile; it can be
any string. |
|
string profile
– The service profile to be added, an XML document
compliant with OWL-S specification. |
|
KVPair[] additionalInfo
– A list of generic info (key-value pairs) related to
the service. |
|
Return Value[s] |
None |
|
Description |
Insert, or update if already exists, a service profile
into the service discovery registry. |
|
Method |
Void RemoveService(string serviceId) |
|
Arguments |
string serviceId
- Unique identifier of the service profile; it can be
any string. |
|
Return Value[s] |
None |
|
Description |
Remove a service profile from the service discovery
registry. |
|
Method |
String[] ListServices() |
|
Arguments |
None |
|
Return Value[s] |
An array of string; each string is the identifier of a
service profile. |
|
Description |
List all service profile identifiers contained into
local node of the service discovery registry. |
|
Method |
MatchedService[] MatchRequest(string profile) |
|
Arguments |
string profile
- The service profile to be search, an XML document
compliant with OWL-S specification. It can contains both
semantic and SLA characteristics description. |
|
Return Value[s] |
See MatchRequestCustom operation. |
|
Description |
It executes the same search of the
MatchRequestCustom
operation, but with default parameters configure with
setter operations. |
|
Method |
MatchedService[] MatchRequestCustom(string profile,
int minDegreeOfMatch, double simThreshold) |
|
Arguments |
string profile
- The service profile to be search, an XML document
compliant with OWL-S specification. It can contains both
semantic and SLA characteristics description. |
|
int minDegreeOfMatch
- minimum degree of match parameter for the semantic
search. |
|
double simThreshold
- similarity threshold parameter for the semantic
search. |
|
Return Value[s] |
An array of
MatchedService
elements, sorted by semantic and SLA degree of match;
each element contains the serviceId of the profile and
the result parameters of the match; also the SLAs
documents retrieved from the SATSLARepository and the
service additionalInfo are returned. |
|
Description |
It performs the search of service profiles matching
against the service profile request. |
|
Method |
KVPair[] GetConfig() |
|
Arguments |
None |
|
Return Value[s] |
KVPair[]
– The list of Semantic Engine configuration parameters. |
|
Description |
Getter operation for the whole configuration of Semantic
Engine. |
|
Method |
string GetConfigParam(string name) |
|
Arguments |
string name
- The name of the Semantic Engine configuration
parameter to be get. |
|
Return Value[s] |
String
- The value of configuration parameter required. |
|
Description |
Getter operation to retrieve from the local Service
Discovery Registry node the Semantic Engine
configuration. |
|
Method |
void SetConfig(KVPair[] config) |
|
Arguments |
KVPair[] config
- The list of Semantic Engine configuration parameters. |
|
Return Value[s] |
None |
|
Description |
Setter operation for the whole configuration of Semantic
Engine. |
|
Method |
void SetConfigParam(string name, string value) |
|
Arguments |
string name
- The name of the Semantic Engine configuration
parameter to be set. |
|
string value
- The value of the Semantic Engine configuration
parameter to be set. |
|
Return Value[s] |
None |
|
Description |
Set operation to update a local Semantic Engine
configuration. |
|
Method |
void DelConfigParam(string name); |
|
Arguments |
string name
- The name of the configuration parameter to be delete. |
|
Return Value[s] |
None |
|
Description |
Delete a local Semantic Engine configuration. |
|
Method |
void Initialize() |
|
Arguments |
None |
|
Return Value[s] |
None |
|
Description |
Initialize manually the discovery engine, starting and
configuring the backend, and loading the service
registry from content of the persistent repository. This
Operation is automatically executes at the first (any)
operation invocation. |
|
Method |
void StartupBackend() |
|
Arguments |
None |
|
Return Value[s] |
None |
|
Description |
Start the backend container and join into Service
Discovery Registries Network. |
|
Method |
void ShutdownBackend() |
|
Arguments |
None |
|
Return Value[s] |
None |
|
Description |
Stop the backend container and leave the Service
Discovery Registries Network. |
|
Method |
void
JoinSDRNetwork() |
|
Arguments |
None |
|
Return Value[s] |
None |
|
Description |
Join into Service Discovery Registries Network. |
|
Method |
void
LeaveSDRNetwork() |
|
Arguments |
None |
|
Return Value[s] |
None |
|
Description |
Leave the Service Discovery Registries Network. |
|
Method |
SemanticEngineStatus
getSemanticEngineStatus() |
|
Arguments |
None |
|
Return Value[s] |
Useful information about the Semantic Engine Status. |
|
Description |
Get the status of the semantic engine. |
|
Method |
SemanticDistributedIndexStatus
getSemanticDistributedIndexStatus() |
|
Arguments |
None |
|
Return Value[s] |
Useful information about the Semantic Distributed Index
Status. |
|
Description |
Get the status of the semantic distributed index. |
|
Method |
string GetSDIndexConfigParam(string name) |
|
Arguments |
string name
- The name of the Semantic Distributed Index
configuration parameter to be get. |
|
Return Value[s] |
string value
- The value of the Semantic Distributed Index
configuration parameter. |
|
Description |
Getter operation to retrieve from the local Service
Discovery Registry node the Semantic Distributed Index
configuration. |
|
Method |
void SetSDIndexConfigParam(string name, string
value) |
|
Arguments |
string name
- The name of the Semantic Distributed Index
configuration parameter. |
|
string value
- The value of the Semantic Distributed Index
configuration parameter to be set. |
|
Return Value[s] |
None |
|
Description |
Set operation to update at the local Service Discovery
Registry node the Semantic Distributed Index
configuration. |
|
Method |
void DelSDIndexConfigParam(string name) |
|
Arguments |
string name
- The name of the Semantic Distributed Index
configuration parameter to be delete. |
|
Return Value[s] |
None |
|
Description |
Delete from the local Service Discovery Registry node
the Semantic Distributed Index configuration. |
|
Method |
KVPair[]
GetSDIndexConfig() |
|
Arguments |
None |
|
Return Value[s] |
KVPair[]
config
- The list of Semantic Distributed Index configuration
parameters. |
|
Description |
Getter operation for the whole configuration of Semantic
Distributed Index. |
|