Distributed Computing Environment (DCE) Introduction • Originally developed by Open Software Foundation (OSF), which is now called The Open Group (www.opengroup.org) • Provides a set of tools and services which simplify and support the development and operation of distributed applications • an example of “middleware” • a layer of software that sits on top of the host operating system (e.g., UNIX) and networking services, and provides a single, transparent distributed computing environment • based on the Client/Server Model Why Use DCE? • Harnesses available computing resources • Increases availability • Facilitates collaborative work and minimizes storage limitations • Tracks data and programs that move around • Accommodates heterogeneous data • Helps maintain distributed applications • Helps synchronize events • Protects distributed resources DCE Services DCE RPC • the fundamental communications mechanism • allows direct calls to procedures on remote systems as if they were local procedure calls • simplifies the development of distributed applications by eliminating the need to explicitly program the network communications between the client and server • masks differences in data representations on different hardware platforms, allowing distributed programs to work transparently across heterogeneous systems Directory Services • DCE Cell Directory Service (CDS) is the mechanism for logically naming objects within a DCE cell (a group of client and server machines) • Applications identify resources by name, without needing to know where the resources are located • DCE cells can also participate in a worldwide directory service using the DCE Global Directory (GDS), which is based on the X.500 standard, or the Internet-system Domain Name Service (DNS) Security Service • DCE Security Service provides the mechanisms for writing applications that support secure communications between clients and servers • enables processes on different machines to be certain of one another’s identities (authentication) • allows a server to determine whether a given user is authorized to access a particular resource (authorization) • supports several protection levels for messages as they travel across the network Distrusted File Service • DCE Distributed File Service (DFS) is a highperformance, scalable, secure method for sharing remote files • DFS appears to the user as a local file systems, providing access to files form anywhere in the network for any user, with the same filename used by all (uniform file access) • DFS includes many advanced features not found in traditional distributed file systems, including caching, security, and scalability over wide-area networks Distributed Time Service • Provides a way to synchronize the clocks on the different machines in a distributed system Threads • DCE supports multi-threaded applications • i.e., programs that use “lightweight” processes to perform many actions concurrently • DCE Threads are based on the POSIX threading standard A Distributed Application using DCE APIs DCE Cells The Domain of the Distributed Environment • DCE can provide scalable computing environment - Small environment * two network hosts * typically consists of a single group of users who share common goals - large environment * a network (or internetworks) of thousands of hosts * typically consists of a diverse groups of users, each group having its own goals and pool of shared resources • a cell is the basic unit of operation and administration • a cell is a group of users, hosts, and resources that share common DCE services Cell Configurations • at a minimum, a cell includes CDS, Security Service and Time Service Distributed Operation in a DCE Cell DCE Client and Server Software A Simple DCE Cell Cell with DFS and Multiple DCE Clients Cells and Naming • The DCE Directory Service consists of two directory services: CDS & GDS • CDS manages names inside cells • GDS manages names outside cells and between cells • GDS is an implementation of a directory standard known as X.500 Directory Service (XDS) • Domain Name Service (DNS) - another widely used existing global name service - used primarily as a name service for Internet host names • although DNS is not a part of DCE, support for cells to address each other through DNS is provided • Global Directory Agent (GDA) makes inter-cell communication possible • DCE naming environment supports two kinds of names: Global and Local (cell-relative) names • Global Names - begins with the … prefix - can refer to an object within a cell or an object outside of a cell • Example 1 - uses X.500 name for global cell name • Example 2 - uses DNS name for global cell name • Local Names - do not include a global cell name - begins with the /.: prefix • Example: /…/C=US/O=XYZ/OU=Portland/subsys/PriceMax/price_server1 /.:/subsys/PriceMax/price_server 1 are equivalent when used within the cell named /…/C=US/O=XYZ/OU=Portland Junctions • some services connect into the cell by means of specialized CDS entries called “junctions” • contain binding information that enables a client to connect to a server outside the Directory Service (e.g., Security Service, DFS) • Example 1 - Security Service Junction(/.:/sec) • Example 2 - DFS Junction (/.:/fs) DCE RPC • Enhanced version of the HP’s NCS (Network Computing System) RPC • DCE threads allow increased concurrency in servers and clients • supports TCP and UDP transport services • authenticated RPC supported Interface Definition Language • the service interfaces are defined by DCE IDL • a universal unique identifier (UUID) in the interface distinguishes this interface form any other interface • UUIDs are generated by uuidgen Distributed Application Development Tasks Binding • DCE client (runtime library) finds a server using a twostep process 1. The client gets the server’s host address from the CDS 2. The client finds the server process address by searching the host’s endpoint map (which is maintained by RPC daemon, rpcd) • Basic server initialization steps: 1. Register each interface with the server runtime library 2. Register protocol sequences that the server will use for RPCs 3. Advertise the server location to clients 4. Listen for remote procedure calls Advertising Server Interface Finding a Server More on DCE • More information on DCE can be found from The Open Group (http://www.opengroup.org/dce) • Free DCE software can be downloaded from (http://www.opengroup.org/dce/download/)