Dce rpc


Published on

Published in: Education, Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Dce rpc

  1. 1. DCE Prepared by Pratosh Kumar
  2. 2. DCE ( Distributed Computing Environment ) <ul><li>Introduction of DCE </li></ul><ul><li>Goals </li></ul><ul><li>Services </li></ul><ul><li>Writing a Client & a Server </li></ul><ul><li>Binding a Client to a Server </li></ul><ul><li>Performing an RPC </li></ul>
  3. 3. What is DCE ? <ul><li>It is defined by the open software foundation (OSF). </li></ul><ul><li>which is now called The Open Group (www.opengroup.org) </li></ul><ul><li>It is an architecture, a set of standard service, and </li></ul><ul><li>application programs, built on top of the existing </li></ul><ul><li>operating system which hides the differences among </li></ul><ul><li>individual computers. </li></ul><ul><li>used to support the development and usage of </li></ul><ul><li>distributed applications in a single distributed system. </li></ul><ul><li>It use client/server model. </li></ul>
  4. 4. Goals of DCE <ul><li>can run on many different computers, operating </li></ul><ul><li>systems (Unix, Os/2, VMS,windows) and networks in a </li></ul><ul><li>distributed system, Provide a coherent seamless </li></ul><ul><li>platform for running distributed applications. </li></ul><ul><li>Provide a mechanism for synchronizing clocks on </li></ul><ul><li>different machines. </li></ul>
  5. 5. Goals contd…. <ul><li>Provide tools to make it easier to write distributed </li></ul><ul><li>applications in which multiple users at multiple </li></ul><ul><li>locations can work together. </li></ul><ul><li>Provide extensive tools for authentication and access </li></ul><ul><li>protection </li></ul>
  6. 6. Distributed services provided by the DCE <ul><li>Distrusted File Service </li></ul><ul><li>Thread services </li></ul><ul><li>RPC </li></ul><ul><li>Time service </li></ul><ul><li>Directory services </li></ul><ul><li>Security service </li></ul>
  7. 7. DCE Services
  8. 8. <ul><li>Distrusted File Service </li></ul><ul><li>DCE Distributed File Service (DFS) is a high-performance, scalable, secure method for sharing remote files </li></ul><ul><li>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) </li></ul><ul><li>DFS includes many advanced features not found in traditional distributed file systems, including caching, security, and scalability over wide-area networks </li></ul>
  9. 9. <ul><li>Thread Service </li></ul><ul><li>DCE supports multi-threaded applications </li></ul><ul><li>i.e., programs that use “lightweight” processes to perform many actions concurrently </li></ul><ul><li>DCE Threads are based on the POSIX threading standard </li></ul>
  10. 10. <ul><li>DCE RPC </li></ul><ul><li>DCE is based on the client/server model. RPC package of DCE allows a client process to call a procedure on a remote computer. It allows application programmer to extend the local procedure call to a distributed environment. The application programmer doesn’t have to be concerned with the detail of the network communications between client and server nodes. </li></ul><ul><li>RPC hides communication detail and removes system and hardware dependencies. It can automatically handle data type conversions between the client and the server without considering whether they run on the same or different architecture, or have same or different byte ordering. </li></ul>
  11. 11. <ul><li>Time Service </li></ul><ul><li>It enables distributed applications on different computers to determine event sequencing, duration, and scheduling. </li></ul><ul><li>Keeps clocks on separate computers participating in a distributed system synchronization. </li></ul><ul><li>It uses universal coordinated time(UTC) to synchronize DCE host’s time. </li></ul>
  12. 12. <ul><li>Directory Service </li></ul><ul><li>Provide up-to-date addressing information by keeping track of where all resources (user, machine, file, server…) are located. So users can identify these resources by names and gain access to them without needing to know where they are located </li></ul><ul><li>It’s distributed service--- the information that forms database is stored in different places. </li></ul><ul><li>A replicated service: the information is replicated and stored in more than one location which make it more readily available </li></ul>
  13. 13. <ul><li>Security Service </li></ul><ul><li>Controls interactions between clients and servers. It allows client and servers to authenticate each other and perform authenticated RPC. </li></ul><ul><li>Controls access to resources by authorization </li></ul><ul><li>supports several protection levels for messages as they travel across the network </li></ul>
  14. 14. Interface Definition File <ul><li>Interface definition:- contract between client and its server, specifying the services that server offers of client. </li></ul><ul><li>Interface definition file:- representation on contract </li></ul><ul><li>Each interface has its unique (location, time of creation ) identifier that is stored in IDL file. </li></ul>
  15. 15. Interface Definition Language <ul><li>Lets a program or object written in one language communicate with another program written in an unknown language. </li></ul><ul><li>An IDL works by requiring that a program’s interfaces be described in stub or slight extension of the program that is compiled into it. The stub in each program are used by a broker program to allow them to communicate. </li></ul><ul><li>IDL file Also contains type definition, constant declaration and other info required to correctly marshal parameters and unmarshal results. </li></ul><ul><li>IDL file contains identifier that uniquely identifies the interface </li></ul>
  16. 16. Uuidgen Interface definition file IDL Compiler Client stub object file Server stub Server Code Header Client stub Server stub object file C Compiler C Compiler C Compiler Client Code C Compiler Server object file Client object file Linker Runtime Library Runtime Library Linker Client binary Server binary #include #include Writing a Client & a Server
  17. 17. Directory Server 1. Register Endpoint Binding Client & Server 2. Register Service 3. Look up Server 4. Ask for Endpoint 5. Do RPC Client Machine Directory Machine Client Server Endpoint Table
  18. 18. Performing an RPC Client Machine Server Machine Client process Server process Client OS Server OS K=add(i,j) K=add(i,j) 3.Message is sent across network 1.Client call to procedure 2. Stub builds message 4. Server OS hands msg to server stub 5. Stub unpacks msg 6.Stub makes local call to add Client stub Server stub proc: “add” int: val(i) int: val(j) proc: “add” int: val(i) int: val(j) proc: “add” int: val(i) int: val(j)
  19. 19. Thanks Pratosh Kumar By