Fighting Class Name Clashes in Java Component Systems

Size: px
Start display at page:

Download "Fighting Class Name Clashes in Java Component Systems"

Transcription

1 Fighting Class Name Clashes in Java Component Systems Petr Hnětynka, Petr Tůma Charles University Department of Software Engineering Distributed System Research Group Malostranské náměstí 25, Prague 1, Czech Republic Abstract: This paper deals with class and interface name clashes in Java component systems that occur because of evolutionary changes during the lifecycle of a component application. We show that the standard facilities of the Java type system do not provide a satisfactory way to deal with the name clashes, and present a solution based on administering the names of classes and interfaces with a version identifier using a byte code manipulation tool. The solution is demonstrated on a proof of concept implementation. Keywords: Components, Java, versioning, classes, interfaces, name clashes. 1 Introduction The introduction of components into the software engineering process brings the benefits of easier reuse and dynamic integration. Being elements of reuse and integration, the components follow the typical lifecycle of applications [9] and are therefore subject to evolutionary changes that may change both their internals and their interfaces. Because of features such as platform independence, type safety, garbage collection, dynamic loading and others, both the component platforms and the components themselves are often developed in Java [8]. The components are typically sets of Java classes and interfaces, evolutionary changes to the internals and interfaces of components thus require changes of the corresponding Java classes and interfaces. Some evolutionary changes lead to a situation that requires different versions of a class or an interface to coexist in one application. This is difficult to do in Java, where two classes or interfaces with the same name cannot coexist unless loaded by unrelated classloaders. In this paper, we describe how to deal with such a situation without resorting to an elaborate naming scheme or an elaborate classloader hierarchy, which we show to be worse than our solution.

2 2 Petr Hnětynka, Petr Tůma In section 2, we detail the context in which the name clashes appear and explain why some of the apparently straightforward solutions such as naming schemes or classloader hierarchies do not work well. In section 3, we outline our approach to avoiding the name clashes and illustrate it on a proof of concept implementation. In section 4, we show how our approach differs from that of other Java component systems. Section 5 concludes the paper. 2 Java Component Systems 2.1 Components, Classes, Interfaces A software component is an independent unit in a sense that its interface, which includes both the offered services and the context dependencies, is specified explicitly. This facilitates an easy reuse of components without knowledge of their internals. In contemporary Java component systems [2,6,13,15], the offered services are represented by a set of interfaces that a component provides, and the context dependencies are represented by a set of interfaces that a component requires. Given the provided and required interfaces, a component is represented by a set of classes that implement the provided interfaces and call the required interfaces. Besides being implemented directly as a set of Java classes, a component can also be composed from other components. We term these components composed, as opposed to primitive. A composed component is created by connecting other components through their provided and required interfaces. The connections can be described in an architecture description language, which will then provide information necessary for generating parts of the composed component implementation such as component bindings and factories. The composition of components forms a hierarchical structure that can be represented as a tree or, in a component system that allows sharing of components, an acyclic graph. 2.2 Sources of Name Clashes By a name clash, we understand a situation where a class or an interface cannot be loaded by the Java virtual machine because its name is the same as a name of another class or interface that has already been loaded. The name clashes that are of interest to us are related to the evolutionary changes that can occur during the lifecycle of a component application, namely changes to classes that make up the component and changes to interfaces that make up the component. 1 The first source of name clashes is a situation where the classes that make up a component are replaced by a new version while the component application that uses 1 For sake of brevity, we omit the discussion of the likelihood that the situations described here as sources of name clashes will occur in practice. For readers that will not find the practicality of the situations evident, good arguments can be found in [1,9,11,14].

3 Fighting Class Name Clashes in Java Component Systems 3 the component is running. This can lead to a name clash between the old and the new version of the classes. As an example, consider a component with a class LoggerImpl that is to be updated. 2 An attempt to replace this class by a new version will cause a name clash because the Java virtual machine will refuse to load the new LoggerImpl class after the old one has been loaded. The second source of name clashes is a situation where the interfaces that make up the component are replaced by a new version but the component application that uses the component does not change and an adapter is used to bridge the mismatch. This can lead to a name clash inside the adapter, which needs to access both the old and the new version of the interfaces. As an example, consider a component with an interface Log that is to be updated. An attempt to create an adapter between the old and the new version will cause a name clash because both versions of the interface will use the same name. The third source of name clashes is a situation where a single Java virtual machine is used to run several component applications to avoid redundant loading of shared code. This can lead to a name clash when the component applications use different versions of the same component. 2.3 Straightforward Solutions Do Not Work Well Unique names: Probably the most straightforward solution that helps to avoid the name clashes is to use unique names for each version of the classes and interfaces that make up a component. The obvious disadvantage of this approach is the need to change the names with each new version of the class and the interface. This disadvantage is further aggravated when the change is not confined to the component itself, but also needs to be made in the component application that uses the component. The use of unique names also leads to using longer names with prefixes or suffixes, which inconveniences the programmer. Different classloaders: Another straightforward solution is to use different classloaders to load classes and interfaces of different components. Each classloader is associated with a namespace and can therefore load a class or an interface even when another class or interface with the same name was already loaded by a different classloader. Using a distinct classloader for each component will therefore avoid name clashes because the names of classes and interfaces that make up each component will belong to a different namespace. Unfortunately, this solution makes the Java virtual machine see the interfaces of different components as incompatible even when they have the same definition. This is a problem when the components are to be connected to each other, because it is impossible to connect the incompatible interfaces directly through Java references. Java reflection: One way to avoid the problem of connecting seemingly incompatible interfaces is to use the Java reflection API. The references used to connect the interfaces can be passed as of the java.lang.object type rather than their most 2 For more details on the components considered in the examples, see section 3.2.

4 4 Petr Hnětynka, Petr Tůma derived type, and the Java reflection API can be used to invoke methods on the interfaces. To invoke a method through the Java reflection API, an instance of the java.lang.reflect.method class must be obtained to represent the method, and all arguments of the method that are of primitive types must be stored in corresponding wrapper classes. Although the code to do this can be generated from the interface description and therefore be no burden to the programmer, it slows down the invocations considerably. Table 1 illustrates this by comparing the times of a direct method invocation with the times of a method invocation through the Java reflection API on a dual CPU 360MHz UltraSparc machine with Java 1.4. no arguments single String five int argument arguments Direct invocation 11.22µs 11.22µs 22.35µs Java reflection 872.4µs 803.3µs 1643µs Table 1. Times of method calls Hierarchy of classloaders: Another way to avoid the problem of connecting seemingly incompatible interfaces is to use a hierarchy of classloaders. A classloader has exactly one parent, which is set during its creation and cannot be changed. Typically, a classloader delegates requests to load a class or an interface to its parent and only if the parent cannot load the class or the interface, the classloader tries to load it by itself. Classloaders that share a parent therefore also share parts of their associated namespaces. In addition to using different classloaders to load classes and interfaces of different components, the classloaders can be set up so that whenever two components are to be connected to each other, the loading of their interfaces will be delegated to the same parent classloader. The resulting hierarchy of classloaders will mirror the hierarchy formed by the composition of components. This solution makes the Java virtual machine see the interfaces of components that are to be connected to each other as compatible, because they were loaded by the shared parent classloader. Unfortunately, even this solution fails when the interfaces that make up a component are replaced by a new version and an adapter is used to bridge the mismatch between the component and the component application that uses the component. The interfaces that make up the adapter necessarily belong to a single namespace and because the adapter needs to access both the old and the new version of the interfaces, a name clash will occur. Modified Java virtual machine: Albeit not so straightforward, the third solution to be mentioned is to modify the Java virtual machine. This solution is used by some systems described in section 4. Without going into detail, we just note that this solution requires the component application to run on a nonstandard Java virtual machine and may interfere with mechanisms such as just in time compilation, which makes it generally less flexible.

5 Fighting Class Name Clashes in Java Component Systems 5 3 Removing Name Clashes in Byte Code 3.1 Byte Code Manipulation The Unique names solution from section 2.3, which rested in using unique names for each version of the classes and interfaces that make up a component, is attractive in that it does not require changes to the Java virtual machine, does not incur performance penalty, and works for all the sources of name clashes considered in section 2.2. The problem rests with the convenience of its usage. Ideally, the programmer should be able to use the same names for different versions of the classes and interfaces, but the executable code of the component application should use unique names for each version. A solution to this problem rests with byte code manipulation of the executable code of the component application. Several tools for byte code manipulation are available [3,4,5,17]. Usually, they are used for performance optimizations, for extending functionality by intercepting method invocations, or for generating code in adaptable systems. In our solution, the byte code manipulation is used to augment the names of classes and interfaces that make up a component by adding a unique version identifier, and to rename the references to these classes and interfaces to use the augmented names. That way, the programmer can use the same names for different versions of the classes and interfaces in a convenient way, without running into name clashes. With this solution, an associated problem appears when the standard classloader of the Java virtual machine is used to load the classes or interfaces whose names were augmented by the byte code manipulation. The standard classloader expects the files that contain the classes and interfaces to be named the same as the classes and interfaces themselves, which means that renaming and repackaging of the files is also required. Alternatively, remote loading of classes from a version aware class server can be used. 3.2 Proof of Concept As a proof of concept, we have implemented the approach to avoid name clashes through byte code manipulation in SOFA [15,7]. SOFA is a project of our research group that provides a platform for component applications that supports a construction of hierarchic components connected by potentially complex connectors. The components are described in a component description language (CDL), which can include a description of the component behavior by protocols [16]. The components are fully versioned [12] and can be updated while the component application that uses them is running. In SOFA, the components are stored in a template repository together with the necessary metadata that describe their classes and interfaces, including versions. When running, the components reside inside a deployment dock, which provides the necessary deployment and execution facilities. A single deployment dock can run

6 6 Petr Hnětynka, Petr Tůma several component applications. Implemented in Java, it is therefore a platform where all the sources of name clashes that were outlined in section 2.2 can occur. When a component application is being launched in SOFA, the classes and interfaces are loaded by the deployment dock using a single classloader. To obtain the byte code of the classes and interfaces, the classloader contacts the template repository, which acts as a class server for the deployment dock. The template repository looks up the classes and interfaces by the names used in CDL. The names of the classes and interfaces in the byte code are then augmented using the ASM tool [3] and the augmented version is sent to the deployment dock. The augmentation is done using the ASM tool [3]. The only exception to this mechanism is the case of components that serve as adapters and therefore use several versions of the same interface. In this case, the programmer has to use different names for different versions of the interface simply to be able to write the adapter. The template repository therefore requires an additional translation table that maps the names used by the programmer to the augmented names. The ASM tool uses the visitor pattern for byte code manipulation. The template repository implements a class visitor with the visit, visitfield, visitmethod and visitinnerclass methods. The visit method is called once for each visited class and augments the name of the class and the references to the parent class and the implemented interfaces. The visitfield, visitmethod and visitinnerclass methods are called once for each field, method and inner class of the visited class. The visitmethod method instantiates a method visitor to modify the byte code of the visited methods. The method visitor iterates through all instructions of a method and augments the type names in all instructions that refer to type names. Similar to the class visitor, the code visitor has a separate method for visiting related groups of instructions. The instructions that need to be augmented are handled by the visitfieldinsn (instructions for loading or storing a field of an object), visitlocalvariable (a local variable declaration), visitmethodinsn (an instruction that invokes a method), visitmultianewarrayinsn (the multianewarray instruction), visittrycatchblock (an exception handling block) and visittypeinsn (instructions that take a type descriptor as an argument) methods. As an example, consider a primitive component of type Logger with a single provided interface of type Log for logging events. The component has the following CDL description: struct Event { }; interface Log { void log (Event e); }; frame Logger { provides:

7 Fighting Class Name Clashes in Java Component Systems 7 }; Log log; architecture CUNI Logger implements Logger primitive; As the CDL description is compiled, the symbols in it are assigned a unique version identifier. In SOFA, a version identifier is globally unique, constructed from the name of the SOFA node and a sequence number. In our example, let us presume that the particular version identifier assigned to the symbols is nenya!0. As a next step of the compilation, a Java mapping for the described types and a component factory is generated. In our example, the generated interface is Log and the generated classes are Event and LoggerBuilder. When the CDL description is compiled and the mapping generated, the programmer provides the implementation of the component. In our example, it is the LoggerImpl class, which implements the Log interface. When writing the class, the programmer uses the same names as in the CDL description. Here is a fragment of the code of LoggerImpl: public class LoggerImpl implements Log { public void log (Event e) {... } } When the component is launched, the template repository augments the names of all the classes and interfaces that make up the component by the version identifier, in this example nenya_e_0. 3 If the programmer had to achieve the same result without byte code manipulation, the fragment of the code of LoggerImpl above would have to look like this: public class LoggerImpl_nenya_E_0 implements Log_nenya_E_0 { public void log (Event_nenya_E_0 e) {... } } To extend our example further, let us presume that during the lifecycle of the component application that uses the Logger component, another method will be added to the Log interface. The symbols in the CDL description of the new version will be assigned a new version identifier nenya!1. When providing the new implementation of the component, the programmer will simply add the new method to 3 The exclamation mark in nenya!0 is replaced because it is not allowed in class names.

8 8 Petr Hnětynka, Petr Tůma the old LoggerImpl class, without modifying the names of the classes and interfaces. When the new component will be launched, the template repository will augment the names of all the classes and interfaces by the version identifier nenya_e_1, which will make them different from the names used by the old component and therefore avoid name clashes. 4 Related Work Related to our work are the systems that address the need for coexistence of several versions of a class or an interface in a single Java virtual machine, or the need to dynamically update a Java application. One such system is described in [14], where the authors provide a dynamic environment for distributed Java applications that supports hosting multiple applications within a single JVM. The environment manages classes and objects in distinct class and object spaces, which allows hosting multiple applications without running into name clashes. The disadvantage of the system is that the applications must communicate with each other using only the types from the core of the system. The Java Distributed Runtime Updating Management System (JDRUMS) [1] allows updating Java classes at runtime. The name clashes are removed by using a modified Java virtual machine that can load a new version of a class with the same name as the old version. The first version of JDRUMS allows only limited changes of classes and objects. The second version, JDRUMS 2, provides more options for dynamic changes, but also brings security problems as during the update, it is possible to retrieve secret information that is not available during normal program execution. JDRUMS also disables the just in time compilation. The Dynamic Java Classes (DJC) [11] also allow updating Java classes at runtime. Again, the name clashes are removed by using a modified Java virtual machine with a dynamic classloader that allows a class to be defined multiple times. DJC also extend the Java security mechanism to cope with dynamic updates, and disable the just in time compilation. Many other Java component systems that exist today simply do not support the dynamic updates or coexistence of several versions of a class or an interface with the same name. One such system is the Enterprise Java Beans (EJB) framework from Sun [6]. The components in EJB are called enterprise beans or beans for short. There is no support for dynamic updates of beans in EJB. Fractal [2] from ObjectWeb is a general software composition framework that supports components. Fractal supports an explicit definition of provisions and requirements of a component, composed components with a formal architecture description, component bindings, component sharing and other features. Fractal itself is an abstract framework and serves as a base for a reference implementation called Julia. Fractal and Julia support dynamic updates through reconfiguration, which can add new components, change bindings and remove old components, but cannot handle dynamic updates that involve different versions of the same classes or interfaces.

9 Fighting Class Name Clashes in Java Component Systems 9 5 Conclusion In this paper, we have pointed out the problem of name clashes that occur in Java component systems because of evolutionary changes during the lifecycle of a component application, and explained the sources of these name clashes. We have shown that the standard facilities of the Java type system do not provide for a satisfactory solution, and explained how solutions such as naming schemes or classloader hierarchies may lead to performance penalties and inconvenience the programmer. We have proposed a solution to the problem of name clashes based on administering the names of classes and interfaces with a version identifier using a byte code manipulation tool. Through a proof of concept implementation, we have also demonstrated that our solution integrates smoothly with a Java component system. We have shown that our solution differs from and is superior to the solutions used in contemporary Java component systems. Acknowledgements The authors would like to thank František Plášil, Vladimír Mencl and Jiří Adámek for valuable comments. This work was partially supported by the Grant Agency of the Czech Republic in grants number 102/03/0672 and 201/03/0911. References 1. Andersson, J.: A Deployment System for Pervasive Computing, Proceedings of the International Conference on Software Maintenance (ICSM'00), Bruneton, E., Coupaye, T., Stefani, J. B.: The Fractal Composition Framework, 3. Bruneton, E., Lenglet, R., Coupaye, T.: ASM: A code manipulation tool to implement adaptable systems, 4. Cohen, G. A., Chase, J. S., Kaminsky, D. L.: Automatic program transformation with JOIE, USENIX 1998 Annual Technical Conference, New Orleans, Louisiana, USA, Dahm, M.: Byte Code Engineering, Proceedings JIT'99, Springer, DeMichiel, L. G., Yalcinalp, L. U., Krishnan, S.: Enterprise JavaBeans Specification, Version 2.0, 7. Distributed Systems Research Group: SOFA implementation in Java Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, Second Edition, 9. Lehman, M. M., Ramil, J. F.: Software Evolution in the Age of Component Based Software Engineering, IEE Proceedings Software, Special Issue on Component Based Software Eng., v. 147, n. 6, Dec. 2000, pp Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, Second Edition,

10 10 Petr Hnětynka, Petr Tůma 11. Malabarba, S., Pandey, R., Gragg, J., Barr, E., Barnes, J. F.: Runtime support for type-safe dynamic Java classes, Proceedings of the European Conference on Object- Oriented Programming, June Mencl, V., Hnětynka, P.: Managing Evolution of Component Specifications using a Federation of Repositories, Tech. Report No. 2001/2, Dep. of SW Engineering, Charles University, Prague, Jun Object Management Group: CORBA Components, v 3.0, OMG document formal/ Paal, S., Kammüller, R., Freisleben, B.: Customizable Deployment, Composition, and Hosting of Distributed Java Applications, Proceedings of the International Symposium on Distributed Objects and Applications (DOA 2002), Springer, Plášil, F., Bálek, D., Janeček, R.: SOFA/DCUP: Architecture for Component Trading and Dynamic Updating, Proceedings of ICCDS'98, Annapolis, Maryland, USA, IEEE CS Press, May Plášil, F., Višňovský, S.: Behavior Protocols for Software Components, IEEE Transactions on Software Engineering, vol. 28, no. 11, Nov White, A.: Serp,

Enhancing EJB Component Model

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

More information

Hierarchical vs. Flat Component Models

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

More information

Constraint-based Generation of Connectors

Constraint-based Generation of Connectors Constraint-based Generation of Connectors Tomas Bures Charles University, Faculty of Mathematics and Physics, Prague, Czech Republic Abstract. In this paper we discuss the a typical use-case of connector

More information

CHARLES UNIVERSITY IN PRAGUE FACULTY OF MATHEMATICS AND PHYSICS DOCTORAL THESIS. Petr Hnětynka

CHARLES UNIVERSITY IN PRAGUE FACULTY OF MATHEMATICS AND PHYSICS DOCTORAL THESIS. Petr Hnětynka CHARLES UNIVERSITY IN PRAGUE FACULTY OF MATHEMATICS AND PHYSICS DOCTORAL THESIS Petr Hnětynka Making deployment process of distributed component-based software unified Department of Software Engineering

More information

Specification and Generation of Environment for Model Checking of Software Components *

Specification and Generation of Environment for Model Checking of Software Components * Specification and Generation of Environment for Model Checking of Software Components * Pavel Parizek 1, Frantisek Plasil 1,2 1 Charles University, Faculty of Mathematics and Physics, Department of Software

More information

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

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

More information

SOFA NetBeans Module

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

More information

Software Components and Distributed Systems

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

More information

On Performance of Enterprise JavaBeans

On Performance of Enterprise JavaBeans On Performance of Enterprise JavaBeans Radek Pospíšil, Marek Procházka, Vladimír Mencl 1 Abstract Enterprise JavaBeans (EJB) is a new-sprung technology for Java-based distributed software components. During

More information

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING Güray YILMAZ 1 and Nadia ERDOĞAN 2 1 Dept. of Computer Engineering, Air Force Academy, 34807 Yeşilyurt, İstanbul, Turkey 2 Dept. of

More information

Enterprise JavaBeans Benchmarking 1

Enterprise JavaBeans Benchmarking 1 Enterprise JavaBeans Benchmarking 1 Marek Procházka, Petr T ma, Radek Pospíšil Charles University Faculty of Mathematics and Physics Department of Software Engineering Czech Republic {prochazka, tuma,

More information

Generic Environment for Full Automation of Benchmarking

Generic Environment for Full Automation of Benchmarking Generic Environment for Full Automation of Benchmarking Tomáš Kalibera 1, Lubomír Bulej 1,2,Petr Tůma 1 1 Distributed Systems Research Group, Department of Software Engineering Faculty of Mathematics and

More information

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

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

More information

Describing the functionality of EJB using the behavior protocols

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

More information

Documenting Java Database Access with Type Annotations

Documenting Java Database Access with Type Annotations Documenting Java Database Access with Type Annotations Paul L. Bergstein Dept. of Computer and Information Science, University of Massachusetts Dartmouth 285 Old Westport Rd., Dartmouth, MA 02747 pbergstein@umassd.edu

More information

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

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

More information

Addressing Unbounded Parallelism in Verification of Software Components *

Addressing Unbounded Parallelism in Verification of Software Components * Addressing Unbounded Parallelism in Verification of Software Components * Jiri Adamek 1,2 1 Charles University in Prague, Faculty of Mathematics and Physics Department of Software Engineering 2 Academy

More information

SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT

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

More information

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

Configuration Management for Component-based Systems

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

More information

Generic Environment for Full Automation of Benchmarking

Generic Environment for Full Automation of Benchmarking Generic Environment for Full Automation of Benchmarking Tomáš Kalibera 1, Lubomír Bulej 1,2, Petr Tůma 1 1 Distributed Systems Research Group, Department of Software Engineering Faculty of Mathematics

More information

Structural Reflection by Java Bytecode Instrumentation

Structural Reflection by Java Bytecode Instrumentation Vol. 42 No. 11 Nov. 2001 Java, Java API introspection API Javassist Java JVM Javassist JVM Javassist Structural Reflection by Java Bytecode Instrumentation Shigeru Chiba, and Michiaki Tatsubori The standard

More information

A COMPONENT-ORIENTED FRAMEWORK FOR SPACECRAFT ON-BOARD SOFTWARE

A COMPONENT-ORIENTED FRAMEWORK FOR SPACECRAFT ON-BOARD SOFTWARE A COMPONENT-ORIENTED FRAMEWORK FOR SPACECRAFT ON-BOARD SOFTWARE Marek Prochazka (1), Roger Ward (1), Petr Tuma (2), Petr Hnetynka (2), Jiri Adamek (2) (1) SciSys, Clothier Road, Bristol, BS4 5SS, United

More information

Java Internals. Frank Yellin Tim Lindholm JavaSoft

Java Internals. Frank Yellin Tim Lindholm JavaSoft Java Internals Frank Yellin Tim Lindholm JavaSoft About This Talk The JavaSoft implementation of the Java Virtual Machine (JDK 1.0.2) Some companies have tweaked our implementation Alternative implementations

More information

The Myx Architectural Style

The Myx Architectural Style The Myx Architectural Style The goal of the Myx architectural style is to serve as an architectural style that is good for building flexible, high performance tool-integrating environments. A secondary

More information

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

Towards Reusable Heterogeneous Data-Centric Disentangled Parts Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute

More information

Component-Based Applications: A Dynamic Reconfiguration Approach with Fault Tolerance Support

Component-Based Applications: A Dynamic Reconfiguration Approach with Fault Tolerance Support Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 9 pages Component-Based Applications: A Dynamic Reconfiguration Approach with Fault

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

When Java technology burst onto the Internet scene in 1995,

When Java technology burst onto the Internet scene in 1995, MOBILE CODE SECURITY SECURE JAVA CLASS LOADING The class loading mechanism, LI GONG Sun Microsystems central to Java, plays a key role in JDK 1.2 by enabling When Java technology burst onto the Internet

More information

Modern Software Architectures: Novel Solutions or Old Hats?

Modern Software Architectures: Novel Solutions or Old Hats? Modern Software Architectures: Novel Solutions or Old Hats? Petr TUMA Dept. of Software Engineering, Charles University Malostranské nám. 25, 118 00 Praha, Czech Republic petr.tuma@mff.cuni.cz Abstract.

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Composing Transformations of Compiled Java Programs with Jabyce

Composing Transformations of Compiled Java Programs with Jabyce UDC 681.3.064 Composing Transformations of Compiled Java Programs with Jabyce Romain Lenglet, Thierry Coupaye, and Eric Bruneton France Telecom R&D Division 28 chemin du Vieux Chêne, 38243 Meylan, France

More information

Java Overview An introduction to the Java Programming Language

Java Overview An introduction to the Java Programming Language Java Overview An introduction to the Java Programming Language Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhan Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/

More information

Modeling Software Components Using Behavior Protocols

Modeling Software Components Using Behavior Protocols CHARLES UNIVERSITY FACULTY OF MATHEMATICS AND PHYSICS Modeling Software Components Using Behavior Protocols Doctoral Thesis Stanislav Višnovský Department of Software Engineering Malostranske namesti 25,

More information

Towards Automated Component Compatibility Assessment

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

More information

Specification and Generation of Environment for Model Checking of Software Components

Specification and Generation of Environment for Model Checking of Software Components Specification and Generation of Environment for Model Checking of Software Components Pavel Parizek a,1, Frantisek Plasil a,b,1 a Department of Software Engineering Charles University, Faculty of Mathematics

More information

Think of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern

Think of drawing/diagramming editors. ECE450 Software Engineering II. The problem. The Composite pattern Think of drawing/diagramming editors ECE450 Software Engineering II Drawing/diagramming editors let users build complex diagrams out of simple components The user can group components to form larger components......which

More information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN PATTERN - INTERVIEW QUESTIONS DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions

More information

Addressing Heterogeneity in OMG D&C-based Deployment

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

More information

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform Outline Introduction to Java Introduction Java 2 Platform CS 3300 Object-Oriented Concepts Introduction to Java 2 What Is Java? History Characteristics of Java History James Gosling at Sun Microsystems

More information

Design Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester

Design Patterns. Comp2110 Software Design. Department of Computer Science Australian National University. Second Semester Design Patterns Comp2110 Software Design Department of Computer Science Australian National University Second Semester 2005 1 Design Pattern Space Creational patterns Deal with initializing and configuring

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management

More information

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

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

More information

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

Chapter 6 Enterprise Java Beans

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

More information

Inheritance (Chapter 7)

Inheritance (Chapter 7) Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance

More information

Jironde: A Flexible Framework for Making Components Transactional

Jironde: A Flexible Framework for Making Components Transactional Jironde: A Flexible Framework for Making Components Transactional Marek Prochazka INRIA Rhône-Alpes 665, avenue de l Europe, Montbonnot, 38334 Saint Ismier Cedex, France Marek.Prochazka@inrialpes.fr Abstract.

More information

Overview of the CORBA Performance

Overview of the CORBA Performance Overview of the CORBA Performance Petr Tůma, Adam Buble Charles University, Faculty of Mathematics and Physics Department of Software Engineering Malostranské nám. 25, Prague, Czech Republic phone: +42

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

Asynchronous, Hierarchical and Scalable Deployment of Component-Based Applications

Asynchronous, Hierarchical and Scalable Deployment of Component-Based Applications Asynchronous, Hierarchical and Scalable Deployment of Component-Based Applications Vivien Quéma 1, Roland Balter 2, Luc Bellissard 2, David Féliot 2, André Freyssinet 2, Serge Lacourte 2 1 INPG - Laboratoire

More information

Evolving Services Architectures

Evolving Services Architectures Evolving Services Architectures Petr Hnetynka and Jan Kofron Charles University, Czech Republic A joint presentation of the OW2 projects SOFA 2 and Q-ImPrESS. Overview SOFA 2 overview Q-ImPrESS overview

More information

Container Services for High Confidence Software

Container Services for High Confidence Software Container Services for High Confidence Software Gary J. Vecellio, William M. Thomas, and Robert M. Sanders The MITRE Corporation 7515 Colshire Drive McLean, VA 22102-7508 {vecellio,bthomas,rsanders}@mitre.org

More information

Java Class Visualization for Teaching Object-Oriented Concepts

Java Class Visualization for Teaching Object-Oriented Concepts Java Class Visualization for Teaching Object-Oriented Concepts Herbert L. Dershem and James Vanderhyde Department of Computer Science Hope College Holland, MI 49422-9000 dershem@cs.hope.edu Abstract Visualization

More information

Distributed Objects. Object-Oriented Application Development

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

More information

Design Patterns V Structural Design Patterns, 2

Design Patterns V Structural Design Patterns, 2 Structural Design Patterns, 2 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Department of Computer Science The Australian National University 19.1 1 2 Formal 3 Formal 4 Formal

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

On Implementing MOF 2.0 New Features for Modelling Language Abstractions

On Implementing MOF 2.0 New Features for Modelling Language Abstractions On Implementing MOF 2.0 New Features for Modelling Language Abstractions Markus Scheidgen Humboldt Universität zu Berlin Institut für Informatik Unter den Linden 6 10099 Berlin, Germany scheidge@informatik.hu-berlin.de

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Topics in Object-Oriented Design Patterns

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

More information

Program Dynamic Analysis. Overview

Program Dynamic Analysis. Overview Program Dynamic Analysis Overview Dynamic Analysis JVM & Java Bytecode [2] A Java bytecode engineering library: ASM [1] 2 1 What is dynamic analysis? [3] The investigation of the properties of a running

More information

3/15/18. Overview. Program Dynamic Analysis. What is dynamic analysis? [3] Why dynamic analysis? Why dynamic analysis? [3]

3/15/18. Overview. Program Dynamic Analysis. What is dynamic analysis? [3] Why dynamic analysis? Why dynamic analysis? [3] Overview Program Dynamic Analysis Dynamic Analysis JVM & Java Bytecode [2] A Java bytecode engineering library: ASM [1] 2 What is dynamic analysis? [3] The investigation of the properties of a running

More information

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

COMPLEX SYSTEMS. Today. Complex Systems. Kinds of Systems. Embedded Systems. Software Engineering. Lectures 20: Engineering Complex Systems

COMPLEX SYSTEMS. Today. Complex Systems. Kinds of Systems. Embedded Systems. Software Engineering. Lectures 20: Engineering Complex Systems Chair of Software Engineering Today Software Engineering Prof. Dr. Bertrand Meyer Dr. Manuel Oriol Dr. Bernd Schoeller Lectures 20: Engineering Complex Systems Complex Systems What is it? Examples Technologies

More information

A Case For. Binary Component Adaptation. Motivation. The Integration Problem. Talk Outline. Using Wrapper Classes. The Interface Evolution Problem

A Case For. Binary Component Adaptation. Motivation. The Integration Problem. Talk Outline. Using Wrapper Classes. The Interface Evolution Problem Case For inary Modifying s On The Fly Urs Hölzle and Ralph Keller Department of Computer Science University of California, Santa arbara http://www.cs.ucsb.edu/oocsb/bca Motivation OOP vision: Pervasive

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011 Design Patterns Lecture 1 Manuel Mastrofini Systems Engineering and Web Services University of Rome Tor Vergata June 2011 Definition A pattern is a reusable solution to a commonly occurring problem within

More information

Software Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)

Software Development & Education Center. Java Platform, Standard Edition 7 (JSE 7) Software Development & Education Center Java Platform, Standard Edition 7 (JSE 7) Detailed Curriculum Getting Started What Is the Java Technology? Primary Goals of the Java Technology The Java Virtual

More information

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation Uwe Zdun Department of Information Systems, Vienna University of Economics, Austria zdun@acm.org Markus Voelter voelter - Ingenieurbüro

More information

Sri Vidya College of Engineering & Technology

Sri Vidya College of Engineering & Technology UNIT I INTRODUCTION TO OOP AND FUNDAMENTALS OF JAVA 1. Define OOP. Part A Object-Oriented Programming (OOP) is a methodology or paradigm to design a program using classes and objects. It simplifies the

More information

On Hierarchical, parallel and distributed components for Grid programming

On Hierarchical, parallel and distributed components for Grid programming On Hierarchical, parallel and distributed components for Grid programming Francoise Baude, Denis Caromel, Matthieu Morel www.inria.fr/oasis/proactive OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis

More information

Adding a Module System to Java

Adding a Module System to Java Adding a Module System to Java Rok Strniša Computer Laboratory, University of Cambridge Email: Rok.Strnisa@cl.cam.ac.uk URL: http://www.cl.cam.ac.uk/~rs456/ May 8, 2008 @ The British Computer Society Joint

More information

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: www.studymafia.org SUBMITTED BY: www.studymafia.org 1 Acknowledgement I would like

More information

Runtime Software Architecture Based Software Evolution And Adaptation

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

More information

Experimental SOFA Implementation

Experimental SOFA Implementation University of West Bohemia in Pilsen Department of Computer Science and Engineering Univerzitni 8 30614 Pilsen Czech Republic Experimental SOFA Implementation Research Report Petr Hanč, Jan Rovner, Jan

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

The Fractal Open Component Model

The Fractal Open Component Model The Fractal Open Component Model Jean-Bernard Stefani INRIA Grenoble-Rhône-Alpes Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 1 / 24 Executive Summary Fractal: a model for the construction

More information

Synchronization SPL/2010 SPL/20 1

Synchronization SPL/2010 SPL/20 1 Synchronization 1 Overview synchronization mechanisms in modern RTEs concurrency issues places where synchronization is needed structural ways (design patterns) for exclusive access 2 Overview synchronization

More information

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements Capturing and Formalizing SAF Availability Management Framework Configuration Requirements A. Gherbi, P. Salehi, F. Khendek and A. Hamou-Lhadj Electrical and Computer Engineering, Concordia University,

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

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

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2

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

Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1

Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1 Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1 version 1.0 July, 2007 Table of Contents 1. Introduction...3 2. Best practices...3 2.1 Preparing the solution environment...3

More information

CLI and CLR. Antonio Cisternino Giuseppe Attardi

CLI and CLR. Antonio Cisternino Giuseppe Attardi CLI and CLR Antonio Cisternino Giuseppe Attardi Introduction Java made popular Virtual Machines (JVM) Execution environments are a generalization of virtual machines They provide a set of common runtime

More information

15CS45 : OBJECT ORIENTED CONCEPTS

15CS45 : OBJECT ORIENTED CONCEPTS 15CS45 : OBJECT ORIENTED CONCEPTS QUESTION BANK: What do you know about Java? What are the supported platforms by Java Programming Language? List any five features of Java? Why is Java Architectural Neutral?

More information

Cpt S 122 Data Structures. Introduction to C++ Part II

Cpt S 122 Data Structures. Introduction to C++ Part II Cpt S 122 Data Structures Introduction to C++ Part II Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Topics Objectives Defining class with a member function

More information

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc. Chapter 2 FEATURES AND FACILITIES SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: JDeveloper features. Java in the database. Simplified database access. IDE: Integrated Development

More information

Java/A Taking Components into Java

Java/A Taking Components into Java Java/A Taking Components into Java Florian Hacklinger Institut für Informatik Ludwig-Maximilians-Universität München Oettingenstraße 67, 80538 München, Germany florian.hacklinger@pst.ifi.lmu.de Abstract

More information

BEAWebLogic Server and WebLogic Express. Programming WebLogic JNDI

BEAWebLogic Server and WebLogic Express. Programming WebLogic JNDI BEAWebLogic Server and WebLogic Express Programming WebLogic JNDI Version 10.0 Document Revised: March 30, 2007 Contents 1. Introduction and Roadmap Document Scope and Audience.............................................

More information

Component-based Architecture Buy, don t build Fred Broks

Component-based Architecture Buy, don t build Fred Broks Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements

More information

Today: Distributed Objects. Distributed Objects

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

More information

Picolo: A Simple Python Framework for Introducing Component Principles

Picolo: A Simple Python Framework for Introducing Component Principles Picolo: A Simple Python Framework for Introducing Component Principles Raphaël Marvie LIFL University of Lille 1 (France) raphael.marvie@lifl.fr Abstract Components have now become a cornerstone of software

More information

C++ Important Questions with Answers

C++ Important Questions with Answers 1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children

More information

Object-Oriented Concepts and Design Principles

Object-Oriented Concepts and Design Principles Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation

More information

CA IdentityMinder. Glossary

CA IdentityMinder. Glossary CA IdentityMinder Glossary 12.6.3 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is for your informational

More information

The SPL Programming Language Reference Manual

The SPL Programming Language Reference Manual The SPL Programming Language Reference Manual Leonidas Fegaras University of Texas at Arlington Arlington, TX 76019 fegaras@cse.uta.edu February 27, 2018 1 Introduction The SPL language is a Small Programming

More information

Development of E-Institute Management System Based on Integrated SSH Framework

Development of E-Institute Management System Based on Integrated SSH Framework Development of E-Institute Management System Based on Integrated SSH Framework ABSTRACT The J2EE platform is a multi-tiered framework that provides system level services to facilitate application development.

More information

A FLEXIBLE MODEL AND IMPLEMENTATION OF COMPONENT CONTROLLERS

A FLEXIBLE MODEL AND IMPLEMENTATION OF COMPONENT CONTROLLERS A FLEXIBLE MODEL AND IMPLEMENTATION OF COMPONENT CONTROLLERS Françoise Baude, Denis Caromel, Ludovic Henrio and Paul Naoumenko INRIA Sophia - I3S - CNRS - Université de Nice Sophia Antipolis {fbaude,dcaromel,lhenrio,

More information