Presentation is loading. Please wait.

Presentation is loading. Please wait.

UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria Informatica Progetto MOMIS : I wrapper.

Similar presentations


Presentation on theme: "UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria Informatica Progetto MOMIS : I wrapper."— Presentation transcript:

1 UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria Informatica Progetto MOMIS : I wrapper DB2/ODLi3 e Oracle/ODLi3 Relatore Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di Mauro Verardi

2 MOMIS: Mediator envirOnment for Multiple Information Sources Obiettivo: Realizzazione di uno strumento semi-automatico per lintegrazione di sorgenti eterogenee e distribuite Approccio adottato: semantico e virtuale Architettura di riferimento I 3 (ARPA) Intelligent Integration of Information

3 SERVIZI DI WRAPPING (I 3 ) Comunicazione Trasformazione interfaccia delle chiamate Gestione del traffico di eventi Trasformazione di chiamate di metodi e funzioni Ristrutturazione dei dati Traslazione tra differenti formati di dati Trasformazione di metadati Trasformazione del Comportamento Modifica della semantica Modifica dei protocolli Traslazione tra differenti linguaggi di manipolazione dati

4 SERVIZI DI WRAPPING (I 3 ) Comunicazione Trasformazione interfaccia delle chiamate Gestione del traffico di eventi Trasformazione di chiamate di metodi e funzioni Ristrutturazione dei dati Traslazione tra differenti formati di dati Trasformazione di metadati Trasformazione del Comportamento Modifica della semantica Modifica dei protocolli Traslazione tra differenti linguaggi di manipolazione dati

5 MOMIS: Mediator envirOnment for Multiple Information Sources

6 MOMIS:

7 MOMIS:

8 MOMIS:

9 I WRAPPER NEL SISTEMA MOMIS: Interfaccia Wrapper o String getDescriptionXml() o String getDescription() o String getSourceName() o String getType() o WrapperRS runQuery() Wrapper XML Wrapper JDBC-ODBC-MS_Access Wrapper JDBC generico Wrapper Microsoft SQL Server Wrapper già disponibili in MOMIS: Implementato in JAVA Oggetto CORBA Dichiara le funzioni

10 LA TECNOLOGIA JDBC: Java DataBase Connectivity Stabilire una connessione Inviare query Elaborare i risultati ottenuti Interfaccia DatabaseMetadata Nomi delle tabelle Nomi e tipi dei campi delle tabelle Chiavi primarie Foreign key API JAVA implementate dai Driver

11 I DRIVER ORACLE/JDBC JDBC OCI Client Side driver JDBC Thin Client-Side driver JDBC Thin Server-Side driver JDBC Server-Side Internal driver

12 I DRIVER ORACLE/JDBC JDBC OCI Client Side driver JDBC Thin Client-Side driver JDBC Thin Server-Side driver JDBC Server-Side Internal driver I DRIVER DB2/JDBC DB2 Universal JDBC Driver JDBC/SQLJ 2.0 Driver per OS/390 DB2 JDBC Type 2 Driver for Linux,UNIX e Windows

13 IL WRAPPER JDBC GENERICO Metodo Schema getSchema() Nomi delle tabelle Nomi e tipi dei campi delle tabelle Metodo Type getAttributeType( int t ) per le traduzione da tipo JDBC a tipo ODLI 3

14 IL WRAPPER JDBC GENERICO Metodo Schema getSchema() Nomi delle tabelle Nomi e tipi dei campi delle tabelle CREATE TABLE TBL_AMBITI_CDS_SPECIFICI ( IDCds numeric(18, 0) NOT NULL, IDAttivita numeric(18, 0) NOT NULL, IDAmbitoSpecifico numeric(18, 0) NOT NULL, Denominazione varchar (100), CFU varchar (10)) ; ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT PK_TBL_AMBITI_SPEC PRIMARY KEY (IDCds,IDAttivita,IDAmbitoSpecifico); ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS FOREIGN KEY (IDAttivita,IDCds) REFERENCES TBL_AMBITI_CDS (IdAttivita,IDCdS); interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI) { attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;}

15 JDBCODL I 3 ARRAYUnsupported BIGINTIntegerType(true,true) = Long BINARYUnsupported BITBooleanType BLOBUnsupported CHARCharType CLOBUnsupported DATEDateType DECIMALFloatingType(false) = Float DISTINCTUnsupported DOUBLEFloatingType(true) = Double FLOATFloatingType(true) =Double INTEGERIntegerType(false,true) = Short LONGVARBINARYStringType(unsupported) LONGVARCHARStringType(unsupported) NUMERICFloatingType(true) =Double OTHERAnyType (?) REALFloatingType(true) =Double REFUnsupported SMALLINTIntegerType(false,true) = Short STRUCTUnsupported TIMEDateType TIMESTAMPDateType TINYINTIntegerType(false,true) = Short VARBINARYStringType(unsupported?) VARCHARStringType Mapping tra tipi di dato JDBC e ODLI 3 Metodo Type getAttributeType( int t ) IL WRAPPER JDBC GENERICO

16 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() Nomi delle tabelle Nomi e tipi dei campi delle tabelle Chiavi primarie Foreign key Metodo boolean theTableShouldBeDescribed(String tableName) per lesclusione delle tabelle di sistema Data dictionary di Oracle System catalog di DB2 Metodo Type getAttributeType( int t ) per le traduzione da tipo JDBC a tipo ODLI 3 ereditato dal wrapper JDBC generico

17 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() CREATE TABLE TBL_AMBITI_CDS_SPECIFICI ( IDCds numeric(18, 0) NOT NULL, IDAttivita numeric(18, 0) NOT NULL, IDAmbitoSpecifico numeric(18, 0) NOT NULL, Denominazione varchar (100), CFU varchar (10)) ; ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT PK_TBL_AMBITI_SPEC PRIMARY KEY (IDCds,IDAttivita,IDAmbitoSpecifico); ALTER TABLE TBL_AMBITI_CDS_SPECIFICI ADD CONSTRAINT FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS FOREIGN KEY (IDAttivita,IDCds) REFERENCES TBL_AMBITI_CDS (IdAttivita,IDCdS);

18 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} SQL_Server/ODLI 3 DB2/ODLI 3 Oracle/ODLI 3

19 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA}, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} SQL_Server/ODLI 3 DB2/ODLI 3 Oracle/ODLI 3

20 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} SQL_Server/ODLI 3 DB2/ODLI 3 Oracle/ODLI 3

21 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} SQL_Server/ODLI 3 DB2/ODLI 3 Oracle/ODLI 3

22 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo Schema getSchema() interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAmbitoSpecifico, IDAttivita, IDCds) foreign_key FK_TBL_AMBITI_SPECIFICI_TBL_AMBITI_CDS (IDAttivita, IDCds) references TBL_AMBITI_CDS (IdAttivita, IDCdS) ){ attribute double IDAmbitoSpecifico; attribute string Denominazione; attribute double IDCds; attribute double IDAttivita; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDCDS,IDATTIVITA,IDAMBITOSPECIFICO) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA, IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} interface TBL_AMBITI_CDS_SPECIFICI ( extent TBL_AMBITI_CDS_SPECIFICI key (IDAMBITOSPECIFICO,IDATTIVITA, IDCDS) foreign_key FK_TBL_AMBITI_SPEC_TBL_AMB_CDS (IDATTIVITA,IDCDS) references TBL_AMBITI_CDS (IDATTIVITA,IDCDS) ){ attribute string DENOMINAZIONE; attribute float IDAMBITOSPECIFICO; attribute float IDCDS; attribute float IDATTIVITA; attribute string CFU;} SQL_Server/ODLI 3 DB2/ODLI 3 Oracle/ODLI 3

23 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Oracle SQL datatypesJDBC datatypesODL I 3 datatypes NUMBER BIGINTIntegerType(true,true) NUMBER INTEGER IntegerType(false,true) NUMBER SMALLINT NUMBER TINYINT NUMBER BITBooleanType CHAR CharType DATE DateType DATE TIME TIMESTAMP NUMBER DECIMALFloatingType(false) NUMBER FLOAT (Float) NUMBER DOUBLE FloatingType(true) NUMBER NUMERIC (Double) NUMBER REAL LONGRAW LONGVARBINARYStringType LONG LONGVARCHAR RAW VARBINARY VARCHAR2 VARCHAR

24 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Oracle SQL datatypesJDBC datatypesODL I 3 datatypes NUMBER BIGINTIntegerType(true,true) NUMBER INTEGER IntegerType(false,true) NUMBER SMALLINT NUMBER TINYINT NUMBER BITBooleanType CHAR CharType DATE DateType DATE TIME TIMESTAMP NUMBER DECIMALFloatingType(false) NUMBER FLOAT (Float) NUMBER DOUBLE FloatingType(true) NUMBER NUMERIC (Double) NUMBER REAL LONGRAW LONGVARBINARYStringType LONG LONGVARCHAR RAW VARBINARY VARCHAR2 VARCHAR

25 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo boolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_CAT String => table catalog (may be null) TABLE_SCHEM String => table schema (may be null) TABLE_NAME String => table name TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". REMARKS String => explanatory comment on the table TYPE_CAT String => the types catalog (may be null) TYPE_SCHEM String => the types schema (may be null) TYPE_NAME String => type name (may be null) SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null) REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)

26 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo boolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_CAT String => table catalog (may be null) TABLE_SCHEM String => table schema (may be null) TABLE_NAME String => table name TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". REMARKS String => explanatory comment on the table TYPE_CAT String => the types catalog (may be null) TYPE_SCHEM String => the types schema (may be null) TYPE_NAME String => type name (may be null) SELF_REFERENCING_COL_NAME String => name of the designated "identifier" column of a typed table (may be null) REF_GENERATION String => specifies how values in SELF_REFERENCING_COL_NAME are created. Values are "SYSTEM", "USER", "DERIVED". (may be null)

27 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo boolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_SCHEM String => table schema (may be null) TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM".

28 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo boolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_SCHEM String => table schema (may be null) TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". getSchema() TABLE_TYPE = "TABLE"

29 I WRAPPER SQL_SERVER/ODLI 3, DB2/ODLI 3, ORACLE/ODLI 3 Metodo boolean theTableShouldBeDescribed(String tableName) public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) TABLE_SCHEM String => table schema (may be null) TABLE_TYPE String => table type. Typical types are "TABLE", "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY", "LOCAL TEMPORARY", "ALIAS", "SYNONYM". getSchema() TABLE_TYPE = "TABLE" Oracle DB2 MDSYS OLAPSYS SYS SYSTEM WKSYS XDB TABLE_SCHEM SYSIBM SYSTOOLS TABLE_SCHEM

30 I WRAPPER GUI

31

32 Metodo getAllDatabase() DB2 Universal Database per z/OS DB2 Universal Database per Linux, Unix, Windows Oracle Database su sistemi UNIX DatabaseDSNDB06 Tabella SYSIBM.SYSDATABASE ComandoLIST DATABASE DIRECTORY File /sqldbdir Oracle Database su sistemi Windows File /etc/oratab (/var/opt/oracle se sistemi Solaris ) Registri di sistema HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOME_NAME\ORACLE_SID

33 CONCLUSIONI WrapperJdbcCore_DB2Server WrapperJdbcCore_oracle DB2ServerWrapperGUI OracleServerWrapperGUI Metodo getAllDatabase()

34 CONCLUSIONI WrapperJdbcCore_DB2Server WrapperJdbcCore_oracle DB2ServerWrapperGUI OracleServerWrapperGUI Metodo getAllDatabase() Oracle DBA Forum DUGI Listserv

35 PROGETTO MOMIS: I WRAPPER DB2/ODLI 3 E ORACLE/ODLI 3 Grazie per lattenzione Mauro Verardi


Download ppt "UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di laurea in Ingegneria Informatica Progetto MOMIS : I wrapper."

Similar presentations


Ads by Google