views:

26

answers:

1

Hi all:

My usual way of working on web development is to split the project into three tiers, which are:

  1. Data Tier - Accessing Relational Database of all sorts, based on requirements
  2. Server Tier - providing services to client-side controller calls.
  3. Client Tier - Rendering the view as well as loading the controller javascript.

Basically from my understanding, this approach is of a MVC nature, that is, the controller javascript calls the model on server-side and expects the results from there. Once results received, controller then invoke proper rendering methods to modify the view, which is the XHTML/CSS on browser to display.

However, I am not sure of this can also be called SOA(Service Oriented Architecture)?

I can swap the server-side language easily to another one, by only changing the data access module since the communication between server and client is done via JSON. I reckon this means a loose coupling between server and client, as server only focuses on providing services. Web Services via SOAP can also be introduced, but I feel like JSON more since it is easier to implement based on my knowledge.

Any thoughts?

+1  A: 

MVC is a presentation pattern, and really has nothing to do with SOA.

The model in MVC these days and especially in Web development has come to mean View Model, your real model or domain model is in your BLL or wrapped up behind a service layer.

SOA boils down to the paradigm you use design, partition and host your business logic.

Can you use the two together?, sure you can! Your MVC controller can invoke service endpoints which query the domain model, this can occur as SOAP, plain XML, or as you prefer JSON, the choice of protocol does not a SOA make. A variation of SOA is REST which applies a modified paradigm to the way you design your service endpoints.

This returned information is massaged into the View Model (of the model as the presentation layer knows it to be) and the appropriate view is rendered.

Here are some links to some practical SOA resource.

I would suggest you read articles by Thomas Erl and Roger Sessions, this will give you a firm handle on what SOA is all about.

SOA Design Pattern

Achieving integrity in a SOA

Why your SOA should be like a VW Beetle

MetalLemon