Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects
|
|
- Alan Snow
- 5 years ago
- Views:
Transcription
1 Compile Time and Runtime Reflection for Dynamic Evaluation of Messages : Application to Interactions between Remote Objects Laurent Berger I3S - CNRS UPRESA Bât ESSI 930 Rte des Colles - BP Sophia-Antipolis Cedex, France +33(0) berger@essi.fr ABSTRACT This paper shows how compile time and runtime reflection and object-oriented programming can be used to make the implementation of the problems posed by the dynamic evaluation of messages easier. It describes these problems through interactions, i.e. inter object communications, in a distributed architecture defined in C++ and CORBA. The proposed solutions are based on design patterns with the compile time and runtime reflection through the open compiler Open C++. Keywords meta-object protocol, compile time and runtime reflection, design patterns 1 INTRODUCTION When the behavior of an object dynamically varies according to the execution and in a way independent of the object state, we are leading to dynamically evaluate the messages. In interpreted, untyped and not distributed environments some papers [6, 14, 13] have proposed severals mechanisms for the dynamic evaluation of messages. We were confronted with this same problem of dynamic evaluation of messages when we wished to allow the definition and the management of interactions, i.e. any inter object communication, between objects in a distributed architecture defined with the C++ language [28] and CORBA [23]. The step to allow this dynamic evaluation of messages consisted in the use of compile time and runtime reflection with Open C++ [10]. The compile time reflection generates mechanisms used at runtime to allows dynamic evaluation of messages in C++, such as the sending message catching mechanism, the type parameters reflection and the dynamic call of reflection method. For each of these mechanisms, which are part of our runtime meta-object, we have proposed a solution based upon design patterns. We have defined a compile time meta-object protocol, which is presented in this paper, using the generalpurpose compile time reflection provided by Open C++ to generate a runtime meta-object specialized in the interaction management. This paper is organized as follows. The next section shows the architectural framework used and the language which allows the description of interactions. Section 3 describes the proposed solutions in term of compile time reflection of encountered problems, i.e. the compile time meta-object we have defined in Open C++. Section 4 shows the architecture of our runtime meta-object. 2 ARCHITECTURAL FRAMEWORK FOR INTERACTION MANAGEMENT The Figure 1 shows the architectural framework, using CORBA for the network communication management between different sites 1 of the application, used for our interaction development. CORBA allows that different sites, which compose an application, to be developed in different object-oriented languages and on different platforms, i.e. in a heterogeneous environment. We can see in this figure that each site has a meta-level available at runtime to manage the dynamical aspects of interactions. A site meta level Global Server Object with interactions Object without interaction Figure 1: System overview Network (CORBA ORB) 2.1 Interaction description Language The properties of our interaction approach is, through a language named an Aspect Language [18], to specify the interactions outside the objects using only their interface. This specification is also independent of the physical locality of 1 A site contains one or more application objects.
2 the interacting objects. The methods, not polluted by the interaction management, describes the intrinsic behavior of objects without taking into account future participations of objects in interactions. An example of a comparison of shared diaries in Smalltalk [2], a version not using the interactions and a version using them, can be found in [4]. The interaction description is implemented in the form of interaction rules with our language. An interaction rule describes, for a given message 2, the partially ordered set corresponding to its execution. This description needs a sending message operator (denoted.), two reactive operators (one used for synchronous sending, denoted ;, the other used for asynchronous sending, denoted //), and a conditional operator. The language allows to specify the states and the properties (for example the cardinality [22, 20, 24] or the delayed execution) of interactions. Here is an example of a simple interaction rule : Student.takeExamen! Prof.writeSubjet ; Student.takeExamen ; ( Student.waitNote // Student.goToBeach // Prof.correctCopies) ; Student.obtainNote 2.2 Related works on interactions Some works about the interactions have been already implemented in not distributed, not concurrent, untyped and not compiled environments [6, 14]. Researchs concerning interactions in distributed environments [16] or concurrent environments [19, 1, 5] have also been taken, but without inclusion of all interaction properties described above, that is to say the interaction dynamic instantiation, their description outside the interacting objects and an independence towards the physical locality of objects. In the same way, the researchs on distributed architectures [17, 11, 27, 8, 29, 25, 9], of which the goal is to make easier the development of distributed applications, does not integrate the interaction support. CORBA provides to the user, through the Event Service [21] and the Relationship Service [22], mechanisms to help him to manage, by means of notifications, the interactions taking them into account at the object class level, which is quite different to our approach. 2.3 A name server for a decentralized architecture As we can show in the Figure 1, the architecture framework is composed of several sites and a global server which is, in fact, a name server. It role is only to dispose the list of all the available sites in the system and to notify these sites when the system is modified, i.e. when a site is added or removed. So the global server is not used when two sites communicate among themselves. In this way the architecture used is a decentralized architecture. This decentralized architecture allows to avoid, on the one hand, the bottleneck at the global server level and, on the 2 A message is the pair object in which is addressed the message and signature of the method. other hand, a complete blocking of the system, compared to a similar centralized architecture, i.e. without a fault tolerant system, when a network error occurs on the global server. 3 COMPILE TIME REFLECTION Being in a strongly typed environment we must, by respecting the typing rules set by the language (C++ in our case), manage the dynamical aspects of the interactions. The interactions modify the sending message semantic which requires consequently the implementation of a sending message catching mechanism to ensure the correct execution of interactions when an interacting message is triggered. This execution implies the execution of messages presented in the interaction rules. In a compiled and strongly typed environment several problems arise to allow the execution of a message about which we not have at compile time any accurate information at our disposal. At first the problem of parameter passing with the respect of the strong typing set by the language arises. After that the problem of the method call itself arises because, by the compiled approach, it is impossible to ask a dynamic eval of the message as we can do it in an interpreted environment. The meta-object available at compile time, with the use of Open C++, allows implementation of this message catching mechanism and the definition of meta-information for the dynamic evaluation of messages. We use a compile time reflection in this case to reduce the runtime meta-object embedded in the program and to speed up performance of the execution. This compile time reflection provides hooks to transform, during the compilation, specific expressions and declarations in the program using a meta-object that is part of the compiler. We can show this compile time meta-object as a set of macro systems, but with more semantic information than true macro systems have. 3.1 Sending message catching When at least one interaction rule is associated with a message, the sending message semantic for this message is modified because this or these rules are executed instead of the message itself 3. Therefore we need a sending message catching mechanism to modify the sending message semantic. The C++ language does not provide any sending message catching mechanism, neither at compile time nor at runtime. Some catching mechanisms exist in open object-oriented languages [12]. We have chosen to use the method wrapper [7]. This method adds, for each method in an object, a new method with the same signature (only the method name changes) which will be called instead of the original method and which contains the new sending message semantics (point 1 of the Figure 2). To solve this sending message catching problem, we have used Open C However this message can be executed if it is part of the interaction rule. 4 We refer to the version 2 of Open C++, so the meta-object exists only at compile time.
3 The message catching mechanism must be implemented both for local objects and for remote objects. It is then necessary to modify the sending message semantic to take into account this locality. CORBA uses the, with the inheritance and virtual methods, to mask the object physical locality. Unfortunately, this technology cannot be applied when the components already exist. The object physical locality occultation requires that the proposed solution allows to dispose of metamorph objects. Our architecture dissociates consequently the interface and the object implementation using the Bridge/Body Design Pattern. The implementation of this design pattern is shows by the point 2 of the Figure 2. interface sending message 1 functional stub 2 proxy 3.2 Solution of typing problem for parameter passing When a message is caught by the catching mechanism, its parameters must be able, in particular, to be transmitted to interaction rules when they must be executed and to any other mechanism taking part in the interaction rule execution. To avoid the parameter typing problem a list of any type parameters must be transmitted to the various mechanisms which deal with interaction rule execution. This can be achieved with the and mechanisms available in C++. Indeed, the allows the parameter reflection whereas the will make all these reflected parameters compatible at the typing level by showing that they have a common type. This is achieved by the use of the Strategy Design Pattern for the and by the use of the inheritance for. This reflection can imply that an important number of objects, not defined by the application itself, exist at runtime. However, to limit the number of instances of these reflected parameters at runtime, this reflection is realized only when it is a necessity and the reflected parameter instances are reused as soon as possible. method wrapper (sending message catching mechanism) original message class definition public private interfaces meta compiler Figure 2: Overview of the sending message catching mechanism meta compiler 1 {z } types of interacting message parameters 2 We can note that the definition of the primary class becomes the functional class and that it disposes of the sending message catching mechanism and that two new classes have been generated. The proxy class manages calls to remote objects whereas the stub class redirects the received messages either to the object, if it is local, or to its proxy, if it is remote, (the stub class is then the handle to access to the object) at the time of the interaction execution on the functional object. The proxy mechanism implements the Surrogate Design Pattern and sends requests to the site managing the remote object (i.e. the site to which the object is local) asking it a message execution on this object. This implies that each site has at its disposal a request server which will execute messages on the object site on the other sites behalf as part of the interaction execution. The role of this request server is then to treat the message execution requests for an object, local to the server, provided from other sites. The message execution by the request server is based upon the message execution on a local object. The request server must then determine the method name to execute, the object name on which the execution must be applied, and the list of parameters to transmit at the method call time. Once these information are available, it executes the message as it is described in the following two paragraphs. Figure 3: Message execution on a local object mechanism : parameters management The implementation needs that all the possible parameter types are identified by the compilation process in order to generate the required classes to allow their instantiation at runtime. This implies the use of an open compiler, Open C++ in our case, to determine, on one hand, the types to encapsulate (step 1 of the Figure 3) and, on other hand, to generate the classes (step 2 of the Figure 3). The instantiation use the Virtual Constructor Design Pattern. 3.3 Resolution of the dynamic method call execution problem in a compiled environment When an interacting message is caught, and once the merging of interaction rules to execute finished, we must execute each message appearing in the merged rule [3]. This execution implies the call of methods associated to messages. In fact the method wrappers are called instead of the original methods to ensure the execution of interaction rules associated with these messages but, to avoid cyclic calls, the original method for the interacting message is called. Being in a compiled environment we cannot ask the evaluation of an expression containing the call of methods, as this
4 can be made in an interpreted environment. A solution consists in defining a structure with the compiled method code. However this solution does not satisfy the imposed typing conditions. The, and then the method and call reflection, allows to solve this typing problem. The is also used to make each reflected method compatible with the others at the typing level. The implementation of this reflection is based upon the Command Design Pattern and requires knowledge at the compile time of all methods that could be executed within an interaction rule to generate the reflected method code. In this solution the reflection can also imply that objects, not defined by the application, are present at runtime. However, their number is limited in the way that the reflection was implemented over the classes and not over the class instances. 4 RUNTIME REFLECTION The meta-object available at runtime, showed in the Figure 4, allows an application to manage interactions in C++ and CORBA. The implementation of this meta-object is based upon a set of three independent units in a relation with a fourth unit, named Catching Message Unit. The data transmitted between different units form a set of interaction rules. When a message is caught by the Catching Message Unit,this unit receives from the Selection Unit the list of interaction rules which must be executed instead of the caught message. If this list is empty, signifying that no interaction is available for this message, then the original message is executed, otherwise the interaction list is sent to the Merging Unit which merges the interactions and the result of which, an interaction rule, is sent to the Execution Unit to be executed. This last unit is itself composed of two sub-units. These sub-units manage the execution of a message on a local object for the one and on a remote object for the other one. Meta-object Execution Unit be added either by the addition of a sub unit in the Execution Unit or by the addition of a meta-object protocol upon the Execution Unit. The addition of a sub-unit implies the use of a security or fault-tolerant library. A secure and fault-tolerant library using CORBA can be found in [26]. In the case of the addition of a meta-object protocol the Execution Unit is seen as the base-level program. An example of meta-object protocol, using Open C++ and CORBA, for fault-tolerant can be found in [15]. 5 CONCLUSION We have designed and implemented an architecture allowing the expression of interactions in a compiled, strongly typed, concurrent and distributed environment while maintaining the main properties of interactions, i.e. dynamic instantiation of interactions and the interaction definition only through the interface of objects which will interact in an independent way of the objects physical locality. We have been confronted to the requisite dynamic evaluation of messages. To solve this problem we have introduced a meta-object at the compile time by the use of Open C++, but also defined a runtime metaobject in charge of the interaction dynamic management at runtime. So we use the general-purpose compile time metaobject provided by Open C++ to implement a runtime metaobject specialized for interaction management. The compile time meta-object executes meta computation as much as possible by generating code in the base-level program and linking the base-level objects with their runtime meta-object. The table 1 summaries problems and solutions described in this section. Mechanism Solutions Design Patterns Message Catching Method Wrapper Surrogate - Bridge/Body Parameter Passing Strategy Dynamic Method Call Command Table 1: Compile Time Reflection Mechanism Summary Selection Unit Catching Message Unit Merging Unit Communication between 2 j meta-object units Object Figure 4: Overview of the meta-object available at runtime managing of the interactions The architecture provided by the runtime meta-object makes easier semantic changes in a unit and addition of new behaviors. For example, security and fault-tolerant properties can Throughout its modular conception, in the form of units, the runtime meta-object makes, on one hand, modification of the already available unit semantics easier and, on other hand, the addition of new behaviors, such as the security management, when an interaction is executed at inter object communication level (for example to ensure that an object communicates only with an object that interacts with it) and at network communication level (data encryption transferred by network or fault tolerant communication). It is also possible to combine different runtime meta-objects in order to manage other concurrent or distributed aspects. To preserve the incremental and modular compilation as it exists in C++ we have been constrained to reflect each method defined in a class on which at least one instance can be part of an interaction. The reflection of the methods which are effectively part of an interaction only is an important optimization because this can reduce significantly the number of instan-
5 tiated objects by our architecture. This implies however to know at compile time the class interacting interface, which can be realized by an extension of the C++ syntax, with the use of Open C++, or by the definition of a specialized interface description language (IDL), as in the case of CORBA. References [1] G. Agha and S. Frølund. A Language Framework for Multi-Object Coordination. In Proceedings of ECOOP 93, pages , [2] K. Beck. Smalltalk, Best Practice Patterns. Prentice Hall, ISBN x. [3] L. Berger. Définition et Implémentation d un Modèle de Coordination entre Objets Distants. Rapport de recherche I3S, RR-97-24, [4] L. Berger, A-M. Dery, and M. Fornarino. Interactions between objects : an aspect of object-oriented languages. In ECOOP 98 Workshop on Aspect-Oriented Programming, July [5] S. Bijnens, W. Joosen, and P. Verbaeten. Language Constructs for Coordination in an Agent Space, [6] J. Bosch. Relations as First-Class Entities in LAYOM, Available on [7] J. Brant. Method Wrappers. Smalltalk goody, Applications/MethodWrappers.html. [8] V. Cahill. An Overview of the Tigger Object-Support Operating System Framework. In SOFSEM 96: Theory and Practice of Informatics, volume 1175 of LNCS, pages 34 55, November [9] D. Caromel and J. Vayssière. A Java Framework foe Seamless Sequential, Multi-Threaded, and Distributed Programming. In ACM Workshop Java for High- Performance Network Computing, [10] S. Chiba. A Metaobject Protocol for C++. In the ACM Conference on OOPSLA, pages , October [11] S. Chiba and T. Masuda. Designing an Extensible Distributed Language with a Meta-Level Architecture. In Proceedings of ECOOP 93, pages , [12] S. Ducasse. Des Techniques de Contrôle de l Envoi de Messages en Smalltalk. In L objet, numéro spécial Smalltalk en France : état de l art et de la pratique. Hermes édition, [13] S. Ducasse. Intégration Réflexive de Dépendances dans un Modèle à Classes. Thèse de doctorat, Université de Nice-Sophia Antipolis, January [14] S. Ducasse, M. Fornarino, and A-M. Pinna. A Reflective Model for First Class Relationships. In Proceedings of OOPSLA 95, pages , [15] J.C. Fabre and T. Pérennou. A Metaobject Architecture for Fault Tolerant Distributed Systems : the Friends Approach. In Special Issue on Dependability of Computing Systems, pages IEEE Transactions on Computers, January [16] S. Frølund. Constraint-Based Synchronization of Distributed Activities. PhD thesis, University of Illinois at Urbana-Champaign, [17] C. Horn and V. Cahill. Supporting Distributed Application in the Amadeus Environment. In Computer Communications, volume 14, pages , July [18] G. Kiczales, J. Lamping, A Mendhekar, C. Maeda, C lopes, J-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceeding of ECOOP 97, volume 1241 of LNCS, pages , June [19] C. Laffra and J. Van Den Bos. PROCOL, A Concurrent Object-Oriented Language with Protocols Delegation and Constraints. Acta Informatica, 28: , [20] P.A. Muller. Modélisation objet avec UML. Eyrolles, [21] Event Service Specification, Part 4 of CorbaServices Doc. Number , library/corbserv.htm. [22] Relationship Service Specification, Part 9 of CorbaServices Doc. Number , omg.org/library/corbserv.htm. [23] The common Object Request Broker : Architecture and Specifications, Object Management Group and X/Open, [24] Objectory Process 4.1 : Your UML Process, Rational Corp., [25] D. C. Schmidt. Applying Patterns and Frameworks to Develop Object-Oriented Communication Software, volume 1 of Handbook of Programming Languages. MacMillan Computer Publishing, [26] C. Silva and L. Rodrigues. A Fault-Tolerant Secure CORBA Store using Fragmentation-Redundancy- Scattering. In ECOOP 98 Workshop, July [27] R.J. Stroud. Transparency and Reflection in Distributed Systems. In ACM Operating System Review, volume22, pages , April [28] B. Stroustrup. The C++ Programming Language. Addison-Wesley, 2 edition, [29] C. Videira-Lopes and G. Kiczales. D : A Language Framework for Distributed Programming. Thesis proposal, Northeastern University, College of Computer Science, February 1997.
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 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 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 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 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 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 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 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 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 informationSoftware Factory on top of Eclipse: SmartTools
Software Factory on top of Eclipse: SmartTools Agnès Duchamp 1, Shouhéla Farouk Hassam 1, Stephanie Mevel 1 and Didier Parigot 2, 1 Ecole PolyTech Nice Sophia 930, Route des Collles, PB 145 F-06903 Sophia-Antipolis
More informationEvolution of Collective Object Behavior in Presence of Simultaneous Client-Specific Views
Evolution of Collective Object Behavior in Presence of Simultaneous Client-Specific Views Bo Nørregaard Jørgensen, Eddy Truyen The Maersk Mc-Kinney Moller Institute for Production Technology, University
More information1 From Distributed Objects to Distributed Components
From Distributed Objects to Distributed : the Olan Approach Luc Bellissard, Michel Riveill BP 53, F 38041 Grenoble Cedex 9, FRANCE Phone: (33) 76 61 52 78 Fax: (33) 76 61 52 52 Email: Luc.Bellissard@imag.fr
More informationExecutable Connectors: Towards Reusable Design Elements
Executable Connectors: Towards Reusable Design Elements Appeared in ESEC 97 Stéphane Ducasse and Tamar Richner Software Composition Group, Institut für Informatik (IAM), Universität Bern (ducasse,richner)@iam.unibe.ch
More informationc Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco
c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted
More informationImplementing Producers/Consumers Problem Using Aspect-Oriented Framework
Implementing Producers/Consumers Problem Using Aspect-Oriented Framework 1 Computer Science Department School of Science Bangkok University Bangkok, Thailand netipan@iit.edu Paniti Netinant 1, 2 and Tzilla
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 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 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 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 informationDynamic Type Inference to Support Object-Oriented Reengineering in Smalltalk
Dynamic Type Inference to Support Object-Oriented Reengineering in Smalltalk Pascal Rapicault, Mireille Blay-Fornarino,Stéphane Ducasse +, Anne-Marie Dery I3S University of Nice-Sophia Antipolis + Software
More informationAspect-Based Workflow Evolution
Aspect-Based Workflow Evolution Boris Bachmendo and Rainer Unland Department of Mathematics and Computer Science University of Essen, D - 45117 Essen {bachmendo, unlandr}@cs.uni-essen.de Abstract. In this
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 informationOn the Impact of Aspect-Oriented Programming on Object-Oriented Metrics
On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department
More informationBugdel: An Aspect-Oriented Debugging System
Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,
More informationCS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University
CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization
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 informationAn Aspect-Based Approach to Modeling Security Concerns
An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer
More informationTowards Better Support for Pattern-Oriented Software Development
Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,
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 informationBase Architectures for NLP
Base Architectures for NLP Tom Mahieu, Stefan Raeymaekers et al. Department of Computer Science K.U.Leuven Abstract Our goal is to develop an object-oriented framework for natural language processing (NLP).
More informationBlack-Box Program Specialization
Published in Technical Report 17/99, Department of Software Engineering and Computer Science, University of Karlskrona/Ronneby: Proceedings of WCOP 99 Black-Box Program Specialization Ulrik Pagh Schultz
More informationUsing Reflective Logic Programming to Describe Domain Knowledge as an Aspect
Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect Maja D Hondt 1, Wolfgang De Meuter 2, and Roel Wuyts 2 1 System and Software Engineering Laboratory 2 Programming Technology
More informationAOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz
AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development
More informationAPPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *
APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * Xiaoqing Wu, Barrett Bryant and Jeff Gray Department of Computer and Information Sciences The University
More informationFederating Heterogeneous Event Services
Federating Heterogeneous Event Services Conor Ryan, René Meier, and Vinny Cahill Distributed Systems Group, Department of Computer Science, Trinity College Dublin, Ireland cahryan@eircom.net, rene.meier@cs.tcd.ie,
More informationUML Aspect Specification Using Role Models
UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University
More informationUML4COP: UML-based DSML for Context-Aware Systems
UML4COP: UML-based DSML for Context-Aware Systems Naoyasu Ubayashi Kyushu University ubayashi@acm.org Yasutaka Kamei Kyushu University kamei@ait.kyushu-u.ac.jp Abstract Context-awareness plays an important
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 informationHotAgent Component Assembly Editor
HotAgent Component Assembly Editor Ludger Martin Darmstadt University of Technology Department of Computer Science Wilhelminenstr. 7, 64283 Darmstadt, Germany Tel: +49 (0)6151 16 6710, Fax: +49 (0)6151
More informationReflective Design Patterns to Implement Fault Tolerance
Reflective Design Patterns to Implement Fault Tolerance Luciane Lamour Ferreira Cecília Mary Fischer Rubira Institute of Computing - IC State University of Campinas UNICAMP P.O. Box 676, Campinas, SP 3083-970
More informationApplication Servers in E-Commerce Applications
Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand
More informationRAMSES: a Reflective Middleware for Software Evolution
RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it
More informationThe Actor Role Coordinator Implementation Developer s Manual
The Actor Role Coordinator Implementation Developer s Manual Nianen Chen, Li Wang Computer Science Department Illinois Institute of Technology, Chicago, IL 60616, USA {nchen3, li}@iit.edu 1. Introduction
More informationFT-Java: A Java-Based Framework for Fault-Tolerant Distributed Software
FT-Java: A Java-Based Framework for Fault-Tolerant Distributed Software Vicraj Thomas, Andrew McMullen, and Lee Graba Honeywell Laboratories, Minneapolis MN 55418, USA Vic.Thomas@Honeywell.com Abstract.
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 informationMessage Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1
Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects
More informationAppendix A - Glossary(of OO software term s)
Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component
More 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 informationSupporting parametric polymorphism in CORBA IDL
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 285 292. Supporting parametric polymorphism in CORBA IDL Zoltán Porkoláb a, Roland
More informationExpressing variability for design patterns re-use
Expressing variability for design patterns re-use Nicolas Arnaud Agnès Front Dominique Rieu LSR-IMAG, équipe SIGMA 681 rue de la passerelle BP 72 38402 Saint Martin d Hères Cedex {surname.name}@imag.fr
More informationSafe Aspect Composition. When dierent aspects [4] are composed, one must ensure that the resulting
Safe Composition Laurent Bussard 1, Lee Carver 2, Erik Ernst 3, Matthias Jung 4, Martin Robillard 5, and Andreas Speck 6 1 I3S { CNRS UPRESA 6070 { B^at ESSI, 06190 Sophia-Antipolis, France, bussard@essi.fr
More informationDynamic Instantiation-Checking Components
Dynamic Instantiation-Checking Components Nigamanth Sridhar Electrical and Computer Engineering Cleveland State University 318 Stilwell Hall, 2121 Euclid Ave Cleveland OH 44113 n.sridhar1@csuohio.edu ABSTRACT
More informationDynamic Weaving for Building Reconfigurable Software Systems
Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent
More informationMiddleware Reliability Implementations and Connector Wrappers
Middleware Reliability Implementations and Connector Wrappers J.H. Sowell and R.E.K. Stirewalt Department of Computer Science and Engineering Michigan State University East Lansing, Michigan 48824 USA
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 informationSoftware Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.
Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice
More informationTool Support for Refactoring Duplicated OO Code
Tool Support for Refactoring Duplicated OO Code Stéphane Ducasse and Matthias Rieger and Georges Golomingi Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10,
More informationIdioms for Building Software Frameworks in AspectJ
Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,
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 informationDistributed Scheduling for the Sombrero Single Address Space Distributed Operating System
Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System Donald S. Miller Department of Computer Science and Engineering Arizona State University Tempe, AZ, USA Alan C.
More informationStatic rules of variable scoping in Erlang
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 137 145. Static rules of variable scoping in Erlang László Lövei, Zoltán Horváth,
More informationm() 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)
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, 38330 Montbonnot Saint-Martin,
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 informationOn Aspect-Oriented Technology and Object-Oriented Design Patterns
On Aspect-Oriented Technology and Object-Oriented Design Patterns Ouafa Hachani and Daniel Bardou Equipe SIGMA, LSR-IMAG BP 72 38402 Saint Martin d Hères Cedex, France {Ouafa.Hachani, Daniel.Bardou}@imag.fr
More informationMulti-Dimensional Separation of Concerns and IBM Hyper/J
Multi-Dimensional Separation of Concerns and IBM Hyper/J Technical Research Report Barry R. Pekilis Bell Canada Software Reliability Laboratory Electrical and Computer Engineering University of Waterloo
More informationOpenCorba: a Reflective Open Broker
OpenCorba: a Reflective Open Broker Thomas Ledoux École des Mines de Nantes 4 rue Alfred Kastler F-44307 Nantes cedex 3, France Thomas.Ledoux@emn.fr Abstract. Today, CORBA architecture brings the major
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 informationSynthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures
Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Dietmar Schreiner 1,2 and Karl M. Göschka 1 1 Vienna University of Technology Institute of Information
More informationCUSTOMISATION OF INHERITANCE
CUSTOMISATION OF INHERITANCE Pierre Crescenzo and Philippe Lahire Address: Laboratoire I3S (UNSA/CNRS) Projet OCL 2000, route des lucioles Les Algorithmes, Bâtiment Euclide B BP 121 F-06903 Sophia-Antipolis
More informationImproving Software Modularity using AOP
B Vasundhara 1 & KV Chalapati Rao 2 1 Dept. of Computer Science, AMS School of Informatics, Hyderabad, India 2 CVR College of Engineering, Ibrahimpatnam, India E-mail : vasu_venki@yahoo.com 1, chalapatiraokv@gmail.com
More informationTowards a formal model of object-oriented hyperslices
Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This
More informationAUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK
AUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK Wilfrid Lefer LIUPPA - Université de Pau B.P. 1155, 64013 Pau, France e-mail: wilfrid.lefer@univ-pau.fr ABSTRACT VTK (The Visualization Toolkit) has
More informationObject-Oriented Theories for Model Driven Architecture
Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University
More informationKernel Korner AEM: A Scalable and Native Event Mechanism for Linux
Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Give your application the ability to register callbacks with the kernel. by Frédéric Rossi In a previous article [ An Event Mechanism
More informationCYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms
CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms Raju Pandey J. C. Browne Department of Computer Sciences The University of Texas at Austin Austin, TX 78712 fraju, browneg@cs.utexas.edu
More informationThe Object Model Overview. Contents. Section Title
The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group
More informationThe dialog tool set : a new way to create the dialog component
The dialog tool set : a new way to create the dialog component Guilaume Texier, Laurent Guittet, Patrick Girard LISI/ENSMA Téléport 2 1 Avenue Clément Ader - BP 40109 86961 Futuroscope Chasseneuil Cedex
More informationThe Contract Pattern. Design by contract
The Contract Pattern Copyright 1997, Michel de Champlain Permission granted to copy for PLoP 97 Conference. All other rights reserved. Michel de Champlain Department of Computer Science University of Canterbury,
More informationDistributed Systems Principles and Paradigms
Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.
More informationEfficient Separate Compilation of Object-Oriented Languages
Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr
More informationAdaptive Fault Tolerant Systems: Reflective Design and Validation
1 Adaptive Fault Tolerant Systems: Reflective Design and Validation Marc-Olivier Killijian Dependable Computing and Fault Tolerance Research Group Toulouse - France 2 Motivations Provide a framework for
More informationDesign, Share and Re-use of Data and Applications into a Federate DataBase System. 1. Introduction
Design, Share and Re-use of Data and Applications into a Federate DataBase System Thierry MILLAN, Myriam LAMOLLE Team of Pierre BAZEX IRIT - CNRS (UMR 5055) - Université Paul Sabatier 118, route de Narbonne
More informationApplying Idioms for Synchronization Mechanisms Synchronizing communication components for the One-dimensional Heat Equation
Applying Idioms for Synchronization Mechanisms Synchronizing communication components for the One-dimensional Heat Equation Jorge L. Ortega Arjona 1 Departamento de Matemáticas Facultad de Ciencias, UNAM
More informationWrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005
Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand
More informationProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques Ritu Arora, Yu Sun, Zekai Demirezen, Jeff Gray University of Alabama at Birmingham Department of Computer and Information Sciences Birmingham,
More informationReduction of Program-generation Times by Transformation-sequence Optimization
Reduction of Program-generation Times by Transformation-sequence Optimization Martin Kuhlemann, Andreas Lübcke and Gunter Saake University of Magdeburg, Magdeburg, Germany {mkuhlema, luebcke, saake}@ovgu.de
More informationPROFESSOR: DR.JALILI BY: MAHDI ESHAGHI
PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI 1 2 Overview Distributed OZ Java RMI CORBA IDL IDL VS C++ CORBA VS RMI 3 Distributed OZ Oz Language Multi paradigm language, strong support for compositionality and
More informationSystem types. Distributed systems
System types 1 Personal systems that are designed to run on a personal computer or workstation Distributed systems where the system software runs on a loosely integrated group of cooperating processors
More informationTeaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs
Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Gilles Ardourel, Marianne Huchard To cite this version: Gilles Ardourel, Marianne Huchard. Teaching Encapsulation and
More informationHow useful is the UML profile SPT without Semantics? 1
How useful is the UML profile SPT without Semantics? 1 Susanne Graf, Ileana Ober VERIMAG 2, avenue de Vignate - F-38610 Gières - France e-mail:{susanne.graf, Ileana.Ober}@imag.fr http://www-verimag.imag.fr/~{graf,iober}
More informationOn Preserving Domain Consistency for an Evolving Application
On Preserving Domain Consistency for an Evolving Application João Roxo Neves and João Cachopo INESC-ID / Instituto Superior Técnico, Universidade Técnica de Lisboa, Portugal {JoaoRoxoNeves,joao.cachopo}@ist.utl.pt
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 informationENHANCING JAVA WITH SUPPORT FOR SIMULTANEOUS INDEPENDENT EXTENSIBILITY OF COLLABORATING OBJECTS
ENHANCING JAVA WITH SUPPORT FOR SIMULTANEOUS INDEPENDENT EXTENSIBILITY OF COLLABORATING OBJECTS Bo Nørregaard Jørgensen The Maersk Mc-Kinney Moller Institute for Production Technology University of Southern
More informationSoftware Architecture
Software Architecture Prof. R K Joshi Department of Computer Science and Engineering IIT Bombay What is Architecture? Software Architecture? Is this an Architecture? Is this an Architecture? Is this an
More informationIntegration of Non-Functional Properties in Containers
Integration of Non-Functional Properties in Containers Denis Conan, Erik Putrycz Nicolas Farcet, Miguel DeMiguel Institut National des Télécommunications THALES 9, rue Charles Fourier Corporate Research
More informationConcurrency Control with Java and Relational Databases
Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based
More informationArchitectural Styles. Software Architecture Lecture 5. Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Architectural Styles Software Architecture Lecture 5 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Object-Oriented Style Components are objects Data and associated
More informationCAS 703 Software Design
Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction
More informationVisualization process of Temporal Data
Visualization process of Temporal Data Chaouki Daassi 1, Laurence Nigay 2 and Marie-Christine Fauvet 2 1 Laboratoire SysCom, Université de Savoie, Chambéry, France 2 Laboratoire CLIPS-IMAG BP 53-38041,
More informationDesigning Aspect-Oriented Crosscutting in UML
Designing Aspect-Oriented Crosscutting in UML Dominik Stein, Stefan Hanenberg, and Rainer Unland Institute for Computer Science University of Essen, Germany {dstein shanenbe unlandr}@cs.uni-essen.de ABSTRACT
More information