CORDRA Philip V.W. Dodds March 2004 The “Problem Space” • The SCORM framework specifies how to develop and deploy content objects that can be shared and contextualized to suit the needs of the learner • SCORM provides the means to tag content for later discovery and access in a distributed environment BUT: • SCORM is silent about how discovery and access is to be implemented Working Title Content Object Repository Discovery and Resolution Architecture (or) Content Object Repository Discovery and Registration Architecture “CORDRA” ADL’s Approach • Articulate the high level requirements, policies and business rules for instructional content repositories that constrain the architecture such that it can be implemented consistently. • Identify and relate the most relevant technologies and specifications that can be applied to the architecture (connect the dots). • Define a framework on which a number of services may be built (but without defining the implementation of such services). • Provide a model that can scale. Assumptions Unique To ADL’s Community • Assumption 1: Developers of learning content want their content to be found. – Requirement: A means for discovering where content is available • Assumption 2: Most users and developers are not skilled at either tagging content or expressing detailed queries. – Requirement: Guidance and very simple interfaces for tagging content are needed. • Assumption 3: Searchers of content have specific criteria in mind. – Requirement: A means to relate search criteria based on context to descriptions of specific content objects (e.g., mapping a skill definition to an object that addresses that skill). • Assumption 4: Searchers of content often want only exactly what they need. – Requirement: A means to insure that discovered content is relevant, accredited and authorized (among other properties) is required to assure the delivery of appropriate content. Assumptions (continued) • Assumption 5: Forcing a rigid information, service and protocol model won’t scale. – Requirement: An approach is required that is low cost and easy to implement and that allows voluntary support and adoption, and minimal alteration of existing approaches. • Assumption 6: The architecture must enable local policies and business rules, not define them. – Requirement: The means to institute and expose local business rules and policies so they may be used or mapped to and from other systems. • Assumption 7: We cannot foresee all of the services or capabilities that will eventually be required. – Requirement: An architecture is needed that will enable new services and capabilities to be added without changing the underlying structure. Discovery • Two extremes of discovery – Exact and/or thorough (e.g., library collection searching) – What’s out there that might related (e.g., Google) • Preferred Process: – – – – Develop search criteria Go to a master index of relevant repositories Go to the appropriate repository Discover what it has that is relevant This suggests the value of a registry of repositories that “want” to be found CORDRA “Triangle” Context Delivery Discovery Identification Retrieval Resolution Location Resolution • Identification of an object and knowing where it is are different things • The Handle System may help us: “The Handle System has been designed from the start to serve as a general-purpose naming service. It is designed to accommodate very large numbers of entities and to allow distributed administration over the public Internet. The Handle System data model allows access control to be defined at the level of each of the data values associated with a given handle. Each handle can further define its own set of administrators that are independent from the network or host administrator.” -- from IETF RFC 3650 The Handle System Handles are Persistent and Globally Unique The Handle System - Resolution Global Handle Registry CNRI Library Of Congress loc. IDF -DOI 10. Local Naming Authorities 100.army Handle + policies = Community of practice 100.navy.navair/100344jjp Resolves to (returns): http://navair.pax.mil/training/object23.zip DTIC 100. 100.navy CMU 100.Airforce ADL CORDRA Proposed Framework Global Handle Server @CNRI DoD Local Handle Server @DTIC Repository Metadata Index Repository Registry Content Object Registry Content Object Metadata Index Marines Joint Navy Air Force Army Distributed Repositories Registering a Content Object Global Handle Server @CNRI DoD Local Handle Server @DTIC Repository Metadata Index Marines Repository Registry 1. Create Content (obtain handle optionally) e.g., 100.navy.navair/1002184jr 2. “Publish” object by placing it in a repository Navy Content Object Registry Content Object Metadata Index 3. Register object by obtaining (or updating) a handle record and sending the object’s location and search metadata Air Force Army Distributed Repositories Joint Registering a Repository Global Handle Server @CNRI DoD Local Handle Server @DTIC Repository Metadata Index Marines Repository Registry Content Object Registry Content Object Metadata Index 2. Register repository location by obtaining a handle for it and sending its metadata to the registry (probably a web form transaction) 1. Create Repository’s metadata (location, access procedures, authority, search services, etc.) Navy Air Force Army Distributed Repositories Joint Searching For An Object 1. Access search service and enter search metadata Global Handle Server @CNRI 2. Service searches object index 3. Service identifies and returns handles for “hits” Object Search Service DoD Local Handle Server @DTIC Repository Metadata Index Repository Registry Content Object Registry Content Object Metadata Index Marines Joint Navy Air Force Army Distributed Repositories Retrieving An Object 1. Client (you) sends a handle query to the Handle System. The query is sent to the appropriate local Handle Server. Global Handle Server @CNRI 2. Local Handle System looks up (resolves) the handle and returns the location of the object DoD Local Handle Server @DTIC Repository Metadata Index Marines Repository Registry Content Object Registry 3. Client directly requests the object from the location provided “get” request by the handle service. Content Object Metadata Index Registry contains the location information for the object Joint Navy Air Force Army Distributed Repositories Searching For Repositories 1. Access search service and enter search criteria (e.g., show me all repositories or tell me about this one) – service returns results. Repository Search Service Repository Metadata Index Global Handle Server @CNRI DoD Local Handle Server @DTIC Repository Registry Content Object Registry Content Object Metadata Index Marines Joint Navy Air Force Army Distributed Repositories Locating A Specific Repository 1. Access search service and request the handle of the desired repository – service returns handle. 2. Client (you) sends a handle query for the repository to the Handle System. The query is sent to the appropriate local Handle Server which then returns the location of the repository. Global Handle Server @CNRI Repository Search Service DoD Local Handle Server @DTIC Repository Metadata Index Repository Registry 3. Client directly accesses the repository through location provided by the handle service. Content Object Registry Content Object Metadata Index Registry contains the location information for the repository access request Joint Marines Navy Air Force Army Distributed Repositories Enabling Services • We need lots of services… – – – – – – – – Policy enforcement Resolution/retrieval Authentication, authorization and auditing Digital rights management Security Processing community specific business rules “Smart” search/discovery … many others ADL CORDRA Proposed Framework Global Handle Server @CNRI Resolution System DoD Local Handle Server @DTIC Repository Metadata Index Marines Repository Registry Content Object Registry Content Object Metadata Index Identifier System Joint Navy Air Force Army Distributed Repositories To Do List… to support the DoDI • Define and review DTIC services (fund) – Object and repository registries – Object and repository metadata indices – Search services and portals • Define registry interface definition • Create reference registry interface (code) – Repository and object • Define repository access policies • Prototype key services Thank you! pdodds@rhassociates.com