service oriented ui architecture in the world of web, desktop, & mobile applications

66
Service Oriented UI Architecture in the world of web, desktop and mobile applications How the web has gone beyond the browser and we’re headed back to Client/Server Jeff Haynie

Upload: appcelerator-inc

Post on 11-May-2015

1.795 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Service Oriented UI Architecture in the world of web, desktop and mobile applications

How the web has gone beyond the browser and we’re headed back to Client/Server Jeff Haynie

Page 2: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

JEFF HAYNIE

CEO, AppceleratorOpen Source Developer

Twitter: jhaynieBlog: blog.jeffhaynie.us

Page 3: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

How the web has gone beyond the browser and we’re headed back to Client/Server

Page 4: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Compared even to the development of the phone or TV, the Web developed very quickly.

Sir Tim Berners-LeeInventor, World Wide Web

Page 5: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The web was built for information retrieval

URLs are for identification

Search engines are for location of content

Web sites help us produce & consume content

Page 6: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Search is king

Page 7: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Web content has been controlled by web servers

Java has become the de-facto Enterprise platform

(.NET is pretty compelling too)

Page 8: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We have turned our web servers into application platforms

We want more interactivity with our users

Content is dynamic

Our apps use MVC on the server side

Page 9: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Our infrastructure is optimized for applications to be controlled by the server

We call this “server-assisted” MVC

Each page request is dynamically generated

Sessions are maintained on the server

Client is response for display and input

Page 10: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We couple our application and service logic

We try not to do it, but it still happens

Levels of indirection to make it less painful

Mix metaphors and cross concerns

Page 11: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Server-side programming has become too complex

(and it doesn’t have to be)

Page 12: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Great for the tech book publishers

We have one, too!

Page 13: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

J2EE hearts XML

Page 14: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Applications are distinctly different than services

Different use cases

Different technologies

Different skill sets

Page 15: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The Browser has been our modern dumb terminal

Page 16: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Applications today are coupled at the server tier

Still same development effort

Web services in enterprise suffer the same fate

Rapid iteration difficult, if not impossible

Page 17: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Web 2.0

Remix the web with services

Page 18: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We’ve started thinking about platforms that provide services

Page 19: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Services are separate from applications

Page 20: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Web 2.0 (accidently) introduced separation of concerns

Services were designed to be separated

Mashups allowed consumption and production

Clients independently developed from backend

Page 21: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We call this Web 2.0

Facebook

Flickr

Google Maps

Twitter

Page 22: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

SocialCommunitesSharingRSS

Blogging

Microformats

Social bookmarking

Tagging

Page 23: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Web 2.0 is the divorce of services from applications.

The Applications are back in control

Applications can be built with no backend of their own

Page 24: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We’re going back in time

Page 25: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We call this Service Oriented UI

Services are distinctly separated from the UI

No assumptions need to be made about the UI

UI can consume different, varied services

Page 26: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

It’s the application stupid.

Services are important. The “platform”

Services should be lightweight

Applications control services

Page 27: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We used to call this Client / Server.

The web is a client server architecture

We lost our way along the way

Things became tightly coupled

Page 28: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The web is becoming more than a website

The “web” can describe any number of ways of consuming and producing bits, on any number of devices, at multiple locations

Page 29: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We’re going into new territory

Page 30: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Phone is no longer a “phone”

Page 31: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The Web is in our back pocket

Page 32: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The Web is in our living room

Page 33: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The Web is in your PC bios

Page 34: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Web is coming (in) to a desktop near you

Page 35: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

We have no choice anymore about applications and services

Page 36: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

The web has become the ultimate application platform

Flexibility of distribution

Available of technologies and collaboration

Global marketplace and workplace

Page 37: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

SOUI attributes

Separation of application from services

Rapid prototyping of application without backend

No throwaway code

Ability to iterate with different constituents

Page 38: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

SOUI is about the applicationUser experience through usability

Page 39: Service Oriented UI Architecture in the world of web, desktop, & mobile applications
Page 40: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Current model of development is tightly coupled

Each phase has impact on both sides

Server dominates UI

Dev cycle is elongated because of server-side

Page 41: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

SOUI enables Interactive Use Cases

User-driven development through use cases

Technology enabled Agile

Because functional requirements suck

Page 42: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

If I had asked my customers what they wanted, they would have told me ‘a faster horse‘.

Henry Ford

Page 43: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

IUCs fulfillment of agile dev

Client application can be fully developed with little to no backend

Fast iteration of front-end application

Mock-out of backend-services

Page 44: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Where are SOUI principles applied?

Lots of Web 2.0 applications

Adobe Flex and Flash

Microsoft Silverlight

Page 45: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

SOUI architecture

Client is the application and controls state, logic

Services are stateless

Services provide well-known API

Page 46: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator is a SOUI architecture

SDK provides building client-applications

Services tier cleanly separated

7 major programming languages, major frameworks

Page 47: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator Java support

Java support out of the box

Rapid service prototyping with Jetty

Clean, simple development

Java 5 annotation, POJO driven

Page 48: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator for building client

Declarative AJAX, Web Expression Language

Integrated services

Message Oriented

Page 49: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator cleanly separates

Page 50: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator Web SDK

Web Expression Language - DSL

Message Broker

Unified UI Widgets

on [event] then [action]

Page 51: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator ServicesIntentionally thin

Page 52: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

ApplicationApplication Web ServerWeb ServerHTTP

Application makes request for files

ApplicationApplication Web ServerWeb ServerHTTP

Web server returns static files

Page 53: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Application PageApplication Page

Application “compiles” page

ElementsElements WidgetsWidgets ScriptsScripts

Message BrokerMessage Broker

ServicesServices

ServicesServices

ServicesServices

Page 54: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

AJAXAsynchronous Javascript

Page 55: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator client example

Page 56: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator Services are lightweight

Simple annotation style POJO development

Works well with other frameworks like Spring

Makes no assumptions about backend

Page 57: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator Services example

Page 58: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator Java EE

Deployable to any Java EE app server, OSGI

Integration with Jetty for development

POJO auto mapping for services

Page 59: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Web 3.0

Page 60: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

ReuseRemixRefactor

Page 61: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Applications are moving beyond the browser

Rich desktop applications are going mainstream

Same development model with SOUI

Same tools, services, skills

Page 62: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator is cross platform, cross browser

Mac OSX, Win32, Linux

Modern browsers: IE6/7, FF, Safari, Chrome, Opera

Mobile browsers: iPhone, Android, Skyfire *

Page 63: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Appcelerator is open source

Apache Public License

Active Developer Community

Hosted on GitHub

http://community.appcelerator.org

Page 64: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Early access

Available today on Manning website

In print in Spring

Page 65: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Download Appcelerator today

Let’s us know if you’d like to get involved

IRC #appcelerator on freenode

Twitter @appcelerator

http://getappcelerator.com

Page 66: Service Oriented UI Architecture in the world of web, desktop, & mobile applications

Flickr Photo Shoutouts• http://flickr.com/shutterhack• http://flickr.com/psd• http://flickr.com/cayusa• http://flickr.com/sigalakos• http://flickr.com/two-wrongs• http://flickr.com/chavals• http://flickr.com/stewf• http://flickr.com/actiondatsun• http://flickr.com/tyrussmalley

• http://flickr.com/clompers• http://flickr.com/trucolorsfly• http://flickr.com/markknol• http://flickr.com/dan_h• http://flickr.com/cvanfleteren• http://flickr.com/stevenerat• http://flickr.com/carrierdetect• http://flickr.com/jazzmasterson• http://flickr.com/re-ality• http://flickr.com/bluesmuse• http://flickr.com/niallkennedy