Latest Posts

Archives [+]

Entries filed under 'ecm'

    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.

    Posted by Michael Marth MAR 26, 2009

    Posted in cms, communique, cq5 and ecm Comments 7

    About a week ago we started the CMS Vendor Meme. It's time for a little roundup on how the meme got around:

    The amount of responses that were published since last week completely blew me away. So far, the vendors that have responded are (in chronological order):

    Magnolia, Alfresco, Jahia, Escenic, GX, CoreMedia, Infopark, dotCMS, Midgard, Vignette, Nuxeo, OpenText, EPiServer, Sitecore, Interwoven, Alterian, Hippo, Ektron, Knowledge Tree, and ez Systems

    Also, the meme received quite some attention from CMS users and analysts: on Twitter look for hash tags #cmsmeme and #realitycheck. In the blogosphere Irina Guseva picked it up first, Jon Marks brilliantly commented on the meme as it evolved (here, here and here), Julian Wraith kept an eye on the scores (also correcting the scores of the vendors that did not add up correctly) and commented on individual responses, Bertrand Delacretaz suggested the ID and Juerg Stuker blogged about it in German. Make sure you also check out the discussions: in some of the blog post's comments Kas Thomas, the author of the original list, showed up. And, finally, if you are the type of person that enjoys extensive stats: Cedric Huesler has collected all sorts of data about the answers and compiled this spreadheet.

    This has been a thoroughly enjoyable excercise so far, but I believe that there is real value in it as well. As Kas Thomas wrote: the responses reveal the vendor's DNA.

    Oh, almost forgot. 9c56d0fcf93175d70e1c9b9d188167cf

    Update: added Ektron to the list - thanks Kas for the hint. (30/03/09).

    Update: synched the list with Jon's and added Knowledge Tree and ez Systems (07/04/09).

    Posted by Michael Marth MAR 17, 2009

    Posted in cms, communique, cq5 and ecm Comments 18

    In the last weeks the "7 things about me"-meme has been all over the blogosphere (here are some random examples.). In case you missed it, here's how it works: a blogger reveals 7 previously unknown things about himself. That permits him to "tag" other bloggers, i.e. to publicly challenge them to reveal 7 things as well. If the tagged blogger accepts the challenge he:

    1. blogs about the 7 things he wants to reveal,
    2. provides a backlink to the blogger that tagged him,
    3. and tags some other bloggers he wants to challenge.

     

    It is in this great tradition that we herewith introduce: the

    "CMS Vendor" Meme

    Tadaa!

    The rules:

    • A CMS vendor is challenged to honestly answer all items on the "Reality checklist for vendors" suggested by CMSWatch's Kas Thomas (aka the "we-get-it checklist for vendors").
    • If possible the vendor has supply screenshots, links or other means to make it easy to verify the answers.
    • The answers also need to be supplied in a short form of one to three stars (denoting "no", "sort-of", "yes").
    • Answering all questions on his blog allows the vendor tag some other WCMS vendors.
    • A tagged vendor should provide a link back to the blog that tagged him.

    So here we go:

    1. Our software comes with an installer program.

    Sure, one double click: installed. One folder removed: uninstalled. There are no strings attached.(see the screencast here)

    2. Installing or uninstalling our software does not require a reboot of your machine.

    Of course not. Installing is one double-click only, no reboot needed.

    3. You can choose your locale and language at install time, and never have to see English again after that.

    Well, there is really no install time.. But after that, you change the language in the preferences.



    Hmm. Not perfect. Will settle for "sort-of".

    4. Eval versions of the latest edition(s) of our software are always available for download from the company website.

    CRX (our content infrastructure platform upon which our WCM, DAM, and Social Collaboration application are built) is available for free download by developers for non-production use. Our CQ WCM, DAM, and Social Collaboration applications are available upon request under an eval license. 2 stars only.

    5. Our WCM software comes with a fully templated "sample web site" and sample workflows, which work out-of-the-box.

    Yes


    6. We ship a tutorial.

    Yes, it is part of the help files.


    7. You can raise a support issue via a button, link, or menu command in our administrative interface.

    Ermhh.... Good idea :). Well, in CRX there is a direct link to the mailing list where support is provided. But I'll settle for 1 star.

    8. All help files and documentation for the product are laid down as part of the install.

    Yep.


    9. We run our entire company website using the latest version of our own WCMproducts.

    Of course (we updated www.day.com to CQ5 on the day of the release). dev.day.com is running on CRX and Sling at the moment (will be running on CQ SocialCollab when that's released)

    10. Our salespeople understand how our products work.

    As part of our product launch process, no product goes GA without our internal Sales, Consulting, and Support staff having downloaded, installed, and trained on the new product capabilities.

    I know this for sure because I did parts of the training.

    11. Our software does what we say it does.

    12. We don't charge extra for our SDK.

    There is no extra charge for CQDE (our IDE for CQ development). For lower level JCR development anyone can download our Eclipse plugin. Finally, CQ5 is built upon Sling which is open source, hence the APIs are free and open.

    13. Our licensing model is simple enough for a 5-year-old to understand.

    Make it a nine year old, but we are working on it... however, it is much easier than the usual industry level enterprise pricing... A "sort-of".

    14. We have one price sheet for all customers.

    Same pricelist, different currencies though.

    15. Our top executives are on Skype, Twitter, or some similar channel, and: Feel free to contact them directly at any time.

    Absolutely, all email addresses are on the web. The addresses also work as Jabber/GTalk addresses. Moreover, there is:

    David Nuescheler (CTO): Slideshare, Xing, LinkedIn, david.nuescheler on Skype

    Roy Fielding (Chief Scientist): Slideshare, @fielding on Twitter, Blog, LinkedIn

    Kevin Cochrane (CMO): @kevinc2003 on Twitter, LinkedIn, kevinvcochrane on Skype, YIM: kevinvcochrane, Facebook: kevinc2003


    So our final score is:

     

     

    And we are tagging:OpenText, Coremedia, Interwoven, Vignette (where's your blog?), Fatwire (where's your blog?), Nuxeo, Magnolia and Tridion (where's your blog?)

    Come on, guys. Don't be shy.

    Update: adding the meme ID 9c56d0fcf93175d70e1c9b9d188167cf suggested by Bertrand. Google is our friend.

    Posted by Michael Marth JAN 05, 2009

    Posted in cms, cq, cq5, dynamic languages, ecm, jcr, link of the day, rest, sling and wcm Add comment

    Happy new year... And here's the bunch of links that have piled up in my inbox during the holidays: David Nüscheler has uploaded his presentation about CQ5 to Slideshare (embedded below)... There is a new tutorial on the Sling website on how to use Groovy in Sling... David Dossot has been interviewed about Mule's JCR Transport (he also was on dev.day.com)... I stumbled across a new blog concerned with Day Communique... Hippo CMS has published a tutorial how to access content through JCR... Shane Johnson looked at JBoss DNA's JCR implementation... and finally, Roy's post about the hypertext constraint in REST led to an article on InfoQ

    Introducing CQ 5.1

    View SlideShare presentation or Upload your own. (tags: wcm cms)

    Posted by David Nuescheler SEP 10, 2008

    Posted in cms and ecm Comments 5

    Today a broad group of document management vendors led by IBM, Microsoft and EMC announces their efforts of around a protocol specification for content management interoperability.

    I would like to congratulate the group to all their efforts that has been put into this specification and we look very much forward to participate actively in the standardization process that hopefully will be kicked off soon.

    I am excited that the ECM market has decided to start supporting a protocol specification, which was an often discussed gaping hole in the content management market (see here and here).

    Having a protocol that functionally matches on a protocol level what JCR specifies on an API level for Java is an outstanding opportunity for the industry on its road to become truly relevant enterprise infrastructure and definitely validates all our standardization and infrastructure efforts we have been involved in over the past years. Thus, me and my colleagues at Day would be very happy to contribute our JCR and REST knowledge and experience to future versions of the specification.

    Thanks and congratulations to Al Brown, Ethan Gur-esh and David Choy.