Alfresco Fresh Talk…

Alfresco Fresh Talk…

Comments, observations and podcasts on Alfresco, ECM, and Software.

Alfresco Fresh Talk… RSS Feed
 
 
 
 

Host your own cloud storage array with Parascale

Last Friday, I visited with Parascale where I met with Mike Maxey (Dir. of Product Management), Sajai Krishnan (CEO), and Cameron Bahar (CTO and Founder). Parascale has developed software that allows you to turn 2 or more Linux servers into an Amazon S3-like cloud storage array that runs in userspace and can be easily mounted via NFS.

Parascale competes with Caringo’s CAStor in that it too can automatically replicate files across your storage nodes so as to ensure that your files are safe in the event one or more nodes fail.

The main differences with Caringo are that the software runs in userspace on a fairly vanilla Linux server while Caringo’s CAStor is delivered as a completely self-contained Linux software appliance. Additionally that it can be mounted via NFS without requiring a “Content File Server” or use of a REST API (for which there exists a very good Alfresco-CAStor Adapter).

A neat thing about Parascale is that it’s rather lightweight so that gave me the ability to install Alfresco on the one of the Linux boxes that also ran the storage services. This can be put to good use in a production environment as it allows enterprises to maximize their hardware investment by consolidating Alfresco and reliable storage.

I decided to run a 100,000 document benchmark while we stepped out to lunch. Upon our return I was quite pleased that the rather under-powered server I was running on managed about 8 documents per second. Unlike my GoGrid benchmarks, the benchmark client was running on the same physical machine as Alfresco and the storage software so I didn’t need to deal with network latency.

Parascale has already proven the longevity and scalability of their storage cloud but you can expect even more enhancements over the coming months. Check them out at http://parascale.com

Mike Maxey will be present at the special cloud event in San Francisco on May 13th. You can learn more about the event and register here.

Alfresco in the Cloud: GoGrid

I spent a few hours this weekend installing and configuring an Alfresco cluster on GoGrid and ran a 200,000 document Alfresco Benchmark against the cluster. Setup was pretty easy, I simply used the graphical tools to drag 4 Linux servers (1 benchmark client, 1 MySQL, and 2 Alfresco) plus a load-balancer and a cloud storage appliance.

I struggled a few minutes with some Linux firewall issues but after resolving those and raising the ulimit to max, I had a happy cluster. The benchmarks ran for a few hours and averaged a very respectable 10 documents per second.

You can learn more about GoGrid by visiting their site. I’ll also be discussing this and other topics at the San Francisco user conference on May 14th and during the Special Cloud Event on the evening of May 13th. There are still seats available for the cloud computing event so please register by emailing harinder.sunder@alfresco.com.

Cloud Computing Special Event in San Francisco!

Interested in learning about Cloud Computing?

Curious to know how Alfresco can be deployed to the cloud?

If you’re in the San Francisco Bay Area, you may be interested to learn that Alfresco has partnered with GoGrid, provider of cloud-based hosting services, to organize a special event to be held the evening of May 13th, the night before the Alfresco Meetup.

Some of the topics that we will explore include:

  • What is cloud computing?
  • What are the benefits of leveraging the cloud?
  • How does Alfresco fit into the cloud?

This event will feature experts from Alfresco, GoGrid (Randy Bias and Michael Sheehan) and CNet cloud computing blogger James Urquhart (Wisdom of the Clouds). We’ll also have guests from Parascale who develops cloud-style storage software that you can run on your own datacenter.

There will be opportunities to network with fellow Alfresco and cloud enthusiasts as well as ask questions.

IMPORTANT NOTE: There’s room for only 30 guests, so we require registration to this event.

Date: May 13th, 2009
Time: 7:00pm (Please show up early as registration with security is required)
Place: GoGrid/ServePath Corporate Office - 2 Harrison St. Suite 200 - San Francisco
Registration: To register, please send an email to harinder.sunder@alfresco.com

* GoGrid Cloud Hosting is a service of ServePath Dedicated Hosting

Are you doing something interesting or cool with Alfresco Labs or Enterprise?

I’m doing a quick, informal survey of what people are doing with Alfresco Labs and/or Alfresco Enterprise. Just answer these 6 easy questions at http://snurl.com/gs4mc.

I’d love to hear about cool implementations, integrations with other systems, etc. Anything goes!

CMIS-based Alfresco + Fujitsu ScanSnap Integration

Check out this demo video of a CMIS-based integration between Alfresco and the Fujitsu ScanSnap scanner.

Alfresco + Fujitsu ScanSnap Integration from Alfresco Software.

The CMS Vendor Meme

Well, this is kind-of amusing… Our fellow open sourcerors over at Magnolia have tagged Alfresco among other CMS’s to participate in the “CMS Vendor Meme”.

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

I’m hereby invoking our right to tag: Documentum, Oracle/Stellent and finally our good friends at Acquia/Drupal

Now, In the spirit of goodwill, fun and transparency, I offer you our response…

“WE GET IT” CHECKLIST FOR VENDORS

1. Our software comes with an installer program.

Installers are available for Windows, Linux and Mac. Non-installer distributions also available. Even the WAR distribution generally only requires that the software be unzipped and it’s ready to go.

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

No reboot is required…

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

Users pick their language upon login time, not install time. Language packs are separately downloaded and installed as per our Wiki.

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

We make both our Labs and Enterprise editions available for download. Registration is required for the Enterprise edition, not for the Labs edition. Nightly builds of the Labs edition are also available.

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

A sample “Alfresco” site is included but I’m not personally too happy with it. I have my own demo sites that I use, but I’m not allowed to distribute them since we don’t own the copyright on the templates that I used. Now that Web Studio is coming along, I expect us to be able to offer a fully template-driven sample site very soon.

6. We ship a tutorial.

We certainly do… Documentation is very important to us and we continue to make every effort to improve upon it.

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

Yup, a link is available on the upper right corner of every screen.

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

Help docs are accessible via the Web UI and the remainder of our documentation is available online via our Wiki and Customer site.

[UPDATE: We no longer include the tutorial document as part of the distribution but we do link to the online help on every product screen. Nonetheless, I've knocked down our score to 1 star instead of 2 because of this.]

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

Indeed we do…

10. Our salespeople understand how our products work.

Inasmuch as a non-technical/non-web-development savvy person can, yes. But that’s why we have a stellar team of Solution Engineers ready to lend prospects, customers and community members a helping hand.

11. Our software does what we say it does.

Yup… That’s the whole idea, ain’t it? Download it and see!

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

The SDK is completely open source and free.

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

You tell me, the Labs version is completely free while the Enterprise edition’s pricing is based on a yearly support subscription fee metered by the number of CPUs (aka ’sockets’) on the server(s) you’re installing on. Up to 4 cores are allowed per CPU.


14. We have one price sheet for all customers.

There is indeed only one price-sheet…

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

Absolutely, the most complete list of Twitter ID’s is on our Wiki.

My Adobe AIR Project: Writing an Alfresco Desktop App

I’ve just put the finishing touches on a basic Adobe AIR-based desktop app that retrieves activity feeds from Alfresco Share.

There is a common misconception is that AIR is only for Flash-based apps, but this app makes no use of Flash instead it uses ExtJS as the AJAX/UI library though I could’ve used virtually any JavaScript toolkit such as Dojo, YUI, Scriptaculous, etc.

To install it, simply visit this page.

Once installed, click the “Config” button to point it to your Alfresco server. The fields are self-explanatory.

There is one note about the “Site” field: This is an OPTIONAL field. If set, it will retrieve the activity feed for the site in question, otherwise, it will retrieve the user’s personal feed.

If you want to see the source code, simply download the AIR file then rename it to “AlfDesktop.zip” you can then unzip it and see all the goodness inside.

Please let me know if you have any comments or questions.

Response to Alfresco vs. Nuxeo (Español)

The following is a response I posted to what I consider to be a rather biased post on the Yerbabuena Blog a blog belonging to a Nuxeo partner in spain.

Apologies to non Spanish-speakers, but I can quickly summarize that the points I make here is that the blog author failed to provide a fair and balanced overview of Alfresco instead opting to provide a mostly one-sided argument in favor of Nuxeo with whom they are partners with. My response therefore focuses on providing more detail on Alfresco’s capabilities based on the categories of usability, functionality, technology, pricing and community.

Without further ado…

Comienzo con mención que soy empleado de Alfresco desde Enero del 2006 y estoy basado en los E.E.U.U.

Usabilidad:

Este articulo falla en mencionar que Alfresco ofrece una interfaz colaborativa por nombre de “Alfresco Share” que ha sido diseñada para ser mas facil de utilizar para uso casual.

Adicionalmente, Alfresco incluye un diseñador de interfaces “Web Studio” al igual que incluye una plataforma para el desarrollo de aplicaciones costumizadas llamada “Surf”.

Finalmente, nuestro servidor de archivos virtualizado (“virtual file server”) ofrece simple acceso al repositorio de contenido através de CIFS, FTP, WebDAV y NFS. Eso quiere decir que cualquier persona quien sabe como utilizar el explorador de Windows puede accesar sus documentos y carpetas como si fueran archivos en un servidor remoto.

Funcionalidad

Drag and Drop:

Alfresco ha incluido “drag and drop” através del servidor virtual desde el principio. En adición, nuestra nueva aplicación colaborativa y el “Web Studio” también incluyen “drag and drop”.

Live Edit:

La acusación de “…que no pueden utilizar FireFox (son obligados a utilizar el navegador de Microsoft …” es erronea. El foro que vos. menciona trata con la idea de abrir el documento dentro del browser con el control de MS Word ActiveX. Eso solo fuciona dentro de Internet Explorer por razones obvias. Alfresco siempre ha ofecido la habilidad de editar un documento de forma similar al video de demostración que ud. han enlazados. Pero reconozco que Nuxeo utiliza un “plug-in” para Firefox y Internet Explorer que facilita esa funcionalidad. Nuestra filosofia es una donde preferimos no requerir “plug-ins” pero en este case alomejor vale la pena desarollar una. En adición, Alfresco ofrece acceso directo desde MS Office atravez de un plugin y apoyamos el protocolo SharePoint.

Integración al Escritorio:

Alfresco ofrece muy buena integración al escritorio através de CIFS, el modulo de MS Office y SharePoint Protocol algo que Nuxeo no ofrece.

Tecnologia

Este tema tiende de ser un tema “religioso” por causa de que todo técnico tiene su propia opinión de que  representa una buena arquitectura. Asi que simplemente le ofrezco al lector que examine bien el diseño de los diferentes productos y se decidan.

Recomiendo que examinen bien el uso de JavaScript para facilitar el proceso de desarrollo ya que es mas ágil comparado con programación en Java. Claro, Alfresco esta escrito en Java así que siempre existe la opción de programar y extender el producto en Java.

Precio

Alfresco no cobra por usuario, hemos elegido proveer contratos de soporte y acceso a la versión “Enterprise” utilizando un modelo dode cobramos anualmente por CPU. Este modelo es similar a Red Hat, JBoss y MySQL entre otros. Un CPU puede soportar miles de usuarios como ha demostrado Adobe, quien utiliza Alfresco para el servicio http://share.acrobat.com

Basado en la escabilidad y flexibilidad de Alfresco, no estoy de acuerdo con la conclusión de que uno pagara mas por Alfresco. El concepto de cobrar por “aplicación” acaba siendo algo muy difícil de definir. No dudo que Nuxeo desea maximizar sus ingresos así que lo mas seguro ellos van a aplicar una definición muy estricta de lo que quiere decir “aplicación”. Ese problema no existe con Alfresco, pero si un cliente desea, nosotros estamos siempre dispuestos a conversar y negociar un precio que es justo y apropiado al uso que la empresa tiene en mente.

Finalmente noto que en España cumplimos con clientes como la “Junta de Andalucía”, varias instituciones financieras y otras entidades privadas, gubernamentales y educacionales cuyos nombres no puedo mencionar por razones legales/contractuales. Todos han elegido a pagar por Alfresco por la calidad del software, el servicio y porque el precio es muy razonable.

Comunidad

En cualquier comunidad, incluyendo la de Nuxeo, siempre hay participantes que no estan satisfechos con es “status quo”.  Uno mide el éxito de la comunidad basado en multiples factores incluyendo el volumen de trafico, cantidad de contribuciones, participacion en nuestros eventos regionales y el total de instalaciones.

Nosotros calculamos que existen aproximadamente 25,000 instalaciones permanentes de Alfresco Community/Labs y mas de 600 clientes quienes pagan por el soporte. En adición, nuestros foros cuentan con mas de 8,600 miembros y 58,000 mensajes en varios idiomas mientras el foro de Nuxeo solo tiene alrededor de 6,000 mensajes.

Añado que existen dos libros sobre Alfresco y tenemos mas de 100 socios/partners mundialmente incluyendo alianzas con Red Hat y Adobe entre otros.

No dudo que la comunidad de Alfresco es mucho mas grande y activa comparada con la de Nuxeo.

Licensia

Como mencione anteriormente, Alfresco tiene dos versiones del producto “Labs” y “Enterprise”, este es el mismo modelo que utiliza Red Hat y MySQL. La versión de “Enterprise” es la versión certificada y aprobada para uso en empresas quines desean garantizar la funcionalidad del software y mas importante, desean el apoyo que ofrece Alfresco y su red de partners mundialmente.

Como regla, las diferencias entre “Labs” y “Enterprise” son pocas. La forma mas facil de explicarlo es diciendo que la versión “Enterprise” incluye la mayoría de las capacidades de Labs *menos* esas que se consideran experimentales y/o inestables basado en nuestro proceso de “quality assurance”.

Partners

Como han observados, nuestra red de Partners es grande y cubre una gran cantidad del mundo. Nuestros partners toman parte en cursos educativos y nosotros monitoreamos a nuestros partners para asegurar que sus implantaciones se hacen en forma correcta y son de buena calidad. Nosotros hemos cancelado la certificación de ciertos Partners en el pasado y seguiremos con esa practica para garantizar la mejor experiencia para nuestros clientes.

Conclusión

Uds. mencionan que son partners de Nuxeo y no dudo que su experiencia con Nuxeo ha sido muy exitosa para su clientela. Me siento obligado decir que yo esperaría que toda consultaría embarque en una mejor, mas profunda y balanceada evaluación de las diferentes opciones y soluciones disponibles a vuestra clientela para facilitarles el proceso de analizar y determinar cual de ellas mejor aplica al problema presentado por el cliente. Espero que hagan mejor trabajo en el futuro.

Gracias por su atención.

Alfresco and Portals: A Call for Portlets

I’ve been meaning to discuss a topic that’s always been near and dear to my heart for quite some time, but as is wont to happen, things sometimes get in the way. What I’m referring to is the topic of “Alfresco and Portals”.

There is a natural “synergy” between a CMS such as Alfresco and a JSR-168 portal such as those offered by Liferay and JBoss. Alfresco’s repository makes it easy for content contributors to author and store content while a portal offers a powerful framework for displaying said content for consumption by end-users.

Should I use a portal?

To begin with, I must state that it is my opinion that a majority of projects where a portal is being considered don’t actually require a full portal solution. Portals offer many powerful features including drag-and-drop page assembly, a fine-grained security model and user administration but they also introduce a great deal of overhead.

Many portal frameworks are rather hefty web applications weighing in at more than 40MB (compressed) and the very features that makes them appealing often have a detrimental effect on performance and memory footprints. Additionally that there are use cases where the security and personalization requirements of a given project simply don’t have a 1-to-1 mapping with the capabilities of a portal.

My first bit of advice is therefore thus:

Before considering a portal, make sure you understand the requirements and consider building your website/application with more basic frameworks be they Struts, Wicket, Rails, PHP, .NET, Alfresco Surf or any of the countless frameworks available. I think you’ll find that it’s sometimes easier to build from scratch than to try to re-mold a die that’s already been cast.

Now, let’s get on with the discussion…

A Short History of Alfresco and Portals

Since the early days, Alfresco has been deployable in its entirety as a JSR-168 compliant portlet to portals. The problem with this approach is that Alfresco makes for a very large portlet. As of version 3.0, the Alfresco WAR file takes up about 30MB and running it as a portlet meant that the entire UI would exist within the (very tight) screen “real estate” that’s usually afforded to a portlet. This UI limitation was somewhat addressed when we developed a wrapper for Web Scripts thereby permitting certain Alfresco Web Scripts, such as the Document Library, to be exposed as “standalone” portlets. In my eyes, this technique did not address one core issue:

The CMS Repository should be a separately installed component that’s independent of the presentation layer be that a portal or some other website or application. The memory and processor requirements alone justify this separation but more importantly, the repository should be viewed and treated as a “content-oriented database”.

A question naturally arises upon reading such a comment…

How do I integrate Alfresco and a portal?

Assuming that there’s agreement that, like a database, the content repository should be managed as a separate server/service, then the only real way to integrate Alfresco and the portal is by developing pure JSR-168 portlets that, in some cases, replicate functionality that already exists within Alfresco. This may sound like we’re re-inventing the wheel, but it is a necessary evil.

In order to meet the UI and system resource restrictions imposed by the portlet model, one must identify the most desirable features and develop one or more portlets that expose this functionality in a way that more “naturally” fits the portal/portlet model. Fortunately, Alfresco 3.0 introduces a collection of services and new development paradigms that simplify this process.

A few weeks ago, I wrote a wiki article outlining a few ways by which portlets can be developed. I invite you to take a look, but in short, what a developer needs to do is leverage Alfresco’s Remote API.

Alfresco’s Remote API

Alfresco’s new CMIS and Repository REST APIs are the cornerstone for developing a whole new breed of content-aware applications and portlets. These offer the ability to remotely invoke all types of content actions such as queries, content creation, tagging and much more. These services are easily called through simple HTTP calls which means that pure JSR-168/283 portlets can be easily developed to expose whatever functionality is required.

Alfresco Share is a prime example of an application that uses these very same remote services. Steve Reiner’s “FlexSpaces” is another example. In short, there’s absolutely no reason why portlets couldn’t be developed to do the same. I believe the main reason why it hasn’t happened yet is because many developers don’t know where to begin, which leads me to make an open call for portlets.

An Open Call for Portlets

At this time, Alfresco does not have the time and resources to develop portlets. This means that the community of developers, independent contractors and system integrators have a unique opportunity to develop a new suite of portlets or other components that work with Alfresco.

Portlet development has a rather low barrier to entry in that a simple portlet might only need to expose very discreet functionality thereby making them relatively quick to develop. Also, should the contributor wish to make the source code available, anyone in the Alfresco community could customize and extend these portlets.

I should note that the Alfresco Network will soon offer a directory where these components can be made freely available or sold as the developer desires.

There’s a green field here for developers to explore and I strongly urge you to take advantage of this opportunity.

Please let me know if you build something so we can feature it on Tech Talk Live.

Addendum - Added on Jan. 21, 2009

It’s occurred to me that I forgot to mention a few things:

First, I still hold to my opinions of JSR-168/283.

Second, for those who are not Java developers or are not interested in developing pure JSR-168 portlets, I should note that the Alfresco Web Script container is deployable as a fairly lightweight, standalone portlet. This means that one can develop portlets in JavaScript and Freemarker instead of compiled Java code.

Goodbye JSR-168 and WSRP portlets… Hello OpenSocial gadgets!

I’ve been in the portal and content management industry for about 10 years. In that time, I’ve witnessed standards around portal development evolve from the myriad of proprietary specifications each vendor endorsed. The two main standards are JSR-168/286 and WSRP, the Web Services for Remote Portlets specification. As one can guess, the JSR-168/286 specs are specific to the Java world while WSRP held the promise of a cross-platform/cross-language standard. While Java portlets have enjoyed relative success, the same can’t be said for WSRP.

During the last two years we have seen the massive proliferation of web widgets that leveraged simple IFRAMES and/or JavaScript to permit a website or blog to incorporate content from third-party websites. We also saw Google promote Google Gadgets as the means of delivering similar functionality to the iGoogle personalized start page. Since then, Google and many other firms have come together to create a new standard for content syndication and social enablement of web applications taking the form of the OpenSocial specification.


OpenSocial defines a collection of social services and, more pertinent to this discussion, a “gadget service”. This gadget service is based on the Google Gadgets specification and I feel it represents the way that most, if not all “portlets” should be developed going forward. The specification is simple, elegant and incorporates most of the capabilities found in WSRP and JSR-168/286. More importantly, unlike either portlet spec (particularly WSRP), the Open Social Gadgets Specification enjoys very wide adoption in the form of hundreds of thousands of gadgets already being consumed by millions of users.

The popularity of the specification along with its proven model means that it stands a very good chance of not fading into irrelevance as I feel WSRP has done. The benefits of the spec are as follows:

  • Truly cross-platform/language without relying on overly elaborate XML.
  • Wide adoption means that more developers will be savvy with it and the spec will be more robust.
  • Security and data privacy are an integral part of the spec.
  • JavaScript is sandboxed via Caja
  • There is an accompanying Templates Specification

Admittedly, both the Java Portlet Spec and WSRP are targetted at enterprise deployments and there may very well be scenarios that the OpenSocial Gadget Spec can’t adequately address behind a corporate firewall. That said, I think it’s well worth exploring especially when we consider that many of the social computing concepts being pioneered in the internet are working their way back behind the firewall.

I would really like to see all collaboration and portal vendors adopt all aspects of OpenSocial but the Gadget Specification looks particularly straightforward to implement and will do much to facilitate integration among different intranet applications.