The JavaScript blog.

AuthorJustin Knowlden

JSON methodologies

What happened to SOFEA/SOUI?

Posted on .

The concept of SOFEA (Service-Oriented Front-End Architecture), outlined
in Life Above the Service Tier
, is not new, but it is an important concept. If SOFEA is new to you, the
principles of it are as follows:

  • SOFEA is a metamodel for applications that are thick or thin
  • Download, presentation and data interchange are decoupled
  • Presentation flow and state are managed by the client
  • The presentation tier must feature data structures that are as rich as the server
  • Model View Controller is a good pattern for the interface

SOFEA's doppelgänger is known as
SOUI (Service Oriented User Interface). It's common to see both terms listed together and the
reason is that both were defined at roughly the same period of time,
though Ganesh Prasad argued there was a difference in SOFEA and SOUI -
There is a Difference, After

(also see SOFEA: Also known as SOUI). Both
essentially want the same thing -- to make services act more like
services regardless of the consumer.

The differences between the two proposals are not all that important.
What I took away from my initial encounter with the general approach is
that of responsibility. At that time, I had a growing internal conflict
with asking the application server (Rails, Django, etc.) to also concern
itself with generating everything necessary for presenting business

SOFEA/SOUI gave a name to my "psychosis" and suggested an alternative

  1. Worry about how to present the information in the actual client
  2. Talk to the application server by sending and receiving only the
    essential nuggets of information.

JavaScript has a large part to play in realising applications built with
this architecture. Frameworks like Sammy and
Jaml are a step along this path. We owe it to ourselves to try and push this technology
forward and to ease the burdens of our passions, allowing us more time
to focus on the things that are more important; or at least those that
are more interesting.


libraries firebug google

Google Opens Closure

Posted on .

Today, Google introduced a suite of JavaScript tools they are calling
Closure. As Google explains, Closure is derived from tools started as 20%
projects and which have gone on to be used in many of their popular
applications: Gmail, Google Docs, and Google Maps to name a few. Closure
itself is currently composed of three main tools:

  • Closure Compiler - for compiling and optimizing your JavaScript
  • Closure Library - Google's library of UI widgets, controls, DOM manipulators, network communicators, and unit testing helpers
  • Closure Templates - a client and server-side content templating system

It's nice that they have decided to open these tools up. I like the idea
of compiling my JavaScript into an even smaller deliverable for my
users. I know it's not readable, but neither is minified JavaScript if
you think about it and Google is providing a Firebug extension called
Inspector (inappropriately named) which will let me see code compiled with Closure. I think I can live with that. I do, however, think they've made
a bad choice in terms of naming the tool - particularly because I
thought this would be a tool for functional programming.


webkit inspector

Webkit Inspector Updates

Posted on .

The Inspector for WebKit has recently been
updated and it looks like they're really committed to making it a useful tool for
developers. They've even added their own event

utility akin to that offered by Eventbug.

Of course, you'll have to install the latest nightly
of WebKit if you want to play around
with it today.

Webkit event listeners