Dela via


Andra drivrutinsarkitekturer

Vissa ODBC-drivrutiner överensstämmer inte strikt med den arkitektur som beskrevs tidigare. Detta kan bero på att drivrutinerna utför andra uppgifter än en traditionell ODBC-drivrutin eller inte är drivrutiner i egentlig mening.

Drivrutin som en mellanliggande komponent

ODBC-drivrutinen kan finnas mellan Driver Manager och en eller flera andra ODBC-drivrutiner. När drivrutinen i mitten kan arbeta med flera datakällor fungerar den som en avsändare av ODBC-anrop (eller lämpligt översatta anrop) till andra moduler som faktiskt har åtkomst till datakällorna. I den här arkitekturen tar drivrutinen i mitten på sig en del av rollen som drivrutinshanterare.

Ett annat exempel på den här typen av drivrutin är ett spionprogram för ODBC, som fångar upp och kopierar ODBC-funktioner som skickas mellan Driver Manager och drivrutinen. Det här lagret kan användas för att emulera en drivrutin eller ett program. För Driver Manager verkar lagret vara drivrutinen; till drivrutinen verkar lagret vara Driver Manager.

Heterogena kopplingsmotorer

Vissa ODBC-drivrutiner bygger på en frågemotor för att utföra heterogena kopplingar. I en arkitektur för en heterogen kopplingsmotor (se följande bild) visas drivrutinen för programmet som en drivrutin men visas för en annan instans av Driver Manager som ett program. Den här drivrutinen bearbetar en heterogen koppling från programmet genom att anropa separata SQL-instruktioner i drivrutiner för varje ansluten databas.

Arkitektur för en heterogen kopplingsmotor

Den här arkitekturen tillhandahåller ett gemensamt gränssnitt för programmet för åtkomst till data från olika databaser. Den kan använda ett vanligt sätt att hämta metadata, till exempel information om särskilda kolumner (radidentifierare) och den kan anropa vanliga katalogfunktioner för att hämta information om dataordliste. Genom att anropa ODBC-funktionen SQLStatistics kan programmet till exempel hämta information om indexen i tabellerna som ska kopplas, även om tabellerna finns i två separata databaser. Frågeprocessorn behöver inte bekymra sig om hur databaserna lagrar metadata.

Programmet har också standardåtkomst till datatyper. ODBC definierar vanliga SQL-datatyper som DBMS-specifika datatyper mappas till. Ett program kan anropa SQLGetTypeInfo för att hämta information om datatyper i olika databaser.

När programmet genererar en heterogen kopplingsinstruktion parsar frågeprocessorn i den här arkitekturen SQL-instruktionen och genererar sedan separata SQL-instruktioner för varje databas som ska kopplas. Genom att använda metadata om varje drivrutin kan frågeprocessorn fastställa den mest effektiva, intelligenta kopplingen. Om instruktionen till exempel kopplar två tabeller i en databas med en tabell i en annan databas kan frågeprocessorn ansluta de två tabellerna i den ena databasen innan resultatet kopplas till tabellen från den andra databasen.

ODBC på servern

ODBC-drivrutiner kan installeras på en server så att de kan användas av program på någon av en serie klientdatorer. I den här arkitekturen (se följande bild) installeras en Driver Manager och en enda ODBC-drivrutin på varje klient, och en annan Driver Manager och en serie ODBC-drivrutiner installeras på servern. Detta ger varje klient åtkomst till en mängd olika drivrutiner som används och underhålls på servern.

Arkitektur för ODBC-drivrutiner på en server

En fördel med den här arkitekturen är effektivt underhåll och konfiguration av programvara. Drivrutiner behöver bara uppdateras på ett ställe: på servern. Med hjälp av systemdatakällor kan datakällor definieras på servern för användning av alla klienter. Datakällorna behöver inte definieras på klienten. Anslutningspooler kan användas för att effektivisera processen med vilken klienter ansluter till datakällor.

Drivrutinen på klienten är vanligtvis en mycket liten drivrutin som överför Driver Manager-anropet till servern. Dess fotavtryck kan vara betydligt mindre än de fullt fungerande ODBC-drivrutinerna på servern. I den här arkitekturen kan klientresurser frigöras om servern har mer databehandlingskraft. Dessutom kan effektiviteten och säkerheten i hela systemet förbättras genom att du installerar säkerhetskopieringsservrar och utför belastningsutjämning för att optimera serveranvändningen.