Conectividade - cin.ufpe.brcin.ufpe.br/~if685/  · Java API JDBC JDBC/ODBC Bridge Camada ODBC API ODBC

  • View
    215

  • Download
    0

Embed Size (px)

Text of Conectividade - cin.ufpe.brcin.ufpe.br/~if685/  · Java API JDBC JDBC/ODBC Bridge Camada ODBC API...

1

CIn.ufpe.br

Fernando Fonseca

Ana CarolinaRobson Fidalgo

Gerenciamento de Dados e Informao

Conectividade

CIn.ufpe.br

Conectividade

O surgimento de ambientes com a arquiteturacliente-servidor compostos por diferentesplataformas vindas de diversos fabricantes requerdas aplicaes a necessidade de comunicar-secom outras aplicaes para poderem compartilhardados e/ou invocar processos que sejam comuns

2

CIn.ufpe.br

Conectividade

Nos primrdios dos SGBD, toda a conectividade aBD era feita por meio de aplicaes escritas paratrabalhar exclusivamente com um SGBDespecfico

Existiam dezenas de produtos para BD e cadaum usava uma linguagem proprietriaAs aplicaes eram dependentes daslinguagens dos sistemas de BDSe uma aplicao existente necessitasse seconectar a um BD em outro SGBD, eranecessrio modific-la para uma novalinguagem

3

CIn.ufpe.br

Conectividade

SGBD

Protocolo comum

Gateway

Interfaces de

comandos padronizados

4

CIn.ufpe.br

Uso de SGBD

Modelo de dados deve abrigar construesexistentes nos modelos locaisO SGBD escolhido deve possuir a funcionalidadenecessria para atuar como um SGBD global

Multibanco de dados

5

CIn.ufpe.br

Uso de Protocolo comum de acesso a dados

Baseado na padronizao do protocolo utilizado nacomunicao dos diversos componentes doambiente distribudo

RDA (Remote Database Access) - ISO

EDA/SQL (Enterprise Database Access/ SQL) -Information BuildersCORBA (Common Object Request BrokerArchitecture) OMG...

6

2

CIn.ufpe.br

Uso de Gateway

Tradutores de comandos de acesso a dadosNo possuem funcionalidades de SGBDPodem vir acoplados a SGBD

Normalmente so solues proprietrias paraconectarem fontes de dados especficas

7

CIn.ufpe.br

Interfaces de ComandosPadronizados

SAG - SQL Access GroupPadro de interoperabilidade

Qualquer cliente BD pode se comunicardiretamente com qualquer servidor de BDUtilizao de formatos de mensagens eprotocolos comunsCria interface SQL com funo de chamada(Call Level Interface - CLI)

8

CIn.ufpe.br

Interfaces de ComandosPadronizados

SAG - SQL Access GroupPadro de interoperabilidade (Cont.)

9

Uma CLI , simplesmente, uma interface

procedural para SQL

Uma CLI requer o uso de um driver

especfico para cada SGBD de modo a

traduzir as chamadas da aplicao para a

linguagem nativa de acesso ao SGBD

IDAPI, ODBC, JDBC, ...

CIn.ufpe.br

Interfaces de Comandos Padronizados

Conjunto comum de API (ApplicationProgramming Interface)

Para SGBD de diversos fabricantesConexo com BD por meio de driver localPreparar solicitaes SQLExecutar solicitaesRecuperar resultadosEncerrar conexo

10

CIn.ufpe.br

ODBC

Open Database ConectivityMicrosoftImplementaes de terceiros - Unix

ComponentesAPIFunes para gerenciar os driversDrivers

11

CIn.ufpe.br

ODBC

Driver

Oracle

Driver

SQL Server

Driver

Xbase ...

Gerenciador de Drivers

Interface ODBC

Aplicao

SGBD

Oracle

Dados

Fonte de

Dados

SGBD

SQL Server

Dados

Fonte de

Dados

Dados

Fonte de

Dados

Outros

SGBD

Arquitetura

em Camadas

12

3

CIn.ufpe.br

ODBC - Arquitetura

Aplicao (Camada 1)Um programa que chama funes ODBC parainteragir com fontes de dados

Uma planilha ExcelUma ferramenta de relatrioUm documento WordUma aplicao web...

13

CIn.ufpe.br

ODBC - ArquiteturaGerenciador de Drivers (Camada 2)

Carrega os drivers, direcionando as chamadasde funes ao driver ODBC correto

Prov acesso aos drivers ODBCIntercepta as chamadas da aplicao para obanco de dadosPermite que mltiplos drivers estejam ativossimultaneamente

Carrega e descarrega drivers, verifica status eadministra mltiplas conexes entreaplicaes e fontes de dados

14

CIn.ufpe.br

ODBC - Arquitetura

Drivers (Camada 3) uma biblioteca de funes que processa assolicitaes ODBC, enviando instrues SQLespecficas para cada fonte de dadosTraduz cada requisio para o formatoapropriado do SGBD (Mediador)Conecta uma fonte de dados, traduz comandosSQL e os submete fonte de dados, recuperainformaes da referida fonte e retorna dadospara a aplicaoSe a fonte Xbase (no usa SQL), o drivertambm deve processar os comandos SQL.

15

CIn.ufpe.br

ODBC - Arquitetura

Fontes de Dados (Camada 4)Trata-se dos dados propriamente ditosCada fonte de dados deve possuir um driverapropriado para que a intermediao possa serestabelecida

16

CIn.ufpe.br

ODBCConfigurao

17

CIn.ufpe.br

ODBCConfigurao

18

4

CIn.ufpe.br

Conectividade com Java

ObtenoDefinio de uma camada de servio depersistncia que utiliza SGBD relacionais

19

CIn.ufpe.br

Conectando Java a um BD Relacional

SGBD

Tabela de Hospitais

CGC Nome leitos

1 Restauracao 1000

2 Portugues 900

. . .

Hospital

int CGC

String nome

int leitos

Mtodos

...

Java

20

CIn.ufpe.br

JDBCTM Java Database Connectivity

API para acesso a SGBD (Sistemas deGerenciamento de Banco de Dados) utilizandoJava

Estabelece uma conexo com o SGBD

Envia comandos SQL para o SGBDProcessa os resultados

Protocolo JDBCDefine regras de comunicao entre umaaplicao Java e um SGBDNecessidade de um driver para efetivar acomunicao (inserido no CLASSPATH)

21

CIn.ufpe.br

Arquitetura de JDBC

JDBC composto por trs componentesprincipais: API, Driver Manager e os DriversJDBC

Oracle 11g

22

CIn.ufpe.br

Tipos de Driver JDBC

Tipo 1 (JDBC-ODBC Bridge)Transforma JDBC em ODBC e se utiliza desseltimo para comunicao com o SGBD

Tipo 2 (Driver parcial)Mapeia chamadas JDBC para uma API nativa doSGBD. Precisa de cdigo especfico de plataformaalm da biblioteca Java

23

CIn.ufpe.br

Tipos de Driver JDBC

Tipo 3 (Drivers Middleware)Driver puro Java para um servidor middleware qued suporte a clientes JDBC. Utiliza protocoloindependente de SGBD particular

Tipo 4 (Direct-to-database)Driver puro Java que permite a conexo com umservidor de banco de dados. Utiliza protocoloespecfico de um SGBD

24

5

CIn.ufpe.br

Tipo 1: JDBC/ODBC Bridge

Vem com o J2SEFaz acesso JDBC usando drivers ODBCUm driver ODBC deve estar disponvel namquinaUsa cdigo nativoPerde em desempenho porque passa por duascamadas (JDBC e ODBC)Recomendado apenas para testes ou para usoem aplicaes no-crticas

25

CIn.ufpe.br

BD

Java

Tipo 1: JDBC-ODBC Bridge

AplicaoJava

APIJDBC

JDBC/ODBCBridge

CamadaODBC

APIODBC

Fonte deDados

26

CIn.ufpe.br

Tipo 2: Parte Java, parte Nativo

Um driver Tipo 2 converte chamadas API JDBCem chamadas API do SGBDMais rpido que a JDBC/ODBC Bridge porquedispensa uma camada

27

CIn.ufpe.br

BDJava

Tipo 2: Parte Java, parte nativo

AplicaoJava

APIJDBC

DriverJDBC

APInativa

Fonte deDados

28

CIn.ufpe.br

Tipo 3: Servidor intermedirio

Traduz chamadas API JDBC para um protocolo derede independente de SGBDAs mensagens independentes de SGBD sotraduzidas por um servidor intermedirio para oprotocolo nativo do SGBDO servidor intermedirio capaz de se conectarcom vrios tipos de SGBDArquitetura flexvel oferecida por vrios fabricantesservidores de aplicaes

29

CIn.ufpe.br

BDJava

Tipo 3: Servidor intermedirio

AplicaoJava

APIJDBC

Fonte deDados

DriverNativo

DriverJDBC

Servidor de driversJDBC

30

6

CIn.ufpe.br

Tipo 4: Puro Java

Converte chamadas API JDBC diretamente para oprotocolo de rede usado pelo SGBDSo extremamente eficientes

A maioria dos fabricantes fornece drivers tipo 4 juntocom seus SGBD (Oracle, Sybase, IBM, Borland)

31

CIn.ufpe.br

BDJava

Tipo 4: Puro Java

Fonte deDados

AplicaoJava

APIJDBC

DriverJDBC

32

CIn.ufpe.br

Tipos de Drivers JDBC: Resumo

Os drivers Tipo 1 e 2 so apenas soluestemporrias e rpidas, enquanto solues puroJava estavam sendo desenvolvidasOs drivers tipo 3 e 4 so os recomendados porserem puro JavaDrivers tipo 3 so mais flexveis, mas exigem aquebra em camadasDrivers tipo 4 fazem acesso direto a SGBD e soos mais simples de usar e instalar

33

CIn.ufpe.br

API de JDBC

Pacote java.sql

InterfacesDriverConnectionStatementResultSetCallableStatementPreparedStatement

DatabaseMetaDataResultSetMetaDataArray

Blob Clob

Ref

34

CIn.ufpe.br

API de JDBC

Pacote java.sql

Interfaces (Cont.)

SQLData

SQLInput

SQLOutput

Struct

...

35

CIn.ufpe.br

API de JDBC

ClassesDriverManagerDateTimestampBatchUpdateException...

36

7

CIn.ufpe.br

API JDBC Standard Extension

Interfaces do pacote javax.sqlConnectionEventConnectionEventListenerConnectionPoolDataSourceCursorMovedEventCursorMovedListenerDataSo