| Tecnologia di Internet | |||
|
|||
| ODBC è labbreviazione 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 lapplicazione 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 allapplicazione in comandi che ODBC comprende. Naturalmente, sia lapplicazione che il database devono essere compatibili con ODBC, cioè lapplicazione 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. Lapplicazione 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 allapplicazione. Driver Manager Il Driver Manager, anchesso un DLL su Windows, o delle shared libraries su Mac OS fornisce laccesso ai singoli driver. Il Driver Manager processa le chiamate di funzione dellapplicazione e le dirige al driver appropriato. Applicazione Lapplicazione è 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
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 Esempio di un processo ODBC
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 unaltra legge). Che applicazioni supportano ODBC? Diversi tipi di applicazioni supportano ODBC. Questo supporto può essere tale che lapplicazione 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 allutente, 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. |
|||
|
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 linterfaccia Java Database Connectivity (JDBC) si può usare un prodotto che comprende un "bridge" program JDBC-ODBC per raggiungere database ODBC-accessible. |
|||
| 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 lutente 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. | |||
| 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, lapplication 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), lapplication 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 dellIBM. 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 è limplementazione 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 |
|||
|
|||