Latest Posts

Archives [+]

Entries filed under 'wcm'

    Posted by Kas Thomas AUG 25, 2011

    Posted in cq5 and wcm Comments 8

    Customer Experience Management (CEM) aims to empower and delight customers by (among other means) giving web visitors exactly the information they need, in the right form, at the right time. Doing this reliably, in real time, can be a challenge. It requires Web Content Management software that can aggregate relevant user information from a variety of sources so as to drive intelligent provisioning of content on a page according to predetermined strategies.

    Adobe's Web Experience Management offering (part of the new Adobe Digital Enterprise Platform) rises to this challenge with a patent-pending technology called the Clickstream Cloud.  

    The Clickstream Cloud represents a dynamically assembled collection of user data that can be used to determine exactly what content should be shown on a given web page, in a given situation.

    To see the Clickstream Cloud in operation, simply type Ctrl-Alt-C from within any web page. The Cloud summary toggles into view.

    file

    A variety of types of information are shown for the given user:

    • Profile data typically shows the user's registration data (assuming the user has registered with the website): Name, e-mail address, occupation, age, mailing address, phone number, and any other information the user has previously submitted in a registration process. This could also include social network information, data pulled from a CRM system, etc.

    • Tag cloud data shows the tags that were of interest to this user. Mousing over any of the tag names causes a tooltip to appear, showing the number of times the user has accessed a particular tag.

    • Page data shows the number of times the page has been visited, the page's title, and the Random factor as used in the random strategy of a campaign.

    • Surfer info shows the IP address, keywords used for search engine referral, the browser being used, the OS (operating system) being used, the screen resolution of the device the visitor is using to view the web page, and the mouse X-Y position on the page.

    • Events shows activity-stream information from SiteCatalyst.

    • Resolved Segments shows which (if any) defined segments of a marketing campaign have been matched.

    Several things make Adobe's implementation of the Clickstream Cloud unique:

    1. Much of the information (such as info about the user's viewing environment) is derived on-the-fly, in real time.
    2. Marketers can experiment with different user-data values to see changes to a page in real time (for purposes of trying different campagin strategies). The Edit button in the upper right portion of the panel allows for manual editing (overriding) of user-data values.
    3. The Clickstream Cloud is extensible. You can add a new (custom) session-store object whose contents can be displayed in the panel.
    4. Non-volatile information shown in the Clickstream Cloud viewer is persisted on the client side (in a cookie), relieving the server of having to maintain (and then transport back and forth) large amounts of user data.

    Because user info is persisted on the client, concerns over privacy and control of potentially sensitive user data are easily allayed: The user has ultimate control over the data.

    The Clickstream Cloud is a container for different data stores (also called session stores), which extend either CQ_Analytics.SessionStore (for values computed on page load) or CQ_Analytics.PersistedSessionStore (for values persisted from one page to another).

    Each data store is built up of property pairs (names and corresponding values) and represents a logical collection of properties (for example, profile properties).

    The default session stores available in Adobe WEM can be obtained from a call to CQ_Analytics.ClickstreamcloudMgr.get(), which returns an object with properties of:

    profile (correponding to CQ_Analytics.ProfileDataMgr)

    eventdata (correponding to CQ_Analytics.EventDataMgr)

    tagcloud (correponding to CQ_Analytics.TagCloudMgr)

    pagedata (correponding to CQ_Analytics.PageDataMgr)

    surferinfo (correponding to CQ_Analytics.SurferInfoMgr)

    mouseposition (correponding to CQ_Analytics.MousePositionMgr)

    There's much more goodness tucked away in the Clickstream Cloud's APIs, which we'll visit in another (followup) blog post soon. But for now, if you want to get into the details yourself, there's no easier way to get started than to consult our documentation here and (for even more detail) here.

    Posted by Kas Thomas NOV 12, 2010

    Posted in cq5 and wcm Add comment

    One of the most painful parts of dealing with enterprise software, for me, over the years, has been dealing with the installation process. In a previous life, I worked for a large software company that offered a suite of identity-management products built on Java technology. We were quite proud that we had eventually gotten our installation process down to something that could be accomplished in a morning. There were several individual product installers; each had multi-panel wizards to contend with; and some of the information that had to be entered manually in the wizard panels was maddeningly obscure. Still, we congratulated ourselves for being "better than [such-and-so competitor]" (whose product required two days of on-site activity by company-trained specialists, to lay down a working install of the product).

    The first time I saw Day CQ, I was working for another company (where we routinely evaluated WCM products from various vendors). I still remember the bemusement that came over me when David Nüscheler explained to me the one-click installation process for CQ. When he said that the process was so easy even his mother could do it, I thought he was joking. (I half-suspected that his mother was a computer-science professor. There had to be a catch, I thought. But there wasn't: David assured me that his mother knows nothing about classpaths, properties files, JDBC drivers, JNDI names, or any other such arcana.)

    Sure enough, it turns out CQ5 (one of the most powerful and sophisticated enterprise-class content management systems available at any price) can be installed with a single click -- and no wizard panels, no setup dialogs, nothing to enter manually. Which is why we get Tweets from customers like the one yesterday from @CedricHaindl that said "Just Installed #day #cq5 in 412 seconds and one single click - I'm gonna love this system!" It truly is the easiest-to-install system of its kind. One click does the trick. And for a world-class WCM system that runs on Windows, Solaris, Linux, AIX, HP-UX, Mac OS X, or SGI IRIX, that's saying something.

    If you haven't yet taken CQ5 for a spin, contact Day here (and if you want to be part of the CQ 5.4 beta program, go here).

    Posted by Michael Marth JAN 13, 2010

    Posted in atom, cmis, jcr, lotd, standards, wcm and webdav Add comment

    Following up on Jon Marks' post on standards relevant for content management Justin Cormack has put together a "Standards Diagram for Content Management" Prezi landscape. Nice work!


    The part "structuring" in Justin's presentation contains Docbook and DITA. Theresa compared these two standards a while ago:

    Posted by David Nuescheler NOV 05, 2009

    Posted in cms, cq5 and wcm Add comment

    Today I had the opportunity to speak at the JBoye conference in Aarhus. It was a pleasure as every year since the audience and speakers really constitutes a who-is-who of WCM visionaries and insiders. I am definitely looking forward to coming back next year.

    Posted by Michael Marth JUL 16, 2009

    Posted in data first, ecm and wcm Comments 8

    OK, I admit it, declaring that "the RDBMS is dead" is a meme that has been going around the software industry for a while. Remember object-oriented data bases that were supposed to replace the relational ones? Well, guess who is still here. However, despite the RDBMS's amazing survival skills I would like to propose a related prediction:

    I believe that the year 2009 will go down in history as the year when the "relational model default" ended. The term "relational model default" was coined by me to describe a peculiar thing that goes on in application development: start talking to your average application developer about some arbitrary business requirement and chances are that simultaneously he mentally constructs a relational model to fit those requirements.

    That relational approach to modeling your problem may or may not be suitable. The real problem is that all too often this default does not get challenged. As a consequence, whatever the fitting data model might be, it gets shoehorned into tables and relations.

    This default "thinking" has not yet changed for the masses, but I believe that it has changed for the early adopters (which means that invariably it will change for the masses in some years).

    I see the default to change from:

    "I need to store some data i.e. I need a relational database"

    to:

    "I need to store something, let me see the data to decide how to store it."

    The most concrete and visible manifestation of the rising interest in non-relational data store is the "NoSQL" movement. NoSQL denotes a group of people interested in exploring and comparing alternatives to the traditional relational data storages like MySQL or Postgres. The inaugural get-together has been covered in Computerworld, see also Johan Oskarsson's post and there is, of course, a Hashtag.

    Other than the NoSQL group I have a second data point to offer: there is a Cambrian Explosion happening in terms of projects exploring non-relational data stores. During the Cambrian Explosion a major diversification of organisms took place. Similarly a plethora of new projects that explore alternatives to relational models continue to gain interest. Here is an incomplete list:

    AllegroGraph, Amazon's SimpleDB, Cassandra, CouchDB, Dynomite, Google's App Engine datastore, HBase, Hypertable, Kai, MemcacheDB, Mongo DB, Neo4J, OpenRDF, Project Voldemort, Redis, Ringo, Scalaris , ThruDB, Tokyo Cabinet (and Tokyo Tyrant and LightCloud)

    Last, but certainly not least, there are Apache Jackrabbit and Apache Sling.

    From my perspective there are three main areas of innovation in this Cambrian Explosion of data stores:

    1. Models
    In the relational model you break down your data into tables and relations. This model implies that the data is somewhat tabular. However, in some cases the data simply is not tabular.

    Consider web content, which is hierarchical and mixes fine-granular data with binary files (this model is implemented in Jackrabbit). Other (not mutually exclusive) alternative models are document-oriented, key-value pairs, or Graphs/RDF.

    One very important aspect of many alternative models is that they are schemaless. That means that they accommodate for Data First approaches where it is not required to define the data structure before one can actually store any data. This enables agile approaches to software development in the short term as well as more flexibility in the long term evolution of business requirements.

    Without defining a data structure first it is not possible to store anything at all in an RDBMS. This fact is probably one of the root causes of the relational default thinking. An RDBMS-based developer simply cannot develop anything without thinking about table structure.

    2. Scalability
    A second area of innovation is scalability. This can be split down into two sections: One is scalability achieved by distributing the data store across separate machines, the approach pioneered by Google. Opposed to classical clustering of RDBMSs the order of magnitude of machines that are considered is hundreds rather than ten. Obviously, different trade-offs regarding consistency and availability of individual cluster nodes must be taken when architecting for such a high number of cluster nodes. Eventual consistency is one of the interesting concepts invented in this space.

    While the commoditization of server hardware triggered this first approach to scalability, a second area is related to the rise of multi-core processors. For a number of years CPUs have not gotten faster, but rather the number of cores has increased. There is no explicit contradiction in running a classical RDBMS on a multi-core machine and even having the RDBMS take advantage of them. However, it seems to me that the SQL language is a poor fit for queries in a multi-core environment when compared with alternatives such as Map/Reduce which are parallel by design.

    3. Web
    The third area of innovation revolves around the fact that the web is the dominant paradigm for computing in our time. This is also acknowledged by the two considerations discussed above. However, a third one is that HTTP is used for accessing the data. Other types of connectivity that were typically implemented as JDBC or ODBC drivers are not needed/used anymore. In many cases the data store exposes its resources in a RESTful API. An obvious benefit is the ubiquitous availability of clients including the browser itself. The classical RDBMS approach involving a dedicated driver looks like a client-server architecture mindset in comparison (I wrote about this 1.5 years ago).

    At this point let me re-iterate that RDBMSs are here to stay, just like mainframes never went away. Moreover, a couple of the innovation areas cited above are not that new at all, especially, when it comes to non-relational data models (for example, I recently dug into the foundations of the Lotus Notes document store and came out very impressed). However, it is only now that the relational model default will disappear.

    What about content management systems?

    Considering the content management system industry as a whole I am extremely happy about this shift away from RDBMSs. Especially the model aspect is crucial: RDBMSs embody a fundamentally wrong model for content. There are varying opinions in the industry about what "content" really is, but one thing is more or less universally accepted: it is (at least partially) unstructured. Well, RDBMSs are designed for structured data. Duh.

    So why are there one gazillion LAMP-based CMSs? I blame the relational model default. But as this default vanishes we will see more and more CMSs that are not based on an RDBMS (see the Jackrabbit wiki for a list of JCR-based ones, as well as the recent PHP-based JCR implementations Jackalope or for Typo3 or the Midgard content repository).

    Don't laugh, but I truly envision a better (CMS) world once more CMSs are built upon proper tools and not forced into a relational model anymore. It will be a better world for developers and consequently for the CMS users.

    What about Day?

    REST and content repositories were invented and evangelized by Day's Chief Scientist Roy and Day's CTO David years ago already. So it is no surprise that Day's content management systems are in an excellent shape with respect to these considerations. CQ5 is built upon Apache Jackrabbit, i.e. a data store that implements a content-centric model, and Apache Sling, a web framework designed to be RESTful right from the start.

    When it comes to scaling: a week ago we gave a live demonstration on how to install and cluster CQ5 on Amazon's EC2 service. But, expect even more exciting news in this area.