Book Image

Liferay Portal Systems Development

Book Image

Liferay Portal Systems Development

Overview of this book

Liferay portal is one of the most mature portal frameworks in the market, offering many key business benefits that involve personalization, customization, content management systems, web content management, collaboration, social networking and workflow. If you are a Java developer who wants to build custom web sites and WAP sites using Liferay portal, this book is all you need. Liferay Portal Systems Development shows Java developers how to use Liferay kernel 6.1 and above as a framework to develop custom web and WAP systems which will help you to maximize your productivity gains. Get ready for a rich, friendly, intuitive, and collaborative end-user experience! The clear, practical examples in the sample application that runs throughout this book will enable professional Java developers to build custom web sites, portals, and mobile applications using Liferay portal as a framework. You will learn how to make all of your organization's data and web content easily accessible by customizing Liferay into a single point of access. The book will also show you how to improve your inter-company communication by enhancing your web and WAP sites to easily share content with colleagues.
Table of Contents (17 chapters)
Liferay Portal Systems Development
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface

Framework and architecture


Liferay Portal architecture supports high availability for mission-critical applications using clustering, as well as fully-distributed cache and replication support across multiple servers.

The following diagram depicts various architectural layers and portlet functionality:

Service Oriented Architecture

Liferay Portal uses Service Oriented Architecture (SOA) design principles throughout, and provides the tools and framework to extend the SOA to other enterprise applications. Under the Liferay enterprise architecture, not only can the users access the portal from traditional and/or wireless devices, but the developers can also access it from the exposed APIs using REST, SOAP, RMI, XML-RPC, XML, JSON, Hessian, Burlap, and custom-tunnel classes.

In addition, Liferay Portal is designed to deploy portlets that adhere to the portlet API, which is compliant with both JSR-168 and JSR-286. A set of useful portlets built on top of Struts 1.2.9 are bundled with the portal, such as document and media library, calendar, message boards, blogs, wikis, and so on. They can be used as examples for adding custom portlets.

Note

In a nutshell, the key features of Liferay include using SOA design principles throughout, reliable security, integrating with SSO and LDAP, multitier and limitless clustering, high availability, caching pages, and dynamic virtual hosting.

Enterprise Service Bus

The Enterprise Service Bus (ESB)  is a central connection manager that allows applications and services to be added quickly to an enterprise infrastructure. When an application needs to be replaced, it can be easily disconnected from the bus at a single point. Liferay Portal can use either Mule or ServiceMix as the ESB.

Through the ESB, the portal can integrate with SharePoint, BPM (such as jBPM workflow engine, Intalio | BPMS engine), a rule engine (Drools), BI Xforms reporting, JCR repository, and so on. It adds another layer like JSR-170, where the repository can be abstracted. Furthermore, it supports events' system with asynchronous messaging and Lightweight Message Bus.

Liferay Portal uses Spring framework for its business and data services layers. It also uses Spring framework for its transaction management. Based on service interfaces (Spring framework), portal-implementation (portal-impl) is implemented and exposed only for internal use — for example, they are used for the extension environment or Ext plugins. Both portal-kernel and portal-service (these two packages are merged into one known as portal-service) are provided for both external and internal use — for example, they are used for the Plugins SDK environment. Custom portlets, both JSR-168 and JSR-286, and web services can be built based on portal-kernel and portal-service.

In addition, the Web 2.0 Mail portlet and Chat portlet are supported. More interestingly, scheduled staging and remote staging and publishing serve as a foundation via tunnel web for web content management and publishing.

Liferay Portal supports web services to make it easy for different applications in an enterprise to communicate with each other. Java, .NET, and proprietary applications can work together easily because its web services use XML standards. It also supports REST-style JSON web services for lightweight, maintainable code, and it also supports AJAX-based user interfaces.

Liferay Portal uses industry-standard, government-grade encryption technologies, including advanced algorithms such as DES, MD5, and RSA. Liferay was benchmarked as one of the most secure portal platforms using LogicLibrary's Logiscan suite. Liferay offers customizable single sign-on with Yale CAS, JAAS, LDAP, NTLM, Netegrity, Microsoft Exchange, Facebook, and more. Open ID, OpenAuth, Yale CAS, Facebook, Siteminder, and OpenSSO (renamed as OpenAM) integration are offered by the portal out-of-the-box.

In short, Liferay Portal uses the ESB in order to provide an abstraction layer on top of an implementation of an enterprise messaging system. It allows integration architects to exploit the value of messaging without having to write the code. As you can see, understanding the framework and architecture will be helpful if you want to customize the portal correctly.

Standards

Liferay Portal runs on existing application servers, databases, and operating systems to eliminate new expenses on infrastructure. Moreover, Liferay Portal is built based around common standards. This is a more technical benefit, however, a very useful one if you ever want to use Liferay in a more specialized way.

Liferay is developed based on standard technologies that are popular with developers and other IT experts. Liferay is standards compliant, namely, open standards for content, portlets, web services, and frontend technologies to reduce development cost. The main features are listed as follows:

  • Built using Java: Java is a very popular programming language that can run on just about any computer. There are millions of Java programmers in the world, so it won't be too hard to find developers who can customize Liferay.

  • Based on tried and tested components: With any tool, there's a danger of bugs. Liferay uses lots of well known, widely-tested components to minimize the likelihood of bugs creeping in. If you are interested, these are some of the well known components and technologies Liferay uses—Apache ServiceMix, Mule, ehcache, Hibernate, ICEfaces, Java J2EE/JEE, jBPM, Intalio | BPMS, JGroups, Alloy UI, Lucene, and Solr, Seam, Spring and AOP, Struts and Tiles, Tapestry, Vaadin, Velocity, and FreeMarker. Especially, Liferay runs PHP, Ruby, Python, Grails and other lightweight scripting technologies within a robust Java framework.

  • Uses standard methods to communicate with other software: There are various standards established for sharing data between pieces of software. Liferay uses these so that you can easily get information from Liferay into other systems. The standards implemented by Liferay include AJAX, iCalendar, Microformat, JSR-168, JSR-127, JSR-170, JSR-286 (Portlet 2.0), and JSR-314 (JSF 2.0), OpenSearch, Open platform with support for web services (including JSON, Hessian, Burlap, REST, RMI, and WSRP), WebDAV, and CalDAV.

  • Makes publication and collaboration tools WCAG 2.0 (Web Content Accessibility Guidelines) compliant: This is the new W3C recommendation to make web content accessible to a wide range of people with disabilities, including blindness and low vision, deafness and hearing loss, learning disabilities, cognitive limitations, limited movement, speech disabilities, photosensitivity, and combinations of these. For example, the portal is integrated with CKEditor, which supports standards W3C (WAI-AA and WCAG), 508 (Section 508).

  • Supports HTML 5, CSS 3, and YUI 3 (Yahoo! User Interface Library).

  • Supports Apache Ant 1.8 and Maven 2: Liferay Portal could be run through Apache Ant by default, where you can build services, clean, compile, build JavaScript CMD, build language native to ASCII, deploy, fast deploy, and support most application servers such as Tomcat, JBoss, Websphere, Weblogic, and so on. Moreover, Liferay supports Maven 2 SDK, providing Community Edition (CE) releases through public Maven repositories as well as allowing Enterprise Edition (EE) customers to install Maven artifacts in their local Maven repository.

Many of these standards are things that you will never need to know much about, so don't worry if you've never heard of them. Liferay is better for using them, but mostly, you won't even know they are there.