120 likes | 241 Views
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
E N D
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 • 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
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
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
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
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
WSL Architecture WSL xText WSLecore WSLeditor wsl2emf Akademiawsl Akademiaemf emf2interfaces emf2archetypes emf2config emf2profile
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
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
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
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