Liferay Architecture

Similar documents
Liferay Exam LRP-614 Portal Developer Version: 6.0 [ Total Questions: 144 ]

Actual4Test. Actual4test - actual test exam dumps-pass for IT exams

icp Overview icp V3.5 November, 2009

Vendor: Liferay. Exam Code: LRP-614. Exam Name: Liferay Certified Professional Developer. Version: Demo

IT Certification Exams Provider! Weofferfreeupdateserviceforoneyear! h ps://

Open Source Library Developer & IT Pro

Liferay Digital Experience Platform. New Features Summary

Modern frontend workflows in Liferay Portal and Liferay DXP. Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

ApacheCon NA How to Avoid Common Mistakes in OFBiz Development Presented by Adrian Crum

Liferay DXP profile for Dynatrace

At present we use several collaboration (web) tools, like SuperB website Wiki SVN Document management system etc.

Oracle SOA Suite 10g: Services Orchestration

Application Integration with WebSphere Portal V7

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Appendix A - Glossary(of OO software term s)

Improve and Expand JavaServer Faces Technology with JBoss Seam

BEAWebLogic. Portal. Overview

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

Introduction. Key Features and Benefits

Adobe Experience Manager 6 Lead Developer Adobe Certified Expert Exam Guide. Exam number: 9A0-396

ActiveWorkflow Overview

mimacom & LiferayDXP Campaign

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Breaking Apart the Monolith with Modularity and Microservices CON3127

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

55249: Developing with the SharePoint Framework Duration: 05 days

WSRP Web Services for Remote Portlets

Etanova Enterprise Solutions

Magnolia Community Edition vs. Enterprise Edition. Non-Functional Features. Magnolia EE. Magnolia CE. Topic. Good value for money.

Unified Task List. IBM WebSphere Portal V7.0 Review the hardware and software requirements Review the product documentation

JAVA SYLLABUS FOR 6 MONTHS

20486-Developing ASP.NET MVC 4 Web Applications

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Actual4Test. Actual4test - actual test exam dumps-pass for IT exams

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

How to Upgrade to Liferay Digital Experience Platform

Remote Health Service System based on Struts2 and Hibernate

AIM. 10 September

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

Advanced Topics in WebSphere Portal Development Graham Harper Application Architect IBM Software Services for Collaboration

Project Horizon Technical Overview. Steven Forman Principal Technical Consultant

Project Horizon Technical Overview. Bob Rullo GM; Presentation Architecture

Standards and the Portals Project

THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO

(9A05803) WEB SERVICES (ELECTIVE - III)

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

J2EE Technologies. Industrial Training

P a g e 1. Danish Tecnological Institute. Developer Collection Online Course k Developer Collection

How (and Why) to build a Plug-in to the IR360 framework. Capitalware's MQ Technical Conference v

Chapter 10 Web-based Information Systems

Adobe ColdFusion 11 Enterprise Edition

Building Effective ASP.NET MVC 5.x Web Applications using Visual Studio 2013

Java EE 6: Develop Web Applications with JSF


Application Design and Development: October 30

Liferay Digital Experience Platform. Apps and Features Overview

Liferay Portal 6.2 Enterprise Edition. Portlet and feature overview

BEAWebLogic Server. Introduction to BEA WebLogic Server and BEA WebLogic Express

"Charting the Course... WebSphere Portal 8 Development using Rational Application Developer 8.5. Course Summary

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

Open ESB v2, Open ESB.next and Project Fuji. Andreas Egloff Lead Architect SOA / Business Integration Sun Microsystems

SQL SERVER DBA TRAINING IN BANGALORE

Entando Technology Drill Down

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007

Does it blend? Aligning Business Requirements with Liferay. Andreas Firnau & Michel Meier. Andreas Firnau / Michel Meier USU Business Solutions

Reference Cart and One Page Checkout BETA February 3, 2014 Version 2014 Release 1

C exam IBM C IBM Digital Experience 8.5 Fundamentals

LR Mobile SDK & LR Screens

EBS goes social - The Triumvirate Liferay, Application Express and EBS

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Accelerate time-tomarket. Framework-driven development. If converting ideas into

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Microservices on AWS. Matthias Jung, Solutions Architect AWS

2 Apache Wink Building Blocks

THIS IS ONLY SAMPLE RESUME - DO NOT COPY AND PASTE INTO YOUR RESUME. WE ARE NOT RESPONSIBLE Name: xxxxxx

Software Design and Analysis CSCI 2040

Modern and Responsive Mobile-enabled Web Applications

Adobe ColdFusion level 1 course content (3-day)

MIRO DIETIKER Founder

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

Java Platform, Enterprise Edition 6 with Extensible GlassFish Application Server v3

Mastering BEA WebLogic Server Best Practices for Building and Deploying J2EE Applications

Open Source. in the Corporate World. JBoss. Application Server. State of the Art: Aaron Mulder

Cloud Computing Platform as a Service

WebSphere Portal Application Development Best Practices using Rational Application Developer IBM Corporation

Adobe Experience Manager

Developing Microsoft Azure Solutions

wcm.io Context-Aware Configuration

BEAProducts. ISV Partners Guide

Alfresco Developer Guide

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Sentinet for BizTalk Server SENTINET

vsphere Web Client Extensions Programming Guide vsphere 5.1

Web Client Architecture Guide

THE IMPORTANCE OF NICHE TECHNOLOGIES IN BUSINESS ANALYSIS. - Kat Okwera Jan 2019

Cisco Spark Widgets Technical drill down

Transcription:

Liferay Architecture Understanding the inside of Liferay Jorge Ferrer Vice President Engineering

Table of Contents Architecture Overview Services Transactions Indexing Workflow Cache Frameworks Secret Ingredients

Architecture Overview

Services (and persistence) Local: Business logic & Persistance Remote: Security & Remote Access WOA SOA

Services Patterns Service per model entity Always return void, <Entity> o List<Entity> Grouped as: Portal services Per Portlet services Encapsulate all access to Persistence and Finders Security must be in remote layer

Service Builder Takes care of all the plumbing and heavy lifting: Persistence (Hibernate and custom SQL) Caching (Persistence layer) Services and remote protocols Spring wiring Define your models and services in service.xml See DTD to find out about all options Code generated via Freemarker Templates

Caching Page HTML cache (CacheFilter) Portlet caching (UI and resources) CSS & JS cache: Minified & Bundled MultiVMPool (Cluster Aware) SingleVMPool SB Finder Cache & Entity Cache Hibernate Caching (L1 y L2)

Cache Distribution One to one RMI (Default <6.1) Multicast (Default 6.1+) Centralized Terracota (Terracota Edition) Memcache Invalidation

Transactions Definition: Executing operations atomically Service methods happen within a transaction (Based on Spring) ServiceBuilder generates annotations: add*, check*, clear*, delete*, set*, and update*: require propagation, read-write All others: supported, read-only How about transactionality in plugins that invoke the portal? Automatic support for distributed transactions across plugins by reusing Hibernate's connection

Indexing Modular architecture Out of the box support for: Lucene (Clustering with ClusterLink via jgroups) SOLR Asynchronous indexation (Message bus via AOP)

Workflow Framework Unified API for Services Modular architecture Out of the box support for: Liferay Kaleo JBPM 3

Frameworks Permissions: role based, resource oriented Asset Framework: common functionality for all content: tags, categories, counts,... Message Bus: Used mainly for Asynchronous Invocations Used for: indexing, metadata extraction, notifications,... Scripting: Supports: JavaScript, Ruby, Python, Forbidden classes Audit: auditing user actions Expando: allows dynamic relational storage More...

The secret ingredients

Consistency Never reinvent the wheel See if it's already coded somewhere else Always follow existing patterns & standards Use Copy & Paste intelligently when needed Reuse and code to allow reusing Enforced through Peer Reviews and a code Gatekeeper: Brian

Facilitate maintainability Use modern de-facto standard libraries: spring, hibernate, lucene, But use them only for what is really needed Always find the best place for your code (Even) If it's not broken don't fix it change it Never leave legacy behind Enforced through Peer Reviews and a code Gatekeeper: Brian

Contributions Great ideas come from advanced developers using the product Some examples: Service Builder Freemarker templates Auto Deploy Clp Quality guaranteed through Peer Reviews and a code Gatekeeper: Brian

Coming next Module Framework (OSGi) Application Resiliency More hook-ability to facilitate combination of hooks

Thanks! Bonus content in the downloadable slides: Request Handling Plugin Architecture Deployment Class loading

Request Handling

Request Cycle Portal URL

Request Cycle Portlet URL

Plugin Architecture

Application Containers Portlet Container: included in the core OpenSocial Container Other frontend integration solutions: PortletBridge: Integrated in Liferay as a portlet, WebProxy. Iframe Portlet: Smart resizing and tracking WSRP: Provided through a plugin

Plugin Deployment Running!

Class Loading Hierarchy Classes should be no higher in the hierarchy than they are supposed to exist

Class Loading Process Classloaders delegate the requests to load that class to their parent classloaders

Class Loading Manipulation 1. Interface-based Dependency Injection Invocation of services Invocation of PortalImpl and other utils 2. Explicit class loader invocation CLP: inter-portlet invocation PortalClassLoader

Class Loading for Ext, Hook,Web 1.Ext 1. All code executes in Portal context 2.Hook 1. Java classes execute in plugin context 2. JSPs execute in Portal context 3.Web 1. All code executes in plugin context