Академический Документы
Профессиональный Документы
Культура Документы
computing,
end-user
I. INTRODUCTION
Large-scale Internet-based distributed systems are one of
the most popular forms of computing systems adopted by
end-users. However, there are no available tools that can be
used by end-users in order to tailor the systems to their own
personal requirements and expectations. End-users need the
support to build new systems easily by incorporating
functionalities of available systems and services. The End
User Development (EUD) is one of the fields in computing
that researches new techniques in software development that
will promote end-users from software users to software
developers. One of research aspects of EUD is development
of new end-user programming languages. End-user
languages should be easy to adopt and give prominence to
design with reusable computing.
Service-Oriented Computing (SOC) is the paradigm for
distributed computing that utilizes services as fundamental
elements for application development. It represents a new
approach in application development moving away from
tightly coupled monolithic systems towards systems of
1
The Service-Oriented Programming Model, Coopetition Distributed
Architecture, Simple Service Composition Language, and Programmable
Internet Environment are developed at the School of Electrical Engineering
and Computing at the University of Zagreb, Croatia, in cooperation with
Ericsson Nikola Tesla d.d., Zagreb, Croatia, and cosponsored by Ministry
of Science, Education, and Sports through the national Cro-Grid project.
More
information
is
available
at:
http://www.ris.fer.hr/,
http://www.pie.fer.hr/ and http://www.cro-grid.hr/.
2
SSCL Program Translator translates SSCL program code
into the CL code.
Following the overview of service composition languages
presented in Section II, the Section III presents the SSCL
language and its features. Section IV describes the SSCL
Program Translator. Finally, Section V concludes the paper
and outlines the main directions of future work.
II. BACKGROUND
Composition of services is described in terms of service
orchestration and service choreography. Orchestration
defines composite application logic by describing services
message level interaction and execution order of the
interactions within a single application process.
Choreography tracks the sequence of messages that may
involve multiple parties and multiple sources, including
customers, suppliers, and partners. Compared to the
orchestration, choreography is concerned with the public
message exchanges that occur between multiple services,
rather than a specific application process that is executed by
a single party. As SOC developed, a number of languages
for service orchestration and choreography have been
introduced: BPEL4WS, BPML, WSFL, XLANG, BPSS,
WSCI, and WSCL [4].
One of the wider accepted languages for service
choreography is Web Services Choreography Interface
(WSCI). The WSCI is an extension of Web Service
Description Language (WSDL) [6]. It defines the message
exchange between Web Services, but does not describe the
controlling process that manages their interaction. The
WSCI specification defines message correlation, sequencing
rules, exception handling, transactions, and dynamic
collaboration.
BPEL4WS is a widely adopted and standardized
language for service orchestration. It is a process description
language suitable for defining workflows consisting of Web
Service invocations. Professional programmers use
BPEL4WS to define a collection of Web Services and to
describe the coordination of their activities. BPEL4WS is
built as a layer on top of the WSDL. WSDL is used to
define the specific operations that are allowed, while
BPEL4WS defines how the operations are sequenced.
Language CL [16] is a lightweight process description
language used for development of distributed applications
based on SOPM. It is a compact combination of BPEL4WS
and WSDL. The program written in CL language is
structured as an XML document consisting of three separate
sections. The first section of CL language includes the
description of program's process logic. The description is
written using a subset of the BPEL4WS language. The
second section of CL program is the WSDL description of
its interface. The third section of a CL program consists of a
set of WSDL documents that describe the interfaces of
external services invoked by the distributed program.
In order to make programming with the service
composition languages easier, a number of graphical
programming environments have been developed, including
WebSphere Studio [10], Oracle BPEL Process Manager
[11], WebMantra [12], and Triana [13]. However, these
tools do not successfully hide all complexity of underlying
3
of Application and Coopetition services, as well as
interpretation of Distributed programs in the Internet
environment. PIE offers simple Web-based tools for
creation and deployment of SOPM applications. The
composition of services is based on the end-user language
SSCL (Simple Service Composition Language).
4
the service IP address and service instance identifier. For
each synchronization and communication service there are
two primitives used to create and destroy individual
instances of the related service.
Two primitives are used for interaction with semaphore.
ObtainSemaphore is a blocking primitive that suspends
the SSCL program execution until the semaphore is
obtained. ReleaseSemaphore is a non-blocking
primitive that releases the semaphore without suspending
the SSCL program execution.
Mailbox communication is based on two primitives,
PutMessage
and
GetMessage.
Parameter
message_body of the PutMessage primitive defines a
SSCL variable that contains the body of the message.
Similarly, parameter in_var of the GetMessage
primitive defines the SSCL variable that stores the received
message. All messages are text-based and enable exchange
of any XML-based data.
Event-channel is accessed using three primitives for
handling events and two primitives for handling
subscriptions. Publish, RePublish, and UnPublish
primitives are used to publish, update, and remove events
respectively. These primitives include parameter event
that references the variable containing the text-based
description of an event. Subscribe and UnSubscribe
primitives are used to subscribe and unsubscribe to and
from a specific set of events. These primitives include two
parameters that reference the resource ID and IP address of
external event interpreter that performs advanced contentbased analysis of events.
Figure 3 presents an example of inter-service
communication and coordination. The example consists of
three SSCL programs that use mailbox and semaphore
services for communication and synchronization. Three
SSCL programs, A, B, and C, are executed in parallel on
nodes 1, 3, and 5. Mailbox service is hosted by Node 2,
while semaphore service is hosted by Node 4. Web Services
X and Y, which implement custom application logic, are
hosted by nodes 6 and 7. SSCL programs A, B, and C
describe the way in which Web Services X and Y are
invoked in order to achieve the overall goal of the
distributed application.
SSCL program A executed on Node 1 and SSCL program
B executed on Node 3 communicate through the mailbox
hosted by Node 2. SSCL program A uses the PutMessage
primitive to send messages to the mailbox at Node 2. Node
3 reads the messages by using the GetMessage primitive.
5
that are installed on distinct nodes. SSCL translators
continuously execute the three-step process in which an
SSCL Program is read from the Program Queue, translated
to CL program, and scheduled for execution on distributed
CL Interpreter.
SSCL Program Translator provides the scalable and loadbalanced environment for translation of SSCL programs.
Scalability and load balancing are achieved by use of the
Translator Pool, which enables dynamical changes to the
number of translators. Scalability is achieved by adding new
translators to the Translator Pool. Translators automatically
achieve load balancing by competing to fetch programs
stored in Program Queue. Furthermore, Translator Pool
provides basic fault-tolerance. If a fault occurs on one of the
translators, the other translators continue the program
translation process.
SSCL Translator and Program Queue are implemented
using the Web Services set of standards. Therefore, they can
be used in interaction with any distributed system based on
SOC.
B. SSCL Translation Process
The SSCL translation process is presented in Figure 5. It
consists of source SSCL program analysis and generation of
target CL program. SSCL code analysis verifies the lexical,
syntax, and semantic correctness of the program. While
performing semantic analysis, WSDL descriptions of all
invoked Web Services are fetched from service registry.
WSDL descriptions are necessary for semantic analysis and
verification of source program. Furthermore, fetched WSDL
documents are used during CL program generation.
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
open.org/committees/download.php/10347/wsbpel-specificationdraft-120204.htm
G. Fischer, E. Giaccardi, Y. Ye, A. G. Sutcliffe, and N. Mehandijev:
"Meta-design: A Manifesto for End-User Development",
Communications of ACM, Vol. 47, No. 9, September 2004, pp. 3337.
I. Morch, G. Stevens, M. Won, M. Klann, Y. Dittrich, and V. Wulf:
"Component-based Technologies for End-User Development",
Communications of ACM, Vol. 47, No. 9, September 2004, pp. 5962.
W. Butt: "Programmatic control of a long-running BPEL process
with WebSphere Studio", http://www-128.ibm.com/developerworks/
websphere/library/techarticles/0410_butt/0410_butt.html
Oracle BPEL Process Manager, http://www.oracle.com/appserver/
bpel_home.html
WebMantra, http://www.panaceasoftware.com/products/
webmantra.html
S. Majithia, M. Shields, I. Taylor and I. Wang: "Triana: A Graphical
Web Service Composition and Execution Toolkit", Proceedings of
ICWS'04, San Diego, California, June 2004, pp. 514-521.
D. Box and others: "SOAP 1.1", World Wide Web Consortium
(W3C) Note, February 2000., (http://www.w3.org/TR/SOAP)
J.Clark and S. DeRosso: "XML Path Language (XPath) Version
1.0", World Wide Web Consortium (W3C) Recommendation,
November 1999, http://www.w3.org/TR/xpath
D. Skrobo, A. Milanovi, and S. Srblji: "Distributed Program
Interpretation in Service-Oriented Architectures", Proceedings of the
9th World Multi-Conference on Systemics, Cybernetics and
Informatics (WMSCI'05), Orlando, Florida, USA, 2005, Vol. 4, pp.
193-197.
A. Milanovi, S. Srblji, D. Skrobo, D. apalija, and S. Rekovi:
Coopetition Mechanisms for Service-Oriented Distributed Systems,
Proceedings of the CCCT 2005 (The 3rd International Conference on
Computing, Communications and Control Technologies), Austin,
Texas, USA, July 2005, Vol. 1, pp. 118-123.
A. Milanovi: "Service-Oriented Programming Model", Ph.D. thesis
in Croatian, Original title "Programski model zasnovan na uslugama",
School of Electrical Engineering and Computing, University of
Zagreb, Croatia, 2005.
Programmable Internet Environment, http://www.pie.fer.hr