Concurrent Objects à la Carte (original) (raw)
Related papers
Extending programming languages to deal with the challenges of service-oriented computing
Object-oriented programming languages such as Java are increasingly used to implement service-oriented applications. Such applications introduce a number of new challenges that are largely non-existent in local desktop applications. Contrary to interactions between local objects, a ser-vice interaction requires the caller to search for candidate services, select the proper one, and invoke the operation in a service environment that is inherently dynamic and volatile. Current object-oriented applications largely ignore these challenges and put the burden of implementing the technical details of a service interaction on the programmer. Without language, compiler or runtime support for handling these challenges, the application programmer becomes responsible for taking care of them. This leads to code that is a mixture of functional code (the business logic) and non-functional code for service retrieval, service selection and injection. It decreases the comprehensibility of the source ...
Service-Oriented Programming - Supporting Emerging Variations of Object-Oriented Programming
Much of the object-oriented software produced today is written in programming languages in which clients request services from specific objects. But important areas of software development, like aspect-oriented, pervasive, service-oriented, grid, and event- driven, require a more flexible model for how services are found. We describe here a re-interpretation of familiar object-oriented concepts that enables object-oriented software to be much less dependent on the structure of the implementations of the services that they call. This new interpretation of the concepts of object, reference, and method call is intentionally structured to extend the existing interpretation, allowing existing software to be carried forward compatibly and even to exploit some of the flexibility it introduces. We outline important features of a new programming language, Continuum, under development by the Software Structure Group at Trinity College Dublin, that is intended to more directly address needs of...
Programming service oriented applications
2008
Service Oriented Computing (SOC) is an emerging programming paradigm for designing interoperable applications distributed over the network. It is based upon the concept of service which is an autonomous loosely coupled interoperable platform-independent computational entity which can be dynamically discovered and composed in order to obtain different systems which achieve different tasks. Services can be accessed by public interfaces which are standardized and stored within service registers that aim at being queried by other applications for retrieving, at run-time, a specific service for a specific task. Services can be reused and replaced depending on the execution context of the specific distributed application and they can be exploited by different application systems at the same time. E-government, e-business and e-science are some examples of the IT areas where Service Oriented Computing will be exploited in the next years and, recently, big industries and consortia like Microsoft, IBM, W3C, OASIS only to mention a few, are putting several efforts for developing tools and standards for SOC applications. So far, some frameworks like Corba [OMG], Java RMI [Sun] and Web Services have been proposed in order to deal with service oriented applications. Corba and Java RMI extend the object-oriented paradigm to network applications by supplying a framework where objects can be created and accessed remotely, whereas Web Services is the most credited technology which deals with Service Oriented Computing. The Web Services are a standardized XML-based technology [W3Ca] defined by means of several specification documents developed by different organizations, consortia and industries whose most important goal is the interoperability achievement. There are three specifications that are commonly considered the cornerstone of the Web Services technology: WSDL [W3Cf], SOAP [W3Cb] and UDDI [Oasa]. The WSDL specification deals with a language which allows for the description of a Web Service interface, the SOAP specification defines a protocol for message exchanges among Web Services and the UDDI one deals with the dynamic discovery of a Web Service. Although Service Oriented Computing raises a lot of interests in the computer science and business communities, at the present, there not exists any kind of shared formal definition for SOC nor a formalization of a service oriented programming paradigm. This fact implies that the main concepts service oriented paradigm is based upon can be extracted only from practical experiences and case studies (as in [AKR + 05, CNM06, UE]), technology documentations and informal documents released by industrial consortia like in [OAS06, W3Ce]. Although the present technologies provide powerful means for dealing with SOC application design, the fact that SOC is not precisely defined in terms of formal definitions is becoming, day by day, a strong limit for its development. Features like dynamic discovery and composition indeed, need a common understanding on the basic mechanisms SOC applications are based upon in order to be achieved by different designers by exploiting different tools. Nowadays, it is possible to observe a common interest of the industrial world and the academic one to investigate formal models for describing service oriented approach [CFNS05, WCG + 06, FLB06]. To this end, conferences and workshops are organized for sharing both industrial and academic investigations such as [KLN07, ADR07] and, recently, the European Union has funded an integrated project from which this contribute comes from, that is called SENSORIA [WCG + ] and whose aim is to develop both theoretical foundations and designing tools for SOC applications.
Formalizing languages for service oriented computing
2007
Service Oriented Computing is a new programming paradigm for addressing distributed system design issues. Services are autonomous computational entities which can be dynamically discovered and composed in order to form more complex systems able to achieve different kinds of task. E-government, e-business and e-science are some examples of the IT areas where Service Oriented Computing will be exploited in the next years. At present, the most credited Service Oriented Computing technology is that of Web Services, whose specifications are enriched day by day by industrial consortia without following a precise and rigorous approach. This PhD thesis aims, on the one hand, at modelling Service Oriented Computing in a formal way in order to precisely define the main concepts it is based upon and, on the other hand, at defining a new approach, called bipolar approach, for addressing system design issues by synergically exploiting choreography and orchestration languages related by means of ...
Asdl: A wide spectrum language for designing web services
… of the 15th international conference on …, 2006
A Service oriented system emerges from composition of services. Dynamically composed reactive Web services form a special class of service oriented system, where the delays associated with communication, unreliability and unavailability of services, and competition for resources from multiple service requesters are dominant concerns. As complexity of services increase, an abstract design language for the specification of services and interaction between them is desired. In this paper, we present ASDL (Abstract Service ...
A Model of Service Oriented Computation
2008
We propose a motivation from "first principles" of a small set of abstractions for expressing and analyzing service based systems. In particular, we suggest the aspects of distribution, process delegation, communication and context sensitiveness, and loose coupling as specific to the service-oriented computational model. Distinguishing aspects of our model are the adoption of a very simple, context sensitive, message-passing local communication mechanism, and a novel mechanism for handling exceptional behavior. We instantiate our model by extending of a fragment of the π-calculus, and show that behavioral equivalences, defined by strong bisimilarity and weak bisimilarity, are congruences for all operators.
Service-oriented programming with Jolie
The wide adoption of service-oriented computing has led to a heterogeneous scenario formed by different technologies and specifications. Examples can be found both at the design level —the frameworks for defining services and those for defining their coordination feature fundamentally different primitives— and at the implementation level —different communication technologies are used depending on the context. In this chapter we present Jolie, a fully-fledged service-oriented programming language. Jolie addresses the aforementioned heterogeneity in two ways. On the one hand, it combines computation and composition primitives in an intuitive and concise syntax. On the other hand, the behaviour and deployment of a Jolie program are orthogonal: they can be independently defined and recombined as long as they have compatible typing.
A formal model for service-oriented interactions
Science of Computer Programming, 2012
In this paper, we provide a mathematical semantics for a fragment of a language -SRML-that we have defined in the IST-FET-GC2 Integrated Project SENSORIA for modelling service-oriented systems. The main goal of this research is to make available a foundational basis for the development of practical modelling languages and tools that designers can use to model complex services at a level of abstraction that captures business functionality independently of the languages in which services are implemented and the platforms in which they execute. The basic artefact of the language is the service module, which provides a model for a complex service in terms of a number of components that jointly orchestrate a business function and may dynamically discover and bind to external parties that can deliver required functionalities. We define a mathematical model of computation and an associated logic for service-oriented systems based on the typical business conversations that occur between the parties that deliver a service. We then define the semantics of SRML service modules over this model and logic, and formulate a property of correctness that guarantees that services programmed and assembled as specified in a module provide the business functionality advertised by that module. Finally, we define an algebraic operation of composition of service modules that preserves correctness. To the best of our knowledge, there is no other formal approach that has been defined from first principles with the aim of capturing the business nature of service conversations and support service assembly based on the business logic that is required, not as it is programmed.
SOCK: A Calculus for Service Oriented Computing
Lecture Notes in Computer Science, 2006
Service oriented computing is an emerging paradigm for designing distributed applications where service and composition are the main concepts it is based upon. In this paper we propose SOCK, a threelayered calculus equipped with a formal semantics, for addressing all the basic mechanisms of service communication and composition. The main contribute of our work is the development of a formal framework where the service design is decomposed into three fundamental parts: the behaviour, the declaration and the composition where each part can be designed independently of the other ones.
Reasoning About a Service-oriented Programming Paradigm
Electronic Proceedings in Theoretical Computer Science, 2009
This paper is about a new way for programming distributed applications: the service-oriented one. It is a concept paper based upon our experience in developing a theory and a language for programming services. Both the theoretical formalization and the language interpreter showed us the evidence that a new programming paradigm exists. In this paper we illustrate the basic features it is characterized by.