Presentation given by Jeff Haynie at the SD Forum Java SIG in Palo Alto, CA on 12/02/2008. 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.
SD Forum Java SIG - Service Oriented UI Architecture
1. 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
2.
3. How the web has gone beyond the browser and we’re headed back to Client/Server
4. Compared even to the development of the phone or TV, the Web developed very quickly. Sir Tim Berners-Lee Inventor, World Wide Web
5. 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
7. Web content has been controlled by web servers Java has become the de-facto Enterprise platform (.NET is pretty compelling too)
8. 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
9. 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
10. 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
16. 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
20. Web 2.0 (accidently) introduced separation of concerns Services were designed to be separated Mashups allowed consumption and production Clients independently developed from backend
21. We call this Web 2.0 Facebook Flickr Google Maps Twitter
25. 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
26. It’s the application stupid. Services are important. The “platform” Services should be lightweight Applications control services
27. 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
28. 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
35. We have no choice anymore about applications and services
36. The web has become the ultimate application platform Flexibility of distribution Available of technologies and collaboration Global marketplace and workplace
37. SOUI attributes Separation of application from services Rapid prototyping of application without backend No throwaway code Ability to iterate with different constituents
38. SOUI is about the application User experience through usability
39.
40. 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
41. SOUI enables Interactive Use Cases User-driven development through use cases Technology enabled Agile Because functional requirements suck
42. If I had asked my customers what they wanted, they would have told me ‘a faster horse‘. Henry Ford
43. 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
44. Where are SOUI principles applied? Lots of Web 2.0 applications Adobe Flex and Flash Microsoft Silverlight
45. SOUI architecture Client is the application and controls state, logic Services are stateless Services provide well-known API
46. Appcelerator is a SOUI architecture SDK provides building client-applications Services tier cleanly separated 7 major programming languages, major frameworks
47. Appcelerator Java support Java support out of the box Rapid service prototyping with Jetty Clean, simple development Java 5 annotation, POJO driven
48. Appcelerator for building client Declarative AJAX, Web Expression Language Integrated services Message Oriented
56. Appcelerator Services are lightweight Simple annotation style POJO development Works well with other frameworks like Spring Makes no assumptions about backend
61. Applications are moving beyond the browser Rich desktop applications are going mainstream Same development model with SOUI Same tools, services, skills
63. Rich Desktop applications Support for Win32, OSX and Linux Web technologies to build rich desktop apps Javascript API for desktop, file, network, menus, custom windows, etc.
64. Appcelerator is cross platform, cross browser Mac OSX, Win32, Linux Modern browsers: IE6/7, FF, Safari, Chrome, Opera Mobile browsers: iPhone, Android, Skyfire *
65. Appcelerator is open source Apache Public License Active Developer Community Hosted on GitHub http://community.appcelerator.org
67. Download Appcelerator today Let’s us know if you’d like to get involved IRC #appcelerator on freenode Twitter @appcelerator http://getappcelerator.com