Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Layered architecture for Ding2 [proposal]

1,233 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Layered architecture for Ding2 [proposal]

  1. 1. Current situation Monilith architecture demands that any deviation in content or logic results in a fork of As a result a libraries except Copenhagen has forked the ding.TING code requirering high Thick, complete basetheme never designer for subtheming requires every instance to override the complete ding.TING code repository. maintenance and high(er) barrier to sharing and maintain a complete theme, resulting in patches and features. high maintenance costs. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings) ding.TING ding.TING ding.TING ding.TING hovedspor Aarhus-fork Randers-fork Kolding-forkding.TING 2(custom modules,con g)Drupal(core + contrib)
  2. 2. Example: Drupal Drupal Core and Contrib modules. De nes core concepts as entities, elds, RDFa integrations, views, page manager, editorial tools and so forth. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  3. 3. Example: ding.TING2 De nes speci c con gurations, settings and custom developed modules including all integration to search. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  4. 4. Example: Content The content layers contains ding.TING2’s panels settings, and de nes logic and content. Example: Should the site print a ‘Share to Facebook’ button, on what content and in what What content get printet, when and in what region. region, in what order to the other content. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  5. 5. Example: Structure The structure layer contains ding.TING2’s panels layout templates. They de ne the Example: Where is the panels pane containing the ‘Share to Facebook’ button printet in the structure and wrapping markup for the separate markup. panels panes. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  6. 6. Example: Theme Theme layer de nes elements such as general typography, spacing/layout, general branding collections and so forth. neutral styling and styling/ui/ixD for shared features such as search, news, ting objects and København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  7. 7. Example: Branding Branding layer de nes elements such as logos, branding colour schemes, local adaptions to menus and other idiosyncrasies. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  8. 8. The ideal Every layer except a thin branding layer containing local logos, colours and idiosyncra- In reality this is hardly attainable though. Differences between multi-branch and sies are shared unforked among all partner single-branch partners will in probability result libraries. in fragmentation of codebase. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  9. 9. Realistic model Maintaining two separate content and structure layers - one for multibranch libraries and one for make long term collaboration and code sharing possible. (mainly) single branch libraries - should protect against further, unplanned fragmentation and København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)
  10. 10. Possible model A multilayer model still includes the freedom for individual partners to fork a speci c layer and In this example one partner has created it’s own base theme and another partner has created it’s still use the rest of the stack unchanged. own panels layouts, while still building on shared components in other layers. København Aarhus Randers Kolding VejleBrand layer(subtheme)Theme layer(basetheme)Structure layer(panels layouts)Content layer(panels settings)ding.TING 2(custom modules,con g)Drupal(core + contrib)

×