conquering content-enabled web and mobile applications with spring and groovy

64
© 2014 SpringOne 2GX. All rights reserved. Do not distribute without permission. Conquering Content-enabled Web and Mobile Applications with Spring and Groovy By Russ Danner, Crafter Software

Upload: spring-io

Post on 14-Jun-2015

295 views

Category:

Software


1 download

DESCRIPTION

Speaker: Russ Danner - Crafter Software Rich media and digital content are an integral part of nearly all Web and mobile applications today, but the growing number of platforms, changing business demands and time to market are a major concern. Join this session to learn modern practices for building content-enabled Web and mobile apps. We will uncover common challenges faced by content and application teams, explain how these problems are solved by simple, powerful tools and the right architecture. We'll also demonstrate how leading organizations such as AT&T, Marriott, and Harvard Business Publishing have succeeded by leveraging Spring Framework, Groovy and other leading Java development technologies along with content management frameworks to build and manage content rich applications.

TRANSCRIPT

Page 1: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

© 2014 SpringOne 2GX. All rights reserved. Do not distribute without permission.

Conquering Content-enabled

Web and Mobile Applications

with Spring and Groovy

By Russ Danner, Crafter Software

Page 2: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Crafter App CMS

Page 3: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Open standards

No vendor lock-in

GPL v3 license

All code on Github

Open community

Open wiki / documentation

Open issue tracking

Page 4: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Some Companies Building Apps with Crafter…

Page 5: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Agenda

• Content and Our Applications

• What are the Challenges?

• Best Practices

• A Platform and Solution

• Code an Example Live!

Page 6: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

What are We Going to Build?

• It’s going to be a simple Game of Memory

Page 7: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

What are We Going to Build?

• Be able to deploy new “games”/cards at any time

• Write names and scores to MongoDB

• Read sorted scores to create a leader board

Page 8: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

How we’re going to build it

• Modern front end tools: Angular JS

• Spring and Crafter as the foundation on the server

• Groovy to create services, controllers and libraries

Page 9: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

The Claim…

To Download: www.craftercms.org

Page 10: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

To Download: www.craftercms.org

How Important is Content in

Our Apps?

Page 11: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

What do we see out in the real world?

Page 12: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Social Apps, Photo and Video Sharing

Page 13: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Communication Apps: Chat and Email

Page 14: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Human Machine Control Interfaces

Page 15: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Banking and Finance

Page 16: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Travel

Page 17: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Games

Page 18: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Corporate Portals

Page 19: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Websites

Page 20: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Kiosks

Page 21: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Almost EVERY App has Content!

Page 22: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Usually More than One Kind of Content

Core Content

User Generated Content

Marketing Content

3rd Party Content

Page 23: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Today Most Apps are Multi-Channel

Page 24: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

More Important than Every Before to Contextualize

Page 25: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

25

For the Right Person

Page 26: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

26

In the Right Place

Page 27: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

27

At the Right Time

Page 28: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

And We Face Some Challenges…

Page 29: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Application

Development

Challenges

Page 30: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Development is TOO SLOW!

Page 31: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Backend Scalablity is Hard!

Page 32: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Releases are Difficult!

Page 33: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Content

Challenges

Page 34: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Developers and Content Authors are VERY Different

Page 35: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Developers and Content Authors are VERY Different

Page 36: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Simple Architecture Mistakes Make Updating Content

a Huge Problem

Page 37: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Contextualization Often Stays in the Feature Backlog

Page 38: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

So What Can We Do About It?

Page 39: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Solutions

Architecture

Best Practices

Page 40: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Best Practices

Page 41: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Understand the Needs

Page 42: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Do You Need a Native App?

Page 43: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Timeline Varies Greatly with Approach

Page 44: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

[Use] Cases

Context

Content

Page 45: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

The Right Technologies in the Right Layers

Page 46: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Leverage Scripting!

Raw Power Ease, Flexibility

Page 47: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Push Logic Down

FrameworkAll of the business logic and

intellegence

Persistence Tier

Application Tier

REST

Native Client

Client Tier

Web Client

Page 48: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Scalability is a Function of Architcture

Page 49: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy
Page 50: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Persistence

Business Logic

Presentation

Code

Content

Delivery

Authoring

Page 51: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Ok Great So Let’s Talk Solutions

Page 52: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

FrameworkAll of the business logic and

intellegence

Persistence Tier

Application Tier

REST

Native Client

Client Tier

Web Client

Externalized

Content

Reference Architecture

Page 53: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Building for Performance

FrameworkAll of the business logic and

intellegence

Persistence Tier

Application Tier

REST

Native Client

Client Tier

Web Client

Page 54: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Make it Developer Friendly

All of the business logic and

intelligence

Persistence Tier

Application Tier

REST

Native Client

Client Tier

Web Client

Page 55: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Make it Fast to Build and Deploy

Core Logic

Persistence Tier

Application Tier

REST

Native Client

Client Tier

Web Client

Malleable Rules

Aggregate Services

Presentation Support

Document Oriented!

Page 56: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Scripting User Interfaces

Page 57: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Scripting RESTful API(s)

Page 58: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Creating and Delivering Content

Core Logic

Persistence Tier

Application Tier

REST

Native Client

Client Tier

Web Client

Malleable Rules

Aggregate Services

Presentation Support

Document Oriented!

Externalized

Content

Page 59: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Actors

CONTENT

Feature

and Content

Consumers

Developers Content

Creators

Page 60: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

It’s Already Here

Authoring Tools

Content Authors / Managers

Delivery

Publish

Developers

Developer Tools

IDEs

Testing Frameworks

Source Control etc

Users

To Download: www.craftercms.org

Page 61: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Satisfy All the Actors Needs

Authoring Tools

Content Authors / Managers

Delivery

Publish

Developers

Developer Tools

IDEs

Testing Frameworks

Source Control etc

Preview

In-context Editing / WYSIWYG

Workflow

Publishing

Multi Channel

High Performance

Scalable UsersContent

Page 62: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

DEMO

Page 63: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Key Points The right platform for the use case make development fast And content authoring easy and independent.

Separate the concerns. Authoring, Delivery, Code, Content.

Externalize content and scripting for quick development and deployment

Out of the box integration with rich content authoring tools

Spring, Groovy & Crafter for content oriented, multi-channel applications

Page 64: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy

Learn More. Stay Connected.

Download @ craftercms.org

Documentation @ wiki.craftercms.org

blog.craftercms.org

Additional Resources & Support @ craftersoftware.com

Twitter: twitter.com/craftercms

email: [email protected]

email: [email protected]