In this write up, we will pick some of the new offerings of Liferay DXP and explore them in details.
This effectively means that each module (feature) of Liferay is now federated and detachable from the core Liferay installation. While Liferay earlier used to be a single large monolithic application, it now comprises of multiple JARs. This means that the business can now go cherry picking on what they want in their installation without paying for the performance overhead of what is not necessary.
Benefits: Leaner install, lesser performance overhead, more manageable installations, faster deployments, easier maintenance
Who benefits most: Deployments that use extensively only a few modules of the Liferay
- Semantic Versioning:
Now run multiple versions of the same module simultaneously on a single Liferay instance. So for example you have a version of Wiki(feature) running on your installation, you can now go ahead, make changes based on your new demands in that feature with different versioning and that modified versioning services are available to be used by the application. Even both the old and new version could be used in the same instance
Benefits: You can now have newer beta versions features available for users to play with without disturbing the current functionality. Another benefit is instantiation – The same can now in different forms of the same instance. This would help you in A/B Testing your web pages
Who benefits most: Scenarios where there is constant need to roll out new features and user acceptance is critical
- Monolithic to Microservices
This is where Liferay has taken a step into future. The architecture has changed at the very fundamental level where the applications are divided into different bundles which use the OSGi framework. This changes almost everything about how Liferay works. Now every portlet is talking to the other as a microservice , as opposed to the IPC that happened in earlier versions. All portlet properties are now easily exposed and usable across portlets.
Microservices will let you slice and dice your offerings into smaller modules that can continue to upgrade at different speeds. For Example your ecommerce cart needs to come out with new features every fortnight while the forums undergo changes not more than once annually, in such a scenario, Liferay DXP is the ideal platform for you.Make once, use everywhere!
Benefits: Lesser SLOC (Lines of code), Better code and application performance, faster deployment and maintenance
Who Benefits most: Larger deployments that cater to multiple audience segments (example products that use the SaaS model in a multitenant environment). Other businesses that benefit most are where speed of feature roll out is critical to success.
Where we have frequent changes to the application and its different features
- Expose and Access Services
DXP allows creation of smaller and more managable modules with services exported to be used externally. These services will be accessible to be used across the installation. While re-use is possible, there is no direct access to the code. Implementation is hidden. Abstraction over implementation
Benefits: The key benefit of this approach is built in security. All services are isolated and failure of any service will not traverse through the system. You can produce and consume the service you want
Who Benefits most: Again larger deployments will stand to benefit most. In a DevOps managed ecosystem it will be easier to troubleshoot and isolate the services that is at fault. Larger system breakdowns will be averted; at most a part of the functionality will stop working in case of a bug.
- Faster page refresh
Liferay DXP uses the state of the art Senna.js single page application (SPA) engine that can dramatically optimize any site’s performance. SPA is the same technology as used by Gmail, Facebook etc. SPA loads all of the resources required to navigate throughout the site on the first page load. As the user clicks links and interacts with the page, subsequent content is loaded dynamically. Post the first page load, a full page request is never made. SPA taps into the powerful capability of perceived performance set of HTML 5.
Benefits: Very simply put, it means superior user experience. Users barely notice the refresh of content once they click a button. You will create applications that are feature rich and run at blazing speeds.
Who benefits most: Everyone. Who doesn’t like fast a browsing experience!
- Overwriting EXT & Hook
DXP now provides abstraction on implementation with OSGi bundles/modules and services. Initially the main liferay core classes could only be over-ridden through EXT or hook. Now in Liferay 7, everything comes as a bundle and you just overwrite what you want to in a bundle. This makes faster customization and only customizing what we want.
Benefits: Makes it easy to maintain and extend the system. Automatic Redirection where
Liferay handles the redirection automatically. Even action will now automatically revert to the initial page without any additional implementation or logic. The redirection is handled much easier and better in Liferay DXP.
Benefits: Saves development time and handling of unnecessary redirection errors.
- Wider Tooling Support :
Use build management tools of choice – BND tools, Griddle, Maven, Gulp, Blade CLI, LR Dev Studio. With all these choices to pick from, organizations and developers can pick build tool of convenience when starting development in Liferay
Benefits: Liferay is now open for a much bigger community of developers who are proficient on different Build tools.
Who Benefits most: Developers and cross functional implementation teams. Pick the build tool of choice and use it for your deployment
- Pure business components can now be accessed by Non Liferay JAVA applications
If you have a repository of core JAVA libraries that contain business logic and are looking towards a platform that helps you re-use these, look no further. Liferay now lets you to tap into custom Java libraries and use them in your implementation.
Benefits: Re-use of code is the key advantage as there is no need to refactor the logic into Liferay if you don’t want to.
Who benefits most: This is a definite cost and time saviour if you have large amounts of pre-written custom business code.
- Re-use classes across the system
You can export the services to be used by other modules of the system without other modules to know the implementation. The consumer module imports those services and uses it. It works like one module working as a producer and many other consumers.
Benefits: Build once, use anywhere.