SOA & Web 2.0 MVC — Part 1

Published On February 3, 2009 | By mbalogh | Blog

I’ve been picking at the Web 2.0 buffet for a while so now that I’m getting into Service Oriented Architectures (SOA) I’m really starting to see the connections. Web 2.0 really lends itself nicely to services in the online application world. I’ve started to put together a presentation for exactly how and why this works, but for now I thought I’d share some of my preliminary ideas with the world. As always, your feedback is welcome.

For those of you not familiar with SOA, SOA separates functions into distinct units of functionality, or services. The goal of SOA is to allow services to be strung together to form applications. That sounds a lot like a mash-up to me. No one said mash-ups have to use other people software. In the “real world” where production websites are pounded out by code monkeys mash-ups, or services, make a lot of sense. Think of the benefits:

  • The marginal cost of the n-th application approaches zero
  • Shortened product development life-cycle
    • Increasingly less development time
    • Increasingly less QA time
    • Increasingly better applications
  • Scalability
    • Cloud computing and the ability to offload high-impact services
  • Architecture for reuse
    • Lower level engineers can accomplish higher level tasks
    • Higher level engineers can concentrate on business level problems

In order to successfully implement Web 2.0 solutions in a large scale SOA development environment it helps to have a framework. The Model View Controller framework was invented in the late 1970’s. For the most part I’ve only seen it used in more object-oriented settings, but with the big AJAX push of the past few years I’ve seen a resurgence of loosely framed MVC models. With the more recent use of JSON and prototype.js we’ve been able to push this into a slightly tighter version of the MVC since object-oriented javascript has gotten a lot easier and inheritance can now play a key role which squashes historic issues like global var duplicate naming issues of the javascript pasts (how many people can possibly name their vars “count” or “i”?). In Part 2 of this post I plan to get into a bit more detail of the implementation, but for now I’m just ironing out the framework architecture.

  • Model
    • Services
    • Business Logic
  • View
    • HTML
    • CSS
    • JavaScript (that updates the view)
  • Controller
    • Java, Perl, .Net, backend stuff….
    • JavaScript (that supports the business logic)

Here’s a graphical representation of the SOA & Web 2.0 MVC:

SOA & Web 2.0 MVC

Like this Article? Share it!

About The Author

Leave a Reply

Your email address will not be published. Required fields are marked *