SATURN 2013 Web and Cloud Architecture Design Session (notes)

Notes by Frank M. Rischner

The Design Space of Modern HTML5/JavaScript Web Applications
Marcin Nowak and Cesare Pautasso, University of Lugano

Whenever we create a web application, we have to decide where the application runs, either on the server side or on the client side. When using HTML5, we push everything but the data to the client.

In the example scenario, the server is treated as the database, and the browser is seen as a terminal. There are several Model View interaction patterns: Model View Controller Pattern, Model View Presenter Pattern, and Model View ViewModel Pattern, which is the most flexible one of the patterns. Most recent movements apply the “Model View *” pattern, which leaves out the controller.

An important issue is the choice of the View template logic. There are two options: templates with embedded logic and logic-less templates.

Another issue is the management of the view state. Here we have three options: none, URL based, and event based. To store the local state, we can use cookies, key-value, SQL (WebSQL), and IndexDB.  Besides the major decisions, we have to decide which frameworks we use and which framework fits the best to our application. In order to work around the limitations of HTTP, we choose our event-delivery method, which can be polling, COMET, HTML5 WebSockets, or SPDY. Last, but not least, we have to choose our programming language. To achieve modularity, we choose our framework, which can be none, RequireJS, Marionette, or Browserify. To detect the browser, we can use Modernizr or the http user string.

The conclusion is that there are a lot of frameworks and alternatives to choose from. Nowak and Pautasso have created a website to help make decisions about the choices.

Using ATAM to Select the Right NoSQL Database
Dan McCreary, Kelly-McCreary & Associates

McCreary is an object-orientated developer who spends a lot of time in object relational mapping.

XForms transforms the data in XML format into a web formula.  By using a native XML database, we can save the whole web form with one line of code. This means a zero translation, where the middle tier disappears. Changing the model saved thousands of lines of code, SQL statements, and more. The agility of the application went up 1000 times.

There are many ways to store enterprise data, not only RDBMS. We “just” have to pick the right one to match our needs. To make the decision, we can use the Architectural Trade-off Analysis Method (ATAM), which is an objective way to help us to pick the right database.

The NoSQL trend really started in 2009. Since the start of the NoSQL movement, we have six database storage models: relational, analytical, key-value, column-family, graph, and document. All of them are described in McCreary’s book Making Sense of NoSQL .  We have to stop thinking one-dimensionally; there is no solution that fits all problems. One big problem is that there are no standards in NoSQL.

As a conclusion, McCreary mentions that we need solution architects who are trained in picking the right database and who know the pros and cons of them. The one-size-fits-all approach does not work anymore.

Next-Gen Web Architecture for the Cloud Era
Darryl Nelson, Raytheon

Nelson talks about the changes in web application architecture that are currently happening. The focus is on visualization and enterprise architecture. Today the dominating technique is web templating engines. As mentioned in Nowak and Pautasso’s presentation, MVC is dominating. In order to change the content dynamically, AJAX is used.

Every web application has three processes: download of the application, presentation flows, and data interchange. There is a tight coupling between the presentation flow and the data interchange, but they should be decoupled. Most current web applications use MVC, web templating, and a little bit of AJAX.

Service-oriented architectures are required for using the cloud. What is SOFEA? SOFEA stands for Service-Orientated Front-End Architecture. It is necessary because of the growing number of mobile devices and the diversity of the clients. With SOFEA, the presentation flow is now only on one tier. Usually we have a download server, which provides the whole application for download, and after this process the browser then connects to web services. The MVC pattern belongs on the client side.

The benefits of SOFEA are scalability, a higher return of investment for each line of code, better use response, offline applications, interoperability, and an organized programming model. Typically, the application connects to a restful web service.

The lessons learned are that the web client is a number one priority, not an afterthought. We should use a mature client-side framework. The operations should be asynchronous. The cross-browser compatibility testing should be started early in the development cycle. SOFEA is an excellent choice for bandwidth considerations.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s