Distributed Computing Environment (DCE)

advertisement
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/)
Download