Constraint-based Generation of Connectors

Size: px
Start display at page:

Download "Constraint-based Generation of Connectors"

Transcription

1 Constraint-based Generation of Connectors Tomas Bures Charles University, Faculty of Mathematics and Physics, Prague, Czech Republic Abstract. In this paper we discuss the a typical use-case of connector usage in component-based systems. We show how the connectors are refined during application development and investigate a way how to automatically generate connectors with respect to style of interaction and component distribution. 1 Introduction The connector as a first class entity emerged in component models in recent years to represent communication among components. Its responsibilities vary a lot from model to model. Component systems employing connectors can be basically divided into two branches. The first understand a connector only as a design element which allows to describe and restrict the mediated communication. To the representatives of this approach belong: Wright [1], ACME [5], which use CSP to define the communication protocol; Aster [3], which employs temporal logic for the same task; and SADL [8] which uses a sort of constraint language. These models usually do not deal with connector implementation. The other understand a connector as an implementation element which performs a real functionality at runtime. To these systems belong: UniCon [13], which, however, offers only a set of predefined connectors (Pipe, FileIO, ProcedureCall, RemoteProcedureCall, DataAccess, RTScheduler, and PLBundler); and JavaPod [12] which creates connectors by wrapping (similar to protocol stack) and thus understands connectors only as a sort of filters. 2 Goals and structure of the paper In order to ease development of connector-based component applications, in this paper we investigate how to create connectors (semi-)automatically. In Section 3 we show a typical use case of connectors explaining connector responsibilities. In Section 4 we summarize desired connector features and refine our goals. Section 5 describes our approach to connector generation, while Section 6 evaluates the results and sketches our future work. 3 Typical use case of connectors Similarly to component-based applications without connectors, there are three basic development phases design, implementation and deployment. (A) In design phase, basic blocks of the application are identified; the application is broken into independent pieces of functionality (components); and ways of interaction between single components are defined. The interaction is described by definition of provided and required interfaces and the Figure 1 Media Player

2 communication style (procedure calls, events, shared memory, etc.) The result of the design phase is demonstrated in Figure 1, which shows an example of a simple media player. The figure consists of four components (Reading Unit, Controller, Display, and Speaker). The Reading Unit is a component that reads data from a stream, decodes them and sends them to the Speaker component. To control the Media Player, there is a Controller component, which reacts to user interface buttons such as Play', Pause', Stop', etc. There can be several Controller parts (e.g. remotely connected). Current status (played title, track, etc.) is displayed by the Display component, which can also have several instances. The arrows represent component interactions, which can be of various types, as can be seen in the example. The Reading Unit sends the data to Speaker using an unidirectional pipe; the Controller communicates with the Reading Unit via local or remote procedure call; and the connection between the Reading Unit and Display is realized by asynchronous event distribution (messaging). (B) In implementation phase, single components are coded. For communication with other connected components, a component relies only on required (white rectangles) and provided interfaces (black rectangles) on the component boundary and a communication style associated with each link, otherwise is the component independent. That means, a component can be replaced by another which is compatible only on interfaces and communication style. (C) In deployment phase, components are implemented and have to be composed together to form a resulting application. First, components are situated to particular computers (deployment nodes). Components can reside in only one address space or be distributed over network virtually in any way. Then the components requirements (required interfaces) are connected to provisions (provided interfaces) using appropriate connector instance (the rectangles in Figure 1). The connector instance here is chosen with respect to the communication style and environment. E.g. if two components do not reside on same computer, a procedure call connector must have support for marshalling and network transport. Moreover, as the environment can be heterogenous, the connector must be created with respect to the system and middleware present on target computers (e.g. RMI [18] can be utilized only if both components are written in Java) 4 The role of connectors The key point of connector usage is that all communication related code is concentrated in connectors, thus making component code totally distribution independent. Also, a connector functionality can be enriched by additional tasks (e.g. a connector can perform logging, help with debugging, hide minor incompatibilities between components using simple adaptation etc.) As different connectors perform similar tasks, it is possible to generate connector code automatically or at least semi-automatically, which reduces the component-based development only to design and coding of components, leaving deployment (distribution and binding) to a sort of a smart tool. Evaluating the use case and the observation above, we can now list the most important features an ideal connector model should posses: I. Connectors should be first-class design entities [2] capturing all the inter-component communication. II. The model is not too restrictive, allowing for different styles of communication (not only for procedure call) [14, 7]. III. Connectors are reflected in an implementation. They transparently (from components point of view) allow for different non-functional properties [4] (e.g. distribution, security, etc.) IV. Connectors are generated with the least possible user intervention, employing current middleware [5]. The goal of our work is to create such a connector model that would satisfy all the statements above.

3 5 Solution 5.1 The model BURES: CONSTRAINT-BASED GENERATION OF CONNECTORS In our work we follow and extend the connector model proposed by Balek, Plasil in [2]. Connectors (see example in Figure 2) there are composed of smaller parts elements (the circles), which represent single actions. Depending on the way a connector is distributed, the elements are structured into units (dotted lines). Elements in one unit are to reside in the same address space. A binding between elements residing in the same address space is performed by an ordinary function call. A binding between elements distributed across units is performed by the respective elements themselves (allowing to employ different kinds of middleware e.g. CORBA [10], RMI [18], JMS [17], etc.) In more detail, the example in Figure 2 shows a sample remote procedure call (meaning, a procedure call Figure 2 Procedure call gray box view (connector architecture) connector need not be structured exactly in this way). The white and black circles (roles) are in principle generic interfaces of the connector. They are used to bind connector to components. The gray circles represent internal actions. In this example a call emitted from client goes through the crole element to the connector (client unit), there the stub element marhalls parameters and method name and transmits data to the other unit (server unit). There, data are read by the skeleton element, unmarshalled and a resulting call is passed to the logging element. This element logs the call (e.g. to file, console, database, etc.) and passes the call to the srole element, which then invokes the call on an attached component. The result of the function call goes back from server to client through the elements in the reverse order. 5.2 Levels of abstraction In connectors, we recognize four levels of connector abstraction. (The first one is used in design phase; the other three are used in deployment phase, as they need particular information about target deployment nodes): I. On the highest level of abstraction, we view a connector as a kind of communication contract. This level of abstraction defines communication style and connector roles (connector frame), which should be the minimum already sufficient for the application design phase. Currently, with respect to middleware we recognize four communication styles (procedure call, messaging, streaming, and blackboard) [4]. II. On the second level of abstraction, we view a connector as a set of interconnected elements (connector architecture) as depicted in Figure 2. The elements on this level are, however, still generic, later to be implemented by a particular class. III. On the third level of abstraction, particular implementation to every element found in the connector architecture is assigned. Using different implementations allows us to change connector behavior (e.g. to switch between CORBA and SOAP [19] only by exchanging the stub and skeleton element implementations). However the element implementations are still a sort of template, later to be adapted to particular component interfaces. IV. On the lowest level the element implementations are adapted to be able to mediate interfaces of components attached to the connector. At runtime, a connector is instantiated using a connector builder, which reflects the connector architecture (the second level of abstraction), and a set of adapted element implementations (the fourth level

4 Figure 3 Procedure Call connector refinement of abstraction). The connector builder instantiates particular adapted element implementations and binds them together to build respective connector units. 5.3 Automatic generation of connectors The previous section described how connectors are refined from the communication style to the actual connector instance. On the top level lies a decision of a designer. On the bottom level, there is a particular connector instance. On the way, there are three steps that have to be done from the communication style to the connector instance. These steps (see Figure 3) we call connector generation. In the first step, we choose a connector architecture (or better architecture for each connector unit) with respect to communication style and required non-functional properties (e.g. distribution, security, etc.). In the second step, we choose implementation of particular elements in the architecture with respect to the required non-functional properties and features offered by the target platforms (e.g. particular ORB or SOAP implementation, encryption libraries, etc.). Finally, in the third step, we adapt the chosen element implementations to support the interface of the attached component. As each step can be performed in several ways, we get a tree where in the root there is the selected communication and in the leaves there are particular connector implementations that comply with the communication style.

5 This tree can be viewed also as a search tree. Assuming, in each step we have only a limited set of possible options (which is assured by a repository of architectures for connector units, and repository of element implementation templates), we can use back-tracking technique to automatically find proper connector configuration (i.e. connector architecture and element implementations). There are several constraints which must hold to assure the connector configuration is correct. (1) The architecture must reflect the communication style and desired non-functional properties. (2) The connector must be consistent, meaning the chosen element implementations are able to cooperate (e.g. if data are marshalled on client side using CORBA IIOP, they have to be unmarshalled on server side again using CORBA IIOP; the same holds for encryption, transaction propagation, etc.). (3) An element implementation poses requirements on the target dock, where the adapted element implementation should run (e.g. libraries of particular ORB). Having the proper connector configuration, the rest of connector generation is easy. The architecture is used to create a connector builder and the element implementations are adapted to particular component interface. 6 Related and future work To our knowledge, the possibility of connector generation is almost missing in current component-based systems. Similar to automatic creation of connectors is generation of stubs and skeletons in middleware [10, 18, 9], however, this makes the attached components middleware-dependent and supports only procedure call (in some cases also messaging is supported to an extent). In our work we address the connector generation in three steps. The first two comprise selection of particular connector configuration, the third consist of adaptation of selected elements to components interfaces. As a proof-of-the concept, we have implemented a connector generator for SOFA/DCUP [11, 15]. The first and second step, is addressed by a composition checker in Prolog, which traverses the search tree and looks for the suitable connector configurations. The third step (adaptation of primitive templates) [5] is addressed by a Java-implementation of an element adaptor. In this adaptor, each element implementation template is represented by a sort of XML makefile and auxiliary Java-classes. The makefile describes which steps have to be performed in order to adapt the element implementation to a particular interface (e.g. in case of JavaIDL [16] this comprises generation of IDL file, generation of stub and skeleton classes, and compiling them). Our future work comprises further investigation of rules for the first and second step. We created rules for connector consistency checks, however, we need also rulse for checking compliance with desired nonfunctional properties (e.g. distribution, security, etc.) and environment dependencies (a particular library, etc.). References [1] Allen, R. J., Garlan, D.: A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology, 1997 [2] Balek, D., Plasil, F.: Software Connectors and Their Role in Component Deployment, In Proceedings of DAIS'01, Krakow, Kluwer, September 2001 [3] Blair, G., Blair, L., Issarny, V., Tuma, P., Zarras, A.: The Role of Software Architecture in Constraining Adaptation in Component-based Middleware Platforms, Proceedings of Middleware 2000, IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing, Hudson River Valley (NY), USA. Springer Verlag, LNCS, April 2000 [4] Bures, T., Plasil, F.: Scalable Element-Based Connectors, Proceedings of SERA 2003, San Francisco, USA, Jun 2003

6 [5] Bulej, L., Bures, T.: A Connector Model Suitable for Automatic Generation of Connectors. Tech. Report No. 2003/1, Dep. of SW Engineering, Charles University, Prague, 2003 [6] Garlan, D., Monroe, R. T., Wile, D.: Acme: Architectural Description of Component-Based Systems. Foundations of Component-Based Systems, Leavens, G., T. and Sitaraman, M. (eds), Cambridge University Press, 2000 [7] Medvidovic, N., Taylor, R. N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on Software Engineering, Vol. 26, No. 1, January 2000 [8] Moriconi, M., Riemenschneider, R., A.: Introduction to SADL 1.0: A Language for Specifying Software Architecture Hierarchies, Technical Report SRI-CSL-97-01, Mar [9] ObjectWeb Consortium: ProActive manual version 1.0.1, January 2003 [10] OMG formal/ : The Common Object Request Broker Architecture: Core Specification, v3.0, December 2002 [11] Plasil, F., Balek, D., Janecek, R.: SOFA/DCUP: Architecture for Component Trading and Dynamic Updating, Proceedings of ICCDS'98, Annapolis, Maryland, USA, IEEE CS Press, May 1998 [12] Putman, J., Hybertson, D.: Interaction Framework for Interoperability and Behavioral Analyses, ECOOP Workshop on Object Interoperability, 2000 [13] Shaw, M., DeLine, R., Zalesnik, G.: Abstractions and Implementations for Architectural Connections. Proceedings of the 3rd International Conference on Configurable Distributed Systems, May 1996 [14] Shaw, M., Garlan, D.: Software Architecture, Prentice Hall, 1996 [15] The SOFA Project, [16] Sun Microsystems, Inc.: Java IDL, [17] Sun Microsystems, Inc.: Java Message Service, April 2002 [18] Sun Microsystems, Inc.: Java Remote Method Invocation Specification Java 2 SDK, v1.4.1, 2002 [19] W3C: Simple Object Access Protocol (SOAP), v1.1, May 2000

SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT

SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT . SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT Dušan Bálek 1, František Plášil 1,2 1 Charles University, Faculty of Mathematics and Physics, Department of Software Engineering, Malostranské

More information

Addressing Heterogeneity in OMG D&C-based Deployment

Addressing Heterogeneity in OMG D&C-based Deployment Addressing Heterogeneity in OMG D&C-based Deployment Lubomír Bulej 1,2, Tomáš Bureš 1,2 1 Charles University, Faculty of Mathematics and Physics, Department of Software Engineering Malostranske namesti

More information

Distributed Objects. Object-Oriented Application Development

Distributed Objects. Object-Oriented Application Development Distributed s -Oriented Application Development Procedural (non-object oriented) development Data: variables Behavior: procedures, subroutines, functions Languages: C, COBOL, Pascal Structured Programming

More information

Hierarchical vs. Flat Component Models

Hierarchical vs. Flat Component Models Hierarchical vs. Flat Component Models František Plášil, Petr Hnětynka DISTRIBUTED SYSTEMS RESEARCH GROUP http://nenya.ms.mff.cuni.cz Outline Component models (CM) Desired Features Flat vers. hierarchical

More information

Fighting Class Name Clashes in Java Component Systems

Fighting Class Name Clashes in Java Component Systems Fighting Class Name Clashes in Java Component Systems Petr Hnětynka, Petr Tůma Charles University Department of Software Engineering Distributed System Research Group Malostranské náměstí 25, 118 00 Prague

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

Today: Distributed Objects. Distributed Objects

Today: Distributed Objects. Distributed Objects Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.

More information

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba

More information

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart

More information

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Dietmar Schreiner 1,2 and Karl M. Göschka 1 1 Vienna University of Technology Institute of Information

More information

Application Servers in E-Commerce Applications

Application Servers in E-Commerce Applications Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand

More information

Advanced Lectures on knowledge Engineering

Advanced Lectures on knowledge Engineering TI-25 Advanced Lectures on knowledge Engineering Client-Server & Distributed Objects Platform Department of Information & Computer Sciences, Saitama University B.H. Far (far@cit.ics.saitama-u.ac.jp) http://www.cit.ics.saitama-u.ac.jp/~far/lectures/ke2/ke2-06/

More information

Enhancing EJB Component Model

Enhancing EJB Component Model Enhancing EJB Component Model Vladimír Mencl, Jiří Adámek, Adam Buble, Petr Hnětynka, Stanislav Višňovský Abstract Component Based Software Development (CBSD) aims to lower software development costs by

More information

Software Architectures

Software Architectures Software Architectures Richard N. Taylor Information and Computer Science University of California, Irvine Irvine, California 92697-3425 taylor@ics.uci.edu http://www.ics.uci.edu/~taylor +1-949-824-6429

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Implementation of a data layer for the visualization of component-based applications

Implementation of a data layer for the visualization of component-based applications Implementation of a data layer for the visualization of component-based applications Jaroslav Šnajberk and Přemek Brada Department of Computer Science and Engineering, Faculty of Applied Sciences University

More information

Towards Software Architecture at Runtime

Towards Software Architecture at Runtime Towards Software Architecture at Runtime Authors Names Department of Computer Science and Technology Peking University, Beijing, PRC, 100871 +86 10 62757801-1 { @ cs.pku.edu.cn 1. Introduction Abstract

More information

A SIMULATION ARCHITECTURE DESCRIPTION LANGUAGE FOR HARDWARE-IN-LOOP SIMULATION OF SAFETY CRITICAL SYSTEMS

A SIMULATION ARCHITECTURE DESCRIPTION LANGUAGE FOR HARDWARE-IN-LOOP SIMULATION OF SAFETY CRITICAL SYSTEMS A SIMULATION ARCHITECTURE DESCRIPTION LANGUAGE FOR HARDWARE-IN-LOOP SIMULATION OF SAFETY CRITICAL SYSTEMS YUJUN ZHU, ZHONGWEI XU, MENG MEI School of Electronics & Information Engineering, Tongji University,

More information

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. CORBA What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform. It includes: an object-oriented Remote Procedure Call (RPC) mechanism object

More information

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS Master Thesis Michael Cífka Visual Development of Software Components Supervisor: Ing. Petr Tůma, Dr. I would like to thank my supervisor,

More information

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Technologies - overview & GIPSY Communication Procedure DEPARTMENT OF COMPUTER SCIENCE CONCORDIA UNIVERSITY Distributed Technologies - overview & GIPSY Communication Procedure by Emil Vassev June 09, 2003 Index 1. Distributed Applications 2. Distributed Component

More information

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010 Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights

More information

QoS Analysis. Valérie Issarny, Erwan Demairy, Apostolos Zarras, Christos Kloukinas, Siegfried Rouvrais INRIA - Rennes and Rocquencourt

QoS Analysis. Valérie Issarny, Erwan Demairy, Apostolos Zarras, Christos Kloukinas, Siegfried Rouvrais INRIA - Rennes and Rocquencourt QoS Analysis Valérie Issarny, Erwan Demairy, Apostolos Zarras, Christos Kloukinas, Siegfried Rouvrais INRIA - Rennes and Rocquencourt Abstract: The C3DS design and development methodology integrates a

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

Why Consider Implementation-Level Decisions in Software Architectures?

Why Consider Implementation-Level Decisions in Software Architectures? 1. Abstract Why Consider Implementation-Level Decisions in Software Architectures? Nikunj Mehta Nenad Medvidović Marija Rakić {mehta, neno, marija}@sunset.usc.edu Department of Computer Science University

More information

Monitoring System for Distributed Java Applications

Monitoring System for Distributed Java Applications Monitoring System for Distributed Java Applications W lodzimierz Funika 1, Marian Bubak 1,2, and Marcin Smȩtek 1 1 Institute of Computer Science, AGH, al. Mickiewicza 30, 30-059 Kraków, Poland 2 Academic

More information

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan. Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA

More information

Runtime Software Architecture Based Software Evolution And Adaptation

Runtime Software Architecture Based Software Evolution And Adaptation Runtime Software Architecture Based Software Evolution And Adaptation Qianxiang Wang, Gang Huang, Junrong Shen, Hong Mei, Fuqing Yang Department of Computer Science and Technology, Peking University 100871

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

1 From Distributed Objects to Distributed Components

1 From Distributed Objects to Distributed Components From Distributed Objects to Distributed : the Olan Approach Luc Bellissard, Michel Riveill BP 53, F 38041 Grenoble Cedex 9, FRANCE Phone: (33) 76 61 52 78 Fax: (33) 76 61 52 52 Email: Luc.Bellissard@imag.fr

More information

Towards Automated Component Compatibility Assessment

Towards Automated Component Compatibility Assessment Towards Automated Component Compatibility Assessment Přemysl Brada Department of Computer Science and Engineering University of West Bohemia, Pilsen, Czech Republic brada@kiv.zcu.cz (This position paper

More information

Using JBI for Service-Oriented Integration (SOI)

Using JBI for Service-Oriented Integration (SOI) Using JBI for -Oriented Integration (SOI) Ron Ten-Hove, Sun Microsystems January 27, 2006 2006, Sun Microsystems Inc. Introduction How do you use a service-oriented architecture (SOA)? This is an important

More information

Experiences in the management of an EJB-based e- commerce application. Abstract

Experiences in the management of an EJB-based e- commerce application. Abstract Experiences in the management of an EJB-based e- commerce application Juan I. Asensio, Víctor A. Villagrá, Jorge E. López de Vergara, Roney Pignaton, Julio J. Berrocal. Department of Telematic Systems

More information

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration Chapter 15: Distributed Communication Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration Sockets Defined as an endpoint for communcation Concatenation of IP

More information

RIKA: Component Architectures

RIKA: Component Architectures RIKA: Component Architectures Dr. Detlef Kreuz Telematik kreuz@tuhh.de TUHH - TELEMATIK Agenda Introduction What you should learn from this talk N-Tier applications Designing with components What is a

More information

Software Components and Distributed Systems

Software Components and Distributed Systems Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic Design

More information

Integrating Fragmented Objects into a CORBA Environment

Integrating Fragmented Objects into a CORBA Environment Integrating ed Objects into a CORBA Environment Hans P. Reiser 1, Franz J. Hauck 2, Rüdiger Kapitza 1, and Andreas I. Schmied 2 1 Dept. of Distributed Systems and Operating System, University of Erlangen-

More information

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University CORBA and COM TIP Two practical techniques for object composition X LIU, School of Computing, Napier University CORBA Introduction Common Object Request Broker Architecture (CORBA) is an industry-standard

More information

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise

More information

Web Services: A Bridge between CORBA and DCOM

Web Services: A Bridge between CORBA and DCOM Web Services: A Bridge between and DCOM Mohammed Mohsen AL-Khawlani Abstract In today s market, there are many distributed systems technologies and each technology has its own strengths and weaknesses.

More information

AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING

AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING DR. ROGER EGGEN Department of Computer and Information Sciences University of North Florida Jacksonville, Florida 32224 USA ree@unf.edu

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Service-Oriented Programming (SOP) SOP A programming paradigm that

More information

Describing the functionality of EJB using the behavior protocols

Describing the functionality of EJB using the behavior protocols Describing the functionality of EJB using the behavior protocols Radek Pospíšil 1, František Plášil 1,2 1 Charles University Faculty of Mathematics and Physics Department of Software Engineering Malostranké

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Irbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems

Irbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems Developing Enterprise Systems with CORBA and Java Integrated Technologies Safwan Al Salaimeh, Amer Abu Zaher Irbid National University, Irbid, Jordan ABSTRACT: The questions of corporate systems development

More information

A Comprehensive Interface Definition Framework for Software Components

A Comprehensive Interface Definition Framework for Software Components A Comprehensive Interface Definition Framework for Software Components Jun Han Peninsula School of Computing and Information Technology Monash University, McMahons Road, Frankston, Vic 3199, Australia

More information

Unit 7: RPC and Indirect Communication

Unit 7: RPC and Indirect Communication SR (Systèmes Répartis) Unit 7: RPC and Indirect Communication François Taïani Outline n Remote Procedure Call è First Class RPC è Second Class RPC (RMI) n Indirect Communication è Group Communication è

More information

Real-Time Coordination in Distributed Multimedia Systems

Real-Time Coordination in Distributed Multimedia Systems Real-Time Coordination in Distributed Multimedia Systems Theophilos A. Limniotes and George A. Papadopoulos Department of Computer Science University of Cyprus 75 Kallipoleos Str, P.O.B. 20537 CY-1678

More information

Today: Distributed Middleware. Middleware

Today: Distributed Middleware. Middleware Today: Distributed Middleware Middleware concepts Case study: CORBA Lecture 24, page 1 Middleware Software layer between application and the OS Provides useful services to the application Abstracts out

More information

Distributed Object Bridges and Java-based Object Mediator

Distributed Object Bridges and Java-based Object Mediator Distributed Object Bridges and Java-based Object Mediator Konstantinos Raptis, Diomidis Spinellis, Sokratis Katsikas An important aspect of research on software objects, components, and component-based

More information

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example.

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example. SE Assignment III 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example. There are essentially 5 different types of symbols used

More information

Reflective Middleware. INF Tommy Gudmundsen

Reflective Middleware. INF Tommy Gudmundsen Reflective Middleware INF5360 11.03.2008 Tommy Gudmundsen tommygu@ifi.uio.no Papers presented Grace, P., Blair, G.S., Samual, S., "ReMMoC: A Reflective Middleware to Support Mobile Client Interoperability"

More information

Introduction. ADL Roles

Introduction. ADL Roles Architecture Description Languages (ADLs) 1 Introduction Architecture is key to reducing development costs development focus shifts to coarse-grained elements Formal architectural models are needed ADLs

More information

A Report on RMI and RPC Submitted by Sudharshan Reddy B

A Report on RMI and RPC Submitted by Sudharshan Reddy B A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment

Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment Sanjay P. Ahuja Roger Eggen Cheryl Daucher Department of Computer and Information Sciences University of North Florida

More information

1.264 Lecture 16. Legacy Middleware

1.264 Lecture 16. Legacy Middleware 1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech Advanced Topics in Distributed Systems Dr. Ayman A. Abdel-Hamid Computer Science Department Virginia Tech Communication (Based on Ch2 in Distributed Systems: Principles and Paradigms, 1/E or Ch4 in 2/E)

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Quality of Service and Object-Oriented Middleware Multiple Concerns and their Separation

Quality of Service and Object-Oriented Middleware Multiple Concerns and their Separation Quality of Service and Object-Oriented Middleware Multiple Concerns and their Separation Christian Becker becker@cs.uni-frankfurt.de Department of Computer Science University of Frankfurt/Main Germany

More information

Distribution Transparencies For Integrated Systems*

Distribution Transparencies For Integrated Systems* Distribution Transparencies For Integrated Systems* Janis Putman, The Corporation Ground System Architectures Workshop 2000 The Aerospace Corporation February 2000 Organization: D500 1 * The views and

More information

Using CORBA Middleware in Finite Element Software

Using CORBA Middleware in Finite Element Software Using CORBA Middleware in Finite Element Software J. Lindemann, O. Dahlblom and G. Sandberg Division of Structural Mechanics, Lund University strucmech@byggmek.lth.se Abstract. Distributed middleware technologies,

More information

I would like tothank my advisor, Petr Tνuma, for his expert advice he gave me with extraordinary patience and for providing me with study materials an

I would like tothank my advisor, Petr Tνuma, for his expert advice he gave me with extraordinary patience and for providing me with study materials an Charles University, Prague, Czech Republic Faculty of Mathematics and Physics MASTER THESIS Tomá»s Kalibera SOFA Support in C++ Environments Department of Software Engineering Advisor: Ing. Petr Tνuma,

More information

RMI-P4. Harsimrankaur PDMCEW, Bahadurgarh

RMI-P4. Harsimrankaur PDMCEW, Bahadurgarh RMI-P4 Harsimrankaur PDMCEW, Bahadurgarh Abstract: SAP is one of the leading providers of business software. Its product portfolio for enterprise application software is organized around the various key

More information

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics. Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined

More information

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1 Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Web Service Definition The term "Web Services" can be confusing.

More information

A Systematic Approach to Composing Heterogeneous Components

A Systematic Approach to Composing Heterogeneous Components A Systematic Approach to Composing Heterogeneous Components HUANG Gang, MEI Hong, WANG Qian-xiang, YANG Fu-qing Dept of Computer Science & Technology, Peking University, Beijing 100871 {huanggang, meih,

More information

A Grid-Enabled Component Container for CORBA Lightweight Components

A Grid-Enabled Component Container for CORBA Lightweight Components A Grid-Enabled Component Container for CORBA Lightweight Components Diego Sevilla 1, José M. García 1, Antonio F. Gómez 2 1 Department of Computer Engineering 2 Department of Information and Communications

More information

Distributed Middleware. Distributed Objects

Distributed Middleware. Distributed Objects Distributed Middleware Distributed objects DCOM CORBA EJBs Jini Lecture 25, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy. Lecture 25, page 2 Distributed

More information

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents Architecture Description Languages (ADLs): Introduction, Koala, UML as an ADL T-76.150 Software Architecture Timo Asikainen Contents Brief motivation for ADLs General features of ADLs Koala UML as an ADL

More information

Challenges in component based programming. Lena Buffoni

Challenges in component based programming. Lena Buffoni Challenges in component based programming Lena Buffoni Challenge: Size & complexity Software is everywhere and increasingly complex (embedded systems, internet of things ) Single products have become product

More information

Designing a Distributed System

Designing a Distributed System Introduction Building distributed IT applications involves assembling distributed components and coordinating their behavior to achieve the desired functionality. Specifying, designing, building, and deploying

More information

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1 Objectives To explain the advantages and disadvantages of different distributed systems architectures

More information

Chapter 16. Layering a computing infrastructure

Chapter 16. Layering a computing infrastructure : Chapter 16 by David G. Messerschmitt Layering a computing infrastructure Applications Application components Middleware Operating system Network 2 1 Spanning layer Application Distributed object management

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

Software Architectures. Lecture 8

Software Architectures. Lecture 8 Software Architectures Lecture 8 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements : tactics

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

Using Architectural Models at Runtime: Research Challenges

Using Architectural Models at Runtime: Research Challenges Proceedings of the European Workshop on Software Architectures, St. Andrews, Scotland, May 2004. Using Architectural Models at Runtime: Research Challenges David Garlan and Bradley Schmerl Department of

More information

Improvement to the Smart Data Server with SOAP *

Improvement to the Smart Data Server with SOAP * Improvement to the Smart Data Server with * WANJUN HUANG, UWE ROTH, CHRISTOPH MEINEL Institute of Telematics Bahnhofstr. 30-32,D-54292, Trier GERMANY {huang,roth,meinel}@ti.fhg.de Abstract: - As a distributed

More information

System types. Distributed systems

System types. Distributed systems System types 1 Personal systems that are designed to run on a personal computer or workstation Distributed systems where the system software runs on a loosely integrated group of cooperating processors

More information

CORBA vs. DCOM. Master s Thesis in Computer Science

CORBA vs. DCOM. Master s Thesis in Computer Science Master s Thesis in Computer Science Preliminary version December 21, 2000 CORBA vs. DCOM Fredrik Janson and Margareta Zetterquist The Royal Institute of Technology Kungliga Tekniska Högskolan Examiner:

More information

A Marriage of Web Services and Reflective Middleware to Solve the Problem of Mobile Client Interoperability

A Marriage of Web Services and Reflective Middleware to Solve the Problem of Mobile Client Interoperability A Marriage of Web Services and Reflective Middleware to Solve the Problem of Mobile Client Interoperability Abstract Paul Grace 1, Gordon Blair 1 and Sam Samuel 2 1 Computing Department, Lancaster University,

More information

Chapter 6 Enterprise Java Beans

Chapter 6 Enterprise Java Beans Chapter 6 Enterprise Java Beans Overview of the EJB Architecture and J2EE platform The new specification of Java EJB 2.1 was released by Sun Microsystems Inc. in 2002. The EJB technology is widely used

More information

Applying Experiences with Declarative Codifications of Software Architectures on COD

Applying Experiences with Declarative Codifications of Software Architectures on COD Applying Experiences with Declarative Codifications of Software Architectures on COD Position Paper Roel Wuyts Stéphane Ducasse Gabriela Arévalo roel.wuyts@iam.unibe.ch ducasse@iam.unibe.ch arevalo@iam.unibe.ch

More information

Engineering CORBA-based Distributed Systems

Engineering CORBA-based Distributed Systems Engineering CORBA-based Distributed Systems Ramón Juanes +, Fernando Bellas *, Nieves Rodríguez * and Ángel Viña * + Departamento de Electrónica y Sistemas, Universidad Alfonso X El Sabio, Madrid, CP/

More information

Creational. Structural

Creational. Structural Fitness for Future of Design Patterns & Architectural Styles Design patterns are difficult to teach, so we conducted a class collaboration where we all researched and reported on a variety of design patterns

More information

Distributed Objects. Chapter Distributing Objects Overview

Distributed Objects. Chapter Distributing Objects Overview Middleware Architecture with Patterns and Frameworks c 2003-2009, Sacha Krakowiak (version of February 27, 2009-12:58) Creative Commons license (http://creativecommons.org/licenses/by-nc-nd/3.0/) Chapter

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

QoS for Distributed Objects by Generating Tailored Protocols

QoS for Distributed Objects by Generating Tailored Protocols QoS for Distributed Objects by Generating Tailored Protocols Matthias Jung, Ernst W. Biersack Institut Eurécom, 2229 Route des Crêtes, 06190 Sophia Antipolis, France fjung,erbig@eurecom.fr In ECOOP 00

More information

Chapter 3 Introduction to Distributed Objects

Chapter 3 Introduction to Distributed Objects Chapter 3 Introduction to Distributed Objects Distributed object support all of the properties of an object created in compiled object oriented language, namely,data and code encapsulation, polymorphism

More information

Architectural Design Outline

Architectural Design Outline Architectural Design Outline Prev lecture general design principles. design Today architectural 1. What is a software architecture 2. Components, Connectors, and Configurations 3. Modeling Architectures:

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

Managing Complexity of Designing Routing Protocols Using a Middleware Approach

Managing Complexity of Designing Routing Protocols Using a Middleware Approach Managing Complexity of Designing Routing Protocols Using a Middleware Approach Cosmina Ivan 1, Vasile Dadarlat 2, and Kalman Pusztai 3 1 Department of Computer Science & Information Systems University

More information

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE Franz J. Hauck, Ulrich Becker, Martin Geier, Erich Meier, Uwe Rastofer, Martin Steckermeier Informatik 4, University of Erlangen-Nürnberg,

More information

SOFA NetBeans Module

SOFA NetBeans Module Charles University, Prague Distributed Systems Research Group SOFA NetBeans Module an introductory guide Revision 1.0 June 2003 Contents 1 Module s Essentials 3 1.1 Introduction........................

More information