1 / 12

A Web Specific Language for Content Management Systems

A Web Specific Language for Content Management Systems. Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford. Motivation. Web application development is increasingly complex Several ways to cope with this complexity Web frameworks

virgo
Download Presentation

A Web Specific Language for Content Management Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford

  2. Motivation • Web application development is increasingly complex • Several ways to cope with this complexity • Web frameworks • Basic infrastructure for web development • Examples: RubyOnRails, Zope • Problems: hard to master, e.g. API and coding conventions, multiple implementation technologies • Content Management System (CMS) • Sophisticated systems for authoring and controlling web applications sometimes built on top of a web framework • General purpose but customizable for the organization profile • Problems: many custom requirements, still hard to master

  3. Big Picture • Our goal • Facilitate the building of custom CMS by non-experts • Our approach • Develop a Domain Specific Language (DSL) • Hide programming complexity • Utilize Model-Driven Development technologies • openArchitectureWare • Generate a software product line infrastructure • reuseable components and configuration profiles

  4. Designing DSL Insights • Websites are hierarchical • Directories, index.html • Webpages are hierarchical • HTML, XML • Content workflow can be modeled with state charts • CMS systems can be built in terms of their required functionality

  5. Application: 'application' name=ID '{' (entities+=Entity)* '}' ; Abstract Entity: Metadata | Domain | Feature ; Domain: 'domain' name=ID '{' (entities+=Entity)* '}' ; Abstract Feature: Content | Workflow | Permission ; Abstract Metadata: Description | Title | Author | Version | URL | Email | Licence ; Abstract Content: Base | Folder | Document | File | Event | Image | Link ; Base: 'content' name=ID '{' (concepts+=Concept)* '}' ; Abstract Stereotype: Required | Searchable | Ordered ; Abstract Containment: Contains | Container ; Contains: 'contains' (containment=ID)* ';' ; Container: 'container' (containment=ID)* ';' ; Abstract Concept: Metadata | Field | Containment ; Field: (stereotypes+=Stereotype)* type=Type name=ID '{' (attributes+=FieldAttribute)* '}' ; Abstract FieldAttribute: Widget | Title | Description | Default | Stereotype ; Web Specific Language (WSL) – Fragment

  6. Simple academic web sites An Akademia web site has Research projects Research groups Publications Other details … application Akademia { domain Research { title "Research Content"; description "Concepts …"; folder ResearchProject { title "Research Project"; contains Publication; reference groups { title "Associated Groups"; type ResearchGroup; } reference projects { title "Related projects"; type ResearchProject, Link; } required text aims { title "Project Aims"; description "A summary…"; } } … } } Akademia Case Study

  7. WSL Architecture WSL xText WSLecore WSLeditor wsl2emf Akademiawsl Akademiaemf emf2interfaces emf2archetypes emf2config emf2profile

  8. Product Line Infrastructure • Profiles – finer degree or variability • System properties, i.e. string values in XML files • Examples: content-types, comments, versioning • Tool GenericSetup to select and deploy components • Define permissions and workflows • CMS instance composed of multiple profiles

  9. Output Examples

  10. Lessons Learned • Web apps (CMSs) are complex beasts • Require detailed knowledge of the target to automate generation effectively • Limitations found • Missing association references in xText translation • Template support for whitespace handling, important when targeting Python code • Textual DSL was adequate • Easier to learn, traditional versioning and editing support

  11. Related Work • Inspired by ArchGenXML (AGX) • Transforms UML diagrams annotated with stereotypes of a Plone UML profile • WebDSL – Visser 07 • Proposes DSL for web applications with concepts similar to those available in a CMS • Academic web site case study • Models presentation in DSL • Feature Oriented Model Driven Development (FOMDD) – Trujillo et. al 07 • Combines Feature Oriented Programming (FOP) and MDD • Algebraic representation of composition and synthesis

  12. Future Work • Application to a larger case study • Assessment with actual web developers • Extend DSL to accommodate other CMS functionality • Portlets, composite content-types • Algebraic properties of fields for computed fields • Model algebraically as in FOMDD • How the model obtained compares with other case studies? • Integrate with a feature modeling tool

More Related