Book

Java Remote Method Invocation Specification Volume

Authors:
... Remote Method Invocation (RMI), introduced with the Java Developer's Kit 1.1 [42], is a programming interface specific to the Java programming language. It can be thought of as an object-oriented version of RPC which allows an object in one Java Virtual Machine (JVM) to invoke a method on an object within another JVM-be it local or remote [42,33]. In particular, RMI facilitates transparent serialization of objects and entire trees of their referenceswhich allows one to pass complex data-structures, both local and remote [24], as arguments in addition to primitive data-types-and provides a naming service which allows Java objects to discover each other. ...
... In particular, RMI facilitates transparent serialization of objects and entire trees of their referenceswhich allows one to pass complex data-structures, both local and remote [24], as arguments in addition to primitive data-types-and provides a naming service which allows Java objects to discover each other. Also, because the JVM can function on a majority of processor architectures [33,42], RMI can function over a heterogeneous network of processors and homogeneous network of JVM processes. ...
... RMI changes the way developers think about and design distributed applications [42] by introducing the notion of "stubs" and "skeletons", which decouple inter-process communication interfaces-i.e. the interface construct of the Java programming language-from their implementation [42,33]. The term "stub" refers to the interface seen by a Java application that wishes to invoke a remote procedure, while the term "skeleton" refers to the implementation of the stub's Java programming interface [42,33]. ...
... Of the three mentioned component models, SOFA offers the most freedom in the choice of middleware, as it has native support for software connectors, which allow using almost arbitrary middleware for communication. Fractal, on the other hand, supports distribution with its own middleware based on serialization defined by RMI [26]. The middleware is, however, not compatible with classic SUN RMI. ...
... So far, we have identified four basic communication styles: a) procedure call (local or remote; e.g. CORBA [19], RMI [26], DCE RPC [28], SOAP [29], etc.), b) messaging (asynchronous message delivery; e.g. JMS [25], MQSeries [9], etc.), c) streaming (uni-or bi-directional stream of data; e.g. ...
... component nesting), which makes the problem of their interconnection a matter of middleware bridging. Each of those component models has a native middleware for communication in distributed environment (RMI [26] in case of EJB, CORBA [19] in case of CCM, and .NET remoting in case of .NET). A middleware bridge is usually realized as a "bridge" component translating one middleware protocol to another. ...
Technical Report
The OMG Deployment and Configuration specification is an attempt at standardizing the deployment process of component-based applications in distributed environment. A software connector is an abstraction capturing interaction among components. Apart from middleware independence, connectors provide additional services (e.g. adaptation, monitoring, etc.) and benefits, especially in the area of integration of heterogeneous component-based applications. This paper presents an approach for using connectors in the context of deployment process defined by the OMG Deployment and Configuration specification to overcome incompatibilities in different component models and allow for a true heterogeneous deployment.
... There are several types of middleware that support different approaches, such as computational middleware and message oriented middleware. This tutorial cover only Java Remote Method Invocation (RMI) [17], and in particular the Jgroup Group Communication System (GCS), which can be classified as a computational middleware. Computational middleware is characterized by transparency at the level of method invocation (function call), and this approach is also used in COR- BA [12]. ...
... The Jgroup toolkit integrates object group technology and distributed objects based on Java RMI [17]. In Jgroup, client objects interact with an object group implementing some distributed service through an external group method invocation (EGMI) facility, as shown inFigure 2. Jgroup hides the fact that services may be implemented as object groups rather than single objects so that clients using them through EGMI need not be reprogrammed. ...
Article
Full-text available
This tutorial gives a brief introduction to Java Remote Method Invocation, an overview and some details of the services provided by the Jgroup Group Communication System and explains how to develop distributed applications using Jgroup. It also gives a brief overview of the Autonomous Replication Management framework.
... Finally, current OT/J version allows the binding of roles to base interfaces if and only if these roles declare only callout bindings [12]. But distributed objects of object-oriented distributed applications mainly represented by remote interfaces [24,25]. Thus, binding roles to remote interfaces at the source code level will result in partial binding between their instances at runtime; hence behavioral adaptation becomes impossible. ...
... The MsD is a central call-byreflection method which receives the trapped calls of a specific base method and checks for any remote callin bindings associated to this base method. The DOT/J framework uses the Java-RMI middleware [24] to establish the communication between remote base and remote team objects. Therefore, the DTL transformers weave into the classes of these objects the required code which enables them to export as remote objects according to Java-RMI disciplines. ...
Article
Full-text available
Dynamically adaptable distributed applications need to be composed in an expressive and modular fashion due to the complexity of these applications. This paper discusses the shortcomings of recent approaches to achieve this goal, in particular the aspect-oriented programming approaches. It addresses the requirements for consistent and modular dynamic adaptation of applications, while improving their modularity. Then, the Remote Role-Playing (RRP) concept is presented as a new promising programming technique, which aims at employing the separation of crosscutting concerns in distributed applications dynamically at runtime in a modular and consistent manner with high degree of expressivity. The paper introduces the DOT/J framework which implements the RRP. The feasibility of the DOT/J approach and its advantage over other approaches is
... Java fournit un modèle de programmation orienté-objet avec support de la concurrence, ramasse-miettes, et sécurité. Java est également capable d'exprimer le multitâche et l'invocation distante de méthode (RMI : Remote Method Invocation) [SUN98], une version orienté-objet de l'appel distant de procédure (RPC : Remote Procedure Call (RPC) [BIR 84]). ...
... Java provides an object-oriented programming model with support for concurrency, garbage collection, and security. It features multithreading and Remote Method Invocation (RMI) [SUN98] (an object-oriented version of Remote Procedure Call (RPC) [BIR 84]). ...
Article
Président du Jury: Johan Montagnat, Laboratoire I3S, Nice Sophia-Antipolis Rapporteur: Henri Bal, Vrije Universiteit, Amsterdam Rapporteur: André Schiper, École Polytechnique Fédérale de Lausanne Rapporteur: El Ghazali Talbi, Laboratoire d'Informatique Fondamentale de Lille Invité industriel: Emmanuel Cecchet, Consortium ObjectWeb Directeur de thèse: Denis Caromel, Université de Nice Sophia-Antipolis, Institut Universitaire de France Co-directrice de thèse: Françoise Baude, Université de Nice Sophia-Antipolis
... É de responsabilidade do SA-Run Server selecionar os processadores que irão compor o nodo, considerando o nível de confiabilidade requerido pela aplicação que executa sobre o nodo e a semântica de falha assumida para os processadores deste nodo.SA-Shell.Interface utilizada pela aplicação para acessar o serviço de processamento replicado.Servidor de Nodos. Gerencia os nodos replicados formados pelo SA-Run Server.Desta maneira, para implementar um serviço de processamento replicado no nível do sistema operacional, faz-se necessário tratar, essencialmente, das questões relacionadas à criação e gerência do grupo de processadores a partir do qual o serviço será provido, como também, do mecanismo de acesso ao referido serviço.Por outro lado, seguindo uma estratégia orientada a objetos e aproveitando as facilidades da linguagem Java, é possível implementar um esquema de replicação ativa utilizando a tecnologia RMI-Java (Java Remote Method Invocation)[ MICROSYTEMS, 1997 ] . Esta tecnologia é baseada no modelo de objetos distribuídos e vem sendo muito empregada no desenvolvimento de aplicações distribuídas.Em linhas gerais, uma aplicação RMI é composta por dois programas distintos: um servidor e outro cliente. ...
... La comunicazione fra i servizi avviene utilizzando Remote Method Invocation (RMI) [17,24] fornita da Java. ...
... Amongst the various distribution technologies, we focus on object middleware and the distributed component technologies that it enables. Mainstream object middleware technologies include the Common Object Request Broker Architecture (CORBA) [24], Java Remote Method Invocation [29] and the Component Object Model [1]. These systems have more recently been extended to distributed component technologies. ...
Article
Full-text available
An increasing number of distributed systems is built us-ing distributed object or component middleware. The dynamic behaviour of those distributed systems is influ-enced by the particular combination of middleware syn-chronization and threading primitives that distributed objects use to communicate with each other. A de-signer may accidentally choose combinations that cause a distributed application to enter undesirable states or violate liveness properties. We exploit the fact that modern object and component middleware offer only a small number of underlying synchronization primitives and threading policies. For each of these we define a UML stereotype and a formal process algebra specifi-cation of the stereotype semantics. We devise a means to specify safety and liveness properties in UML and again map those to process algebra safety and liveness properties. We can thus apply model checking tech-niques to verify that a given design does indeed meet the desired properties. We propose how to reduce the state space that needs to be model checked by exploit-ing middleware characteristics. We finally show how model checking results can be related back to the input UML models. In this way we can hide the formalism and the model checking process entirely from UML de-signers, which we regard as critical for the industrial exploitation of this research.
... System level load management services are not powerful enough for efficient implementation of some complex load distribution mechanisms [2], since at system level they are not aware of components. A cost-effective solution employs a load management service based on component oriented middleware such as CORBA [3], Java RMI [4], DCOM [5] and .NET [6]. Client workload will be distributed across the back-end servers in an equitable way in order to obtain the best possible response time for the given workload. ...
Article
Full-text available
Services are increasingly dependent on distributed computer systems for office workstation support, banking transactions, supermarket stock supply, mobile phones, web services etc. Web services are being increasingly used for e-commerce, education, and for information access within and between organizations. This leads to increasing needs of high performance, enterprise level, distributed systems. The most suitable way to achieve high performance is by using load management systems. This paper presents a new adaptive load management service for component oriented middleware that addresses the identified existing problems in this area. The proposed service offers the possibility of selecting the optimal load distribution algorithms at runtime. The possibility of changing the load metrics at runtime is also included. Work is in progress for creating a simulation model for the load management service and for evaluating the performance improvements it offers, with the current focus on the Enterprise Java Beans platform.
... Communication is mostly achieved through process call. In this scenario, we enable clients to trace Java RMI [31] jobs and display the outcomes on the user's screen by using the proposed workflow tools. The outcome is actually a log file originated by the RMI servers and returned to the machine where network manager is located. ...
Article
Full-text available
SUMMARY This paper proposes a web-based interactive workflow definition and invocation system assisting users in orchestrating a set of distributed services-activities and expressing complex dependencies between them in XML. We use Ant, which is a Java-based and freely distributed commodity tool, for workflow definitions and workflow engine. Adopting Ant as a workflow engine provides platform independence and immediate integration into the Grid services framework. Sometimes, workflow scripts need to be used repeatedly with a little change; framework enables reusable scripts to be created, stored and edited for later use. This allows sharing and dynamic modifications of workflows between multiple participants. The practicality and usefulness of the system is demonstrated through a concrete case study on Remote Method Invocation (RMI) jobs. Copyright © 2014 John Wiley & Sons, Ltd.
... b) La comunicación entre los agentes se realiza utilizando componentes de JAVA, en concreto, Remote Method Invocation (RMI) [22]. c) El lenguaje de comunicación a utilizar es KQML [7], [13]. ...
... A nível do programa, as informações são passadas do chamador para o procedimento chamado através do parâmetros, os resultados são retornados através dos procedimento. Possibilitando ao programador um maior nível de abstração no desenvolvimento de suas aplicações, onde não precisa-se preocupar com a conexão tanto para redes locais como para redes externas [9,2]. ...
Article
Full-text available
In this work, the development of a Middleware used to distribute Augmented Reality in the web, as an auxiliary tool to Distance Education is presented. The software is di-vided in three modules: server, teacher and student. In the teacher module, Augmented Reality concepts can be used in teaching, introducing virtual objects in the real environ-mente, by the use of markers. In the student module, stu-dents can visualize teacher's interactions and communicate by chat. Finally, the server module provides connection management and data distribution, from the teacher to the students. The Middleware was developed using C# .net and Action Script 3.0 programming languages, supported by the Flex 2.0 development environment.
... The major difference between the Web services and the other component technologies is that, the Web services are accessed via the ubiquitous Web protocols such as Hypertext Transfer Protocol (HTTP) and Extensible Markup Language (XML) instead of object-model-specific protocols such as Distributed Component Object Model (DCOM) [89] or Remote Method Invocation (RMI) [90] or Internet Inter-Orb Protocol (IIOP) [91]. ...
... Java RMI [SUN03f] is a set of API in Java that enables programmers to develop distributed applications. It uses Java language interfaces to define remote objects, and it combines Java serialization technology and the Java Remote Method Protocol (JRMP) for performing remote method invocations. ...
... Several technologies have been created for developing SOA products, e.g., Microsoft Distributed Component Object Model (DCOM) (Brown and Kindel, 1998), Sun Remote Method Invocation (RMI) (Microsystems, 1999), and Common Object Request Broker Architecture (CORBA) (Boldt, 1995). These technologies depend on specific platforms and protocols. ...
Article
In this research, we address the problem of retrieving services which fulfil users' need expressed in query in free text. Our goal is to cope the term mismatch problems which affect the effectiveness of service retrieval models applied in prior re- search on text descriptions-based service retrieval models. These problems are caused due to service descriptions are brief. Service providers use few terms to describe desired services, thereby, when these descriptions are different to the sentences in queries, term mismatch problems decrease the effectiveness in classical models which depend on the observable text features instead of the latent semantic features of the text. We have applied a family of Information Retrieval (IR) models for the purpose of contributing to increase the effectiveness acquired with the models applied in prior research on service retrieval. Besides, we have conducted systematic experiments to compare our family of IR models with those used in the state-of-the-art in service discovery. From the outcomes of the experiments, we conclude that our model based on query expansion via a co-occurrence thesaurus outperforms the effectiveness of all the models studied in this research. Therefore, we have implemented this model in S3niffer, which is a text description-based service search engine.
... To locate an object or a service, a run-time system (or the operating system) must maintain a directory of the available services, objects and/or interfaces. Several standards such as Sun's RMI [47], Object Management Group's CORBA [34], and Microsoft's DCOM [23] are in use to define standard object interfaces, data-representations, and invocation methods in order to communicate between different machines and applications from multiple vendors. Despite its power, the request/response model realizes the concept of a synchronous exchange where one request is followed by its response and there is a strong coupling between the client and the service provider. ...
Article
Full-text available
Autonomous robotic systems become more complex and based on a distributed architecture since the introduction of the multi{agent paradigm. To tackle the increased complexity of such systems, researchers have started to apply software engineering tools in designing and integrating the modules that compose a modern robotics apparatus. Heterogeneity and e-ciency are only two of the key issues in choosing or developing the integration technology for multi{robot systems. In this work, we propose the publish/subscribe model as the proper communication model in this fleld, we describe the issues related to the use of such kind of middle- ware in autonomous robotics, and we provide a compared analysis of the publish/subscribe middleware currently used in robotics applications.
... Invocación de Métodos Remotos (RMI). Es un mecanismo ofrecido en Java para invocar un método remotamente, su arquitectura se puede ver como un modelo de cuatro capas; una primera capa de aplicación (aplicaciones cliente-servidor), una segunda capa Proxy, que permite a los desarrolladores elaborar aplicaciones sin tener en cuenta los detalles referentes a la interacción, una tercera capa de referencia remota, y una cuarta capa de transporte, que se encarga de realizar las conexiones necesarias, y de la gestión del transporte de los datos [30]. ...
... The communication architectures and middleware infrastructures based on a request/response style of interaction (such as RPC [TA90], RMI [Sun04], DCOM [EE98] and CORBA [OMG11] etc.) have certainly reached limitations to fulfil the requirements and challenges of newly emerged applications, and a more flexible communication paradigm is needed [Que08,EFGK03]. In the recent past, the publish/subscribe paradigm was introduced as a promising alternative for building large-scale distributed applications because of its ability to support decoupled and asynchronous one-to-many and many-to-many communication interactions [Tar06]. ...
Book
Content-based publish/subscribe has gained high popularity for large-scale dissemination of dynamic information in the form of events from publishers to subscribers in a decoupled fashion. Yet, it is highly challenging to achieve scalability without sacrificing the expressiveness of subscriptions (user queries) in such systems, especially in a peer-to-peer (P2P) environment where subscribers and publishers are also responsible for forwarding events by forming an overlay network. Moreover, the support for non-functional requirements such as quality of service (e.g., end-to-end delay, bandwidth etc.) and security (e.g., authentication, confidentiality etc.) instigate many open research questions. The main advantage of publish/subscribe - its inherent decoupling - turns to be a major obstacle in the fulfillment of non-functional requirements with conventional methods. Therefore, the goal of this thesis is to develop methods and algorithms that i) enable scalable dissemination of events, ii) support different quality of service aspects, and iii) provide basic security mechanisms, in a P2P content-based publish/subscribe system. In particular, the following contributions are made in this thesis. As a first contribution, we propose a distributed algorithm to disseminate events in a publish/subscribe system respecting the subscriber-defined QoS constraints in terms of delay requirements and available bandwidth. In addition, the second contribution focuses on minimizing the overall resource usage, i.e., bandwidth consumption and processing load on peers (publishers and subscribers), in a publish/subscribe system. This contribution develops an efficient and scalable method to reduce the rate of events that peers receive and forward though lacking subscription (i.e., false positives) by means of subscription clustering, using the techniques from spectral graph theory. The first two contributions target overlay-level methods to provide efficient dissemination of events and quality of service. The third contribution, however, proposes underlay-aware methods that explicitly take into account the properties of the underlying physical network and its topology, to construct an efficient publish/subscribe routing overlay with low relative delay penalty and low stress on the physical links. Finally, as our last contribution, we present novel methods to provide authentication of publishers and subscribers as well as confidentiality and integrity of events using the techniques from pairing-based cryptography. Additionally, an algorithm is developed to preserve the weak subscription confidentiality in the presence of interest clustering of subscribers.
... This includes not only the mobile-ip [4] and the home-based releaseconsistency protocol [8], but also protocols commonly not classified as home based, e.g. RMI [13]. ...
Article
Full-text available
This paper presents the design and implementation of a decentral- ized home-migration protocol for the Distribution SubSystem(DSS) middleware. The DSS provides generic distribution support for shared data structures in open distributed systems. Previous approaches for migrating homes, such as forward pointers, broadcasts, and centralized directory services are known to have dis- advantages. We propose using a structured P2P system to store the location of migrated homes. This enables seamless migration of homes, without the need for lengthy forward pointer chains that degrade performance and robustness. Nor is a dedicated data-base that requires administrative effort needed. The presented design depicts how the self-organizing aspects of peer-to-peer computing can be used to construct a fault-tolerant, scalable, efficient, distributed home-location service to enhance middleware functionality. This paper describes a decentralized home-migration protocol that uses a structured peer-to-peer (P2P)(1) overlay network to locate migrated homes. The structured P2P network is constructed by the nodes participating in a distributed application. The resulting service inherits the prominent properties of structured P2P systems; self- organization, low administrative load, high guarantees, good scalability, and resilience to failures. The home-migration protocol is made a component of the generic component- based coordination framework of the Distribution SubSystem(DSS) (2, 3) middleware. Home-based protocols are simple to implement and often used to grant seamless access to migrating entities(4, 5). A mobile entity records its current location at a home, usually located at the process where the entity was created. A proxy, that provides seamless communication with the mobile entity, sends messages to the home. In turn, the home forwards the messages to the current location of the entity. The coordination framework of the DSS makes use of the Home/Proxy approach. Each distributed entity is controlled by a consistency protocol, executed over a coordination network of prox- ies, a home(2, 6), and a current location. In many home based protocols the home and the current location are co-located, but it need not be that way.
... The class Message supports the messaging mechanism between client and server. Client and Server communicate using the Java RMI distribution mechanism [209]. The client and the server GUI are implemented with the Standard Widget Toolkit (SWT). ...
Article
Self-adaptive system are software systems capable of sensing their working environment (through sensors), reason and make decisions on how to adapt facing environmental changes (through a reasoning engine), and reconfigure their internal structure in order apply adaptations (through an adaptation mechanism). These systems can provide effective assistance in a large number of human activities. Yet, they will fully deliver their promises only if system engineers can ensure that decisions and adaptations are correct on all situations. This requires robust techniques for validating that the reasoning process and adaptation mechanisms implemented in such systems are correct. In this thesis I address the validation of reasoning engines and adaptation mechanism base on aspect-oriented programming. Reasoning engines are pieces of software entitled of reasoning on a large number of factors in order to decide how to adapt given an environmental change. Ensuring that the decisions of these engines are correct for every possible environment change is critical. Wrong decision will lead to faulty adaptation that may prevent the system to work properly. Yet, validating that reasoning engines make the right decision is challenging because of the large number of possible environmental changes. In this thesis I introduce multi-dimensional covering arrays (MDCA) for sampling the environmental conditions that mat affect the decision making process. MDCA specifically targets environments that can trigger complex decision by explicitly integrating the notion of history in the environment sample. Aspect oriented programming (AOP) provide the means to developers to augment or replace the system structure or behavior, properties that make AOP a good adaptation mechanism. Yet, when using AOP it is difficult to (i) foresee interactions between different aspects and the base system, (ii) control the places that aspects will advise and invade, (iii) ensure that aspects will perform safely on evolution (aspects or the base system). These difficulties hamper the validation and adoption of AOP in general. In this thesis I introduce an interactions specification framework (ABIS), which allows developers to control the aspects interactions with the base system by specifying the places that aspects are allowed to advice. ABIS enables developers to reduce the time needed to diagnose and correct problems due to faulty aspects.
... Java RMI (Remote Method Invocation) [16] is an API which supports seamless remote method invocation on objects in different Java VMs on a network. This allows the implementation of distributed applications using the Java object model. ...
... It provides utilities such as object interoperability across networks abstracted from their actual location, programming language, OS, communication protocols, interconnects and hardware. Examples were CORBA (the OMG Common Object Request Broker Architecture) [10] (also RT-CORBA [12]) and RMI (Remote Method Invocation) [14]. @BULLET Domain-specific middleware services. ...
Conference Paper
Full-text available
Timely operation is a key factor in CPS that is challenged by their inherent distributed nature. The variability introduced by the network and its unpredictable effects have to be handled. Thus, a vertical understanding of the involved software layers is needed at the levels of the operating system, the networking software and the middleware. Typically, middleware has been described in a quite independent way from the underlying operating system kernel and the network software. That is not appropriate in a CPS as some degree of control over the resource assignment is expected as a means to ensure timeliness. In this paper, we look into the details of middleware in relation to its sorrounding software layers to provide a middleware design, namely OMA-Cy, suiting the needs of CPS. We target subsystems where timing deadlines are not hard nor safety critical, but require quality of service guarantees such that resource management techniques are applied both at the individual nodes as well as in the distributed communication.
Article
Full-text available
En este trabajo se presenta una arquitectura software distribuida que proporciona una API (Application Programming Interface) de código abierto basada en Java RMI (Remote Method Invocation) para la programación, con fines educativos, del control secuencial de prototipos físicos remotos. Los prototipos físicos se construyen mediante el sistema de prototipado de la firma fischertechnikTM. La programación y acceso al prototipo físico se realiza de forma compartida por distintos desarrolladores empleando una estrategia de turnos de tiempo gestionada desde Moodle, un LMS (Learning Management System) abierto de libre distribución.
Article
This survey covers distribution standards oriented to the development of distributed real-time systems. Currently, there are many distribution standards that provide a wide and different set of real-time facilities to control the temporal aspects of applications. Besides giving a general overview of these standards, we describe the real-time mechanisms proposed by each standard to manage both processor and network resources, discuss whether the available facilities are sufficient to guarantee determinism throughout the whole application, and identify a set of features and deployment options that would be desirable in any real-time distribution middleware regardless of its distribution model and standard. The survey identifies open issues and key challenges for future research.
Article
Full-text available
We present WiCommGrid Java library that enables grid computing for heterogeneous hardware and software environment. Designed flexible data exchange mechanism can be easily incorporated to the extended program class hierarchy with no special treatment. Developed library is strongly encapsulated and almost transparent to wide range of program types. The application of the library in computational electromagnetics is illustrated on a ray tracing algorithm for indoor propagation simulation.
Article
Full-text available
Several distributed AOP models and languages have been developed to support aspects in distributed programming. These approaches prosper in encapsulating distributed concerns within aspect modules and facilitate their employment in distributed applications, but lack supporting management facilities; the dynamic activation/deactivation of aspects at runtime as an alternative to the expensive weaving/unweaving mechanism adopted in some approaches. Additionally, these approaches do not regard the real-world semantics of aspects; which reduces their understandability. In this paper we present DOT/J, a distributed model that extends the programming model of OT/J language into distributed environments to support the dynamic management of these aspects, and improve their semantical representation. Index Terms—Computer and Information Processing, Dis- tributed Computing, Middleware.
Article
Full-text available
Management operations imply, most of the time, the implementation of prevention policies in order to avoid faults and to provide expeditious answers to those faults. This paper present an architecture that allows to infer about network symptoms and to correlate these with well-known anomalies in order to provide the adequate diagnostic that will drive to the fault repair.
Article
This paper describes key aspects of remote service invocation in federations of OSGi containers. It refers to the OSGi Remote Service Admin specification and describes its efficient implementation over message-oriented middleware. Scalability problems of several different approaches to implementation are identified, and a solution in a form of innovative Remote Service Admin model extension is proposed. The extension, named On-demand Remote Service Admin, is analyzed and validated in the context of a motivating scenario. Validation includes performance and scalability evaluation, which confirms that all assumed requirements have been satisfied by the constructed prototype. Finally, the presented research is compared with related works. Copyright © 2011 John Wiley & Sons, Ltd.
Article
Full-text available
Acknowledgments First, I would like to deeply thank my advisor Prof. Danny Dolev, for giving me the opportunity to participate in this fascinating research. Special thanks go to Yaron Weinsberg, my co-advisor, for his efforts and support. I really enjoyed working with Yaron. I thank Yaron for being a huge source of inspiration, for carefully reviewing my drafts, providing precious advice, and helping to improve this thesis with his original ideas and insights. Next, I would like to thank Dr. Tal Anker, whose ideas, advice, and enthusiasm for this work helped to shape it. I would also like to thank Ittai Abraham for his huge help in understanding the mathe- matical model that provided this work the mathematical closure. Special thanks to my husband’s parents, Irina and Alexander Grabarnik, for constantly boosting my morale. Last, but not least, I would like to thank my husband Maxim for his patience during my studies. Abstract As the race for faster and stronger CPUs is drawing to a close, it has become almost impossible to significantly increase computer,system performance,solely by improving the physical characteristics of the hardware without negatively impacting form factor or power consumption. Optimization approaches are therefore gaining more attention, since they provide an alternative way to increase system performance. One way to increase system performance,is to spread the computational payload be- tween the system’s several CPUs, instead of trying to improve the main CPU physical
Conference Paper
Full-text available
Los sistemas multiagente se vienen utilizando en muy variadas áreas de investigación y desarrollo. En este artículo se pretende ofrecer la experiencia del grupo investigador con dichos sistemas en el curso de un proyecto de investigación aplicada a una empresa para resolver un problema específico. Partiendo de conocimientos teóricos, se describen las diferentes decisiones tomadas en el diseño del sistema y finalmente la plataforma de agentes elegida y en uso. Finalmente, se describe la arquitectura plantead
Conference Paper
The Internet, best known by most users as the World-Wide-Web, continues to expand at an amazing pace. We propose a new infrastructure to harness the combined resources, such as CPU cycles or disk storage, and make them available to everyone interested. This infrastructure has the potential for solving parallel supercomputing applications involving thousands of cooperating components. Our approach is based on recent advances in Internet connectivity and the implementation of safe distributed computing embodied in languages such as Java.
Chapter
In this paper, the authors propose a Semantic Search Engine, which retrieves software components precisely and uses techniques to store these components in a database, such as ontology technology. The engine uses semantic query language to retrieve these components semantically. The authors use an exploratory study where the proposed method is mapped between object-oriented concepts and web ontology language. A qualitative survey and interview techniques were used to collect data. The findings after implementing this research are a set of guidelines, a model, and a prototype to describe the semantic search engine system. The guidelines provided help software developers and companies reduce the cost, time, and risks of software development.
Conference Paper
The FlexiNet Platform is a Java middleware platform that features a component based internal structure with strong emphasis placed on reflection and introspection at all levels. This allows programmers to tailor the platform for a particular application domain or deployment scenario by assembling strongly typed components. In this paper we give an overview of the FlexiNet architecture, highlighting how its approach differs from other middleware architectures, and illustrate the benefits that result from the new approach.
Article
Full-text available
We studied the problem of composition by coordination, in which a group of components belonging to different domains must work together in an application. Considering that any direct connection between two components of two different domains generates evolution problems, we explored coordination as a composing mechanism. We characterized the problem of coordination between domains, and showed that container models are a simplistic solution to this problem. We studied the coordination world, and we introduced the "federation", as a software architecture that makes possible to structure an application as a set of components, which cooperate (without any direct connection) to achieve a common goal. We defined the common universe (relationships between the components of distinct domains) and the coordination contracts (materialization of the game rules) like the basic structures of a federation. We implemented a framework and an application to validate the approach
Article
ARMI is a communication library that provides a framework for expressing fine-grain parallelism and mapping it to a particular machine using shared-memory and message passing library calls. The library is an advanced implementation of the RMI protocol and handles low-level details such as scheduling incoming communication and aggregating outgoing communication to coarsen parallelism when necessary. These details can be tuned for different platforms to allow user codes to achieve the highest performance possible without manual modification. ARMI is used by STAPL, our generic parallel library, to provide a portable, user transparent communication layer. We present the basic design as well as the mechanisms used in the current Pthreads/OpenMP, MPI implementations and/or a combination thereof. Performance comparisons between ARMI and explicit use of Pthreads or MPI are given on a variety of machines, including an HP V2200, SGI Origin 3800, IBM Regatta-HPC and IBM RS6000 SP cluster.
Chapter
Die Sprache Java dringt neben World-Wide-Web und Client-Server Anwendungen in immer neue Anwendungsbereiche vor. So werden auch Programme aus dem Bereich Hochleistungsrechnen in Java geschrieben. Für viele Probleme aus diesem Bereich reicht die Leistung eines einzelnen Rechners allerdings nicht aus, es muß deshalb mit Clustern von Rechnern gearbeitet werden. Für den Programmierer bedeutet dies allerdings einen nicht unerheblichen Mehraufwand, da er die Verteilungsaspekte und die unterschiedlichen Semantiken für verteilte Objekte mitberücksichtigen muß. Das Juggle System bietet hierzu eine Alternative. Juggle implementiert eine verteilte virtuelle Maschine, die transparent für den Benutzer Objek¬te und Threads auf die beteiligten Rechner verteilt. Eine Codeänderung ist dabei nicht notwendig, so daß auch Programme oder Bibliotheken, für die keine Quellen erhältlich sind, verteilt ablaufen können. Durch eine geeignete Instrumentierung wird ständig zur Laufzeit die optimale Position für Objekt und Threads bestimmt und über Migrationen und Replikationen umgesetzt.
Article
Full-text available
The Program Visualization Workshops aim to bring together researchers who design and construct program visualizations and, above all, educators who use and evaluate visualizations in their teaching. The first workshop took place in July 2000 at Porvoo, Finland. The second workshop was held in cooperation with ACM SIGCSE and took place at HornstrupCentret, Denmark in June 2002, immediately following the ITiCSE 2002 Conference in Aarhus, Denmark.
Chapter
Full-text available
As e-business applications become more commonplace and more sophisticated, there is a growing need to distribute the server side of the application in order to meet business objectives and to provide maximum service levels to customers. However, it is well known that the effective distribution of an application across available resources is difficult, especially for novices. Careful attention must be paid to the fact that performance is critical – business is likely to be lost to a competitor if potential customers do not receive the level of service they expect in terms of both time and functionality. Modern globalised businesses may have their operational units scattered across several countries, yet they must still present a single consolidated front to a potential customer. Similarly, customers are becoming more sophisticated in their demands on e-business systems and this necessitates greater computational support on the server side of the transaction. This chapter focuses on two performance bottlenecks: scheduling and communication latency. The chapter discusses an adaptive scheduling system to automatically distribute the application across the available resources such that the distribution evolves to a near-optimal allocation tailored to each user, and the concept of Ambassadors to minimize communication latency in wide-area distributed applications.
Thesis
Diese Arbeit stellt eine einheitliche Workbench zur Entwicklung von mobilen Anwendungen in multihop Ad-Hoc-Netzwerken vor. Die einheitliche Workbench besteht aus drei Bausteinen: einem Simulator für diese Netzwerke, einer hybriden Emulationsumgebung für mobile multihop Ad-Hoc-Netzwerke und einer Ausführungsplattform für Anwendungen auf mobilen Geräten. Anwendungen können bereits im Simulator vollständig implementiert und evaluiert werden. Der entstandene Code kann unverändert sowohl im Emulationsteil als auch auf der Ausführungsplattform für mobile Geräte eingesetzt werden. Im passenden dreistufigen Entwicklungsprozeß wird die Anwendung im Simulator implementiert und getestet, bevor sie -- zusammen mit einer graphischen Oberfläche -- in der hybriden Emulationsumgebung weiter evaluiert und optimiert wird. Zuletzt erfolgt die Erprobung auf mobilen Geräten im Feldversuch. Mehrere tausend bis zehntausend mobile Geräte können in der Workbench durch die Beschränkung auf die topologischen Aspekte des Ad-Hoc-Netzwerks und eine besondere Bewegungsmodellabstraktion, die die besonders effiziente Berechnung der Bewegungs- und Konnektivitätsdaten der Geräte ermöglicht, effizient simuliert werden. Die Vorausberechnung und Wiederverwendung dieser Daten ist möglich. Simulationen können in Echtzeit detailliert visualisiert werden, wobei die Art der Visualisierung und das Ausgabeformat vom Benutzer definiert werden können. Die Workbench und der Softwareentwicklungsprozeß für Anwendungen in mobilen multihop Ad-Hoc-Netzwerken werden anhand einer Fallstudie erprobt. Dabei werden die Erfahrungen bei der Implementierung einer Middleware für Ad-Hoc-Anwendungen sowie bei der Entwicklung einer selbstorganisierenden Auktionsanwendung aufgezeigt.
Article
Full-text available
Nowadays, more and more industrial systems rely on distributed real-time embedded software (DRES) applications. Implementing such applications requires answering to an important set of heterogeneous, or even conflicting, constraints. To satisfy these constraints, it is sometimes necessary to equip DRES with adaptation capabilities. Moreover, real-time applications often control systems of which failures can have dramatic economical - or worst human - consequences. In order to design such application, named critical applications, it is necessary to rely on rigorous methodologies, of which certain have already been used in industry. However, growth complexity of critical DRES applications requires proposing always new methodologies in order to answer to all of these stakes. Yet, as far as we know, existing design processes do not tackle the issue of adaptation mechanisms that require to modify deeply the software configuration. This PhD thesis work presents a new methodology that answers this problem by relying on the notion of operational mode : each possible behaviour of the system is represented by an operational mode, and a software configuration is associated to this mode. Modeling transition rules betwen these modes, it becomes possible to generate and analyze the reconfigurations of the software architecture that implement the system adaptations. The generated code respects the implementation requirements of critical systems, and relies on safe and analyzable adaptation mechanisms. To achieve this objective, we define a new architecture description language (COAL : Component Oriented Architecture Language), specific to this domain, that enables to profit from advantages of component-based software engineering (based on Lightweight CCM), and analysis, static deployment and configuration techniques that provides architecture description languages (and in particular AADL : Architecture Analysis and Design Language). This methodology also relies on a new component framework, MyCCM-HI (Make your Component Container Model - High Integrity), that exploits COAL constructs so as to (i) generate AADL models enabling static deployment and configuration of DRES applications, (ii) generate code to deploy and configure Lightweight CCM components, (iii) generate code implementing the system adaptation mechanisms, and (iv) formally analyse the behaviour of the system, including during adaptation. The adopted approach thus reduces complexity of development of adaptative and critical DRES by automating production of adaptation mechanisms while easing their analysis. These two steps, analysis and production, are then part of the automatic production tool chain pro- vided by MyCC-HI. This component framework is availabe under (L)GPL license at address http ://myccm-hi.sourceforge.net.
Article
This paper gives an overview of the design of a mobile Java object infrastructure. It describes why it is helpful to group objects for mobility and how, when clusters represent untrusted pieces of code (for example mobile agents), they must be encapsulated both to control their access to other objects and to control access to them. The difficulties of managing large numbers of mobile objects in an open environment are discussed, together with a solution based on the management of large distributed name spaces. The mobile object system described has been implemented, and is currently being used to support development of mobile agent-based applications within another project. The paper also explains how the infrastructure described meets the requirements of mobile agents better than other approaches.
Article
Full-text available
This paper describes a distributed software architecture that provides an open source Java RMI-based API for programming remote prototypes for educational purposes. The access to the physical prototype is time-shared among different developers. The proposed system integrates with Moodle, a widely-used free-distribution Learning Management System. Copyright (C) 2011 CEA.
Article
Full-text available
This thesis presents a framework of a passively replicated transaction manager. By integrating transactions and replication, two well known fault tolerance techniques, the framework provides high availability for transactional systems and better support for non-deterministic execution for replicated systems. A prototype Java implementation of the framework, based on Jgroup/ARM and Jini, has been developed and performance tests have been executed. The results indicate that the response time for a simple credit-debit transaction heavily depends on the degree of replication for both servers and the transaction manager. E.g. a system with two replicas of the transaction manager and the servers quadruples the response time compared to the nonreplicated case. Thus, the performance penalty of replication should be weighed against the increased availability on a per application basis.
Article
Full-text available
In this paper we propose a load balancing strategy for distributed object computing systems. Our strategy relies on dynamic monitoring and application profiling, in order to manage workload and improve system performance on non-dedicated clusters of heterogeneous computers. Application profiling and the combined use of load balancing mechanisms have shown to be useful to deal with services with differentiated demand for resources.
Article
This paper describes our approach to building a scalable, flexible agent-based architecture for imagery and geospatial processing. Central to this approach is the agent discovery and composition mechanism which scales to support networks with thousands of agents. The agent architecture implements over 100 imagery and geospatial processing agents based on the Java Advanced Imaging and OpenMap(TM) APIs. The agents are distributed over a Jini enabled network, and communicate with one another via JavaSpaces. We discuss our "atomic" approach in this paper: developing low-level processing agents that are used by application of specific agents. We discuss several concepts in this approach: agent lookup and discovery through traditional information retrieval techniques, the ability to rapidly prototype agents based on commercial software products, and a knowledge management approach that reuses prior processing approaches and results. We present results demonstrating the scalability of our agent discovery and composition mechanism to compare them with other traditional discovery mechanisms, and demonstrate how the discovery mechanism scales to support thousands of agents.
Article
The author developed an RMI (referred to here as xRMI) that includes a code generation function for object serialization and confirmed its effectiveness. The distinguishing characteristics of xRMI are that it combines runtime code generation for object serialization and migration of generated code while maintaining the ease of use of the Java RMI. This enables the time required for the second and subsequent client-side serializations to be reduced and high-speed deserialization to be done at the server side by migrating the code for deserialization, which is generated at the client side, to the server side. As a result, xRMI runs faster than standard Java RMI, and a significant performance improvement can be expected for network applications. This paper presents the background for the research and describes the basic design and implementation of xRMI, as well as experiments for confirming xRMI performance. © 2003 Wiley Periodicals, Inc. Electron Comm Jpn Pt 1, 86(10): 79–88, 2003; Published online in Wiley InterScience (www.interscience.wiley.com). DOI 10.1002/ecja.1178
ResearchGate has not been able to resolve any references for this publication.