Friday, November 7, 2014

Liferay Developer Certification Topics and Reference Links


Liferay Certification Program

Liferay is very popular open source portal. Liferay also offers Certification in liferay.
Liferay offers different Certification programs such as Portal Administration Certification ,Portal Developer Certification and Portal System Administration Certification.


Following article is for Portal Developer Certification and its topics and reference links.

Note:

The Topics and its descriptions are inherited from Liferay website.


Liferay 6.2 Certification



Liferay 6.1 Certification


Certification FAQs


Register for Certification


Liferay Development Best Practices

Liferay Portal is a powerful platform for designing and developing robust web applications. While Liferay provides many exciting enterprise caliber features out of the box, there will be times when it's necessary to develop applications to extend or modify Liferay. By following Liferay's best practices, developers can ensure this development will enhance the current version of Liferay and will allow for a smooth upgrade when upgrading the core portal. Liferay developers should be familiar with these best practices.







Development Environment Setup:





Understanding Liferay Plugins





Liferay Architecture and APIs

Understanding Liferay Architecture:





Liferay APIs


Service Builder:










Liferay Utilities:

Liferay provides a host of utilities that make developing for the Liferay Platform easy and efficient. Liferay developers should know how to leverage the more common utilities (ParamUtil, GetterUtil, HTMLUtil, etc.) to enhance their productivity.


User Management and Group APIs:

One of the most commonly used APIs for developing solutions with Liferay is the User and Group Management API. Liferay developers should be familiar with the methods provided by this API and how they can leverage it when developing custom solutions





AlloyUI:

AlloyUI is a framework built on top of YUI3 that provides a simple API for building highly scalable applications. Liferay developers should be familiar with how AlloyUI can be leveraged in custom development and to extend Liferay's capabilities.





Expando API:

Liferay's Expando Service provides an elegant way to extend the Liferay schema without the pain associated with modifying the underlying database. Liferay developers should be familiar with the capabilities of the Expando Service and understand how to write code that creates and utilizes Expandos.






Application Display Templates

Application Display Templates enable customization to the default views of many Liferay applications. Liferay Developers should be familiar with how to enable Application Display Templates in their own portlets.




Liferay Portlet Plugin Development



Portlet API

While Liferay does support portlet development with a wide variety of languages and frameworks, the most common portlets will be based on the JSR-286 specification. Liferay developers should be very familiar with the JSR-286 specification and understand how its features are at the core of other popular portlet application frameworks.




Configuration

The standard deployment descriptor (portlet.xml) and Liferay specific configuration files allow portlets to inform Liferay which features they will be implementing. Liferay developers should know how to use these configuration files to leverage standard portlet features as well as Liferay specific features.


IPC

The JSR-286 specification adds support for Inter Portlet Communication (IPC). IPC allows developers to build powerful, multi-portlet applications that can share and update data seamlessly. Liferay developers should be familiar with both methods of IPC and understand how to leverage them to create powerful portlet applications.






Liferay MVCPortlet

The Liferay MVCPortlet framework is a simple, lightweight, easy to use framework that builds on top of GenericPortlet, but removes much of the boilerplate code that is common when directly extending GenericPortlet. Liferay developers should understand how the Liferay MVCPortlet framework works so they can understand the Liferay provided portlet plugins as well as leverage the features in their own portlets, if desired.








JSP and UI Technologies

When working with portlets that extend Liferay's MVCPortlet or GenericPortlet the most common view technology will be Java Server Pages (JSP). Liferay provides a significant number of tag libraries that can be leveraged in JSPs to improve developer productivity and efficiency. Liferay developers should be familiar with JSPs and know how to leverage the Liferay provided tag libraries.

JSP Tag Libs


Alloy UI JS libraries and Its Modules


Permissions

Liferay provides a robust, fine-grained permission system that is available in core portlets as well as portlet plugins. Liferay developers should know how to leverage this permission system when developing their own portlet plugins.






Liferay Hook Plugin Development

Best Practices

When used properly, Hooks are ideal for customizing core Liferay features and will allow for easier upgrades. However, it is important for Liferay developers to follow best practices when developing hooks to ensure maintainable code.



Configuration Hook

Configuration Hooks provide a hot-deployable mechanism for customizing portal properties. Not all portal properties can be modified with a hook, but when possible, it is recommended to use a hook. Liferay developers should be aware of how to best leverage Configuration Hooks and know their limitations.

JSP Hook

A JSP Hook can override JSP files or other web resources found in portal-web in the Liferay source. By properly leveraging this feature, Liferay developers can easily accomplish many of the most common user interface customizations in the Liferay Platform. Liferay developers need to know how to properly apply JSP Hooks to create robust solutions that will upgrade gracefully and how to avoid the most common errors made when implementing JSP Hook solutions.





Language Hook

A Language Hook can override existing language keys in the portal or can be used to add new language keys. Liferay developers need to know how to use Language Hooks to know how to properly override default and new language keys in both the default language and any other supported language keys of the portal.



Indexer Post Processor Hook

An Indexer Post Processor Hook provides a powerful post-processing mechanism on top of the existing indexer to allow plugin hook developers to modify the search summaries, indexes, and queries. Liferay developers should know how to leverage this exciting feature to enhance the search capabilities of the portal.



Service Wrapper Hook

One of Liferay's many strengths is its powerful Services Oriented Architecture. Service Wrapper Hooks allow plugin developers to take something great, and make it even better. Liferay developers should know how to properly leverage a Service Wrapper Hook to customize and extend Liferay's core services.





Struts Action Hook

Struts Action Hooks can be used to override core portal and portlet struts actions and to add new struts actions, when necessary. Liferay developers should be familiar with the recommended approach for implementing a Struts Action Hook.





Servlet Filter Hook

Liferay provides a set of servlet filters to pre-process requests going to Liferay and post-process responses coming from Liferay. A Liferay developer should know how to leverage the Servlet Filter Hook plugin to customize these existing servlet filters or to implement new servlet filters.




Portal Properteis Hook


Events Hook



Liferay Theme Plugin Development

Liferay Themes allow you to completely transform the look and feel of your portal. Liferay developers must be familiar with the proper approach to creating a theme to ensure that themes are efficient and don't incur a performance penalty on each request. Following best practices will also ensure that themes are easily upgradable.


Understanding Liferay Theme Development

Liferay Themes follow a well organized, modular structure. Custom themes are based on modifications or differences from a base theme. Liferay developers must know how to properly create or customize a theme to ensure that the theme follows the proper structure. Failure to follow Liferay's standards can lead to themes that are not easily upgradable.


Color Schemes and Theme Settings

Color schemes allow you to package a collection of pre-defined theme variations in a single plugin. Theme settings allow you to provide options that can be set at run-time to customize the look or functionality of your theme. Liferay developers should be familiar with how to leverage both of these features when developing or customizing a Liferay Theme.






Theme settings


Embedded Portlets

mbedding portlets in a theme provides a powerful mechanism to get the most out of limited screen real estate, but when not done properly, it can have a significant negative effect on portal performance. Liferay developers should know how to properly embed portlets in a Liferay Theme to improve the usability of the Theme without negatively impacting the Theme performance.






Liferay Layout Template Plugin Development

Liferay Layout Templates provide the framework or skeleton of a page. When dragging and dropping portlets to a page, the layout template is what defines the number and size of columns available to you. Liferay developers should know how to properly define and customize layout templates.



Understanding Liferay Layout Template Development

Liferay Layout Templates can be created with any combination of required rows and columns and the columns can be sized as needed. Layout templates can also include embedded portlets to ensure page consistency. Liferay developers should know how to leverage all of these layout template features to create customized layout templates as needed.





Liferay Advanced Customization

Liferay provides many options for customizing all aspects of Liferay's behavior. Many of the more advanced customizations one may encounter will involve modifying the core behavior of the portal itself. Liferay developers should be familiar with the customization options.



Understanding EXT Plugins

The Ext plugin provides the most powerful method of extending Liferay. Liferay developers should understand the capabilities of the EXT plugin and should understand the special scenarios that require the use of the EXT plugin.


Modifying Portal Configuration

There are some types of portal configuration changes that are not possible when using hooks. Liferay developers should understand when these changes are required and how they should be best implemented.



Customizing Core Portlets

Liferay ships with a robust set of core portlets which provide a wide range of features that satisfy many different use cases. In some cases, these core portlets will need to be modified in ways that are not supported by the Liferay Hook Plugin. Liferay developers should understand when this type of modification is required and how to best implement these types of customizations


Tips:

Read all DTD Definitions So that we can know all Configuration tags


Read all Tag Libraries Tags and its attributes


Read all portal properties other related properties


Suggested Books

Liferay Cook Book



Liferay In Action


Liferay Developer Guide



Liferay Developer Nerwork


Liferay Blogs


Liferay Wikis


Author

Wednesday, November 5, 2014

Liferay Theoretical Architecture /Liferay Layered Architecture


Liferay is open source portal and it provides robust application features and capabilities which full fill real world end user needs.

Liferay support many functions such as Portal Management, Content Management, Work flow Management, Document Management, User Management and Security Management.

All these services liferay already implemented as it core features so that as developer we need not worry about underlaying services only we need to think about end user needs when we develop application.

Layer is also comprised of the inter related service components and features Personalization,Collaboration, Social Networking, Delivery Channels, Virtualization Tunnelling Servlets and these services we can inherited from liferay core features.

Liferay follows a Model Driven Architecture approach

Liferay follows a Model Driven Architecture

Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.


Liferay follows below software engineering models

Platform Independent Model (PIM) :

A Platform-Independent Model (PIM) in software engineering is a model of a software system or business system, that is independent of the specific technological platform used to implement it.


Platform Specific Model (PSM):

A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indispensable for the actual implementation of a system.


Domain Specific Model (DSM)

Domain-specific modeling is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system.



Platform Specific Model (PSM) which constitutes following technologies

EJB’s, Spring Framework, Hibernate Layer, Web Services.

Service Builder Made up with implementation of Platform Specific Model (PSM) technologies such as EJB’s, Spring Framework, Hibernate Layer, Web Services.

The services builder is the Model Driven Transformation (MDT) Tool which will construct and deploy services those are required by liferay portal and portlets.

Liferay already a developed application so if any one wants to extend or add new features then liferay have given following extension frameworks these will be as part of Plugins SDK.

Extension Environment

Plugins Framework

Note:

Before 6.1 version we have separate Extension Environment later version it was added into Plugins Framework.

Extension Environment:

Extension environment is for override existing portal source.Extension environment consist same directory structure i.e. portal follows.

Extension environment override portal source files by placing in appropriate path where it actually in liferay source portal.

Extension environment have different -ext.properties files to override existing portal and other languages propertied files.

Plugins Framework:

Plugin framework is for customize or extend portal and its hot deployable plugins means no need stop sever when we deploy and changes will be applied after successful deployment.

Pluigns frame work consist of following types for different contextual use with respect to liferay such as Portlet,Hook,Theme,Layout and web

Hooks are used to override some source of liferay portal such as portal jsps, portal properties language properties, events and struts actions

We have following types of Hooks

JSP hooks(JSP hook used to modify the existed Liferay JSP Pages)

properties hook(these are used to modify some of portal properties and language properties file in liferay source) 
 
Event hooks(liferay have events action classes we can modify using event hook like post login, pre login events are examples)

Model hooks(Model hooks deal with entity actions in services)

Struts Action Hooks(from liferay 6.1 we have these feature)

Plugins frame work provide following Interfaces in development

Command Line:

Ant Targets so that we can run from command prompt.

IDE:

Eclispe plugin consist GUI based interface to create pluings such as portlet,hook,layout,theme and web

Liferay supports Windows, Mac and Linux OS Operating Systems and Liferay need JVM and its operating system dependent

Liferay Portal Support many Server Environments such as Apache Tomcat, Glassfish, Geronimo, Jetty, JOnAS, JBoss, and Resin and this one of huge advantage so that we can deploy into any of the sported servers.

Each application server provide many services which will be used by application those are deployed in the server.

JNDI (Java Naming and Directory Interface)
JDBC (Java database connectivity)
JTS (Java transaction service)
JMS (Java Message Service)
JAAS (Java Authentication and Authorization Service)
JDO (Java Data Objects)
JWS (java Web Services)
JSP/Servlets
JavaMail

Liferay Architecture Diagram




Note:

Each layer is differentiated by different color and each layer consist one more components.

Layer: 1

Any Software that required Operating System to run.so its base layer for any software. In the diagram is bottom layer represent Operating System.
We already know liferay support Windows,Mac and Linux.

Layer: 2

As we know any software required native run time environment and liferay is java portal so we need Java Virtual Mechine (JVM). If we install Java then we will be ready with JVM.Each OS have its platform depended JVM

Layer: 3

Liferay is java web portal and to run any web application we need application server and application server will be running with help of JVM.
Liferay support many application servers such as Apache Tomcat, Glassfish, Geronimo, Jetty, JOnAS, JBoss, and Resin.

Each application servers by default provide many services which will be used by deployed applications.Liferay Portal Application also used different application server services such as JNDI, JDBC, JTS, JMS, JAAS, JDO, JWS, JSP/Servlets, and JavaMail
This layer we can say Application Server and Its services

liferay also use external services and These services can be deployed into application services and these services can be used by liferay such as SOLR Search engine DROOLS Rule Engine and Tunneling Servlets.When we required then we can deploy these services so that liferay can use.
Search engines(SOLR/Lucene) provide capabilities like clustering, faceted search and filtering.

Layer: 4

This layer is actual liferay core implementation and its technologies.its provide robust capabilities to run and integrate other applications into liferay.

Language adopter provide mechanism to develop and run other language portlet such as PHP, Ruby, Python and Groovy.

Portlet Bridge / JSR 168/286

Liferay implemented Portlet Bridge for deploy JSR 168/286 portlets and supports RIA applications

We can also use Web framework related Portlet Bridges to convert Web work flow into Portlet Work flow

Struts Portlet Bridges:

To run Struts framework based portlet applications.

Spring Portlet Bridge(Spring Portlet MVC):

To run spring frame work based portlets.

JSF Portet Bridge:

For JSF based portlets

JCR ( Java Content Repository):

Liferay use the JCR ( Java Content Repository) based implementation to maintain WCM such as Documents and Files.Liferay used Jackrabbit JCR implementation by default.Liferay also provide easy integration with other JCR implementation such as Alfresco.

BPM(Business Process Management):

Its provide work flow management services in liferay portal. Liferay used Kalio work flow and JBPM(jBoss Business Process Management) these are reference implementation for BPM.

Lucene Engine:

Lucene Engine is inbuilt search engine in Liferay and its also support configurable SOLR search Engine and SOLR Search Engine also implemented based in Lucene.

Liferay use different technologies to provide database relates services and other application services i.e. Spring,Hibernate and EJP are portal service implementation technologies.

Layer: 5

This layer provide defined mechanism such that we can customize or extend liferay features and provide rapid services implementation tools such as service builder.

Liferay Service Builder Tool

Liferay Service Builder Tool provide construct and deploy services and these tool use Spring and Hibernate to implement services.

Portlet plug-in :

The portlet plug-in leverages on the portlet bridge to provide dynamically generated portlets to the end users and enhanced RIA integration.

Hooks plug-in:

The hooks plug-in provide convenient access to intercept and alter the services and functionality of the Liferay instance in a standardized approach

Portal Service/Custom Services:

Portal Service/Custom Services are like core liferay services such as Group,Organization,Site,User and Roles services we can also customize services.

OOTB(Out of Box)/Custom portlets:

Liferay also capable of develop and run OOTB portlets. Liferay provide custom portlet development through plugins SDK and OOTB portlet we can use any other webapplication frameworks such as spring,struts,JSF and vaadin.

Layer 6:

Layer:6 is real world application layer that user can experiences. Liferay used all above services and capabilities and it provide robust core features such as Portal Management, Web Content Management, Enterprise Content Management, Document Management, User Management, Work flow Management, Security Management.

We will use Layer:6 liferay core capabilities and we will turn it into Personalization, Collaboration, Virtualization, Social Networking and integrates Dynamic Delivery Channels, and Tunneling Services


Reference Source Article

Recent Posts

Recent Posts Widget

Popular Posts