javanoroeste grupo de usuájavanoroeste.com.br/javanoroeste/2006/fef/apresentacao_fef.pdf ·...
TRANSCRIPT
JavaNoroesteGrupo de Usuários Java do Noroeste Paulista
A tecnologia Java do mundo corporativo ao dispositivo móvel
Carlos Fernando Gonçalves
Mestre em Engenharia de Computação, área de concentração Engenharia de Software pelo
IPTSP
Bacharel em FísicaUSPSão CarlosSP
Atua no mercado de desenvolvimento de sistema a mais de nove anos.
Seis anos em desenvolvimento com tecnologia Java.
Fundador do Grupo de Usuários Java do Noroeste Paulista
● A eBay confia em Java para todas suas vendas
que ultrapassam US$ 1,400 POR SEGUNDO.
● 708 milhões de celulares rodando Java no mundo;
● 635 modelos de celular no mundo com Java;
● 32 fabricantes de celulares Java no mundo;
● 140 operadoras de telefonia móvel usando Java;
● 3 milhões de novos usuários de celulares por
semana
GSM GSM/GPRS/EDGE/UMTS e HSDPA, deve alcançar a
marca de 2 bilhões de clientes no mundo inteiro até
o final deste mês de junho de 2006.
China ainda o maior mercado de clientes GSM
registrando 662,6 milhões de assinantes em março de
2006.
A tecnologia EDGE está em operação comercial em
133 operadoras de 80 países, inclusive 31 países na
América Latina e no Caribe. Outras 81 redes EDGE
estão nas fases de planejamento ou implementação no
mundo inteiro.
Fonte: 3G Americas e a Informa Telecoms & Media
O que significa um bilhão?
Hoje os telefones celulares GSM têm o mesmo nível
de penetração global que o PC e a TV. Aproximase o
marco de um bilhão de clientes GSM, o equivalente à
população da Índia. GSM atingiu este marco histórico
em apenas 11 anos!
GSM está disponível em 206 países e territórios
para 99,8 por cento da população mundial. GSM dá a
todos a oportunidade de participar de uma comunidade
global. Isto permite a praticamente todos os
usuários móveis permanecerem em contato em qualquer
lugar do mundo, onde quer que eles estejam.
Uma em cada seis pessoas no planeta tem um
telefone celular GSM.
GSM tem uma participação de mercado de 72 por
cento.
Cem por cento dos usuários móveis na Europa
Ocidental.
Noventa e cinco por cento dos usuários móveis na
China.
7 em cada 10 novos clientes no Continente
Americano escolheram GSM no 4º. Trimestre de 2003.
A tecnologia GSM possibilita novas formas de
comunicações – SMS, MMS, mensagens de vídeo e jogos.
GSM permite que as pessoas permaneçam em contato
onde quer que elas estejam e proporciona opções de
comunicação e informações, bem como maior acesso a
um maior número de pessoas, em um maior número de
lugares no mundo todo.
Algumas empresas no Brasil que utilizam JEE:
Banco do Brasil;
Bradesco;
Caixa Econômica Federal;
DataPrevi.
Simples;
Orientada a objetos;
Distribuída;
Robusta;
Segura;
Neutra em relação à arquitetura;
Portável;
Interpretada;
Alto desempenho;
Múltiplas linhas de execução
(Multithreaded);
Dinâmica.
Palavraschave da linguagem Java
Java Standart Edition JSE
Universo JavaJava Virtual Machine
Universo Java
A JavaTM Platform
OptionalPackages
Java Enterprise
Edition(JEE)
Java StandardEdition
(JSE)
JVM
Java Card APIs
CardVM
OptionalPackages
Personal Basis Profile
Personal Profile
Foundation Profile
CDC
MIDP
CLDC
KVM
Java Platform Micro Edition(JMETM)
* Under development in JCP
ClientServer
Três Camadas
Web Application
Web Services
HíbridoP2P Fractal
Padrões de Comunicação
O JEE (Java Enterprise Edition) é uma plataforma
de programação de computadores que faz parte da
plataforma Java.
Ela é voltada para aplicações multicamadas,
baseadas em componentes que são executados em um
servidor de aplicações. A plataforma Java EE é
considerada um padrão de desenvolvimento já que o
fornecedor de software nesta plataforma deve seguir
determinadas regras se quiser declarar os seus
produtos como compatíveis com Java EE.
Java EE
Java EE
Camada de Apresentação Framework MVC, Servlets,
JSPs, Janelas Swing, XML transmitidos por HTTP,
Sockets;
Camada de aplicação: POJOs implementando os
Padrões Business Delegate ou Façade, Stateless,
Session Beans implementando Façade;
Camadas de negócios: POJOs;
Camadas de Persistência: DAOs, classes que lidam
com JDBC diretamente ou com o framework de
mapeamento (Hibernate, JDO...).
Camadas Lógicas em Java EE
No desenvolvimento de aplicações corporativas ou
para internet, normalmente é necessário o uso de
recursos avançados como objetos distribuídos,
mapeamento objetorelacional para persistência de
dados, controle de transação, segurança, manipulação
de XML, Web Services, entre outros itens.
Com JEE, não precisam ser implementados pelo
desenvolvedor. Toda a infraestrutura para gerenciar
os aspectos complexos ficam a cargo de um servidor
de aplicações ou um servidor Web. Qualquer
componente JEE precisa rodar dentro de um servidor.
Java EE
Portanto, existe uma inversão de controle, na
qual o desenvolvedor deve usar uma API padronizada
e implementar métodos que serão invocados pelo
servidor.
Java EE
Arquitetura daPlataforma Java EE
B2BApplications
B2CApplications
WebServices
WirelessApplications
Servidores de AplicaçãoEnterpriseInformation
SystemsEIS
AplicaçõesExistentes
Um Servidor de Aplicação (Application Server), é
um software que disponibiliza um ambiente para a
instalação e execução de certas aplicações. Os
servidores de aplicação também são conhecidos como
software de Middleware.
Java EEServidores de Aplicação
Devido a popularização da plataforma Java, o termo
servidor de aplicação é frequentemente uma referência
a "Servidor de aplicação JEE". Os servidores
WebSphere Application Server da IBM, WebLogic Server
da BEA Systems e Oracle Application Server 10g, são
alguns conhecidos servidores JEE comerciais.
Java EEServidores de Aplicação
Alguns servidores de software livre também são
muito utilizados, como JBoss, JOnAS e Geronimo.
Como mencionado a linguagem de programação destes
softwares é Java. Os módulos Web são implementados
através de servlets e JSP e a lógica de negócio
através de EJBs. A plataforma J2EE disponibiliza
padrões para os containers Web e EJB. O Tomcat é um
exemplo de container de software livre, onde os
módulos Web podem ser publicados.
Java EEServidores de Aplicação
EJB ou Enterprise JavaBeans é um dos principais
componentes da plataforma J2EE (Java 2 Enterprise
Edition).
Java EEEJB
EJB é um componente do tipo servidor que roda no
container para EJB no servidor de aplicações;
EJB fornece rápido e simplificado
desenvolvimento de aplicações Java baseadas em
componentes, distribuídas, multicamadas,
transacionais, escaláveis, seguras e portáveis.
Java EEEJB
Atualmente ele encontrase na versão 3.0 e seu
futuro é definido conjuntamente entre grandes
empresas como Sun, IBM, Oracle e HP como também
por uma vasta comunidade de desenvolvedores numa
rede mundial de colaboração sob o portal do JCP.
Java EEEJB
Arquitetura de componentes de negócio
reutilizáveis
Entity Beans
Session Beans
Message Driven Beans
Baseado em RMI e CORBA, o EJB permite distribuir
os componentes
Simplificação do desenvolvimento distribuído
Java EEEJB
Propõese a abstrair do desenvolvedor serviços
de infraestrutura, delegados ao contêiner EJB
persistência,
transação,
segurança,
lock,
...
Java EEEJB
Java EECalculadora EJB 3.0Interface remota
package br.com.javanoroeste.ejb30;
import javax.ejb.Remote;
@Remotepublic interface Calculadora { /** Soma os inteiros a e b e retorna o resultado (a+b) */ int somar(int a, int b); /** Subtrai b de a e retorna o resultado (a-b) */ int subtrair(int a, int b); }
Java EECalculadora EJB 3.0
Classe do bean
package br.gov.se.sefaz.ejb30;
import javax.ejb.Stateless;
@Statelesspublic class CalculadoraBean implements Calculadora { /** Soma os inteiros a e b e retorna o resultado (a+b) */ public int somar(int a, int b) { return a + b; } /** Subtrai b de a e retorna o resultado (a-b) */ public int subtrair(int a, int b) { return a - b; } }
Simplificar a arquitetura EJB e tornála fácil
de utilizar
Aumentar a produtividade
Facilitar o desenvolvimento orientado a testes
Facilitar a persistência
Melhorar o suporte das ferramentas de
desenvolvimento
Atrair os desenvolvedores pela facilidade
Java EEEJB 3.0
Mas o que JEE possui além de EJBs e Servlets?
O JEE é composto apenas de Servlets e EJBs?
Sistemas que não usam EJB não podem ser
considerado JEE?
Java EE
Os Servlets são objetos que residem em um
servidor e tem como função principal tratar da
comunicação entre duas partes baseado no paradigma
pedido/resposta.
Java EEServlets
Request CGI2
Request CGI1
Request Servlet1
Request Servlet2
Request Servlet1
CGIBaseado
WebserverFilho para CGI2
Filho para CGI1
Servlet Baseado Webserver
JVMServlet1
Servlet2
Request CGI1Filho para CGI1
Paradigma pedido/resposta
Java EEServlets
Java EEServlets
Servletspackage exemplo;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class OlaServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body><head>");
out.println("<title>Alo Fernandopolis!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Alo Fernandopolis!</h1>");
out.println("</body></html>");
}
}
Java EEServlets
JSPJava ServerPage, é a tecnologia da SUN para
criação de páginas Web dinâmicas. É como se o
desenvolvedor escrevesse HTML com algumas
marcações (tags) especiais que dão dinamicidade
para as páginas. Internamente, os JSPs funcionam
da mesma maneira que os Servlets, inclusive todo
JSP é transformado em um Servlet aos executado.
Java EEJSP
<html>
<head>
<title>Olá Fernandópolis</title>
</head>
<body>
Codificação HTML <br>
<% for(int i=0;i<100;i++) { %>
<p>Repetição: <%= i %></p>
<%}%>
</body>
</html>
Java EEJSP
Permite separar a lógica de negócios da apresentação;
● Apresentção pode ser na forma de HTML ou
XML/XSLT;
● A lógica de negócios é implementada com
JavaBeans ou tags customizáveis;
● Melhora na manutenção e na reusabilidade
Extensível via tags personalizadas;
É transformado em Servlet antes da sua execução;
Java EEJSP
Java EEJSP
Num ambiente real de produção típico, Servlet e
JSP são utilizados juntos no chamado no padrão MVC
(ModelViewController) ModeloVisualização
Controle
Servlet pega a parte de controle
JSP pega a parte de visualização
Java EEJSP
JSP
●HTML codificado no Java
●Não é fácil de escrever
●Java melhor codificação no HTML
●Muito mais fácil de escreverr
●Código é interpretado e transformado num Servlet
Servlets
Java EEJSP
ACID Atomic, Consistent, Isolated, Durable;
são as propriedades de uma transação
B2B BusinesstoBusiness
BAM Business Activity Monitoring
BEIDTF Business Enterprise Integration Domain
Task Force
BPD Business Process Diagram
BPDM Business Process Definition Metamodel
BPEL Business Process Execution Language
BPEL4WS BPEL for Web Services
Sopa de letrinhas, por onde começar?
Sopa de letrinhas, por onde começar?
BPELJ BPEL for Java
BPM Business Process Modeling, algumas vezes e
chamado de Business Process Management
BPDM Business Process Definition Metamodel
BPML Business Process Modeling Language
BPMN Business Process Modeling Notation
BPMI Business Process Iniative; isto e uma
organizacao, nao e uma especificacao
BPRI Business Process Runtime Interface
BPQL Business Process Query Language
BPMS Business Process Semantic Model
Sopa de letrinhas, por onde começar?
BPSS Business Process Specification System
BPXL Business Process Extension Layers
BRM Business Rules Management
BSBR Business Semantics of Business Rules
CWM Common Warehouse Metamodel
CWAD Common Workflow Audit Data
EAI Enterprise Application Integration
ESB Enterprise Service Bus
POJOs Plain Old Java Objects
PD4J Process Definition for Java
SOA Serviceoriented Architecture
WSDL Web Service Description Languafe
Sopa de letrinhas, por onde começar?
BPSS Business Process Specification System
BPXL Business Process Extension Layers
BRM Business Rules Management
BSBR Business Semantics of Business Rules
CWM Common Warehouse Metamodel
CWAD Common Workflow Audit Data
EAI Enterprise Application Integration
ESB Enterprise Service Bus
POJOs Plain Old Java Objects
PD4J Process Definition for Java
SOA Serviceoriented Architecture
WSDL Web Service Description Languafe
Alguns exemplos de uso de JME:
Jogos para celulares;
Informações Bancárias;
Acompanhamento de serviços por celular;
Multimídia;
SMS e MMS.
JME
JME
JME
A MedicTouch criou o sistema PulseMeter, que é
composto de sensor de batimentos cardíacos,
conectado a telefones celulares, em comunicação
com servidores para armazenamento e análise de
dados coletados.
JME
A solução é bastante inovadora, pois transforma
dispositivos utilizados prioritariamente para
comunicação em ferramentas de monitoração remota,
em tempo real, de saúde e bemestar físico.
JME
A tecnologia Java, como base para todo o
sistema, é responsável por desde a
conectividade segura com dispositivos móveis
até a sofisticada interface gráfica nas telas
dos telefones celulares e PDAs.
JME
JME – O Java Micro Edition provê facilidades para
criar aplicações embarcadas (chamadas também de
“embutidas”) que rodam em dispositivos menores ou
especializados, como PDAs e celulares. A variação é
grande: a tecnologia é usada, por exemplo, em
sistemas de navegação de veículos, brinquedos, robôs
espaciais e em muitos outros dispositivos
especializados.
Universo JavaJME
JME
OptionalPackages
Java Enterprise
Edition(JEE)
Java StandardEdition
(JSE)
JVM
Java Card APIs
CardVM
OptionalPackages
Personal Basis Profile
Personal Profile
Foundation Profile
CDC
MIDP
CLDC
KVM
Java Platform Micro Edition(JMETM)
* Under development in JCP
JMEArquitetura
Devido a grande variedade de dispositivos, eles
são agrupados em configurações (Configurations).
Uma Configuration define um ambiente Java,
incluindo máquina virtual e um conjunto básico de
APIs para um grupo comum de dispositivos.
Atualmente existem duas definidas:
● CDC
● CLDC
JMEConfigurations
CDC(Connected Device Configuration) –
Configuração mais pesada desenvolvido para
dispositivos com maior capacidade PDA´s (gama
alta), Settop boxes, gateways, TV´s, ... Mínimo
de 512 k para executar a VM; 256 k para alocação
de memória;
São para dispositivos com ao menos 2MB de
memória disponível e suportam um JVM de
característica mais rica (mas não ainda um JVM
padrão).
JMECDC
CDC(Connected Limited Device Configuration) –
Configuração mais leve Desenvolvido para
dispositivos com capacidade limitada PDA´s (gama
baixa), Telefones Celulares, pagers, ... Mínimo de
128 k para executar a VM; 32 k para alocação de
memória; Interface mais restrita;
JMECLDC
Completando as Configuratios, existem os
Profiles, que são perfis que provêem capacidades
para uma família específica de dispositivos ou
segmento da indústria. Podemos citar como exemplo,
classes para interface com usuário, tratamento de
eventos e mecanismos de persistência.
JMEProfiles
128 kB de memória não volátil;
32 kB para heap;
8 kB para persistência de dados;
Tela de 96x54 pixels;
Entrada de dados;
Conexões de rede (intermitentes);
Segurança – conceito de sandbox das applets;
JMEMIDP 1.0
Segurança: baseado em permissões do J2SE;
Novas API´s para aprimorar o desenvolvimento:
Game API;
Media API;
Secure Connection API;
JMEMIDP 2.0
A KVM (Kilo Virtual Machine) é uma
implementação da VM (Virtual Machine) otimizada
para ser utilizado em dispositivos limitados e foi
desenvolvida para ser facilmente portável.
JMEMaquina Virtual (KVM)
JMEMaquina Virtual (KVM)
MIDlet
As “MIDlets” são aplicações desenvolvidas sobre
a plataforma J2ME.
JMEMIDlet
Ciclo de Vida de uma MIDlet
Cada dispositivo possui um AMS (Aplication
Manager System) que é responsável por controlar os
aplicativos que serão instalados e também
administrará como serão armazenados e como será o
seu comportamento durante a execução. Uma coisa
que deve ser ressaltada é a importância do arquivo
JAD que vem acompanhado com o arquivo JAR, no JAD
estão todas as informações que o JAR precisa para
executar a MIDlet.
JME
Estados de uma MIDlet
Start – Onde é feita a Aquisição de recursos
inicializando a execução (startApp);
Pause – Liberação de recursos em um modo de
espera, ou seja, pausado utilizado ao atender
telefone, receber SMS dentre outra aplicação
(pauseApp);
Destroy – Liberação de todos os recursos
(destroyApp).
JME
JME
Application Manager (AMS)
A AMS é um software préinstalado em
dispositivos MIDP que funciona como um ambiente
operacional, e é responsável pela chamada dos
métodos, startApp(), pauseApp() e destroyApp(),
conforme o ciclo de vida visto acima. Veremos mais
detalhadamente quando estivermos fazendo a nossa
primeira aplicação.
JME
Composição do MIDP
javax.microedition.lcdui:
– Display;
– Screen: Alert, TextBox, List, Form;
– Item: TextField, StringItem, ImageItem,
ChoiceGroup, DateField;
– Canvas;
– Graphics;
– Command;
– CommandListener.
JME
Maquina Virtual (KVM)
JSR 82: Java API for Bluetooth
JSR 75: PDA Optional Packages for the J2ME
Platform
JSR 172: J2ME Web Services Specification
JSR 185: Java Technology for the Wireless Industry
JSR 177: Security and Trust Services API for J2ME
JSR 238: Mobile Internationalization API
JSR 205: Wireless Messaging API 2.0
JME
Criando um Midlet
Classe que estenda javax.microedition.midlet.Midlet
Arquivo descritor (.JAD)
Pacote da aplicação (.JAR)
Arquivo Manifest.mf (dentro do .JAR)
Aplicação J2ME
Código.java
Código.class
preverifier
Código.classpreverif icada
javac
Desktop Dispositivo
Código.jar
Código.jar
KVMInterpretador
Em
paco
tad
or (ja
r)
Eclipse, Ant e NetBeans
Apache AntAntennaEclipseEclipseMENetBeans
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Maquina Virtual (KVM)
Grupo de Usuários Java
Sun Microsystems afirma que “um Grupo de Usuários Java é
um grupo de pessoas que compartilham um interesse comum na
tecnologia Java, e se encontram regularmente para
compartilhar idéias e informações. Na verdade, a estrutura
de um JUG pode variar enormemente, de um pequeno grupo de
amigos e colegas de trabalho para um um grande grupo de
empresas localizadas em uma mesma área geográfica.
Independentemente do tamanho ou foco de um JUG em
particular, o espírito da comunidade permanecem o mesmo”.
Grupo de Usuários Java
Atualmente o JavaNoroeste é patrocinado por WebNow.
Grupo de Usuários Java
JavaNoroeste é apoiado pela revista MundoJava.
Grupo de Usuários Java
JavaNoroeste é apoiado pela.
Montando o ambiente HSQLDB
Um terminal DOS será aberto com um aplicativo
Swing que é o Gerenciador do HSQLDB.
Em “Setting Name” coloque DB;
Em “Type” altere para “HSQL Database Engine
WebServer”;
Não altere o valor que está em “Driver”;
Em “URL” coloque
“jdbc:hsqldb:http://localhost/mvc”;
Não altere nem o parâmetro “User” e “Password”;
Clique em OK.
Agradeço a presença de todos.FIM