Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


SDL Mobile Technical Overview Workshop

No description

Peter Joles

on 1 August 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of SDL Mobile Technical Overview Workshop

Possible Solutions for Rendering Mobile Sites
Use CSS files to present a different layout of the Web site depending on the user-agent making the request
Responsive Design
Create dedicated Component Templates, Page Templates and style sheets that present a mobile version of your Web site
Mobile Templates
Third-party technology provider
Documentation - http://goo.gl/XmvL8E
Context Engine Cartridge
Use Context Engine Cartridge to retrieve, and respond to, information about the user visiting your Web site, as well as the hardware and software used to access the site.
System Diagram
An aspect is a set of property-value pairs related to the browser used, the device used, or the operating system used.
One or more aspects of the context.
Context Map
Resolution occurs via a
chain of context resolvers
, each of which can enhance the aspect properties of the context map. The context properties adhere to a
defined vocabulary
. For example:
Context Resolvers
Context resolvers express their confidence
in the validity of the
aspect property values
they provide in the form of a number called a
trust value
. The more confident a resolver is, the higher the trust value. The highest trust value wins out!
Context Resolvers - Confidence
the visitor is accessing your Web site in a Google Chrome browser > version 27.0.1453.116 m > iPad 2 running iOS 6.1.3

Context Engine Cartridge captures all of this information (and more) and returns it in the Context Map which is made available to a SDL Tridion implementer as a set of Claims in the Ambient Data Framework Claim Store.
Browser Aspect and Properties
Device Aspect and Properties
OS Aspect
Context Engine Cartridge uses (in sequence):

User Agent Parser Resolver
Repository Resolver
Discovery Resolver
Default Resolver
Expression Resolver
Context Resolver Types
Uses user agent strings
, supplied
in the HTTP request
originating from the client,
as evidence

It then applies pattern-matching rules to obtain values for the following aspect properties:


User Agent Parser Resolver
Uses user agent strings
, supplied
in the HTTP request
originating from the client,
as evidence

It then
its repository
known user devices
to obtain values for the following aspect properties:
Repository Resolver
Runs client-side JavaScript
code to
capabilities of the device
and to
determine current settings
, such as browser width.

Specifically, it obtains values for the following aspect properties:

Discovery Resolver
Context Vocabulary file
, in which you can define your own aspect properties.

This file lists the name, context expression (evaluating to its value), data type and trust value of each aspect property.
Expression Resolver
aspect properties
in the
Context Map
have not yet been assigned a value
to their predefined default value.

For example, if none of the Resolvers have been able to determine whether the connecting device is a mobile device or not, the Default Resolver sets device.mobile to the default value false.
Default Resolver
The Context Repository data
as new devices come to market.

Getting the latest data from SDL can be completed with a simple one line command line:
Device Database Update
java -jar lib\cwd_engine.jar http://context.sdl.com/update
A CEL expression is a
language expression
determines the value of an aspect property
, which you define in the Context Vocabulary file used by the Expression Resolver.

A CEL expression
can contain CEL variables, CEL literals and CEL operators

Context Expression Language (CEL)
Use CSS files to present a different layout of the Web site depending on the user-agent making the request
CEL Operators
Include the following in your template code:
tcdl:if and CEC
<tcdl:if expression="device.mobile">
Instead of using our Web site, why not <a href="http://www.example.com">download our app</a>?
TCDL is a
technology-neutral language
you can use in your templating code - CT's and PT's

Depending on the Output Format of your Component Template,
TCDL tags get transformed
into your Web
site's language
at publish time or at request time.
When publishing to JSP or ASP.NET, this tag is transformed into a 
context:if tag
that the Context Expression Extension can handle.
Use this tag to render the result of the expression specified in its expression attribute.
tcdl:eval and CEC
<tcdl:eval expression="'Greetings, ' + browser.model + ' user!'"/>
When publishing to JSP or ASP.NET, this tag is transformed into a 
 tag that the Context Expression Extension can handle.

At request time, a visitor using Google Chrome will see the text "Greetings, Chrome user!"

Context Engine Cartridge uses
"Aspects" to divide information
, CEC comes with 3 aspects out of the box "device", "browser" and "os".

Claims are identified following this naming convention:
ADF Claim Store Access of Aspect Properties
Uri claimUri = new Uri("taf:claim:context:
CSS files
JavaScript files
Components and CP's
Promotions (touch-friendly slider?)
Related Items
GPS/Location aware input (using a custom cartridge)
Device specific views
What using SDL Mobile can be Personalized in Delivery?

Device Preview
Device Preview allows you to
edit content in Experience Manager
as it is displayed in a
handheld device
such as a mobile, smartphone, or tablet.
Documentation - http://goo.gl/ILGeDX
Which devices are you looking to target? Tablet/mobile or desktop?

Device name and icon
User agent
Portrait or landscape
Image and its dimensions
View port location and dimensions

Food for Thought
How will this operate in a single publication driven site?
Your delivery framework should access the content engine claims in ADF to:

Get the user agent
and based on the user agent
pass off the request to device specific view
In your
view or controller
you might want to
additional Context Expression Language (
CEL variables
) and
ADF claims
control what is delivered
to whom.
You effectively control the model that gets passed to your view and in the view you can control the HTML, CSS, JS and components that are displayed for a certain CEL expression.


Show jQuery
touch based image carousel
to devices that have '
' input devices.
right rail
left rail
for devices that are deemed to be
Display a
slide out navigation
with a
reduced number of high level pages
Show p
romotional content targeted
viewing the site on a mobile device.
Use the
GPS co-ordinates of the mobile device
display geographically aware news stories or events
retina resolution images
specifically for
certain devices
or showing different mark-up (teaser vs. full body)
If the browser's
display width
less than 320px
then show a
small navigation
If the device's
pixel ration is equal to 2
show retina-display ready images
How will this operate in a multiple publication driven site?
How might you mark certain structure groups to be excluded or included in a mobile delivered navigation?
metadata - based on Metadata Schemas. You could have an option to exclude or include this Structure Group in the mobile navigation
How should components in the CM be tagged such that you can filter correctly based on ADF claims and CEL Expressions?
Schema design
Categories and keywords
Component metadata
Target Groups

Should a single view handle all device families (i.e. desktop, mobile, tablet) or should a controller hand off to a specific device family view?
Can and should you wrap the CEC aspects and their properties?
Can Context Engine Cartridge claims be used in SDL Smart Target as triggers?
Can Personas and Custom Footprints in Experience Manager be used to leverage the claims that are exposed by the Custom Engine Cartridge?
A persona is a
fictional Contact
that represents a target demographic.

You can create these fictional Contacts in Content Manager Explorer. By defining an Address Book of fictional Contacts, you turn that Address Book into a set of personas. These personas appear in the dropdown in the Preview tab of the ribbon toolbar.

Footprints Explained
A Footprint is a specific property of a browsing session, such as the browser being used, the geographic location from which the Web page is accessed, and so on. Combine Footprints, set to specific values, into a Footprint Set to enable the user to see what the Web page would look like if those conditions would apply.
A Footprint refers to a Claim in the Ambient Data Framework that should trigger a change on the Web page.
Typically, you would use
for this.

Custom Footprints correspond to Ambient Data Framework keys.
Custom Footprints
Can and should you use a hybrid of server side device capability detection and responsive web design?

power is in the hybrid of server side device capability detection and responsive web design

Client side capability discovery can be used to enrich service side capability discovery and the two techniques
can sit side-by-side
to allow you to
play to the strengths of each

Java and C# libraries that expose claims as strongly-typed properties of Device, Browser and Operating System
+ ASP.NET web controls that can display different markup for Device Families
ASP.NET MVC Family Html Helper
Allows for additional device families to be specified along with the conditions that must be met for that family.

Tridion Context Engine Wrapper - https://github.com/NunoLinhares/
TridionContextEngineWrapper - Nuno Linhares
Functionality available in SDL Tridion 2011 SP1 & 2013 SP1
Advanced Device Detection
Client Side Discovery
Device (Context Recognition) updates and profiles
Mobile through SDL Tridion Experience Manager
Context Expression & Targeting
One site - multiple device specific, optimized delivery
No additional license is currently required to use it.
Available in Q1 2014
Contextual Image Delivery
Context Engine / SDL Mobile Advantages
Does SDL Mobile play well with MVC?

Rob Stevenson-Leggett - http://goo.gl/SeRjQS
Workshop Agenda
Aspects and their Properties
Touch on Templating
Food for Thought
Different Mobile Solutions
CEC delivers 3 Aspects
Can you expose Context Engine Aspects and Properties to SDL Smart Target?
I.P. acquired through Bemoko acquisition is now being actively integrated into SDL Tridion
Bemoko Acquisition > SDL Mobile
What is not covered in this workshop
Low-level details about installation and configuration
Actual coding of Component Templates, Page Templates or Delivery Templates
What is covered?
SDL Mobile Technical Overview Workshop
To perform discovery of aspects and their properties, expose a part of Context Engine Cartridge called Discovery Resolver by copying a JavaScript file to your web application. Make reference to the JavaScript file from all pages that will use the CEC
Discovery Resolver
Include a tag library to enable the use of Context Engine Cartridge tags to retrieve aspect properties.
Using aspect properties - JSP
<%@taglib prefix="context" uri="http://context.sdl.com/taglib" %>
Using aspect properties - ASP.NET
A CEL variable is
any named aspect property
, such as browser.model or device.model, or
any aspect property defined in the Context Vocabulary file itself
. A string of the form claim[<CLAIMURI>], possibly followed by a get method, also acts as a variable.

Named aspect properties are
either listed
in the
aspect property reference
created through Claim translation

You can also retrieve a Claim value directly from its Claim URI by writing the following:

CEL variables
CEL accepts literals for every data type, as well as a null variable, arrays and maps.
CEL literals
integer, float, "string", boolean, [1,2, "three"], {"mapKey1:1, "mapKey2":2}
What existing claims might you want to expose via translation as properties that can be used in expressions?
Uri claimUri = new Uri("taf:claim:context:

string isTablet = Tridion.ContentDelivery.AmbientData.AmbientDataContext.CurrentClaimStore.Get<String>(
var contextEngine = new ContextEngine();
bool isTablet = contextEngine.Device.IsTablet;
or via a wrapper...
John Winter - http://goo.gl/q8Smue
This is a not a functional design workshop.
User Stories
User Story
sets the stage
stating the need

Simply put, written from the context of the user as a simple statement about their feature need. They should generally have this format. "
As a -role-, I want -goal/desire- so that -benefit-
What is a user story?
In SDL Tridion, I can manage how content looks on different devices
As a Developer I can manage how a page looks on different devices
As a Content Editor I do not have to upload different images for different devices
As a Content Editor I would like to provide different images for different devices
Misc. User Stories
User Stories
Eric Huiza - http://goo.gl/TxjtbJ
Rob Stevenson-Leggett - http://goo.gl/SeRjQS
As a Content Editor I would like to edit content as users of the device would see it
As a QA Tester I would like to be able to test content for different devices without having to view it on that device
Claim URIs
Context Engine Cartridge custom vocabulary

That is, any third-party Claim URI values are mapped into a custom aspect and property. They are then available to be used by the Expression Resolver.

Translation Resolver
List a number of simple statements about a user’s feature need.

This will then be used to
possible means of resolving that need using SDL Mobile, SDL Tridion and its other modules.
As a mobile user
I have content presented to me that is relevant and appropriate for my device (content, format, file size, layout)
As a mobile user
I only download page content relevant for my device

Example User Stories
End user scenarios
provide relevance
strategic process

Speak to
user’s place
in their
customer journey

Benefits of User Stories
As a web site user
in my 30's, I want to get information on your products or services. I primarily use my mobile phone for browsing your site.
As a Marketing Executive
, I want to target promotions to users of a specific age group who access our site from a mobile device in a certain region of the US.
As a front end developer
I want to display a touch friendly image/news slider to user's accessing the site from a touch friendly device.
As a Content Editor
I want to preview a page in multiple devices and be able to simulate different user characteristics and its effect on the page.
As a website user
I usually prefer viewing a site's mobile site on my iPhone whilst at other times I like the option of viewing the desktop site.
As a Content Editor
I want to mark certain content components in CME such that they can retrieved for display on mobile devices.
As a Marketing Coordinator
I want to display a super-high resolution promotional image to mobile users who have retina capable displays?
As a Brand Manager
I want an area on my site to display different content based on a combination of factors - time of day, region in U.S. and device family.
As a tablet user
I want to see a tablet friendly website design that renders appropriately in my browser without zooming.
As a web site user
accessing the site over a mobile device I would prefer to be presented with a streamlined navigation.

We covered a number of user stories that highlighted a number of mobile needs for various individuals. By working through each use case it should be clear that there are numerous functional aspects of SDL Mobile and Tridion that can be used to control, personalize and target device specific content.
• Page Regions
• Components
• Component fields
• Navigation
• Images
Specification and customization beyond screen sizes

Developers refer to the functional and technical design for direction
Before, beginning work on schemas and templates, Device Families should be created and defined
Create them as Target Groups
Create them in a Taxonomy as a category with a number of keywords

Preliminary Tasks Before Adding Content
Define the Target Group Characteristics
by using a
GUI Extension
or a
Console Application
to create the expressions
“Device Family” should also be added and managed in
at a Schema level
Device Families are then selectable (to help define what is displayed) in template
You specify at a
page template level
which regions should be displayed to which device families.

For example:
you could have the side bar region only display for desktop and tablet users.
Device-specific fields can also be defined in a schema
Within Pages
Device-specific components presentations
can be set to render for
certain target group(s)

For example:
just display the ‘Discount Component’ Component Presentation for Tablet devices

Multiple Device Specific Target Groups can be applied to Component Presentations added to a Page. This facilitates CP being displayed for more than one device family.

Within Navigation
Open properties of a Structure Group and select appropriate device families in a ‘device families’ metadata field. After which you’d just need to republish the navigation sitemaps

As a Content Editor I can manage what content is shown on what devices
Content Editor adds content for device-specific fields and images. Mobile Title and Mobile Image, etc.
These fields are available as a result of additional fields being added to schemas

Within Components
Device-specific components presentations can be set to render for certain target group(s)
For example just display the ‘Discount Component’ Component Presentation for Tablet devices
Multiple Device Specific Target Groups can be applied to Component Presentations added to a Page. This facilitates CP being displayed for more than one device family.

Within Pages
Open properties of a Structure Group and select appropriate device families in a ‘device families’ metadata field.

Afterward just republish the navigation sitemaps
Within Navigation
You do not have to provide different images as
sizing dimensions
of images can be
defined by developers
so that the image is
automatically resized
or at
request time

On the fly image resizing
is expected to be added to
SDL Mobile in Q1 of 2014
. In the mean time you can either use DD4T’s image resizing capabilities or develop you own.

during publishing you could create image variants for each device family.

Overall Benefit
: Images are optimized for the device’s capabilities and bandwidth.
You do not have to provide different images
Specify images for device families at the component level
This could be as simple as a checkbox asking, “no image displayed on mobile”.

Alternatively the component could have
separate image fields
for each device family. If the field is not populated then it can be assumed you do not want to display an image for that device family.

Populating each device specific image field for each device with a separate image will mean that you can control what image is displayed to a particular device.
Separate device specific images fields can be defined for components
XPM's Device Preview allows you to edit content in-context
XPM's Device Preview, Personas and Footprints
Use personas and Footprints to let the user see a Web page as another user, or as if other conditions applied.
SDL Smart Target can be passed any ADF Claims though configuration.

As a result it can be made aware of new Claims created by the Context Engine Cartridge. Smart Target triggers can make use of any Context Engine Aspect property in addition to any custom ADF claims or properties you define. This has to be done through configuration and is not out of the box.

John Winter - http://goo.gl/wOmK4Z
What is the Context Expression Extension in relation to SDL Mobile?
Hint -
CMA and Target Groups
The Context Expression Extension makes campaign management and analysis data, compiled by the SDL Intelligent Marketing Suite (also called CMA), available for use on your SDL Tridion-based Web site.

To use the Context Expression Extension, you must have an integration with CMA set up.
The Context Expression Extension framework
of the
following parts

Target Groups with context expressions

Integration with CMA creates these Target Groups in the Content Manager. The Target Groups contain context expressions that users can view and publish, but not edit, in Content Manager Explorer.

Context Expression Deploy and Undeploy Modules
These Content Deployer Modules extract the context expressions from their Target Groups and make them available on the Presentation Server.

Context Expression Cartridge

This Ambient Data Framework Cartridge picks up context expressions and forwards them to the Context Engine Cartridge for resolving.

Context Engine Cartridge

This Ambient Data Framework Cartridge resolves the context expressions and makes them available as Claims, which can be used to personalize your Web content.
You will have gained an understanding that SDL Mobile can be
used in a number of different ways
using other SDL Tridion Modules. A benefit directly attributable to Aspect Properties being exposed as ADF Claims.

It will be apparent that there is a
growing number of community generated articles
pertaining to the Context Engine Cartridge.
Discuss the moving parts of SDL Mobile
Discuss how SDL Mobile works with other modules and libraries - SDL Smart Target, Device Preview, DD4T
Determining a Baseline
To gain an understanding of current SDL Mobile knowledge and any aspirations for mobile delivery in light of that understanding
What do you know already about SDL Mobile?
Do you currently have a mobile site?
What are your mobile aspirations?
Which devices or device families are you looking to target?
Starting Questions
2011 SP1 and 2013 SP1
have the same Context Engine
GA versions
of 2013 and 2011 have the now
deprecated CE 1.0
(mainly device detection)
both contain
the content delivery functionality (
tcdl:if and tcdl:eval
, etc)
2013 SP1
is the only one with the
needed from CM side for "
Context Expressions
2011 SP1
does not have the Target Group enhancements for CMA
2011 SP1 does not ship with the installer and configuration files. Available from SDL Support.
Differences between SDL Mobile and 2011 SP1 and 2013 SP1
Explain what an Aspect is and list the 'out of the box' Aspects and their Properties.

Explain how to extend aspects with your own properties.
Extending Aspects
You can declare new properties to existing aspects or create new aspects and properties.

By doing so you can expose and combine custom ADF claims as Context Variables and use them in Context Engine Expressions.

You can write a GEO location ADF cartridge that exposes City information as a Claim or you could write a custom Resolver to provide the same information. Possibly called the ‘GEO Location Resolver’
You can create new aspect properties by creating a
custom vocabulary file

These new properties can be returned by the Expression Resolver and configured in the Context Engine Cartridge configuration file for the Ambient Data Framework.

Creating new aspect properties
New aspects and properties are defined in a vocabulary configuration file.

This file is referenced directly by the Context Engine Cartridge which in turn is configured within the Ambient Data Framework. After adding new aspects and properties to
you will then need to expose them as Claims in your Cartridge Configuration File (
) by defining a
Claim Definition element

Vocabulary File
To define properties that
make use
new Claims
you should make use of

The new properties can then be used in you custom vocabulary file, or in a Context Engine Cartridge TCDL tag.

Edit your Context Engine translations file,
and add a new translation.

Translation file example
In this example you translate the

to the

Combining properties in an expression to form a new property
You can use that new aspect property in the previous slide within a Context Expression to define a new aspect property.
Use new aspect property in TCDL expression
Write down with 3 custom aspect properties you feel would be useful to during contextual personalization
Aspect Properties, ADF, JSP and ASP.NET Usage Diagram
You will know about each of the aspects and will have an understanding of the numerous properties of each aspect.

You will have gained an understanding of the value in introducing new aspects and properties and how that they can work together with other ADF Claims.
Understand the role that of Resolvers play in determining context.
Gain an understanding of template syntax for TCDL, JSP and ASP.NET and how Context Expressions are formed by combining CEL Variables, CEL Operators and CEL literals.

REL and Content Delivery Web Service
REL stands for
Render Engine Language

If your
Component Template’s Output Format is set to REL
marked for publishing dynamic components
and your Publication Target’s
Target Language
is set to
then TCDL tags are
transformed at request time
rather than at publish time.

Your TCDL tags are
now published 'as is'
, and at request time, a Java class transforms the TCDL tags to ASP.NET or JSP, executes that code and
places the result in the Web service response
CEC Custom Tag / Server Controls Setup
Content Deployer
responsible for deploying website content
needs a new TagBundle declared
and a
new jar file deployed

All web sites need the Context Engine Cartridge Tags and Server Controls configured:

- addition of a jar and change to
– addition of 2 dlls and configuration update to
to add the new server controls

You will have a better understanding of the benefits that context expressions provide and how aspect properties can be combined with variables, operators and literals to hide or show content based on context.

We covered how Context Expressions are used in TCDL, JSP and ASP.NET and how Aspect Properties can be retrieved as Claims through ADF.
Gain an understanding of the types of content that can be manipulated to produce a personalized contextual experience
Given your SDL Mobile goals, list out the various elements that you might want to be personalized
Multiple Fields
Title, Image and CP Differences
XPM Footprints
As a Content Author you can visualize how a page might render differently for different devices and particular Context variables. This is done using a combination of Device Preview, Personas and Footprints.

Care should be taken to expose key Aspect Properties as Footprints.

Audience Manager – Target Groups
If you have an installation of the SLD Intelligent Marketing Suite (CMA) then you can have it publish Context Expressions to SDL Tridion as Target Groups. These Target Groups with Context Expressions can be applied to Component Templates. At present a context expression can’t be created by content authors in CME. The respective tab on the Target Group is marked as read only. Developers can if they so please create Target Groups with Context Expressions by creating a console application. This would work around the current dependency on CMA.

You will understand how to test SDL Mobile template functionality from within the XPM interface using Device Preview and Footprints.

Knowledge about what can be personalized will explain that SDL mobile is
not just about mobile
- It’s also about
personalization and context
Device Families as Target Groups
Target Groups are made available to determine which components presentations are shown to which devices on a page
Page Template regions for certain device families
To ask and answer a series of SDL Mobile related questions. The questions are designed to
invoke debate
get you thinking
about the
various possible solutions

You will know the high level advantages of SDL Mobile and the differences in functionality between Tridion versions.
You have expressed your understanding of SDL Mobile and have explained what you’re hoping to accomplish by having it integrated into your solution.
You will have gained knowledge about where to obtain the official documentation for the Context Engine Cartridge in addition to have been given a walk through of a typical request involving the Context Engine Cartridge.
You would have gained knowledge that
Resolvers are chained
together in a
predefined order
and that they are
populating aspect properties
in the context map. Each resolver along with any custom resolvers you choose to develop sets its
for the properties it sets. Other resolvers with a higher confidence can overwrite properties set by resolvers with a lower confidence value.
Device Preview
Page Regions
– hidden or displayed for certain devices
Device Specific
Component Fields
Device Specific
Image Fields
Image Resizing

Target Groups
with added Context Expressions applied to Content Presentations
Tagging components though an association with a
taxonomy of device families
Aspect Properties
Custom Aspect Properties
Full transcript