<?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>Armedia Blog &#187; Alfresco</title>
	<atom:link href="http://www.armedia.com/blog/category/enterprise_content_management/alfresco/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armedia.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 02 Feb 2012 15:53:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Annotate this!</title>
		<link>http://www.armedia.com/blog/2011/07/annotate-this/</link>
		<comments>http://www.armedia.com/blog/2011/07/annotate-this/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 16:55:34 +0000</pubDate>
		<dc:creator>cstephenson</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Alfresco Development]]></category>
		<category><![CDATA[Webscripts]]></category>
		<category><![CDATA[annotation]]></category>
		<category><![CDATA[Daeja]]></category>
		<category><![CDATA[FOIA]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[Paperwork Reduction Act]]></category>
		<category><![CDATA[PII]]></category>
		<category><![CDATA[redaction]]></category>
		<category><![CDATA[webscripts]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=1612</guid>
		<description><![CDATA[Over the past 12 months (or maybe longer) and I have been involved with 2 separate projects to integrate Daeja ViewONE Pro with Alfresco. Daeja ViewONE Pro is a java applet designed to allow users to apply annotations to any* document.  That is just the starting point.  The applet has been developed whereby an implementer [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past 12 months (or maybe longer) and I have been involved with 2 separate projects to integrate <a title="Daeja ViewONE Pro" href="http://www.daeja.com/products/viewone-pro-overview.asp">Daeja ViewONE Pro</a> with <a title="Alfresco" href="http://www.alfresco.com/products/">Alfresco</a>.</p>
<p>Daeja ViewONE Pro is a <a title="Java Applet" href="http://java.sun.com/applets/">java applet</a> designed to allow users to apply <a title="Annotation" href="http://en.wikipedia.org/wiki/Annotation">annotations</a> to any* document.  That is just the starting point.  The applet has been developed whereby an implementer can interact with it via javascript to enhance the user experience.  The implementer can also dynamically change what controls and features are available to a user based upon the user&#8217;s role and permissions within the CMS.  I could go on but I would probability end up repeating <a title="Daeja" href="http://www.daeja.com/">Daeja&#8217;s</a> website <img src='http://www.armedia.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-1612"></span> Daeja also offers modules to extend the functionality of its offering.  Two modules that I have used are the <a title="Daeja PDF Module" href="http://www.daeja.com/products/viewone-pro-pdf-module.asp">PDF Module</a> and the <a title="Permanent Redaction" href="http://www.daeja.com/products/viewone-pro-permanent-redaction-module.asp">Permanent Redaction</a> module.</p>
<p>The PDF module adds PDF (what else could I say?) support to Daeja ViewONE Pro.  Got a PDF which needs annotated outside of how Adobe does it?  Then this module offers that functionality.</p>
<p>The Permanent Redaction module came as a result of clients requiring annotations on documents but for them to be burned into the document for security purposes.  A redaction is a special annotation.  When placing a redaction onto a document it&#8217;s intended purpose is to obscure the information below.  In other words, make it unreadable, unrecognizable to anyone or anything.  This reminds me of the film <a title="Good Morning Vietnam" href="http://www.imdb.com/title/tt0093105/">Good Morning Vietnam</a> when Adrian Cronauer if given news to read out most of the pages contain black bars.  This is redaction, and in this case permanent redaction.</p>
<p>This is where Daeja&#8217;s offering of the Permanent Redaction module comes in.  It can take the annotations** on the document, pass them through the Permanent Redaction Module and burn them into the document, producing either a TIFF or PDF as output.  Please do note, it is up to the client and implementer as to how and when the burning takes place and who has access to original content and who has access to burned content.</p>
<p>OK, enough about Daeja.  Back to the first project.  The client was not concerned about maintaining an annotations file.  They simply wanted all redactions to be burned into the document and for the document to be versioned (so as to maintain a history of redactions).  This was to support redacting PII (Personally Identifiable Information) in support of FOIA (Freedom of Information Act) requests. In this case all documents being handled were PDF.  If you remember one of the output options of Permanent Redaction was PDF.  This made it simple in that each new version was the result of burning.  This greatly simplified the model around security.</p>
<p>The client also wanted the burning process to be on-demand.  The burning process can be implemented in 2 ways, on-demand and background processing.</p>
<p>On implementing the burning process it was determined to run this in a separate Tomcat instance from Alfresco.  Not knowing how frequently documents were be worked on and knowing that the size of some of these PDF&#8217;s could in fact be over 200Mb in size offloading this to another instance seemed to be the correct way to go.  Daeja provide example code on how to implement the burning process but it is up to the implementor to customize this for the particular environment this is intended for.</p>
<p>This leads me nicely into Alfresco and it&#8217;s numerous <a title="Alfresco Developer Guide" href="http://wiki.alfresco.com/wiki/Developer_Guide">API&#8217;s</a>.  One of the many strengths of Alfresco is it&#8217;s numerous API&#8217;s to help with the flexibility of integration.  There is RESTful, Web Services, JavaScript, Java Foundation, JCR, etc. etc.  One of the common questions asked is &#8216;which API should I use?&#8217;.  For the Permanent Redaction integration, the implementer opted for a combo if Web Scripts and Web Services.  Web Scripts are awesome.  If the language you are using for integration can make an HTTP request then you can use Web Scripts.  Web Scripts are simple to implement, follow an MVC approach, support multiple inputs (think overloading) and support multiple outputs (need HTML, JSON or something returned?).  If the JavaScript API does not provide enough, it can be extended at the service level and exposed at the JavaScript.</p>
<p>Now, you may ask if they are so awesome why use Web Services as in combination with Web Scripts.  The issue for this client was the size of the PDF file.  Potentially 200Mb or more.  This is a limitation of Web Scripts in that uploading large files is a memory / performance hit.  This is the main reason Web Services was included in the combo.  As part of Web Services there is a highly optimized set of functions for streaming content into the repository.  Thankfully Alfresco also included the ability to share the authentication token between the different API&#8217;s!  To summarize for this client, Daeja ViewONE Pro is integrated into Alfresco.  When a document is opened for redaction, the applet is rendered to the browser through a custom webscript.  When the user clicks on the &#8216;burn&#8217; button, the noderef of the document is sent to the Permanent Redaction instance running in the separate Tomcat instance, along with the annotation data.  The custom code running under the Permanent Redaction instance fetches the document from the repository via webscripts, applies the annotations and burns them into a new PDF.  This PDF is uploaded to the repository as a new version of the starting document.</p>
<p>The second project followed more of the traditional annotation model.  The client wanted the ability to annotate documents based upon content type, content format and user role and permissions.  One of the requirements was to NOT version the document.  To be honest, requirement I like.  The document itself is not changing so why constantly version it?  The way Daeja works is it maintains a separate content file with the annotations.  The initial integration  of Daeja and Alfresco was by <a title="Dr. Qu Yong" href="http://drquyong.com/myblog/">Dr. Q</a>u (Alfresco) and further continued by <a title="Jared Ottley" href="http://jared.ottleys.net/">Jared Ottley</a> (Alfresco).  This initial integration includes a basic annotation content model which associates the annotation file to the document as a child association.  Simple and effective.  The one thing that was annoying me for this client, it would be nice to version the annotations applied to the document so that there was a visual history.  Using the power of Web Scripts and Free Marker a template was created to list versions of the annotation file associated with a document, if it has one.</p>
<p>Some more information on Daeja is the ability to specify a server side script, cgi, etc. the call when the annotation save button is pressed.  Web Scripts are invoked via HTTP.  This means the Daeja save annotation button can invoke a custom webscript.  This webscript adds the versional aspect to the annotations file (if it is not already attached) then versions the annotation file.  This webscript also attached the Free Market template to the document to provide access to the versioned annotation files.  When clicking on a previous annotation this opens the document with the specified annotation and displays this in Daeja ViewONE Pro.  Oh, and this is in<em> read only</em> mode so that previous versions cannot be rewritten!</p>
<p>The other more interesting requirement was each annotation added to the document also needed text below this annotation to indicate who created it and when. Daeja provides this functionality as a tooltip but for compliance reasons this needed to be added to the document to be seen visually and not as a tooltip.  Unfortunately Daeja does not provide this capability (though it has now been logged as a feature request and has gotten their boffins pondering on it).  In the meantime a workaround was provided.  Again highlighting the flexibility of Daeja.  The applet provides events which can have custom coded attached to them.  In this instance when a save annotation takes place and event is triggered.  It was then possibly to have custom javascript be invoked on this event.  This is were the fun started and flash backs to maths and geometry classes happened.  It should be noted the user/date label being applied to the document was actually an annotation.  Annotations must be on the document and not fall outside the page boundaries.  This meant some calculations were needed to determine the location of the annotation and to decide if the label would be applied below or above the annotation.  The next consideration was how close to the right hand margin was the annotation.  I would like to say some complex mathematical formula was implemented but it was some simple maths that came to the rescue.  Actually this functionality is most likely cause for another blog as there are other things to consider.</p>
<p>This project was different to the first project but both were great learning experiences in the areas of annotation and redaction and what clients are looking for.  It has provided great information and ideas on what else could be done in the area of integration to provide even more cool integration features.</p>
<p>*currently Daeja supports over 300 document types!</p>
<p>**TIFF and PDF support a subset of annotations which can be burned into the document.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2011/07/annotate-this/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Q: Why should I test my CMIS application against multiple repositories?</title>
		<link>http://www.armedia.com/blog/2011/05/q-why-should-i-test-my-cmis-application-against-multiple-repositories/</link>
		<comments>http://www.armedia.com/blog/2011/05/q-why-should-i-test-my-cmis-application-against-multiple-repositories/#comments</comments>
		<pubDate>Thu, 26 May 2011 20:30:27 +0000</pubDate>
		<dc:creator>dmiller</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[CMIS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[ECM]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=1249</guid>
		<description><![CDATA[A: To uncover my hidden assumptions! Let me tell you a story about SharePoint, Alfresco, design choices, and downloading files. My Java-based application uses SharePoint 2010 to store files.  CMIS is the obvious tool for my app to talk to SP 2010, and in fact, CMIS and SP2010 work just fine together, as you may [...]]]></description>
			<content:encoded><![CDATA[<p>A: To uncover my hidden assumptions!</p>
<p>Let me tell you a story about SharePoint, Alfresco, design choices, and downloading files.</p>
<p>My Java-based application uses SharePoint 2010 to store files.  <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cmis">CMIS </a>is the obvious tool for my app to talk to SP 2010, and in fact, CMIS and SP2010 work just fine together, as you may have gathered from my colleague Tim Lisko&#8217;s <a href="http://www.armedia.com/blog/2011/05/how-to-accessing-sharepoint-2010-from-java-application/">last</a> <a href="http://www.armedia.com/blog/2011/05/how-to-sharepoint-2010-%E2%80%93-implementing-cmis/">few</a> articles.</p>
<p>So it came time for me to write the download feature, thus allowing users to download the files stored in SP2010 from my application.  Chemistry makes it very easy to retrieve a file object by ID:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">@Override<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">InputStream</span> getFileContentStream<span style="color: #009900;">&#40;</span>Session session, <span style="color: #003399;">String</span> objectId<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">try</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #003399;">Document</span> file <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Document</span><span style="color: #009900;">&#41;</span> session.<span style="color: #006633;">getObject</span><span style="color: #009900;">&#40;</span>objectId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
ContentStream csFile <span style="color: #339933;">=</span> file.<span style="color: #006633;">getContentStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #003399;">InputStream</span> retval <span style="color: #339933;">=</span> csFile.<span style="color: #006633;">getStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">return</span> retval<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>CmisBaseException cbe<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> AcmRepositoryException<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Could not get file contents&quot;</span>,<br />
cbe<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>So I said to myself: OK, I&#8217;ll just construct a URL including the CMIS object ID, then I&#8217;ll pass that object ID straight through to my Java method.</p>
<p>All you guys that have used CMIS against both Alfresco and SharePoint (hi <a href="http://www.armedia.com/blog/2011/05/cmis-sharepoint-2010-and-file-checkouts/comment-page-1/#comment-1385">Colin</a>!) know what&#8217;s coming next.</p>
<p>SP2010&#8242;s object ID looks like this: 42-512.  So my URL&#8217;s looked like this:</p>
<p>http://&lt;host&gt;/&lt;context&gt;/docs/download/2316/42-512</p>
<p>No problems here!  A nice valid URL, and my download code worked great!</p>
<p>So yesterday, I had an idea (actually, my boss had the idea). Let&#8217;s stand up the app against Alfresco!</p>
<p>Alfresco&#8217;s object IDs turn out to look like this:</p>
<p>workspace://SpacesStore/ecd60ff9-adbb-45fb-824d-9bc93aa61b0f</p>
<p>Which turned my download URL into this grim-looking thing:</p>
<p>http://&lt;host&gt;/&lt;context&gt;/docs/download/2316/workspace://SpacesStore/ecd60ff9-adbb-45fb-824d-9bc93aa61b0f</p>
<p>I&#8217;ll leave what happened when I clicked that link to your imagination (hint: it wasn&#8217;t pretty!).</p>
<p>Since I wanted to be up and running on Alfresco pretty quickly, I applied a short-term fix: I replace the colons and slashes in the object ID with strings that should not be part of any real object ID, and my download controller reverses the process.  Now my URLs look like this:</p>
<p>http://&lt;host&gt;/&lt;context&gt;/docs/download/2316/workspace-c!&#8211;s!&#8211;s!-SpacesStore-s!-ecd60ff9-adbb-45fb-824d-9bc93aa61b0f</p>
<p>The good: the download code works again.  The bad: I shouldn&#8217;t have to encode and decode my own download URL this way!  The ugly: as you can see, the aesthetics of the above URL leave a lot to be desired.</p>
<p>The long-term fix (by &#8220;long-term&#8221; I mean &#8220;by Monday&#8221;) is to not place the object ID in the URL in the first place, and use an opaque sequence-driven numeric database ID instead.  Then all my URLs will look like this, no matter what repository is in use at the moment:</p>
<p>http://&lt;host&gt;/&lt;context&gt;/docs/download/2316/42</p>
<p>Why didn&#8217;t I do this in the first place?  Well, I certainly should have.  For the most part I would never use a natural key such as the CMIS object ID in this situation.  I&#8217;m pretty sure I was trying to avoid a database lookup.  In the end I needed to do a database lookup anyway, but it never occurred to me to rethink my earlier design choices.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2011/05/q-why-should-i-test-my-cmis-application-against-multiple-repositories/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Beginner Thoughts on Alfresco Architecture</title>
		<link>http://www.armedia.com/blog/2011/02/beginner-thoughts-on-alfresco-architecture/</link>
		<comments>http://www.armedia.com/blog/2011/02/beginner-thoughts-on-alfresco-architecture/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 23:45:54 +0000</pubDate>
		<dc:creator>jhsu</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Alfresco Development]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Webscripts]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=974</guid>
		<description><![CDATA[If you asked me three months ago if I enjoy developing to Alfresco’s repository and Share UI (specifically Enterprise 3.3.3), it would have been a frustrated “NO…” &#8212; Not frustration about WANTING to learn a new product, since that is always exciting and challenging, but frustration on not understanding the architecture, the BIG PICTURE, to [...]]]></description>
			<content:encoded><![CDATA[<p>If you asked me three months ago if I enjoy developing to Alfresco’s repository and Share UI (specifically Enterprise 3.3.3), it would have been a frustrated “NO…” &#8212; Not frustration about WANTING to learn a new product, since that is always exciting and challenging, but frustration on not understanding the architecture, the BIG PICTURE, to know how to use the product.</p>
<p>I’m not going into any deep personal thoughts on Alfresco ECM architecture today; rather I am going to share my thoughts on working with the Alfresco repository and the Alfresco Share UI from a software developer’s standpoint that had (almost) no prior experience with Alfresco, or ECM platforms in general.</p>
<p>I am relatively new to Armedia, and went headfirst into learning Alfresco ECM.  NOTE! It is generally a good idea to get a “crash-course” in a new product from a product expert before jumping headfirst into a new product, even if Alfresco has thorough documentation via their Wiki (<a href="http://wiki.alfresco.com/wiki/Main_Page">http://wiki.alfresco.com/wiki/Main_Page</a>).  My coworkers and I had the pleasure to have an “Alfresco Architecture Crash-Course” presentation shared with us from <a href="http://www.linkedin.com/e/xnp1jv-gjh83d2t-1y/fpf/40288945/EML-inv-acc-prof/" target="_blank">Dimy Jeannot</a> who was working on another Armedia Alfresco project.</p>
<p>The high-level architecture is as seen below.  Any numerous UI technology, frameworks, etc are represented by the presentation layer (Alfresco Share, jQuery, EXTJS, etc).  The presentation layer can communicate with the Alfresco repository, or via Alfresco data web scripts (data layer).</p>
<div id="attachment_994" class="wp-caption alignnone" style="width: 310px"><a href="http://armedia.com/blog2/wp-content/uploads/2011/02/alfrescoArchitecture-copy1.png"><img class="size-full wp-image-994" title="High-Level Alfresco Architecture" src="http://armedia.com/blog2/wp-content/uploads/2011/02/alfrescoArchitecture-copy1.png" alt="High-Level Alfresco Architecture" width="300" height="203" /></a><p class="wp-caption-text">High-Level Alfresco Architecture</p></div>
<p>The more detailed Alfresco architecture is seen below; we use the Alfresco Share UI as our example here.  Share, and any custom Share code you write, calls RESTful presentation and/or data web scripts.  These web scripts, in turn, communicate directly with Java Core Services exposed by Alfresco (i.e. document, search, node), or any custom services you may need to add for your application, to communicate with the Alfresco Repository.</p>
<p>Never assume that Alfresco and Share are running on the same server host.  For example, you should not hardcode localhost or any other hostname in your Share code.  Instead, use Share’s proxy URL when invoking a data web script (i.e. from a Share ftl, use Alfresco.constants.PROXY_URI when invoking your data web script -&gt; Alfresco.constants.PROXY_URI + “&lt;URL&gt;”).</p>
<p>Where should you store your web scripts?  If you are concerned with data, store your web scripts in the data layer.  When your data web scripts are deployed, they are stored at webapps\&lt;alfresco webapp context&gt;\WEB-INF\classes\alfresco\templates\webscripts, create custom packages for your application.  Else you are concerned with presentation (such as from a Share dashlet), store your code in the presentation layer (it should then in turn call a data web script to get its data!).  When your presentation web scripts are deployed, they are stored at webapps\&lt;share webapp context&gt;\WEB-INF\classes\alfresco\site-webscripts, create custom packages for your application.</p>
<div id="attachment_997" class="wp-caption alignnone" style="width: 552px"><a href="http://armedia.com/blog2/wp-content/uploads/2011/02/alfrescoArchitectureDetailed-copy2.png"><img class="size-full wp-image-997" title="Detailed Alfresco Architecture" src="http://armedia.com/blog2/wp-content/uploads/2011/02/alfrescoArchitectureDetailed-copy2.png" alt="Detailed Alfresco Architecture" width="542" height="375" /></a><p class="wp-caption-text">Detailed Alfresco Architecture</p></div>
<p>Looking back now and reading the Alfresco Wiki’s, the Alfresco architecture makes sense, I just needed guidance on putting the big picture together to start feeling comfortable with working with a new product.  If you ask me do I enjoy developing with Alfresco now, I would say yes &lt;with smiles&gt;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2011/02/beginner-thoughts-on-alfresco-architecture/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Think Alfresco from Documentum perspective  –Take 1</title>
		<link>http://www.armedia.com/blog/2010/07/think-alfresco-from-documentum-perspective-%e2%80%93take-1/</link>
		<comments>http://www.armedia.com/blog/2010/07/think-alfresco-from-documentum-perspective-%e2%80%93take-1/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:19:07 +0000</pubDate>
		<dc:creator>bsampath</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Alfresco Development]]></category>
		<category><![CDATA[Aspects]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[Documentum Development]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>
		<category><![CDATA[Export]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Web Content Management]]></category>
		<category><![CDATA[Webscripts]]></category>
		<category><![CDATA[aspects]]></category>
		<category><![CDATA[Caliente]]></category>
		<category><![CDATA[deep export]]></category>
		<category><![CDATA[lucene]]></category>
		<category><![CDATA[tomcar]]></category>
		<category><![CDATA[webscripts]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=399</guid>
		<description><![CDATA[When you work for a while in the software you get numbed to “technologies have come and gone&#8230;” occasionally though some become commodities and others trend setters. We have seen that with many products like Apache, Tomcat, Lucene, Drupal …etc that have stabilized and matured over the past years with the help of increased development from [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://armedia.com/blog2/wp-content/uploads/2010/07/OpenSource.gif" alt="Open Source ...&lt;/ins&gt;" width="528" height="308" /></p>
<p><span style="color: #888888;"><span style="color: #000000;">When you work for a while in the software you get numbed to “technologies have come and gone&#8230;” occasionally though some become commodities and others trend setters. We have seen that with many products like </span></span><a href="http://www.apache.org/" target="_blank">Apache</a>, <a href="http://tomcat.apache.org/">Tomcat</a>, <a href="http://lucene.apache.org/" target="_blank">Lucene</a>, <a title="Drupal" href="http://www.drupal.org" target="_blank">Drupal </a><span style="color: #000000;">…etc that have stabilized and matured over the past years with the help of increased development from the open source realm. Wait! Did I mention the word “Open Source” and going to talk about</span><span style="color: #000000;"> the enterprise</span><span style="color: #000000;"> </span><a href="http://en.wikipedia.org/wiki/Content_management_system" target="_blank">content management</a>?</p>
<p><span style="color: #000000;">So without any more ado, we have </span><a href="http://www.alfresco.com/" target="_blank">Alfresco</a>- <span style="color: #888888;"><span style="color: #000000;">catering to a rapidly increasing demand of the enterprise content management solutions which is built over the open source technologies such as</span> </span><a href="http://wiki.alfresco.com/wiki/Alfresco_Repository_Architecture" target="_blank">Spring, Hibernate, and Lucene</a><span style="color: #888888;"> <span style="color: #000000;">platforms. Having done years of Documentum development and several Alfresco projects of late, I think there are some interesting overlaps and differences of approach that I feel would make the developers get adapted quicker.</span></span></p>
<p><span style="color: #000000;">With the</span> <a href="http://wiki.alfresco.com/wiki/Main_Page" target="_blank">wiki</a> <span style="color: #000000;">site overwhelmed with Introduction, API’s, Development, Deployment and the</span><span style="color: #000000;"> </span><a href="http://forums.alfresco.com/en/" target="_blank">Forums</a> <span style="color: #000000;">to answer all the questions regarding the issues faced during the project phase, I am here to talk purely from the developers perspective on what’s the key areas that I happen to witness the difference from the Documentum space.</span></p>
<p><span style="color: #000000;">The road map for my next series of blog is going to cover each of the areas mentioned below in more detailed, code abundant and developer centric approach which will answer the questions:</span></p>
<ul>
<li><em><span style="color: #000000;">Does this feature exist in Documentum or Alfresco or both?</span></em></li>
<li><em><span style="color: #000000;">If yes, how different is the approach?</span></em></li>
</ul>
<p><span style="color: #000000;">So with that preamble, and in no particular order, I give you my list of the key areas I got hands on and learnt how different Alfresco is:</span></p>
<ul>
<li><strong><a href="http://wiki.alfresco.com/wiki/Aspect" target="_blank">Aspects</a></strong></li>
</ul>
<p style="padding-left: 30px;"><span style="color: #000000;">Custom data model is the core for any enterprise content management solution. The use of “Aspects” as its core is the fundamental concept for content modeling in Alfresco. Although in the</span> <a href="http://developer.emc.com/developer/devcenters/ContentManagement/D6/whats_new_in_documentum6.pdf" target="_blank">form D6</a>,<span style="color: #000000;"> </span><span style="color: #000000;">aspects was introduced, how different is the use and approach in Alfresco is something I will take a deep dive in my next blog.</span></p>
<ul>
<li><a href="http://wiki.alfresco.com/wiki/Web_Scripts" target="_blank"><strong>Web Scripts</strong></a></li>
</ul>
<p style="padding-left: 30px;"><span style="color: #000000;">Alfresco Web Scripts brings together the world of content repository and the web. Being a Documentum developer earlier ways of interaction with the repository have been either using DFC API’s or DQL. In Alfresco, Web Scripts provide RESTful access to content within the repository and we can build our own interface using java script. A custom move operation is implemented using the Web Scripts and the comparison of the implementation with the Documentum would be a something to be noted.</span></p>
<ul>
<li><a href="http://www.daeja.com/integrate/integrate-alfresco.asp" target="_blank"><strong>Integration</strong></a></li>
</ul>
<p style="padding-left: 30px;"><span style="color: #000000;">On my last project, we had requirements for the customers to be able to permanently redact</span> <a href="http://en.wikipedia.org/wiki/Personally_identifiable_information" target="_blank">Personally Identifiable Information</a> <span style="color: #000000;">(PII) from existing documents stored in the repository and version the original document upon save. For various reasons, we decided to integrate the 3</span><sup><span style="color: #000000;">rd</span></sup><span style="color: #000000;"> party tool Daeja </span><a href="http://www.daeja.com/" target="_blank">ViewOne</a><span style="color: #000000;"> module to provide this capability. I will discuss the topic as part of this blog series.</span></p>
<p><span style="color: #000000;">I started this series based on my experience implementing Alfresco projects and I invite you to share any of your experiences with any part of the road map wherein you run into interesting twists and turns? Did you drive off the road to get some help? I welcome your feedback as the blog takes its shape. See you all soon in </span><em><span style="color: #000000;">Take 2</span></em><span style="color: #000000;">.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2010/07/think-alfresco-from-documentum-perspective-%e2%80%93take-1/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Content Collection, Migration, and Delivery</title>
		<link>http://www.armedia.com/blog/2009/06/content-collection-migration-and-delivery/</link>
		<comments>http://www.armedia.com/blog/2009/06/content-collection-migration-and-delivery/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 22:17:42 +0000</pubDate>
		<dc:creator>kevans</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Case Management]]></category>
		<category><![CDATA[Content Authoring]]></category>
		<category><![CDATA[Content Server]]></category>
		<category><![CDATA[Data Migration]]></category>
		<category><![CDATA[Documentum]]></category>
		<category><![CDATA[eDiscovery]]></category>
		<category><![CDATA[Electronic Health Records]]></category>
		<category><![CDATA[Enterprise Content Management]]></category>
		<category><![CDATA[Mobility]]></category>
		<category><![CDATA[Performance Monitoring]]></category>
		<category><![CDATA[Records Management]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Web Content Management]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=192</guid>
		<description><![CDATA[There are well over 35 proprietary document management systems, an astronomical number of homegrown document management systems, and billions of sources for information to come from.  As technology changes, new and better features are added to current systems, new products are coming out, and software systems frequently have to be upgraded.  As companies merge, workflows [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;">There are well over 35 proprietary document management systems, an astronomical number of homegrown document management systems, and billions of sources for information to come from.<span style="mso-spacerun: yes;">  </span>As technology changes, new and better features are added to current systems, new products are coming out, and software systems frequently have to be upgraded.<span style="mso-spacerun: yes;">  </span>As companies merge, workflows that were once adequate, no longer cover the bases for the growing needs of the “new” organization.<span style="mso-spacerun: yes;">  </span>What happens when companies merge and they were using two different document management systems?<span style="mso-spacerun: yes;">  </span>Which one takes over?<span style="mso-spacerun: yes;">  </span>Or do they continue to use both?<span style="mso-spacerun: yes;">  </span>As organizations grow, merge, and split, the number of input sources and output destinations dramatically increase.<span style="mso-spacerun: yes;">  </span>How do we integrate these new information pathways , along with new applications that are introduced, keeping you in the same locked in status? </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;">It’s simple.<span style="mso-spacerun: yes;">  </span>The new Content I/O Suite.<span style="mso-spacerun: yes;">  </span>Armedia’s Content I/O Suite allows users to collect information from all of those billions of sources, migrate it to the centralized repository in the company, and then, if needed, deliver that information to the different web portals that may need to view the information later.<span style="mso-spacerun: yes;">  </span>In fact, it can even send the information to multiple repositories all from the same interface.<span style="mso-spacerun: yes;">  </span>So what if Human Resources uses Documentum, and Accounting uses Laserfiche, and some departments have their own collaborative eRoom set up, but you just merged with another company who uses SharePoint and FileNet.<span style="mso-spacerun: yes;">  </span>What if one user could capture the information coming in from the website, or through email, or through regular snail mail, and deliver it into the appropriate system, without that one user ever having to be trained in each of those systems?<span style="mso-spacerun: yes;">  </span>Sounds too good to be true, doesn’t it?<span style="mso-spacerun: yes;">  </span>Check it out at <a href="http://armedia.com/products/suite/">http://armedia.com/products/suite/</a>. </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small;"><span style="font-family: Calibri;">-Kristin Evans</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2009/06/content-collection-migration-and-delivery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Custom Views in Alfresco</title>
		<link>http://www.armedia.com/blog/2009/04/custom-views-in-alfresco/</link>
		<comments>http://www.armedia.com/blog/2009/04/custom-views-in-alfresco/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 17:31:56 +0000</pubDate>
		<dc:creator>dwagley</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Content Management]]></category>

		<guid isPermaLink="false">http://www.armedia.com/blog/?p=62</guid>
		<description><![CDATA[Have you ever wanted to impart information about a space, but without having to force the user to open a document, or perform a search? A custom view is a portal that can be attached visually to a space. It is a great way to convey information about a space and it&#8217;s contents. A custom [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to impart information about a space, but without having to force the user to open a document, or perform a search?</p>
<p>A <em>custom view</em> is a portal that can be attached visually to a space. It is a great way to convey information about a space and it&#8217;s contents. A custom view can be attached to any space, but can be particularly effective when used on a company&#8217;s division, department or a specific project space.</p>
<p><span id="more-62"></span></p>
<p>The templates for Custom Views are found in:</p>
<p><strong>Company Home &gt; Data Dictionary &gt; Presentation Templates</strong></p>
<p>In this example,  we are going to use a simple template called &#8220;readme.ftl&#8221; to convey information about a weekly status call for a fictitious &#8220;Phoenix&#8221; project.</p>
<p>The template files are &lt;FreeMarker&gt; templates. For more information on FreeMarker see:   <a class="alignright" title="Freemarker" href="http://freemarker.sourceforge.net/" target="_blank">http://freemarker.sourceforge.net/</a></p>
<p>For the purposes of this example, you don&#8217;t need to know anything about FreeMarker.<br />
Use an editor of your choice and create a readme.html file. Here is what mine looks like:</p>
<p><strong>&lt;H1&gt;Welcome to The Phoenix Project!&lt;/H1&gt;<br />
&lt;p&gt;<br />
This is a reminder that we will have our weekly Status meeting tomorrow, &lt;b&gt;Wednesday April 1st, from 10:00 to 11:00 am&lt;/b&gt;.  Please find tomorrow’s agenda, and this week’s reports (OWL, Kudos, &amp; Events) in the &lt;i&gt;Weekly Meeting Materials&lt;/i&gt; folder below.  The conference line information is listed below for all of our off-site colleagues:<br />
&lt;p&gt;<br />
&lt;b&gt;Call in #:  1 (888) 990-3160&lt;/b&gt;<br />
&lt;br&gt;<br />
&lt;b&gt;Pass code: 39007728&lt;/b&gt;<br />
&lt;p&gt;<br />
Thank you,<br />
&lt;br&gt;<br />
Sam Cooke<br />
&lt;br&gt;<br />
Program Assistant, Phoenix Project<br />
&lt;br&gt;<br />
(733)961-1990<br />
&lt;br&gt;<br />
sam.cooke@phoenix.com<br />
&lt;br&gt;<br />
&lt;H4&gt;Progressive Division of American Resource Management&lt;/H4&gt;<br />
&lt;br&gt;<br />
The Phoenix Project<br />
&lt;br&gt;<br />
New Out of Old<br />
&lt;p&gt;<br />
&lt;a href=&#8221;www.arm.com/phoenix&#8221;&gt;www.arm.com/phoenix&lt;/a&gt;</strong></p>
<p>Once you are finished creating your readme.html file, import it into the space where you want the message to appear. Like so:</p>
<p><img class="aligncenter size-full wp-image-73" src="http://armedia.com/blog2/wp-content/uploads/2009/04/one.jpg" alt="" width="983" height="626" />To select the template for your Custom View,  you will want to view the details of your space. Go up one level to the parent space and then select the View Details icon for your space. It&#8217;s the icon in the middle that looks like a sheet of paper. This is the View Details screen for our example space:</p>
<p><img class="aligncenter size-full wp-image-74" src="http://armedia.com/blog2/wp-content/uploads/2009/04/two.jpg" alt="" width="1115" height="669" /></p>
<p>Once you are on the View Details screen, select the Modify Icon for Customer View. It&#8217;s the blue one just to the left of the trash can. Next select the readme.ftl  template like so:</p>
<p><img class="aligncenter size-full wp-image-75" src="http://armedia.com/blog2/wp-content/uploads/2009/04/three.jpg" alt="" width="1115" height="669" />Hit OK and then navigate to your space. Voila!, there is our meeting message. No need to email the information weekly any longer. Now it&#8217;s right there in Alfresco along with all the other project documentation. To update the information simply check out and update the readme.html file. When the file is checked back in, the view will automatically update with the new information.</p>
<p><img class="aligncenter size-full wp-image-92" src="http://armedia.com/blog2/wp-content/uploads/2009/04/four.jpg" alt="" width="1133" height="769" /></p>
<p>This example is a very simple one. There are a number of presentation templates bundled with Alfresco, or you can create your own template.</p>
<p><img class="alignleft size-full wp-image-68" src="http://armedia.com/blog2/wp-content/uploads/2009/04/one.tiff" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.armedia.com/blog/2009/04/custom-views-in-alfresco/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

