Scrittura di un'applicazione interoperativa
Ogni volta che un'applicazione usa lo stesso codice su più driver, tale codice deve essere interoperabile tra questi driver. Nella maggior parte dei casi, si tratta di un task semplice. Ad esempio, il codice per recuperare le righe con un cursore forward-only è lo stesso per tutti i driver. In alcuni casi, questo può essere più difficile. Ad esempio, il codice per costruire gli identificatori da utilizzare nelle istruzioni SQL deve considerare il caso dell'identificatore, le citazioni e le convenzioni di denominazione in una, due e tre parti.
In generale, il codice interoperabile deve far fronte a problemi di supporto delle funzionalità e variabilità delle funzionalità. Il supporto delle funzionalità si riferisce al fatto che una particolare funzionalità sia supportata o meno. Ad esempio, non tutti i DBMS supportano le transazioni e il codice interoperabile deve funzionare correttamente indipendentemente dal supporto delle transazioni. La variabilità delle funzionalità si riferisce alla variazione del modo in cui una particolare caratteristica viene supportata. Ad esempio, i nomi dei cataloghi vengono inseriti all'inizio degli identificatori in alcuni DBMS e alla fine degli identificatori in altri.
Le applicazioni possono gestire il supporto e la variabilità delle caratteristiche in fase di progettazione o in fase di esecuzione. Per gestire il supporto delle funzionalità e la variabilità in fase di progettazione, uno sviluppatore esamina i DBMS e i driver di destinazione e assicura che lo stesso codice sia interoperabile tra di essi. Questo è, in genere, il modo in cui le applicazioni con interoperabilità bassa o limitata gestiscono questi problemi.
Ad esempio, se lo sviluppatore garantisce che un'applicazione verticale funzionerà solo con quattro particolari DBMS e se ognuno di questi DBMS supporta le transazioni, l'applicazione non ha bisogno di codice per verificare il supporto delle transazioni in fase di esecuzione. Può sempre supporre che le transazioni siano disponibili grazie alla decisione in fase di progettazione di utilizzare solo quattro DBMS, ognuno dei quali supporta le transazioni.
Per gestire il supporto delle funzionalità e la variabilità in fase di esecuzione, l'applicazione deve testare le diverse funzionalità in fase di esecuzione e agire di conseguenza. Questo è in genere il modo in cui le applicazioni altamente interoperabili gestiscono questi problemi. Per i problemi di supporto alle funzionalità, questo significa scrivere codice che renda la funzionalità opzionale o che emuli la funzionalità quando non è disponibile. Per problemi di variabilità delle funzionalità, significa scrivere codice che supporta tutte le possibili varianti.
Questa sezione descrive gli argomenti seguenti: