Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
A Web Specific Language for
Content Management Systems
Viðar Svansson, Roberto E. Lopez-Herrejon
Computing Laboratory
University of Oxford
1
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
2
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
3
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
4
Web Specific Language (WSL) – Fragment
Application: 'application' name=ID '{'
(entities+=Entity)*
'}' ;
Abstract Entity: Metadata | Domain | Feature ;
Domain: 'domain' name=ID '{' (entities+=Entity)*
'}' ;
Abstract Stereotype: Required | Searchable |
Ordered ;
Abstract Feature: Content | Workflow |
Permission ;
Abstract Concept:
Metadata | Field | Containment ;
Abstract Metadata:
Description | Title | Author |
Version | URL | Email | Licence ;
Field:
(stereotypes+=Stereotype)*
type=Type name=ID '{'
(attributes+=FieldAttribute)*
'}' ;
Abstract Content:
Base | Folder | Document | File |
Event | Image | Link ;
Base: 'content' name=ID '{'
(concepts+=Concept)*
'}' ;
Abstract Containment: Contains | Container ;
Contains: 'contains' (containment=ID)* ';' ;
Container: 'container' (containment=ID)* ';' ;
Abstract FieldAttribute:
Widget | Title | Description | Default |
Stereotype ;
5
Akademia
Case Study
Simple academic web
sites
An Akademia web
site has
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;
}
Research projects
Research groups
Publications
Other details …
required text aims {
title "Project Aims";
description "A summary…";
}
}
…
}
}
6
WSL Architecture
WSL
xText
WSLecore
WSLeditor
Akademiawsl
wsl2emf
Akademiaemf
emf2interfaces
emf2archetypes
emf2config
emf2profile
7
Product Line Infrastructure
Profiles – finer degree or variability
Tool GenericSetup to select and deploy
components
System properties, i.e. string values in XML files
Examples: content-types, comments, versioning
Define permissions and workflows
CMS instance composed of multiple profiles
8
Output Examples
9
Lessons Learned
Web apps (CMSs) are complex beasts
Limitations found
Require detailed knowledge of the target to automate
generation effectively
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
10
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
11
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
12