= doc.Index.index.uda.jdbc.mt %TOC% The Multi-Tier Drivers comprise client and server components, being uniquely equipped with an in-built high-performance database-independent networking layer and a session rules-book. These drivers are network-ready out of the box, and capable of dynamically discovering matching server components anywhere in a LAN/subnet using the Rendezvous service-discovery protocol. These drivers are described as "Multi-Tier" due to the fact that they include interface implementations at both the client and the server levels. In today''s world of client/server and web/application server based programming paradigms, with remote clients attempting to access your company''s corporate data from any number of unknown locations, security becomes a major concern of any organization in terms of controlling the access to this information. The [[OpenLink]] Multi-Tier architecture utilizes a server-side sessions Rule Book on the to enforce access- controls to the Database server from incoming client requests based on multiple-access criteria across the Domain, Database, User, Application, OS or hostname being presented by the client. This gives the company Network/Database Administrator ultimate control of who or what groups of users are allowed access to the database. [[/images/udajdbcmt.gif|]] / Image scaled down; Click to enlarge./ The Multi-Tier Drivers include the following components: *Generic Client(the entry for service consumption) this is component that provides the high level implementation of the relevant data-access mechanism (ODBC, JDBC, OLE DB, or .NET Provider) within the multi-tier component stack. *[[OpenLink]] RPC Clientthis is the client side of the database-independent networking layer, and it is inextricably associated with the generic client at runtime (so you do not physically see this component as a separate library or class file etc). *[[OpenLink]] Request Brokerone of the server-side components that implements server-side [[OpenLink]] RPC functionality. This is the part of the Multi-Tier architecture that is responsible for session instantiation, configuration management, and overall system security. It is the heart and soul of the Multi-Tier component stack. *Database Agentanother server-side component that implements both the server-side [[OpenLink]] RPC functionality and the actual [[OpenLink]] Data Access functionality. This is the only database-specific component in the Multi-Tier component stack, it is also the set of interfaces implemented via the database vendor-provided CLI. The architectures of the Multi-Tier and Single-Tier drivers are different, but not as different as instinctively assumed. This is because the Single-Tier database specific driver and the Multi-Tier Database Agent share a common core. What does not change is they both implement the call-level interfaces albeit at different places. The call-level interfaces take the following forms: *Type A - C-based dynamic SQL interface that inextricably includes client and server networking components *Type B - C-based remote procedure calls (RPC) interface to the wire-protocol of the underlying database. This is a client-only interface that communicates directly with the remote database server. These interfaces are not typically available to third-party developers. To date the Open Source projects such as [[FreeTDS]] , [[MySQL]] , [[PostgreSQL]] , and Interbase are the only publicly accessible and freely available versions of such interfaces. *Type C - Generic bridges, these are ODBC, JDBC, OLE DB, and .NET providers that act as implementation proxies, such that bridging can be achieved in the manner depicted in the matrix below: [[OpenLink]] provides Multi-Tier Drivers built using the Type A, B, and C call-level interfaces formats, depending on what is publicly available to third-party developers by the vendors of the respective database engines. Please view your respective Data Access Mechanism for more information. ----