Logical Architecture
Liferay Architecture
Enterprise Layer
The enterprise layer forms the top layer of services and components that are grouped into taxonomies which support and realize enterprise functions such as Portal Management, Content Management, Workflow Management, Document Management, User Management and Security Management. The Enterprise Layer is also comprised of inter related service components and features such as Personalization, Collaboration, Social Networking, Delivery Channels, Virtualization and Tunnelling Servlets. These form the basic backbone or core enterprise features of Liferay.
Service Layer
Liferay follows a Model Driven Architecture approach. In the traditional sense it requires a Platform Independent Model (PIM) from which we derive a Platform Specific Model (PSM) and subsequently generate implementation logic. In Liferay however, we begin with a Domain Specific Model (DSM) since the root model is only specific to Liferay domain and it defines all the nouns of the system with their interactions and is translated to a Platform Specific Model (PSM) which constitutes the EJB’s, Spring Framework, Hibernate Layer, Web Services and then generates the implementation classes by extending the appropriate services. This is made possible due to the implementation of Service Builder which is the most integral tool provided by Liferay and enforces the same standards throughout. The services builder is the Model Driven Transformation (MDT) Tool in this context.
Extensions Framework
Liferay provides extensions framework by use of an Extension Environment and Plugins Framework. The extension environment has the same directory structure of the Liferay and was implemented by overriding the existing source files by placing them in the same path. The design also incorporated multiple –ext.properties file to change default settings of the portal by overriding desired properties in the –ext.properties file. The best approach is the hot deployable plugin framework which provided a number of wizards to construct portlets, themes, layouts and hooks or interceptors, and now provides an ext-plugin which provides a similar offset by only replicating those files that require modification without the entire portal content. The Plugins approach provides both an IDE and command line interface. The IDE takes a wizard approach to create portlets, themes, layouts and hooks. The hooks are basically interceptors that can be categorized into model hooks, JSP hooks, properties hook and event hooks. Model hooks deal with interception of entity actions in services, JSP hooks are provided to dynamically modify Liferay JSP pages, the event hook is used to intercept portal events, and the property hook is used to update the Liferay properties. The ext-hook plugin is a new feature than provides changes to the Liferay structure and can be hot deployed at runtime.
Logical Architecture of Liferay
Liferay supports Windows, Mac and Linux OS. JRE is installed on the supported OS to host the JVM. An application server is required to contain the Liferay instance. The officially supported servers include, but not limited to Apache Tomcat, Glassfish, Geronimo, Jetty, JOnAS, JBoss, and Resin. Most of these servers are available as bundled versions for download and are deployed in the JVM container. The server provides connectivity and interoperability using an Enterprise Service Bus (ESB), and there are multiple services offered by the servers which are leveraged by Liferay. Some of the services, which are primarily used by Liferay on the Application server, include the following: JNDI, JDBC, JTS, JMS, JAAS, JDO, JWS, JSP/Servlets, and JavaMail. Applications can be deployed on the server like SOLR Search engine, or DROOLS Rule Engine, or Tunneling Servlets which can further provide extension or integration of external applications with Liferay. Liferay uses a number of technologies at its core to offer the various services. These technologies include EJB, Hibernate, Spring and JBPM. Liferay implements Lucene Search Engine by default and can be configured to extend the SOLR Search Engine which is built on Lucene to extend capabilities to provide clustering, faceted search, filtering with additional enhancements and scalability. A Portlet Bridge is provided to deploy JSR 168/286 portlets and supports RIA applications. Liferay contains Language adaptors such as for Python, Ruby and PHP which allows easy integration.
The Administration Kernel provides the base framework for integration and support of all modules, with tooling support, wizards, service providers, listeners and runtime configuration parameters to tweak the application server in runtime mode. The services builder provides the basic framework to construct and deploy the services using a Model Driven Development (MDD) approach. The portlet plug-in leverages on the portlet bridge to provide dynamically generated portlets to the end users and enhanced RIA integration. The hooks plug-in provide convenient access to intercept and alter the services and functionality of the Liferay instance in a standardized approach.By leveraging on all the services and features extended by Liferay, a robust Enterprise Services layer resides on top of this providing extended solutions ranging from Portal Management, Web Content Management, Enterprise Content Management, Document Management, User Management, Workflow Management, Security Management. These in turn provide features such as Personalization, Collaboration, Virtualization, Social Networking and integrates Dynamic Delivery Channels, and Tunneling Services.
Reference Architecture
Conceptual Network Model
The reference architecture described here has three network zones. The external zone (EXT Zone) which is outside the boundary of the network, the Demilitarized Zone (DMZ) which behind the firewall and provides limited direct access to named systems in EXT zones, and provides user access with load balancing, and Internal Zone (INZ) which is blocked from the EXT zone and only DMZ systems has firewalled access to systems in the INZ Zone. Both zones may be in different VLANS and needs NATed IP for communication, additional to the firewall restrictions. Additionally a secure zone within the internal zone can be provided for an extra layer of security for their database clusters.
Though different hardware may be used the primary blueprint or the conceptual network model may follow the same standards:
- Router & Firewall for incoming ISP link which provides the first layer of security.
- A Load Balancer and dedicated content proxy for routing traffic to servers in the internal zone.
- The primary server and secondary failover server for high availability.
- Dedicated Database Server for improved performance.
- An administration console for management for servers.
- Digital Asset Management with Social Office with hot swappable drives. (Optional)
- Backup server with staging environment. (Optional)
For datacenters and cloud computing, it is better to provide HPC Clusters.
Physical Network Model - High Availability Systems
In the Physical Network Model we have used a Dell rack mounted servers for illustration:
- Cisco Integrated Services Router to provide access to the ISP gateway and define the zones with firewalls.
- Barracuda Load Balancer with Dedicated Content Proxy for managing the communications. For high availability two Load Balancers may be used, each one supporting up to 256 servers.
- A KVM console switch for management of all servers in the rack.
- Dell Power edge servers 800 series are deployed as primary, secondary and backup servers.
- Dell Power edge server 700 series with hot-swappable drives is used for DAM.
- Dell Power edge server 900 series is used for Database Management.
- Dell Redundant Failsafe UPS for ensuring the primary power source for the unit.