CUC 2005 logo MEETING USERS NEEDS
7th INTERNET USERS CONFERENCE / NOV 21-23,2005 / DUBROVNIK, .HR
Workshops/Tutorials

PIE - An End-User Development Environment for Internet Programming
Matija Podravec, Faculty of Electrical Engineering and Computing, Croatia

Abstract:

In its today’s form, majority of end-users experience the Internet as a global distributed system for publishing, searching, and sharing various kinds of information. Internet users have little or no control over the way Internet behaves, the way it can be used, and the content of information it provides. However, contemporary society requires a global networked system that provides high degree of customization and flexibility in exploitation of Internet resources. In this tutorial, we demonstrate
Programmable Internet Environment (PIE), an end-user oriented framework that enables on-demand creation of customizable, configurable, and programmable environment over shared Internet infrastructure. PIE framework provides Internet users with simple, interactive, and easy-to-use web-browser based interface that enables creation of distributed environment for design, development, deployment, and execution of distributed applications and business processes. Using PIE framework, Internet users can transform the Internet from global information system into global end-user programmable environment.

PIE framework leverages service-oriented programming model for development of distributed applications or business processes. Elementary building blocks in design and development of distributed applications are Web services. Composition of services enables hierarchical construction of complex services by reusing more elementary services, thus facilitating and reducing the development efforts. PIE framework distinguishes between two types of services. Computational services provide domain-specific computational facilities. Coopetition services (cooperation + competition) enable communication and synchronization between computational services. PIE framework provides four types of coopetition services: binary and counting semaphore, mailbox, and event channel.

Development of distributed application consists of design phase and implementation phase. Design of distributed application is divided into decomposition of application logic into a set of independent computational services and definition of coordination logic for proper synchronization of those services. Coordination logic is decomposed into a set of distributed programs. Distributed programs are independent programming units that coordinate the execution of services comprising distributed
application. Distributed program utilizes service composition to connect independent services into composite service that implements the fragment of distributed application. By invoking computational services, distributed program executes application-specific computational logic. Furthermore, by invoking coopetition services, distributed program synchronizes the execution of computational services. The order in which distributed programs invoke computational and coopetition
services is defined by the workflow of distributed application.

Interactive programming environment available within the PIE framework supports the implementation of distributed programs. This environment uses an easyto- use methodology with point-and-click driven programming exposed through a web-browser enabled interface. Process of implementing distributed programs is facilitated through the system of interactive graphical menus. Sequence of menus presented to the user and the content of menu in each step of interactive session is generated dynamically, in dependence of the context the user works with. For example, if user wants to invoke some computational service, context-aware programming environment will instruct him to choose the service location and present him the list of only those nodes on which this service is installed. Based on the sequence of user’s actions through the system of interactive menus, PIE framework generates the workflow of distributed program in the form of text-based service composition language.

Distribution of composite application in the form of Web services across the Internet can be accomplished in two ways. Services can be distributed in a wellknown and standard way by using WWW address space in which each service is identified with Uniform Resource Identifier. However, distribution of Web services across physical communication space tightly couples the services with their physical locations. To facilitate application distribution, PIE framework provides the users with the ability to create virtual communication space on top of the Internet. Virtual communication space is established through a node-centric virtual network. Virtual network utilizes underlying physical network to transmit the data across the Internet, but uses its own address space and routing procedures, independent of physical network. Each node inside the virtual network is assigned with a unique logical name. Virtual network control software maintains the distributed naming and routing tables, which contain information about mapping the logical node names into their physical addresses, as well as instructions for routing the messages between logical nodes.

Utilizing virtual communication space, distributed application is transparent to node mobility and resistant to node failures. In case of failure of physical machine that hosts the required logical node, virtual network control software updates the record in its naming tables, redirecting thus the messages for the same logical node to different physical location. In addition to providing the distribution of application across the virtual communication network, PIE framework enables the users to dynamically manage the virtual network by adding and removing logical nodes as necessary.
Computational and coopetition services that users can deploy over nodes of virtual network have to be available in Service Repository. Service Repository is a special-purpose service that acts as a container of service installation packages. To manage the service deployment process, PIE framework exposes to the users the functionality of adding and removing service installation packages to and from the Service Repository. To store the service installation package into Service Repository, user should provide its executable files, service description written in WSDL language, and service installation script. Service installation package stored once into Service Repository can be used for unlimited number of service deployments.

Service deployment within PIE framework utilizes the functionalities of Service Repository and two additional special-purpose services. Service Registry aggregates all the information about the state of the distributed environment. Among other things, Service Registry contains information about deployment of services over nodes of virtual network and the rest of the Internet. Service Dispatcher is a service whose role is to deploy other services on local logical node. When accepts the user request for service deployment, Service Dispatcher retrieves the service installation package from Service Repository and installs the service on local node. During the installation process, Service Dispather uses the instructions from the service installation script. If installation finishes successfully, Service Dispatcher informs Service Registry that new service is installed and ready for use. Service Dispatcher is automatically deployed on each logical node immediately after its creation. Services that should preserve some stateful information between two or more user requests have to be instantiated before being used. Instantiation of stateful service is accomplished programmatically, by implementing a distributed program that invokes the operation for creating a service instance. In addition, instantiation of coopetition services, as special-purpose stateful services inside the PIE framework, can be accomplished manually, using web-browser enabled interface.

Execution of distributed application within PIE framework is performed in twophase process. During the first phase, distributed programs written in custom-defined service composition language are translated to CL (Coopetition Langugage) language, which is a subset of WS-BPEL. Translation facilities are provided by special-purpose service, called Program Translator. Program Translator fetches distributed programs written in simple service composition language from program queue and puts the translated distributed programs written in CL language into job queue. Both program queue and job queue are instances of mailbox coopetition service. Second phase of
application execution begins with interpretation of distributed programs written in CL language. Interpretation facilities are provided by another special-purpose service, called Program Interpreter. Program Interpreter fetches distributed programs written in CL language from job queue, interprets them, and executes the workflow specified by CL statements.

PIE framework provides the user with full control over distributed program translation and execution processes. According to his preferences, user can deploy and start an arbitrary number of Program Translators and Program Interpreters over nodes of virtual network. The number of started Program Translators and Program Interpreters determines the number of distributed programs that can execute in parallel. For each Program Translator started in the network, user should define two
mailbox instances, one to serve as a program queue, and another to serve as a job queue. Similarly, for each Program Interpreter started in the network, user should define the mailbox instance that will serve as a job queue. Deployment and starting of Program Translators and Program Interpreters, as well as definition of program queues and job queues, are provided through PIE web-browser enabled interface.

Biography

Matija Podravec is a young researcher at the School of Electrical Engineering and Computing, University of Zagreb, Croatia. In 2004, he joined a national “CroGrid” initiative, which gets together leading academic and industrial IT centers in Croatia. His research interests include distributed system design methodologies, Web services, service-oriented architecture and service-oriented programming model, and QoS. In cooperation with Ericsson Nikola Tesla and Croatian Ministry of Science, Education, and Sports, he participated in organization of workshop on design and development of parallel and distributed GRID and Internet applications held in July 2005 at School of Electrical Engineering and Computing.

 

COPYRIGHT © 1991- 2006. CARNET. ALL RIGHTS RESERVED. / LEGAL NOTICE / MAIL TO CUC@CARNET.HR / IMPRESSUM