home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.23 / text0020.txt < prev    next >
Encoding:
Text File  |  1991-06-15  |  13.7 KB  |  279 lines

  1. Submitted-by: pc@hillside.co.uk (Peter Collinson)
  2.  
  3. An Update on UNIX-Related Standards Activities
  4.  
  5. P1003.17 - Name Space/Directory Services (plus 1224/1224.1 Object Management)
  6.  
  7. USENIX Standards Watchdog Committee
  8. Jeffrey S. Haemer <jsh@usenix.org>, Report Editor
  9.  
  10.  
  11. March 26, 1991
  12.  
  13. [Editor's note: ``Object'' and ``objection'' have the same root word.
  14. What follows are three distinct viewpoints on TCOS's object-management
  15. activities.  The first is Mark Hazzard's overview of 1003.17, The
  16. second is Scott Guthery's critique of the object management work,
  17. currently being jointly done by 1003.17 and 1224, the third is Enzo
  18. Signore's rebuttal of Scott's position.  After you read them, you
  19. might want to let the committees, know how you feel, either directly,
  20. or through Peter Collinson, the new Usenix Institutional
  21. Representative.]
  22.  
  23. Mark Hazzard <markh@rsvl.unisys.com> reports on the January 7-11, 1991
  24. meeting in New Orleans, LA:
  25.  
  26. Introduction
  27.  
  28. New Orleans was busy for the P1003.17 - Name Space/Directory Services
  29. group.  It was our first meeting as an ``official'' POSIX ``dot''
  30. working group, and seemed to build on the momentum gained in the
  31. previous meeting.  A good turnout from the old ``core'' group, coupled
  32. with the infusion of ``new blood'' from the x/Open base-document
  33. development team, seemed to provide the right chemistry for some
  34. dynamic interchange and good solid progress.
  35.  
  36. As I stated last time, our group is currently in the process of
  37. ``POSIXizing'' XDS.  This means reworking XDS to conform to POSIX
  38. style, content, and format requirements.  Much of this is busy-work,
  39. that falls largely on the shoulders of our (overworked) Technical
  40. Editor.  A first cut at the new format will be included with the first
  41. mailings.  It can be best characterized as a ``very preliminary
  42. pre-draft,'' and is intended to be a baseline from which a working
  43. draft can be built.
  44.  
  45. Language Independent Specification
  46.  
  47. A good deal of time was spent on LIS issues, both in our working
  48. sessions and in the joint working sessions with P1224 on common Object
  49. Management API issues.  We were able to produce complete LISs for
  50. several functions and their data types, by building on the homework
  51. done by group members between meeting cycles.  Readers may want to
  52. review the complicated discussion from last time on how and why two
  53. specifications, XOM (Object Management) and XDS (Directory Services),
  54. are required to form a single API to directory services.  XOM is also
  55. used by the API to X.400.
  56.  
  57. Test Assertions
  58.  
  59. Several group members had a bunch of fun finding out how to write test
  60. assertions for the C-language binding of our API.  We even got together
  61. with some P1224 folks, and worked on TAs for OM.  We managed to write a
  62. few assertions and uncover some issues along the way.  We also agreed
  63. to use identical conventions in .17 and P1224.  During the process, we
  64. discovered that writing TAs is not an well-understood art, and what
  65. everyone seems to be doing is looking at what everyone else is doing.
  66.  
  67. Where do TAs go?  They could be included with the function
  68. specification (possibly less work) or lumped together into a separate
  69. chapter or annex (possibly more work).  We've opted for the lump.  The
  70. rationale for this seemingly irrational decision is documentation page
  71. count ($$$).  We figured that the only people who really care about
  72. test assertions (besides us standards types) are vendors, test suite
  73. writers, certification labs, and a few LARGE customers, like the U.S.
  74. Government Everyone else (users) just wants to buy documentation on a
  75. certified API.  We wanted to make it really easy for the IEEE to print
  76. ``with'' and ``without'' versions of the standard.
  77.  
  78. Object Management
  79.  
  80. ``Object'' and ``management'' are two intensely overloaded words.  Used
  81. together, the two can instill fear in even the most seasoned hack.
  82. While conjuring up a name to put on the Project Authorization Request
  83. (PAR) for our common OM API, the combined talent of the .17 and 1224
  84. groups decided that the best defense was a good offense and selected
  85. what may be the most offensive project title in the history of IEEE
  86. PARdom: ``Standard for Common ASN.1 Object Management API for X.400 and
  87. Directory Services APIs.'' If approved, it should get a number like
  88. P1224.1 or something like that.
  89.  
  90. Flush with success, the group decided to tackle the Scope section of the
  91. PAR, which probably constitutes its only real ``meat.'' After
  92. considerable debate the group came up with these three sentences:
  93.  
  94.      The standard will define an ASN.1 Object Management (OM)
  95.      Application Program Interface (API) for use with, but otherwise
  96.      independent of, the X.400 and Directory Service (DS) API's, which
  97.      are currently being standardized.  An application must be able to
  98.      link and use multiple implementations of this API.  This standard
  99.      will provide language independent specification and ``C'' language
  100.      bindings.
  101.  
  102. The words did not come without a little pain.  The base document (XOM)
  103. was produced with specific targets in mind, namely the ASN.1-encoded
  104. objects and attributes defined in the XDS and X.400 specifications.  It
  105. defines an API for manipulation of those objects across the API, but
  106. doesn't define the objects themselves.  The object definitions are
  107. provided in the ``primary'' standard (either XDS or X.400) in a set of
  108. ASN.1 constructs called a ``package.''
  109.  
  110. In an accompanying article, Scott Guthery, a group member from the user
  111. community, expresses concern that there is no mechanism in the base
  112. document for extending existing objects or adding new ones.  This is
  113. because the object definitions are well-defined within the context of
  114. their API (package) and have been hard-wired into the object manager.
  115.  
  116. Vendors can provide value added to extensions their products, but users
  117. cannot.  Further, a user who purchases a product from one vendor that
  118. uses a (non-standard) extended package will have no guarantee that it
  119. will work with an object manager from another vendor.  With the ability
  120. to modify or create new packages in a standardized way, these problems
  121. could be avoided.
  122.  
  123. Counter-arguments primarily addressed practical limitations to the
  124. scope, and the technical infeasibility of dynamically altering packages
  125. (which are really protocols).  See Enzo Signore's accompanying article
  126. for a brief summary.  The ability to extend an object package is not
  127. required for basic interoperability or portability for XDS or X.400 APIs
  128. as currently specified.  A general-purpose, user-extensible object
  129. management facility may be useful, but might be technically infeasible
  130. (or at least very difficult).  It would almost certainly delay
  131. acceptance of APIs that depended on it.
  132.  
  133. Getting back to the PAR.  The group agreed that the words in the scope
  134. addressed the immediate issue of getting an OM specification out so that
  135. P1003.17 and P1224 could continue.  At the same time, the scope doesn't
  136. shut the door on a more general-purpose object manager, if it's deemed
  137. necessary and do-able.
  138.  
  139. I expect this will get sorted out after our next meeting in Chicago, but
  140. if this continues to be an area of high controversy, you'll see the
  141. topic resurface in my future reports.
  142.  
  143. In any case, the OM PAR was blessed by the Distributed Services Steering
  144. Committee and was forwarded to the TCOS SEC for further scrutiny.
  145.  
  146. Summary
  147.  
  148. So, that's a peek at what's going on in P1003.17.  We can expect more of
  149. the same next time.  We'll review our progress on LIS, probably do more
  150. test assertions, and generally begin to add some flesh to the document
  151. skeleton.  We plan to meet with P1224 for a day to continue our co-
  152. development effort on common API to object management.  Maybe we'll see
  153. you in Chicago.
  154.  
  155. ------------------------------------------------------
  156. Scott Guthery <guthery@asc.slb.com> reports on the January 7-11, 1991
  157. meeting in New Orleans, LA:
  158.  
  159. Here Come the Objects
  160.  
  161. X.400 (P1224) and Directory Services (P1003.17) have as their base
  162. documents X/Open documents, which in turn share an X/Open Object
  163. Management specification.  At the just-concluded New Orleans POSIX
  164. meeting a Project Authorization Request (PAR) for a POSIX Object
  165. Management standard was formulated.  Here is the scope of the PAR:
  166.  
  167.      The standard will define an ASN.1 Object Management (OM)
  168.      Application Program Interface (API) for use in conjunction with but
  169.      otherwise independent of the X.400 and Directory Service (DS)
  170.      API's, which are currently being standardized.  An application must
  171.      be able to link and use multiple implementations of this API.  This
  172.      standard will provide language independent specification and ``C''
  173.      language bindings.
  174.  
  175. ``What does that mean?'' you may ask yourself.  Based on discussions
  176. during the formation of this PAR this is my understanding:
  177.  
  178. The first sentence means that object classes will be hard-wired into the
  179. OM and that the object managers being considered will only instantiate
  180. X.400 and DS classes.  Further, only vendors of standard-conforming
  181. software will be able to add classes to the OM; there will be no
  182. provision on the standard interface for doing so.  Finally, an OM will
  183. manage only instances of classes (objects) that are hard-wired into
  184. itself.  Not surprisingly, this requires the second sentence.
  185.  
  186. The second sentence means that while the vendors are willing to agree on
  187. the interface they are not prepared to agree on standards for objects
  188. themselves (even though they are all ASN.1-based).  That is, vendor A's
  189. objects cannot be managed by vendor B's object manager and vice-versa.
  190. Objects themselves, as manipulated by the object manager, are to be
  191. proprietary.  This is primarily because many of the vendors have already
  192. written object management software and the software that uses it, and
  193. are primarily interested in formulating a standard to which they can,
  194. after-the-fact, claim conformance.
  195.  
  196. The third sentence is boilerplate.
  197.  
  198. A couple of things bother me about this agenda.  First, I don't like to
  199. see classes of users - privileged vendors who can define new classes
  200. vs.  unwashed end-users who can only use what they're given (or, more
  201. properly what they buy) - institutionalized in a standard.
  202.  
  203. Second, and really more bothersome because I suspect the first one will
  204. work itself out naturally, is the ``requirement'' for multiple,
  205. concurrently executing but not interoperating standard-conforming
  206. subsystems.  My belief is that we should talk this one out carefully,
  207. make darn sure we all know exactly what we are talking about, insure we
  208. are talking about the same thing and convince ourselves it's something
  209. we want to enshrine in a standard (whew).
  210.  
  211. Isn't one purpose of a standard interoperation?  If interoperation is
  212. left as an impedance-matching exercise for the user is there really a
  213. useful standard in play at all even if the user can use a single
  214. interface on which to do the required impedance-matching?  Might the
  215. jaundiced eye view this as a truck-sized hole through which vendors can
  216. drive claims to standard-compliance while exhibiting little-to-no
  217. effective standard-conformance behavior?
  218.  
  219. ``Link and use multiple implementations'' isn't good enough.  Indeed,
  220. it's a bad idea.  To me, it's analogous to a hardware standard (like
  221. RS232) specifying little more than that implementations "use blue
  222. wires." I have to string a different set of blue wire for each vendor
  223. whose devices I purchase.  And, what's worse, it's up to me to somehow
  224. get the information off one vendor's wires and onto another vendor's
  225. wires if I want the two vendors' devices to cooperate.  The standard
  226. says something like ``You get the information out at the end, which
  227. shall have 1/2 inch of bare wire.'' Frankly, being able to buy blue
  228. wire in bulk is little consolation for the trouble that I have to go
  229. to to make the whole mess work.
  230.  
  231. Of course, what I'm being invited to do is buy devices from only one
  232. vendor, which is, I suspect, exactly what the vendors had in mind when
  233. they put that ``requirement'' in the PAR.  As an historical note, the
  234. second sentence originally started off ``Users require that ...'' until
  235. one of the few users around the table pointed out that single-source
  236. and vendor lock-in was not high on his list of requirements at all and
  237. expressed surprise that the standards process was or could be used to
  238. encourage it.
  239.  
  240. As they say in Norway, there's owls in the bushes.
  241.  
  242. ---------------------------------------------------------------------
  243.  
  244. Enzo Signore <enzo@retix.retix.com> reports on the January 7-11, 1991
  245. meeting in New Orleans, LA:
  246.  
  247. Scott Guthery doesn't like the proposed 1003.17/1224 approach to Object
  248. Management.  I do.  Here's a summary of why I think Scott's objections
  249. miss the mark.
  250.  
  251. Since a package is another way of representing a protocol (a set of
  252. ASN.1 productions) the addition of another package to the API or the
  253. addition of new classes to the provided API implies defining extensions
  254. to the protocol.  Aside from the feasibility of doing so, it would
  255. require the underlying service to be able to interpret the additional
  256. ASN.1 properly and to be able to encode and decode it.  Unfortunately,
  257. it is not possible to do so in an implementation-independent way, since
  258. the OM representation of an object, even though it follows the ASN.1
  259. skeleton, does not allow the service to generate a unique ASN.1
  260. production.  Said in different words, even if the client application
  261. defines a new object class with some attributes (lets say of primitive
  262. types - booleans, integers, etc.) the sole object table does not allow
  263. the service to generate ASN.1, since all the context-specific tags and
  264. the notion of SEQ vs SET are missing.
  265.  
  266. Therefore, designing such a new interface will:
  267.  
  268.   1.  prove wrong when the protocol cannot be extended
  269.  
  270.   2.  be excessively complex to define because of OM design
  271.  
  272.   3.  require overly sophisticated machinery in the service to be able
  273.       to deal with generic and extensible object definitions.
  274.  
  275.  
  276.  
  277. Volume-Number: Volume 23, Number 21
  278.  
  279.