An important approach to design a
composition of services is to do so not
from the perspective of one party, but
from a representation of interactions
between two or more autonomous
parties. Protocols are specifications
of interactions that assiduously disregard the implementations of the services, but describe the interactions:
protocols thus promote interoperability among heterogeneous and autonomous services.
23 Newer approaches
for protocols accommodate data representations, but additional research
is needed to bridge the gap between
interaction and data. An important direction is to formalize sociotechnical
interactions as a basis for governance
of autonomous services.
20
Service composition. Future research in service composition should
target the following topics:
Large-scale Web and cloud service
composition. Service composition research should extend to non-WSDL-described services or services described by plain text. As an example,
ProgrammableWeb.com hosts over
10,000 API services and over 6,000
service mashups, with a great majority described in plain text. Web information extraction, natural language
processing, data and text mining, collaborative tagging, and information
retrieval technologies can be used to
extract useful semantics, group relevant services, and detect novel composition patterns. Nevertheless, short
service descriptions comprised of limited terms coupled with the diverse
naming conventions used by service
providers pose novel challenges that
demand technological innovations
to advance the state of the art in both
service computing and all relevant domains. Furthermore, a software system may need to evolve during its life
cycle and be able to handle the changes in its running environment and the
increasing complexity of its workflows.
Self-adaptive software evaluates its behavior and makes adjustment according to the evaluation result to address
issues and improve performance.
A cloud-computing environment
provides an attractive option for de-
ploying services, because of the poten-
tial scalability and accessibility it of-
fers. However, it introduces problems
related to:
incorporating possibly billions of
things, and harnessing their data and
functionality to provide novel smart
services that benefit enterprises, in-
dustries, and our society. The funda-
mental IoT challenges as related to
service computing are:
1. Continuously maintaining cyber
personalities and contexts for Io T devices. In particular, Io T things need to
have Web identities and Web representations (for example, Web proxies) that
reflect their physical spaces. They also
need to connect and communicate
within social, environmental, user-centric, and application contexts, and
such contexts need to be maintained
and managed.
2. Continually discovering, integrating, and (re)using Io T things and their
data. Specifically, the Io T environment
is a federated environment where
things and their data, cloud services,
and IT services (for example, for data
analysis and visualization) are often
provided by independent providers
with diverse interfaces, as well as business, cost, and QoS models. To provide
new Internet-scale services, the IoT
must (re)use IoT things deployed by
others and data collected by others for
their own purpose.
Service Computing
Research Roadmap
Following the major challenges identified earlier, we now propose a research roadmap for service computing. The roadmap focuses on four
emerging research areas, namely
service design, service composition,
crowdsourcing-based reputation, and
Internet of Things.
Service design. Research should
focus on laying the foundation for
service design drawing from similar
research in databases, software engineering, and distributed systems.
The design of service systems should
build upon a formal model of services
that enables efficient access to a large
service space with diverse function-
alities. The service model can sup-
port accessing services much as the
relational model supports accessing
structured data. As service composi-
tion is usually needed to fulfill com-
plex user requests, it is important for
the service model to support depen-
dency relationships among different
services and their operations. Similar
to the relational model, the service
model should enable the design of ser-
vice query algebra and calculus that
allow general users to declaratively
query multiple services in a transpar-
ent and efficient manner. In addition,
service query optimization should go
beyond just generating efficient query
execution plans. As a large number of
service providers may compete to of-
fer similar functionalities, the design
of the service model should support
the implementation of optimization
strategies for finding the “best” Web
services or composition thereof with
respect to the expected user-supplied
quality. In sum, a formal service mod-
el that meets the requirements noted
here will take center stage to provide
efficient and transparent access to
computing resources through servic-
es, which is a critical step to reach the
full potential of service computing.
Recent work25 has shown great
promise in designing and using a formal service model to help users access
service. A set of algebraic operators, defined based on a formal service model,
provides standard ways to manipulate
services as first-class objects. These
include choosing specific operations
from a service as well as quality-based
service selection and mashup operators across multiple services to form
a composed service. The implementation of these operators enables the
generation of service execution plans
that can be directly used by users to
access services. Due to functional dependency and quality dimensions, a
service model is more complex than a
relational data model.
In particular, three key features of
services are crucial: functionality, behavior, and quality. Functionality is
specified by the operations offered by
a service; behavior reflects how the service operations can be invoked, and is
decided by the dependency constraints
between service operations; quality
determines the non-functional properties of a service. A viable service query
language should allow users to locate
and invoke their desired functionalities, select the best service providers
that meet their quality requirements,
and generate service compositions
when functionalities from multiple
services are required.