Presentation is loading. Please wait.

Presentation is loading. Please wait.

Connexions 1 Connexions Software Architecture Brent Hendricks Connexions Systems Architect.

Similar presentations


Presentation on theme: "Connexions 1 Connexions Software Architecture Brent Hendricks Connexions Systems Architect."— Presentation transcript:

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


Download ppt "Connexions 1 Connexions Software Architecture Brent Hendricks Connexions Systems Architect."

Similar presentations


Ads by Google