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

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

Jul 14, 2015

Download

Software

Jorge Ferrer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Liferay DevCon 2014: Lliferay Platform - A new and exciting vision

Liferay Platform

Vice President Engineering

A new and exciting visionJorge Ferrer

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

Liferay's goal is not be well positioned but to

add value?

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

How can a portal platform provide the

most value today?

And in the future?

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

A year of great innovation for Liferay

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

Three trends for a new vision

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

Image Credit & Copyright: Brandon Goforth

1Mobile development has been a hurricane of innovation

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

By tuttletree @flickr

When was the last time you did this?

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

By pedromourapinheiro @flickr

How are these apps being built?

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

Image credits: myshadesofgray.wordpress.com

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

How about the backend?

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

Hmm, anyone knows Java?

Ruby on Rails?Django?

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

Don't let the backend be an after thought!

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

Developing the backend of a mobile App

from scratch is rarely a good option

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

Do you really want to implement user

management once again?

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

How about...

?File storage

Localized content

Social Meta-Data

SearchComments

Tagging Categorization

Authentication

Workflow

Relationships

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

µ µµ µ

Reusable Services

Liferay offers many reusable services for building Apps

IdentityUser ManagementPermissionsContent ManagementDocument ManagementDynamic Forms...

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

Some of you are already doing this

Forums App Blog reader Blogs, Agenda, Content

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

But it requires knowing Liferay really well...

Right?

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

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

Liferay Screens

Screen UI

Screen Local

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

How long does it take to build an App?

(Including the backend)

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

How about 1 minute?

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

Characteristics

✓Fully functional Screenlets backed by a Liferay server

✓100% themable

✓Compatible with iOS/Android SDKs

✓Open Source

JM

Juan

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

#LRNAS2014

That's much better. Just for Mobile Phones?

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

By nepaltibet2005 @flickr

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

Image credits: control4.com

Will be a $300 billion market by 2020

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

#LRNAS2014

Perfect!

Bruno

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

The Web is a better platform than ever before

2

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

Much better browsers....

... for desktop & mobile

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

New Standards, Frameworks and techniques

The JavaScript revolution

SPA

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

New frontend development workflow

Multi-browser test automationResource OptimizationFast dev environment (watch)

Zeno

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

How can we leverage this within Liferay?

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

Think beyond Portlets...

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

Portlets are great.... as widgetsSite Admin

✓ I can add portlets whenever I want

Frontend Developer

x So many limitations

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

Full Page Apps within a Liferay Site

I own the page!

I'm free!

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

Standalone Apps backed by Liferay

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

Independent Web Apps leveraging Liferay

Angular JS ApplicationIntranet for persons with disabilities

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

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

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

And developers got all the freedom back :)

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

v4 to be based on jQuery

WebComponents

To use any frontend tool

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

"Real Time" Applications

Updates

Server Push & Async Requests

+ Servlet 3.1

Igor Iliyan

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

These new ways of leveraging Liferay demand an even better platform

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

Author: Mike Richard / Source: vagabondish.com

Fine grainedModularity and Extensibility

3

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

Goal 1

Use just the pieces of Liferay you really need

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

Maintainable & Scalable

Breaking down the monolith

Author: Mike Richard / Source: vagabondish.com

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

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

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

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

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

Goal 2

Extensibility built to last

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

OSGi Extensions

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

Instead of

@Componentpublic class MyAutoLogin implements AutoLogin {

...}

Use an annotation

Using OSGi Declarative Services

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

Make any custom class extensible

@Componentpublic class MyMenuClass {

...

@Referencepublic void setMenuRenderer(MenuRenderer mr) {

_menuRenderer = mr;}

}

Using OSGi Declarative Services

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

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

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

@Componentpublic class MyMenuItem implements MenuItem {

...}

Make any custom class extensible

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

Audience TargetingA great example

1 Appmade of

30+modules

Highly Extensible

Julio Eduardo Eudaldo

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

Better ways to develop UI Extensions

Granularity + Maintainability

No more need for JSP overrides!

Carlos

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

Big focus on APIs and efficient protocols

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

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

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

Goal 3

Work less, do more

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

Autogenerated conf UIStrongly Typed

You can even define custom types

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

Autogenerated conf UI

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

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

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

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

State of the art dev tooling

+

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

It's a exciting time to be a Liferay Developer

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

You can reuse your knowledge to do

more than ever before

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

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

Amazing sites & portalsWhich keep getting better

Innovative Web AppsWith any technology

Liferay Platform More modular and extensible

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

The Liferay Way

Using state-of-the-art tools

Open Source

Following Standards

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

Don't stand still while so many new things are

happening

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

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

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

JM JuanRay

Carlos

Julio Eduardo Eudaldo

Look for these guys!

MiguelBrunoZeno Eduardo

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

Thanks!

Enjoy

@jorgeferrer

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

Don't forget to vote!