<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ecmarchitect.com &#187; Drupal</title>
	<atom:link href="http://ecmarchitect.com/categories/content-management/drupal/feed" rel="self" type="application/rss+xml" />
	<link>http://ecmarchitect.com</link>
	<description>Jeff Potts on ECM, portals, search, collaboration, and a bunch of personal stuff</description>
	<lastBuildDate>Wed, 28 Jul 2010 06:19:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Alfresco, NOSQL, and the Future of ECM</title>
		<link>http://ecmarchitect.com/archives/2010/07/07/1176</link>
		<comments>http://ecmarchitect.com/archives/2010/07/07/1176#comments</comments>
		<pubDate>Wed, 07 Jul 2010 12:00:32 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[NOSQL]]></category>
		<category><![CDATA[Zope]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Metaversant]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[WCM]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=1176</guid>
		<description><![CDATA[Alfresco wants to be a best-in-class repository for you to build your content-centric applications on top of. Interest in NOSQL repositories seems to be growing, with many large well-known sites choosing non-relational back-ends. Are Alfresco (and, more generally, nearly all ECM and WCM vendors) on a collision course with NOSQL? First, let&#8217;s look at what [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.alfresco.com">Alfresco</a> wants to be a best-in-class repository for you to build your content-centric applications on top of. Interest in <a href="http://en.wikipedia.org/wiki/Nosql">NOSQL</a> repositories seems to be growing, with many large well-known sites choosing non-relational back-ends. Are Alfresco (and, more generally, nearly all ECM and WCM vendors) on a collision course with NOSQL?</p>
<p>First, let&#8217;s look at what Alfresco&#8217;s been up to lately. Over the last year or so, Alfresco has been shifting to a &#8220;we&#8217;re for developers&#8221; strategy in several ways:</p>
<ul>
<li>Repositioning their Web Content Management offering not as a non-technical end-user tool, but as a tool for web application developers</li>
<li>Backing off of their mission to squash Microsoft SharePoint, positioning Alfresco Share instead as &#8220;good enough&#8221; collaboration. (Remember John Newton&#8217;s slide showing Microsoft as the Death Star and Alfresco as the Millenium Falcon? I think Han Solo has decided to take the fight elsewhere.)</li>
<li>Making Web Scripts, Surf, and Web Studio part of the Spring Framework.</li>
<li>Investing heavily in the Content Management Interoperability Services (CMIS) standard. The investment is far-reaching&#8211;Alfresco is an active participant in the OASIS specification itself, has historically been first-to-market with their CMIS implementation, and has multiple participants in CMIS-related open source projects such as Apache Chemistry.</li>
</ul>
<p>They&#8217;ve also been making changes to the core product to make it more scalable (&#8220;<em>Internet-scalable</em>&#8221; is the stated goal). At a high level, they are disaggregating major Alfresco sub-systems so they can be scaled independently and in some cases removing bottlenecks present in the core infrastructure. Here are a few examples. Some of these are in progress and others are still on the roadmap:</p>
<ul>
<li>Migrating away from Hibernate, which Alfresco Engineers say is currently a limiting factor</li>
<li>Switching from &#8220;Lucene for everything&#8221; to &#8220;Lucene for full-text and SQL  for metadata search&#8221;</li>
<li>Making Lucene a separate search server process (presumably clusterable)</li>
<li>Making OpenOffice, which is used for document transformations, clusterable</li>
<li>Hiring Tom Baeyens (JBoss jBPM founder) and starting the <a title="Activiti Home Page" href="http://www.activiti.org/" target="_blank">Activiti</a> BPMN project (one of their goals is &#8220;cloud scalability from the ground, up&#8221;)</li>
</ul>
<p>So for Alfresco it is all about being an internet-scalable repository that is standards-compliant and has a rich toolset that makes it easy for you to use Alfresco as the back-end of your content-centric applications. Hold that thought for a few minutes while we turn our attention to NOSQL for a moment. Then, like a great rug, I&#8217;ll tie the whole room together.</p>
<p><strong>NOSQL Stores</strong></p>
<p>A NOSQL (&#8220;Not Only SQL&#8221;) store is a repository that does not use a relational database for persistence. There are many different flavors (document-oriented, key-value, tabular), and a number of different implementations. I&#8217;ll refer mostly to <a title="MongoDB Home" href="http://www.mongodb.org/" target="_blank">MongoDB</a> and <a title="CouchDB Home Page" href="http://couchdb.apache.org/" target="_blank">CouchDB</a> in this post, which are two examples of document-oriented stores. In general, NOSQL stores are:</p>
<ul>
<li><strong>Schema-less</strong>. Need to add an &#8220;author&#8221; field to your &#8220;article&#8221;? Just add it&#8211;it&#8217;s as easy as setting a property value. The repository doesn&#8217;t care that the other articles in your repository don&#8217;t have an author field. The repository doesn&#8217;t know what an &#8220;article&#8221; is, for that matter.</li>
<li><strong>Eventually consistent</strong> instead of guaranteed consistent. At some point, all replicas in a given cluster will be fully up-to-date. If a replica can&#8217;t get up-to-date, it will remove itself from the cluster.</li>
<li><strong>Easily replicate-able</strong>. It&#8217;s very easy to instantiate new server nodes and replicate data between them and, in some cases, to horizontally partition the same database across multiple physical nodes (&#8220;sharding&#8221;).</li>
<li><strong>Extremely scalable</strong>. These repositories are built for horizontal scaling so you can add as many nodes  as you need. See the previous two points.</li>
</ul>
<p>NOSQL repositories are used in some extremely large implementations (Digg, Facebook, Twitter, Reddit, Shutterfly, Etsy, Foursquare, etc.) for a variety of purposes. But it&#8217;s important to note that you don&#8217;t have to be a Facebook or a Twitter to realize benefits from this type of back-end. And, although the examples I&#8217;ve listed are all consumer-facing, huge-volume web sites, traditional companies are already using these technologies in-house. I should also note that for some of these projects, scaling down is just as important as scaling up&#8211;the CouchDB founders talk about running Couch repositories in browsers, cell phones, or other devices.</p>
<p>If you don&#8217;t believe this has application inside the firewall, go back in time to the explosive growth of Lotus Notes and Lotus Domino. The Lotus Notes NSF store has similar characteristics to document-centric NOSQL repositories. In fact, Damien Katz, the founder of CouchDB, used to work for Iris Associates, the creators of Lotus Notes. One of the reasons Notes took off was that business users could create form-based applications without involving IT or DBAs. Notes servers could also replicate with each other which made data highly-available, even on networks with high latency and/or low bandwidth between server nodes.</p>
<p><strong>Alfresco &amp; NOSQL</strong></p>
<p>Unlike a full ECM platform like Alfresco, NOSQL repositories are just that&#8211;repositories. Like a relational database, there are client tools, API&#8217;s, and drivers to manage the data in a NOSQL repository and perform administrative tasks, but it&#8217;s up to you to build the business application around it. Setting up a standalone NOSQL repository for a business user and telling them to start managing their content would be like sticking them in front of MySQL and doing the same. But business apps with NOSQL back-ends are being built. For ECM, projects are already underway that integrate existing platforms with these repositories (See the DrupalCon presentation, &#8220;<a title="DrupalCon SF 2010 session:  Humongous Drupal" href="http://sf2010.drupal.org/conference/sessions/mongodb-humongous-drupal" target="_blank">MongoDB &#8211; Humongous Drupal</a>&#8220;, for one example) and entirely new CMS apps have been built specifically to take advantage of NOSQL repositories.</p>
<p>What about Alfresco? People are using Alfresco and NOSQL repositories together already. Peter Monks, together with others, has created a couple of open source  projects that extend Alfresco WCM&#8217;s deployment mechanism to use CouchDB  and MongoDB as endpoints (<a title="Google Code Project: Alfresco WCM Deployment" href="http://code.google.com/p/alfresco-wcm-deployment/" target="_blank">here</a> and <a title="Alfresco Forge: WCM Deployment Project" href="http://forge.alfresco.com/projects/wcm-deployment/" target="_blank">here</a>).</p>
<p>I recently finished up a project for a <a href="http://www.metaversant.com/">Metaversant</a> client in which we used Alfresco DM to create, tag, secure, and route content for approval. Once approved, some custom Java actions deploy metadata to MongoDB and files to buckets on Amazon S3. The front-end presentation tier then queries MongoDB for content chunks and metadata and serves up files directly from Amazon S3 or Amazon&#8217;s CloudFront CDN as necessary.</p>
<p>In these examples, Alfresco is essentially being used as a front-end to the NOSQL repository. This gives you the scalability and replication features on the Content Delivery tier with workflow, check-in/check-out, an explicit content model, tagging, versioning, and other typical content management features on the Content Management tier.</p>
<p>But why shouldn&#8217;t the Content Management tier benefit from the scalability and replication capabilities of a NOSQL repository? And why can&#8217;t a NOSQL repository have an end-user focused user interface with integrated workflow, a form service, and other traditional DM/CMS/WCM functionality? It should, it can and they will. NOSQL-native CMS apps will be developed (some already exist). And existing CMS&#8217;s will evolve to take advantage of NOSQL back-ends in some form or fashion, similar to the Drupal-on-Mongo example cited earlier.</p>
<p><strong>What does this mean for Alfresco and ECM architecture in general?</strong></p>
<p>Where does that leave Alfresco? It seems their positioning as a developer-focused, &#8220;Internet-scale&#8221; repository ultimately leads to them competing directly against NOSQL repositories for certain types of applications. The challenge for Alfresco and other ECM players is whether or not they can achieve the kind of scale and replication capabilities NOSQL repositories offer today before NOSQL can catch up with a new breed of Content Management solutions built expressly for a world in which content is everywhere, user and data volumes are huge and unpredictable, and servers come and go automatically as needed to keep up with demand.</p>
<p>If Alfresco and the overwhelming majority of the rest of today&#8217;s CMS vendors are able to meet that challenge with their current relational-backed stores, NOSQL simply becomes an implementation choice for CMS vendors. If, however, it turns out that being backed by a NOSQL repository is a <em>requirement</em> for a modern, Internet-scale CMS, we may see a whole new line-up of players in the CMS space before long.</p>
<p>What do you think? Does the fundamental architecture prevalent in today&#8217;s CMS offerings have what it takes to manage the web content in an increasingly cloud-based world? Will we see an explosion of NOSQL-native CMS applications and, if so, will those displace today&#8217;s relational vendors or will the two live side-by-side, potentially with buyers not even knowing or caring what choice the vendor has made with regard to how the underlying data is persisted?</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2010/07/07/1176/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Drupal Open Atrium and Alfresco CMIS files</title>
		<link>http://ecmarchitect.com/archives/2010/03/22/1141</link>
		<comments>http://ecmarchitect.com/archives/2010/03/22/1141#comments</comments>
		<pubDate>Mon, 22 Mar 2010 13:17:48 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=1141</guid>
		<description><![CDATA[A lot of people have been asking for the files we used to integrate Alfresco CMIS with Drupal Open Atrium (See ecmarchitect.com blog post). I&#8217;ve happily mailed those to whomever asked. I&#8217;ve had the intention of testing them with the latest version, cleaning them up, and putting somewhere more appropriate like the Open Atrium feature [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of people have been asking for the files we used to integrate <a href="http://www.alfresco.com">Alfresco</a> CMIS with <a href="http://drupal.org">Drupal</a> <a title="Open Atrium Home" href="http://openatrium.org" target="_blank">Open Atrium</a> (See <a title="ecmarchitect.com blog post: Screenast of Drupal Open Atrium and Alfresco CMIS integration" href="http://ecmarchitect.com/archives/2009/10/13/1058" target="_self">ecmarchitect.com blog post</a>). I&#8217;ve happily mailed those to whomever asked. I&#8217;ve had the intention of testing them with the latest version, cleaning them up, and putting somewhere more appropriate like the Open Atrium feature server, or at the very least, Google Code or GitHub. But it hasn&#8217;t happened yet so I figured I&#8217;d make them available <a title="Download the cmis-open-atrium.zip file" href="http://ecmarchitect.com/images/openatrium/cmis-open-atrium.zip">here</a> and appeal to the Community to give them a good home.</p>
<p>The zip includes a readme file with (very) rough install/config directions.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2010/03/22/1141/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vote to include my CMIS session at Drupalcon</title>
		<link>http://ecmarchitect.com/archives/2010/02/16/1135</link>
		<comments>http://ecmarchitect.com/archives/2010/02/16/1135#comments</comments>
		<pubDate>Tue, 16 Feb 2010 23:56:46 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=1135</guid>
		<description><![CDATA[Fellow Optaros colleague, Chris Fuller, and I want to present on the Alfresco-Drupal integration at Drupalcon in San Francisco (April 19-21). If you&#8217;re interested in Alfresco, Drupal, and CMIS (any or all of the above), please vote for our session.]]></description>
			<content:encoded><![CDATA[<p>Fellow <a href="http://www.optaros.com" alt="Optaros Home">Optaros</a> colleague, Chris Fuller, and I want to present on the Alfresco-Drupal integration at Drupalcon in San Francisco (April 19-21). If you&#8217;re interested in Alfresco, Drupal, and CMIS (any or all of the above), please <a title="Drupalcon San Francisco Session: Drupal, Alfresco, &amp; CMIS" href="http://sf2010.drupal.org/conference/sessions/enterprise-content-management-drupal-alfresco-and-cmis" target="_blank">vote for our session</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2010/02/16/1135/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Screencast: Drupal Open Atrium with Alfresco CMIS</title>
		<link>http://ecmarchitect.com/archives/2009/10/13/1058</link>
		<comments>http://ecmarchitect.com/archives/2009/10/13/1058#comments</comments>
		<pubDate>Tue, 13 Oct 2009 13:42:20 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Open Atrium]]></category>
		<category><![CDATA[Optaros]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=1058</guid>
		<description><![CDATA[I recorded a quick screencast of a simple integration we did to show Open Atrium leveraging Alfresco as a formal document repository via CMIS. This leverages the CMIS Alfresco module we developed and released on Drupal.org. As I point out in the screencast, there&#8217;s not much to the integration from a technical standpoint. Open Atrium [...]]]></description>
			<content:encoded><![CDATA[<p>I recorded a quick <a title="Screencast: Open Atrium and Alfresco" href="http://labs.optaros.com/2009/10/12/open-atrium-and-alfresco-via-cmis-for-intranets" target="_blank">screencast</a> of a simple integration we did to show <a title="Open Atrium Home" href="http://openatrium.com" target="_blank">Open Atrium</a> leveraging <a title="Alfresco Home" href="http://www.alfresco.com" target="_blank">Alfresco</a> as a formal document repository via CMIS. This leverages the  <a title="Drupal.org CMIS Alfresco module" href="http://drupal.org/project/cmis_alfresco" target="_blank">CMIS Alfresco module</a> we developed and released on <a title="Drupal Home" href="http://drupal.org" target="_blank">Drupal.org</a>.</p>
<p>As I point out in the screencast, there&#8217;s not much to the integration from a technical standpoint. Open Atrium is Drupal and the CMIS module already has a CMIS repository browser. So, all we had to do was expose the module as a &#8220;feature&#8221;, which is something Open Atrium uses to bundle modules together that create a given chunk of functionality.</p>
<p>Readers familiar with Alfresco Share (<a title="Optaros Labs Screencast: Alfresco Share Part One" href="http://labs.optaros.com/2009/02/12/enterprise-collaboration-alfresco-share-screencast-part-one" target="_blank">screencast 1</a>, <a title="Optaros Labs Screencast: Alfresco Share Part Two" href="http://labs.optaros.com/2009/02/19/enterprise-collaboration-alfresco-share-screencast-part-two" target="_blank">screencast 2</a>) will instantly recognize the Open Atrium concepts. Instead of &#8220;sites&#8221; Atrium uses &#8220;groups&#8221;. Instead of &#8220;pages&#8221; or &#8220;tools&#8221;, Atrium uses &#8220;features&#8221;. The overall purpose, self-provisioned team-based collaboration, is the same and many of the tools/features are the same (blog, calendar, member directory). I&#8217;m not advocating using one over the other&#8211;as usual, what works best for you depends on a lot of factors. I just thought Atrium provided a nice way to show yet another example of Drupal and Alfresco together (<a title="ECMArchitect.com Post: Alfresco + Drupal Slides and Webinar" href="http://ecmarchitect.com/archives/2009/09/15/1047" target="_self">post</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/10/13/1058/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Drupal + Alfresco webinar slides available</title>
		<link>http://ecmarchitect.com/archives/2009/09/15/1047</link>
		<comments>http://ecmarchitect.com/archives/2009/09/15/1047#comments</comments>
		<pubDate>Tue, 15 Sep 2009 17:48:48 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Acquia]]></category>
		<category><![CDATA[Intranet]]></category>
		<category><![CDATA[Optaros]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=1047</guid>
		<description><![CDATA[People want intranets that are fun and easy to use, full of compelling content relevant to their job, and enabled with social and community features to help them discover connections with other teams, projects, and colleagues. IT wants something that&#8217;s lightweight and flexible enough to respond to the needs of the business that won&#8217;t cost [...]]]></description>
			<content:encoded><![CDATA[<p>People want intranets that are fun and easy to use, full of compelling content relevant to their job, and enabled with social and community features to help them discover connections with other teams, projects, and colleagues. IT wants something that&#8217;s lightweight and flexible enough to respond to the needs of the business that won&#8217;t cost a fortune.</p>
<p>That&#8217;s why <a title="Drupal Home Page" href="http://drupal.org" target="_blank">Drupal</a> + <a title="Alfresco Home Page" href="http://www.alfresco.com" target="_blank">Alfresco</a> is a great combination for things like intranets like the one <a title="Optaros Home" href="http://www.optaros.com" target="_blank">Optaros</a> built for <a title="Activision Home Page" href="http://www.activision.com" target="_blank">Activision</a> and why we had a record-breaking turnout for the Drupal + Alfresco webinar <a title="Chris Fuller Blog at Optaros.com" href="http://www.optaros.com/blog/cfuller" target="_blank">Chris Fuller</a> and I did today. Thanks to everyone who came and asked good questions. I&#8217;ve <a title="Slides: The Power of Drupal and Alfresco Together" href="http://www.slideshare.net/jpotts/the-power-of-drupal-and-alfresco-together" target="_blank">posted the slides</a>. Alfresco recorded the webinar so they&#8217;ll make it available soon, I&#8217;m sure. When that happens, I&#8217;ll update the post with a link. Until then, enjoy the slides.</p>
<p>[UPDATE: Fixed the slideshare link (thanks, David!) and added the links to the webinar recording below]</p>
<p>1. Streaming recording link:<br />
<a title="Stream the Alfresco Drupal webinar" href="https://alfresco.webex.com/alfresco/lsr.php?AT=pb&amp;SP=TC&amp;rID=42774837&amp;act=pb&amp;rKey=b44130d69cc9ec5f" target="_blank">https://alfresco.webex.com/alfresco/lsr.php?AT=pb&amp;SP=TC&amp;rID=42774837&amp;act=pb&amp;rKey=b44130d69cc9ec5f</a></p>
<p>2. Download recording link:<br />
<a title="Download the Alfresco Drupal webinar" href="https://alfresco.webex.com/alfresco/ldr.php?AT=dw&amp;SP=TC&amp;rID=42774837&amp;act=pf&amp;rKey=c50049ac82e1220a" target="_blank">https://alfresco.webex.com/alfresco/ldr.php?AT=dw&amp;SP=TC&amp;rID=42774837&amp;act=pf&amp;rKey=c50049ac82e1220a</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/09/15/1047/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Drupal, Django, and Alfresco in Chicago</title>
		<link>http://ecmarchitect.com/archives/2009/04/28/981</link>
		<comments>http://ecmarchitect.com/archives/2009/04/28/981#comments</comments>
		<pubDate>Tue, 28 Apr 2009 21:26:58 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[meetup]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=981</guid>
		<description><![CDATA[I&#8217;ll be in Chicago tomorrow for the Alfresco Meetup. I&#8217;ll be speaking during the Barcamp on Alfresco and Drupal integration with CMIS (module, screencast). I&#8217;ll also have the Alfresco-Django integration running on my laptop. I may not have time to show Alfresco-Django during my slot, but I&#8217;ll be happy to stick around and do informal [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be in Chicago tomorrow for the <a title="Alfresco Chicago Meetup" href="http://www.alfresco.com/about/events/2009/04/chicagomeetup/" target="_blank">Alfresco Meetup</a>. I&#8217;ll be speaking during the Barcamp on Alfresco and Drupal integration with CMIS (<a title="Drupal Alfresco CMIS module" href="http://drupal.org/project/cmis_alfresco" target="_blank">module</a>, <a title="Drupal-Alfresco screencast at Optaros Labs" href="http://labs.optaros.com/2009/04/07/alfresco-drupal-integration-via-cmis-screencast" target="_blank">screencast</a>). I&#8217;ll also have the Alfresco-Django integration running on my laptop. I may not have time to show Alfresco-Django during my slot, but I&#8217;ll be happy to stick around and do informal demos and talk about either integration if you&#8217;re interested because I&#8217;d like your feedback on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/04/28/981/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Alfresco User Interface: What are my options?</title>
		<link>http://ecmarchitect.com/archives/2009/04/20/971</link>
		<comments>http://ecmarchitect.com/archives/2009/04/20/971#comments</comments>
		<pubDate>Mon, 20 Apr 2009 20:32:18 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[JBoss Portal]]></category>
		<category><![CDATA[Liferay]]></category>
		<category><![CDATA[Portal]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Optaros]]></category>
		<category><![CDATA[User Interface]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=971</guid>
		<description><![CDATA[People often need to build a custom user interface on top of the Alfresco repository and I see a lot of people asking general questions about how to do it. There are lots of options to consider. Here are four options for creating a user interface on top of Alfresco, at a high level: Option [...]]]></description>
			<content:encoded><![CDATA[<p>People often need to build a custom user interface on top of the <a title="Alfresco Home Page" href="http://www.alfresco.com" target="_blank">Alfresco</a> repository and I see a lot of people asking general questions about how to do it. There are lots of options to consider. Here are four options for creating a user interface on top of Alfresco, at a high level:</p>
<p><strong>Option 1: Use your favorite programming language</strong> and/or framework to talk to Alfresco via REST or Web Services. PHP? Python? Java? Flex? Whatever, it&#8217;s up to you. The REST API is nice because if you can&#8217;t find a URL that does what you need it to out-of-the-box, you can always roll-your-own with the web script framework. This option offers the most flexibility and creative freedom, but of course you might end up building constructs or components that you may have gotten &#8220;for free&#8221; from a higher-level framework. <a title="Optaros Home Page" href="http://www.optaros.com" target="_blank">Optaros</a>&#8216; streamlined web client, <a title="Optaros DoCASU Streamlined Alfresco Web Client" href="http://docasu.sourceforge.net/" target="_blank">DoCASU</a>, built on Ext-JS, is one freely-available example of a custom UI on top of Alfresco but there are others.</p>
<p><strong>Option 2: Use Alfresco&#8217;s Surf framework</strong>. <a title="Alfresco Surf Wiki Page" href="http://wiki.alfresco.com/wiki/Surf_Platform" target="_blank">Alfresco&#8217;s Surf</a> framework is just that&#8211;it&#8217;s a framework. Don&#8217;t confuse it with Alfresco Share which is a team-centric collaboration client built on top of Surf. And, don&#8217;t assume that just because a piece of functionality is in Share it is available to you in the lower-level Surf framework. You may have to do some extra work to get some of the cool stuff in Share to work in your pure Surf app. Also realize that Surf is brand new and still maturing. You&#8217;ll be quickly disappointed if you hold it to the same standard as a more widely-used, well-established framework like <a title="Seam Framework Home" href="http://seamframework.org/" target="_blank">Seam</a> or <a title="Django Home" href="http://www.djangoproject.com/" target="_blank">Django</a>. Surf is a good option for quick, Alfresco-centric solutions, especially if you think you might want to leverage Alfresco&#8217;s browser-based site assembly tool, Web Studio, at some point in the future. (See <a title="Do-it-yourself Alfresco Surf Code Camp" href="http://ecmarchitect.com/archives/2009/02/05/891" target="_blank">Do-it-yourself Alfresco Surf Code Camp</a>).</p>
<p><strong>Option 3: Customize the Alfresco &#8220;Explorer&#8221; web client</strong>. There are varying degrees to which you can customize the web client. On one end of the spectrum you&#8217;ve got Freemarker &#8220;presentation templates&#8221; followed closely by XML configuration. On the other end of the spectrum you&#8217;ve got more elaborate enhancements you can make using <a title="Sun JavaServer Faces Home" href="http://java.sun.com/javaee/javaserverfaces/" target="_blank">JavaServer Faces</a> (JSF). Customizing the Alfresco Explorer web client should only be considered if you can keep your enhancements to an absolute minimum because:</p>
<ol>
<li>Alfresco is moving away from JSF in favor of Surf-based clients. The Explorer client will continue to be around, but I wouldn&#8217;t expect major efforts to be focused on that client going forward.</li>
<li>JSF-based customizations of the web client can be time-consuming and potentially complex, particularly if you are new to JSF.</li>
<li>For most solutions, you&#8217;ll get more customer satisfaction bang out of your coding buck by building a purpose-built, eye-catching, UI designed with your specific use cases in mind than you will by starting with the general-purpose web client and extending from there.</li>
</ol>
<p><strong>Option 4: Use a portal, community, or WCM platform</strong>. This includes PHP-based projects like <a title="Drupal.org Home Page" href="http://drupal.org" target="_blank">Drupal</a> (<a title="Drupal CMIS Alfresco Screencast" href="http://ecmarchitect.com/archives/2009/04/07/955" target="_blank">Drupal CMIS Screencast</a>) or <a title="Joomla Home" href="http://www.joomla.org/" target="_blank">Joomla</a> as well as Java-based projects like <a title="Liferay Home" href="http://www.liferay.com" target="_blank">Liferay</a> and <a title="JBoss Portal Home" href="http://www.jboss.org/jbossportal/" target="_blank">JBoss Portal</a>. This is a good option if you have requirements that match up well with the built-in (or easily added-on) capabilities of those platforms.</p>
<p>It&#8217;s worth talking about Java portal servers specifically. I think people are struggling a bit to find The Best Way to integrate Alfresco with a portal. Of course there probably is no single approach that will fit every situation but I think Alfresco (with help from the community) could do more to provide best practices.</p>
<p>Here are the options you have when integrating with a portal:</p>
<p><strong>Portal Option 1: Configure Alfresco to be the replacement JSR-170 repository for the portal</strong>. This option seems like more trouble than it is worth. If all you need is what you can get out of JSR-170, you might as well use the already-integrated Jackrabbit repository that most open source portals ship with these days unless you have good reasons not to. I&#8217;m open to having my mind changed on this one, but it seems like if you want to use Alfresco and a portal, you&#8217;ve got bigger plans that are probably going to require custom portlets anyway.</p>
<p><strong>Portal Option 2: </strong><strong>Run Alfresco and the portal in the same JVM</strong> (<a title="Alfresco and Liferay in the same JVM" href="http://http://ecmarchitect.com/archives/2008/04/08/823" target="_blank">post</a>). This is <strong>NOT</strong> recommended if you need to scale beyond a small departmental solution and, really, I think with the de-coupling of the web script engine <em>we should consider this one deprecated at this point</em>.</p>
<p><strong>Portal Option 3: </strong><strong>Run the Alfresco web script engine and the portal in the same JVM</strong>. Like the previous option, this gives you the ability to write web scripts that are wrapped in a portlet but it cuts down on the size of the web app significantly and it frees up your portal to scale independently of the Alfresco repository tier. It&#8217;s a fast development cycle once you get it set up. But I haven&#8217;t seen great instructions for setting it up yet. Alfresco should document this on their wiki if they are going to support this pattern.</p>
<p><strong>Portal Option 4: </strong><strong>Write your own portlets that make services calls</strong>. This is the &#8220;cleanest&#8221; approach because it treats Alfresco like any other back-end you might want to integrate with from the portal. You write custom portlets and have them talk to Alfresco via REST or SOAP. You&#8217;ll have to decide how you want to handle authentication with Alfresco.</p>
<p><strong>What about CMIS?</strong></p>
<p>CMIS fits under the &#8220;Option 1: Use your favorite programming language&#8221; and &#8220;Portal Option 4: Write your own portlets&#8221; categories. You can make CMIS calls to Alfresco using both REST and SOAP from your own custom code, portlet or otherwise. The nice thing about CMIS is that you can use it to abstract the underlying repository so that (in theory) your front-end code will work with different CMIS-compliant back-ends. Just realize that CMIS isn&#8217;t a fully-ratified standard yet and although a CMIS implementation is in the Enterprise version of Alfresco, it isn&#8217;t clear to me whether or not you&#8217;d be supported if you had a problem. (The last response I saw on this specific question was a Peter Monks tweet saying, &#8220;I don&#8217;t think so&#8221;).</p>
<p>The CMIS standard should be approved by the end-of-the-year and if Alfresco&#8217;s past performance is an indicator of the future, they&#8217;ll be the first to market with a production-ready, fully-supported CMIS implementation based on the final spec.</p>
<p><strong>Pick your poison</strong></p>
<p>Those are the options as I see them. Each one has trade-offs. Some may become more or less attractive over time as languages, frameworks, and the state of the art evolve. Ultimately, you&#8217;re going to have to evaluate which one fits your situation the best. You may have a hard time making a decision, but you have to admit that having to choose from several options is a nice problem to have.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/04/20/971/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Optaros press release: InfoWorld relaunches on Drupal</title>
		<link>http://ecmarchitect.com/archives/2009/04/16/969</link>
		<comments>http://ecmarchitect.com/archives/2009/04/16/969#comments</comments>
		<pubDate>Thu, 16 Apr 2009 13:23:19 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=969</guid>
		<description><![CDATA[Another large, well-known site has moved to Drupal. Optaros and IDG Communications issued the press release today, but the new InfoWorld site went live on the popular open source community platform last week. Congrats to the IDG and Optaros teams as well as the Drupal Community!]]></description>
			<content:encoded><![CDATA[<p>Another large, well-known site has moved to <a title="Drupal Home Page" href="http://drupal.org" target="_blank">Drupal</a>. <a title="Optaros Home Page" href="http://www.optaros.com" target="_blank">Optaros</a> and IDG Communications issued the <a title="Optaros Press Release on InfoWorld" href="http://www.optaros.com/news/press-releases#optaros-gives-infoworld-relaunch-boost-with-drupal-solutions" target="_blank">press release</a> today, but the new <a title="InfoWorld Home Page" href="http://www.infoworld.com/" target="_blank">InfoWorld</a> site went live on the popular open source community platform last week. Congrats to the IDG and Optaros teams as well as the Drupal Community!</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/04/16/969/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screencast: Alfresco-Drupal CMIS Integration Demo</title>
		<link>http://ecmarchitect.com/archives/2009/04/07/955</link>
		<comments>http://ecmarchitect.com/archives/2009/04/07/955#comments</comments>
		<pubDate>Tue, 07 Apr 2009 16:08:08 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Acquia]]></category>
		<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Interoperability]]></category>
		<category><![CDATA[Optaros]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=955</guid>
		<description><![CDATA[I&#8217;ve created a new screencast that shows the Alfresco-Drupal CMIS integration in action over at Optaros Labs. The screencast shows content moving back-and-forth between Alfresco and Drupal, content being displayed in a Drupal site that lives in Alfresco, and a CMIS CQL query being executed against the Alfresco repository from Drupal. The Drupal CMIS module [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">I&#8217;ve created a new screencast that shows the <a title="Alfresco-Drupal Screencast" href="http://labs.optaros.com/2009/04/07/alfresco-drupal-integration-via-cmis-screencast" target="_blank">Alfresco-Drupal CMIS integration in action</a> over at <a title="Optaros Labs Home Page" href="http://labs.optaros.com" target="_blank">Optaros Labs</a>. The screencast shows content moving back-and-forth between <a title="Alfresco Home Page" href="http://www.alfresco.com" target="_blank">Alfresco</a> and <a title="Drupal.org Home Page" href="http://drupal.org" target="_blank">Drupal</a>, content being displayed in a Drupal site that lives in Alfresco, and a CMIS CQL query being executed against the Alfresco repository from Drupal.</p>
<p style="text-align: left;">The <a title="Drupal CMIS Module" href="http://drupal.org/project/cmis" target="_blank">Drupal CMIS</a> module and the <a title="CMIS Alfresco" href="http://drupal.org/project/cmis_alfresco" target="_blank">CMIS Alfresco</a> module are available at Drupal.org.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/04/07/955/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alfresco-Drupal integration through CMIS</title>
		<link>http://ecmarchitect.com/archives/2009/02/23/908</link>
		<comments>http://ecmarchitect.com/archives/2009/02/23/908#comments</comments>
		<pubDate>Mon, 23 Feb 2009 06:42:25 +0000</pubDate>
		<dc:creator>jpotts</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Acquia]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Optaros]]></category>

		<guid isPermaLink="false">http://ecmarchitect.com/?p=908</guid>
		<description><![CDATA[As I&#8217;ve mentioned here and on twitter, we posted our Alfresco-Drupal integration on Drupal.org on Friday. I did a short write-up on it over at Optaros.com that gives the why and the what so I&#8217;ll not repeat it here. We split the integration into two modules: CMIS API has nothing Alfresco-specific&#8211;it just knows how to [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve mentioned here and on <a title="Follow Jeff Potts on Twitter" href="http://twitter.com/jeffpotts01" target="_blank">twitter</a>, we posted our Alfresco-Drupal integration on Drupal.org on Friday. I did a <a title="Alfresco Drupal Post on Optaros.com" href="http://www.optaros.com/blogs/alfresco-drupal-cmis-integration-available" target="_blank">short write-up</a> on it over at <a title="Optaros Home Page" href="http://www.optaros.com" target="_blank">Optaros.com</a> that gives the why and the what so I&#8217;ll not repeat it here.</p>
<p>We split the integration into two modules: <a title="CMIS API module" href="http://drupal.org/project/cmis" target="_blank">CMIS API</a> has nothing Alfresco-specific&#8211;it just knows how to make RESTful CMIS calls to an arbitrary CMIS repository. The <a title="CMIS Alfresco Module" href="http://drupal.org/project/cmis_alfresco" target="_blank">Alfresco CMIS</a> module has the Alfresco-specific logic. You need both to make the integration work. If you&#8217;ve got Alfresco 3 (Enterprise or Labs) you don&#8217;t need to do anything to your Alfresco install to enable the integration because it&#8217;s already CMIS compliant.</p>
<p>There is still a lot of work to do on this integration. For example, right now we&#8217;re only moving plain text content back-and-forth between Drupal and Alfresco. And we use a &#8220;single account&#8221; approach so that to Alfresco, every request appears to come from one user instead of passing through the authenticated Drupal credentials. But this is an imporant integration to us so I expect it to evolve substantially in the coming months.</p>
<p>I got good feedback on the recent screencasts I put together for Share (<a title="Alfresco Share Part 1" href="http://ecmarchitect.com/archives/2009/02/12/898" target="_self">Part 1</a>, <a title="Alfresco Share Part 2" href="http://ecmarchitect.com/archives/2009/02/19/900" target="_self">Part 2</a>) so if I get some time this week I&#8217;ll do one that gives a quick tour of the Drupal integration.</p>
]]></content:encoded>
			<wfw:commentRss>http://ecmarchitect.com/archives/2009/02/23/908/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
