home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / Updates / 17.mm next >
Text File  |  1991-03-27  |  15KB  |  392 lines

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