Advice on moving to a multi tier Delphi architecture

风格不统一 提交于 2019-12-20 09:59:49

问题


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


回答1:


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).




回答2:


I can recommend using the KBM Middleware components from Components4Developers. There is a bit of a learning curve but they are very flexible and hold up well under use in real world conditions.

Comment from a user (http://www.components4programmers.com/usercomments/commentfromapowerusertoaquestion.htm)




回答3:


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.




回答4:


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




回答5:


For multi-tier architecture I also recommend to check out message-oriented middleware.

With message-oriented middleware, cross-language and cross-platform application integration can be implemented using the peer-to-peer or the publish/subscribe communication model. Messaging systems are loosely coupled, asynchronous and reliable. For example, they are core components in Java(tm) application servers such as JBoss.

For Firebird, I recently wrote a blog article on replacing Firebird database events, their limitations and ways to replace them with message-broker based solutions (which are available as open source):

  • Firebird Database Events and Message-oriented Middleware (part 1)
  • Firebird Database Events and Message-oriented Middleware (part 2)

(disclaimer: I am a developer of Delphi and Free Pascal client libraries for open source message brokers).



来源:https://stackoverflow.com/questions/545080/advice-on-moving-to-a-multi-tier-delphi-architecture

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!