1. Drupal on My Mind
I was introduced to Drupal in this decade. During this time, I have seen the Drupal community getting stronger, building new features, and frequently releasing major versions of the package. After evaluating several tools for content management systems (CMSs), my connection with Drupal has continued to stay strong and has made me wonder, what else can we do with Drupal?
The Drupal interface has made building services easy from the very beginning, and so its been very adaptable to stand-alone services as well as lightly coupled applications. Services such as content authoring, content version management, and content publishing can all be used independently. Ideally, content management systems are a bundle of these services interacting within a given context and time. Drupals functioning is oblivious to the database used or to the container and cloud used to deploy the source. Drupals core functionality is sturdy and functions well for use in enterprise systems. Enterprises including government web sites (for example, whitehouse.gov), college web sites (University of Minnesota), and media web sites (The Beatles official site) have embraced Drupal for their content management needs. Many have used Drupal for their complete web-site management, whereas others have chosen Drupal modules for critical tasks in the back end. These choices made by IT departments within these companies may change in the future, but Drupal easily adapts to these changing needs. Drupals entire setup takes no more than a few minutes, and its upgrades are easy and cost-efficient.
A typical enterprise-level web site will not be just a singled-out xyz.com with a model-view-controller architecture, but will have multiple back-end web applications to provide for the content's life cycle. This is the modern way of creating a web site, and we can be sure that the complex back-end systems are not going to be any simpler in the future. Just as the human mind is able to process various feeds simultaneously and to make references to the future and the past, the user experience on the World Wide Web is getting much more complex. The best we can do is to make our internal components of complex systems simpler and less coupled.
Mobile applications and single-page applications ( SPAs ) also use Drupal to meet their content management needs. Such is the reach of Drupal that thriving communities have ensured that Drupal has touched every possible industry you can think of in the past decade. From its very beginning, Drupal has had the intrinsic capability to provide services as Drupal as platform , and that has been the reason for its success in this era of microservices and REST.
Because this book is not an introduction to Drupal, I presume that you are already familiar with it. If you havent worked with it, I expect that you have at considered replacing your current content management system with Drupal, WordPress, Joomla, or any other open source package.
In this chapter, you will read about the content management system workflow, its evolution, and a comparison of monolithic and decoupled design. Drupal has been one of the first players to embrace decoupled design, and this chapter will take you through its details.
Modern Web Applications
Whenever stakeholders of large organizations decide to reduce the cost of buying software (because of the sheer pain of costs rising in proprietary systems with every new featurebig or smalladded to the package), this is an ideal time to consider Drupal. Those involved in such big decisions should evaluate the power, enterprise-level security , and features possible within the Drupal world. Drupal is built using PHP, and new modules are constantly being created with the latest WebJars or Node.js, for examplejust as in other leading open source content management systems such as WordPress or Joomla. The nature of PHP, a server-side scripting language, is to churn out a feature as quickly as possible. Drupal has stayed true to its intrinsic nature of building code packages, which makes the Drupal engine (core) stronger but also pliable enough to add new features.
Many leading content management systems have stood the test of time and continuously upgraded their systems; most notable are Adobe Experience Manager and TeamSite. TeamSite has provided strong support via Erlang and XML to the web-site modernization needs of many companies. But the behavior that irks most people using monolithic and proprietary content management systems is the long debugging time required when an issue occurs. Content management systems should play a critical role in reducing the time required for content to be live and for the content to be arranged in the web context. This combination of time and space accuracy needs to be 100 percent correct for any site user, in any locale, at any time. This accuracy that the content management system delivers helps uphold a companys brand value, trademarks, and copyrights as well as its ability to execute marketing strategies on the Web. If either the timely appearance of the online content or its spatial arrangement does not get implemented as expected, the organizations brand image and value are directly affected. Whoever said that a picture speaks a thousand words must have been well versed in content management systems, because on a web site, for an image to make sense, it has to be placed in the correct context.
For these reasons, the CMS workflow is designed to be accurate, to deliver online content on time and within the correct spatial coordinates of your web page or app. A lot of application engineering is done to make this happen programmatically, requiring a distribution of responsibilities across the content management team and the information technology team within a given organization.
For example, many leading content management systems enable users to create beautiful web pages by using interfaces made from Java code that can be easily deployed to a live site. An expert skill level in the respective tool is needed to curate such pages, and the team should possess a good understanding of the Java code that runs beneath. Such teams thus have to master delivering content quickly by avoiding any loss of communication time between the front end and the back end. Adobe Experience Manager is a good example of a provider of such heavy applications. The UX features provided by these types of packages is outstanding, but the features are not always up-to-date, and many times IT teams have to wait until the features are available in the tool's product release plan. For example, early in the decade, some content management system packages were not REST compliant or compatible with leading social sites, and this was a setback for companies using these older versions of tools to render content. With Drupal, such delays in feature releases are minimal, and Drupal upgrades are quick.
Product companies building content management systems were working hard to make their products that were using the monolithic design focused on adding more control to the controller of such applications, while not effectively providing a continuous evolution of the user experience and microservices. The features and modals that Bootstrap ( www.webjars.org ) has been able to offer recently are admirable, and many web sites wanted to take advantage of these developments. These WebJars are client-side libraries (for example, jQuery and Bootstrap) packaged into JAR files. Drupal is different, and its architecture provides an all-encompassing change: microservices and REST-based services are encouraged within the Drupal community, and its possible to use Drupal in a decoupled manner for content management. Drupal has well-separated modules, and each module can work independently, with few (or acceptable) dependencies on the core modules. One of the sturdy modules we will discuss in this book is the Workflow module, which is the backbone of Drupals content management workflow.