Document UM – what?

After reading both BMOC and Pie’s postings about how they got started in Documentum, I felt inspired to reflect on the origins of Documentum Guru.

It was the summer of 1996. I just graduated from Georgia Tech and started my first job out of college as a systems analyst for a government contractor. I was supposed to be working on some modeling and simulation project, but due to the time it took to relocate back to DC, that slot was given to someone else. I ended working on some internal IT project using Visual Basic. Visual Basic 4.0 was a big change from the FORTRAN I learned in undergrad and grad school. Within a couple months, I was finally comfortable enough with language that I created a VB/ASP program called InfoClip, which allowed users to manage PPT slides as if they were posted on a wall. I guess this was the start of my “content management” career. I learned the complexities of versioning, security, and lifecycle from this project.

Fast forward to fall of ‘96. We showcased this application to one of our government clients. The client was intrigued by the visualization concept and wanted to know if we could integrate it with an existing document management system called Documentum. Document-um what.

I was sent to Chicago (my first visit to the windy city) to get trained on WorkSpace 3.2. This was prior to EDMS98 and the architecture was still client-server based. The customization language was Docbasic along with the Documentum APIs, which by the way are still used. If you wanted to create custom UIs, you had to use an application called Quickbuilder, which is similar to Forms Builder in a lot of ways. Interesting how technologies go in and out of style like clothing.

Anyways, I picked up the “fundamentals” and was ready to start integrating InfoClip with Documentum. Unfortunately, the client re-prioritized this need and my training was not needed any more. I stayed with that company for a couple more years at which point I decided to look for a real IT consulting job. I ended up going to a local consulting company called Infodata. They saw that I had Documentum training and had previous experience with government. Fast forward to today and I am still working with Documentum thirteen years later. I tell a lot of people that I was lucky to “fall into” a technology that has lasted this long. Many of my friends worked with software vendors that are no longer around or have been gobbled up by bigger companies.

I later found out that Infodata was the company that proposed and installed Documentum at the government client that wanted me to get trained on Documentum. Is this fate or just dumb luck?

Review – Alfresco 3 Enterprise Content Management Implementation

Alfresco 3 - Enterprise Content Management Implementation Alfresco 3 Enterprise Content Management Implementation by Munwar Shariff, Vinita Choudhary, Amita Bhandari, and Pallika Majumdar

After reviewing the first version of this book, Alfresco Enterprise Content Management Implementation, a few months ago, the writer/publisher provided me a free copy of the book and wanted me to review the updated version.

My first impression of the book was that it was much larger than the first book, about 40% more pages. This makes sense, since Alfresco 3 has a lot more features than Alfresco 1.4, which the first book was based off of. Here is my synopsis of the various chapters:

Chapter 1-8 reviews basic features in Alfresco 3. There is new info on dynamic model and how it supports multi-tenancy, which is also a new feature in Alfresco Enterprise. The advanced workflow chapter has been updated and flows better than as described in the first book. This was my only “complaint” in the first book. I was delighted to see that this was addressed in the current version.

Chapter 9 discusses various methods to integrate with other applications. This chapter reads like a cookbook, but this is probably due to the various enhancements to Alfresco 3 that were created to support CMIS, REST, and other apps like Liferay, Dupal, Joomla, iPhone, iGoogle, and Facebook. The core of many of these enhancements is the use of web scripts. For those of you not familiar with web scripts, the authors did a good job describing the technology and providing examples of how to integrate Alfresco with these other apps.

Chapter 10 covers Alfresco Share, which is the collaborative UI built as alternative to SharePoint. Unlike the rest of the book, this chapter was written like a user guide to my dismay. It went into great detail of how to perform various actions in the Share. This information is already available as part of the product help. A high-level overview of all the various features would have been sufficient.

Chapter 11 & 12 talks about how to customize Alfresco Explorer & Share and how Search works. With Alfresco 3, search now includes Open Search, which supports federated search across multiple Alfresco repositories as well as other data sources (eg Yahoo, Google, etc).

Chapter 13 provides an updated example of how to implement a imaging and forms processing solution using Alfresco.

Chapter 14 (the final chapter) provides updated information on the administration of Alfresco. This includes descriptions of how Alfresco can be clustered (multi-server/single repository) and how to set up a Alfresco in a fail-over mode (hot backup). There is also a section describing user quota feature that is part of the multi-tenancy support. I found this chapter very insightful and most useful from an application architect perspective.

Overall, this book is a excellent primer if you are learning about Alfresco for the first time. If you already know the basics about Alfresco or if you already have the original book, about half the book is similar to the original. The other half covers new features in Alfresco 3.

On a side note, even though Alfresco as a technology is cool, Alfresco as an organization is not as impressive. I have reached out to three different people at Alfresco requesting information and have not received any replies. You have to wonder how many people actually are working behind the scenes.

What is xCP?

1) Enhanced linux/unix function to copy files
2) New extreme sport
3) New one-click software bundle from EMC|Documentum

If you didnt guess #3, you shouldnt be reading my blog :) I attended xCP hands-on training event provided by EMC to its partners. The goal was to give EMC partners enough training that they could start developing case based POCs with the software bundle and start showing the value of xCP.

Lets start by reviewing what xCP is. xCP is a rapid deployment of Forms Builder, Process Builder, TaskSpace, and Business Activity Manager using a simplified installation script. xCP also simplifies the licensing structure; the sales/marketing folks have come up with a bundled license for all of the products per user basis. This simplifies the total upfront costs, which makes easier to get a new customer to market sooner, with focus on “speed to value”.

From a training perspective, this two day course was pretty darn cool. We were able to run the entire stack from a VMimage hosted by EMC cloud servers. Each of 15 or so participants had their own image running on the cloud. There were no issues with performance on the cloud. We had an option of running the image on our local laptops, but based on previous sessions, there were performance issues given the amount of memory required from the image and what is typically available on a laptop.

We spent about a half day on each of the products. Since I worked with Forms Builder and Process Builder before, I only picked up a few new tidbits. I saw how high-fidelity forms can work in conjunction with web forms. I also saw how Invoke button on a eForm was implemented. This type of button was designed to launch a custom WDK action. This was of interest to me because I was involved in the 6.0 Forms Builder Early Adopters Program where we requested this feature.

In Process Builder, we were worked through some examples of when to use structured data types (SDT) vs package data. Data stored in SDT are local to the process instance and will be lost once the process has been completed. Data stored in package object model will persist beyond the life of the process instance. The training showed us how we can use SDT throughout the process and then in the last activity in the process, save the SDT information back to the package structure if needed. SDTs are easier to use when mapping values from external system/source (eg email).

Taskspace training session was relatively straight-forward. Most of us have seen this demo before showing the different UI for different roles and how you can easily configured different TaskSpace components for different needs. What was missing from the training was mapping of when to use various TaskSpace components. Its probably easier to digest if you have real requirements and have specific UI needs.

I learned the most from BAM session. The BAM product has been tightly integrated with TaskSpace. Using Process Reporting Services, you can “dashlets” that can be assembled into a dashboard from within TaskSpace. The dashlets allow report designer to create various UI that compile and display process metrics collected from CS to local BAM database. This separation of process data from live data greatly minimizes the impact on the CS when process data is analyzed and displayed. The entire BAM product-line is very UI friendly and can used to deliver a quick win to client in a relatively short time frame.

In addition to the installation of the four products, xCP provides several templates (aka xCelerators) for various case management practice areas. The xCelerators include sample object types, process templates, user scenarios, and best practices that can be used as jump start to new implementations. The Grants Management xCelerator was used during this training session. I believe a Contracts Management xCelerator is coming out soon. Using xCelerator, a client/partner can develop a custom xApp much quicker than before. EMC claims about 50% faster. Do I believe this – I think in some scenarios this could be true. Obviously, everything depends on requirements, but if the goal is to get something out quick, xCP is packaed to do that.