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://meapplicationdevelopers.dev.java.net/fragmentation.html https://meapplicationdevelopers. dev. 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/index.php/content/paperinfo/tpci/index.html - Junho de 2009 http://www.tiobe.com/index.php/content/ paperinfo/ tpci/index.html

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 opensource 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

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times