views:

1179

answers:

5

We have a relatively large application that is strongly tied into Firebird (stored procedures, views etc). We are now getting a lot of requests to support additional databases and we would also like to move a lot of the functionality from the client to the server.

Now seems like a good time to move to a 3(4) tier architecture. We have already looked at DataSnap 2009 and RemObjects SDK/DataAbstract. Both seem like they would do the job, but are there any advantages/disadvantages we should look out for? Are there any other frameworks that you could recommend?

Cheers, Paul

+2  A: 

In the process of moving to a multitier application you could consider using a transport protocol between the layers, which is language/technology independent (like webservices, (i think tha remobjects supports that)).

This could make a reimplementation of a layer simpler later (like if you later have to make a another version of the client-application in a browser/java/silverlight).

BennyBechDk
+3  A: 
Aikislave
here is a nice video on KBM Middleware http://video.codegear.com/CodeRage2007Archives/Day3/KimMadsen.zip
Charles Faiga
very poor quality of sound and picture on that video. I love the way in his discussion of the advantages and disadvantages of 1 tier, 2 tier and 3 tier only 3 tier has no disadvantages :)
kjack
A: 

How many customers care what database is used as long as the application performs well? How do you know they'll buy your product if just the database was changed?

On the other hand if firebird is not cutting the mustard then maybe you just need to switch to a database that does?

If you have a well performing application in 2 tier why incur the extra cost of developing and maintaining an n-tier solution? Isn't it a lot more expensive?

If you do need to support more than 1 database would it not be less expensive to tweak your 2-tier design to do that, even if it means having the client do even more work?

kjack
Lots of larger customers care about which database. If they already have, for instance, Oracle installed and DBAs on staff, they don't want SQL Server or FireBird for a third-party app. That's extra knowledge and work. They want Oracle, so they can use existing resources.
Ken White
OK, but he doesn't need to add extra tiers just to support more than 1 database type.
kjack
Ken is correct. Many large customers are wary of using Firebird and would prefer to use something they have heard about/have the competence to deal with e.g. Oracle.Several reasons why we would like n-tier e.g more authentication methods, lighter clients on on multiple platforms/other languages.
norgepaul
+3  A: 

Changing your application to Multi-Tiers with new framework (RM,DS,kbmMW, or what ever), will make a lot of changes in our application architecture, I recommended to go with this in future, but you can achieve the support for multi database, with other products like

UniDac from DevArt( Best components for database with direct connection). AnyDac(from same Company who offer RemObjects. SqlDirect(Has support for 9 MajorDB and also ODBC). ZeosDB(Open source).

using one of the components above, will give you support for most major databases, beside it will not make you doig a lot of changes, and in some cases you just replace old database components with the new ones, and maybe change some of properties.

However, changing to Multi-tiers will not only make you only support more databases, but it will separate your business logic from presentation layer, therefore you can have more presentation layers for your application like web interface, or smart devices.

But the most important in the Multi-Tiers architecture, you will have a scalable system the grow more than what the database you are using can handle of connection, beside other benefits, like using other languages to write client applications.

Mohammed Nasman
I vote for DataAbstract with AnyDAC DAD. Very solid mix.
oodesigner
A: 

You can also investigate Midware http://www.overbyte.be/frame_index.html

Hugues Van Landeghem