This description only touches a tiny subset of the facilities provided by the kbmMWв„ў n-tier framework. For more info, please check the kbmMWв„ў feature matrix and visit the kbmMWв„ў university.
You may have heard about 2-tier and n-tier applications. What are they exactly?
2-tier - also called client/server - applications are applications which consist of two separate applications, one server application (typically a database server like Oracle, MSSQL or any other standalone database) and a client application.
n-tier applications consist of 3 or more active applications which data must pass, from the backend server to the front end client. Usually 3-tier models are used, where one tier is the backend database engine, one is the front end client and one is just in between them, also named the application server or business logic node.
What is the purpose of having more than 2 tier?
Well.. if you want to have many different client frontends, like f.ex. one written in Delphi/C++Builder/.Net as a normal fat client, one as a web server, one as a WAP server, one as a linkup server to a mainframe etc. it would be unwise to copy all the business logic (all the rules of your application) to each client application/server. It would be a nightmare to support. Instead its better to create a middle layer containing the business logic, and then let the clients talk with this middle layer. Thus the clients can relatively easily be changed for other types of clients, without need for remembering how was the business logic put together.
Using n-tier models also gives other positive side effects:
- Load balancing. They are capable of serving many more clients than a 2-tier solution, simply because the middle node (the application server) can be copied to more than one machine, and thus divide the load between more CPU's.
- Fault tolerance. If more application servers are running, the clients can simply try the request on another appserver if the first one didnt reply.
kbmMWв„ў is about all that and much more. It will support different database backends directly without you having to write any code. Thus if you need to perform a SQL query you will do it much the same way you are used to in a normal 2-tier setup. The specialized client and server service classes will handle everything for you.
Further kbmMWв„ў contains advanced connection pooling on both client to server and server to database, caching of result sets on both client to server and server to database and much more.
The database handling with its advanced caching and connectionpooling can aciually be used in 2-tier (Client/Server) setups aswell without using the remaining part of kbmMWв„ў giving you freedom in creating your application or web application the way you want to.
kbmMWв„ў contains countless features to integrate with the world, and can mimic as a SOAP server, a WEB server, a AJAX server, a AMF3 server and much more. It also contains one of the most advanced messaging framework for Delphi/C++Builder, supporting multiple topologies incl. Peer 2 Peer, Hub/Spoke and Broadcast using Publish/Subscribe based messaging via multiple types of fully developer accessible and configurable message queues.