Reputation: 801
The application we are evaluating is a web application built using spring and spring mvc with oracle database.
Every click on the browser ends in a database call.
Most of the business logic is in database procedures.
Upvotes: 1
Views: 1520
Reputation: 54806
What you seem to have is more of a violation of the MVC pattern than of the multi-tier pattern. In a typical MVC application the business logic belongs in controller code and not database procedures. However, a three-tier application is only generally required to have three tiers, an interface tier, a business tier, and a persistence tier. And technically they have that. So I think maybe you should argue that they haven't followed MVC properly, and that at best they have a poorly implemented three-tier application.
You also haven't provided enough details to prove that it's not using a Service-Oriented Architecture (though if it is, I would be surprised). SOA has to do with how the logical components that comprise the business logic are coupled. If they are loosely coupled things that can be brought up and down and swapped out for different provider implementations then they would have a SOA. If there is tight coupling such that the logical components cannot be easily separated from one another without causing major breakages, then they do not.
If they have most of their business logic residing in database procedures, then they probably do not have a SOA, but you never know. The rest of their business logic may indeed follow this pattern.
Upvotes: 2
Reputation: 80603
Well, you have three tiers -
So technically your management is correct, at least for the number of tiers in the application. You can easily make the argument that they are not following best practices, SQL is a horrible language to be doing business validations in.
On your second point, its impossible to tell if this is a SOA compliant application, though I bet my first born its not. SOA is pretty complicated, and you ask 10 people what it is you will get 15 answers. But based off your description I would say the system fails the SOA test in the areas of discoverability, composability, autonomy, abstraction, and loose coupling. And depending on how you look at it, service contract as well.
Here's a question for you though, what does your organization think it needs SOA for?
Upvotes: 3
Reputation: 24722
From information that you provided it does not follow whether it is three tier or service oriented.
3 Tier usually means UI layer/Service Layer/Database layer. Each has it's own responsibilities. Service oriented architecture, often means that you have separate deployable services to perform different functions in the system. Your statements alone don't confirm or deny either definition.
Upvotes: 2