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

Size: px
Start display at page:

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

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

More information

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

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

More information

Implementing Software Connectors through First-Class Methods

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

More information

Using Aspects to Make Adaptive Object-Models Adaptable

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

More information

Using Aspects to Make Adaptive Object-Models Adaptable

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

More information

Using AOP to build complex data centric component frameworks

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

More information

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

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

More information

Reflective Java and A Reflective Component-Based Transaction Architecture

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

More information

Composition and Separation of Concerns in the Object-Oriented Model

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

More information

Software Factory on top of Eclipse: SmartTools

Software 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 information

Evolution of Collective Object Behavior in Presence of Simultaneous Client-Specific Views

Evolution 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 information

1 From Distributed Objects to Distributed Components

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

More information

Executable Connectors: Towards Reusable Design Elements

Executable 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 information

c 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 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 information

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework

Implementing 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 information

Do! environment. DoT

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

More information

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

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

More information

Jarcler: Aspect-Oriented Middleware for Distributed Software in Java

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

More information

Engineering CORBA-based Distributed Systems

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

More information

Dynamic Type Inference to Support Object-Oriented Reengineering in Smalltalk

Dynamic 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 information

Aspect-Based Workflow Evolution

Aspect-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 information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

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

More information

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics

On 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 information

Bugdel: An Aspect-Oriented Debugging System

Bugdel: 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 information

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

CS555: 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 information

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

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

More information

An Aspect-Based Approach to Modeling Security Concerns

An 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 information

Towards Better Support for Pattern-Oriented Software Development

Towards 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 information

Chapter 5: Distributed objects and remote invocation

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

More information

Base Architectures for NLP

Base 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 information

Black-Box Program Specialization

Black-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 information

Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect

Using 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 information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - 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 information

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *

APPLYING 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 information

Federating Heterogeneous Event Services

Federating 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 information

UML Aspect Specification Using Role Models

UML 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 information

UML4COP: UML-based DSML for Context-Aware Systems

UML4COP: 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 information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

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

More information

HotAgent Component Assembly Editor

HotAgent 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 information

Reflective Design Patterns to Implement Fault Tolerance

Reflective 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 information

Application Servers in E-Commerce Applications

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

More information

RAMSES: a Reflective Middleware for Software Evolution

RAMSES: 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 information

The Actor Role Coordinator Implementation Developer s Manual

The 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 information

FT-Java: A Java-Based Framework for Fault-Tolerant Distributed Software

FT-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 information

Applying Experiences with Declarative Codifications of Software Architectures on COD

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

More information

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

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

More information

Appendix A - Glossary(of OO software term s)

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

More information

A Grid-Enabled Component Container for CORBA Lightweight Components

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

More information

Supporting parametric polymorphism in CORBA IDL

Supporting 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 information

Expressing variability for design patterns re-use

Expressing 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 information

Safe Aspect Composition. When dierent aspects [4] are composed, one must ensure that the resulting

Safe 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 information

Dynamic Instantiation-Checking Components

Dynamic 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 information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic 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 information

Middleware Reliability Implementations and Connector Wrappers

Middleware 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 information

Distribution Transparencies For Integrated Systems*

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

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software 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 information

Tool Support for Refactoring Duplicated OO Code

Tool 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 information

Idioms for Building Software Frameworks in AspectJ

Idioms 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 information

extrinsic members RoleB RoleA

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

More information

Distributed Scheduling for the Sombrero Single Address Space Distributed Operating System

Distributed 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 information

Static rules of variable scoping in Erlang

Static 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 information

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)

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) 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 information

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

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

More information

On Aspect-Oriented Technology and Object-Oriented Design Patterns

On 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 information

Multi-Dimensional Separation of Concerns and IBM Hyper/J

Multi-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 information

OpenCorba: a Reflective Open Broker

OpenCorba: 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 information

Model Composition Directives

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

More information

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures

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

More information

CUSTOMISATION OF INHERITANCE

CUSTOMISATION 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 information

Improving Software Modularity using AOP

Improving 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 information

Towards a formal model of object-oriented hyperslices

Towards 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 information

AUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK

AUTOMATIC 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 information

Object-Oriented Theories for Model Driven Architecture

Object-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 information

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux

Kernel 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 information

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms

CYES-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 information

The Object Model Overview. Contents. Section Title

The 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 information

The dialog tool set : a new way to create the dialog component

The 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 information

The Contract Pattern. Design by contract

The 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 information

Distributed Systems Principles and Paradigms

Distributed 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 information

Efficient Separate Compilation of Object-Oriented Languages

Efficient 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 information

Adaptive Fault Tolerant Systems: Reflective Design and Validation

Adaptive 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 information

Design, 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. 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 information

Applying 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 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 information

Wrapping 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 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 information

Profiler Instrumentation Using Metaprogramming Techniques

Profiler 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 information

Reduction of Program-generation Times by Transformation-sequence Optimization

Reduction 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 information

PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI

PROFESSOR: 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 information

System types. Distributed systems

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

More information

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Teaching 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 information

How useful is the UML profile SPT without Semantics? 1

How 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 information

On Preserving Domain Consistency for an Evolving Application

On 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 information

Applying Aspect Oriented Programming on Security

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

More information

ENHANCING JAVA WITH SUPPORT FOR SIMULTANEOUS INDEPENDENT EXTENSIBILITY OF COLLABORATING OBJECTS

ENHANCING 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 information

Software Architecture

Software 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 information

Integration of Non-Functional Properties in Containers

Integration 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 information

Concurrency Control with Java and Relational Databases

Concurrency 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 information

Architectural 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. 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 information

CAS 703 Software Design

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

More information

Visualization process of Temporal Data

Visualization 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 information

Designing Aspect-Oriented Crosscutting in UML

Designing 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