Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
DISTRIBUTED COMPUTING MIDDLEWARE Chapter 11 Distributed Computing Systems Distributed Computing Systems Overview • Distributed Computing Middleware • Distributed Computing Environment (DCE) • Common Object Request Broker Architecture (CORBA) • Java and Remote Method Invocation (RMI) • Metacomputing – middleware for high-performance distributed computing • Research projects around the world • Nexus • Globus • WWW technologies for DHPC What is Middleware? • Various meanings, but generally a higher-level software layer that provides a standardised interface to a collection of distributed, disparate, proprietary, non-standardised programs, services, etc. • Developers write applications that interface to the middleware, rather than multiple lower-level interfaces. • Software “glue” to join together different parts of an application. • Connectivity software for distributed systems, abstracting over differences in lower-level layers such as network protocols and operating systems. • Used to specifically enable distributed computing across different platforms. • Enhances portability and functionality, but often at the expense of performance. Examples of Middleware • Database connectivity products - e.g. ODBC, Java’sdatabase connectivity API (JDBC). • Remote computation products - e.g. remote procedurecall (RPC) and Java Remote Method Invocation (RMI). • Message-oriented middleware - e.g. messaging systemssuch as Isis and Horus are more robust and fault-tolerantpackages than raw MPI or PVM, targeted more at distributed computing rather than parallel computing. • Distributed Computing Environment (DCE) products. • Object Request Brokers - e.g. CORBA. • Microsoft’s COM and ActiveX. • Java Jini. • The World Wide Web is probably the most widely used middleware system - defines a standard high-level message-passing protocol (HTTP), a mechanism for addressing remote files from any computer (URL), a mechanism for invoking remote procedure calls (CGI), and data formatting standards (HTML and XML). • Web browsers are becoming a standard interface foraccessing and viewing documents (using plug-ins or external viewers). IDC Report on Middleware International Data Corporation Report (HPCWire, Sept. 97) • Middleware - future of distributed business applications; • Spares business applications developers from each network technologies idiosyncrasies. • Total (middleware) markets US$5.275 billion by 2001 (416% growth). • Distributed programs talk to middleware not network. • Middleware markets: – desktop access; – data access (largest market area through 2001); – remote procedure call; – message oriented (growing, due to application integration needs); – distributed transaction processing; – object (fastest growth). • Middleware consumption highest in multiuser Unix OS environments. • Internet is key factor. • Need for two way scalability. • Renewed respect for legacy systems. • Application integration requirements. • Household name vendor impact (IBM, Microsoft, Sun, Oracle, BEA Systems, TIBCO, Sybase and Intersolv) DH PC Distributed Computing Systems Technical Issues for a DHPC Middleware • Latencies over long distances. • Remote access/invocation - action at a distance. • Exploit legacy (and high-performance) compute platforms. • Integrate storage with compute (large timely data sets). • Put high bandwidth where it can make a difference. • Services approach - high granularity to alleviate overheads and latencies. • Port or build new codes, or use wrappers? • How to “glue” together legacy applications? • What do you build glue from? - Java and CORBA. Distributed Computing Environment The Distributed Computing Environment (DCE) is a software system developed in the early 1990s by a consortium that included Apollo Computer (later part of Hewlett-Packard), IBM, Digital Equipment Corporation, and others. The DCE supplies a framework and toolkit for developing client/server applications. The framework includes a remote procedure call (RPC) mechanism known as DCE/RPC, a naming (directory) service, a time service, an authentication service and a distributed file system (DFS) known as DCE/DFS. • DCE has multiple components integrated to work closely together: – Remote Procedure Call (RPC); – Cell and Global Directory Services (CDS and GDS); – Security Service; – DCE Threads; – Distributed Time Service (DTS); – Distributed File Service (DFS) - Optional. • DCE is distributed computing “middleware” or “enabling technology” • not intended to exist alone • should be integrated or bundled into a vendor’s operating system • DCE security and distributed filesystem can completely replace vendor’s non-network analogs. • O’Reilly books - Understanding DCE by Rosenberry etal. • http://www.opengroup.org/tech/dce/ • DCE developed out of Kerberos research project • Produced by Open Software Foundation - group of companies • cell concept - manageable local set of resources – trusted and local • servers and services concepts - service replication • intra cell services - standalone unit • inter cell services for wide areas and across trust boundaries • RPC and interface definition layers (see RPCs) and application programming interface • good functionality but products tend to be cumbersome, and slow • has limitations, some products not fully defined/implemented • DCE and specific DCE products (e.g. security service) still used but most distributed computing applications are now being developed using CORBA and Java • A lot of ideas in CORBA are based on DCE, but with an O-O flavour CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together, i.e. it supports multiple platforms. - CORBA is a mechanism in software for normalizing the method-call semantics between application objects that reside either in the same address space (application) or remote address space (same host, or remote host on a network). - Version 1.0 was released in October 1991. - CORBA uses an interface definition language (IDL) to specify the interfaces that objects will present to the outside world. - CORBA then specifies a “mapping” from IDL to a specific implementation language like C++ or Java. - Standard mappings exist for Ada, C, C++, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I and Python. - There are also non-standard mappings for Perl, Visual Basic, Erlang, and Tcl implemented by object request brokers (ORBs) written for those languages. CORBA vs RMI - Advantages Advantages of Java and RMI: • Java is a true Object-Oriented language. • Portability. • Can use CORBA with Java, but easier to do distributed computing in Java using RMI. • Don’t need an ORB on client and server (but Netscape browser and JDK 1.2 now come with built-in ORBs). • Java is free, commercial ORBs are not (but some good free ORBs are now available for non-commercial use). • Lots of momentum behind Java. Advantages of CORBA: • Easy invocation of objects in different languages, very useful for integration of legacy systems (main reason for development of CORBA) – Java requires wrappers and native method invocation or system exec calls. • Easy to extend for new languages and well specified. • Different ORBs can communicate. • IDL provides nice abstraction layer over operations. • Many useful services such as Trading Service, Security Service, etc. • Open standard developed by international consortium. DHPC CORBA and Java RMI CORBA vs RMI - Disadvantages Disadvantages of Java: • Implementation is still immature, specification is continually evolving. • Still limited mainstream acceptance (but perhaps growing faster than CORBA?). • Limited number of services, but these are being developed (e.g. security API, Java Jini for trader services, etc). • Portability between different JVMs (esp Sun vs Microsoft) may be a problem. • Performance can be slow. Disadvantages of CORBA: • Implementations are still immature and continually evolving. • Still limited mainstream acceptance. • Many ORBs do not provide full functionality (of services and interfaces) of the CORBA 2.0 specification. • Interoperability between different ORB implementations can be a problem - code written for one ORB may need modification for use with another ORB. • Performance can be slow. CORBA and Java RMI Java and CORBA • Efforts in new versions of Java and CORBA to make the two more compatible. • idl2java compilers provide CORBA stubs and skeletons for Java programs. • Some ORBs are now written in Java. • Java 1.2 provides RMI over IIOP and a very basic ORB from Sun. • CORBA and RMI target different applications: – CORBA is aimed at for glueing together legacy applications that can be written in many different languages. – Java RMI is aimed at applications written mainly in Java. • A white paper on “Java, RMI and CORBA” by David Curtis compares and contrasts Java RMI and CORBA: http://www.omg.org/news/wpjava.htm