Tecnologia di Internet
 
Server side: accesso a database
ODBC
ODBC è l’abbreviazione di Open DataBase Connectivity, un metodo standard (o application programming interface, API) di accesso a database.

ODBC è stato creato da SQL Access Group e rilasciato per la prima volta nel settembre1992. Microsoft Windows è stato il primo sistema operativo ad avere un prodotto ODBC, ma esistono versioni anche per piattaforme UNIX, OS/2, e Macintosh.

ODBC è un linguaggio (o meglio, un protocollo) che i client possono usare per interrogare un server database. I client che supportano ODBC passano le richieste. ad un ODBC Driver manager, anche localizzato sulla macchina client, che decide quale sorgente dati è appropriata e quale driver ODBC corrisponde a quella sorgente dati. La richiesta è trasmessa attraverso il driver al database e la risposta attraverso ODBC Driver Manager raggiunge il client.

Per farlo, ODBC aggiunge un livello intermedio, chiamato database driver, tra l’applicazione e il database (Call-Level Interface CLI specifications from X/Open and ISO/IEC for database API) e usa SQL come linguaggio di accesso al database. ODBC is based on and closely aligned with the Open Group standard Structured Query Language (SQL) Call-Level Interface. It allows programs to use SQL requests that will access databases without having to know the proprietary interfaces to the databases. ODBC handles the SQL request and converts it into a request the individual database system understands.

Lo scopo di questo livello è di tradurre le richieste di dati all’applicazione in comandi che ODBC comprende. Naturalmente, sia l’applicazione che il database devono essere compatibili con ODBC, cioè l’applicazione deve essere in grado di emettere comandi ODBC e il database deve essere in grado di rispondere a questi comandi. Dalla versione 2, lo standard supporta SAG SQL.

ODBC consiste di quattro componenti: data source, driver, driver manager e applicazione client, come in figura.

Il modello ODBC

Sorgente dati

La sorgente dati (data source) consiste di diverse parti comprendenti i dati, il DBMS, la piattaforma e la rete utilizzata per accedere a tale piattaforma. Spesso un data source non include una rete o DMBS. Per esempio il data source potrebbe semplicemente essere un percorso (path) ad un file con dati di testo su un driver locale o potrebbe riguardare nomi di dominio, indirizzi IP e così via di server remoti.

Driver

Sono Dynamically Linked Libraries (DLL) in Windows, o delle shared libraries in Mac OS che processano le chiamate a funzioni ODBC tra il Driver Manager e il data source. L’applicazione notifica al driver di connettersi al data source, una richiesta SQL viene passata al data source dopo eventuali traduzioni da parte del driver, e i risultati sono trasmessi all’applicazione.

Driver Manager

Il Driver Manager, anch’esso un DLL su Windows, o delle shared libraries su Mac OS fornisce l’accesso ai singoli driver. Il Driver Manager processa le chiamate di funzione dell’applicazione e le dirige al driver appropriato.

Applicazione

L’applicazione è il programma che processa i dati: per esempioFileMaker Pro. Questo programma può chiamare funzioni ODBC per interagire con una varietà di sorgenti dati.

Usando istruzioni ODBC in un programma, si può accedere ai file di un gran numero di database tra cui

  • Access
  • dBase
  • DB2
  • Excel
  • Text
  • FileMaker
  • 4th Dimension

Oltre al software ODBC, è necessario un modulo separato o driver per ogni database a cui ci si connette.

Risorse su Internet

ODBC drivers and vendors http://ourworld.compuserve.com/homepages/Ken_North/odbcvend.htm
slide http://www.eecs.umich.edu/~aprakash/598/odbc/index.htm

Esempio di un processo ODBC

  1. Il programma client (per esempio FileMaker pro) trasmette una richiesta ODBC all’ODBC Driver Manager (“dammi tutti i nomi dei clienti dal database Vendite”)
  2. ODBC Manager determina quale sorgente dati corrisponde alla richiesta (“Vendite è in realtà il database Oracle con PeopleSoft Financials”); si noti che ODBC Driver manager è già stato allestito con tutti i necessari data sources requiring access
  3. ODBC Manager passa la richiesta al driver ODBC corretto (“il driver ODBC per Oracle 7.3 è ODBORCL7.DLL"
  4. Il driver ODBC riceve la richiesta e la traduce in una richiesta nativa del database (“ciò significa in realtà SELECT ALL customer_names FROM cust_table nel dialetto di Oracle”)
  5. Il database ritorna il risultato attraverso il driver ODBC e Driver Manager al client (“Mario Rossi; Giuseppe Verdi, Antonio Neri, ...)

Questo è un processo dinamico che coinvolge diverse applicazioni e servizi che sono contemporaneamente in esecuzione (contrariamente ad un file di interscambio come SYLK che una applicazione scrive e un’altra legge).

Che applicazioni supportano ODBC?

Diversi tipi di applicazioni supportano ODBC. Questo supporto può essere tale che l’applicazione agisce come un client che può avere informazioni da altre sorgenti. o come un server che può fornire informazioni via ODBC. Alcune applicazioni pososno agire sia come client che come server.

I database SQL-oriented (come Oracle, Sybase, Microsoft SQL Server, Microsoft Access, Informix, DB2, ecc) tipicamente sono server. Possono ritornare tavole di dati a client ODBC-oriented o client che usano il loro linguaggio di richiesta proprietario (Oracle PL/SQL, Sybase Transact-SQL, CICS for IBM mainframe DB2)

Applicazioni desktop (come FileMaker Pro 4.1, Microsoft Word, Microsoft Excel)tsono tipicamente client che possono prelevare dati via ODBC. Microsoft Excel agisce anche come server, fornendo dati a altre applicazioni desktop.

Le applicazioni web-to-database (come NetDynamics, Microsoft Active Server Pages) normalmente girano dietro web server e prelevano dati da database SQL-oriented. i dcati vengono poi visualizzati mediante browser.

Strumenti di interrogazione (come BrioQuery, Crystal Reports) sono applicazioni client desktop che prelevano grandi quantità di dati da back-end production database e manipolano e visualizzano le informazioni in qualche modo. Gli utenti possono riorganizzare i dati in molti modi differenti ponendo domande del tipo “cosa succede se” e realizzare rapporti.

Strumenti di sviluppo (come Microsoft Visual Basic, PowerSoft PowerBuilder) spesso possono scrivere richieste ODBC inserendole in applicazioni client. Questo consente agli sviluppatori di scrivere applicazioni di report che nascondono ODBC all’utente, ma possono girare con più di un data source.

SQL

SQL (Structured Query Language) è un linguaggio standard interattivo per avere informazioni da un database. Sebbene SQL sia uno standard sia ANSI che ISO, molti prodotti database supportano SQL con estensioni proprietarie. Le richieste prendono la forma di un linguaggio di comandi che consente di selezionare, inserire, aggiornare, trovare la locazione dei dati e così via. Esiste anche una interfaccia di programmazione.

Introduction to Structured Query Language

JDBC

Sta per Java Database Connectivity, ed è un API Java sviluppato da JavaSoft, una sussidiaria della Sun per eseguire istruzioni SQL. Ciò consente ai programmi Java di interagire con qualunque database che supporta SQL. Poiché quasi tutti i database relazionali supportano SQL e poiché Java stesso gira sulla maggior parte delle piattaforme, JDBC rende possibile scrivere una singola applicazione di database che può girare indifferentemente su piattaforme di verse e interagire con diversi database.

JDBC è simile a ODBC ma è progettato apposta per programmi Java mentre OBDC è indipendente dal linguaggio di programmazione.

Nello scrivere programmi in Java e usando l’interfaccia Java Database Connectivity (JDBC) si può usare un prodotto che comprende un "bridge" program JDBC-ODBC per raggiungere database ODBC-accessible.

Accesso mediante CGI
Il middleware più standard è uno script CGI scritto per tradurre le richieste da un web server ad un formato che il database può comprendere, e tradurre le risposte del database in qualcosa che il web server può spedire al browser e che l’utente che usa il browser può comprendere. Lo script CGI è responsabile di comprendere cosa il web server dice ed è anche responsabile di sapere come parlare al database.
Accesso ad un database mediante CGI
Naturalmente lo script CGI può essere scritto in qualunque linguaggio di programmazione e può usare qualunque metodo, anche proprietario, per comunicare con il database.
Application server
Un application server è un programma che viene eseguito su una macchina di medie dimensioni e che tratta tutte le operazioni tra computer basati su browser e applicazioni o database aziendali. Poiché diversi database non interpretano comandi scritti in HTML, l’application server funziona come traduttore consentendo, per esempio, ad un cliente con un browser di fare una ricerca online in un database per cercare un prezzo.

Normalmente sono programmi che girano su piattaforme Windows NT Server o Unix. È un mercato in espansione. Sono offerti da qualche decina di case di software tra cui Microsoft, Netscape, Sun, IBM. La scelta di un application server tuttavia può essere limitata sia dalla piattaforma su cui deve girare che dal tipo di componenti che supporta.

La maggior parte degli application server supporta codice, che indirizza le API, scritto in C++, Java o entrambi. Anche se il codice è incapsulato in un componente standard (tipicamente CORBA o COM), l’application server dovrebbe supportarlo.

Per quanto riguarda i tipi di database, quasi tutti gli application server offrono supporto per ODBC. Alcuni offrono driver nativi per database come Oracle, Stbase e Microsoft SQL Server.

È importante pensare al middleware come una rete di risorse legate assieme da protocolli di rete e oggetti distribuiti.

Corba

Abbreviazione di Common Object Request Broker Architecture, una architettura che consente a pezzi di programmi, chiamati oggetti, di comunicare tra di loro, indipendentemente dal linguaggio con il quale sono stati scritti e dal sistema operativo in cui sono eseguiti. CORBA è stato sviluppato da un consorzio industriale, il Management Group (OMG).

Ci sono diverse implementazioni di CORBA, quella più utilizzata sono SOM e DSOM dell’IBM. CORBA è stata adottata anche da Netscape come parte della piattaforma Netscape ONE (Open Network Environment) platform. Due modelli concorrenti sono COM and DCOM di Microsoft e RMI di Sun.

DCOM

Abbreviazione di Distributed Component Object Model, è una estensione di COM (Component Object Model) che consente di supportare oggetti distribuiti su una rete. DCOM è stato sviluppato da Microsoft e fin dal 1996 fa parte di Windows NT.

DCOM ha lo stesso scopo del protocollo IBM DSOM, che è l’implementazione più comune di CORBA. Al contrario di CORBA, che può essere eseguito su molti sistemi diversi; DCOM è attualmente implementato solo su Windows.

JavaBeans

Una specifica sviluppata da Sun che definisce come interagiscono oggetti Java. Un oggetto che si conforma a questa specifica è detto JavaBean ed è simile ad un controllo ActiveX. Può essere usato da ogni applicazione che comprende il formato JavaBean.

La principale differenza tra i controlli ActiveX e JavaBeans è che i controlli ActiveX possono essers sviluppati in ogni linguaggio di programmazione ma eseguiti solo su piattaforma Windows, mentre JavaBean può essere scritto solo in Java, ma può essere eseguito su ogni piattaforma.

Enterprise JavaBens (EJB) è un API che estende il modello JavaBean includendo logica commerciale basata su transazioni. EJB è abbastanza nuovo, ancora in evoluzione, e supportato da alcuni application server.

RMI

Abbreviazione di Remote Method Invocation, un insieme di protocolli sviluppati dalla divisione JavaSoft di Sun che permettono agli oggetti Java di comincare in remoto con con altri oggetti Java.. Al contrario di protocolli più complessi come CORBA e DCOM, che supportano oggetti creati in ogni linguaggio, funziona solo con oggetti Java.

Informazioni online

   
Home | Commenti a Mauro Boscarol | Ultimo aggiornamento 22 dicembre 2000