RWX / CDX - November 27 - 30, 2012 - No Fluff Just Stuff

A Platform for building RIAs using Domain Specific Languages

RWX / CDX

Fort Lauderdale · November 27 - 30, 2012

You are viewing details from a past event

About this Presentation

As web applications evolve and the use of widget toolkits proliferate, the problems of designing and building scalable front ends has become more and more involved. Today, a web application is a complex blend of scaffolding, business logic and embedded content – and this can be a challenge (some might say a nightmare), to develop, debug and evolve – even in the best of times.

There are many solutions to this problem. Some folks use the MVC pattern, others use app building tools and many use server-side solutions. The approach being proposed here is based on Domain Driven Design: it consists of a Platform which uses DSLs and a layered architecture to build and deploy web applications. The platform is composed of services that create and maintain the DSLs as well as handle all user requests, layout generation, customization, content authoring, data persistence, B-to-B interactions and native business flows.

By having a DSL which sits above widgets and the DOM, the platform can use widgets to “generate and maintain” the DOM. This provides a far more robust and flexible means for building web applications. Also – DSL based web platforms are far more adaptive and lend themselves more easily to change. In this platform everything is loosely coupled: layout's can be changed, content can be attached or detached, and services can be “plugged-in” as needed. Even the backend web application server with it's data store can be replaced with a users preferred server and it's data store.

This presentation will demonstrate an RIA platform with its UI and service backend, including an example of a B-to-B interaction with Etsy – an ecommerce application. The takeaways from this presentation are:

A Demo of an application being built from the ground up together with it's interaction with a remote
business service - Etsy.
A Domain Model for a Web Application and it's components.
Continuous Application Refactoring.
A Layered Architecture for the Front End including:
Handlers, Modelers, Builders,
Managers, Services, Events.

John Brinnand

Lead Architect @ Netflix

I am currently working at Netflix as a Lead Architect where I build applications which are deployed in the cloud. I have also worked at eBay as an Application Architect designing applications at scale and at Sun where I helped build a TMN platform used by high-end mobile vendors such as Motorola, Siemens, Qualcomm, etc. My passion is building systems and over my 20+ years in Software development, I have built many systems for many companies both large and small.

I consider myself a pragmatic software architect – someone who finds that adaptive design appears in the friction between ideas and implementation, vision and application, or as the Chinese say – “between the Thunder and the Rain”. There are several types of systems, and each of them requires structural design, model design, and process-design. Consequently I use design patterns, TDD, the cloud and Agile methodologies as the means to design, develop and deploy software.

I believe that building software is as much art as it is science and I find that every good idea creates it's own weather and this is what makes software development a continuous process of discovery and fun.