Managing Complexity: Middleware Explained Andrew T

Total Page:16

File Type:pdf, Size:1020Kb

Managing Complexity: Middleware Explained Andrew T DISTRIBUTED COMPUTING Managing Complexity: Middleware Explained Andrew T. Campbell, Geoff Coulson, and Michael E. Kounavis sk a network designer what middle- in a distributed environment can be a nightmare. ware is, and he’ll characterize it as part For instance, to provide basic communication of the application.Ask an application services, programming languages support sock- designer what it is, and she’ll say it’s ets, which are end points in two-way communica- Apart of the OS.Which one is it? tion links between two programs running on a Traditionally, most definitions seeking to char- network. Sockets require client and server to acterize middleware suggest that it is the software engage in application-level protocols to encode that facilitates remote database access and systems and decode messages. Designing such protocols transactions. More recently, the term has come is cumbersome and can be prone to error. to be associated—somewhat Middleware is basically an alternative to sock- Middleware lets limitingly—with distributed ets; it abstracts the communication interface to platforms like the Open the level of method invocations. Instead of work- you manage the Software Foundation’s Dis- ing directly with sockets, you call a method— complexity and tributed Computing Environ- rather, you have the illusion of calling a ment (DCE) and the Object method—on a local object.The arguments of the heterogeneity of Management Group’s Com- call are in fact packaged up by your middleware mon Object Request Broker and shipped off to the call’s remote target. In this distributed- Architecture (CORBA). And case, as in others, middleware provides the isolat- computing some have loosely applied it ing layer of software that shields you from the to systems as diverse as work- complexities of a heterogeneous environment. environments. flow support environments Here’s an and even to the Web itself. MIDDLEWARE FOR THE MASSES We believe the essential Several distributed object platforms have re- overview of the role of middleware is to man- cently become quite popular. These platforms middleware age the complexity and het- extend earlier distributed systems technologies— erogeneity of distributed like the Open Group’s DCE, Sun’s remote pro- world. infrastructures and thereby cedure call (RPC) interface, and Novell’s provide a simpler program- ming environment for dis- tributed-application developers. It is therefore Inside most useful to define middleware as any software layer that is placed above the distributed system’s A Technical Look at infrastructure—the network OS and APIs—and below the application layer. CORBA in Action In the distributed-computing model, your enter- Middleware Market Will Grow prise moves applications and data to where they can operate most efficiently: to desktop worksta- A Glossary of tions and to LAN, Web, or remote servers. But Middleware Terms dealing with the different protocols and interfaces 22 IT Pro September ❘ October 1999 1520-9202/99/$10.00 © 1999 IEEE NetWare—that weren’t object based. The characteristics of the new platforms include A Technical Look at CORBA in Action • masking heterogeneity in the underlying infrastructure by cloaking system specifics; We can best see how CORBA operates by exam- • permitting heterogeneity at the application level by ining the sequence of actions that take place when a allowing the various components of the distributed client application invokes a method in a remote application to be written in any suitable language; object.The sequence of actions begins when • providing structure for distributed components the client application somehow obtains an by adopting object-oriented principles; Interoperable Object Reference (IOR)— • offering invisible, behind-the-scenes distribution perhaps from a name server or as the return as well as the ability to know what’s happening value of a previous remote invocation. The behind the scenes; and client binds to this IOR and, as a result, is • providing general-purpose distributed services given access to a stub—a small software rou- that aid application development and deploy- tine—through which it can invoke the remote ment. object associated with the IOR. The client application sees the stubs as Prime examples of such platforms include OMG’s proxies for remote objects. In other words, CORBA, Microsoft’s Distributed Component they have a language-specific interface that Object Model (DCOM), and Sun’s Java remote corresponds to the IDL from which they were method invocation (RMI) system. generated. The function of stubs is to map— the term in CORBA is marshal—the argu- OMG’s CORBA ments and return values of method calls into Of the three major middleware technologies, CORBA and out of communications buffers, which can be sent is the most comprehensive in scope, largely because OMG across the network by the Generic InterORB Proto- explicitly addresses both the general- and vertical-market col (GIOP). aspects of middleware’s potential uses. Simply stated, On the server side, the implementer of an IDL pro- CORBA allows applications to communicate with one vides a language-specific implementation of the inter- another no matter where they are located or who designed face and registers instances of this implementation them. with the ORB so that their presence can be adver- The Object Request Broker (ORB) is the CORBA mid- tised. A standard interface—called the Portable dleware that establishes the client-server relationships. Object Adapter (POA)—provides object imple- Using an ORB, a client can transparently invoke a method mentations with a standard environment. on a server object, which can be on the same machine or The server implementation is interfaced to the across a network. The ORB intercepts the call and is underlying ORB by skeletons in much the same way responsible for finding an object that can implement the as clients are interfaced to the ORB by stubs.That is, request.The client does not have to be aware of where the skeletons are responsible for unmarshalling requests, object is located, what language it’s written in, or what OS passing the resulting arguments to the target object it uses. By intercepting these requests, ORBs can provide implementation and marshalling any results into interoperability between applications on different ma- GIOP reply messages. chines in heterogeneous distributed environments and can This description assumes that applications have seamlessly connect multiple object systems. their stubs and skeletons prelinked with their exe- In fielding typical client-server applications, developers cutables, which is the usual implementation provided use their own design or a recognized standard to define by most ORBs. There is, however, an alternative in the protocol to be used between devices. How they define the shape of dynamic invocation and dynamic skele- the protocol depends on the implementation language, ton interfaces. network transport, and a dozen other factors. ORBs sim- Dynamic interfaces are useful for applications such plify this process. With an ORB, the protocol is defined as browsers and databases in which it would be impos- through the application interfaces via a single implemen- sible to link all possible stub and skeleton classes stat- tation of a language-independent specification called the ically. The downside of this feature is that each Interface Definition Language (IDL). (See the sidebar “A invocation must be preceded by long and laborious Technical Look at CORBA in Action.”) sequences of code that are required to build the ORBs let you choose the most appropriate operating appropriate request. system, execution environment, and even language to use for each component under construction. And they allow September ❘ October 1999 IT Pro 23 DISTRIBUTED COMPUTING from the client and forwarding them Figure 1. OMG’s Object Management to the component in another process. Functionally and technologically, Architecture (OMA) reference model, in DCOM is similar to CORBA. For which CORBA figures prominently as example, both define an IDL and both ORB implementations. provide support services such as per- sistence,security,and transactions.But there are significant differences, the Application Domain Common foremost of which is that CORBA is an interfaces interfaces facilities open specification,while DCOM is not. Being a closed specification main- tained by only one company has one major advantage: DCOM has the ORB potential to evolve at a much faster rate than CORBA because there are no time-consuming politics involved in generating the next version of the Object services specification. But having many inter- ested parties working on CORBA Object services are domain-independent interfaces used by distrib- means it can be deployed far more uted-object applications. For example, a naming service would allow widely than DCOM. clients to find objects based on names. Currently, CORBA runs in most Application interfaces are developed specifically for a given applica- current OS environments, while tion. Because they are application-specific, and because OMG does not DCOM is deployed almost exclusively develop applications, these interfaces are not standardized. in the Windows environment. Fur- Domain interfaces play roles similar to object services and common thermore, porting DCOM to a wider facilities but are oriented toward specific application domains. One of range of environments is problematic the first domain interfaces was for the manufacturing industry. precisely due to the fact that there is Common
Recommended publications
  • System Integration in Web 2.0 Environment
    Masaryk university, Faculty of Informatics Ph.D. Thesis System Integration in Web 2.0 Environment Pavel Drášil Supervisor: doc. RNDr. Tomáš Pitner, Ph.D. January 2011 Brno, Czech Republic Except where indicated otherwise, this thesis is my own original work. Pavel Drášil Brno, January 2011 Acknowledgements There are many people who have influenced my life and the path I have chosen in it. They have all, in their own way, made this thesis and the work described herein possible. First of all, I have to thank my supervisor, assoc. prof. Tomáš Pitner. Anytime we met, I received not only a number of valuable advices, but also a great deal of enthusiasm, understanding, appreciation, support and trust. Further, I have to thank my colleague Tomáš Ludík for lots of fruitful discussions and constructive criticism during the last year. Without any doubt, this thesis would not come into existence without the love, unceasing support and patience of the people I hold deepest in my heart – my parents and my beloved girlfriend Míša. I am grateful to them more than I can express. Abstract During the last decade, Service-Oriented Architecture (SOA) concepts have matured into a prominent architectural style for enterprise application development and integration. At the same time, Web 2.0 became a predominant paradigm in the web environment. Even if the ideological, technological and business bases of the two are quite different, significant similarities can still be found. Especially in their view of services as basic building blocks and service composition as a way of creating complex applications. Inspired by this finding, this thesis aims to contribute to the state of the art in designing service-based systems by exploring the possibilities and potential of bridging the SOA and Web 2.0 worlds.
    [Show full text]
  • Distributed Objects in C
    Rochester Institute of Technology RIT Scholar Works Theses 2006 Distributed Objects in C# Xiaoyun Xie Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Xie, Xiaoyun, "Distributed Objects in C#" (2006). Thesis. Rochester Institute of Technology. Accessed from This Master's Project is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. Rochester Institute of Technology Department of Computer Science Master of Science Project Distributed Objects System in C# Submitted By: Xie, Xiaoyun (Sherry) Date: February 2004 Chairman: Dr. Axel T. Schreiner Reader: Dr. Hans-Peter Bischof Observer: Dr. James Heliotis 2 ABSTRACT Today more and more programs run over a collection of autonomous computers linked by a network and are designed to produce an integrated computing facility. Java Distributed Objects (JDO) proposed by Dr. Axel T. Schreiner [1] builds an infrastructure which allows distributed program components to communicate over a network in a transparent, reliable, efficient, and generic way. JDO was originally intended as a teaching device to assess design parameters for distributed objects. This project focuses on porting JDO, which is implemented in Java on Sun’s JDK, to C# on Microsoft’s .NET. On one hand, it builds an infrastructure in C# that simplifies the construction of distributed programs by hiding the distributed nature of remote objects. On the other hand, it generates insights into the differences between two platforms, namely, Java on Sun and C# on .NET, in the distributed objects area.
    [Show full text]
  • Reflective Remote Method Invocation
    Loyola University Chicago Loyola eCommons Computer Science: Faculty Publications and Other Works Faculty Publications 1998 Reflective Remote Method Invocation George K. Thiruvathukal Loyola University Chicago, [email protected] Lovely S. Thomas Andy T. Korczynski Follow this and additional works at: https://ecommons.luc.edu/cs_facpubs Part of the Programming Languages and Compilers Commons Recommended Citation G. Thiruvathukal, L. Thomas, and A. Korczynski, “Reflective Remote Method Invocation,” in ACM Java Grande, 1998. This Conference Proceeding is brought to you for free and open access by the Faculty Publications at Loyola eCommons. It has been accepted for inclusion in Computer Science: Faculty Publications and Other Works by an authorized administrator of Loyola eCommons. For more information, please contact [email protected]. This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License. Copyright © 1998 George K. Thiruvathukal, Lovely S. Thomas, and A. Korczynski Reflective Remote Method Invocation G. K. Thiruvathukal1 Tools of Computing LLC and Argonne National Laboratory Chicago, Illinois, U.S.A. L. S. Thomas2 Illinois Institute of Technology, Chicago, Illinois, U.S.A. A. T. Korczynski3 Illinois Institute of Technology, Chicago, Illinois, U.S.A. Abstract Remote Method Invocation (RMI) is available in the current Java language design and implementation, providing the much-needed capability of allowing objects running in different Java processes to collaborate using a variation on the popular Remote Procedure Call (RPC). Although RMI provides features which are desirable for high-performance distributed computing, its design and implementation are deficient in key areas of importance to the high-performance computing community in general.
    [Show full text]
  • Websphere Product Family: Overview and Architecture
    Front cover WebSphere Product Family Overview and Architecture Discover the WebSphere family Take an in-depth look at key products Compare capabilities Carla Sadtler Gennaro Cuomo John Ganci Marc Haberkorn Carol Jones Peter Kovari Kevin Griffith Dildar Marhas Rob Will ibm.com/redbooks International Technical Support Organization WebSphere Product Family Overview and Architecture February 2005 SG24-6963-02 Note: Before using this information and the product it supports, read the information in “Notices” on page xv. Third Edition (February 2005) This edition applies to the WebSphere family. © Copyright International Business Machines Corporation 2004, 2005. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . xv Trademarks . xvi Preface . xvii The team that wrote this redbook. xvii Become a published author . xix Comments welcome. xix Summary of changes . xxi February 2005, Third Edition . xxi Chapter 1. IBM WebSphere product overview . xxiii 1.1 WebSphere overview . xxiv 1.2 WebSphere family . xxv 1.3 IBM WebSphere Application Servers . xxvi 1.3.1 WebSphere Application Server V6 for distributed platforms . xxviii 1.3.2 WebSphere Application Server V5.1. xxxi 1.3.3 WebSphere Extended Deployment V5.1 . xxxiii 1.4 IBM software development platform . xxxv 1.4.1 Application development for WebSphere Application Server V6 . xxxvi 1.4.2 WebSphere Studio and Rational Developer . .xxxvii 1.5 IBM WebSphere Business Integration products . .xliii 1.5.1 Integration servers . xlv 1.5.2 Product overview. xlvi 1.5.3 WebSphere Business Integration Server Foundation . xlvi 1.5.4 WebSphere Business Integration Server .
    [Show full text]
  • Remote Procedure Call (RPC)
    Remote Procedure Call (RPC) RPC – RMI - Web Services 1 Complexity of the distributed applications . The programming of distributed applications is difficult. In addition to the usual tasks, programmers who build clients and servers must deal with the complex issues of communication. Although many of the needed functions are supplied by a standard API such as the socket interface, the socket calls require the programmer to specify many low level details as names ,addresses,protocols and ports. Moreover, asinchronous communications models are complex to implement. Distributed implementations tend to use the same standard API (e.g.,the socket interface). As a consequence most of the detailed code found in one program is replicated in others RPC – RMI - Web Services 2 . For example, all client programs that use a connection oriented transport must create a socket, specify the server’s endpoint address, open a connection to the server, send requests,receive responses and close the connection when interaction is complete. Tools (software that generates all or part of a computer program) have been created to construct clients and servers. Tools cannot eliminate all programming: a programmer must supply the code that perform the computation for the particular service. However, a tool can handle the communication details. As a result the code contains fever bugs. RPC – RMI - Web Services 3 . RPC = Remote Procedure Call . The basic model has been proposed by Birrell e Nelson in 1984. The essence of this technique is to allow programs on different machines to interact using simple procedure call/return semantics, just as if the two programs were in the same computer .
    [Show full text]
  • A Comparative Evaluation of .Net Remoting and JAVA RMI Taneem Ibrahim University of Arkansas, Fayetteville
    Inquiry: The University of Arkansas Undergraduate Research Journal Volume 5 Article 12 Fall 2004 A Comparative Evaluation of .net Remoting and JAVA RMI Taneem Ibrahim University of Arkansas, Fayetteville Follow this and additional works at: http://scholarworks.uark.edu/inquiry Part of the Computer and Systems Architecture Commons Recommended Citation Ibrahim, Taneem (2004) "A Comparative Evaluation of .net Remoting and JAVA RMI," Inquiry: The University of Arkansas Undergraduate Research Journal: Vol. 5 , Article 12. Available at: http://scholarworks.uark.edu/inquiry/vol5/iss1/12 This Article is brought to you for free and open access by ScholarWorks@UARK. It has been accepted for inclusion in Inquiry: The nivU ersity of Arkansas Undergraduate Research Journal by an authorized editor of ScholarWorks@UARK. For more information, please contact [email protected], [email protected]. Ibrahim: A Comparative Evaluation of .net Remoting and JAVA RMI 86 INQUIRY Volume 5 2004 A COMPARATIVE EVALUATION OF .NET REMOTING ANDJAVARMI By: Taneem Ibrahim Department of Computer Science and Computer Engineering Faculty Mentor: Dr. Amy Apon Department of Computer Science and Computer Engineering Abstract: Introduction: Distributed application technologies such as A distributed system is a collection of loosely coupled Micrososoft.NEJRemoting, and Java Remote Method Invocation processors interconnected by a communication network [8]. (RMI) have evolved over many years to keep up with the From tbe point view of a specific processor in a distributed constantly increasing requirements of the enterprise. In the system, the rest of the processors and their respective resources broadest sense, a distributed application is one in which the are remote, whereas its own resources are local.
    [Show full text]
  • Distributed Objects
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by UCL Discovery Distributed Objects Wolfgang Emmerich Neil Roodyn Dept. of Computer Science Cognitech Ltd University College London City Cloisters, 188-194 Old Street London WC1E 6BT,UK London EC1V 9FR, UK [email protected] [email protected] ABSTRACT be addressed. In addition, any distributed application must This tutorial motivates the need for, and discusses the prin- be tolerant of failures, such as temporarily unreachable com- ciples of object-oriented distribution middleware. We will ponents or network time-outs. Dealing with these issues at give an overview how these principles are supported by the the network operating system layer is overly complicated for major incarnations of object-oriented middleware, the Ob- an application engineer. ject Management Group’s Common Object Request Broker Distribution middleware is layered between network operat- Architecture (CORBA), Microsoft’s Distributed Component ing systems and distributed applications in order to bridge Object Model (DCOM) and Java’s Remote Method Invoca- this gap. Middleware provides the application designer with tion (RMI). We will discuss common design problems that a higher-level of abstraction. Middleware systems imple- occur when building applications using distributed objects ment this higher level of abstraction based on primitives that and present techniques for their solution. are provided by network operating systems. While doing so 1 INTRODUCTION they hide the complexity of using a network operating sys- In a number of domains, such as the financial and telecom- tem from application designers. The idea of middleware is munications sector, applications have to be adapted to evolv- not new.
    [Show full text]
  • Distributed Objects
    Introduction to Distributed Objects The idea of distributed objects is an extension of the concept of remote procedure calls. In a remote procedure call system (Sun RPC, DCE RPC, Java RMI), code is executed remotely via a remote procedure call. The unit of distribution is the procedure / function /method (used as synonyms). So the client has to import a client stub (either manually as in RPC or automatically as in RMI) to allow it to connect to the server offering the remote procedure. Object as Distribution Unit In a system for distributed objects, the unit of distribution is the object. That is, a client imports a ”something” (in Java’s JINI system, it’s called a proxy) which allows the client access to the remote object as if it were part of the original client program (as with RPC and RMI, sort of transparently). A client actually imports a Java class and this becomes part of the set of classes available on the client machine. So, for example, the client can define subclasses of this imported class, overload methods, etc. In addition, distributed object systems provide additional services, like a discovery service that allows clients to locate the objects they need, security services, reliability services, etc. Distributed object technologies: 1. DCOM (Distributed Common Object Model), developed by Microsoft, but also available on other platforms. Built on top of DCE’s RPC, interacts with COM. 2. CORBA (Common Object Request Broker Architecture), defined by the Object Management Group, an industry consortium. CORBA is available for most major operating systems 3. JINI (“Genie,” JINI is not initials — a joke; JINI actually doesn’t stand for anything.) JINI is developed on top of Java.
    [Show full text]
  • Lecture 38: Concurrent & Distributed Programming Message Passing
    Lecture 38: Concurrent & Distributed Programming CSC 131 Fall, 2006 Message Passing Ada Tasks • Must provide send and receive operations w/ message and receiver/sender. • Synchronous message passing • Synchronous or asynchronous? • Tasks have some features of monitors • If asynchronous then use !mailbox" to store • Exports entry names #w/ parameters$ • If synchronous then sender and receiver must • Entry names have FIFO queues !rendezvous" before either can proceed. task body Buffer is MaxBufferSize: constant INTEGER := 50; Store: array(1..MaxBufferSize) of CHARACTER; BufferStart: INTEGER := 1; Accepting an entry BufferEnd: INTEGER := 0; BufferSize: INTEGER := 0; begin loop select when BufferSize < MaxBufferSize => accept insert(ch: in CHARACTER) do Ca!er only blocked Store(BufferEnd) := ch; in accep " end insert; select BufferEnd := BufferEnd mod MaxBufferSize + 1; BufferSize := BufferSize + 1; [when <cond> =>] <select alternative> or when BufferSize > 0 => accept delete(ch: out CHARACTER) do {or [when <cond> =>] <select alternative>} ch := Store(BufferStart); end delete; [else <statements>] BufferStart := BufferStart mod MaxBufferSize + 1; BufferSize := BufferSize -1; or end select accept more (notEmpty: out BOOLEAN) do notEmpty := BufferSize > 0; end more; or terminate; end select; end loop end Buffer; task type Producer; task body Producer is Comparing Mechanisms ch: CHARACTER; begin loop TEXT_IO.GET(ch); • Shared memory concurrency Buffer.insert(ch); end loop; ' Semaphores very low level. end Producer; ' Monitors passive regions encapsulating resources to be shared #mutual exclusion$. Cooperation enforced task type Consumer; by wait and signal statements. task body Consumer is ch: CHARACTER; begin • Distributed Systems loop ' Everything active in Ada tasks #resources and Buffer.delete(ch); processes$ TEXT_IO.PUT(ch); end loop; ' Monitors and processes can easily be structured as end Consumer; Ada tasks and vice'versa.
    [Show full text]
  • Openstep and Solaris
    OpenStep and Solaris A White Paper A Sun Microsystems, Inc. Business 2550 Garcia Avenue Mountain View, CA 94043 TM U.S.A. 1994 Sun Microsystems, Inc., NeXT Computer, Inc. Sunsoft 2550 Garcia Avenue, Mountain View, California 94043-1100 U.S.A. NeXT Computer, Inc. 900 Chesapeake Drive, Redwood City, California 94063 U.S.A. NEXTSTEP Release 3 Copyright 1988-1994 NeXT Computer, Inc. All rights reserved. [6453.00] This product and related documentation are protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or related documentation may be reproduced in any form by any means without prior written authorization of NeXT, Sun and their licensors, if any. Portions of this product may be derived from the UNIX® and Berkeley 4.3 BSD systems, licensed from UNIX System Laboratories, Inc. and the University of California, respectively. Third-party font software in this product is protected by copyright and licensed from NeXT’s Font Suppliers. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the United States Government is subject to the restrictions set forth in DFARS 252.227-7013 (c)(1)(ii) and FAR 52.227-19. The product described in this publication may be protected by one or more U.S. patents, foreign patents, or pending applications. TRADEMARKS Sun, Sun Microsystems, the Sun logo, SMCC, the SMCC logo, SunSoft, the SunSoft logo, Solaris, SunOS, OpenWindows, DeskSet, ONC, NFS, NetISAM, and ToolTalk are trademarks or registered trademarks of Sun Microsystems, Inc. NeXT, the NeXT logo, NEXTSTEP, the NEXTSTEP logo, OpenStep, NEXTSTEP Developer, ObjectWare, Portable Distributed Objects, and PDO are trademarks or registered trademarks of NeXT Computer, Inc.
    [Show full text]
  • Distributed Object Based Systems
    Distributed Systems Distributed Object-Based Systems Björn Franke University of Edinburgh, 2015 OVERVIEW • Basic Concepts • Middleware Technologies • CORBA • DCOM • .NET Remote Procedure Calls/Windows Communication Foundation • Google gRPC BASIC CONCEPTS REMOTE PROCEDURE CALLS (RPC) BASIC CONCEPTS REMOTE PROCEDURE CALLS (RPC) BASIC CONCEPTS MARSHALLING/UNMARSHALLING MIDDLEWARE TECHNOLOGIES HIGH-LEVEL VIEW MIDDLEWARE TECHNOLOGIES SLIGHTLY MORE DETAIL • High-level abstractions & API • Heterogeneity Hidden • Transparent Distribution • General purpose services e.g. directory/naming CORBA COMMON OBJECT REQUEST BROKER ARCHITECTURE • Industry-defined standard for distributed objects • Enables collaboration between systems on different operating systems, programming languages, and computing hardware • Interface definition language (IDL) to specify object interfaces. CORBA then specifies a mapping from IDL to a specific implementation language. • Central: Object request brokers (ORBs) • Application initialises ORB, and accesses an internal Object Adapter, which maintains things like reference counting, object (and reference) instantiation policies, and object lifetime policies. • Object Adapter is used to register instances of the generated code classes (result of compiling the user IDL code, which translates interface definitions into an OS- and language-specific class base for use by the user application). CORBA GLOBAL ARCHITECTURE • The Object Request Broker (ORB) forms the core of any CORBA distributed system. • Horizontal facilities consist
    [Show full text]
  • Distributed Object Computing (DOC) Security: Paradigms and Strategies
    M P 9 8 B M I T R E P R O D U C T Distributed Object Computing (DOC) Security: Paradigms and Strategies November 1998 Deborah J. Bodeau Charles M. Schmidt Vipin Swarup F. Javier Thayer © 1998 The MITRE Corporation MITRE Center for Integrated Intelligence Systems Bedford, Massachusetts Table of Contents Section Page 1 Introduction 1 1.1 Object-Related Concepts and Terminology 1 1.2 Security Concerns 3 1.3 Interoperability Concerns 4 1.4 Frameworks for Understanding Distributed Object Computing and Security 5 2 Characterization and Comparison Strategies 7 2.1 Characterization Framework 7 2.2 Object-Related Concepts in Different DOC Paradigms 10 2.3 High-Level Comparison 13 3 CORBA 15 3.1 CORBA Motivation and Background 15 3.1.1 CORBA Object Model 16 3.1.2 Architectural Overview 16 3.1.3 Security Services in the Architecture 18 3.2 Technical Perspective on CORBA at the Conceptual Stratum 18 3.2.1 CORBA Object Model 20 3.3 Technical Perspective on CORBA at the Architectural Stratum 23 3.3.1 Security Domains in CORBA 23 3.3.2 The CORBA Threat-Mitigation Model 24 3.4 Characterizing CORBA-Compliant Architectures, Systems, and Products 25 3.4.1 Conceptual Stratum 25 3.4.2 Architectural Stratum 26 3.4.3 Implementation Stratum 27 4 COM, DCOM, and COM+ 28 4.1 COM Motivation and Background 28 4.1.1 Architectural Overview 29 4.1.2 Security Services in the Architecture 30 4.2 Technical Perspective on COM at the Conceptual Stratum 30 4.3 Technical Perspective on COM at the Architectural Stratum 31 4.3.1 Security Services 32 4.3.2 Processing Overview
    [Show full text]