340 likes | 483 Views
Rationale Overview For 20944 Series. Frank Farance, Farance Inc. frank@farance.com +1 212 486 4700. Overview. What is a “Rationale”? Why create one? Who uses them? Rationale for 20944 series: Prototypical Uses (use cases for interoperability) Implementation Variants (variety control)
E N D
Rationale Overview For 20944 Series Frank Farance, Farance Inc. frank@farance.com +1 212 486 4700 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
What is a Rationale? • Explanations of: • questions: issues raised during development • decisions: import development decisions • design: methods/modules implied • historical data: inputs that influenced process • Example: see C rationale • http://www.dkuug.dk/jtc1/sc22/wg14 • click on “Rationale” (third bullet) 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Why Create A Rationale? • Important for standards work: • Participants come and go over the years • Reduces learning curve for new participants • Can refresh memories of “old-timers” :-) • Helps avoid unnecessarily revisiting issues • Helps build user communities by answering questions that aren’t obvious to outsiders • Can help document future issues • Outside of standards work: • Also used in software development, typically called “design rationale” 20944 Rationale Overview, F. Farance
Who Uses Rationales? • Important for large projects • Positive example: ISO C prog. language: • Few defect reports / request for interpretation • Large acceptance, broad interoperability • Negative example: ISO C++ prog. language • Appox. 700 defects (most are interdependent) • Lack of interoperability, lack of adoption • Google with >6000 hits: rationale “iso standard” 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Rationale for 20944 Series • The 20944 series “road map”: 29 parts • Overall the approach is a “building blocks” approach, with the following highlights: • Why create a single monolithic standard? • Let users pick and choose what they want • Why create extra implementation burden? • Structure allows implementers to create only what they need • Describe what to implement, not how • Supports wide range of implementations: from simple (low cost) to complex (high performance) 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Prototypical Uses of 20944 • Examples of using 20944: • Extracting value domain, values, and meanings • Extracting data elements and their dependent data element concepts and value domains • Walking classification schemes to discover and inspect administered items • Copying metadata from one registry to another • Applications of these examples: • Web interfaces, database application support, support for data stewards / designers, precise communication among stakeholders 20944 Rationale Overview, F. Farance
Example Taken From 20944-01 • Extracting a value domain from a metadata registry: 20944 Rationale Overview, F. Farance
UserInterface,Browser Apps,Services User DataServer DataServer Info/KnowledgeBase Info/KnowledgeBase Example Of 20944,Then ISO 11179 Metadata Exchange,Then Data Exchange Web Access Portal Services/Apps Portal,FrontEnd Queries (e.g. via web) Information Exchange #1: ISO/IEC 20944MDIB API #3: DataExchange #2: ISO/IEC 11179Metadata 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Implementation Variants(Variety Control) • Standard describes what, not how • Need to support a variety of implementations • Low performance and high performance • Shouldn’t expect all implementations to be high cost • Should permit high cost implementations to differentiate themselves: quality of implementation • Spawns innovation • Should be OS/language/coding/protocol neutral 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Standards and MethodologiesEmployed • JTC1 Directives: • Annex J: Guidelines for API Standardization • Describes much about API standardization, which the 20944 series follows • Standards • Uses 13886 (Language-Independent Procedure Calling) and 11404 (General Purpose Datatypes) • Language-independent specifications, as recommended by JTC1 Directives 20944 Rationale Overview, F. Farance
Standards and MethodologiesEmployed • Breakdown into Parts • Building blocks correspond the “conformity” boundaries • Why require an implementation to support (say) both C and JavaScript when only one is used? • Separate parts allow clear, unambiguous references to requirements and declarations of conformity (e.g., Part 41 is for C, Part 44 is for JavaScript). • Separate areas for codings, APIs, and protocols — important to keep separate (next slide) 20944 Rationale Overview, F. Farance
ISO/IEC 20944 Family of Standards— Dependencies Among the Parts 20944-01Framework 20944-02CommonVocabulary 20944-03CommonConformanceProvisions 20944-04GeneralUsage 20944-05Common DataStructures 20944-06Semi-StructureAggregation 20944-20CommonCodingProvisions 20944-21XML CodingBinding 20944-22DIVP CodingBinding 20944-23ASN.1 CodingBinding 20944-47PHP APIBinding 20944-40CommonAPIProvisions 20944-41C APIBinding 20944-42C++ APIBinding 20944-43Java APIBinding 20944-44ECMAscriptAPI Binding 20944-45Perl APIBinding 20944-46LISP APIBinding 20944-60CommonProtocolProvisions 20944-61ODBC ProtocolBindings 20944-62DCTP ProtocolBindings 20944-63SOAP ProtocolBinding 20944-64WSDL ProtocolBinding 20944-65LDAP ProtocolBinding 20944-66JMS ProtocolBinding 20944-80CommonProfilesProvisions 20944-8111179-3 MDRAttribute Map 20944-82Profile For11179-3 MDR 20944-83URIs For11179-3 MDRNavigation 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
General Interoperability Issues • Expect to write code and work on many implementations • Expect to share data and have it understood • Expect to users will have “extensions” to data 20944 Rationale Overview, F. Farance
EXTENSIONS INDUSTRY RELEVANT Building Standards InSeveral Steps User/Vendor/Institutional/Industry“Extensions” The “Standard” ConsensusBuilding Development Industry-Relevant,Widely-Adopted“Extensions” Review Maintenance Amendments: 2-3 yearsRevisions: 4-5 years “Extensions” Become Input ToNext Revision Of Standard 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
API Framework • Provide right level of abstraction • as per JTC1 Directives • Not broadening scope, just getting to right level of abstraction to permit wide implementations • Key features: • Handle-object paradigm • Two-step connect paradigm • Open security paradigm • Open nomadicity (connectedness) paradigm • Read-write paradigm • Supports multiple datatypes • No requirement (yet) for streaming 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Coding Framework • Support neutral description of data (Part 20) • Commonality of semantics because of neutral description • Rule-based approach permits a variety of implementations • Example: for Part 21, XML implementations can be based upon DTDs, XML Schema, or custom code 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Separation of Bindings • Separates technologies from semantics • Allows new technologies to be introduced over time • Problems when they are kept together, e.g.: • HL7 was too tied to protocols • Made data interchange difficult • OMG was too tied to CORBA (API/protocol) • Missed out on XML technologies 20944 Rationale Overview, F. Farance
Requirements Functionality Conceptual Model Semantics Bindings: APIs Bindings: Codings Bindings: Protocols Encodings:Data Formats Encodings: VariousCommunication Layers Encodings:Calling Conventions A Framework for Harmonized/Consistent ...Bindings: Codings, APIs, ProtocolsEncodings: Calling Conventions, Data Formats, Communication Layers Topic-SpecificInformative Wording Topic-SpecificNormative Wording Cross-TopicCodings: XML Various Standards Cross-Topic APIs:Normative WordingJava, JavaScript,C/C++, Perl, Tcl, VB Cross-Topic Protocolse.g.: Session Layers Cross-Topic APIsInformative Wording Various Standards 20944 Rationale Overview, F. Farance
Harmonized standard APIs, Codings,and Protocols promote:- Application portability- Data portability- Multi-vendor, “open” solutions- Wide area, end-to-end interoperability Codings, APIs, Protocols —All Three Are Required - Std APIs may be implemented viastd or proprietary Protocols - Std Protocols may be accessedby std or proprietary APIs- Both std APIs/Protocols improvewide area interoperability Semantics Bindings: APIs Bindings: Protocols - Std APIs may use std orproprietary Codings- Std Codings may be usedby std or proprietary APIs- Both std APIs/Codingsimprove portable apps/data Bindings: Codings - Std Protocols may use std orproprietary Codings- Std Codings may be exchangedvia std or proprietary Protocols- Both std Protocols/Codingsimprove system interoperability Prioritizing The Development OfStandards for Codings, APIs, and Protocols 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Separation of Identifiers • Keep normative wording all in Part 81 • Allows for use/reuse in other parts (URIs) 20944 Rationale Overview, F. Farance
Overview • What is a “Rationale”? • Why create one? Who uses them? • Rationale for 20944 series: • Prototypical Uses (use cases for interoperability) • Implementation Variants (variety control) • Standards methodologies employed • General interoperability issues • API Framework • Coding Framework • Separation of Bindings • Separation of Identifiers • Separation of Terminology 20944 Rationale Overview, F. Farance
Separation of Terminology • Keep normative wording all in Part 2 • Simplifies mantenance 20944 Rationale Overview, F. Farance
Conclusions • Should provide more details on “Rationale” • Implementers’ site created on SourceForge for open-source implementations of 20944 20944 Rationale Overview, F. Farance