Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm working on a solution for an organization that needs to last them long term (as subjective as that is).

They currently have a Joomla installation whereby the CMS talks directly to the database, from there I have started "bolting on" the additions that they need for their environment (mobile app, kiosk, and lobby display). I've also started writing a RESTful service to talk to Joomla (not the joomla database) and the apps.

Here's a diagram of how it's currently going.

current architecture direction
note: they already have the "public & admin" as well as the central db, google cal, email, and vimeo

Since I'm just getting started with this, I'm thinking that I should probably push for an appropriate design from the ground up. I'm suggesting this so that they have a good foundation moving forward.

Here's my suggestion to them

proposed architecture

Being that they already have some pieces in place, is it worth pushing for a new architecture? Also, am I on the right track with regards to the new architecture?

Lastly, it's worth noting that they're not totally satisfied with Joomla and are looking for a possible rebuild for that portion of their project anyways.

share|improve this question

1 Answer 1

First of all, there isn't really much of a comparison. The current architecture obviously grew as bits where added, and your approach is a re-design, the obvious advantage being you know exactly what the layers are and how individual components interact. It's obviously the better approach, you are introducing a middle service layer that essentially makes the top layer "data storage" agnostic.

There isn't much to discuss really, what you are proposing is fairly close to a typical three-tier architecture. The only possible disadvantage is that there is no obvious fall back for the middle tier, the CRUD web service. If that fails for whatever reason, everything fails. Depending on the company and the availability needs for your services, that might or might not be important, but always worth considering.

Since this is a proposal, I feel obliged to warn you that it's a fairly radical change. If it was presented to me on one of the mature projects I'm working on, I'd need a fairly good estimate of the cost before discussing it. Typically radical architecture changes, especially from the ground up re-designs, happen gradually in quite a few iterations. Don't be discouraged if your team rejects the approach, but if that happens make sure you evaluate any feedback and come back with an adjusted and a bit less ambitious proposal.

share|improve this answer
1  
+1 Thanks for your feedback. It is a radical change, but better now than a few years down the road. There's already budget and openness for an alternative solution. I believe that if all things were equal, the proposed solution would be a better approach. Agree/Disagree? –  Chase Florell Jan 18 '12 at 21:35
    
PS: wikipedia is down today so I can't review your link ;-) #StopSOPA –  Chase Florell Jan 18 '12 at 21:35
1  
@ChaseFlorell Of course I agree, if all things were equal. Yeah, I know about the blackout, it was a bit of an easter egg :) Fortunately, you can always count on Programmers... –  Yannis Rizos Jan 18 '12 at 21:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.