Embed
Email

Java

Document Sample
Java
Shared by: HC111213094150
Categories
Tags
Stats
views:
9
posted:
12/13/2011
language:
pages:
53
Java

Visão Geral,

Conectividade com Bancos de Dados e

Integração com a Web



Rafael Chaves

chaves@voffice.com.br

Java



Visão Geral

Histórico

• 1991 (Green Project/Oak) - SW p/ dispositivos

de consumo eletrônicos em rede. Requisitos:

– suporte a diferentes plataformas

– distribuição de software via rede

– garantia de confiabilidade de código

– baixos requisitos de memória

– código pequeno

• 1994 - HotJava - browser 100% Java

• 1995 - lançada no SunWorld (voltada à Web)

O que é Java?

• O termo Java denomina uma tecnologia que

compreende dois principais elementos:

– a máquina virtual Java, uma plataforma operacional

para o software escrito na linguagem Java

– a linguagem Java, cuja sintaxe fornece uma

representação para todos os recursos da MV

• Os principais benefícios da linguagem Java são

resultado de características da MV

• Outras linguagens podem obter os mesmos

benefícios se compiladas em bytecodes Java

A Máquina Virtual Java

• Especificação de um computador abstrato,

capaz de executar código Java (bytecodes)

• A especificação define:

– o conjunto de instruções

– o formato para as classes

– pilhas de execução

– áreas de memória (heap, código, constantes, etc)

– registradores

• Emulada sobre ambientes operacionais

existentes (diversos)

• Implementada em hardware

A Linguagem Java

• É orientada a objetos

• É concorrente (suporta threads)

• É segura

• Possui gerência automática de memória

• Provê carga dinâmica de código (local/remoto)

• É robusta

• É portável em nível binário

• Possui sintaxe similar a C

Plataformas

• Windows, Solaris e Linux (Sun)

• Mac OS (Apple)

• Linux (Blackdown)

• Netware (Novell)

• AIX, OS/2, OS/390 (IBM)

• UnixWare, SCO Unix (SCO)

• HP-UX (HP)

• Windows NT Alpha (DEC)

• Irix (SGI)

• OpenVMS Alpha, Tru64 Unix Alpha (Compaq)

• ...

Tipos de software Java

• Aplicações (programas independentes)

• Applets (executam no contexto de um browser)

• Servlets (executam no contexto de um

servidor)

• JavaBeans (componentes)

• Classes ordinárias (auxiliares ou de API)

API básica

• Entrada/saída (java.io)

• Interface gráfica com o usuário (java.awt)

• Comunicação em rede (java.net)

• Coleções (java.util)

• Applets (java.applet)

API básica

• Componentes (java.beans)

• Objetos distribuídos Java-Java (java.rmi)

• Segurança (java.security)

• Conectividade com BDs (java.sql)

• Internacionalização e formatação (java.text)

Extensões-padrão à API Java

• Interface gráfica c/ o usuário (javax.swing)

• Extensão de servidores (javax.servlet)

• Conectividade com BDs (javax.sql)

• Objetos distribuídos Java-* (org.omg.CORBA)

Extensões-padrão à API Java

• Componentes de negócios (javax.ejb)

• Diretórios (javax.naming)

• Transações (javax.transaction)

• Correio eletrônico (javax.mail)

• Telefonia (javax.phone)

• ...

Integração com outras linguagens

• Algumas vezes é necessária a integração com

módulos em outras linguagens (eficiência,

funcionalidade específica da plataforma,

reutilização de código legado)

• Java Native Interface realiza integração com

código nativo

• Código externo é encapsulado em classes com

métodos nativos

• Conseqüência: perda de portabilidade

Kit de Desenvolvimento

• Conjunto gratuito de ferramentas para o

desenvolvimento de software Java:

– compilador

– ambiente de execução (JRE) p/ aplicações e applets

– depurador

– API padrão

– gerador de documentação, etc

• Extensivamente documentado

• Implementação de referência p/ a tecnologia

Ferramentas de Desenvolvimento

• Borland JBuilder

• IBM VisualAge for Java

• BEA Visual Café (ex-Symantec)

• Oracle JDeveloper

• Powersoft Power/J

• Sun Forte (ex-NetBeans)

• Rational J++ (ex-Microsoft)

• ...

Conectividade com Bancos de

Dados

API JDBC - Java Database

Connectivity

API JDBC

• Promove independência do servidor de dados

para a aplicação (usa drivers substituíveis)

• Pode ser usada com quaisquer dados tabulares

(como tabelas relacionais, planilhas, diretórios)

• Usa strings SQL como argumentos para as

requisições ao servidor (dinâmica)

Drivers JDBC Disponíveis

• MS SQL Server

• IBM DB2

• Oracle

• Interbase

• MySQL

• Informix

• Sybase

• ...

• ODBC/OLE DB

Principais Classes e Objetos JDBC

• Driver - intermediação entre aplicação e SGBD

• Connection - conexão a uma base de dados

(identifica driver, host e base)

• Statement - emite comandos de consulta ou

modificação

• ResultSet - resultado de consulta (cursor)

• DriverManager - gerencia os diferentes drivers

Connection

• Representa uma conexão (sessão) com um

determinado banco de dados

• Cria objetos Statement para requisições ao BD

• Gerencia transações (commit/rollback)

• Possibilita obter informações sobre a base de

dados em tempo de execução (tabelas, visões,

procedimentos armazenados, particularidades

do SGBD, etc)

Statement

• Possibilita enviar requisições através de uma

conexão associada

• Tipos de requisições:

– consultas (retornam um ResultSet):

Statement.executeQuery ()

– modificações:

Statement.executeUpdate ()

– chamadas de procedimentos armazenados

CallableStatement.executeQuery ()

ResultSet

• Representa o resultado de consulta (cursor)

• Permite percorrer o cursor (unidirecional e

seqüencial)

• Possibilita obter o valor das colunas

• Possibilita obter informações da tabela/visão

em tempo de execução (nome, tipo e

propriedades das colunas, nome da tabela, etc.)

Tipos de Drivers JDBC

• Tipo 1: driver Java invoca driver ODBC nativo

• Tipo 2: driver Java invoca API cliente proprietária

nativa

• Tipo 3: driver acessa servidor através de

middleware de banco de dados

• Tipo 4: driver acessa servidor através de protocolo

de rede nativo do servidor

• Tipos 1 e 2: soluções provisórias; Tipos 3 e 4:

100% Java, podem ser carregados via rede

Driver Driver

Tipo 1 Tipo 2

Driver Driver

Tipo 4 Tipo 3

JDBC 2.0

• Supera diversas limitações da versão 1.0:

– navegação bidirecional

– posicionamento absoluto

– atualizações/inserções/remoções via cursor

– row sets (cursores desconectados)

– connection pooling (reutilização de conexões)

• Características são opcionais

• Atualmente há poucos drivers compatíveis

(diversos previstos para 2000)

JDBC como infra-estrutura

• JDBC proposta como a infra-estrutura de baixo

nível para integração de Java com BDs

• Soluções de alto nível (sobre JDBC):

– SQLJ (Oracle, IBM, Sun...) - integração Java/SQL

(Embedded SQL, SQL Types e SQL Routines)

– Java Data Objects (Sun) - persistência transparente

(possivelmente através de mapeamento objeto-

relacional)

– soluções proprietárias (ex.: componentes JBuilder)

Integração com a Web



Applets, Servlets e JavaServer Pages

Java e a Web

• Java fornece três alternativas distintas para

aplicações Web:

– Applets (cliente)

– Servlets (servidor)

– JavaServer Pages (servidor)

Applets

• Applets são módulos de programa Java que

executam no contexto de uma página Web

• Carga de applets é feita através da tag

• Applets podem comunicar-se com o servidor

de origem (Ex.: JDBC, sockets, etc)

• Applets são inerentemente gráficas

Applets - Recursos

• Applets podem comunicar-se com o servidor

de origem para E/S remota, conexão com BD,

invocações remotas, etc

• Applets podem orientar a navegação do

browser

• Applets numa mesma página podem

comunicar-se

Applets - Restrições de Segurança

• Applets executam em um ambiente restrito

(sandbox) como medida de segurança

• Proibições comuns:

– E/S em arquivos locais

– comunicação com outros servidores que não o de

origem

– execução de programas locais

– carregar bibliotecas e acessar código nativo

Applets - Dificuldades

• Browsers sempre estão atrasados no suporte

aos avanços da API

• MVs dos browsers têm incompatibilidades com

a especificação da Sun e entre si

• Java Plug-in supera estas dificuldades, mas

requer uso das tags /

• Nem todos os browsers suportam applets e/ou

plug-ins

Servlets

• São módulos de programa Java que executam

no contexto de um servidor

• Paradigma requisição-serviço-resposta

• Usadas principalmente em servidores Web

– paradigma coerente com protocolo HTTP

– 1º) browser envia requisição (GET/POST)

– 2º) servlet realiza serviço

– 3º) página HTML é gerada dinamicamente como

resposta

Servlets - Características

• Normalmente não possuem restrições de

segurança (ou são poucas)

• Executam no servidor, browser só processa

HTML:

– maior compatibilidade com browsers (+)

– maior desempenho (+)

– interação c/ usuário primitiva (-)

– normalmente servidores usam o JRE + recente (+)

Servlets - Recursos

• a partir de uma requisição, uma servlet pode

obter:

– campos de formulários

– endereço de origem (IP/DNS)

– fabricante e versão do browser

– a sessão (se existe)

– um fluxo de dados de entrada (ex.: transferência

(upload) de arquivos)

Servlets - Recursos

• como resposta a servlet pode realizar:

– geração de conteúdo HTML ou outro conteúdo

MIME (imagens, vídeos, arquivos executáveis, etc)

– redirecionamento para outra URL

– geração de erro

• outros recursos:

– estabelecimento de sessão (c/ ou s/ cookies)

– invocação de outras servlets

Servlets - Recursos

• HTTP é um protocolo sem manutenção de

estado

• Não há relacionamento entre duas requisições

do mesmo cliente

• Solução - sessões:

– usando reescrita de URL

– usando cookies (requer browser capaz e habilitado)

– API Servlet encapsula a solução usada

Servlets x CGI

(Common Gateway Interface)

• Vantagens das Servlets:

– melhor desempenho (executam em um mesmo

processo, uma instância para várias requisições)

– usam uma linguagem portável, OO, segura, estável

e de uso geral

– uma mesma instância atende várias requisições

(controle de concorrência)

– NSAPI e ISAPI fornecem benefícios semelhantes

mas são proprietários

Servlets - Dificuldades

• Desenvolvedores tendem a mesclar a lógica da

aplicação com a interface c/ usuário (difícil

manutenção)

• exigem que produtores de conteúdo conheçam

Java (curva de aprendizado lenta)

• um mecanismo que suporte a separação é

necessário (várias abordagens, oficial: JSP)

• “A melhor maneira de escrever servlets é não

escrevê-las”

JavaServer Pages

• Páginas HTML que possuem scripts (roteiros)

para o servidor e embutem tags especiais

• Similares às Active Server Pages

• Linguagem script padrão: Java (outras podem

ser usadas)

• São traduzidas em tempo de execução para

servlets Java

• Novas tags podem ser adicionadas

JavaServer Pages - Recursos

• Possuem acesso às mesmas funcionalidades

que as Servlets, com maior simplicidade

• Templates JSPs são de fácil manutenção

(similaridade c/ HTML)

• JSPs acessam JavaBeans, facilitando a

separação das lógicas da aplicação e da

interface c/ o usuário







Hello,





Servlet Engines

• Softwares que habilitam um servidor Web a

suportar servlets Java e JavaServer Pages

• Facilitam a aceitação da tecnologia Servlet

• Contornam a guerra tecnológica MS x Sun

• Alguns produtos:

– Allaire JRun (IIS, NES, Apache)

– New Atlanta ServletExec (IIS, NES, Mac OS

(vários))

Servidores c/ Suporte Embutido a

Servlets/JSP

• Apache Web Server

• IBM Websphere

• Sun/Netscape iPlanet

• Oracle Application Server

• SilverStream Application Server

• outros...

Conclusões

Java - Tabus e Verdades

• Java é lento?

– os principais gargalos são a rede e o banco de

dados

– mecanismos de otimização: JIT e HotSpot™

– a complexidade da execução de código Java é

constante - o desempenho do hardware tem

evolução geométrica

– os benefícios da tecnologia tornam o desempenho

absoluto menos relevante

Java - Tabus e Verdades

• Java é útil apenas para animações na Web?

– Java se mostra muito adequada para aplicações

cliente-servidor (principalmente lado servidor)

– Java possui um modelo de componentes e APIs

excelentes para o desenvolvimento de aplicações

corporativas multi-camadas (GUI+BO/BP+BD)

– Poucas aplicações não são adequadas para Java

(por requisitos de desempenho)

Conclusões

• A tecnologia Java está madura e abrange as

mais diversas aplicações

• A tecnologia Java concede ao desenvolvedor

total independência de fornecedores, ao ser

aberta, multiplataforma e baseada em padrões

• A tecnologia Java fornece aos usuários um

excelente suporte a ambientes heterogêneos e

preserva o investimento em hardware e

software

http://www.javasoft.com

• Java 2 Software Development Kit

• JavaServer Web Development Kit

• Documentação:

• Tutorial Java

• Documentação do Java 2 SDK (APIs, guias, etc)

• Documentação de outras APIs

• Especificação da linguagem

• Especificação da máquina virtual

• Artigos, fóruns, notícias, bugs, etc

Java

Visão Geral,

Conectividade com Bancos de Dados e

Integração com a Web



Rafael Chaves

chaves@voffice.com.br


Related docs
Other docs by HC111213094150
Open Source OPAC
Views: 4  |  Downloads: 0
THE AMERICAN WEIL SOCIETY
Views: 0  |  Downloads: 0
Brian K Justice Resume
Views: 2  |  Downloads: 0
Data Analysis � Workshop
Views: 0  |  Downloads: 0
EmpltpsS1
Views: 3  |  Downloads: 0
?? Shell Script ? X Window System
Views: 3  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!