Symphonic Architecture

I have an idea for an alternative web architecture I'm calling "symphonic". Picked that because I was lucky enough to catch NigelKennedy? and the Sydney Symphony Orchestra play Vivaldi/Bach last night and realized what the BpMs people call "orchestrations" are anything but.

Inspired by the soaring example in front of me I conceived a SymphonicArchitecture for web apps. I'd already been wondering about ruby continuations for workflow, then thought of using ServerPush? on the front for session management, then conceived of continuations as subscribers in a MultiCaster ...

But why not just REST? Well, RestArchitecturalStyle sucks. It's dictated by assumptions that never really held:

What's SymphonicArchitecture?

It's a web app architecture in which opportunistic client connections managed as continuations maintain session state, a variant of MultiCaster reflects application state, and P2P techniques provide for scalability. The motivation for the architecture is to rich-client web apps that are simple to read and refactor, simple to modify and extend via OOP, and which scale much better than 3-tier enterprise architectures without the hardware provisioning those require.

How could that work?

Let's look at some precursors. Beginning with SeasideFramework and RubyOnRails. SeasideFramework is very cool. So is Rails, but it can't match SeasideFramework for maintainability on account of Ruby continuations aren't serializable. And SeasideFramework doesn't scale on account of continuations are too memory hungry in the server. But then ... why keep the continuations in the server?

So we can store them and maintain session state over multiple client requests.

Why store them in the server? They're represented by cookies and xml in the client - no reason to persist anything session oriented except its results as they are important to the person running the server. If there are any such results ... hence AjaxSmalltalk or similar.

Why MultiCaster?

How can you avoid the hardware provisioning?

The purpose of a server is to reflect client state for multiple interacting clients. Well now we just need to get the clients talking directly to one another and only use the server for transaction service, persistence, and name services.

Where can I find an implementation of this supposed architecture?

Nowhere, yet. Symphony in Red was an idea about it. But now that handsome young man in the red hood and cape has tossed a few more spanners in the works and is rebranding it WebThreePointZero or some such nonsense, a SmalltalkLanguage extravaganza. Different architecture, same intent. Oh the humanity!


CategoryWebThreePointZero


EditText of this page (last edited March 29, 2013) or FindPage with title or text search