The 7 Things I Know About Cyber Security After 25 Years | April 2024
Cmpe588 Prj Duygucelik
1. 103/20/15
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 Services
Duygu CELIK & Vassilya ABDULOVA
2. 203/20/15
Project 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 Services
Duygu CELIK & Vassilya ABDULOVA
3. 303/20/15
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 Services
Duygu CELIK & Vassilya ABDULOVA
4. 403/20/15
Created 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 Services
Duygu CELIK & Vassilya ABDULOVA
5. 503/20/15
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 Services
CMPE 588 Project: Composable Web Services
Duygu CELIK & Vassilya ABDULOVA
6. 603/20/15
Car 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 Services
Duygu CELIK & Vassilya ABDULOVA
7. 703/20/15
<!-- 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 Information
CMPE 588 Project: Composable Web Services
Duygu CELIK & Vassilya ABDULOVA
8. 803/20/15
<!-- 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">
&concepts;#Price
</process:parameterType>
<rdfs:label>Car Price</rdfs:label>
</process:Output>
Car Price WS Process Information
CMPE 588 Project: Composable Web Services
Duygu CELIK & Vassilya ABDULOVA
9. 903/20/15
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 Services
Duygu CELIK & Vassilya ABDULOVA
10. 1003/20/15
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 Services
Duygu CELIK & Vassilya ABDULOVA
11. 1103/20/15
Example Scenario: Price Information WS. Provides book price
information and car price information services to end users.
CMPE 588 Project: Composable Web Services
Duygu CELIK & Vassilya ABDULOVA
12. 1203/20/15
Implementation
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 Services
Duygu CELIK & Vassilya ABDULOVA
13. 1303/20/15
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 Services
Duygu CELIK & Vassilya ABDULOVA
14. 1403/20/15
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 Services
Duygu CELIK & Vassilya ABDULOVA
15. 1503/20/15
A 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 Services
Duygu CELIK & Vassilya ABDULOVA
19. 1903/20/15
CONCLUSION
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 Services
Duygu CELIK & Vassilya ABDULOVA