Liferay DevCon 2014: Lliferay Platform - A new and exciting vision

70
Liferay Platform Vice President Engineering A new and exciting vision Jorge Ferrer

Transcript of Liferay DevCon 2014: Lliferay Platform - A new and exciting vision

Liferay Platform

Vice President Engineering

A new and exciting visionJorge Ferrer

Liferay's goal is not be well positioned but to

add value?

How can a portal platform provide the

most value today?

And in the future?

A year of great innovation for Liferay

Three trends for a new vision

Image Credit & Copyright: Brandon Goforth

1Mobile development has been a hurricane of innovation

By tuttletree @flickr

When was the last time you did this?

By pedromourapinheiro @flickr

How are these apps being built?

Image credits: myshadesofgray.wordpress.com

How about the backend?

Hmm, anyone knows Java?

Ruby on Rails?Django?

Don't let the backend be an after thought!

Developing the backend of a mobile App

from scratch is rarely a good option

Do you really want to implement user

management once again?

How about...

?File storage

Localized content

Social Meta-Data

SearchComments

Tagging Categorization

Authentication

Workflow

Relationships

µ µµ µ

Reusable Services

Liferay offers many reusable services for building Apps

IdentityUser ManagementPermissionsContent ManagementDocument ManagementDynamic Forms...

Some of you are already doing this

Forums App Blog reader Blogs, Agenda, Content

But it requires knowing Liferay really well...

Right?

Create Native Apps backed by Liferay in a fraction of the time

Liferay Screens

Screen UI

Screen Local

How long does it take to build an App?

(Including the backend)

How about 1 minute?

Characteristics

✓Fully functional Screenlets backed by a Liferay server

✓100% themable

✓Compatible with iOS/Android SDKs

✓Open Source

JM

Juan

#LRNAS2014

That's much better. Just for Mobile Phones?

By nepaltibet2005 @flickr

Image credits: control4.com

Will be a $300 billion market by 2020

#LRNAS2014

Perfect!

Bruno

The Web is a better platform than ever before

2

Much better browsers....

... for desktop & mobile

New Standards, Frameworks and techniques

The JavaScript revolution

SPA

New frontend development workflow

Multi-browser test automationResource OptimizationFast dev environment (watch)

Zeno

How can we leverage this within Liferay?

Think beyond Portlets...

Portlets are great.... as widgetsSite Admin

✓ I can add portlets whenever I want

Frontend Developer

x So many limitations

Full Page Apps within a Liferay Site

I own the page!

I'm free!

Standalone Apps backed by Liferay

Independent Web Apps leveraging Liferay

Angular JS ApplicationIntranet for persons with disabilities

Supporting Standalone Apps

Remote APIsHTTP 2.0Web Sockets

Reusable services

Liferay Core JS

SSO • Theming • Permissions

Local APIs

Native mobile OS UI

Native App

Mobile DeviceWearable, IoT

Mobile SDK Client

Eduardo

And developers got all the freedom back :)

v4 to be based on jQuery

WebComponents

To use any frontend tool

"Real Time" Applications

Updates

Server Push & Async Requests

+ Servlet 3.1

Igor Iliyan

These new ways of leveraging Liferay demand an even better platform

Author: Mike Richard / Source: vagabondish.com

Fine grainedModularity and Extensibility

3

Goal 1

Use just the pieces of Liferay you really need

Maintainable & Scalable

Breaking down the monolith

Author: Mike Richard / Source: vagabondish.com

New!

Scale indiv. modules separately.C

Dependencies are declared.A

Uses standard OSGi extension points.B

Only deploy needed modules.F

True hot deployment.D

Breaking the platform and reusable services into OSGi modules yields many benefits

Blogs

Modular Platform

µ µ

µ µ µservicesE

Dependency Management

Import-Package:com.liferay.polls,\com.liferay.blogs,\com.liferay.users

Export-Package:com.liferay.messageboards

MANIFESTCan be autogenerated with bnd

Fixes the class loading hell in a very elegant way

Ray

Miguel

Goal 2

Extensibility built to last

OSGi Extensions

auto.login.hooks=com.liferay.samples.MyAutoLogin

Instead of

@Componentpublic class MyAutoLogin implements AutoLogin {

...}

Use an annotation

Using OSGi Declarative Services

Make any custom class extensible

@Componentpublic class MyMenuClass {

...

@Referencepublic void setMenuRenderer(MenuRenderer mr) {

_menuRenderer = mr;}

}

Using OSGi Declarative Services

Make any custom class extensible

@Componentpublic class MyMenuClass {

...

@Reference(cardinality = ReferenceCardinality.MULTIPLE,policy = ReferencePolicy.DYNAMIC, ...

)public void addMenuItem(MenuItem mi) {

_menuItems.add(mi);}

} Using OSGi Declarative Services

@Componentpublic class MyMenuItem implements MenuItem {

...}

Make any custom class extensible

Audience TargetingA great example

1 Appmade of

30+modules

Highly Extensible

Julio Eduardo Eudaldo

Better ways to develop UI Extensions

Granularity + Maintainability

No more need for JSP overrides!

Carlos

Big focus on APIs and efficient protocols

Semantic VersioningVersion each module independently

Standard to differentiate breaking changes

Automatic compatibility checks

semver.org

✓Dependencies on

specific modules and versions, not a big Liferay version

Goal 3

Work less, do more

Autogenerated conf UIStrongly Typed

You can even define custom types

Autogenerated conf UI

Autogenerated conf UI1. Injected in your service

@Activateprotected void activate(AmazonRankingsConfiguration conf) {

String rankingsId = conf.amazonRankingsId(); ... }

2. Fully dynamicChange the configuration at any time

Draft

API

Ray

Embrace and contribute to best of breed applications instead of building our own

State of the art dev tooling

+

It's a exciting time to be a Liferay Developer

You can reuse your knowledge to do

more than ever before

Mobile Apps/IoTNative, Hybrid, Web, ...

Amazing sites & portalsWhich keep getting better

Innovative Web AppsWith any technology

Liferay Platform More modular and extensible

The Liferay Way

Using state-of-the-art tools

Open Source

Following Standards

Don't stand still while so many new things are

happening

Get involved earlyDevelop Apps with ScreensUse the new dev toolsTry out the Liferay 7 milestones

JM JuanRay

Carlos

Julio Eduardo Eudaldo

Look for these guys!

MiguelBrunoZeno Eduardo

Thanks!

Enjoy

@jorgeferrer

Don't forget to vote!