120 likes | 249 Vues
In an era where web application development is increasingly complex, creating custom Content Management Systems (CMS) poses a challenge for non-experts. This work outlines a Domain-Specific Language (DSL) approach to simplify CMS development, leveraging model-driven development technologies. By hiding programming complexities, we aim to facilitate the creation of customizable CMS tailored to specific organizational needs. The design insights include hierarchical structuring of websites and effective content workflows. Our methodology addresses scalability and flexibility, providing practical tools for generating reusable components.
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