Domain Logic and Data Access of MVC at Remote API/Web Service Layer

Domain Logic and Data Access of MVC at Remote API/Web Service Layer

In our system, we have a Remote API layer (e.g. SOAP, XML-RPC, REST, etc.) to handle the domain logic and data access for web application and any client applications that're developed on top of it. Unlike in the past, I do not have business logic code and DB connectivity at the web application, all user actions are translated to be invoking the methods of the layer.

My concerns are, say for the rendering of a page, it requires making quite a number of calls to grab the data, e.g. a user dashboard with reports, recent history, some portlets, etc. With my current design (of delegating logic and DA to the Remote layer), what're the disadvantages that you are seeing? I see that establishing and transmitting text-based data via HTTP are heavier and more expensive than DB access. Besides, optimization has to be done at the Remote layer instead (given business logic & DA code at the web app, you have more flexibility in optimizing).

I am now thinking if I shall create a remote "Helper" service that allows me to squeeze all calls into one, i.e. instead of making multiple calls, I send one single call with a collection of method names and arguments. It looks a bit ugly and that's why I'm still skeptical of doing it now.

I would like to know your opinions about this architecture and if you had developed a web appplication using the similar way, what're the approaches you had taken in the past to guarantee good performance? If there're any other concerns that I should really be worried about, please share it with me as well.



c# design question - standalone GUI application


Software design problem: circular dependency
If you use output caching in mvc properly then performance will be increased a lot..
Create css files compatible with multiple browsers automatically

Deployment: GWT vs. Silverlight

70 out of 100 based on 60 user ratings 910 reviews