conquering content-enabled web and mobile applications with spring and groovy
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/1.jpg)
© 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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/2.jpg)
Crafter App CMS
![Page 3: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/4.jpg)
Some Companies Building Apps with Crafter…
![Page 5: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/9.jpg)
The Claim…
To Download: www.craftercms.org
![Page 10: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/11.jpg)
What do we see out in the real world?
![Page 12: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/12.jpg)
Social Apps, Photo and Video Sharing
![Page 13: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/13.jpg)
Communication Apps: Chat and Email
![Page 14: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/14.jpg)
Human Machine Control Interfaces
![Page 15: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/15.jpg)
Banking and Finance
![Page 16: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/16.jpg)
Travel
![Page 17: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/17.jpg)
Games
![Page 18: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/18.jpg)
Corporate Portals
![Page 19: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/19.jpg)
Websites
![Page 20: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/20.jpg)
Kiosks
![Page 21: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/21.jpg)
Almost EVERY App has Content!
![Page 22: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/23.jpg)
Today Most Apps are Multi-Channel
![Page 24: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/24.jpg)
More Important than Every Before to Contextualize
![Page 25: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/25.jpg)
25
For the Right Person
![Page 26: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/26.jpg)
26
In the Right Place
![Page 27: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/27.jpg)
27
At the Right Time
![Page 28: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/28.jpg)
And We Face Some Challenges…
![Page 29: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/29.jpg)
Application
Development
Challenges
![Page 30: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/30.jpg)
Development is TOO SLOW!
![Page 31: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/31.jpg)
Backend Scalablity is Hard!
![Page 32: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/32.jpg)
Releases are Difficult!
![Page 33: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/33.jpg)
Content
Challenges
![Page 34: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/34.jpg)
Developers and Content Authors are VERY Different
![Page 35: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/35.jpg)
Developers and Content Authors are VERY Different
![Page 36: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/36.jpg)
Simple Architecture Mistakes Make Updating Content
a Huge Problem
![Page 37: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/37.jpg)
Contextualization Often Stays in the Feature Backlog
![Page 38: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/38.jpg)
So What Can We Do About It?
![Page 39: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/39.jpg)
Solutions
Architecture
Best Practices
![Page 40: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/40.jpg)
Best Practices
![Page 41: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/41.jpg)
Understand the Needs
![Page 42: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/42.jpg)
Do You Need a Native App?
![Page 43: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/43.jpg)
Timeline Varies Greatly with Approach
![Page 44: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/44.jpg)
[Use] Cases
Context
Content
![Page 45: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/45.jpg)
The Right Technologies in the Right Layers
![Page 46: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/46.jpg)
Leverage Scripting!
Raw Power Ease, Flexibility
![Page 47: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/48.jpg)
Scalability is a Function of Architcture
![Page 49: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/49.jpg)
![Page 50: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/50.jpg)
Persistence
Business Logic
Presentation
Code
Content
Delivery
Authoring
![Page 51: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/51.jpg)
Ok Great So Let’s Talk Solutions
![Page 52: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/56.jpg)
Scripting User Interfaces
![Page 57: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/57.jpg)
Scripting RESTful API(s)
![Page 58: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/59.jpg)
Actors
CONTENT
Feature
and Content
Consumers
Developers Content
Creators
![Page 60: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/62.jpg)
DEMO
![Page 63: Conquering Content-Enabled Web and Mobile Applications with Spring and Groovy](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042512/557d5eccd8b42ae1438b4e87/html5/thumbnails/64.jpg)
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]