m() super.m (execution path) extension f n() f.m n() o.m extension e m() n() m() extensible object o composite object (o < e < f)

Size: px
Start display at page:

Download "m() super.m (execution path) extension f n() f.m n() o.m extension e m() n() m() extensible object o composite object (o < e < f)"

Transcription

1 Reective implementation of non-functional properts with the JavaPod component platform Eric Bruneton, Michel Riveill SIRAC Project (INPG-UJF-INRIA) INRIA, 655 av. de l'europe, Montbonnot Saint-Martin, France March 23, 2000 Abstract This position paper presents an extensible, reective middleware platform whose main goal is to separate, compose and associate with applications several non-functional properts. It presents then three non-functional properts we implemented on top of this platform, and the lessons learned from these experiments. 1 Introduction Middleware platforms like CORBA oer to applications several non-functional properts (transactions, persistence: : :) but the application programmer must use them explicitly. On the contrary, the Enterprise Java Beans (EJB) platform [9], by using a kind of reective [5] mechanism, allows for a complete separation of the functional and nonfunctional aspects. This approach is promising but is still limited: in particular, the set of provided non-functional properts is small and not extensible. Our main goal is therefore to design, implement and experiment with the JavaPod [1] platform, a reective middleware platform that should allow (a) to program separately functional aspects and non-functional aspects, (b) to program separately each non-functional aspect, and (c) to associate with an application several non-functional aspects, which should work together properly. The JavaPod platform should also be modular and extensible, to in collaboration with France Telecom, Rue du General Leclerc, Issy Moulineaux, France be able to oer an a priori unlimited set of nonfunctional aspects, and so that it can be tailored to various applications and execution environments. Finally, our platform should be able to oer a very general distributed programming model. In particular, this model should not be limited to the clnt, publish-subscribe or stream models. In order to achve these goals, we have dened an object composition model (section 2) that is used to separate and compose non-functional aspects, but also to obtain a modular platform, built on top of a small kernel. The architecture of this kernel (section 3) has been choosen to support any distributed programming model. Section 4 presents some connectors and non-functional aspects that have been implemented on top of our kernel. Section 5 presents the lessons learned from these experiments. 2 Object Composition Model Our object composition model is dened as follows. A composite object is a totally ordered set of atomic (non composite) objects. The smallest atomic object is called an extensible object. The others are called extensions. A composite object contains exactly one extensible object, which cannot be removed or replaced, and zero or more extensions, which can be added or removed dynamically. A composite object is an object, whose semantics is dened as follows. Its internal state (resp. set of methods) is the union of the internal states (resp. set of methods) of its members. Internal states are supposed to be accessible only through methods. A call to a method m on a composite object is exe- 1

2 cuted by the greatest member in which m is dened (an exception is returned if there is no such member). In extensions, a special form of method call is available, noted super.m. A call to super.m in an extension e is executed by the greatest member in which m is dened, and that is strictly smaller than e. The gure below illustrates these denitions. o.m f.m super.m (execution path) extension f extension e extensible object o composite object (o < e < f) This model has been implemented in a new language called ejava. This language is a superset of Java, and has exactly the same syntax as Java. It also has the same semantics, except for objects that are instances of a subclass of the predened classes ExtensibleObject and Extension (only these objects can be members of a composite object). The gure below shows a very simple ejava program. public final class C extends ExtensibleObject { private int i; public int get () { return i; public void set (int i) { this.i = i; public final class D extends Extension { public int get () { System.out.println("get called"); return super.get(); public void reset () { ((C)this).set(0); C c = new C(0); c.set(3); // prints nothing // ((D)c).reset(); // throws an exception c.setextensions(new Extension[] {new D()); c.get(); // prints "get called" ((D)c).reset(); // ok This example shows that ejava and Java have the same syntax, but not the same semantics: the call to super in the D class, and the explicit casts to C and D would not be valid in Java. This example also shows that extensions can be added dynamically, and that extensions can override and add new methods in a composite object. 3 Component Model The JavaPod kernel denes the, container, component and connector concepts: A provides an execution environment (adress space, threads, protocols: : :) for containers. It is located in one host. A container is a system object corresponding to exactly one component. It contains information and behaviors that are common to a whole component (component adress, persistance model: : :). A component is an arbitrary graph of objects. A connector is a set of related s and etons that can belong to several containers, and that can implement several interfaces. For example, a publish-subscribe connector can contain one publisher, several receiver etons implementing the same functional interface, and several s implementing a control interface used to subscribe and unsubscribe. A allows a component to call some methods, declared in the 's interface, but externally implemented. Symetrically, a eton allows some component's methods, declared in the eton's interface, to be called externally. A connector reference idents and describes a unique connector. For example, a reference to a clnt- connector idents the eton, and describes the ejava extensions to be used to instantiate a new clnt for this connector. The JavaPod platform does not use component references (as in CORBA), nor interface references (as in ODP [8]), but only connector references. The JavaPod platform kernel is implemented by a few ejava classes and interfaces, corresponding to the previous concepts. This kernel only denes a framework: it does not provide any implementation (except a generic, on the y compiler) and must therefore be completed with ejava extensions in order to be usable. For example, the s generated by the compiler are extensible objects that do only one thing: they reify calls to the 's interface methods, and pass them to a 2

3 generic method declared (but not implemented) in the Stub class. This method must be overriden by ejava extensions in order to obtain usefull s. The gure below illustrates the previous concepts and their relations: component connector eton container 4 JavaPod Extensions This section shows how we used our composition model to extend the kernel in order to provide several types of connector (clnt- and stream) and several easily composable non-functional properts (mobility, replication and protection by capabilits). The clnt- connector is implemented by several extension layers. The transport protocol (stp) is a extension to messages between s. The gate transport protocol () uses stp to messages between gates (i.e. s and etons). The layer uses in each an extension to store a mapping between container IDs and containers. It also uses an extension per container to store a container ID and a mapping between gate IDs and gates, and an extension per gate to store the gate ID. The - () gate extension allows to make conversions between connector references (that can be sent over a network) and s and etons (that can be used by a component). Finally, the clnt- protocol () denes a gate extension, and a symetrical clnt gate extension which overrides the 's generic method by using the and extensions. clnt a connector (container extensions not shown) Stream connectors use specic gate extensions. These extensions stream data in several packets, by using extensions. They also implement a ow control algorithm which uses emitter and receiver buers. isp isp an input stream connector The m layer is a mobile version of the layer wich allows mobile components and works as follows. Each message is sent to the last known location of the destination gate. If this gate is not found, the message is sent to a centralized localization, which then forwards the message to the actual gate location, and informs the er of the new gate location. The m layer is used to provide mobile components, but is not sucnt. Indeed, a container extension is needed to actually migrate a component (along with its container and all its gates). This extension communicates with the localization during a migration, to inform it of the new component location. This extension must also wait, before a migration, for each thread that is currently executing in the component to stop. For this, it uses an exe container extension that keeps track of all threads executing in a component (this extension is also used by the layer to launch threads for incoming requests). A replicated component [4] is always accessed locally: before doing a remote method call on a replicated component, a local replica of this component is obtained rst. The call is then made on this replica. The replicas consistency is managed by a distributed consistency protocol, implemented by \system" components 1 communicating through remote method calls. crsp l a connector for a replicated component For replicated component clnts, a specic extension (called crsp), placed on top of the normal extension, overrides the method in order to obtain a local replica before doing the 1 so called because they provide system services, like CORBA object services. 3

4 actual call (by calling super.). This specic extension uses the previous system components to get the local replica. Another extension (called l) mods the normal extension, in order to always messages to the local site (i.e. to the local replica, and not to the original component). Component protection by hidden software capabilits (see [3] for details) can be implemented by using lters between a clnt and a. A clnt lter essentially sets the access rights the clnt wish to give on the objects it s. For this, a clnt lter installs lters on each ed object. A lter essentially checks that received method calls are eectively authorized. C O filter clnt filter filter S method invocation ed object In a distributed context, these lters are not suf- cnt: a random secret number representing the actual capability, and known only by the and its clnts, must be used also. This number must be encrypted when sent over the network. In our implementation, clnt and lters are represented by special extensions, called hsc. The c layer is used on top of the or m layer to provide encrypted communications. This layer uses an extension per container to associate with each container an RSA key pair. It also uses gate extensions to encrypt messages before ing them with the layer, and to decrypt them before passing them to upper layers. hsc c hsc c a connector for a protected component These three non-functional aspects (mobility, replication and protection) can be easily composed, by judiciously mixing some of the previous extensions. For example, we can use mobility with clnt and stream connectors, combine mobility and protection, or compose protection and replication. 5 Discussion As shown in the previous section, our composition model can eectively be used to separate nonfunctional aspects from each other and from functional code, and to compose several non-functional aspects. The previous section's examples show kinds of protocol stacks. Our model can indeed be used to simulate protocol stacks, but is in fact much more exible. For example, container extensions also make use of our model, but not in a \protocol stack" way. Our model is also more exible than class inheritance (class composition requires one class per combination: for 3 optional aspects, 8 = 2 3 classes are necessary). It is also more exible than object composition through delegation (method overriding can be simulated through delegation but not in a practical way). Our composition model could be implemented with a meta-object tower, but this would be less natural, and less ecnt (in our implementation, a call is red only once, and the target member is found in one step, by using method tables). Our model can also be used to partition the meta-level into \meta-spaces" (e.g. marshalling, invocation: : :), but does not impose a xed set of meta-spaces. Finally, it is easy to dene a basic protection mechanism, by associating with each extension class a set of permissions to or override specic methods. However, our composition model is a only tool: although powerful, it is not sucnt to ensure that the proposed extensions can be composed easily. For this, the main problem to solve is to nd the right extensions granularity and interfaces. For example, we could have implemented the clnt- connector with only one extension, instead of three. But, in this case, it would have been impossible to reuse this extension in a clnt- connector for a mobile, replicated or protected component. We have implemented, until now, three nonfunctional properts. However, our architecture is extensible and allows us to oer more nonfunctional properts to application. This possibility brings open questions: will our existing ex- 4

5 tensions be reusable and composable with future extensions, or will we need to modify their granularity and interfaces? In the latter case, will we progressively converge toward \good" interfaces? In any case, our model will not solve by itself problems that are due to non-functional aspects inter-dependencs. For example, although mobility and clnt- model seem \orthognal", they must be coordinated (through the exe extension), since a component in which threads are running can not move. Similarly, protection and replication mecanisms implicitly require a clnt- model and, therefore, can not be composed with stream connectors. Unfortunately, these kinds of problems will become harder to solve with more nonfunctional aspects. Because of these problems, we think that extensions must be designed and implemented by middleware \experts", and not by application programmers. In fact, this separation of roles was a motivation to build a platform that allows to separate functional and non-functional code. Our rst experiments show that remote method calls are as ecnt with our clnt- connectors as with Java RMI. This means that the overhead introduced by our composition model is small, compared to message transmission delays. However, our model introduces a non negligible space overhead: 3Ko are needed to serialize a container with an empty component, two etons and a total of 15 extensions. Small components (like EJB beans) must therefore be avoided. 6 Conclusion In order to build a middleware platform that, like the EJB platform, allows to separate, compose and associate with applications several non-functional aspects (persistance, fault-tolerance: : :), we dened a new, reective 2 object composition model. We used this model to implement, on top of a small middleware platform kernel, two types of connector (clnt- and stream), and three nonfunctional properts (mobility, replication and protection by hidden capabilits). We were able to program each of these properts separately, and to compose them easily. 2 an ejava extension can be seen as a \typed" meta-object that res calls to a xed set of base level methods. We must now nd if our proposition \scales" well, i.e. if it can handle more non-functional properts. For this, it would be nice if we could nd design patterns or conception methodologs to implement non-functional properts as ejava extensions so that they can work together. But, for the moment, we don't know how to do this, or even if it's possible. References [1] E. Bruneton, and M. Riveill, \JavaPod : une plate-forme a composants adaptable et extensible", INRIA, research report 3850, January [2] F. Costa, G. Blair and G. Coulson, \Experiments with Reective Middleware", ECOOP'98 Reection Workshop, Brussels, Belgium, July [3] D. Hagimont, and L. Ismal, \A Protection Scheme for Mobile Agents on Java", Proc. Third ACM/IEEE Int. Conf on Mobile Computing and Networking (MobiCom'97), Budapest, September [4] D. Hagimont, and D. Louvegns, \Javanaise: Distributed Shared Objects for Internet Cooperative Applications", Middleware'98, The Lake District, England, September [5] G. Kiczales, J. des Rivres, and D.G. Bobrow, \The Art of the Metaobject Protocol", MIT Press, [6] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, J.-M. Loingtr, and J. Irwin, \Aspect-Ornted Programming", ECOOP'97, Jyvaskyla, Finland, June [7] J. McAer, \Meta-level architecture support for distributed objects", Proceedings of Reection'96, G. Kiczales (ed), 39-62, [8] \ODP Reference Model: Overvw", ITU-T ISO/IEC Recommendation X.901 International Standard , [9] \Enterprise Java Beans", 5

Using reflective features to support mobile users

Using reflective features to support mobile users Using reflective features to support mobile users V.Marangozova, F.Boyer Laboratoire /Projet INRIA SIRAC, INRIA/INPG/UJF, France (http://sirac.inrialpes.fr) Replication is a technique that allows the construction

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

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

Technical Report. Computer Science Department. Operating Systems IMMD IV. Friedrich-Alexander-University Erlangen-Nürnberg, Germany

Technical Report. Computer Science Department. Operating Systems IMMD IV. Friedrich-Alexander-University Erlangen-Nürnberg, Germany Support for Mobility and Replication in the AspectIX Architecture M. Geier, M. Steckermeier, U. Becker, F.J. Hauck, M. Meier, U. Rastofer September 1998 TR-I4-98-05 Technical Report Computer Science Department

More information

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS Distributed Objects Figure 10-1. Common organization of a remote

More information

Reflective Java and A Reflective Component-Based Transaction Architecture

Reflective Java and A Reflective Component-Based Transaction Architecture Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,

More information

A practical and modular implementation of extended transaction models

A practical and modular implementation of extended transaction models Oregon Health & Science University OHSU Digital Commons CSETech January 1995 A practical and modular implementation of extended transaction models Roger Barga Calton Pu Follow this and additional works

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

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang. A Yet Another java.lang.class Shigeru Chiba Michiaki Tatsubori Institute of Information Science and Electronics University of Tsukuba 1-1-1 Tennodai, Tsukuba, Ibaraki 305-8573, Japan. Phone: +81-298-53-5349

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

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

Jarcler: Aspect-Oriented Middleware for Distributed Software in Java

Jarcler: Aspect-Oriented Middleware for Distributed Software in Java Jarcler: Aspect-Oriented Middleware for Distributed Software in Java Muga Nishizawa Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology Email: {muga,chiba@csg.is.titech.ac.jp

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

City Research Online. Permanent City Research Online URL:

City Research Online. Permanent City Research Online URL: Kloukinas, C., Saridakis, T. & Issarny, V. (1999). Fault Tolerant Access to Dynamically Located Services for CORBA Applications. Paper presented at the Computer Applications in Industry and Engineering

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

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

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects

Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects Laurent Berger I3S - CNRS UPRESA 6070 - Bât ESSI 930 Rte des Colles - BP 145

More information

features of Python 1.5, including the features earlier described in [2]. Section 2.6 summarizes what is new in Python The class and the class

features of Python 1.5, including the features earlier described in [2]. Section 2.6 summarizes what is new in Python The class and the class A note on reection in Python 1.5 Anders Andersen y AAndersen@ACM.Org March 13, 1998 Abstract This is a note on reection in Python 1.5. Both this and earlier versions of Python has an open implementation

More information

Transaction Management in EJBs: Better Separation of Concerns With AOP

Transaction Management in EJBs: Better Separation of Concerns With AOP Transaction Management in EJBs: Better Separation of Concerns With AOP Johan Fabry Vrije Universiteit Brussel, Pleinlaan 2 1050 Brussel, Belgium Johan.Fabry@vub.ac.be March 8, 2004 1 Introduction The long-term

More information

Do! environment. DoT

Do! environment. DoT The Do! project: distributed programming using Java Pascale Launay and Jean-Louis Pazat IRISA, Campus de Beaulieu, F35042 RENNES cedex Pascale.Launay@irisa.fr, Jean-Louis.Pazat@irisa.fr http://www.irisa.fr/caps/projects/do/

More information

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component Limitations of Object-Based Middleware Object-Oriented programming is a standardised technique, but Lack of defined interfaces between objects It is hard to specify dependencies between objects Internal

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

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

Non-functional capability-based access control in the Java environment

Non-functional capability-based access control in the Java environment Non-functional capability-based access control in the Java environment D. Hagimont 1, N. De Palma 2 1 INRIA Rhône-Alpes, 655 avenue de l Europe, 38334 Saint-Ismier Cedex, France Daniel.Hagimont@inrialpes.fr

More information

Compaq Interview Questions And Answers

Compaq Interview Questions And Answers Part A: Q1. What are the difference between java and C++? Java adopts byte code whereas C++ does not C++ supports destructor whereas java does not support. Multiple inheritance possible in C++ but not

More information

Many distributed programming. Java Programming

Many distributed programming. Java Programming Java Programming A Configurable RMI Mechanism for Sharing Distributed Java Objects Javanaise is a remote method invocation mechanism that extends the functionality of Java RMI by allowing dynamic caching

More information

Implementing Software Connectors through First-Class Methods

Implementing Software Connectors through First-Class Methods Implementing Software Connectors through First-Class Methods Cheoljoo Jeong and Sangduck Lee Computer & Software Technology Laboratory Electronics and Telecommunications Research Institute Taejon, 305-350,

More information

Javanaise: distributed shared objects for Internet cooperative applications

Javanaise: distributed shared objects for Internet cooperative applications Javanaise: distributed shared objects for Internet cooperative applications D. Hagimont, D. Louvegnies Contact person: Daniel Hagimont Postal address: INRIA Rhône-Alpes 655, avenue de l'europe 38330 Montbonnot

More information

Generating Continuation Passing Style Code for the Co-op Language

Generating Continuation Passing Style Code for the Co-op Language Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch

More information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

More information

metaxa and the Future of Reflection

metaxa and the Future of Reflection metaxa and the Future of Reflection Michael Golm, Jürgen Kleinöder University of Erlangen-Nürnberg Dept. of Computer Science 4 (Operating Systems) Martensstr. 1, D-91058 Erlangen, Germany {golm, kleinoeder}@informatik.uni-erlangen.de

More information

The Specifications Exchange Service of an RM-ODP Framework

The Specifications Exchange Service of an RM-ODP Framework The Specifications Exchange Service of an RM-ODP Framework X. Blanc (*+), M-P. Gervais(*), J. Le Delliou(+) (*)Laboratoire d'informatique de Paris 6-8 rue du Capitaine Scott F75015 PARIS (+)EDF Research

More information

Implementing Probes for J2EE Cluster Monitoring

Implementing Probes for J2EE Cluster Monitoring Implementing s for J2EE Cluster Monitoring Emmanuel Cecchet, Hazem Elmeleegy, Oussama Layaida, Vivien Quéma LSR-IMAG Laboratory (CNRS, INPG, UJF) - INRIA INRIA Rhône-Alpes, 655 av. de l Europe, 38334 Saint-Ismier

More information

UNIT 4 CORBA 4/2/2013 Middleware 59

UNIT 4 CORBA 4/2/2013 Middleware 59 UNIT 4 CORBA 4/2/2013 Middleware 59 CORBA AN OBJECT ORIENTED RPC MECHANISM HELPS TO DEVELOP DISTRIBUTED SYTEMS IN DIFF. PLATFORMS OBJECTS WRITTEN IN DIFF., LANG, CAN BE CALLED BY OBJECTS WRITTEN IN ANOTHER

More information

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4 EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks

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

Applying Aspect Oriented Programming on Security

Applying Aspect Oriented Programming on Security Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

RMI: Design & Implementation

RMI: Design & Implementation RMI: Design & Implementation Operating Systems RMI 1 Middleware layers Applications, services RMI and RPC request-reply protocol marshalling and external data representation Middleware layers UDP and TCP

More information

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems) Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 3: Communication (Part 2) Remote Procedure

More information

Towards Generic and Middleware-independent Support for Replicated, Distributed Objects

Towards Generic and Middleware-independent Support for Replicated, Distributed Objects Towards Generic and Middleware-independent Support for Replicated, Distributed s Jörg Domaschka, Hans P. Reiser, Franz J. Hauck Distributed Systems Lab, Faculty of Computer Science Ulm University Germany

More information

compute event display

compute event display Programming Connectors In an Open Language Uwe Amann, Andreas Ludwig, Daniel Pfeifer Institut fur Programmstrukturen und Datenorganisation Universitat Karlsruhe Postfach 6980, Zirkel 2, 76128 Karlsruhe,

More information

Composition and Separation of Concerns in the Object-Oriented Model

Composition and Separation of Concerns in the Object-Oriented Model ACM Computing Surveys 28A(4), December 1996, http://www.acm.org/surveys/1996/. Copyright 1996 by the Association for Computing Machinery, Inc. See the permissions statement below. Composition and Separation

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture 1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté

More information

The Extensible Java Preprocessor Kit. and a Tiny Data-Parallel Java. Abstract

The Extensible Java Preprocessor Kit. and a Tiny Data-Parallel Java. Abstract The Extensible Java Preprocessor Kit and a Tiny Data-Parallel Java Yuuji ICHISUGI 1, Yves ROUDIER 2 fichisugi,roudierg@etl.go.jp 1 Electrotechnical Laboratory, 2 STA Fellow, Electrotechnical Laboratory

More information

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson January 13, 2005 January 18, 2005 1 of 38 Lecture Goals Introduce the basic concepts of object-oriented analysis/design/programming

More information

R/3 System Object-Oriented Concepts of ABAP

R/3 System Object-Oriented Concepts of ABAP R/3 System Object-Oriented Concepts of ABAP Copyright 1997 SAP AG. All rights reserved. No part of this brochure may be reproduced or transmitted in any form or for any purpose without the express permission

More information

JOI - Java Objects by Interface

JOI - Java Objects by Interface JOI - Java Objects by Interface Heiko von Drachenfels, Oliver Haase, and Robert Walter HTWG Konstanz - University of Applied Sciences, Constance, Germany drachenfels haase rwalter@htwg-konstanz.de 1 Introduction

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI 03 Remote invoaction Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/23 Remote invocation Mechanisms for process communication on a Built on top of interprocess communication primitives Lower

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

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1)

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1) THE ARCHITECTURE OF A HIGHLY INTEGRATED SIMULATION SYSTEM Michel Heydemann Alain Plaignaud Daniel Dure EUROPEAN SILICON STRUCTURES 72-78 Grande Rue - 92310 SEVRES - FRANCE tel : (33-1) 4626-4495 Abstract

More information

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Towards a symbiosis between Aspect-Oriented and Component-Based Software Development

Towards a symbiosis between Aspect-Oriented and Component-Based Software Development Towards a symbiosis between Aspect-Oriented and Component-Based Software Development Davy Suvée Vrije Universiteit Brussel Pleinlaan 2 1050 Brussel, Belgium +32 2 629 29 65 dsuvee@vub.ac.be Wim Vanderperren

More information

Concurrent Object-Oriented Programming

Concurrent Object-Oriented Programming Concurrent Object-Oriented Programming Bertrand Meyer, Volkan Arslan 2 Lecture 4: Motivation and Introduction Definition 3 Concurrent programming = parallel programming on a single processor? = is about

More information

FlexiNet. A flexible component oriented middleware system. Introduction. Architecting for Components. Richard Hayton, Andrew Herbert. APM Ltd.

FlexiNet. A flexible component oriented middleware system. Introduction. Architecting for Components. Richard Hayton, Andrew Herbert. APM Ltd. FlexiNet flexible component oriented middleware system Richard Hayton, ndrew Herbert. P Ltd. Introduction Generally, research middleware platforms have provided application programmers with facilities

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

5 Distributed Objects: The Java Approach

5 Distributed Objects: The Java Approach 5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having

More information

OS06: Monitors in Java

OS06: Monitors in Java OS06: Monitors in Java Based on Chapter 4 of [Hai17] Jens Lechtenbörger Computer Structures and Operating Systems 2018 1 Introduction 1.1 OS Plan ˆ OS Motivation (Wk 23) ˆ OS Introduction (Wk 23) ˆ Interrupts

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

extrinsic members RoleB RoleA

extrinsic members RoleB RoleA ASPECT- ORIENTED PROGRAMMING FOR ROLE MODELS Elizabeth A. Kendall Department of Computer Science, Royal Melbourne Institute of Technology GPO Box 2476V, Melbourne, VIC 3001, AUSTRALIA email: kendall@rmit.edu.au

More information

5.6.1 The Special Variable this

5.6.1 The Special Variable this ALTHOUGH THE BASIC IDEAS of object-oriented programming are reasonably simple and clear, they are subtle, and they take time to get used to And unfortunately, beyond the basic ideas there are a lot of

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

Policy-Driven DISTRIBUTED MANAGEMENT ARCHITECTURES. (Towards Open Distributed Management Architecture) Kazi Farooqui

Policy-Driven DISTRIBUTED MANAGEMENT ARCHITECTURES. (Towards Open Distributed Management Architecture) Kazi Farooqui Policy-Driven DISTRIBUTED MANAGEMENT ARCHITECTURES (Towards Open Distributed Management Architecture) Integrating Management and Distributed Object Technology Kazi Farooqui (farooqui@csi.uottawa.ca) Department

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

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Advanced Distributed Systems

Advanced Distributed Systems Course Plan and Department of Computer Science Indian Institute of Technology New Delhi, India Outline Plan 1 Plan 2 3 Message-Oriented Lectures - I Plan Lecture Topic 1 and Structure 2 Client Server,

More information

Programming with RMI Reminder

Programming with RMI Reminder Programming with RMI Reminder (Sources: Gordon S Blair, Paul Grace) Aims After completing the following you should get a reminder of: 1. the fundamental concepts of Java Remote Method Invocation; 2. the

More information

Model Composition Directives

Model Composition Directives Model Composition Directives Greg Straw, Geri Georg, Eunjee Song, Sudipto Ghosh, Robert France, and James M. Bieman Department of Computer Science Colorado State University, Fort Collins, CO, 80523 {straw,

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

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

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

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Communication. Overview

Communication. Overview Communication Chapter 2 1 Overview Layered protocols Remote procedure call Remote object invocation Message-oriented communication Stream-oriented communication 2 Layered protocols Low-level layers Transport

More information

ECOOP'96 - Composability Workshop. Metaclass Composability. Noury Bouraqadi-Sa^adani, Thomas Ledoux & Fred Rivard. EMNantes France

ECOOP'96 - Composability Workshop. Metaclass Composability. Noury Bouraqadi-Sa^adani, Thomas Ledoux & Fred Rivard. EMNantes France ECOOP'96 - Composability Workshop Metaclass Composability Noury ouraqadi-sa^adani, Thomas Ledoux & Fred Rivard bouraqa@emn.fr, EMNantes France ledoux@emn.fr, CGI-IM France rivard@emn.fr, Laboratoire Jules

More information

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope HORB: Distributed Execution of Java Programs HIRANO Satoshi Electrotechnical Laboratory and RingServer Project 1-1-4 Umezono Tsukuba, 305 Japan hirano@etl.go.jp http://ring.etl.go.jp/openlab/horb/ Abstract.

More information

Does anyone actually do this?

Does anyone actually do this? Session 11: Polymorphism Coding type-dependent logic Virtual functions Pure virtual functions and abstract classes Coding type-dependent logic Suppose we need to do something different depending on what

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

More information

Using Domain-Specific Modeling to Generate User Interfaces for Wizards

Using Domain-Specific Modeling to Generate User Interfaces for Wizards Using Domain-Specific Modeling to Generate User Interfaces for Wizards Enis Afgan, Jeff Gray, Purushotham Bangalore University of Alabama at Birmingham Department of omputer and Information Sciences 1300

More information

Using AOP to build complex data centric component frameworks

Using AOP to build complex data centric component frameworks Using AOP to build complex data centric component frameworks Tom Mahieu, Bart Vanhaute, Karel De Vlaminck, Gerda Janssens, Wouter Joosen Katholieke Universiteit Leuven Computer Science Dept. - Distrinet

More information

Modularizing Web Services Management with AOP

Modularizing Web Services Management with AOP Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, Bart.Verheecke@vub.ac.be System and Software Engineering Lab Vrije Universiteit Brussel 1. Introduction

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

A short introduction to Web Services

A short introduction to Web Services 1 di 5 17/05/2006 15.40 A short introduction to Web Services Prev Chapter Key Concepts Next A short introduction to Web Services Since Web Services are the basis for Grid Services, understanding the Web

More information

A Protection Scheme for Mobile Agents on Java

A Protection Scheme for Mobile Agents on Java A Protection Scheme for Mobile Agents on Java D. Hagimont 1, L. Ismail 2 SIRAC Project (IMAG-INRIA) INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Internet: {Daniel.Hagimont, Leila.Ismail}@imag.fr

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture

More information

Chapter 5: Distributed objects and remote invocation

Chapter 5: Distributed objects and remote invocation Chapter 5: Distributed objects and remote invocation From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 Figure 5.1 Middleware layers Applications

More information

Sort-based Refactoring of Crosscutting Concerns to Aspects

Sort-based Refactoring of Crosscutting Concerns to Aspects Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft

More information

Inheritance and Substitution (Budd chapter 8, 10)

Inheritance and Substitution (Budd chapter 8, 10) Inheritance and Substitution (Budd chapter 8, 10) 1 2 Plan The meaning of inheritance The syntax used to describe inheritance and overriding The idea of substitution of a child class for a parent The various

More information

DISTRIBUTED OBJECTS AND REMOTE INVOCATION

DISTRIBUTED OBJECTS AND REMOTE INVOCATION DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction This chapter is concerned with programming models for distributed applications... Familiar programming models have been extended to apply to distributed

More information

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995

ICC++ Language Denition. Andrew A. Chien and Uday S. Reddy 1. May 25, 1995 ICC++ Language Denition Andrew A. Chien and Uday S. Reddy 1 May 25, 1995 Preface ICC++ is a new dialect of C++ designed to support the writing of both sequential and parallel programs. Because of the signicant

More information

Model Driven Development of Context Aware Software Systems

Model Driven Development of Context Aware Software Systems Model Driven Development of Context Aware Software Systems Andrea Sindico University of Rome Tor Vergata Elettronica S.p.A. andrea.sindico@gmail.com Vincenzo Grassi University of Rome Tor Vergata vgrassi@info.uniroma2.it

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC) CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002 Lecture 22: Remote Procedure Call (RPC) 22.0 Main Point Send/receive One vs. two-way communication Remote Procedure

More information

Promoting Component Reuse by Separating Transmission Policy from Implementation

Promoting Component Reuse by Separating Transmission Policy from Implementation Promoting Component Reuse by Separating Transmission Policy from Implementation Scott M. Walker scott@dcs.st-and.ac.uk Graham N. C. Kirby graham@dcs.st-and.ac.uk Alan Dearle al@dcs.st-and.ac.uk Stuart

More information