Custom application development with liferay

Post on 01-Nov-2014

720 views 2 download

Tags:

description

Liferay Road Show 12.9.2013, Henri Sora, Ambientia

Transcript of Custom application development with liferay

1

Liferay as a platform for custom web applications

Henri Sora & Jouko Pirinen 12.9.2013

12.9.2013 www.ambientia.net

Henri Sora

© Sofia Nordström

- Ambientia- Since 1998- Director, Technology and Services- Board Member & Partner

- Aucor (software)- Board Member

- Labrox (life sciences) - Chairman of the Board

- Father of three children - (7 y, 4 y and ~2 y)

- Hobbies - Hiking - Sailing- Kayaking - Bicycling

Twitter: @henrisora

Jouko Pirinen

© Jouko Pirinen

- Ambientia- Since 2005- Senior Software Developer- Partner

- Hobbies - Hiking- Fishing- Reading- Gym

www.ambientia.net 4

Today, Custom Web Applications

with Liferay

12.9.2013

www.ambientia.net 5

Common use cases for Liferay

Intranets

Extranets

Large scale web sites

12.9.2013

www.ambientia.net 612.9.2013

www.ambientia.net 7

Old Portal

12.9.2013

Old Portal

Modern Portal: Application Platform

Accelerating Application Development

www.ambientia.net 14

The technologies for Custom Applications

12.9.2013

www.ambientia.net 15

Permissions API -

User authentication, authorisation and permissions

12.9.2013

www.ambientia.net 16

Permissions API

The good • Versatile system• Commonly required API’s are from out of the box

• Permissions & Authentication API • UI to handle changes to the users • Tag library for JSP pages

• Easily modified and extendable for custom portlets

12.9.2013

The bad • It is a complicated system and has learning curve

www.ambientia.net 17

Liferay’s permission data model

12.9.2013

See, it is quite

complex...

One day to learn – one year to master

www.ambientia.net 18

CMS Functionality -

Page Content and editing

12.9.2013

www.ambientia.net 19

CMS Functionality

The good • Flexible content structure and display definition i.e.,

Structures and Templates• Versatile document storage (i.e. excellent API’s) • Content versioning • Scheduled publishing of content • Workflow capabilities • Articles can be integrated easily to custom portlets

12.9.2013

The bad • The UI a bit challenging

www.ambientia.net 20

Editor

12.9.2013

Good. No need to write yet another CMS system for

my apps

www.ambientia.net 22

Content template

12.9.2013

www.ambientia.net 26

Asset Framework -

Content aggregator for portlets

12.9.2013

www.ambientia.net 27

Asset Framework

The good • Shared storage and display for various content items in the

application • Custom portlets can be integrated to the Asset Framework and

can be published as assets• Categories; tags; commenting; etc.

• Display styles and methods can be set based on the content type

12.9.2013

The bad • Again, correct Asset Framework usage requires learning • The Asset Publisher and other display portlets require

modification almost each time they are being used because the OOTB setup seldom meets the project’s requirements

www.ambientia.net 2812.9.2013

Loads of buttons

over here...

www.ambientia.net 29

Asset Selection

12.9.2013

This is quite

powerful and

dynamic. Good.

www.ambientia.net 30

Sites and Organisations-

Multiple Web Sites with

centralised management

12.9.2013

www.ambientia.net 31

Sites and Organisations

The good • Staging functionality • Private and public pages

• Can have unique domain names• Content can be structured to sites with different rights • Page and Site Templates enables fast structure

management and modification

12.9.2013

The bad • Site versus organisation selection can be tricky • Data migrated via large lar pakages

www.ambientia.net 32

Site pages, page details

12.9.2013

www.ambientia.net 33

Service Builder-

Service Layer Generation and Data Modelling

12.9.2013

www.ambientia.net 34

Service Builder

The good • Easy data structure mapping and finder mapping with XML

• Can be finetuned with portlet-model-hints.xml• Automatic service layer generation• Easy extension of the default interfaces• Permissions Framework works nicely with the Service Builder • Multiple portlet apps can use dependencies from each other

12.9.2013

The bad• Automatically generated code is difficult to accept for certain

developers• It is difficult to fix bugs in the generated code

www.ambientia.net 36

Service.xml

12.9.2013

WOW!JSON for

free!

www.ambientia.net 37

Common requirements for enterprise web applications

- out of the box for developers

12.9.2013

www.ambientia.net 38

The technologies we are NOT

leveraging

12.9.2013

www.ambientia.net 39

Techologies and componets not used

1. Liferay’s CE- version2. Most of the OOTB portlets

• Liferay has a large set of portlets included but only a few of them are commonly used when building custom applications

3. Struts Framework• Commonly replaced by Spring or Liferay MVC• On some cases needs to be used

4. Ext environment• Is replaced by hooks in most cases

12.9.2013

www.ambientia.net 40

Example

12.9.2013

www.ambientia.net 41

Newolo - again

12.9.2013

www.ambientia.net 4212.9.2013

www.ambientia.net 43

Newolo

• It did not require a Portal as such it benefits a lot of about • Permissions API: user Authentication and Authorisation • Service Builder • UI with JSP & JSTL• SOAP based integration with custom made content repository • Application architecture utilizes site structures to enhance

logic and manageability • Themes and layouts for multiple clients • Documents and Media to update videos to the system • Localization for all content • Liferay scheduling to send reminders

• Therefore, Liferay is being used in a custom application

12.9.2013

Accelerating Application Development

www.ambientia.net 46

Liferay is good for custom

applications

1) OOTB Developer

Functionality

2) OOTB Portal’s

management interfaces

3) Portal’s footprint is not an issue with modern

hardware

4) Decent licensing model for single app

usage

12.9.2013

www.ambientia.net 47

Questions? Twitter: @henrisora & henri.sora@ambientia.fi

12.9.2013

Sähköposti: henri.sora@ambientia.fi

Twitter: @henrisora

Henri & Jouko