Tmp29a9 TMP
Tmp29a9 TMP
Mohamed Dbouk
Department of Computer Science,
Faculty of Sciences (I), Lebanese University,
Rafic-Hariri Campus, Hadath-Beirut, Lebanon
Ahmad Karawash
Ecole Doctorale des Sciences et de Technologie, Lebanese University,
Rafic-Hariri Campus, Hadath-Beirut, Lebanon
Abstract: SOA and Cloud Computing are making major changes in the way
companies build and deploy applications. The challenge is to meet the business
expectation of faster delivery of new functionality, while at the same time
maintaining control of application performance and availability across a
growing network of service providers. SOA facilitates the development cycle
by providing common features to everyone. However, SOA has some
disadvantages such as the lack of information of what a service can provide and
how can we discover it. When working with web services, the number of
exposed methods or functions becomes a problem for developers. We do not
need to deal with whole services if a developer needs to call one function. This
article suggests and validates a new selected service model for the SOA. The
layout presentation and the communication is described between client and
services.
Keywords: Service Oriented Computing; Meta-Model; Web services; Cloud
Computing.
Reference to this paper should be made as follows: Mcheick, H. and Dbouk,
M. (2012) Developing Service Oriented Computing Model Based On ContextAware, Int. J. Communication Networks and Distributed Systems, Vol. X, No.
Y, pp.000-000.
Biographical notes: Hamid Mcheick is currently an associate professor in
Computer science department at the University of Quebec At Chicoutimi
(UQAC), Canada. He holds a master degree and PhD. in software engineering
from Montreal University, Canada. Professor Mcheick is interested in software
development and architecture for enterprise applications as well as in
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
392
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
Introduction
In the last decade, there has been lot of changes in the way software are developed and
deployed. We started by the Assembly language (early 1950), to C language to support
the concept of modules (1972), in which a developer could split his application into
different C files or modules, to object-oriented methodology and languages (1985: C++,
1996: Java). SOA began its first steps in 2000, to replace Objects by Services. These
services can be consumed like any function in a class. The SOA has overcome many
challenges, mainly the interoperability and the reusability.
The software development practices have evolved a lot. Applications have become
more distributed in terms of their physical execution and the development of components.
Service-oriented approach has become an important alternative to traditional software
development [Cloud, 2012]. Applications such as Yahoo and Google can be considered
as success stories in the SOA implementation [Kiciman, and Livshits, 2010]. But also,
SOA has some drawbacks, services are published over the Internet and ready to be called
by clients applications but their metadata are limited. A developer can pass many hours
while trying to discover the functions provided by a service or by reading a document
describing these functions. There is no automatic method to filter or search a service.
This article proposes a method to publish the layout of each service and the layout of the
desired service that a client application needs. We suggest a model for the
communication between these two entities (layout of a service and the layout of a client
application).
For example, a web service can be published over the internet, it can provide the
prices of the stocks and the index of the local market, the regional markets, the European
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
393
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
market, and other functions can be provided to retrieve historical data about each market.
Also we can have functions that display charts on how the prices are moving during the
last month. Such functions are bounded and published in one service but a developer may
need the price of one index in his country, so why does he need to worry about all these
functions? Our model tries to solve this problem.
Such problem is frequent in real world, since large corporations tend to publish web
services with lot of functions in one package or service. The reason is that these services
may belong to the same application domain. We aim to build a logic layer that will
hide the unused functions of one or more services and show the functions requested
by a client application. As stated in this section, the functions needed by a client
application are highlighted in its layout.
We propose two methods of implementing this model:
1. Materialized. The logic layer built between the service and the client application
will be static; it is not updated at each service call.
2. Virtual or Cloud Computing. The logic layer built between the service and the
client application will be dynamic; it is updated at each service call.
We explain the SOA concepts and reflection methodology related to our work in
section 2. Section 3 describes related works in the service computing adaptation and
composition. Section 4 describes our model of ASC. Our experimental work is detailed in
section 5 in addition to a comparison between our model and previous models. Finally we
present the conclusion and the future works in section 6.
Background
This section explains briefly the service-oriented architecture, web services, services
types and refection that are used in our research.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
394
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
SOAP - This protocol is mainly used to exchange information over HTTP and over the
internet. It describes how a message can be crammed into an XML document, it
illustrates how a SOAP message should be transported through the Web and it puts set of
laws and conventions that must be followed when processing a SOAP message.
The SOAP message body is designed to carry textual information. This is referred to
as payload [Panda, 2005].
The exchange of information can be in a synchronous, where exchange of information
takes place in a request/response form, and asynchronous mode, where exchange of
information between several applications uses the message queuing route.
WSDL - The Web Services Description Language (WSDL) is an extension of the
Extensible Markup Language (XML); it provides a mixture of tags including a complete
description of a service.
WSDL forms one of the core building blocks of web services [UDDI, 2011]. Web
services involve 3 participants: service provider, service broker, and service requester.
The requester can also be called the web service client. A provider can be a system
providing services. A requester can be a system in need of this service. The broker is a
system that helps both provider and requester to discover each other [WebService, 2012].
UDDI - Universal Description, Discovery and Integration (UDDI) are a specification for
the XML-based registries to list and find services on the World Wide Web [UDDI, 2011].
Registries are the electronic databases that enable businesses to store and access the
services in an XML format. A registry can be a public registry or a private registry.
UDDIs goal is to promote online collaboration among the business in the world. UDDI
is an XML document composed of businessEntity that describe the organization that
provides the service, businessService which contains list of web services presented by the
business entity, bindingTemplate that describes the technical side of the service and
tModel (technical model) that store additional information about the service.
There are several steps in the entire Web Service process:
- Creation of the service by the service provider, and generation of WSDL
document.
- The provider publishes the services in UDDI registries. The service publication
includes the details of the provider.
- Publication of the location of the WSDL document in the registry exposes the web
services to the community.
- The client side searches in the service registry by an SOAP-RPC invocation.
- To understand the web service semantics, the client side downloads the WSDL
document and examines it.
- Service is invocated via a SOAP request over a transport protocol such as http.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
395
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
Conceptual
Service
Analysis
Service
Design
Service
Solution
Service
2.4 Reflection
Reflection is the technology by which a program can view and modify its own structure
and behavior. This is exactly how Reflection in Java and C# works. The ability to
examine and change information about an application during runtime, offers huge
potential [CodeSource, 2005]. In traditional software methodologies, developers are able
to read/update their classes or components during design time, which means before
running a program. With reflection, this manipulation is also available during run time,
this leads to great flexibility to developers. Reflection is both a general term, as well as
the actual name of the reflection capabilities in C# [CodeSource, 2005].
In many applications, we might need to save the users settings. When we get several
settings, we can create a Settings class, which will handle loading and saving of the
desired settings. Each time we need a new setting in our Settings class, we will have to
update the Load() and Save() methods, to include this new setting. With Reflection, we
can let the Settings class discovers its own properties and then loads and saves them
automatically [Liberty, 2001].
Related works
Initially web services discovery was primarily syntactic. After development of semantic
Web technologies, the proposed techniques for web service discovery became essentially
semantic (level of semantic similarity between terms query and semantic web services
description). This section describes three approaches of discovery services: Syntactic,
Semantic and context-awareness.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
396
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
set of expert agents which are linked to the agent composition. These agents invoke a
service according to user's choice.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
397
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
conditions of use of the service, and then it compares the context of the
environment with conditions of use.
WebService-21
WebService-i1
WebService-12
WebService-22
WebService-i2
Service provider-1
Service provider-2
Service provider-i
WebService-11
WebService
publishing
Server
WebService-12
WebService-21
Client
WebService-i1
Figure 3 displays the current problem with the SOA architecture. In this figure, a
developer is working on a client application Application 1. This application needs to
call method i of the service 1. In this case, the developer will have all methods of service
1 available. This service might have hundreds of functions depending on its complexity
or its business domain, while the developer needs only one method.
Another example illustrated in this figure, a developer is working on a client
application Application 2. This application needs to call method i of the service 2 and
method j of the service n. In this case, the developer will have all methods of service 2
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
398
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
399
and service n available. Similar to the first case above, these services might have
hundreds of functions depending on their complexity or their business domain, while the
developer needs only one method of each service.
Service Provider - 2
Service Provider - n
WebService-1
WebService-2
WebService-i
WebService-m
Method-11
Method-21
Method-i1
Method-m1
Method-12
Method-22
Method-i2
Method-m2
Publishing
Server
This application wants
to call/use only one
method of service -1!
Client Application-1
All methods of
service-1 are
exposed!
Client Application-2
Client Application-n
Each service should be published with its layout. For example: the service S1 is
published with its layout Ct1.
2.
The layout Ct1 should contain the following fields: Business Domain; Category;
URL Function Name; List of the input parameters types; Output type of the
function; Dependency; Data constraint, example; the account number maximum
length is 15 digits. The date format is mm/dd/yyyy; Username, some services may
need credentials to be accessed; Password, some services may need credentials to be
accessed. Description, example: this function returns the list of indices available in
Beirut Stock exchange. Last update date; this is an indicator to the developer if the
function is being updated frequently.
3.
When an application needs to call a service, it should also provide its layout.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
4.
The layout of a client application should contain some (or all) of the following
fields:
a) Business Domain.
b) Category.
c) Function Name.
d) Input parameters types (mapping the service and the client application).
e) Returned type.
f) Web server URL, which represents the server where this service is hosted.
g) Username, some services may need credentials to be accessed.
h) Password, some services may need credentials to be accessed.
i) The description.
j) The last update date.
The layout of the client application may contain some of the above fields, as much as this
layout is detailed, which means many properties are filled, then the matching with the
layout of the service will be easier and accurate.
1.
2.
3.
4.
5.
6.
7.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
400
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
Using this object model, the client application calls the needed functions only and
disregards all other methods (table 1). The layout of the service is of the form: Name
Value
Example: a service contains 3 web methods:
1. Make Transfer.
2. Approve Transfer.
3. Add Beneficiary.
Name
Value
Domain
Category
URL
FunctionName
InputParam1
InputParam2
InputParam3
OutputParam
Username
Password
Description
LastUpdateDate
Domain
Category
URL
FunctionName
InputParam1
OutputParam
Username
Password
Description
LastUpdateDate
Domain
Category
URL
FunctionName
InputParam1
InputParam2
InputParam3
InputParam4
OutputParam
Username
Password
Description
LastUpdateDate
Financial
Banking
http://192.168.1.111/MyService.asmx
MakeTransfer
Integer
Integer
Decimal
Integer
NA
NA
This function is used to transfer money between 2 accounts
01/05/2011
Financial
Banking
http://192.168.1.111/MyService.asmx
ApproveTransfer
Integer
Integer
user123
12345678
This function is used to approve a transfer operation
01/05/2011
Financial
Banking
http://192.168.1.111/MyService.asmx
AddBeneficiary
String
String
Integer
String
Integer
NA
NA
This function is used to add a beneficiary
01/05/2011
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
401
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
If we have a client application that needs to calls the MakeTransfer and the
AddBenficiary functions of this service. The model that will represent this request
might be as shown in table 2.
Name
Value
Domain
Category
URL
FunctionName
InputParam1
InputParam2
InputParam3
OutputParam
Username
Password
Domain
Category
URL
FunctionName
InputParam1
InputParam2
InputParam3
InputParam4
OutputParam
Username
Password
.
Financial
Banking
http://192.168.1.111/MyService.asmx
Integer
Integer
Decimal
Integer
NA
NA
Financial
Banking
http://192.168.1.111/MyService.asmx
String
String
Integer
String
Integer
NA
NA
Experimented works
The service adaptation model that we propose in this research can be implemented in 2
methods:
- Adapting services by searching the metadata using the Web Services Inspection
Language.
- Adapting services by searching the metadata as string comparison.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
402
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
3.
A windows application which represents the client application that needs to call
the web service.
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
403
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
4.
The layout of the windows application which represents in our model the needs
of the application from the service or the specifications of the methods that the
application needs to call.
5.
A layer will be built (DLL); this layer contains the functions that were matched
between the service methods and the requests of the application.
6.
5.3 Comparison
As shown in the comparison table below, the main difference between our model and the
models discussed in the related work section is that our model can be implemented during
the analysis phase of the service development project or even after launching this service
to the public, where as almost all previous models had to be implemented at design level.
Our model can be rapidly used by developers since it requires some XML knowledge
only. Moreover, the most important advantage of our model is that the adaptation is per
client. This means we do not have an adapted or composed model that all clients
applications should use, but in our model, the client defines his needed functions, and
based on this definition, the service is adapted. Our model offers an adaptation per
client. The ASC model has one limitation which is the manual written of the service
layout. If we have a service containing hundreds of functions, the preparation of this
layout will take lot of time.
Related Works
ASC Model
Implementation
Design Level
Difficulty
Adaptation
The SOA technology is being adopted by the most software companies. The published
services need an adaptation or a composition due to many reasons, mainly because when
a service is published, limited information is published about what it can provide. When
working with web services, the huge number of exposed methods or functions becomes a
problem for developers. Also there is no automatic method to filter or adapt services
based on client needs. As for the WSDL file that is automatically created with each web
service, it is hard to read and extract information from it.
We propose a model that will adapt a service per client needs. The result of this
model is a logic layer that shows the functions or services requested by a client and hides
unwanted functions.
Finally, there are a number of unaddressed issues, which, once solved, may turn out
to be very helpful. The automatic update of the DLL was not discussed. If the services
functions were modified due to a software updates, the output of our model which is a
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
404
IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012
ISSN (Online): 1694-0814
www.IJCSI.org
DLL, should be dynamically updated too. We didnt focus on the Information Retrieval
methods on metadata (part 1 of the Experimental Work section).
Acknowledgment
This work was sponsored by Natural Sciences and Engineering Research Council of
Canada (NSERC), the University of Quebec at Chicoutimi (Quebec), Canada and the
Lebanese university, Beirut, Lebanon.
References
Copyright (c) 2012 International Journal of Computer Science Issues. All Rights Reserved.
405