Liferay's Architecture: The beginning of a blog series

Hey guys,

As you have already heard we have done quite a few symposiums during October, starting with the one in San Francisco, followed by Germany and finishing with Spain. And by the way, if you live in Italy and haven't had a chance to go to any of them, don't miss out the opportunity to attend the Liferay Italy Symposium this Friday. You will have an opportunity to meet many people and attend some of the most acclaimed talks done at the other symposiums.

Speaking of which, I have received lots of positive feedback about my presentation about Liferay's Architecture (Thanks so much!) so that has encouraged me to try to reach the wider audience of all of you reading Liferay's blog. This will also give me an opportunity to get to the last set of slides that I didn't have time to cover during the symposiums.

Because there is a lot of content, I'm not going to do one blog entry, but rather a series of them. Most probably one per slide in my presentation, so I can explain each slide properly. In this blog entry I'm just going to show the first slide which actually shows a diagram of Liferay's architecture which I use also as an index of my whole presentation. Here it is:

I will cover each of the elements that can be seen in this diagram in more detail in future blog posts, but here are a few important things to note:

  • For a product as large as Liferay there are many ways to represent its architecture. The perspective that I've chosen for this diagram is one that highlights its layered architecture since I think it is one of the greatest aspect of Liferay.
  • It also highlights how flexible Liferay is in terms of accessing external systems as well as being accessed by all sorts of external "clients" from regular desktops to third party apps going through mobile apps and browsers.
  • How Liferay is buzzword compliant with terms such as SOA, WOA, ... even since before the terms existed ;)
  • How Liferay includes many transversal frameworks that are used inside Liferay but also made available for applications built on top of it.

That's it for now, since I want to try and keep each entry short. I'd love to hear your feedback regarding what you are most interested on regarding Liferay's architecture. Next time I'll dig in more detail into the services layer.

Looks like a great series is comming. Looking forward to futher issues
getting ready the workspace.
congrats in advance
Great idea Jorge, and I cannot wait for the next few episodes. BTW did you ever record an English version of your symposium presentation? As you are probably aware when Ray stepped in to cover you at the San Francisco he only covered about half the slides as there is so much to know and understand. This series will also go along way, especially if you can link to other wikis and blogs where things may be covered in more detail.
Thank you for sharing the knowledge (si es que cuando las cosas se hacen bien... emoticon) )
It is veryinteresting.
Are the presantation slides downlodable from somewhere?
@Dave, I think in the Europe Symposium they might have recorded it. If they have they should be making it available soon at
@Mirto, all the slides will be available at each of the symposium agendas in a few days. I did minor modifications from one event to the next, but they are almost the same for all three.

@both, I will tweet when they are finally available (@jorgeferrer)
Great!, where does drools rule engine fit into the architecture
Hi All ,

i have so many doubts, but in starting , one ,how to create guest page in 6.1
that is for only guest ,
Hi Satya,

For such general questions, the forums are the best place to ask. For that one in particular I would suggest this category:
Great! Rule engine integration would be nice-to-have.
EE version has drools integration.
Great. Looking forward to the next blog in this series

I am new to LifeRay. I was reading the documents and was working on it. From my colleague I got to know that existing PHP portlet works in Liferay without installing the PHP engine or Apache. I would like to know how LifeRay accomplishes this. I would be great if I could get some documentation on this topic as I find it very interesting!

Thanks and Regards,

Thanks and Regards,
Hi Jyothi,

Since that question is not related to the blog entry, you should use instead to ask.

I'll give you a link with more info this time:
Thanks Jorge!
[...] the engineering team passed the 150 people mark, distributed world wide. Communication in a team that's distributed through the world, tools Some nasty german guy recently took Jorge's #3... [...] Read More
[...] the engineering team passed the 150 people mark, distributed world wide. Communication in a team that's distributed through the world, tools Some nasty german guy recently took Jorge's #3... [...] Read More