Java - Based - CMS
Java - Based - CMS
Java - Based - CMS
CONTENTS
Getting Started With
Content Management Systems
Java-Based CMS
Apps That Benefit From Content Management
The Pillars of CMS
Foundational CMS Capabilities
CMS Architectures
BY RUSS DANNER What Does a Modern CMS Provide?...and more!
CONTENT MANAGEMENT SYSTEMS types. Content modeling is the act of defining the content model.
Content modeling is typically done as an upfront activity when
A content management system (CMS) is a software application
setting up a content management system, but may require
that facilitates the creation, management (creation, editing
modification over time.
versioning, workflow, etc.) and publishing of content. Historically
speaking, content management systems were invented so CONTENT
that non-technical content creators could quickly collaborate Content is text along with images, video, and other media. Ideally,
to produce and publish content without worrying about the content is captured in a presentation-less format.
technological complexities of displaying that content in a
webpage or application. Today, the CMS is just as important CONTROLLER
to developers as it is to non-technical content managers. The It’s common to want to apply some business logic to the content
line between what is code and what isn’t is more blurred than prior to providing it to the presentation or “view layer.” This is the
ever before. Today, almost every application has content in it. purpose of a controller. A controller is code that can take content
Developers are looking for solutions that allow them to craft based on the model and prepare it for the view/presentation by
and deploy content-enabled apps, websites, and other digital applying business rules.
experiences quickly without having to reinvent the wheel.
PRESENTATION
APPS THAT BENEFIT FROM CONTENT MANAGEMENT Presentation is the overarching term for the technology that
As previously mentioned, nearly every application today has presents the content. This technology may be a template or it
content in it. Here are a few classes of applications that get a may be a remote client such as a mobile app or a single-page
huge benefit when the content they require is supplied by a CMS. application.
CONTENT MODEL
A content model is a definition of the types of content you want
to capture that’s comprised of the fields for each type you want
to capture along with any structural relationships between
GET STARTED
craftersoftware.com | craftercms.org
3 GETTING STARTED WITH JAVA-BASED CMS
Almost all CMS technologies support the pull model for IS A HEADLESS CMS A DECOUPLED CMS?
publishing. Requesting an HTML page is an example of While headless CMS architectures do “decouple” content and
this model. Push-based publishing is more commonly presentation, they do not dictate anything about the publishing
supported by decoupled CMS platforms (and will be
capabilities of the CMS. And while decoupling content and
described later).
presentation is certainly one of the most important things you
can do architecturally, as we can see above, it’s not the only major
Library services are capabilities that support the architecture decision you need to consider. Therefore, it is important
management of your content. These services include:
Library to maintain the traditional use of the term “decoupled CMS” as it
• Content locking (check in/check out).
Services relates to separation of authoring and delivery capabilities.
• Versioning.
• Activity auditing.
A headless CMS can either be coupled or decoupled. Further,
any CMS worth its salt today (decoupled or not) must support
Workflow enables your team to collaborate by break- headless/CaaS-based content delivery.
ing down the content creation and review process into
Workflow
steps/tasks that can be assigned to users or groups of
users for completion. COUPLED VS. DECOUPLED: MAKING A CHOICE
So which approach is the right architecture? The reality is that
there is no single right or wrong answer. The answer depends on
context: alignment with your requirements, your business process,
CMS ARCHITECTURES
and your business goals.
In a coupled system, Our analysis reveals that a coupled architecture can work well
the underlying store for web apps, mobile apps, and other content-backed digital
for your content serves experiences that need to be set up and put on line in short order
both authoring and
delivery.
and that do not need to be able to scale quickly or to publish
Coupled content beyond the website itself. On the other hand, we see that
In a coupled system,
a decoupled architecture is ideal for websites/content back ends
the process of making
content live is typically a that require high levels of availability and performance, need
matter of setting a flag a lot of tailored functionality, must be integrated with third-
in the database. party business systems, and must publish to one or more digital
channels beyond the website itself.
No matter how close the fit a CMS is, the ability to PUTTING A MODERN CMS INTO PRACTICE WITH
adapt the CMS is crucial. You may need to connect with CRAFTER CMS
Developer- other systems in your enterprise (e.g. security, CRM,
Crafter CMS is an open source, Java-based CMS that was
friendly ERP, etc.) or you may need to implement a custom
business rule or feature. The more developer-friendly a designed to handle innovation, scale, and distribution challenges.
CMS, the better. In this section, we’ll walk you through getting Crafter CMS
installed and up and running with two types of digital content
Content modeling is a fundamental capability of a experiences: a traditional website, and a catalog of products that
Strong content CMS. Make sure you can easily define the structure of
can be accessed by an external native application or single page
modeling your content types and the associations (relationships)
between them. application (SPA) via APIs.
A modern CMS can get content delivered wherever STARTING CRAFTER CMS USING THE STARTUP SCRIPT
it needs to whenever it needs to. Traditional CMS
To start Crafter CMS Server: From the command line, navigate to the
Push and pull platforms tend to rely on consumers coming to them
publishing and requesting the content. A modern CMS can meet INSTALL_PATH/crafter directory and execute the startup script:
this need but is just as comfortable pushing the content
• Unix/Linux systems: startup.sh
into a third-party system, as well.
• Windows: startup.bat
A modern CMS is as good for developers as it is for
Library services Note: It takes a few moments for Crafter CMS to start up.
authors. That means integrating with developer tools
that work for
and process — and it also means enabling versioning
developers
and workflow that’s appropriate for code artifacts.
STOPPING CRAFTER CMS USING THE SHUTDOWN
For many, content authoring and management SCRIPT
responsibility is distributed across a team. In order to To stop Crafter CMS Server: From the command line, navigate to the
truly facilitate delegating work, a process or workflow
INSTALL_PATH/crafter directory and execute the shutdown script:
Workflow and is needed to ensure quality and accuracy of content. A
scheduling modern CMS provides easy powerful workflow to help • Unix/Linux systems: shutdown.sh
facilitate collaborative content development as well as
scheduled publishing so that content can be published • Windows: shutdown.bat
at a time in the future once approved.
GETTING STARTED
Now that Crafter CMS is installed and started, let’s get a few
projects set up.
http://docs.craftercms.org/en/3.0/ After logging in, you’ll see the MySites screen (Below). Click on
Templating
developers/templates.html
Create Site.
Give the site a friendly name for the Site Id, give it a description,
and then choose a blueprint. We’re going to be using the
CREATING A TRADITIONAL WEBSITE PROJECT “Headless_Store” blueprint. Blueprints offer you a starting point
A very typical use of a CMS is the creation and management of a for your project. New blueprints can be created and installed into
website. Using Crafter CMS, we can create and manage beautiful the system. As you are entering the site id, spaces are removed
responsive websites based on the front end framework and and uppercase letters are converted to lowercase letters.
design of your choosing. To illustrate this point, let’s leverage an
Click on Create and wait for the system to create your site based
out-of-the-box editorial website blueprint to quickly get up going.
on the blueprint. It’s creating configurations, site content, and
After logging in, you’ll see the MySites screen (below). Click on permissions based on the template provided by the blueprint.
Create Site. When it’s done, you will be taken to the preview of your project:
Give the site a friendly name for the Site Id, give it a description,
and then choose a blueprint. We’re going to be using the
“Website_Editorial” blueprint. Blueprints offer you a starting point
for your website. New blueprints can be created and installed on
the system. As you are entering the site id, spaces are removed
and uppercase letters are converted to lowercase letters.
Click on Create and wait for the system to create your site based
on the blueprint. It’s creating configurations, site content, and
permissions based on the template provided by the blueprint. Figure 3: Once the blueprinting process is complete, the information
When it’s done, you will be taken to the home page of your site: architecture, content, and code of a project can be modified. Figure 3
illustrates a digital experience based on a headless catalog blueprint ready to
be edited.
A B O U T T H E AU T H O R
RUSS DANNER is VP Products at Crafter Software and is responsible for product management,
product development and support, and client and partner success. Russ brings over 20 years of
software architecture, design, and implementation experience. Prior to Crafter Software, Russ was Web
Experience Management Practice Director at Rivet Logic and project lead for the open-source Crafter
CMS project. Russ has also been active in the open source community since 2000 as a community
leader, contributor, trainer, speaker, and user group organizer.
DZone communities deliver over 6 million pages each month to more than 3.3 million
software developers, architects and decision makers. DZone offers something for
everyone, including news, tutorials, cheat sheets, research guides, feature articles,
source code and more.
DZONE, INC. REFCARDZ FEEDBACK
"DZone is a developer's dream," says PC Magazine. 150 PRESTON EXECUTIVE DR. WELCOME
[email protected]
CARY, NC 27513
Copyright © 2017 DZone, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval SPONSORSHIP
system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior 888.678.0399 OPPORTUNITIES
written permission of the publisher. 919.678.0300 [email protected]