In-Depth
Profile: A Fresh, Open Source ECM Platform
Alfresco Software provides a fresh, open source alternative for enterprise content management. Following the release of its Java SDK, Alfresco is looking to make its system the ECM platform for Web 2.0.
p>
"I think it's been our background and history that people just kind of trust us that we will build a robust enterprise content management system," said John Newton, CTO and chairman of Alfresco Software Inc. Alfresco provides an open source enterprise content management (ECM) system alternative to other proprietary products from Documentum, FileNet (an IBM Company), Open Text Corporation, Interwoven Inc., and Microsoft Windows SharePoint Services. ECM systems manage structured and unstructured content in organizations to meet business goals, service customers, and manage compliance requirements.
Founded in 2005, Alfresco Software—with offices in both Maidenhead in the UK and San Francisco, California—is made up of a crack team of industry heavyweights and development teams with considerable experience in enterprise content management (ECM) systems.
Newton, previously a cofounder of Documentum who architected the Documentum system and led the development of its products, cofounded Alfresco with John Powell, who was formally COO at Business Objects, where he grew the company from virtually nothing to an organization with $450 million in revenue. Together they put together a team of experts in ECM systems that includes Dr. Ian Howells, chief marketing officer; Kevin Cochrane, vice president, Web content management; Matt Assay, vice president, business development; and teams of developers and engineers from Documentum and Interwoven.
Howells, who has a Ph.D in database technologies and expert systems and was formerly vice president of marketing at SeeBeyond, has worked with Newton for many years, going back to when the two were at Ingress. The Alfresco team was able to bring in Documentum's Java Web development team to build the Alfresco Software Development Kit (SDK) for Java content repositories (JCRs) and Web services API development. The SDK, which became available for download in October 2006, provides all the components required to develop stand-alone or embedded applications and plug-ins against the Alfresco repository.
Newton said that in early 2006 Kevin Cochrane joined Alfresco from Interwoven, bringing with him some of the developers of Interwoven's core product for deploying team sites, workflow, and forms management.
"We've been able to assemble a team and in the last 18 months create a complete enterprise content management system using a lot of open source components and bring to market in record time a lot of capabilities using open source and an agile iterative development. It's had a lot of releases, but is very focused, and we have a clear vision of where we want it to go," Newton said.
A Dual System
"We've taken an area of enterprise content management that in the past has been both application and platform, and we're really emphasizing the platform side, particularly to encourage people to build more components as part of the overall ECM infrastructure to be made freely available not just for us but for everybody," Newton said. "It's combining some best of breed components that people already know—Spring, Hibernate, Leucene, [JBoss Process Management] JBPM, and MyFaces—but also combines them in some interesting programming models that are not just traditional Java, but also integration with lightweight programming models such as JavaScript with the Rhino engine, Web services, SOAs, and the new style REST architectures as well."
According to Newton it's in that context that Alfresco released the SDK for the platform, and it uses a lot of the same components that work with a lot of the same components Alfresco was designed for.
"I think the interesting thing about enterprise content management out of all the classes of enterprise software, it is more a dual type of system in that it is both a platform and an application. Up to this point we've been focusing on the application of the proof point for that SDK," Newton said, "and now we're taking the same tools that we used to build the system and [are] able to provide that to the Java community as a whole."
"What we saw is people wanted open source, so they wanted the proven scalability of the Java stack and that's what we focused on," Howells added. "With content management, there have never been standards; the database has had SQL. For over 15 years there's been nothing in content management, and there are new Java standards around JSR 170, which is what gets SQL for databases which is what we see our users wanting to give them—that kind of openness and portability in the CM world, and with it the Java standards."
The Spring AOP framework for Java was the cornerstone system for the Alfresco system architecture, according to Newton and Howells, and maximum use of the Spring framework was critical in designing the Alfresco system to be aspect oriented.
"We brought in Rod Johnson in the beginning of [developing] the architecture to advise us on the best way to use Spring and integrate Spring with things like Hibernate," Newton said. "Using Spring, we've been able to wire together our system as a much more lightweight, flexible architecture compared to the way that we architected the Documentum and Interwoven systems.
"It's a perfect illustration of the value of AOP in that you either use something or you don't use something, and you can determine at run time whether you use something like security, versioning, templating, any number of different types of capabilities that in the old style of systems you always have around just in case. Whereas, in the new style of aspect-oriented, modular programming you bring in only if you need. And the end result is that it's a much, much faster system. We estimate that it's probably about five times faster than existing systems as a result, just by cutting out a lot of computation that is unnecessary."
Benefits of AOP
In pulling together a number of best of breed, open source components to build Alfresco, they are all accessible as part of the SDK. The Java-based UI uses MyFaces with the core JavaServer Faces (JSF). Leucene is used for searching and indexing, Hibernate is used for persistence, and the JBPM engine for workflow. On top of this stack is the JSR 170 API, the Content Repository for Java Technology API.
"We provide examples of how to use that and integrate it into your Java applications," Newton said, "but we also provide the Alfresco API, which is much more service oriented and oriented toward aspect-oriented programming [AOP], so it is more lightweight, stateless, faster, and more tuned for high-performance applications—yet still relatively simple. You have the choice of doing aspect-oriented development or being standards based with the JSR 170, and you can mix and match those calls as necessary."
The SDK can be used in conjunction with content management requirements in Web applications, especially context-centric Web applications, such as news types of applications and portals. It can also be used to store and manage large pieces of content as part of a record management or compliance application and publishing applications. The SDK is also useful for managing XML chunks, including the ability to search and aggregate them into new XML chunks for publishing applications and then pipelining it into transformation engines such as XSLT.
"We've also incorporated the Rhino JavaScript engine for a lightweight scripting model as well," Newton said. "That gives JavaScript the full access to the entire Alfresco model as well as the JBPM model for constructing very complex and complicated, but also simple, JavaScript applications. Everything is accessible and available."
The JavaScript engine allows developers to construct a publishing application entirely in JavaScript where it's able to traverse the relationship between various Java objects to construct complex objects. It's even possible to program some of the components in PHP because of the connections using Web services.
The response from the community for Alfresco's system has been better than expected by the company's management. Newton said that when the company released the Alfresco system product in June of 2005, the team was hoping they might be able to get 10,000 downloads by the end of that year, but ended up with that number of downloads in the first two weeks following its release. By the end of 2005 there were 100,000 downloads, and at the time of this writing Alfresco reports they're starting to get very close to half a million downloads—a little over a year after releasing the product.
"When we looked at who was actually downloading, and people started communicating with us," Newton said, "we were surprised [because] we thought it would be more SMB types of businesses, and it turned out to be probably about half were the Forturne 1000, who had already been educated for the need of content management compliance and content management applications. That's been pretty much true; it's about 50 percent large enterprises or large government organizations."
The Road Ahead
In identifying specific clusters Newton said a lot of financial services organizations, which tend to be natural early adopters of open source, and government organizations were downloading the product. He said that the high usage by large government organizations, particularly the federal government, was surprising given the assumption there was already a stronghold by Microsoft in a lot of those areas.
"We found that there's a pretty robust open source community in the federal government, and [Alfresco's ECM system] is being used in the military and other major departments in the federal government," Newton said, adding that several state and local governments, including Nebraska, Louisiana, Texas, and Hawaii, are deploying it.
In looking ahead at Alfresco's short-term road map, Newton said that Alfresco in less than two years has been able to compress in a little over 18 months what took almost ten years to accomplish during his tenure at Documentum. One of the major initiatives to look for from Alfresco in 2007 is to see some significant movement in terms of standards for content management, and the company's objective is to be one of the first, if not the first, to adopt those standards.
Newton said that the next step is "to take what is already a fairly distributed architecture and seeing content management growing more naturally from a more departmental perspective, but being able to aggregate and federate various repositories at the enterprise level for doing searching and discovering across the enterprise. We're planning to spend a lot of work in the area of distributed systems and solve a lot of problems as well."
Also look for a preview release of its upcoming Web content management system, which the management team hopes will become the platform for Web 2.0. As Newton put it, Web 2.0 is all the rage, but everybody is building their own toolkits to be Web 2.0.
"What we'd like to do is create what we call content management 2.0 to be able to take those concepts and make them available as part of this SDK, providing AJAX integration, integration for mashing up various types of applications inside and outside the enterprise, and take content—especially collaborative content—to the next level and make it a standard part of the enterprise infrastructure."
In conjunction with that Web 2.0 vision, Alfresco plans to work more closely with the rest of the open source community, as well as the business intelligence portions of the community, and work with the CRM community and other people who are providing complementary tools to ensure that all of them work well together.
For more information on Alfresco:
Park House, Park Street
Maidenhead, SL6 1SL
United Kingdom
+44 (0) 1628860 500
www.alfresco.com
About the Author
Terrence O'Donnell is managing editor of Java Pro.