home *** CD-ROM | disk | FTP | other *** search
/ Network Support Encyclopedia 96-1 / novell-nsepro-1996-1-cd2.iso / download / netware / dax1.exe / DOC / OUTLINE.DOC < prev   
Text File  |  1992-02-23  |  10KB  |  275 lines

  1.  
  2.  
  3.                         Distributed Application Design
  4.                              Last Update: 02/23/92
  5.  
  6. Agenda
  7.     Distributed processing architectures
  8.         The various levels of distributed processing architectures
  9.         from one extreme to the other
  10.     Distributed application design
  11.         Discussion of components of distribution applications
  12.     Prototyping with RPC
  13.         Overview of determining what part of your application to distribute.
  14.     Distributed Application Example
  15.         NetCalc - Client Server network calculator
  16.         NetDebug
  17.             Dynamically patch the application NLM.
  18.             Ultimately read .MAP files and be intelligent about symbols
  19.             Initial
  20.                 Dump memory
  21.                 Modify memory
  22.             v2 - Execute console command
  23.             v2 - Set breakpoints on conditions? thresholds
  24.  
  25. Distributed Processing Architectures
  26.     Disk Service
  27.         The most distributed approach.
  28.         WS does all processing including dir and file struct mgmt
  29.         Physical disk is only centralized component.
  30.     File Service
  31.         Next most distributed approach.
  32.         Server machine does dir and file struct mgmt.
  33.         WS interprets and manages data within files
  34.     Record Mgmt Service
  35.         Small record retrieval appl runs in file server
  36.         WS perform all processing that relates to interpreting appl and data
  37.     Database/Schema Service approach
  38.         Higher levels of database functionality on the server
  39.         NetWare SQL is an example of this approach.
  40.         Application that uses these higher level db functions run on WS
  41.     Centralized Application with Distributed Presentation
  42.         Next most centralized approach.
  43.         Server performs everything except presentation of data
  44.         WS is intelligent screen and data entry point
  45.     Centralized Application and Presentation
  46.         The most centralized approach.
  47.         WS runs in "terminal emulation" mode
  48.         Server does everything except physical IO to screen and keyboard
  49.  
  50.     The models we'll be discussing
  51.         File Service
  52.         Record Management Service
  53.         Database/Schema Service
  54.  
  55. Determining Performance Guidelines
  56.     Centralized vs. Distributed
  57.         Distributed has additional overhead of
  58.             maintaining communication protocol
  59.             request/reply packets
  60.             moving packets over wire
  61.             synchronization
  62.         Distributed can provide parallel processing
  63.             Creating multiple reports simultaneously
  64.  
  65.  
  66. Determining what to distribute
  67.     ?
  68.  
  69.  
  70. More work can be done by multiple machines
  71.     File service model centralizes only file mgmt & rec sync
  72.     Central component usually is bottleneck, so dist as much as 
  73.     possible increases aggregate processing capability
  74.  
  75. External synchronization
  76.     Distributed apps require multiuser synchronization
  77.     Server apps can do this internally with less overhead
  78.  
  79. Application Software Efficiency
  80.     Applications can be efficient or inefficient in searching for data
  81.     IO Efficient apps generally work better being fully distributed
  82.  
  83. Add additional server
  84.     Fully distributed appls are more divisible than server-based ones
  85.     IOW, files can be distributed among several file servers if
  86.     server becomes a bottleneck.
  87.  
  88. Optimizing server application
  89.     Server app can be optimized in ways dist apps cannot.
  90.     Server is only processor modifying data.
  91.         Can use internal caching algorithms
  92.         Can maintain hashing tables in RAM to speed up searching
  93.          PT. both dist and central can use hash tables in files (index)
  94.  
  95. Less communication with server application
  96.     Server apps utilize comm channel significantly less that dist appl
  97.     Server apps communicate only high-level db requests and replies
  98.     OTOH, dist apps have to transfer more records AWA do rec sync.
  99.  
  100. Faster data access with server application
  101.     Server appl is closer to the data (within same box), thus can 
  102.     retrieve data with less overhead than remote WS.
  103.  
  104. Host environment & server application
  105.     Appl SW that resides in the server interacts with its host OS
  106.     OS efficiency in servicing disk IO requests affect server appl effic.
  107.     Other host related OS factors
  108.         Processor time that is available to server appl
  109.         Efficiency with which OS provides other svcs such as communication
  110.         The more it does, means fewer cycles for server appl
  111.  
  112. THESE AFFECT both file server and server-based implementations include:
  113.  
  114. Communication Bandwidth
  115.     Speed w/which client WS can receive requests and responses affects perf.
  116.     Communication speed factors include service protocols and LAN HW speeds
  117.     The more distributed, the greater the demand on the comm channel
  118.  
  119. Communication Protocol efficiency
  120.     Different protocols can vary widely in terms of efficiency
  121.     Plus processor time required to maintain the protocol.
  122.  
  123. Compute vs. IO Ratio
  124.     In general, Appl functions that are compute intensive should be dist
  125.     Server should perform functions that are IO intensive
  126.         PT. Compare the processor cycles required to do the request vs.
  127.             the processor cycles required to send that data to the
  128.             workstation to perform the request
  129.  
  130. Impact on security
  131.     Server based apps generally more secure since security is 
  132.     administered away from the workstations.
  133.     If only file level security is needed, however, file server can
  134.     provide that, so both methods are just as secure as one another.
  135.  
  136. Functionality factors
  137.     File, record mgmt and db/schema implementations look and feel the same.
  138.     Fully dist app might need too much WS memory, whereas the server-based
  139.     appl can reduce the RAM requirements on the WS.
  140.  
  141. We've just looked at issues dealing with 3 different distributed appl
  142. designs.  Now lets look at the components involved in creating a 
  143. distributed application.
  144.  
  145. Designing a distributed application
  146.     Components
  147.         Client application
  148.         Server application
  149.         Client/server protocol
  150.             The agreed upon message exchange format between the client/server
  151.         Communication protocols
  152.             IPX/SPX, TLI, NetBIOS
  153.         Communication media
  154.  
  155. Client/Server Protocol
  156.     Online protocol
  157.         Service connection approach
  158.             WS requests connection, then makes requests, then terminates
  159.         Open service approach
  160.             WS just sends request to a server for processing w/o 
  161.             previously requesting permission for service
  162.  
  163.     Batch protocol
  164.         Queue Management Service
  165.  
  166. Client/Server Protocol 2
  167.     Layout of components for online protocol approach
  168.     Client makes DAP request.
  169.     Client DAP passes message to CP layer for network transmission
  170.     Client CP layer passes to CM
  171.     Server CM layer receives and routes to CP
  172.     Server CP Layer passes to DAP Layer
  173.     Server DAP Layer passes to server application
  174.  
  175. Client/Server Protocol 3
  176.     Layout of components for batch protocol approach
  177.     Client using NetWare QMS APIs creates a queue job
  178.     Either a server-based server appl or remote job server appl
  179.     services the request at some point in the future.
  180.  
  181. Service Advertising and Locating
  182.     Distributed application needs a way to locate the components
  183.     i.e. how does client appl find server appl?
  184.     SAP API can be used
  185.     Bindery can be used (QMS does this)
  186.  
  187. Now, to actually writing a distributed application
  188.  
  189. Prototyping with RPC
  190.     Overview of caller/called procedure
  191.  
  192. Prototyping with RPC 2
  193.     Discuss the way RPC works
  194.         >> Fill this in... spec file, blah blah blah
  195.  
  196. Distributed Application Example
  197.     Network Calculator Utility
  198.         Uses service connection approach
  199.         Built on IPX
  200.         Fully modular
  201.             DOS Library of CP Layer and DAP Layer
  202.             DAP Layer client/server single source
  203.             Server split in to separate NLMs, CP NLM and DAP NLM
  204.         NLM Engine
  205.         DOS Client
  206.  
  207. Distributed Application Example 2
  208.     NLM Server
  209.         Server application built right in to DAP Layer
  210.         Communication Protocol Layer is a separate NLM
  211.             >> Should be a library NLM
  212.     DOS Client
  213.         Communication protocol and DAP APIs in separate library
  214.         Client provides presentation and data entry
  215.  
  216. Distributed Application Example 3
  217.     Server application does the session management (DAP Layer)
  218.     Receives new reqeusts from clients (CP Layer)
  219.     Application engine resides in server
  220.  
  221. Distributed Application Example 4
  222.     Client/Server Protocol
  223.         Allocate Session
  224.         DeAllocate Session
  225.         Add, Subtract, Multiple and DivideOperands
  226.         Store Value
  227.         Recall Value
  228.         Reset Calculator
  229.  
  230. Distributed Application Example 5
  231.     Request format
  232.         Sequence Number
  233.         Connection Number
  234.         Request Code
  235.         Request Data
  236.     Reply format
  237.         Sequence Number
  238.         Return Code
  239.         Return Data
  240.  
  241. Distributed Application Example 6
  242.     DAP Engine
  243.         CP Layer calls enqueue request
  244.         Enqueue request places new request in DAP recv queue
  245.         DAP Recv Service thread determines DAP type and executes service API.
  246.         Service API calls enqueue reply
  247.         Enqueue reply places reply in DAP send queue
  248.         DAP Send Service thread calls CP API to send reply
  249.  
  250. Distributed Application Example 7
  251.     Communication Protocol Engine
  252.         IPX queues message to Comm recv thread
  253.         Comm receive thread calls enqueue request
  254.         Send service thread calls Send reply API
  255.         Send reply API gives message to IPX for delivery
  256.  
  257. Distributed Application Example 8
  258.     Overall flow
  259.         Client calls DAP API
  260.         DAP API calls CP API to send request
  261.         CP API calls IPX to deliver message
  262.         IPX delivers message to recv queue
  263.         CP passes request to DAP
  264.         DAP calls service request
  265.         Service Request does work then calls DAP send
  266.         DAP send calls CP API to send reply
  267.         CP API calls IPX to deliver reply
  268.  
  269. Related Topics
  270.  
  271. Summary
  272.     Architectures
  273.     Design
  274.     Prototyping
  275.