|
|
1.1 ! root 1: % -*- LaTeX -*- (really SLiTeX) ! 2: ! 3: \begin{bwslide} ! 4: \part {DYNAMIC FACILITIES}\bf ! 5: ! 6: \begin{nrtc} ! 7: \item RUN-TIME ENVIRONMENT ! 8: ! 9: \item BOILERPLATE FOR INITIATORS ! 10: ! 11: \item BOILERPLATE FOR RESPONDERS ! 12: ! 13: \item DEFINING A NEW SERVICE ! 14: \end{nrtc} ! 15: \end{bwslide} ! 16: ! 17: ! 18: \begin{note}\em ! 19: this part of the presentation corresponds to part~iv along with section~3.1 ! 20: of The Applications Cookbook ! 21: \end{note} ! 22: ! 23: ! 24: \begin{bwslide} ! 25: \ctitle {DYNAMIC FACILITIES\\ OVERVIEW} ! 26: ! 27: \vskip.15in ! 28: \diagram[p]{figure10} ! 29: \end{bwslide} ! 30: ! 31: ! 32: \begin{bwslide} ! 33: \part* {RUN-TIME ENVIRONMENT}\bf ! 34: ! 35: \begin{nrtc} ! 36: \item RUN-TIME ENVIRONMENT RESPONSIBLE FOR ``CIVILIZING'' REMOTE OPERATIONS ! 37: SERVICE ! 38: ! 39: \item IMPORTANT TRADE-OFF: ! 40: \begin{nrtc} ! 41: \item FLEXIBILITY FOR SIMPLICITY ! 42: \end{nrtc} ! 43: ! 44: \item IN \emph{THE COOKBOOK}, \verb"ROSYLIB" IMPLEMENTS THE RUN-TIME ! 45: ENVIRONMENT ! 46: \end{nrtc} ! 47: \end{bwslide} ! 48: ! 49: ! 50: \begin{bwslide} ! 51: \ctitle {DATA STRUCTURES} ! 52: ! 53: \begin{nrtc} ! 54: \item RECALL THAT ROSY GENERATES TABLES IN ADDITION TO STUBS ! 55: ! 56: \item FOR EACH OPERATION, A TABLE IS DEFINED CONTAINING: ! 57: \begin{nrtc} ! 58: \item NAME AND NUMBER OF OPERATION ! 59: ! 60: \item ARGUMENT ENCODE/DECODE ROUTINES ! 61: ! 62: \item RESULT ENCODE/DECODE/FREE ROUTINES ! 63: ! 64: \item ERROR TABLE ! 65: \end{nrtc} ! 66: \end{nrtc}\small ! 67: ! 68: \begin{verbatim} ! 69: ... ! 70: ! 71: /* OPERATION m-ConfirmedEventReport */ ! 72: "m-ConfirmedEventReport", operation_CMIP_m__ConfirmedEventReport, ! 73: encode_CMIP_m__ConfirmedEventReport_argument, ! 74: decode_CMIP_m__ConfirmedEventReport_argument, ! 75: 1, encode_CMIP_m__ConfirmedEventReport_result, ! 76: decode_CMIP_m__ConfirmedEventReport_result, ! 77: free_CMIP_m__ConfirmedEventReport_result, ! 78: errors_CMIP_m__ConfirmedEventReport, ! 79: ! 80: ... ! 81: \end{verbatim} ! 82: \end{bwslide} ! 83: ! 84: ! 85: \begin{bwslide} ! 86: \ctitle {DATA STRUCTURES (cont.)} ! 87: ! 88: \begin{nrtc} ! 89: \item FOR EACH ERROR, A TABLE IS DEFINED CONTAINING: ! 90: \begin{nrtc} ! 91: \item NAME AND NUMBER OF ERROR ! 92: ! 93: \item PARAMETER ENCODE/DECODE/FREE ROUTINES ! 94: \end{nrtc} ! 95: \end{nrtc}\small ! 96: ! 97: \begin{verbatim} ! 98: ... ! 99: ! 100: /* ERROR noSuchObject */ ! 101: "noSuchObject", error_CMIP_noSuchObject, ! 102: encode_CMIP_noSuchObject_parameter, ! 103: decode_CMIP_noSuchObject_parameter, ! 104: free_CMIP_noSuchObject_parameter, ! 105: ! 106: ... ! 107: \end{verbatim} ! 108: \end{bwslide} ! 109: ! 110: ! 111: \begin{bwslide} ! 112: \ctitle {A TABLE-DRIVEN APPROACH} ! 113: ! 114: \begin{nrtc} ! 115: \item RUN-TIME ENVIRONMENT SHOULD BE GENERALIZED TO WORK WITH THE LARGEST ! 116: POSSIBLE SET OF APPLICATIONS USING REMOTE OPERATIONS ! 117: ! 118: \item A TABLE-DRIVEN APPROACH PERMITS US TO DECOUPLE OPERATION-SPECIFIC ! 119: INFORMATION ! 120: \begin{nrtc} ! 121: \item WHAT ARGUMENTS REPRESENTED, HOW THEY ARE ENCODED, etc. ! 122: \end{nrtc} ! 123: FROM OPERATION-GENERIC INFORMATION ! 124: \begin{nrtc} ! 125: \item THE OPERATION TAKES ARGUMENTS WHICH MUST BE ENCODED, etc. ! 126: \end{nrtc} ! 127: \end{nrtc} ! 128: \end{bwslide} ! 129: ! 130: ! 131: \begin{bwslide} ! 132: \ctitle {STUBS REVISITED} ! 133: ! 134: \begin{nrtc} ! 135: \item STUBS DEFINED BY ROSY CALL EITHER THE \verb"RyOperation" OR THE ! 136: \verb"RyStub" ROUTINE ! 137: ! 138: \item THE \verb"RyOperation" ROUTINE IMPLEMENTS A ``POLICY'' ! 139: \begin{nrtc} ! 140: \item OPERATION CLASS: SYNCHRONOUS ! 141: ! 142: \item INVOCATION IDENTIFIER: UNIQUE NUMBER ! 143: ! 144: \item LINKED-INVOCATION ID: NONE ! 145: ! 146: \item PRIORITY: NONE ! 147: \end{nrtc} ! 148: ! 149: \item THE \verb"RyStub" ROUTINE IMPLEMENTS A LESS RESTRICTIVE POLICY: ! 150: \begin{nrtc} ! 151: \item USER SELECTS OPERATION CLASS AND INVOCATION IDENTIFIER ! 152: \end{nrtc} ! 153: \end{nrtc} ! 154: \end{bwslide} ! 155: ! 156: ! 157: \begin{bwslide} ! 158: \ctitle {ASYNCHRONOUS STUBS} ! 159: ! 160: \begin{nrtc} ! 161: \item RECALL ! 162: {\small ! 163: \begin{verbatim} ! 164: #define stub_CMIP_m__ConfirmedEventReport(sd,id,in,rfx,efx,class,roi) \ ! 165: RyStub ((sd), table_CMIP_Operations, \ ! 166: operation_CMIP_m__ConfirmedEventReport, (id), \ ! 167: (caddr_t) (in), (rfx), (efx), (class), (roi)) ! 168: \end{verbatim}} ! 169: ! 170: \item THE MEANING OF THE PARAMETERS: ! 171: \begin{nrtc} ! 172: \item \verb"sd": ASSOCIATION-DESCRIPTOR ! 173: ! 174: \item \verb"id": INVOCATION IDENTIFIER ! 175: ! 176: \item \verb"in": ARGUMENT FOR OPERATION ! 177: ! 178: \item \verb"rfx": DISPATCH ROUTINE FOR RESULT ! 179: ! 180: \item \verb"efx": DISPATCH ROUTINE FOR ERRORS OR REJECTIONS ! 181: ! 182: \item \verb"class": (A)SYNCHRONOUS ! 183: ! 184: \item \verb"roi": LOCAL SERVICE INTERFACE INFORMATION ! 185: \end{nrtc} ! 186: \end{nrtc} ! 187: \end{bwslide} ! 188: ! 189: ! 190: \begin{bwslide} ! 191: \ctitle {INSIDE RYSTUB} ! 192: ! 193: \begin{nrtc} ! 194: \item RUDIMENTARY PARAMETER CHECK ! 195: ! 196: \item BUILD PRESENTATION ELEMENT FOR ARGUMENT ! 197: ! 198: \item BUILD \emph{ACTIVATION BLOCK} ! 199: ! 200: \item ISSUE RO-INVOKE.REQUEST ! 201: ! 202: \item IF ASYNCHRONOUS, RETURN ! 203: ! 204: \item LOOP, WAITING FOR ANY RESPONSE: ! 205: \begin{nrtc} ! 206: \item RO-INVOKE.INDICATION: ! 207: \begin{nrtc} ! 208: \item PUSH ACTIVATION BLOCK FOR DISPATCHING OPERATION ! 209: \end{nrtc} ! 210: ! 211: \item RO-RESULT, ERROR, OR REJECTION.INDICATION: ! 212: \begin{nrtc} ! 213: \item PARSE OPERATION RESULT OR ERROR PARAMETER AND CALL DISPATCH ! 214: ROUTINE ! 215: \begin{verbatim} ! 216: result = (*fnx) (sd, id, reason, value, roi); ! 217: \end{verbatim} ! 218: ! 219: \item IF RESPONSE WAS FOR US, RETURN ! 220: \end{nrtc} ! 221: \end{nrtc} ! 222: \end{nrtc} ! 223: \end{bwslide} ! 224: ! 225: ! 226: \begin{bwslide} ! 227: \ctitle {SYNCHRONOUS STUBS} ! 228: ! 229: \begin{nrtc} ! 230: \item RECALL ! 231: \begin{verbatim} ! 232: #define op_CMIP_m__ConfirmedEventReport(sd,in,out,rsp,roi) \ ! 233: RyOperation ((sd), table_CMIP_Operations, \ ! 234: operation_CMIP_m__ConfirmedEventReport, \ ! 235: (caddr_t) (in), (out), (rsp), (roi)) ! 236: \end{verbatim} ! 237: ! 238: \item THE MEANING OF THE PARAMETERS: ! 239: \begin{nrtc} ! 240: \item \verb"sd": ASSOCIATION-DESCRIPTOR ! 241: ! 242: \item \verb"in": ARGUMENT FOR OPERATION ! 243: ! 244: \item \verb"out": RESULT FOR OPERATION OR PARAMETER FOR ERROR ! 245: ! 246: \item \verb"rsp": TELLS HOW TO INTERPRET \verb"out" ! 247: ! 248: \item \verb"roi": REJECTION INFORMATION FOR OPERATION ! 249: \end{nrtc} ! 250: \end{nrtc} ! 251: \end{bwslide} ! 252: ! 253: ! 254: \begin{bwslide} ! 255: \ctitle {INSIDE RYOPERATION} ! 256: ! 257: \begin{nrtc} ! 258: \item RUDIMENTARY PARAMETER CHECK ! 259: ! 260: \item BUILD PRESENTATION ELEMENT FOR ARGUMENT ! 261: ! 262: \item BUILD \emph{ACTIVATION BLOCK} ! 263: ! 264: \item ISSUE RO-INVOKE.REQUEST ! 265: ! 266: \item LOOP, WAITING FOR SOME RESPONSE: ! 267: \begin{nrtc} ! 268: \item RO-INVOKE.INDICATION: ! 269: \begin{nrtc} ! 270: \item PUSH ACTIVATION BLOCK FOR DISPATCHING OPERATION ! 271: \end{nrtc} ! 272: ! 273: \item RO-RESULT, ERROR, OR REJECTION.INDICATION: ! 274: \begin{nrtc} ! 275: \item IF FOR US: PARSE OPERATION RESULT OR ERROR PARAMETER AND RETURN ! 276: ! 277: \item IF NOT FOR US: STUFF INFORMATION INTO CORRESPONDING ACTIVATION ! 278: BLOCK ! 279: \end{nrtc} ! 280: \end{nrtc} ! 281: \end{nrtc} ! 282: \end{bwslide} ! 283: ! 284: ! 285: \begin{bwslide} ! 286: \ctitle {RESPONDERS} ! 287: ! 288: \begin{nrtc} ! 289: \item REGISTER A DISPATCH ROUTINE FOR EACH OPERATION USING \verb"RyDispatch" ! 290: \begin{verbatim} ! 291: RyDispatch (sd, ryo, op, fnx, roi) ! 292: \end{verbatim} ! 293: ! 294: \item THE MEANING OF THE PARAMETERS: ! 295: \begin{nrtc} ! 296: \item \verb"sd": ASSOCIATION-DESCRIPTOR ! 297: ! 298: \item \verb"ryo": OPERATION TABLE ! 299: ! 300: \item \verb"op": OPERATION NUMBER ! 301: ! 302: \item \verb"fnx": DISPATCH ROUTINE ! 303: ! 304: \item \verb"roi": FAILURE INDICATOR ! 305: \end{nrtc} ! 306: \end{nrtc} ! 307: \end{bwslide} ! 308: ! 309: ! 310: \begin{bwslide} ! 311: \ctitle {OPERATION DISPATCH} ! 312: ! 313: \begin{nrtc} ! 314: \item WHILE WAITING FOR ``SOMETHING TO HAPPEN'', A RO-INVOKE.INDICATION ! 315: CAUSES AN ACTIVATION BLOCK TO BE PUSHED ! 316: ! 317: \item THE PRESENTATION ELEMENT FOR THE ARGUMENT IS PARSED INTO A STRUCTURE ! 318: AND THE DISPATCH ROUTINE IS CALLED: ! 319: \begin{verbatim} ! 320: result = (*fnx) (sd, ryo, rox, in, roi) ! 321: \end{verbatim} ! 322: ! 323: \item DISPATCH ROUTINE HAS THREE OPTIONS ! 324: \begin{nrtc} ! 325: \item \verb"RyDsResult": TO RETURN A RESULT ! 326: ! 327: \item \verb"RyDsError": TO RETURN AN ERROR ! 328: ! 329: \item \verb"RyDsUReject": TO REJECT AN OPERATION ! 330: \end{nrtc} ! 331: \end{nrtc} ! 332: \end{bwslide} ! 333: ! 334: ! 335: \begin{bwslide} ! 336: \ctitle {CLEAN-UP} ! 337: ! 338: \begin{nrtc} ! 339: \item WHEN AN ASSOCIATION IS ABORTED (e.g., DUE TO NETWORK FAILURE), ! 340: SOMETHING MUST BE DONE WITH ACTIVATION BLOCKS ! 341: ! 342: \item IDEALLY, WOULD LIKE TO: ! 343: \begin{nrtc} ! 344: \item RETAIN THIS STATE, ! 345: ! 346: \item RE-ESTABLISH THE ASSOCIATION, AND ! 347: ! 348: \item CONTINUE WHERE WE LEFT OFF ! 349: \end{nrtc} ! 350: ! 351: \item NO SUCH LUCK, ACTIVATION BLOCKS ARE FLUSHED! ! 352: \begin{nrtc} ! 353: \item A LOT OF HARD ISSUES NEED TO BE RESOLVED IN ORDER TO DO THE ! 354: ``RIGHT THING'' ! 355: ! 356: \item ACTUALLY, FOR ASYNCHRONOUS INVOCATIONS, A REJECTION IS ! 357: PASSED UP ! 358: \end{nrtc} ! 359: \end{nrtc} ! 360: \end{bwslide} ! 361: ! 362: ! 363: \begin{bwslide} ! 364: \part* {BOILERPLATE FOR INITIATORS}\bf ! 365: ! 366: \begin{nrtc} ! 367: \item THE PROBLEM WITH BOILERPLATE IS THAT IT'S BORING ! 368: ! 369: \item SO, WE'LL CONSIDER ONLY THE HIGHLIGHTS ! 370: \end{nrtc} ! 371: \end{bwslide} ! 372: ! 373: ! 374: \begin{bwslide} ! 375: \ctitle {INVOKING AN OPERATION} ! 376: ! 377: \begin{nrtc} ! 378: \item ALTHOUGH \emph{THE COOKBOOK} TRIED TO MAKE THINGS SIMPLE, ! 379: CALLING A STUB IS NOT EASY ! 380: \end{nrtc} ! 381: \end{bwslide} ! 382: ! 383: ! 384: \begin{bwslide} ! 385: \ctitle {ASYNCHRONOUS INVOCATION}\small ! 386: ! 387: \hrule\vskip.15in ! 388: \begin{tgrind} ! 389: \let\linebox=\relax ! 390: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 391: \input figure21\relax ! 392: \end{tgrind} ! 393: \end{bwslide} ! 394: ! 395: ! 396: \begin{bwslide} ! 397: \ctitle {ASYNCHRONOUS INVOCATION (cont.)}\small ! 398: ! 399: \hrule\vskip.15in ! 400: \begin{tgrind} ! 401: \let\linebox=\relax ! 402: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 403: \input figure32\relax ! 404: \end{tgrind} ! 405: \end{bwslide} ! 406: ! 407: ! 408: \begin{bwslide} ! 409: \ctitle {ASYNCHRONOUS INVOCATION (cont.)}\small ! 410: ! 411: \hrule\vskip.15in ! 412: \begin{tgrind} ! 413: \let\linebox=\relax ! 414: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 415: \input figure22\relax ! 416: \end{tgrind} ! 417: \end{bwslide} ! 418: ! 419: ! 420: \begin{bwslide} ! 421: \ctitle {ASYNCHRONOUS INVOCATION (cont.)}\small ! 422: ! 423: \hrule\vskip.15in ! 424: \begin{tgrind} ! 425: \let\linebox=\relax ! 426: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 427: \input figure31\relax ! 428: \end{tgrind} ! 429: \end{bwslide} ! 430: ! 431: ! 432: \begin{bwslide} ! 433: \ctitle {ASYNCHRONOUS INVOCATION (cont.)}\small ! 434: ! 435: \hrule\vskip.15in ! 436: \begin{tgrind} ! 437: \let\linebox=\relax ! 438: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 439: \input figure33\relax ! 440: \end{tgrind} ! 441: \end{bwslide} ! 442: ! 443: ! 444: \begin{bwslide} ! 445: \ctitle {SIMPLIFIED ASYNCHRONOUS INVOCATION}\small ! 446: ! 447: \hrule\vskip.15in ! 448: \begin{tgrind} ! 449: \let\linebox=\relax ! 450: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 451: \input figure34\relax ! 452: \end{tgrind} ! 453: \end{bwslide} ! 454: ! 455: ! 456: \begin{bwslide} ! 457: \ctitle {SYNCHRONOUS INVOCATION}\small ! 458: ! 459: \hrule\vskip.15in ! 460: \begin{tgrind} ! 461: \let\linebox=\relax ! 462: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 463: \input figure15\relax ! 464: \end{tgrind} ! 465: \end{bwslide} ! 466: ! 467: ! 468: \begin{bwslide} ! 469: \ctitle {SYNCHRONOUS INVOCATION (cont.)}\small ! 470: ! 471: \hrule\vskip.15in ! 472: \begin{tgrind} ! 473: \let\linebox=\relax ! 474: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 475: \input figure16\relax ! 476: \end{tgrind} ! 477: \end{bwslide} ! 478: ! 479: ! 480: \begin{bwslide} ! 481: \ctitle {SYNCHRONOUS INVOCATION (cont.)}\small ! 482: ! 483: \hrule\vskip.15in ! 484: \begin{tgrind} ! 485: \let\linebox=\relax ! 486: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 487: \input figure17\relax ! 488: \end{tgrind} ! 489: \end{bwslide} ! 490: ! 491: ! 492: \begin{bwslide} ! 493: \part* {BOILERPLATE FOR RESPONDERS}\bf ! 494: ! 495: \begin{nrtc} ! 496: \item THE PROBLEM WITH BOILERPLATE IS THAT IT'S BORING ! 497: ! 498: \item SO, WE'LL CONSIDER ONLY THE HIGHLIGHTS ! 499: \end{nrtc} ! 500: \end{bwslide} ! 501: ! 502: ! 503: \begin{bwslide} ! 504: \ctitle {RESPONDING TO AN OPERATION} ! 505: ! 506: \begin{nrtc} ! 507: \item WHEN AN ACTIVATION BLOCK IS PUSHED, ! 508: THE DISPATCH ROUTINE IS CALLED ! 509: \end{nrtc} ! 510: \end{bwslide} ! 511: ! 512: ! 513: \begin{bwslide} ! 514: \ctitle {RESPONDING TO AN OPERATION (cont.)}\small ! 515: ! 516: \hrule\vskip.15in ! 517: \begin{tgrind} ! 518: \let\linebox=\relax ! 519: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 520: \input figure18\relax ! 521: \end{tgrind} ! 522: \end{bwslide} ! 523: ! 524: ! 525: \begin{bwslide} ! 526: \ctitle {RESPONDING TO AN OPERATION (cont.)}\small ! 527: ! 528: \hrule\vskip.15in ! 529: \begin{tgrind} ! 530: \let\linebox=\relax ! 531: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 532: \input figure19\relax ! 533: \end{tgrind} ! 534: \end{bwslide} ! 535: ! 536: ! 537: \begin{bwslide} ! 538: \ctitle {RESPONDING TO AN OPERATION (cont.)}\small ! 539: ! 540: \hrule\vskip.15in ! 541: \begin{tgrind} ! 542: \let\linebox=\relax ! 543: \def\_{\ifstring{\char'137}\else\underline{\ }\fi} ! 544: \input figure20\relax ! 545: \end{tgrind} ! 546: \end{bwslide} ! 547: ! 548: ! 549: \begin{bwslide} ! 550: \part* {DEFINING A NEW SERVICE}\bf ! 551: ! 552: \begin{nrtc} ! 553: \item FINALLY, NEED TO IDENTIFY THE APPLICATION TO THE NETWORK ! 554: ! 555: \item THINGS TO BE DEFINED: ! 556: \begin{nrtc} ! 557: \item ABSTRACT SYNTAX ! 558: ! 559: \item APPLICATION CONTEXT NAME ! 560: ! 561: \item APPLICATION ENTITY TITLE ! 562: ! 563: \item PRESENTATION ADDRESS ! 564: ! 565: \item LOCAL PROGRAM ! 566: \end{nrtc} ! 567: \end{nrtc} ! 568: \end{bwslide} ! 569: ! 570: ! 571: \begin{bwslide} ! 572: \ctitle {ABSTRACT SYNTAX} ! 573: ! 574: \begin{nrtc} ! 575: \item DESCRIBES THE DATA STRUCTURES BEING EXCHANGED BY THE SERVICE ! 576: ! 577: \item DEFINED IN THE \verb"isobjects(5)" FILE: ! 578: \begin{verbatim} ! 579: "ips-osi-mips cmip pci" 1.0.9596.2.1.1 ! 580: \end{verbatim} ! 581: \end{nrtc} ! 582: \end{bwslide} ! 583: ! 584: ! 585: \begin{bwslide} ! 586: \ctitle {APPLICATION CONTEXT NAME} ! 587: ! 588: \begin{nrtc} ! 589: \item DESCRIBES THE ELEMENTS AND PROTOCOL BEING USED BY THE SERVICE ! 590: ! 591: \item DEFINED IN THE \verb"isobjects(5)" FILE: ! 592: \begin{verbatim} ! 593: "iso cmip" 1.0.9596.2.2.1 ! 594: \end{verbatim} ! 595: \end{nrtc} ! 596: \end{bwslide} ! 597: ! 598: ! 599: \begin{bwslide} ! 600: \ctitle {NAMES AND ADDRESSES} ! 601: ! 602: \begin{nrtc} ! 603: \item APPLICATION ENTITY TITLE UNIQUELY NAMES AN ENTITY IN THE NETWORK ! 604: ! 605: \item PRESENTATION ADDRESS LOCATES AN ENTITY IN THE NETWORK ! 606: ! 607: \item DEFINED IN THE \verb"isoentities(5)" FILE: ! 608: \begin{verbatim} ! 609: gonzo-noc mgmtinfobase 1.17.4.1.9 "" "" #519 ! 610: NS 49000002608c456561fe04 ! 611: X.25 23422233939909 ! 612: \end{verbatim} ! 613: ! 614: \item USED BY INITIATORS AND STATIC RESPONDERS (MULTIPLE ASSOCIATION) ! 615: \end{nrtc} ! 616: \end{bwslide} ! 617: ! 618: ! 619: \begin{bwslide} ! 620: \ctitle {LOCAL PROGRAM} ! 621: ! 622: \begin{nrtc} ! 623: \item IDENTIFIES THE PROGRAM ON THE LOCAL SYSTEM WHICH IMPLEMENTS THE SERVICE ! 624: ! 625: \item DEFINED IN THE \verb"isoservices(5)" FILE: ! 626: \begin{verbatim} ! 627: "tsap/cmip" #519 /usr/etc/ros.cmip args... ! 628: \end{verbatim} ! 629: ! 630: \item USED BY LISTENER TO FIND DYNAMIC RESPONDERS (SINGLE ASSOCIATION) ! 631: \end{nrtc} ! 632: \end{bwslide} ! 633: ! 634: ! 635: \begin{bwslide} ! 636: \ctitle {DYNAMIC FACILITIES:\\ REVIEW} ! 637: ! 638: \vskip.15in ! 639: \diagram[p]{figure10} ! 640: \end{bwslide}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.