|
Overview
Services are fundamentally different from objects or components, yet are often
implemented using mainstream object-oriented languages. This research explores
the quintessential nature of services to synthesize a new programming language
with explicit support for service oriented computing. A prototype compiler is
being developed to validate in practice the ideas this research generates.
For more details on the GPSL project see the following site:
http://www.serviceorientation.com.
A prototype compiler is available here.
Requires .NET Framework 2.0 and Microsoft Web Services Extensions (WSE) 3.0. There are a number of
KnownBugsAndIssues.
Please report bugs to mailto:editor@serviceorientation.com.
Research team
Researchers
Marlon Dumas
Associate Professor Paul Roe
Research Students
Dominic Cooney
Papers
Dominic Cooney, Marlon Dumas, and Paul Roe. GPSL: A Programming Language
for Service Implementation. To appear at
FASE,
ETAPS 2006.
Abstract: At present, there is a dichotomy of approaches to supporting web service
implementation: extending mainstream programming languages with libraries
and metadata notations vs. designing new languages for service-oriented
programming. While the former approach has proven suitable for interconnecting
services on a simple point-to-point fashion, it turns to be unsuitable for
coding concurrent, multi-party, and interrelated interactions requiring
extensive XML manipulation. In this paper we introduce a new web service
programming language with a set of features designed to address this gap.
We describe the implementations in this language of non-trivial scenarios
of service interaction and contrast them to the corresponding BPEL
implementations. We also present the core semantics of the language.
Dominic Cooney, Marlon Dumas, and Paul Roe.
Programming and Compiling Web
Services in GPSL. Lecture Notes in Computer Science, Volume 3826, Nov 2005,
p. 508-513. Proceedings of the Third International Conference on
Service-Oriented Computing (ICSOC 2005), The Netherlands, December 12-15, 2005.
Abstract: Implementing web services that participate in long-running, multi-lateral
conversations is difficult because traditional programming languages are
poor at manipulating XML data and handling concurrent and interrelated
interactions. We have designed a programming language to deliberately
address these problems. In this paper we describe how to use this language
to consume a popular web service, and discuss the compiler, including the
kinds of semantic checks it performs, and the runtime environment.
D. Cooney, M. Dumas, and P. Roe. A Programming Language for Web Service
Development. In Proceedings of the 28th Australasian Computer Science
Conference (ACSC), Newcastle, Australia, February 2005. Australian Computer
Society. [pdf]
Abstract: There is now widespread acceptance of Web services and service-oriented
architectures. But despite the agreement on key Web services standards there
remain many challenges. Programming environments based on WSDL support go
some way to facilitating Web service development. However Web services
fundamentally rely on XML and Schema, not on contemporary programming
language type systems such as those of Java or .NET. Moreover, Web services
are based on a messaging paradigm and hence bring forward the traditional
problems of messaging systems including concurrency control and message
correlation. It is easy to write simple synchronous Web services using
traditional programming languages; however more realistic scenarios are
surprisingly difficult to implement. To alleviate these issues we propose a
programming language which directly supports Web service development. The
language leverages XQuery for native XML processing, supports implicit
message correlation and has high level join calculus-style concurrency
control. We illustrate the features of the language through a motivating
example.
|