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