Download presentation
Presentation is loading. Please wait.
Published byAntony Garrett Modified over 8 years ago
1
connexions 1 Connexions Software Architecture Brent Hendricks Connexions Systems Architect
2
connexions 2 Conceptual Model: Components
3
connexions 3 Content Types Module –Single topic building block –Standalone, but cross-linked Course –Sequence of modules –Customizations
4
connexions 4 Editing Environment Workspaces (private and group) Collaboration Create and manage content
5
connexions 5 Repository Storage Version Control Access Search
6
connexions 6 Viewing Single modules –Multiple formats Courses –Persistent navigation –Module customization
7
connexions 7 Demonstration
8
connexions 8 Architecture Web-based architecture –URIs, links, formats –Implementation independent
9
connexions 9 Architecture
10
connexions 10 Content Types Common metadata (title, created, abstract, keywords, authors, etc.) Important for cataloging and search Credit and attribution –Author –Maintainer –Copyright Holder
11
connexions 11 Content Types Module –Container Default file: XML markup Associated files Links: (URL, category, title, strength)
12
connexions 12 Content Types (cont.) Course –Sequence or outline –Container Groups Module pointers (specific version or latest) –Additional metadata (institution, etc.) –Customizations (links, annotations, parameters)
13
connexions 13 Repository Functions Publish new content Version control Checkout Publish new revision No deletion Security Search Retrieval
14
connexions 14 Publish New Content Repository metadata: objectId, version, submitter, submitlog URI assignment Optional parent object
15
connexions 15 Version Control Entire object (metadata, files, etc.) Each version is first class object (internal and URL) History available Tracking latest –special resource represents latest version
16
connexions 16 Checkout Make a local copy Non-locking (must communicate)
17
connexions 17 Publish New Revision Same objectId, new version Everything can change except: license, date of creation Only allows revision of most recent version
18
connexions 18 No Deletion Preserve links Site-manager override (legal)
19
connexions 19 Security Anyone may checkout Only maintainers may publish Must be maintainer of latest revision (not past or future)
20
connexions 20 Search Metadata Full text Open Archives Initiative
21
connexions 21 Retrieval Object as web resource: URIs –Ex: http://cnx.rice.edu/content/m11617/1.2/ Tracking latest –Ex: http://cnx.rice.edu/content/m11617/latest/ Returns HTML representation –Module text transformed + metadata + links –Course metadata + TOC with links to modules Links to other representations –PDF, CNXML of module –RDF of course
22
connexions 22 Course Customizations Displaying module customizations –Retrieving course URL sets cookie –Cookie sent to all pages on server –If module “in” course, server customizes display (links, notation) –Annotation (uses Annotea protocol) Link to annotation server in course RDF
23
connexions 23 Course Customizations
24
connexions 24 Editing Environment Authoring site Edit-In-Place
25
connexions 25 Authoring Site Workspaces –Manage content and other files (create, delete, c/c/p) –Private ‘My Workspace’ –Workgroups (communal property) Create new (does not appear until published) Checkout –Any user can edit –Only maintainers can publish
26
connexions 26 Collaborating Workgroups Role Requests (must get person’s approval) Suggest changes (like software patch) –Edits sent to maintainer –Maintainer can reject out of hand or apply –Applies to local copy –Changes only appear if maintainer publishes
27
connexions 27 Collaborating (cont.) Derive Copy (like software fork) –Check license –Preserve attribution –Specify parent upon publication
28
connexions 28 Edit-In-Place Small text edits for modules (linked from module display) Browser downloads source (uses HTTP to get XML) User edits paragraphs one at a time Browser sends edits to server for validation and transformation User discards or publishes Avoids checkout
29
connexions 29 Viewing Content from any browser (standards-compliant) Additional client-side functions –Persistent navigation lets users explore) (reads RDF) –Annotations: Annotea client support
30
connexions 30 Implementation Approach Key technologies Repository Content access Editing Environment Edit-In-Place Roadmap
31
connexions 31 Approach Integrator approach: –Reuse as much as possible –Use off-the-shelf open source parts –Contribute to existing projects –If part doesn’t exist, create and distribute it
32
connexions 32 Key Technologies: Plone/Zope Plone Content Management System –Plone is built using Zope, an object oriented application server. The language that drives Zope and Plone is Python — the agile language preferred by Google, NASA, Industrial Light and Magic and many others. Why? Because Python offers unprecedented programmer productivity. (plone.org) –Object DB –Attribute templating language –Pre-built components for rapid development –Extensible “Product” mechanism
33
connexions 33 Key Technologies: XML Family of standards (XSLT, DOM, Xpointer, RDF) Open, cross-platform standard Wide industry support Semantic Markup –Separation of content from presentation –Single source for multiple outputs CNXML: lightweight structural markup Discipline specific languages (MathML)
34
connexions 34 Standards Support XML and web technologies Open Archives Initiative Dublin Core IMS Metadata Keeping abreast of SCORM and OKI
35
connexions 35 Repository CVS stores module contents –Version control –Efficient differential storage PostgreSQL RDBMS stores metadata and text index Zope Product RisaRepository 1 provides abstract view 1 : “Risa” is an internal codename for our software
36
connexions 36 Repository
37
connexions 37 Content Access XML Semantic markup XSLT Transformations –Single module CNXML/cMathML -> XHTML/pMathML or LaTeX(PDF) –Course RDF -> CNXML/cMathML -> XHTML/pMathML or LaTeX(PDF) libxml, libxslt – fast C libraries, python bindings CNXMLDocument – Zope Product wrapping CNXML validation/transformation Standalone scripts for PDF generation
38
connexions 38 Editing Environment
39
connexions 39 Edit-In-Place Client-side JavaScript: XMLHttpRequest Server-side validation/transformation POST method to publish new version
40
connexions 40 Roadmap Mozilla extension XUL + JS == RAD Loads course RDF Persistent navigation Course annotations — from server Personal annotations — from profile
41
connexions 41 Server Hardware
42
connexions 42 Open Source Contributions Plone/CMF — Groups support and integration exUserFolder — Groups support, extensible user- supplied properties XPointerlib — Mozilla XPointer support for JS Annozilla — Restructured back end, use Xpointerlib libxml/libxslt — Various enhancements, bug fixes
43
connexions 43 Released Software/Technologies CNXML DTDs, stylesheets, schema Roadmap — Mozilla Navigation plug-in (IE in progress) MathML font installers Zope Products: –ZAnnot — Zope Annotea support –ExtZSQL — FS-based SQL methods (non-CMF) –PasswordResetTool — password-reset without sending cleartext –CMFDiffTool — Recursively diff objects
44
connexions 44 Coming Soon IE Annotea support Zope Products: –CNXMLDocument –RisaRepository –RisaModuleEditor –RisaCollection
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.