Download Problems: hard to master, eg API and coding conventions, multiple

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

URL redirection wikipedia , lookup

Transcript
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