single source architecture principles
play

Single-Source Architecture Principles Single-Source Architecture is - PDF document

Single-Source Architecture David Kirkwood, DrupalCon 2018, Nashville Single-Source Architecture Principles Single-Source Architecture is strategy for building websites in an iterative manner Each sub-site is distinct to the others o Content o


  1. Single-Source Architecture David Kirkwood, DrupalCon 2018, Nashville Single-Source Architecture Principles Single-Source Architecture is strategy for building websites in an iterative manner • Each sub-site is distinct to the others o Content o Editing Privileges • All are on the same database • Utilizes core functionality (as of Drupal 8) o Taxonomy, Content Types, Fields, Views, Blocks Goals of Single-Source Architecture • Eliminate Redundancy as it applies to: o Websites o Content o Administration & Maintenance • Simplify syndication and distribution of content Websites follow a fairly predictable pattern • Web content falls into 3 categories o Static: Content that is regularly edited/updated but never replaced – About Us o Ephemeral: Information that is rarely edited but regularly replaced – News story o Dynamic: Information produced in response to a user’s input – Directory list, App • Websites are generally comprised of the same assets o Home Page (static with dynamic elements) o Page (static) ex. About Us o Employee (static) ex. Faculty Profile o Announcement/Blog (ephemeral) ex. “Congrats…”, “System Maintenance” o Event (ephemeral) o News (ephemeral) o Date (static) ex. “Last day to register”, Holiday o Lists (dynamic) ex. Directory Why do we create completely separate sites that do exactly the same thing? • Each department needs a ‘Home Page’ • Content control/separation • Limit editing access to a small group of editors • Ability to grant access to an entire sub-site with the option to access individual pages Single-Source Architecture addresses each of these needs • Each department needs a ‘Home Page’ – Designate a ‘Department’ Content Type • Content control/separation – Taxonomy

  2. Single-Source Architecture David Kirkwood, DrupalCon 2018, Nashville • Limit editing access to a small group of editors – Taxonomy • Ability to grant access to an entire sub-site – Taxonomy Added advantages • A single instance of content can be syndicated across sub-sites – Views, Taxonomy • Content can be easily aggregated across sub-sites and sent to third-party apps • Core, module and theme updates only have to be applied once • Very low dependence on contributed modules means forward compatibility is built in • Scalable Single-Source Architecture uses Drupal’s Core functionality • Taxonomy – Vocabulary mimics the reporting structure of the organization • Content Types – Classifies content by shared attributes; all attributes contained in fields • Views – Content distribution and syndication • Blocks – Places Views into pages providing a Taxonomy term as a Contextual argument Step One: Taxonomy • This is the backbone of the Single-Source Architecture strategy • Each entity within the organization is represented by term • Terms are arranged in a hierarchy resembling the reporting structure • Required Field – All content must be tagged upon creation • Designates specifically the content belonging to each entity • Designates the hierarchical relationship to other content • When used as a contextual argument with depth, a single View block can aggregate: o from the bottom up (Newsletter), OR o from the top down (Leadership Communications) • Provides the first layer of filtering o Pull all the content belonging to specific entity ex. College of Business • Matching the Taxonomy term on a User’s account to the term on the content provides editing access [Visual: Example of Department vocabulary] Step Two: Content Types • Each Content Type designates content with a specific set of attributes o Date Content Type needs only a month/day attribute o Event requires a month/day/start-time and location attributes o Employees have email, phone, and job title attributes o Departments have email, phone, and business hours attributes • Each Content Type is comprised of a unique set of attributes • All attributes must be contained in a field o Fields provide a handle for building Views o Fields also remind the creator to include important information

  3. Single-Source Architecture David Kirkwood, DrupalCon 2018, Nashville • Fields should be reused and named for the general type of attribute it contains o field_email (Not field_faculty_email; field_department_email ) o field_phone o field_address • Provides more granular filtering o We can now pull all of the Academic Programs from the College of Business [Visual: Example list of Content Types] Step Three: Views and Blocks • Retrieves data that already exists in your Content Types and distributes • Blocks will be used almost exclusively for site building o Page views typically used to build content administration tools (Bulk Operations) o The taxonomy term from the page provides the contextual argument • A few blocks do an amazing amount of work • Syndicates content to all related departments (Academic News from across campus) • Distributes single instances of content to many places o When the source is updated, all references are updated o Improves accuracy of information with a minimum of administration personnel [Visual: Example of all the different types of lists and page elements that can be built] Single-Source Architecture • Makes it possible to build numerous sub-sites • Consolidates features and administrative tasks • Is scalable • Forward compatible because it uses functionality of Drupal Core

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend