I just got back yesterday from my trip out to California for the Alfresco + Liferay Meetup which took place at the Liferay HQ on July the 18th. I think the Meetup was a huge success, and our surveys indicate the same! We had an impressive turnout – clearly there is tremendous interest in these two open source product / communities!
First I would like to give thanks to Alice Cheng who organized all of the logistics and made sure everything went well. Also a special thanks to Luis Sala who really brought everyone together and was the shepherd for the organizers and presenters. Last but not least a huge thank you to Liferay, Alfresco, and our sponsors (Rivet Logic, Ice Faces, and Cignex) who provided talent and funding – we could not have done this without them.
Before I kick in to my first (but not the last) Meetup report let me tell you about some of the more personal aspects of the trip. Three bits of information
The first bit of info has to do with my sleeping habits. Generally speaking – I have a habit of not sleeping :) Well, that is not entirely true – but I do not sleep much. With the time change and getting things prepped for our gig – I actually didn’t sleep. I left Boston for CA on the 17th at 4:30am and didn’t sleep until I leaned against the window of plane on the way home. Getting things set up on the 17th and the Meetup itself were both very exciting and I didn’t feel tired until very late in the day on the 18th – after about 3 tons of chicken fingers and too many soda’s which eventually have the opposite effect that one or two sodas have. If I seemed a bit crazy or out of my mind – I probably was :)
Second: My presentation afforded me with what was for me, to date, the most challenging issue to overcome when speaking than any other I have yet faced. I’ve had to power through people talking, cell phones ringing (again and again), deal with hecklers and all sorts of other stuff before but this one takes the cake. Thanks to Alice I left early to set up for my presentation. I had a lot of setup to do. I planned to give a talk and a few demos. I connected to our staging server to show our current setup, loaded my tomcat Alfresco Liferay configuration, opened the 22 URL’s I needed, I opened my presentation, and got the seats and projector ready. Just as I was beginning to kick things off, a gentleman plugged in his computer to the same socket I had everything plugged in to and I suppose we pulled a few too many Amps – I am not sure but we lost power for several minutes. (Not his fault of course) No breaker was thrown as we did get power back without changing a fuse or resetting a breaker. Anyway, with the exception of putting the seats in order I was back to square one in terms of preparation and the room was filling up. That was pretty nerve wracking. I kept thinking – I am going to have to whiteboard this off the top of my head – eek!! Everyone stayed and we got through the talk and had some good discussion afterward. Thanks to everyone for your patience!
Third (and best of all) I woke up in Boston with an imprint of the plane’s window molding pressed nicely in to my face, deplaned (I like that word for some reason) and headed out to get a cab. Jumped in to the cab. “Christian Science Monitor” I said to the cabby as we headed off. “Mass ave right?” the Cabby responded to me. “Yep, that’s it” I replied as I drifted off looking for a new window to sleep against. The cabby was talking to someone on his cell phone. Now if you have driven in Boston, you know we will stand on the gas pedal and slam on the breaks to gain a few feet. (We will even drive the wrong way in wrong lane -- which is apparently legal in bean town as long as you are in reverse) People drive fast here, people stop fast here. Well I remember the feeling of acceleration as we pulled on to the highway and comfortable hum of speeding towards the big dig tunnels. I even remember thinking – wow we are coming up on that cab pretty fast. We were but the cabby didn’t seem to notice until we were almost sitting in trunk of the cab we were barreling down on. Once his depth perception kicked in, my driver slammed on the breaks. We slowed down very fast but there was no way we were not going to hit the cab in front of us – at the last moment my driver bailed to the lane on our right and we managed to miss the immediate threat. The only problem was that nasty old issue of two objects trying to occupy the same space at the same time (they can't!!) and so we smashed in to another cab on the side, bounced off it and then swerved around until all parties came to a rest. No one was seriously hurt that I could tell at the time and our cars could all still be driven. There was some heated exchange – my cabby proclaiming it was not his fault – clearly – it was and is his fault, an exchange of information and finally the quiet ride back to the Monitor. I thought seeing Brian Chan, Ed, the many other Brains and Mikes of Liferay, meeting David Caruana, Peter Monks of Alfresco, seeing my Friends and Colleagues from Rivet Logic, Kaplan, Alfresco, Liferay and meeting and making many others was exciting and that loosing power during my presentation was terrifying. This cab ride was both exciting and terrifying!!
Anyway – Back to more important topics: THE MEETUP!
Demo Highlights:
Liferay demonstrated their new Enterprise Packaging / Repository capability.
This functionality allows IT Shops, ISPS, SI’s and the community to create Liferay components (Portlets, Themes, and Layouts), upload them to a central repository and make them available for download. The repository helps the portal administrator manage versions and encapsulates messy install details inside automated install machinery.
Brian Chan, Chief Architect of Liferay said that Liferay is looking to position itself as the “Operating System of the Enterprise.” This kind of functionality is a step in that direction.
This functionality arrives in version 4.3 along with other improvements and features.
Alfresco demonstrated their new Web Scripts functionality.
Web Scripts allow you to expose Alfresco Repository and Alfresco Web Client like functionality outside of your repository. Like what? Documents, Versions, Folders, Workflow, Saved Searches, Ad-hoc Searches, Discussions, and Taxonomy.
David Caruana (Alfresco Chief Architect) and Luis Sala (Alfresco Sr. Director of Solutions Engineering) demonstrated some beautiful AJAX driven UI exposed inside an Liferay Portlet for browsing the documents inside your repository. They also showed a custom AJAX driven interface for managing your tasks and uploading new content.
What is involved? A custom URL, a little XML descriptor, Javascript, and a Freemarker template. You don’t have to be a hardcore java programmer to build web scripts!
Web scripts are well suited for creating custom interaction with your repository, outside of the web client but they can be used for a lot more. Download Alfresco version 2.1 and check it out.
Hot Topics:
Of course there was a lot of talk about the individual products. Both Liferay and Alfresco have a lot to offer! Each product packed the house when demonstrating their latest and most salient features. The other topic on everyone’s mind was Alfresco Liferay integration. There where two packed sessions dedicated to this topic – I think we could have held a captive audience for even longer!
Mike Vertal of Rivet Logic hosted the initial conversation. He asked the first and most important question. Alfresco + Liferay Integration: what is it? Well it depends on who you ask and what they need. Mike in his presentation and I during mine both suggest that if you are going to work with these two products and try to bring them together, you must ask yourself what are the components and features of each product that are core and which are context as they relate to the problem you are tying to solve. We examined integration of the two products in general as a group.
Mike gave us four major categories of implementation to begin with. I would file them under two major categories:
• Light Integration
• Deep Integration
Light Integration
• Alfresco Web client as a portlet. Alfresco can currently be deployed in to Liferay and its Web Client (in its entirety) can be accessed as a portlet.
• Portlets that expose Alfresco resources including documents, workflow, searches, tasks, discussions, metadata, categories etc. Some portlets exist for exposing this today. Alfresco Web Scripts promises to make exposing these resources and creating this type of light integration much easer.
Deep Integration
• Alfresco as the store for Liferay resources:
o Communities
o Page Layouts
o Theme Definition and Resources
o Layout Definitions
o Profile
o Preferences
Alfresco as a store is a bit of an over-simplification -- where things are stored is not really the issue. There are several variations on this deep integration. Mike gave two, which I have collapsed to one.
Deep integration is the interesting and difficult problem to solve. We had some really interesting discussions on the subject and I want to come back and post another blog with a single focus on this subject. I think there are many factors in bringing these two products together, not all of which are technical in nature. Since there are plenty of technical hurdles we’ll stick to them in the next discussion.
All in All it was a Fantastic, Exciting, Terrifying, Mind Expanding, Super experience! I am really really glad I went. It was worth every second (I know; I was awake for each one) and every penny and I hope you will consider going to our next meetup -- I won't be offended if you don't want to share a cab :)