custom application development with liferay
DESCRIPTION
Liferay Road Show 12.9.2013, Henri Sora, AmbientiaTRANSCRIPT
![Page 1: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/1.jpg)
1
Liferay as a platform for custom web applications
Henri Sora & Jouko Pirinen 12.9.2013
12.9.2013 www.ambientia.net
![Page 2: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/2.jpg)
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
![Page 3: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/3.jpg)
Jouko Pirinen
© Jouko Pirinen
- Ambientia- Since 2005- Senior Software Developer- Partner
- Hobbies - Hiking- Fishing- Reading- Gym
![Page 4: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/4.jpg)
www.ambientia.net 4
Today, Custom Web Applications
with Liferay
12.9.2013
![Page 5: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/5.jpg)
www.ambientia.net 5
Common use cases for Liferay
Intranets
Extranets
Large scale web sites
12.9.2013
![Page 6: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/6.jpg)
www.ambientia.net 612.9.2013
![Page 7: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/7.jpg)
www.ambientia.net 7
Old Portal
12.9.2013
![Page 8: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/8.jpg)
Old Portal
![Page 9: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/9.jpg)
Modern Portal: Application Platform
![Page 10: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/10.jpg)
Accelerating Application Development
![Page 11: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/11.jpg)
www.ambientia.net 14
The technologies for Custom Applications
12.9.2013
![Page 12: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/12.jpg)
www.ambientia.net 15
Permissions API -
User authentication, authorisation and permissions
12.9.2013
![Page 13: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/13.jpg)
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
![Page 14: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/14.jpg)
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
![Page 15: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/15.jpg)
www.ambientia.net 18
CMS Functionality -
Page Content and editing
12.9.2013
![Page 16: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/16.jpg)
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
![Page 17: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/17.jpg)
www.ambientia.net 20
Editor
12.9.2013
Good. No need to write yet another CMS system for
my apps
![Page 18: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/18.jpg)
www.ambientia.net 22
Content template
12.9.2013
![Page 19: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/19.jpg)
www.ambientia.net 26
Asset Framework -
Content aggregator for portlets
12.9.2013
![Page 20: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/20.jpg)
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
![Page 21: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/21.jpg)
www.ambientia.net 2812.9.2013
Loads of buttons
over here...
![Page 22: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/22.jpg)
www.ambientia.net 29
Asset Selection
12.9.2013
This is quite
powerful and
dynamic. Good.
![Page 23: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/23.jpg)
www.ambientia.net 30
Sites and Organisations-
Multiple Web Sites with
centralised management
12.9.2013
![Page 24: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/24.jpg)
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
![Page 25: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/25.jpg)
www.ambientia.net 32
Site pages, page details
12.9.2013
![Page 26: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/26.jpg)
www.ambientia.net 33
Service Builder-
Service Layer Generation and Data Modelling
12.9.2013
![Page 27: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/27.jpg)
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
![Page 28: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/28.jpg)
www.ambientia.net 36
Service.xml
12.9.2013
WOW!JSON for
free!
![Page 29: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/29.jpg)
www.ambientia.net 37
Common requirements for enterprise web applications
- out of the box for developers
12.9.2013
![Page 30: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/30.jpg)
www.ambientia.net 38
The technologies we are NOT
leveraging
12.9.2013
![Page 31: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/31.jpg)
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
![Page 32: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/32.jpg)
www.ambientia.net 40
Example
12.9.2013
![Page 33: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/33.jpg)
www.ambientia.net 41
Newolo - again
12.9.2013
![Page 34: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/34.jpg)
www.ambientia.net 4212.9.2013
![Page 35: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/35.jpg)
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
![Page 36: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/36.jpg)
Accelerating Application Development
![Page 37: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/37.jpg)
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
![Page 39: Custom application development with liferay](https://reader035.vdocument.in/reader035/viewer/2022081412/54580e2baf795994188b52e4/html5/thumbnails/39.jpg)