112/14/2015 discovery of composable web services presented by: duygu Çelİk submitted by: duygu...
TRANSCRIPT
104/22/23
Discovery of Composable Web Services
Discovery of Composable Web Services
Presented by:Duygu ÇELİK
Submitted by:Duygu ÇELİK & Vassilya ABDULOVA
Submitted to:Assoc.Prof.Dr.Atilla ELÇI
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
204/22/23
Project Goal and ImplementationProject Goal and Implementation
Goal: develop an application that could extract relationships between Web Services and decide on whether these services are composable.
The project implementation consists of three parts:– Creating Web Services using OWL-S– writing Java code for extraction of relationships between
Web Services– JSP (Java Server Pages)/HTML code development of user
interface.
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
304/22/23
Load Distribution of the Project:Load Distribution of the Project:
Plan
Duygu: – Development of Java code for extraction of relationships
between Web Services– Defining composability of Web Services
Vassilya: – Creating Web Service ontologies using OWL-S
(BookPrice.owl, BookFinder.owl, CarPrice.owl, CarFinder.owl, CurrencyConverter.owl) and establishing relationships between them
– Creating an example scenario– Development of a web application in JSP
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
404/22/23
Created Web Services For TestingCreated Web Services For Testing
The program tries to find relationships chain A sequence for composability relation between
different Web Services (WS). Create five choices of web services:
– Book Finder WS, – Book Price WS, – Car Finder WS, – Car Price WS and – Currency Converter WS.
OWL-S was used to develop ontologies for these services.
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
504/22/23
OWL-S is a set of ontologies for describing web services.It has been developed to provide the building blocks for encoding rich semantic service descriptions based upon OWL the semantic web language recommended by W3C.It consists of three main upper ontologies used to describe three features of the services:
The Profile facet is essentially used for describing the non-functional properties (service name, category, quality of service etc.)The Process facet gives a detailed description of a service operation, its inputs and outputs and can even detail its internal processes.The Grounding facet provides details on how to interoperate with a service via messages.
OWL-S and Web ServicesOWL-S and Web Services
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
604/22/23
Car Price WS Ontology CreatedCar Price WS Ontology Created
This service takes information about the car as an input and returns the price of the car.
<!-- Service description --><service:Service rdf:ID="CarPriceService">
<service:presents rdf:resource="#CarPriceProfile"/><service:describedBy rdf:resource="#CarPriceProcess"/><service:supports rdf:resource="#CarPriceGrounding"/>
</service:Service>
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
704/22/23
<!-- Profile description -->
<mind:CarInformationService rdf:ID="CarPriceProfile">
<service:presentedBy rdf:resource="#CarPriceService"/>
<profile:serviceName xml:lang="en">Car Price</profile:serviceName>
<profile:textDescription xml:lang="en">
This service returns the price of a car.</profile:textDescription>
<profile:hasInput rdf:resource="#CarInfo"/>
<profile:hasOutput rdf:resource="#Price"/>
</mind:CarInformationService>
The service profile gives the information needed for an application to discover a service.
Car Price WS Profile InformationCar Price WS Profile Information
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
804/22/23
<!-- Process description --><process:AtomicProcess rdf:ID="CarPriceProcess">
<service:describes rdf:resource="#CarPriceService"/><process:hasInput rdf:resource="#CarInfo"/><process:hasOutput rdf:resource="#Price"/>
</process:AtomicProcess>
<process:Input rdf:ID="CarInfo"><process:parameterType rdf:datatype="&xsd;#anyURI">
&xsd;#string</process:parameterType><rdfs:label>Car Info</rdfs:label>
</process:Input>
<process:Output rdf:ID="Price"><process:parameterType rdf:datatype="&xsd;#anyURI">
¤cy;#Price</process:parameterType><rdfs:label>Car Price</rdfs:label>
</process:Output>
Car Price WS Process InformationCar Price WS Process Information
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
904/22/23
Composability of Web Services
Composability of Web Services
See next figure: Input/Output relationships between some services.
Applied Logic:
One of the outputs of one service should match one of the inputs in another
service .
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1004/22/23
Book Finder WS
Inputs:
Outputs:
Book Price WS
Inputs:
Outputs:
Car Price WS
Inputs:
Outputs:
Car Finder WS
Inputs:
Outputs:
CarMake
CarModel
CarInfoCarInfo
PricePrice
BookISBNBookISBN
BookName
Currency Converter
WS
Inputs:
Outputs:
Currency
ConvertedPrice
Price
1
2 4
3
I/O Relationships-Services’ Processes
1. Book Finder WS => Book Price WS => Currency Converter WS.2. Car Finder WS => Car Price WS => Currency Converter WS.
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1104/22/23
Example Scenario: Price Information WS. Provides book price information and car price information
services to end users. Price
Information Web Service
Book Finder Web Service
Book Price Web Service
Car Finder Web Service
Car Price Web Service
Currency Converter Web
Service
End User 1End User 2
BookISBN (1.4)
Price (1.5)
CarInfo (2.4)
Price (2.5)
Currency (1.3, 2.3) ConvertedPrice (1.6, 2.6)
BookName (1.2) CarMake, CarModel (2.2)
BookName, Currency (1.1)
ConvertedPrice (1.7)
CarMake, CarModel, Currency (2.1)
ConvertedPrice (2.7)
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1204/22/23
ImplementationImplementation
The software is developed in Java platform.
The system used some important and useful tools that are
developed for semantic web technologies such as some APIs.
Those tools were helpful for retrieving necessary information
from OWL and OWL-S files.
Those tools are imported in Java Net beans 5.5 which are Jena
2.0 OWL API and OWL-S API.
Two JSP pages (user interface) and Java Classes (functions)
were created.
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1304/22/23
Extraction of Process I/O Info from OWL-S Ontology Files
Extraction of Process I/O Info from OWL-S Ontology Files
software opens the one of owls extract its all processes’ inputs and outputs terms we compare them and get relations between them Check if exists one service output is an input for another one. The system used OWL-S API to extracting each service’s
processes I/O Terms./********************************************************/ public List AllInputs() { InputList inputList=process.getInputs(); List allInputsList=new LinkedList(); for(int i=0;i<inputList.size();i++) { allInputsList.add(inputList.inputAt(i).getLocalName()); } return allInputsList; } /********************************************************/ public List AllOutputs() { OutputList outputList=process.getOutputs(); List allOutputsList=new LinkedList(); for(int i=0;i<outputList.size();i++) { allOutputsList.add(outputList.outputAt(i).getLocalName()); } return allOutputsList; }
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1404/22/23
System Working on Some Existing Ontologies
System Working on Some Existing Ontologies
Five different ontology files were taken into consideration for finding a relationship chain between them:
SelOntFiles[0]="http://by.emu.edu.tr/ont/BookFinder.owl";
SelOntFiles[1]="http://by.emu.edu.tr/ont/BookPrice.owl";
SelOntFiles[2]="http://by.emu.edu.tr/ont/CurrencyConverter.owl";
SelOntFiles[3]="http://by.emu.edu.tr/ont/CarFinder.owl";
SelOntFiles[4]="http://by.emu.edu.tr/ont/CarPrice.owl";
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1504/22/23
A Case Study for the System TestingA Case Study for the System Testing
Assume some web services’ are found relational by any discovery system/agent
A system/agent may require a relation chain for those web services.
Such software can catch relations to finding composable web services.
If one service process produce an output which is a required input for performing by another service’s operation.
Therefore we can say that those services are related each other and most probably both service needed by the client/agent.
Next figure is showing a case study.
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1604/22/23
Index.jspIndex.jsp
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1704/22/23
Result.jspResult.jsp
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1804/22/23
Result.jsp (Cont)Result.jsp (Cont)
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
1904/22/23
CONCLUSIONCONCLUSION
We successfully implemented an application that extracts relationships between Web Services and decides on whether these services are composable. Moreover, we developed five Web Services using
OWL-S and tested their composability using the
developed application, which was implemented in Java. Finally, we developed a web application using JSPs,
which allows users to select some Web Services and
provides composability report to the user.
CMPE 588 Project: Composable Web ServicesDuygu CELIK & Vassilya ABDULOVA
2004/22/23
Running The Software…Running The Software…
Then Questions?