Local-Remote Transparency Framework for Passing Mutable Objects to Remote Operations
|
|
- Mitchell Reynolds
- 5 years ago
- Views:
Transcription
1 Local-Remote Transparency Framework for Passing Mutable Objects to Remote Operations Boydens, Jeroen 1 Steegmans, Eric 2 February 11, KHBO Dept Industrial Science & Technology Zeedijk 101, B 8400 Oostende, Belgium 2 K.U.Leuven Dept Computer Science Celestijnenlaan 200A, B 3001 Leuven, Belgium {Jeroen.Boydens, Eric.Steegmans}@cs.kuleuven.be Abstract This paper focuses on the fact that a developer should not be concerned whether his application will be distributed or not. Because the current remoting infrastructures use serialisation to pass parameters, synchronisation problems exist. We will elaborate on a transparent framework to pass mutable objects to remote operations, in the same way as they are passed to local operations. A number of solutions will be proposed to provide this transparency. Finally, a solution based on a caching mechanism will be implemented using annotations. 1 Introduction In this introduction, we will first identify the transparency problem. Next, we will discuss the mutability of the objects, which is causing the transparency problem. Following this Section, we will discuss the different problem scenarios. Finally, in Section 1.4, we will provide a sample that illustrates the most serious synchronisation problem. J. Boydens is an affiliated researcher at K.U.Leuven, dept CS, research group SOM prof E. Steegmans is head of the research group SOM
2 1.1 The Transparency Problem This paper concentrates on problems appearing in situations where remoting and object distribution is used with mutable objects. These exist in both the Java 2 Enterprise Edition (J2EE) [3, 18, 11] world, where Remote Method Invocation over Internet Inter-Orb Protocol (RMI-IIOP) [6] is used, and in the.net [13, 5] world, where.net Remoting [12, 16] is used. When passing parameters to operations on remote objects the boundary of the executing virtual machine is crossed. The virtual machine uses a serialisation mechanism to pass parameters to remote operations. When parameters with reference semantics are passed to remote operations, the referenced objects are serialised. At the remote side, the serialised version of the parameters is de-serialised, to create a new copy of the objects in the remote program space. In most situations, the remoting mechanism is working fine. In Section 1.3, a number of problem situations will be identified. These are situations in which performance degradation is noted, and one situation in which dirty data can exist. There are no problems when the parameters are immutable during the execution of the remote method. When these parameters are mutable, as is mostly the case, a different version of the parameter is used in local and remote program space. This is not quite the equivalent of the local-calling scheme, since in the local scheme we are actually referring to the same object. In the remote scheme we are referring to two completely different objects in different program spaces. The callee is using a new object with the same initial state as the caller s object. When developing applications the focus should be on the functional requirements of the application, not on its distribution. Passing parameters to local or remote operations is implemented in different ways. Local-remote transparency is required since developers should not worry whether their applications will be distributed or not. To support local-remote transparency, this paper focuses on the caching of objects during remote method calls. It proposes a pattern, which is implemented using annotations, to prevent the use of outdated data. The implementation validates each object request to the cached version, this way providing the mutability of the objects at the remote side. 1.2 Mutability of Objects The problems caused by serialisation, as explained in Section 1.1, depend on the nature of the object passed as a parameter. We can distinguish objects that are immutable and others that are mutable. Immutable objects may be replicated as many times as necessary as syn-
3 chronisation problems will never occur. Their state does not change at the local side, and neither does it at the remote side. Mutable objects are those objects whose state changes during the execution of the operations. These mutable objects are causing trouble. In the following sections, we will provide a mechanism to inform the developer whether or not he is using outdated data. To protect data during remote method calls, we could use distributed transactions. During these transactions, the data is locked as temporary. The heavy machinery of transactions, and the discussion of isolation levels to solve locking, is overkill for this problem. In this paper we want to provide a lightweight solution for knowing whether synchronisation issues occur. 1.3 Problem Scenarios Let us consider all possible scenarios of mutable and immutable, local and remote objects passed as parameters to local and remote operations, as illustrated in Table 1. Nr Object Locality Object Mutability operation Problem 1 local immutable local call No 2 local immutable remote call No 3 local mutable local call No 4 local mutable remote call out-of-sync 5 remote immutable local call No 6 remote immutable remote call degradation 7 remote mutable local call No 8 remote mutable remote call degradation Table 1: Parameter passing scenarios Only the problem scenario where an out-of-sync occurs will be further discussed in detail in this paper. In two scenarios there is possibly a performance degradation, namely in case number 6 and case number 8. Both cases are based on a comparable scenario, in which a remote object is passed to a remote method call. Remote objects are accessed through a stub. When the object is passed to a remote method, not its contents but the stub is serialised. The object can be accessed locally if the remote method resides in the same program space as the remote object. Instead of directly accessing the object, it is now accessed through a stub-skeleton pair. This performance degradation does not lead to incorrect access of information, since the original object is still referred to.
4 1.4 Synchronisation Problem Illustrated #$! " % #& $ '#( ) *+, -. /012 Figure 1: Mutable Local Object in Remote call The illustration in Figure 1 visualizes the problem scenario. A mutable local object z of type Z is created. A remote object y is used through its local stub ry. This remote object has an operation f which takes an object of type Z as a parameter. When a call ry.f(z) is made, the object z is passed to the remote operation as a value, not as a reference. Technically, the value of z is serialised in a byte stream by the remote object-stub ry, and the value is pushed over the network to the remote object skeleton. At the remote side, the value of z is de-serialised out of the byte stream. A second instance of the value of object z is created at the remote side. This causes the out-ofsync problem. The state β at the local side can change after the value is serialised, causing a changed state β at the local side and a state β at the remote side. As a result, any changes made to the local copy of z will not be reflected in the de-serialised copy of z at the remote side. The sample code in Algorithm 1 illustrates this scenario. It uses the Customer class as the mutable local class. First, an Account object is created at the remote side. This object is then exported as a remote accessible object, and an identifying name MyAccount is assigned to it. The name is used by the local side during the lookup of the object-stub RemoteAccount in the context at the local side. The narrow method checks to ensure
5 that the object, returned by the lookup method, can be cast to the desired type RemoteAccount. The local object myfriend is now passed to a remoteaccount operation transferamountto as a parameter. At this point the local value of the Customer objects gets out-of-sync with the remote value. Algorithm 1 Java code out-of-sync //Remote side Account myaccount =new Account( ); // y PortableRemoteObject.exportObject(myAccount ); Context ctx = new InitialContext(someProperties); ctx.rebind( MyAccount, myaccount ); //Local side Context ctx = new InitialContext(someProperties); RemoteAccount myremoteaccount = (RemoteAccount) PortableRemoteObject.narrow( ctx.lookup( MyAccount ), RemoteAccount.class); //ry Money amount = new Money(100.0); //auxiliary object Customer myfriend = new Customer( Laura ); myremoteaccount.transferamountto( amount, myfriend ); 2 Solution to the Transparency Problem In this section, we will first present a number of scope settings to reduce the problem space. To guide us in selecting a solution we will use the following metaphor: objects live in their origins, and are cached in all other locations. Next, we will present a number of solutions, and explain why they do not satisfy the preferred solution. Finally, in Section 2.6, a caching strategy will be presented. And later on in this paper, in Section 3, we will implement this strategy. 2.1 Scope Settings All objects are non-remote per definition, unless otherwise specified. The distributed architecture constitutes of one server (master) and multiple clients (slaves). We will not introduce a remoting infrastructure at the client side, only an infrastructure at the server side. The out-of-sync objects live in the client programming environment. A network with continuous connectivity is presumed. We will present a number of strategies to solve the synchronisation issues and we will motivate why the caching strategy in Section 2.6 is selected as the optimal solution.
6 2.2 Make all Objects Remotely Available If this strategy is applied it will give remote access to all objects on all different locations. The remote stub is passed when passing parameters to remote operations. This way, all requests made concerning information in the object are forwarded to the original environment where the object resides. Hence, a symmetrical solution appears, in which both client and server provide objects to each other. Because we do not want to provide remoting infrastructure on the client, this strategy is not wanted. Another disadvantage is that we must add security restrictions to the client. When we make an object remotely available, we must restrict unauthorised access. 2.3 Objects Live Only in One Place Another strategy is to move the object from one location to another. When an operation is started, the object passed as parameter is serialised and removed at the client side. The serialised object is moved over to the server where it is recreated in the last state. The operation is executed in the server program space with the object in the same program space. On completion, the object is serialised and sent back to the client. The server instance of the object is now deleted. On arrival at the client side the object is recreated with its new state, a state which is changed only because of changes at the server side. This strategy reduces the ability to use the object as a parameter to multiple parallel requests. It also prevents a client from using or updating the local value of the object. Therefore this solution is not selected. 2.4 Transactions A transaction [2, 8] is started at the client side, noting all following requests at the client side that this object is in use by some operation. The transaction context can be distributed across the network, so that the remote operation can vote on the completion of this transaction. This voting takes place at the client side, when the remoting operation completes. Because of the transactions, all operations run in isolation of each other. A client is thus unable to change the original object in its local memory, until the object is released by the transaction. Additional settings are needed when remote operations are suddenly aborted. A distributed transaction infrastructure is needed on every client. Every time a remote operation needs a local object, necessary decisions are made on the isolation levels of the transaction (Read Uncommitted, Read Committed, Repeatable Read, Serialisable). Transactions can solve the synchronisation problem, but this mechanism is not selected as a
7 valuable solution, as mentioned in Section 1.2. The transaction infrastructure needed on every client is overkill. As such, interceptions are necessary both at client and at the server side. 2.5 Observer Pattern In the next strategy, we register an observer [7] for every object that is passed to a remote operation. The remote operation is added as an observer at the client side. When changes occur in data at the client side, all observers must be notified and updated. If we want to be able to change the remote version of the object, all changes must be propagated back to the client. In case of a bidirectional association, local changes can propagate to the remote side, and data race situations can occur. Data races are very hard to find and solve. This strategy requires a considerable administration at the client side. What if a remote operation suddenly aborts, then the corresponding observer is not removed from the enlisted observers on the client. The client will try to notify non-existing observers. 2.6 Caching strategy The strategy we will discuss further in this paper uses a caching solution. The sample application is located in the banking business. Imagine branch offices that keep track of extended customer information. Branch offices are responsible for managing all the information concerning their local customers. The head office needs information about all the customers, but is not willing to manage that huge amount of information. When the branch offices are communicating with the central bank, customer information is sent over to this head office. Since numerous applications are sending such information to the central bank, updated values may arrive while handling current requests. The caching solution notifies the executing requests if a more recent version is available. This is illustrated in the sequence diagram [4, 9] in Figure 2. In this illustration, the central bank object is represented twice. This serves to show that multiple requests can arrive in a parallel way. As an extra advantage, we are able to query the cache about cached customer information, even on moments that branches are not connected. As an example, head office applications may offer a business method returning the branch at which a given customer has an account. One may argue that the answers returned by the cache are not guaranteed to be up-to-date, since the cache is only updated when values are passed. To acquire more accurate data in the head office, dummy methods are triggered at the branch offices. These methods pass the changed customers to the head office in a nop-operation on the server. In our vision it is never possible - not even at the branches
8 request1 : BranchOffice : CentralBank : CentralBank : Cache processrequest updatevalues request2 processrequest updatevalues readproperty UpdatedValues Figure 2: Distributed Application themselves - to guarantee the data to be up-to-date, since it may be aging just after recording. We think it is better to have some information, than none at all. On top of this, while using the caching framework, we can warn a client during the processing of a request that he is using aged values. We will not focus on cache validation and cache eviction policies. It is clear that objects are removed from the cache when their time-to-live attribute has expired, or when the cache is cleared. The main goal of this paper is to focus on the transparency of passing arguments to local and remote methods. 3 Caching Strategy Implementation When a developer creates a class, he knows whether the objects will be mutable or immutable. He should not be concerned with the fact whether the application will be distributed or not. The current technology presumes all objects sent over the network are immutable, which is not always the case. By introducing an annotation, we want to give the developer an opportunity to state this mutability. When the annotation is mutable, the framework takes care of the introduction of a caching mechanism at the remote side to support mutable objects as parameters in remote operations. The framework adds all necessary code to cache the values when they are sent to remote methods, and the framework throws exceptions when requests are made to outdated values.
9 The caching strategy is implemented by annotating the initial class with a mutability-tag, see Section 1.2. The developer has the option to annotate the class with a or with a By the developer states that the objects are mutable, that their value is expected to change during the execution of operations. Since most objects will be mutable, tag is the default option. The retention policy of this annotation is runtime, meaning they are to be recorded in the class file by the compiler and retained by the VM at run time, so they may be read in a reflective manner. Local Branch Office Client (satellites) * myfriend : Customer {annotation id lastname givenname birthdate city country Network myfriend : Customer {annotation id lastname givenname birthdate city country Cache Remote Central Bank Server 1 myremoteaccount : RemoteAccount myaccount : Account nr customerid balance minbalance : AccountSkeleton Interception at Server Side Stub marshall(customer) Skeleton unmarshalling(customer) myremoteaccount.transferamountto( amount, myfriend) Figure 3: As illustrated in Figure 3, the class Customer is annotated with tag. During the marshaling, or serialisation, of the parameters of the remote operation myremoteaccount.transferamountto( ), the annotation is retained. The object is de-serialised during the un-marshaling phase at the remote side. At this point, an interceptor detects the annotation, sends the object to the cache, and makes sure all following requests on the object are verified to the cached version. The code to verify the cached version is based on a decoration pattern [7]. Every request that is made to the object is first verified with the cached version. When conflicts are detected an exception is thrown.
10 4 Future Work We want to implement the annotation based approach as a language construct, this way adding an extra keyword to the language so the developer has the ability to state the mutability of the objects. The performance degradation problems stated in Section 1.3 should be avoided. We plan to use smart references to solve this problem. Smart references are references that know internally if they refer to a local or a remote object. The proposed solution is implemented in J2EE, based on Enterprise Java Beans [17, 10]. Since the same problem exists in the J2EE world and in the.net [14] world, this strategy could be implemented for.net. 5 Conclusion In this paper we have elaborated on a local-remote transparency problem that exists with current remoting infrastructures. We proposed the developer to annotate the mutability of the class he develops, so the remoting infrastructure can intercept accordingly. When the infrastructure receives a mutable object as a parameter to a remote operation, a caching mechanism will be introduced. During the request on information in the objects, the cached version is checked. This way, the developer will create a transparent solution for both the local and the remote parameter passing scheme. References [1] T. Bennani, L. Blain, L. Courtes, J.-C. Fabre, M.-O. Killijian, E. Marsden, and F. Taiani. Implementing simple replication protocols using corba portable interceptors. [2] P. Bernstein and E. Newcomer. Principles of transaction processing: for the systems professional. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, [3] S. Bodoff, E. Armstrong, J. Ball, and D. B. Carson. The J2EE Tutorial, Second Edition. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, [4] G. Booch, J. Rumbaugh, and I. Jacobson. Unified Modeling Language User Guide, The (2nd Edition) (Addison-Wesley Object Technology Series). Addison-Wesley Professional, 2005.
11 [5] B. Clark. Enterprise Application Integration Using.NET. Addison- Wesley Professional, [6] B. Eckel. Thinking in Java (2nd ed.): the definitive introduction to object-oriented programming in the language of the World-Wide Web. Prentice Hall PTR, Upper Saddle River, NJ, USA, [7] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, [8] J. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, [9] C. Larman. Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and the Unified Process. Prentice Hall PTR, Upper Saddle River, NJ, USA, [10] F. Marinescu. Ejb Design Patterns: Advanced Patterns, Processes, and Idioms with Poster. John Wiley & Sons, Inc., New York, NY, USA, Foreword By-Ed Roman. [11] V. Matena, B. Stearns, and L. Demichiel. Applying Enterprise JavaBeans: Component-Based Development for the J2EE Platform. Pearson Education, [12] S. McLean, K. Williams, and J. Naftel. Microsoft.Net Remoting. Microsoft Press, Redmond, WA, USA, [13] H. Moessenboeck, W. Beer, D. Birngruber, and A. Woess..NET Application Development: With C#, ASP.NET, ADO.NET, and Web Services. Pearson Addison Wesley, [14] C. Nagel. Enterprise Services with the.net Framework: Developing Distributed Business Solutions with.net Enterprise Services (Microsoft Net Development Series). Addison-Wesley Professional, [15] C. Pohl and A. Schill. Client-side component caching. In IFIP, [16] I. Rammer. Advanced.Net Remoting. Apress, Berkely, CA, USA, [17] E. Roman, S. W. Ambler, and F. Marinescu. Mastering Enterprise Javabeans. John Wiley & Sons, Inc., New York, NY, USA, [18] I. Singh, B. Stearns, and M. Johnson. Designing enterprise applications with the J2EE platform. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002.
Model-View-Controller
CNM STEMulus Center Web Development with PHP November 11, 2015 1/8 Outline 1 2 2/8 Definition A design pattern is a reusable and accepted solution to a particular software engineering problem. Design patterns
More informationJavaPolis 2004 Access Control Architectures: COM+ vs. EJB
JavaPolis 2004 Access Control Architectures: COM+ vs. EJB Dr. Konstantin Beznosov Assistant Professor University of British Columbia Overall Presentation Goal Learn about the capabilities of COM+ and EJB
More informationJava RMI Middleware Project
Java RMI Middleware Project Nathan Balon CIS 578 Advanced Operating Systems December 7, 2004 Introduction The semester project was to implement a middleware similar to Java RMI or CORBA. The purpose of
More informationBorland Application Server Certification. Study Guide. Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved.
Borland Application Server Certification Study Guide Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved. Introduction This study guide is designed to walk you through requisite
More informationPerformance Evaluation of Java And C++ Distributed Applications In A CORBA Environment
Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment Sanjay P. Ahuja Roger Eggen Cheryl Daucher Department of Computer and Information Sciences University of North Florida
More informationEvictor. Prashant Jain Siemens AG, Corporate Technology Munich, Germany
1 Evictor Prashant Jain Prashant.Jain@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Evictor 2 Evictor The Evictor 1 pattern describes how and when to release resources such as memory
More informationSoftware Architecture
Software Architecture Prof. R K Joshi Department of Computer Science and Engineering IIT Bombay What is Architecture? Software Architecture? Is this an Architecture? Is this an Architecture? Is this an
More informationMiddleware for Heterogeneous and Distributed Information Systems
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Middleware for Heterogeneous and Distributed Information Systems http://wwwlgis.informatik.uni-kl.de/cms/courses/middleware/
More informationOverview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture
Preface p. xix About the Author p. xxii Introduction p. xxiii Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture
More informationApplication Servers in E-Commerce Applications
Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand
More informationOutline. Project Goal. Overview of J2EE. J2EE Architecture. J2EE Container. San H. Aung 26 September, 2003
Outline Web-based Distributed EJB BugsTracker www.cs.rit.edu/~sha5239/msproject San H. Aung 26 September, 2003 Project Goal Overview of J2EE Overview of EJBs and its construct Overview of Struts Framework
More informationToday: Distributed Objects. Distributed Objects
Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.
More informationA Taxonomy of the Quality Attributes for Distributed Applications
A Taxonomy of the Quality Attributes for Distributed Applications Jorge Enrique Pérez-Martínez and Almudena ierra-alonso University Rey Juan Carlos E.. of Experimental ciences and Technology C/ Tulipán
More informationObject-Oriented Software Development Goal and Scope
Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic
More informationBroker Revisited. Markus Voelter Copyright 2004, Kircher, Voelter, Jank, Schwanninger, Stal D5-1
Broker Revisited Michael Kircher, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Markus Voelter voelter@acm.org Copyright 2004,
More informationPatterns for Asynchronous Invocations in Distributed Object Frameworks
Patterns for Asynchronous Invocations in Distributed Object Frameworks Patterns for Asynchronous Invocations in Distributed Object Frameworks Markus Voelter Michael Kircher Siemens AG, Corporate Technology,
More informationReference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003
CS551: Advanced Software Engineering Service-Oriented Architecture Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003 Yugi Lee STB #560D (816)
More informationDistributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar
Distributed Programming with RMI Overview Distributed object computing extends an object-oriented programming system by allowing objects to be distributed across a heterogeneous network, so that each of
More informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS
More informationIrbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems
Developing Enterprise Systems with CORBA and Java Integrated Technologies Safwan Al Salaimeh, Amer Abu Zaher Irbid National University, Irbid, Jordan ABSTRACT: The questions of corporate systems development
More informationProposal for Business Transaction Protocol Version 1.0
Proposal for Business Transaction Protocol Version 1.0 Sanjay Dalal (sanjay.dalal@bea.com) Pal Takacsi-Nagy (pal.takacsi@bea.com) Abstract Long lasting business transactions spanning multiple enterprises
More informationCS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University
CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization
More informationIntroduction & RMI Basics. CS3524 Distributed Systems Lecture 01
Introduction & RMI Basics CS3524 Distributed Systems Lecture 01 Distributed Information Systems Distributed System: A collection of autonomous computers linked by a network, with software to produce an
More informationImplementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.
Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services
More informationA Grid-Enabled Component Container for CORBA Lightweight Components
A Grid-Enabled Component Container for CORBA Lightweight Components Diego Sevilla 1, José M. García 1, Antonio F. Gómez 2 1 Department of Computer Engineering 2 Department of Information and Communications
More informationBEAWebLogic 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 informationDistributed Systems. The main method of distributed object communication is with remote method invocation
Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,
More informationConcurrent Object-Oriented Development with Behavioral Design Patterns
Concurrent Object-Oriented Development with Behavioral Design Patterns Benjamin Morandi 1, Scott West 1, Sebastian Nanz 1, and Hassan Gomaa 2 1 ETH Zurich, Switzerland 2 George Mason University, USA firstname.lastname@inf.ethz.ch
More informationCERTIFICATION SUCCESS GUIDE ENTERPRISE ARCHITECT FOR JAVA 2 PLATFORM, ENTERPRISE EDITION (J2EE ) TECHNOLOGY
SUN CERTIFICATION CERTIFICATION SUCCESS GUIDE ENTERPRISE ARCHITECT FOR JAVA 2 PLATFORM, ENTERPRISE EDITION (J2EE ) TECHNOLOGY TABLE OF CONTENTS Introduction..............................................
More informationObject-Oriented Analysis and Design
0. Object Orientation: An Subject/Topic/Focus: over this lecture Summary: Lecturer, lecture, rooms, assistants, lab classes, credit points... Need for systems analysis and software engineers Literature
More informationOracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010
Oracle Tuxedo CORBA Technical Articles 11g Release 1 (11.1.1.1.0) March 2010 Oracle Tuxedo CORBA Technical Articles, 11g Release 1 (11.1.1.1.0) Copyright 1996, 2010, Oracle and/or its affiliates. All rights
More informationLookup. Michael Kircher & Prashant Jain Siemens AG, Corporate Technology Munich, Germany
Lookup Michael Kircher & Prashant Jain {Michael.Kircher,Prashant.Jain}@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Copyright 2000 by Prashant Jain and Michael Kircher The lookup pattern
More informationLightweight RPC. Robert Grimm New York University
Lightweight RPC Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? The Structure of Systems Monolithic kernels
More informationBCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus
BCS Higher Education Qualifications Diploma in IT Object Oriented Programming Syllabus Version 3.0 December 2016 This is a United Kingdom government regulated qualification which is administered and approved
More informationTest Case Generation Based on Sequence Diagrams
Test Case Generation Based on Sequence Diagrams Yao-Cheng Lei Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi, Taiwan 621, R.O.C. {lyc94,naiwei}@cs.ccu.edu.tw
More informationSystem Architecture Design
System Architecture Design 158 161........1 161..... 1.1 161...... 2.1 162..... 3.1 162..... 4.1 162... 5.1 163... Moving from Analysis to Design.2 164... System Architecters.3 164... Server-based Architecture
More informationSoftware Components and Distributed Systems
Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic Design
More information2 Introduction and Roadmap
Oracle Fusion Middleware Programming JNDI for Oracle WebLogic Server 11g Release 1 (10.3.6) E13730-05 November 2011 This document explains how to set up WebLogic JNDI. It is intended for programmers who
More informationChapter 4 Remote Procedure Calls and Distributed Transactions
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationCommunication and Distributed Processing
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationSoftware Architectural Modeling of the CORBA Object Transaction Service
Software Architectural Modeling of the CORBA Transaction Service Susanne Busse Fraunhofer ISST Mollstr. 1 D-10178 Berlin, Germany Susanne.Busse@isst.fhg.de Stefan Tai Technische Universität Berlin Sekr.
More informationThe WebShop E-Commerce Framework
The WebShop E-Commerce Framework Marcus Fontoura IBM Almaden Research Center 650 Harry Road, San Jose, CA 95120, U.S.A. e-mail: fontouraalmaden.ibm.com Wolfgang Pree Professor of Computer Science Software
More informationCommunication Framework
Communication Framework G.Riviere Guillaume.Riviere@inrialpes.fr www.objectweb.org Contents RMI Overview Multi-Protocol with RMI-IIOP Multi-Name Services with JNDI RMI Context Propagation Conclusion www.objectweb.org
More informationmetaxa and the Future of Reflection
metaxa and the Future of Reflection Michael Golm, Jürgen Kleinöder University of Erlangen-Nürnberg Dept. of Computer Science 4 (Operating Systems) Martensstr. 1, D-91058 Erlangen, Germany {golm, kleinoeder}@informatik.uni-erlangen.de
More informationREVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION
c08classandmethoddesign.indd Page 282 13/12/14 2:57 PM user 282 Chapter 8 Class and Method Design acceptance of UML as a standard object notation, standardized approaches based on work of many object methodologists
More informationDISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON.
DISTRIBUTED SYSTEMS 121r itac itple TAYAdiets Second Edition Andrew S. Tanenbaum Maarten Van Steen Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON Prentice Hall Upper Saddle River, NJ 07458 CONTENTS
More informationBEA WebLogic Enterprise. Technical Articles
BEA WebLogic Enterprise Technical Articles BEA WebLogic Enterprise 4.2 Document Edition 4.2 July 1999 Copyright Copyright 1999 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software
More informationMIND THE GAP! - MAPPING ENTERPRISE JAVA OBJECTS TO THE DATABASE. David Parsons Valtech
MIND THE GAP! - MAPPING ENTERPRISE JAVA OBJECTS TO THE DATABASE Summary David Parsons Valtech One of the key challenges facing an enterprise Java system is the integration of object-oriented systems with
More informationSyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software
SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software {s1669021, s1598011, yccheng, hsieh}@ntut.edu.tw SyncFree Abstract People who use different computers at different
More informationMTAT Enterprise System Integration. Lecture 2: Middleware & Web Services
MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise
More informationApplications MW Technologies Fundamentals. Evolution. Applications MW Technologies Fundamentals. Evolution. Building Blocks. Summary.
Summary Mariano Cilia cilia@informatik.tu-darmstadt.de 1 2 Communication Mechanisms Synchronous Asynchronous 3 4 RPC - Abstraction Remote Procedure (RPC) s System used interface interface definition logic
More informationBroker Pattern. Teemu Koponen
Broker Pattern Teemu Koponen tkoponen@iki.fi Broker Pattern Context and problem Solution Implementation Conclusions Comments & discussion Example Application Stock Exchange Trader 1 Stock Exchange 1 Trader
More informationServer and WebLogic Express
BEAWebLogic Server and WebLogic Express Programming WebLogic JNDI Version 9.0 Document Revised: July 22, 2005 Copyright Copyright 2005 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This
More informationITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS
ITT Technical Institute ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS Credit hours: 4.5 Contact/Instructional hours: 67 (41 Theory Hours, 26 Lab Hours Prerequisite(s and/or Corequisite(s:
More informationDistributed Systems Principles and Paradigms
Distributed Systems Principles and Paradigms Chapter 09 (version 27th November 2001) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.
More informationMiddleware Reliability Implementations and Connector Wrappers
Middleware Reliability Implementations and Connector Wrappers J.H. Sowell and R.E.K. Stirewalt Department of Computer Science and Engineering Michigan State University East Lansing, Michigan 48824 USA
More informationIntroduction to Information Systems (IS)
Introduction to Information Systems (IS) 2 5.......... 5..... 1.1 5......... 2.1 5..... 3.1 6...... 4.1 6...... 5.1 7... Information Systems and their Characteristics 9... Types of Information Systems
More informationElectronic Payment Systems (1) E-cash
Electronic Payment Systems (1) Payment systems based on direct payment between customer and merchant. a) Paying in cash. b) Using a check. c) Using a credit card. Lecture 24, page 1 E-cash The principle
More informationDynamic Adaptability of Services in Enterprise JavaBeans Architecture
1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté
More informationModeling Software Evolution by Evolving Interoperation Graphs 1
Annals of Software Engineering, Vol. 9, 2000, pp. 235-348. Modeling Software Evolution by Evolving Interoperation Graphs 1 Václav Rajlich Department of Computer Science Wayne State University Detroit,
More informationJ2EE for Glast. Matthew D. Langston (SLAC) 4/25/2004
J2EE for Glast Matthew D. Langston (SLAC) 4/25/2004 What is J2EE? Java 2 Platform, Enterprise Edition Current specification is J2EE version 1.4 A platform-agnostic operating system for developing componentbased
More informationCHAPTER - 4 REMOTE COMMUNICATION
CHAPTER - 4 REMOTE COMMUNICATION Topics Introduction to Remote Communication Remote Procedural Call Basics RPC Implementation RPC Communication Other RPC Issues Case Study: Sun RPC Remote invocation Basics
More informationWork groups meeting 3
Work groups meeting 3 INF5040 (Open Distributed Systems) Amir Taherkordi amirhost@ifi.uio.no Department of Informatics University of Oslo September 18, 2008 Design Patterns J2EE Design Patterns AntiPatterns
More informationJava EE Architecture, Part Two. Java EE architecture, part two 1
Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,
More informationPatterns for Three-Tier Client/Server Applications
Patterns for Three-Tier Client/Server Applications Amund Aarsten, Davide Brugali, Giuseppe Menga Dept. of Automatica e Informatica Politecnico di Torino, Italy email: {amund,brugali}@athena.polito.it,
More informationCommunication and Distributed Processing
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationModeling software evolution by evolving interoperation graphs
Annals of Software Engineering 9 (2000) 235 248 235 Modeling software evolution by evolving interoperation graphs Václav Rajlich Department of Computer Science, Wayne State University, Detroit, MI 48202,
More informationAdvanced Topics in Operating Systems
Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:
More informationOperating Systems. Lecture 09: Input/Output Management. Elvis C. Foster
Operating Systems 141 Lecture 09: Input/Output Management Despite all the considerations that have discussed so far, the work of an operating system can be summarized in two main activities input/output
More informationChapter 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 informationDistributed Technologies - overview & GIPSY Communication Procedure
DEPARTMENT OF COMPUTER SCIENCE CONCORDIA UNIVERSITY Distributed Technologies - overview & GIPSY Communication Procedure by Emil Vassev June 09, 2003 Index 1. Distributed Applications 2. Distributed Component
More informationConcurrency Control with Java and Relational Databases
Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based
More informationContents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A
Contents Java RMI G53ACC Chris Greenhalgh Java RMI overview A Java RMI example Overview Walk-through Implementation notes Argument passing File requirements RPC issues and RMI Other problems with RMI 1
More informationIntroduction To Web Architecture
Introduction To Web Architecture 1 Session Plan Topic Estimated Duration Distributed computing 20 min Overview of Sun Microsoft Architecture 15 min Overview of Microsoft Architecture 15 min Summary 15
More informationOutline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4
EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks
More information[MS-TPSOD]: Transaction Processing Services Protocols Overview. Intellectual Property Rights Notice for Open Specifications Documentation
[MS-TPSOD]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation ( this documentation ) for protocols,
More informationUsing CORBA Middleware in Finite Element Software
Using CORBA Middleware in Finite Element Software J. Lindemann, O. Dahlblom and G. Sandberg Division of Structural Mechanics, Lund University strucmech@byggmek.lth.se Abstract. Distributed middleware technologies,
More information26.1 Introduction Programming Preliminaries... 2
Department of Computer Science Tackling Design Patterns Chapter 27: Proxy Design Pattern Copyright c 2016 by Linda Marshall and Vreda Pieterse. All rights reserved. Contents 26.1 Introduction.................................
More informationA domain model-centric approach to J2EE development. Keiron McCammon CTO Versant Corporation
A domain model-centric approach to J2EE development Keiron McCammon CTO Versant Corporation 1 Patterns of Enterprise Application Architecture Martin Fowler, at. al. Overview What is a domain model centric
More informationMastering RMI: Developing Enterprise Applications In Java And EJB By Öberg, Rickard Oberg, Rickard READ ONLINE
Mastering RMI: Developing Enterprise Applications In Java And EJB By Öberg, Rickard Oberg, Rickard READ ONLINE Mastering RMI: Developing Enterprise Applications in Java and EJB. Your search for "Ejb Application
More informationA short introduction to Web Services
1 di 5 17/05/2006 15.40 A short introduction to Web Services Prev Chapter Key Concepts Next A short introduction to Web Services Since Web Services are the basis for Grid Services, understanding the Web
More informationAN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING
AN EMPIRICAL STUDY OF EFFICIENCY IN DISTRIBUTED PARALLEL PROCESSING DR. ROGER EGGEN Department of Computer and Information Sciences University of North Florida Jacksonville, Florida 32224 USA ree@unf.edu
More informationObjects Meet Relations: On the Transparent Management of Persistent Objects
Objects Meet Relations: On the Transparent Management of Persistent Objects Luca Cabibbo Dipartimento di Informatica e Automazione Università degli studi Roma Tre cabibbo@dia.uniroma3.it Abstract. Many
More informationLanguage Support for Distributed Proxies
Language Support for Distributed Proxies Darpan Saini dsaini@andrew.cmu.edu Joshua Sunshine sunshine@cs.cmu.edu Jonathan Aldrich aldrich@cs.cmu.edu ABSTRACT Proxies are ubiquitous in distributed systems.
More informationPlan. Department of Informatics. Advanced Software Engineering Prof. J. Pasquier-Rocha Cours de Master en Informatique - SH 2003/04
Plan 1. Application Servers 2. Servlets, JSP, JDBC 3. J2EE: Vue d ensemble 4. Distributed Programming 5. Enterprise JavaBeans 6. Enterprise JavaBeans: Transactions 7. Prise de recul critique Enterprise
More informationMODELS OF DISTRIBUTED SYSTEMS
Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between
More informationSCENTOR: Scenario-Based Testing of E-Business Applications
SCENTOR: Scenario-Based Testing of E-Business Applications Jeremiah Wittevrongel, Frank Maurer The University of Calgary jeremiah@cpsc.ucalgary.ca, maurer@cpsc.ucalgary.ca Abstract E-business software
More informationXIX. Software Architectures
XIX. Software Architectures Software Architectures UML Packages Client-Server vs Peer-to-Peer Horizontal Layers and Vertical Partitions 3-Tier and 4-Tier Architectures The Model-View-Controller Architecture
More informationUnit 7: RPC and Indirect Communication
SR (Systèmes Répartis) Unit 7: RPC and Indirect Communication François Taïani Outline n Remote Procedure Call è First Class RPC è Second Class RPC (RMI) n Indirect Communication è Group Communication è
More informationINSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad
Course Name Course Code Class Branch INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad -500 043 COMPUTER SCIENCE AND ENGINEERING TUTORIAL QUESTION BANK 2015-2016 : DISTRIBUTED SYSTEMS
More informationChapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS Distributed Objects Figure 10-1. Common organization of a remote
More informationTransactions. Kathleen Durant PhD Northeastern University CS3200 Lesson 9
Transactions Kathleen Durant PhD Northeastern University CS3200 Lesson 9 1 Outline for the day The definition of a transaction Benefits provided What they look like in SQL Scheduling Transactions Serializability
More informationMapping UML Component Specifications to JEE Implementations
Journal of Computer Science 3 (10): 780-785, 2007 ISSN 1549-3636 2007 Science Publications Mapping UML Component Specifications to JEE Implementations Jyhjong Lin Department of Information Management,
More informationBD - Databases
Coordinating unit: Teaching unit: Academic year: Degree: ECTS credits: 2018 270 - FIB - Barcelona School of Informatics 747 - ESSI - Department of Service and Information System Engineering BACHELOR'S
More informationAdaptive Middleware. Self-Healing Systems. Guest Lecture. Prof. Priya Narasimhan. Assistant Professor of ECE and ISRI Carnegie Mellon University
Adaptive Middleware Self-Healing Systems Guest Lecture Prof. Priya Narasimhan Assistant Professor of ECE and ISRI Carnegie Mellon University Recommended readings and these lecture slides are available
More informationKINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK
KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR 2011 2012(ODD SEMESTER) QUESTION BANK SUBJECT CODE / NAME: IT1402-MIDDLEWARE TECHNOLOGIES YEAR/SEM : IV / VII UNIT
More informationJOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards
More informationindex_ qxd 7/18/02 11:48 AM Page 259 Index
index_259-265.qxd 7/18/02 11:48 AM Page 259 Index acceptance testing, 222 activity definition, 249 key concept in RUP, 40 Actor artifact analysis and iterative development, 98 described, 97 136 in the
More informationUML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools
UML Modeling I Instructor: Yongjie Zheng September 3, 2015 CS 490MT/5555 Software Methods and Tools Object-Oriented Design: Topics & Skills Rational Unified Process Unified Modeling Languages (UML) Provide
More informationRMI-P4. Harsimrankaur PDMCEW, Bahadurgarh
RMI-P4 Harsimrankaur PDMCEW, Bahadurgarh Abstract: SAP is one of the leading providers of business software. Its product portfolio for enterprise application software is organized around the various key
More information