Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Building and Optimizing Multi-Channel Digital Experiences

DZone's Guide to

Building and Optimizing Multi-Channel Digital Experiences

The way we use the internet is rapidly changing. In order to continue creating great code and content for this new era of the web, a new tool might be necessary.

· Web Dev Zone
Free Resource

Learn how to build modern digital experience apps with Crafter CMS. Download this eBook now. Brought to you in partnership with Crafter Software

Over the last few years, the internet has undergone a tremendous amount of fundamental change in its landscape, and we are now entering into a new reality with today’s Web. This change is driven by five major trends:

Social – The Web is much more social and much less anonymous than ever before. As an example, many sites and applications allow users to authenticate using shared/common identities provided by Facebook and Google.

Personal – While the internet is continuously expanding in terms of ubiquity, at the same time, it’s becoming much more local and much more personal in terms of user experience.

Mobile – The growth of mobile access to the internet is rapidly expanding. Access from tablets and phones has long since exceeded that from desktops and laptops.

Internet of Things (IoT) – The internet is no longer just websites and applications. Consumer devices of all kinds from beacons and thermostats to digital assistants are now connected.

Digital Natives – We now live in a time where our children have had access to extremely powerful computing and connectivity their entire lives. As they become decision makers we must realize that their experience, and hence their expectations, are vastly different than our own.

Each of these trends is a significant development in user experience in their own right. However, these trends feed and reinforce one another in a way that’s accelerating change and adoption across all trends.

The very way we communicate with and understand our customers is changing, and when a foundational change like this occurs, those who recognize the change and move quickly to adapt have the most to benefit. Adapting to these important changes should be on your near-term roadmap.

Let’s take a look at each of these trends in more detail to get a deeper sense of reasoning and urgency for change.

Social

Social Media is ubiquitous now, with Facebook reporting over 1.8 billion active users, Snapchat at 100 million users, and Twitter users estimated to exceed 315 million. With these numbers – combined with the fact that studies show that while only 14% of consumers trust traditional advertising, 78% trust peer recommendations. Social communication is personal, emotional, timely, relevant, and propagated amongst peers – it’s easy to see why social is so important.

Personal

We all know that over the last twenty-five years the Web has made the world a much smaller place by knitting our global communities together through an increasingly ubiquitous network. This trend continues today but on a whole other level. The internet is increasingly being used to deliver the activity, news, reviews, sales, and other relevant data and services that are occurring and are available to us right in our immediate vicinity. All this information is being delivered right to us in real time through our mobile devices. While the world may be getting smaller, our personalized experience is growing larger.

Mobile

There are 7.4 billion people in the world, of which, 6 billion of us own an internet-enabled mobile device of some kind. In short, almost everyone in the world is connected with at least a basic mobile device. Additionally, one-third of the world’s connected users have at least 1 or more smartphones or tablets capable of delivering extremely rich digital experiences. Competitive organizations like Uber, Lyft, and many others are leveraging this connectivity to change the way business is done.

Internet of Things (IoT)

The Internet is no longer about websites and apps accessed by computers and mobile devices. Our cars, the stores we shop in, the devices in our homes, and all kinds of devices throughout the industry are constantly connected and communicating with other devices and systems via the internet. We call this new reality the Internet of Things (IoT). Even at this “early” stage in 2017, there are some 20 billion IoT devices connected. IoT is almost certainly the “next” mega-trend for the internet. Pages and apps are rivaled in volume by APIs. Human users now share the web with “Robots.”  The “Next mega-trend” is in fact already upon us. IoT opens a universe of new capabilities and user experiences as well as new challenges.

Digital Natives

Anyone who has a “tween” or teenager today knows that we’re already living with a new evolution of the population. From birth, our children have grown up with an extreme level of connectivity and computing power. “Computing” is unbelievably fast, highly visual, and tactile. Connectivity is ubiquitous. The applications they’ve grown up with are highly interactive, social, and personalized. They don’t know anything different. A new kind of user is born. Businesses that don’t adapt quickly as this group comes of age as the next wave of consumers and employees will lose big to the companies that do.

Meeting the Demands of the Era of Engagement

Each of these trends reinforces the others, and fuels further adoption and drives innovation. It is these technologies – and the behaviors and capabilities they foster – that have brought us to a new era, which Forrester calls the “era of engagement.” This is a new reality where the distinction between on-line and offline is becoming ever more blurred and the experience ever more immersive.

Driving these trends are people – our friends, leads, customers, critics, and fans. This is our audience and the other half of the conversation. And it’s no surprise that in today’s reality – that is, in the age of engagement – they want to participate and expect us to engage with them on their terms – on their schedule, in the context of their location, in their language, and optimized for their device.

Your audience has also become accustomed to a personal experience, and they expect a personalized, coherent, and consistent customer experience regardless of whether they are in your brick-and-mortar store, on your Facebook page, or on your website. To effectively tackle this challenge of serving a mass audience with limited resources, enterprises require strategy and effective tools to help get the job done.

Does Traditional Web Content Management Get Us Where We Need to Go?

Traditional Web Content Management (WCM) solutions are focused on building websites, landing pages, and blogs. As we’ve seen, today’s challenges go well beyond these demands. Web Experience Management (WEM) provides us with the toolset to take on this otherwise daunting challenge. The capabilities of WEM allow you to create, manage, and deliver dynamic, targeted, and consistent content across various online channels including your website, social media, marketing campaign sites, mobile applications, and more.

In short, it takes a lot more than a traditional Web CMS or Web Content Management (WCM) can provide to meet these needs.

Key Principles of Experience Management

Before we get too technical, let’s take a step back and ask what kind of guiding principles we can adopt that will help us meet the challenges of the “Era of Engagement.”

  1. Great experiences are designed, built, and delivered by a multidisciplinary team.
  2. New data and channels can spring up at any time.
  3. Time to market is king and the platform that enables the first mover is the king maker. Agile approaches and shorter delivery cycles are extremely important!
  4. Great experiences are relevant and relevancy drives value.
  5. Technical architecture matters and ultimately defines the limits of what is possible.
  6. Simplicity is paramount. True simplicity comes from the separation of concerns and good architecture rather than specific technologies, vendors, and shrinkwrap.
  7. Today’s experiences exist anywhere and everywhere.
  8. Experience is a journey rather than an interaction. Customers and users expect each interaction to leverage previous interactions.
  9. “One size fits all” is a fallacy. Each organization has its own unique needs, existing skill sets, and back ends.
  10. Openness is key to innovation at scale.

Translating Principles to Technology

Based on the principles above we start to get a clearer picture of the kind of technical architecture we need:

  1. A platform that is content first. Content must be cleanly separated from code and presentation so that it can be reused and consumed across multiple channels.
  2. Foundational support for dynamic personalized experiences. From the structure and retrievability of the content to the amount and types of data you can store about your users, to the complexity of the rules you can write; personalization is an architecture concern, not a feature.
  3. Strong support tool and process for both content creators and developers.
  4. An open architecture that favors innovation with scale, security, performance, and performance.
  5. True independence between content creation/management and delivery. Content authoring and content delivery, while closely related, are really two very separate concerns.  At scale, publishing needs to be both push and pull. Truly decoupled architectures align best with today’s needs.

Choosing a WEM Platform

Most people choose a CMS based on a long checklist of features and a demo of the authoring tools. While checklists and demos are very important, they don’t get at something much more fundamental, and in the case of the challenges we face, important: architecture. Architecture matters. While many CMSs pass the checklist-demo gauntlet, nearly every CMS solution, regardless of what they claim, is an evolution on WCM and is ill-equipped for the Era of Engagement and beyond.  The proof is in the architecture. Since so many CMS solutions out there claim to handle WEM but fail to deliver architecturally, let’s dig into some of the issues:

  • Most CMS platforms “couple” authoring and delivery.  While this is ok for some use cases it has a number of limitations:
    • Authoring and delivery often require unique security integrations.
    • If authoring and delivery are coupled in the same database, work-in-progress content is at risk of a security breach.
    • Coupled systems demand that authoring and delivery components share the same Service Level Agreements (SLAs) and scale out. This significantly complicates the architecture and increases the total cost of ownership.
    • Most coupled architectures have no native PUSH support for content deployment which means they only support PULL style publishing (content rendered as HTML and JSON) and do not easily publish to disconnected/external systems via APIs.
  • Almost every CMS out there uses an RDBMS database and JCR-backed content.  This approach leads to a significant number of problems and constraints:
    • Scaling relies on clustering and replication and is difficult and clunky.
    • While clustering and replication schemes within a data center are approachable, globally distributing the topology via clustering and replication is a whole other level of hurt.
    • Because code and content are stored in a database (in some cases just code) it’s extremely hard to innovate quickly because it’s very difficult to move code and/or content between environments and through the development process.
  • Many CMS’s are built on poor technology choices that ultimately slow the rate of development and deployment, and kill innovation:
    • PHP is a great example of technology that’s widely used in the CMS space. The issue with PHP is that when it comes to heavy lifting or integration it breaks down. Most PHP platforms like Drupal or WordPress require Java backed capabilities like Solr as soon as the going gets tough. Making the right technology choices avoids workarounds and leads to more simple, more cost effective, and more maintainable infrastructures.
    • Older technologies like JSPs and Sling, along with proprietary development and theme frameworks, have huge learning curves or require hard-to-hire skills due to their niche application.
    • Approaches like war files and even OSGI are heavy deployment technologies and slow time to market dramatically. Scripting offers a much better approach for most functionality.
  • Most CMS’s have the wrong approach to user data. Storing user data in a traditional database doesn’t work at scale with today’s international regulations.
    • Many countries have on soil data requirements.
    • Many applications need to be able to access user data — but only see what they need to see.
    • Real personalization often requires a tremendous amount of data which in some cases must be analyzed in real time. Traditional RDBMS doesn’t fit the bill.
  • Most CMSs treat personalization, contextualization, and localization as a feature. They are not features. They must be part of the very fabric of the platform in order to succeed at scale. Only the most basic use cases can be supported unless these are treated like architecture rather than bolted on features.

Crafter CMS to the Rescue

Crafter CMS, a modern open-source, Java-based Experience Management platform is architecturally different than all of these other solutions — which means it can deliver different results. Crafter is a complete and comprehensive WEM application built on top of leading open source technologies like Spring, Solr, and Git – that provides multi-channel digital experience management through a rich user interface and a high-performance content delivery system. This allows it to provide content, creative, and development teams with the real tools they need to craft amazing personalized digital experiences for their customers.

Crafter CMS consists of the major applications: Crafter Studio, Crafter Engine, and Crafter Profile.

Crafter Studio provides all the content management services and integrates with repositories like Git, Alfresco, and other CMIS based platforms to enable authoring, management, and publishing of all content. Crafter Studio provides a comprehensive set of user-friendly yet powerful features for managing and optimizing of experiences.  

Crafter Engine provides high-performance content delivery services that can power any type of Web or mobile application. It consumes content published through Crafter Studio and provides developers with the foundation for quickly building high-performing and flexible Web and mobile applications. Crafter Engine provides out-of-the-box integration with numerous data sources and application services. A key feature of Crafter Engine is its ease of integration. Modern WEM applications must integrate with one or more enterprise systems or third party services. Crafter Engine can easily be integrated with other applications such as CRM and sales force automation, marketing and email campaign management, and other enterprise systems required for optimizing the Web experience for your audience.

The management and delivery of content are decoupled and separate, allowing each system to be optimized for its purpose, audience, and scalability requirements. Multi-channel publishing is naturally supported, and mobile devices and applications are enabled by means of both native device support (iOS and Android) and HTML5 support.

Crafter Profile provides a secure and scalable platform for storing, querying, and analyzing user data at each interaction in your customer journey. As it stands, data privacy concerns and international regulations are extremely complex and getting more complex with each passing day. Crafter Profile leverages MongoDB and can store user data of any type and volume. The data is then globally distributable to meet on-soil PII requirements. Further, Crafter Profile offers “Big Data” processing and analysis to the delivery tier to drive true personalization.

Content First

Crafter CMS completely separates content, code, and presentation. Content is captured and stored as XML and other static assets (images, videos, PDFs, etc) in the repository. By leveraging a file based, XML approach content is easily moved between environments and systems for work processes (e.g. translation) and is easily published to/for any kind of content consumer.

Extreme Scalability

Performance and scalability are an architecture concern. If you have the wrong architecture you’re forced to use workarounds like CDNs or build replication based science projects at the data layer. Crafter avoids these by getting the architecture correct from the start. Crafter Engine is a high-performance Spring MVC based application that can render dynamic, personalized content in any format within milliseconds. Crafter Engine is a shared nothing component that does not rely on external databases. By leveraging local in-memory databases, fast disk, and local Solr, Crafter Engine provides the proper foundation to build a cloud scalable, elastic globally distributed infrastructure.

Personalization in the Core

Crafter CMS treats personalization as a part of the architecture rather than a bolt-on feature. Crafter Engine and Crafter Profile combine to deliver a platform for high-performance personalization at scale with complete scriptability, security, and regulatory compliance.

Truly Decoupled

Crafter CMS is a decoupled CMS that separates authoring and publishing capabilities into their own subsystems in order to achieve the many benefits discussed above. Crafter CMS makes it easy for authors to create, manage, and deliver content in any format from RESTful APIs/JSON to HTML5, and even virtual and augmented reality via AFRAME. So for modern digital experiences that must be delivered across many channels, Crafter CMS provides a decoupled architecture combined with Content-as-a-Service capabilities.

Built for Innovation

To be truly innovative you have to be great at both building and delivering. What good is a platform that performs well but is hard to update or a system that’s easy to develop for, but is hard to deploy new features on? Crafter CMS is built on today’s leading open source technologies like Java, Spring, Groovy, Freemarker, Solr, and Git. This means your developers don’t need to learn a vendor specific stack to get started. The right technologies make all the difference. Crafter CMS combines the integration power of Java with the speed of scripting (via Groovy for controllers and Freemarker for templates). Further code related assets like templates, CSS, Javascript, etc, are stored and deployed from Git. This means your developers can work locally with desktop tools if they want, and can leverage their standard DevOps process and tools to move features and functionality forward to production.

Conclusion

To deal with new challenges and the pace at which the Web is advancing you will need to think differently and arm yourself with new ways of working, new architectures, new technologies, and new tools.  The old guard and rebranded WCM solutions are no match for the future we face. With the growth of social, mobile, the Internet of Things, and the coming of age of digital natives we must evolve, innovate, and be able to adapt much more quickly in order to survive. Proper architecture and solution design will play a much bigger role in driving success than simple features. Crafter CMS is open source WEM project and platform that was built from the ground up and has an architecture designed for today and tomorrow’s digital experience needs.

Crafter is a modern CMS platform for building modern websites and content-rich digital experiences. Download this eBook now. Brought to you in partnership with Crafter Software.

Topics:
multi-channel ,web dev ,content management

Published at DZone with permission of Russ Danner, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}