You are on page 1of 53

Tecnologia Java

Rodrigo Lopes Ferreira


Sun Certified Enterprise Architect for Java Enterprise Edition 5(II)
Sun Certified Business Component Developer for Java EE 5
Sun Certified Web Component Developer for Java EE 5
Sun Certified Programmer for Java SE 5
Discover Technology
 Oracle Advantage Partner, a categoria máxima no
programa de parcerias da Oracle
 Atuação em vendas, consultoria, desenvolvimento,
treinamento e suporte técnico em Java e tecnologias
Oracle(R)
 Vários profissionais certificados
 Vários clientes “de peso” no Brasil e no exterior
 Oportunidades: rh-ctmococa@discover.com.br

 www.discover.com.br
Origem da Tecnologia
 Lançada oficialmente em 1995

 Baseada no poder das redes,


para funcionar através de
redes heterogêneas.

 “Write once, run everywhere”

James Gosling
Java!
 Idéia de escrever softwares que funcionem em
qualquer plataforma de computador, seja ela
pessoal, servidora ou micro (celulares, PDAs, TV
Digital, Cartões de Banco, etc)
Java!
 Funciona em qualquer ambiente operacional

 Máquina Virtual Java (VM) interpreta o bytecode


gerado e transforma para código nativo no
ambiente hospedeiro.

Funciona em tudo, sem recompilar!


Vantagens!
 Totalmente grátis – licença GPL

 Totalmente padronizado, com uma especificação


bem definida

 Mantida pela JCP (Java Community Process)

 Orientada a Objetos

 Liberdade de escolha de fornecedores de


tecnologia e suporte
Vantagens!
 O mesmo código roda em qualquer plataforma,
sem necessidade de recompilação

 As aplicações podem ser trocadas de servidores


de aplicação

 Não existe “vendor lock-in”. Se você ficar


insatisfeito com a performance ou suporte de um
fornecedor, pode procurar outro

 Suporte extensivo a aplicações multi-camadas


Vantagens!
 Incentivo ao desenvolvimento orientado a objetos

 Possibilidade de criação de componentes com


responsabilidades únicas, que podem ser
reutilizados depois

 Possibilidade de testes unitários por componente

 É distribuída com um vasto conjunto de


bibliotecas básicas prontas, chamadas de APIs
Vantagens!
 Vários frameworks que ajudam na
implementação de Padrões de Projetos

 Ferramentas para documentação de código

 Maior comunidade de desenvolvedores do mundo

 Milhares de artigos, revistas, fórums etc.

 Suporte e apoio das maiores companhias de


software do mundo.
Vantagens!
 Desalocação de memória automática por
processo de coletor de lixo (garbage collector)

 Segurança - Pode executar programas via rede


com restrições de execução

 Facilidades de Internacionalização - Suporta


nativamente caracteres Unicode

 Carga dinâmica de código – As classes são


carregadas somente no momento em que
precisam ser utilizadas
Mundo do Java!

Fonte: https://
https://meapplicationdevelopers
meapplicationdevelopers..dev.
dev.java.net/fragmentation.html
java.net/fragmentation.html
Processo Java!
Quem controla o Java?
 Controlado pela JCP (Java Community Process)

 Algumas empresas que compõem a JCP:


 Sun Microsystems
 IBM
 Oracle
 BEA Systems
 RedHat
 Novell
 Xerox
 Comunidade em Geral
Quem usa Java?
Quem desenvolve em Java?

http://www.tiobe.com
http://www.tiobe.com/index.
/index.php
php//content/
content/paperinfo/
paperinfo/tpci/index.html
tpci/index.html - Junho de 2009
Desenvolvendo em Java!
 Editores de produção gratuitos:
 Eclipse IDE
 NetBeans IDE
 Oracle® JDeveloper

 Servidores de aplicação gratuitos:


 Glassfish
 JBoss
 Tomcat
 Apache Geronimo
Edições do Java!
 Java Standard Edition (JSE)
 Base da plataforma, tudo funciona sobre este “alicerce”

 Java Enterprise Edition (JEE)


 Aplicações corporativas, com tratamento de
concorrência, alta disponibilidade, serviços distribuídos,
SOA, escalabilidade, transações etc.

 Java Micro Edition (JME)


 Aplicações para dispositivos móveis e de recursos
limitados de memória, rede e processamento
Edições do Java!
Java Standard Edition!
Java Standard Edition!
 Java Virtual Machine – Responsável por ler o
bytecode, verificar suas restrições e transformá-
lo em código nativo no ambiente hospedeiro
Java Standard Edition!
 JRE (Java Runtime Environment) – responsável
por executar os bytecodes (empacotados em
arquivos .jar) feitos em Java.

 JDK (Java Development Kit) – ferramentas


necessárias para desenvolver aplicativos em Java
Java Enterprise Edition!
Java Enterprise Edition!
 Servidores de aplicação desenvolvidos pela
comunidade ou por terceiros fornecem toda a
infra-estrutura da aplicação

 Os servidores de aplicação são desenvolvidos


sobre a especificação JEE, que é concebida pela
JCP.

 Libera o desenvolvedor de tarefas complexas


como processamento paralelo, transações,
conexões, escalabilidade etc. O desenvolvedor
foca-se na lógica do negócio e o servidor cuida do
restante.
Java Enterprise Edition!
 Robustez para atender milhares de solicitações
simultaneamente

 Suporte de Servlets, JSPs, EJBs, WebServices,


segurança, conectividade com sistemas legados,
SOA, alta-disponibilidade, escalabilidade,
segurança, transações, agrupamento de
conexões etc.

 Indicado para aplicações de grande escala e de


missão crítica
Java Enterprise Edition!

Arquitetura básica JEE


Java Enterprise Edition!
 Servidores Web:
 Jakarta TomCat
 Jetty

 Servidores de Aplicação (Web+EJB+full):


 Sun Glassfish (livre)
 JBoss (livre)
 IBM Websphere
 BEA Weblogic
 Oracle OC4J
Java Micro Edition!
Java Micro Edition!
 Permite o desenvolvimento integrado de
aplicações personalizadas para dispositivos
móveis com capacidade de processamento, vídeo
e memória limitados.
Java Micro Edition!
 História:

 O objetivo era executar a aplicação em várias


plataformas, desde máquinas ligadas à TV
habilitadas para a internet até telefones celulares
Java Micro Edition!
 Máquina virtual Java para Micro Edition

 Foi projetada para ser menor e mais eficiente


possível, e ainda permanecer rápida para as
necessidades da linguagem Java
Java Micro Edition!
 Problema: Como criar sistemas que possam
funcionar em dispositivos tão diferenciados em
níveis de processamento e funcionalidades
extras?

 Solução: Foram criadas as configurações!


Java Micro Edition!
 Configurações:
 Para ajustar e padronizar quais recursos podem ser
utilizados numa aplicação, foram criadas duas
configurações básicas:

• CDC (Connected Device Configuration)


• CLDC (Connected Limited Device Configuration)

 As configurações são baseadas em requisitos não


funcionais, como: memória, conectividade de
rede, vídeo, poder de processamento, recursos
adicionais, entre outros
Java Micro Edition!
 CDC (Connected Device Configuration):
 Direcionado para dispositivos com “maior capacidade” e
SmartPhones.
 Tem um conjunto maior de funções na sua API básica e
possui recursos mais evoluídos.
Java Micro Edition!
 CLDC (Connected Limited Device Configuration):
 Direcionado para dispositivos com capacidade muito
limitada de rede, processamento, gráficos etc.
 Tem um conjunto muito limitado de funções na sua API
básica
Java Micro Edition!
 Problema do CLDC: Existem muitos dispositivos
com capacidade limitada que possuem várias
particularidades. Por exemplo, como lidar com
um celulares que possuem câmera e outros que
não possuem? Já que os mesmos terão a mesma
capacidade de processamento e rede? Se fizer
um sistema que rode em um celular com câmera
ele não funcionará em um sem câmera...

 Isso parece um problema grave, aonde está a


compatibilidade?
Java Micro Edition!
 Solução: Foi criado o Perfil de CLDC: O MIDP

 MIDP (Mobile Information Device Profile)


 Especializa e cria alguns requisitos mínimos de hardware
e software, que vem para sanar os problemas de
celulares com câmera e sem câmera, com bluetooth ou
sem, com isso, sem isso etc.

 Agora podemos ter certeza que o dispositivo é


limitado e possui uma série de recursos
homologados na versão do seu MIDP.
Java Micro Edition!
 MIDP 1.0 – Dispositivos que possuem, no mínimo X
recursos

 MIDP 2.0 – Dispositivos que possuem, no mínimo Y


outros recursos

 Os fabricantes devem prover no dispositivo todos os


recursos homologados na versão da especificação do
MIDP.

 O desenvolvedor cria um sistema que roda sobre CLDC


1.0 e MIDP 2.0. Com isso, ele garante que em qualquer
dispositivo que suporte, no mínimo esta especificação,
seu sistema irá funcionar de forma idêntica.
Java Micro Edition!

Componentes JME
Java Micro Edition!

Arquitetura da plataforma JME


Java Micro Edition!
 Desenvolvendo em JME

 Softwares necessários:
 WTK (Sun Java Wireless Toolkit)
• Ferramentas para desenvolvimento JME
 Emuladores
 Otimizações de Performance
 Ferramentas para documentação
 Exemplos de referência

 IDE de Desenvolvimento
• NetBeans 6.1+ com Wireless tools
• Eclipse IDE com EclipseME Plugin
Java Micro Edition!
 Midlet: Aplicativo projetado para ser executado
em um dispositivo móvel
Java Micro Edition!
 Os Midlets são empacotados em arquivos “.jar” e
podem ser “instalados” em qualquer dispositivo
móvel que suporte as versões da configuração e
perfil, sem necessidade de alteração ou
recompilação

 A Máquina Virtual Java (K Virtual Machine, em


JME) controla o código do Midlets e o sistema
operacional nativo do dispositivo, controla a KVM
Java Micro Edition!
 O pacote “.jar” de um Midlet contém os seguintes
arquivos:
 Os arquivos “.class”
 Um arquivo descritor (MANIFEST.MF) descrevendo o
conteúdo do pacote
 Os recursos como imagens, mídias etc.
 O arquivo “.jad” (Java Application Descriptor) que
contém as informações sobre o aplicativo, como: nome,
versão, nome do autor etc; O dispositivo móvel lê e
apresenta ao usuário no momento da instalação
Java Micro Edition!
 Os arquivos “.jar” de Midlet podem ser instalados
através de:
 Cabo de conexão direta com o dispositivo
 Download a partir de um host externo (intranet, internet
etc)

 Ao tentar instalar, o dispositivo exibirá um


diálogo com as informações do aplicativo, e
solicitará sua confirmação ou rejeição. Caso
aceite, a aplicação será instalada
automaticamente e estará disponível logo em
seguida
Java Micro Edition!
 Pontos importantes sobre JME:
 JME é muito mais restrito que JSE, várias bibliotecas não
estão disponíveis e muitas estão disponíveis
parcialmente

 O dispositivo não tem acesso direto ao sistema de


arquivos, sistema operacional, memória e a nenhum
recurso do dispositivo; tudo é mediado pela KVM que
fica sobre total controle do SO hospedeiro

 JME não tem suporte a números pontos flutuantes


Java Micro Edition!
 Pontos importantes sobre JME:
 O fabricante do dispositivo é quem implementa a KVM
(K Virtual Machine) com base na especificação JME, que
é concebida pela JCP

 A melhor estratégia para arquitetar um sistema JME é


aproveitar seus ótimos recursos de conectividade;
servindo apenas de thin-client do sistema, ou seja, envia
e recebe dados de um sistema mais potente. Isso pode
ser implementado através de sockets, HTTP ou
WebServices
Java Micro Edition!
 Por onde começar em JME

 NetBeans IDE 6.1+

 Pode ser baixado em http://www.netbeans.org

 Interface ótima para construção de componentes JME

 Agiliza e facilita muito o trabalho com JME

 Exemplos práticos para praticamente todas as funções


JME (Bluetooth, conexão via sockets, HTTP, gráficos,
jogos de exemplo, etc)
Tendências JME
 Google Android
 http://code.google.com/intl/pt-BR/android/

• Sistema operacional de dispositivos móveis do futuro, baseado em


Linux e mantido pela Open Handset Alliance (um consórcio de 48
compahias de hardware, software e telecom empenhadas para
desenvolver padrões abertos para dispositivos móveis)

• Plataforma computacional micro completa – aplicativos podem ser


escritos em linguagem Java para interagir com todo o sistema
operacional (todos os recursos disponíveis)

• Recursos modernos como interface gráfica moderna, álbum de


fotos, MP3 Player, WebView, Google Maps, internet 3G etc.

• Alto investimento do Google, da OHA e da comunidade open-


source em geral
Resumo Geral!
 Java é uma plataforma mundial, suportada e
utilizada pelas maiores empresas do mundo

 Java é uma plataforma que não pára de crescer

 Existe Java em tudo, desde os grandes servidores


até o seu cartão do banco

 Maior comunidade de desenvolvedores do


mundo, com apostilas, revistas, dicas, código de
exemplo e muito mais
Por onde começar?
 Livros, apostilas e fórums da internet são uma
ótima escolha!
O que mais aprender?
 Melhores práticas de programação
 UML (Unified Modeling Language)
 Padrões de Projetos (Design Patterns)
 Metodologias ágeis
 Scrum
 XP (Extreme Programming)
 IBM RUP (Rational Unified Proccess)
 WebServices
 SOA – BPM – BPEL
 Preparar-se para uma certificação profissional
Certificações Java!
 Reconhecidas mundialmente
 Providas pela Prometric (Centro Mundial de
Treinamentos e Certificações)
Perguntas?

rodrigo.lopes.ferreira@hotmail.com

You might also like