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)
|
|
- Baldwin Ray
- 5 years ago
- Views:
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 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 informationAutomatic 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 informationASPECTIX: 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 informationTechnical 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 informationChapter 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 informationReflective 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 informationA 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 informationAdvanced 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 informationShigeru 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 informationDistributed 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 informationA 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 informationJarcler: 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 informationDeveloping 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 informationCity 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 informationThe 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 informationQoS 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 informationMartin 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 informationCompile 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 informationfeatures 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 informationTransaction 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 informationDo! 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 informationLimitations 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 informationCommunication. 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 informationGraphical 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 informationIntegrating 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 informationNon-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 informationCompaq 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 informationMany 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 informationImplementing 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 informationJavanaise: 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 informationGenerating 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 informationA 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 informationmetaxa 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 informationThe 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 informationImplementing 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 informationUNIT 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 informationOutline. 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 informationEngineering 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 informationApplying 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 informationAnnouncements. 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 informationRMI: 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 informationVerteilte 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 informationTowards 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 informationcompute 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 informationComposition 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 informationMODELS 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 informationDynamic 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 informationThe 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 informationLecture 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 informationR/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 informationJOI - 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 informationOn 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 information03 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 informationDistribution 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 informationMichel 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 informationKINGS 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 informationWhat 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 informationMODELS 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
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 informationTowards 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 informationConcurrent 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 informationFlexiNet. 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 informationMTAT 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 information5 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 informationOS06: 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 informationSoftware 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 informationSAMOS: 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 informationextrinsic 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 information5.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 informationToday: 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 informationPolicy-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 informationUnit 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 informationUsing 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 informationAdvanced 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 informationProgramming 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 informationModel 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 informationApplying 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 informationTopics 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 informationSoftware 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 informationUsing 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 informationCommunication. 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 informationECOOP'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 informationAs 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 informationDoes 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 informationDistributed 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 informationUsing 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 informationUsing 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 informationModularizing 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 informationDistributed 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 informationA 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 informationA 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 informationLecture 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 informationChapter 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 informationSort-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 informationInheritance 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 informationDISTRIBUTED 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 informationICC++ 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 informationModel 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 informationCS 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 informationPromoting 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