Desenvolvendo Aplicações Livres em...

70
1º Seminário de Software Livre Tchêlinux 1º Seminário de Software Livre Tchêlinux Gravataí - ULBRA Gravataí - ULBRA Desenvolvendo Desenvolvendo Aplicações Livres em Java Aplicações Livres em Java João Avelino Bellomo Filho João Avelino Bellomo Filho Ranieri de Souza Fernandes Ranieri de Souza Fernandes

Transcript of Desenvolvendo Aplicações Livres em...

Page 1: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

1º Seminário de Software Livre Tchêlinux1º Seminário de Software Livre TchêlinuxGravataí ­ ULBRAGravataí ­ ULBRA

DesenvolvendoDesenvolvendoAplicações Livres em JavaAplicações Livres em Java

João Avelino Bellomo FilhoJoão Avelino Bellomo FilhoRanieri de Souza FernandesRanieri de Souza Fernandes

Page 2: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Os PalestrantesOs Palestrantes

Page 3: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

AgendaAgenda✔ Java, como começou...Java, como começou...✔ Plataforma JavaPlataforma Java✔ Java e Software LivreJava e Software Livre✔ Ferramentas: Eclipse, Netbeans, etc...Ferramentas: Eclipse, Netbeans, etc...✔ Servidor de AplicaçãoServidor de Aplicação✔ Frameworks: Google Web Toolkit, ANDROID, Frameworks: Google Web Toolkit, ANDROID, 

OpenLazlo, etc...OpenLazlo, etc...

Page 4: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Java, como começou?Java, como começou?✔ Linguagem OakLinguagem Oak✔ Green ProjectGreen Project✔ ObjetivosObjetivos

✔ Orientada a objetosOrientada a objetos✔ Permitir a execução em diferentes  S.O.sPermitir a execução em diferentes  S.O.s✔ Conter suporte nativo para redesConter suporte nativo para redes✔ Execução segura a partir de fontes remotasExecução segura a partir de fontes remotas✔ Fácil de usar aproveitando características de Fácil de usar aproveitando características de 

outras Linguagensoutras Linguagens

 → → *7 (StarSeven)*7 (StarSeven)

Page 5: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Java, como começou?Java, como começou?

✔ Linguagem OakLinguagem Oak✔ Green ProjectGreen Project✔ ObjetivosObjetivos✔ A integração com o Netscape BrowserA integração com o Netscape Browser✔ Applets, Java 2, evolução do desenvolvimentoApplets, Java 2, evolução do desenvolvimento

Page 6: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Quem ”manda” no Java?Quem ”manda” no Java?

✔ JCP – Java Community ProcessJCP – Java Community Process

✔ Qualquer um pode se inscreverQualquer um pode se inscrever

✔ O processo é aberto desde o inícioO processo é aberto desde o início

✔ O papel da SunO papel da Sun

Page 7: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Membros JCPMembros JCP✔ Apache Software FoundationApache Software Foundation✔ BEA SystemsBEA Systems✔ BorlandBorland✔ GoogleGoogle✔ Fujitsu LimitedFujitsu Limited✔ Hewlett­PackardHewlett­Packard✔ IBMIBM✔ IntelIntel✔ OracleOracle✔ Red Hat Red Hat ✔ SAPSAP✔ SAPSAP✔ Sun MicrosystemsSun Microsystems✔ ......

Page 8: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Brasil no JCPBrasil no JCP

✔ SouJavaSouJava✔ Bruno SouzaBruno Souza✔ Marlon LuzMarlon Luz✔ Osvaldo Pinali DoederleinOsvaldo Pinali Doederlein✔ Waldir Pires Jr.Waldir Pires Jr.

✔ ......

Page 9: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

O que é realmente o Java?O que é realmente o Java?

✔ A visão comum ­ linguagemA visão comum ­ linguagem

✔ O que realmente é?O que realmente é?

Page 10: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Plataforma JavaPlataforma Java

✔ Três grande subdivisões:Três grande subdivisões:

• JSE (Java SE): Java Standard EditionJSE (Java SE): Java Standard Edition

• JEE (Java EE): Java Enterprise EditionJEE (Java EE): Java Enterprise Edition

• JME (Java ME): Java Micro EditionJME (Java ME): Java Micro Edition

Page 11: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

JVM – O segredo da portabilidadeJVM – O segredo da portabilidade

Page 12: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

JVM – O segredo da portabilidadeJVM – O segredo da portabilidade✔ Java Virtual Machine é, a grosso modo, um Java Virtual Machine é, a grosso modo, um 

interpretador de bytecodesinterpretador de bytecodes

✔ Interpreta os bytecodes e transforma­os em uma Interpreta os bytecodes e transforma­os em uma série de instruções nativas, utilizando recursos série de instruções nativas, utilizando recursos do SO.do SO.

✔ É a base de toda plataforma JavaÉ a base de toda plataforma Java✔ Contém a API, o gerenciamento de memória, e Contém a API, o gerenciamento de memória, e 

todos os recursos base utilizados pelas outras todos os recursos base utilizados pelas outras ediçõesedições

Page 13: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

JVM – O segredo do desempenhoJVM – O segredo do desempenho

J I T J I T 

Compilador just­in­timeCompilador just­in­time

Page 14: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

JVM – O segredo do desempenhoJVM – O segredo do desempenho✔ Paul Buchheit foi o Paul Buchheit foi o 

criador e líder de criador e líder de desenvolvimento do desenvolvimento do Gmail.Gmail.

Page 15: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

JVM – O segredo do desempenhoJVM – O segredo do desempenho

Trecho da entrevista com  Orkut Buyukkokten, criador do OrkutTrecho da entrevista com  Orkut Buyukkokten, criador do Orkut

“ “ Ontem, aqui na Abril, nós conversamos com o Orkut umas Ontem, aqui na Abril, nós conversamos com o Orkut umas duas horas. Ele contou que criou o site de relacionamentos duas horas. Ele contou que criou o site de relacionamentos em .Net – gosta particularmente de C# pela rapidez de em .Net – gosta particularmente de C# pela rapidez de programação – mas teve de passar para programação – mas teve de passar para Java por ter a Java por ter a escalabilidadeescalabilidade  necessárianecessária.  A passagem de uma tecnologia .  A passagem de uma tecnologia para a outra durou um ano – daí as 80 horas por semana” para a outra durou um ano – daí as 80 horas por semana” (InfoOnline)(InfoOnline)

Page 16: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

A API JavaA API Java✔ Conjunto de funcionalidades Conjunto de funcionalidades nativasnativas da linguagem da linguagem✔ Carga dinâmica de bibliotecasCarga dinâmica de bibliotecas✔ Abstração do sistema operacionalAbstração do sistema operacional✔ O que não estiver implementado, é facilmente O que não estiver implementado, é facilmente 

integradointegrado✔ Não é Não é engessadoengessado. O programador pode fazer . O programador pode fazer 

suas próprias implementaçõessuas próprias implementações

✔ Garbage CollectorGarbage Collector

Page 17: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Garbage CollectorGarbage Collector

Page 18: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JSE (Java SE)JSE (Java SE): contém a JVM, API e recursos: contém a JVM, API e recursos

Page 19: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JME (Java ME)JME (Java ME): é, basicamente, um subset da : é, basicamente, um subset da 

JSE, utilizada para ambientes JSE, utilizada para ambientes embeddedembedded✔ É a tecnologia mais utilizada no mundo para É a tecnologia mais utilizada no mundo para 

dispositivos dispositivos embeddedembedded✔ Pode rodar numa infinidade de dispositivos: Pode rodar numa infinidade de dispositivos: 

telefones celulares, PDA's, TV's, impressoras, telefones celulares, PDA's, TV's, impressoras, etc...etc...

✔ Possui um robusto sistema de segurança, Possui um robusto sistema de segurança, protocolos de comunicação integrados e todas protocolos de comunicação integrados e todas as características de portabilidade do Javaas características de portabilidade do Java

Page 20: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JEE (Java EE)JEE (Java EE): é a plataforma de : é a plataforma de 

desenvolvimento de aplicações desenvolvimento de aplicações enterpriseenterprise✔ É construída sobre a J2SEÉ construída sobre a J2SE✔ Provê recursos para desenvolvimento de Provê recursos para desenvolvimento de 

aplicações de grande porte, multi­camadas, aplicações de grande porte, multi­camadas, portáveis e escaláveisportáveis e escaláveis

✔ Possibilita o desenvolvimento da aplicação, Possibilita o desenvolvimento da aplicação, livrando o programador de criar do zero livrando o programador de criar do zero estruturas altamente complexas e que não estão estruturas altamente complexas e que não estão diretamente relacionadas à lógica da aplicaçãodiretamente relacionadas à lógica da aplicação

Page 21: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Detalhes sobre a plataformaDetalhes sobre a plataforma✔ J2EE (Java EE)J2EE (Java EE): : 

• JDBCJDBC (Java Database Connectivity), utilizado no  (Java Database Connectivity), utilizado no acesso a bancos de dados;acesso a bancos de dados;

• ServletsServlets, são utilizados para o desenvolvimento de , são utilizados para o desenvolvimento de aplicações Web com conteúdo dinâmico aplicações Web com conteúdo dinâmico 

• JSPJSP (Java Server Pages), um especialização do  (Java Server Pages), um especialização do servlet que permite que conteúdo dinâmico seja servlet que permite que conteúdo dinâmico seja facilmente desenvolvido.facilmente desenvolvido.

Page 22: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Detalhes sobre a plataformaDetalhes sobre a plataforma✔ JEE (Java EE)JEE (Java EE): : 

• JTAJTA (Java Transaction API), é uma API que  (Java Transaction API), é uma API que padroniza o tratamento de transações dentro de uma padroniza o tratamento de transações dentro de uma aplicação Java.aplicação Java.

• EJBsEJBs, utilizados no desenvolvimento de , utilizados no desenvolvimento de componentes de software.componentes de software.

• JCAJCA (Java Connector Architecture), é uma API que  (Java Connector Architecture), é uma API que padroniza a ligação a aplicações legadas.padroniza a ligação a aplicações legadas.

Page 23: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Detalhes sobre a plataformaDetalhes sobre a plataforma✔ Java CardJava Card: : ✔ Interoperabilidade: “Escreva uma vez e rode em qualquer Java Card;Interoperabilidade: “Escreva uma vez e rode em qualquer Java Card;

✔ Seguro: Além do ambiente de execução seguro herdado de JSE, Java Card Seguro: Além do ambiente de execução seguro herdado de JSE, Java Card implementa diversas funções criptográficas, aproveitando as funções dos cartões implementa diversas funções criptográficas, aproveitando as funções dos cartões inteligentes como tokens criptográficos;inteligentes como tokens criptográficos;

✔ É Java! Aproveite seus conhecimentos JSE para desenvolver para cartões É Java! Aproveite seus conhecimentos JSE para desenvolver para cartões inteligentes!inteligentes!

✔ Capacidade de múltiplos aplicativos no mesmo cartão inteligenteCapacidade de múltiplos aplicativos no mesmo cartão inteligente

✔ Dinâmico: É possível instalar um novo applet que já foi distribuído. Se precisar Dinâmico: É possível instalar um novo applet que já foi distribuído. Se precisar atualizar o serviço no cartão de seus clientes, na próxima vez que o cartão for atualizar o serviço no cartão de seus clientes, na próxima vez que o cartão for inserido no terminal ele será atualizado.inserido no terminal ele será atualizado.

✔ Compatível com padrões da indústria: Suporta a norma ISO7816 e padrões de Compatível com padrões da indústria: Suporta a norma ISO7816 e padrões de telecomunicações. Boa parte dos SIM Cards no Brasil são JavaCards.telecomunicações. Boa parte dos SIM Cards no Brasil são JavaCards.

Page 24: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Hmmm...Hmmm...

E onde está o Software Livre???E onde está o Software Livre???

Page 25: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Considerações FilosóficasConsiderações Filosóficas✔ O que é Software Livre???O que é Software Livre???

““Softwares que são fornecidos aos seus usuários Softwares que são fornecidos aos seus usuários com a liberdade de executar, estudar, modificar e com a liberdade de executar, estudar, modificar e repassar (com ou sem alterações) sem que, para repassar (com ou sem alterações) sem que, para isso, os usuários tenham que pedir permissão ao isso, os usuários tenham que pedir permissão ao

autor do programa.”autor do programa.”

✔ O que define um Software como Livre?O que define um Software como Livre?

O Licenciamento, a licença de uso adotada.O Licenciamento, a licença de uso adotada.

Page 26: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Considerações FilosóficasConsiderações Filosóficas✔ Licenças de Software Livre:Licenças de Software Livre:

• GPL (General Public License)GPL (General Public License)

• BSD (Berkeley Software Distribution)BSD (Berkeley Software Distribution)

• MozillaMozilla

• ApacheApache

• etc ...etc ...

Page 27: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Considerações FilosóficasConsiderações Filosóficas✔ Quais as motivações de desenvolver Software Quais as motivações de desenvolver Software 

Livre?Livre?

• Ambiente de teste amploAmbiente de teste amplo

• Desenvolvimento ColaborativoDesenvolvimento Colaborativo

• O nome do Desenvolvedor fica conhecidoO nome do Desenvolvedor fica conhecido

• Devolve a sociedade, e recebe dela, conhecimentoDevolve a sociedade, e recebe dela, conhecimento

• etc...etc...

Page 28: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Java não é e nunca será Java não é e nunca será Software Livre!Software Livre!

Java não é software, Java não é software, é uma especificação!é uma especificação!

As implementações de As implementações de Java que podem ser Java que podem ser 

Software Livre!Software Livre!

Page 29: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Por quê Java?Por quê Java?✔ O processo sempre foi abertoO processo sempre foi aberto✔ A Sun liberou o código­fonte de toda a plataformaA Sun liberou o código­fonte de toda a plataforma✔ A estratégia dos grandes (IDEs, ferramentas)A estratégia dos grandes (IDEs, ferramentas)✔ É um padrão de indústriaÉ um padrão de indústria✔ As características favorecem a usabilidadeAs características favorecem a usabilidade✔ A disputa entre A disputa entre .Net.Net  XX  JavaJava✔ Possui um grande portfólio de aplicações Open Possui um grande portfólio de aplicações Open 

SourceSource✔ Foi Foi adotadaadotada pela indústria como alternativa às  pela indústria como alternativa às 

soluções fechadassoluções fechadas

Page 30: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Java e o Software LivreJava e o Software Livre✔ Freshmeat ranking de linguagensFreshmeat ranking de linguagens

✔ 1­ C  (8851 projetos)  1­ C  (8851 projetos)  ✔ 2­ Java  (5822 projetos)  2­ Java  (5822 projetos)  ✔ 3­ C++  (4867 projects)  3­ C++  (4867 projects)  

✔ Portal java.netPortal java.net✔ Projetos  Projetos  ✔ Grupos de usuáriosGrupos de usuários✔ Foruns Foruns 

Page 31: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Adoção do JavaAdoção do JavaTIOBE Programming Community Index for November 2007TIOBE Programming Community Index for November 2007

Page 32: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Adoção do JavaAdoção do JavaTIOBE Programming Community Index for November 2007TIOBE Programming Community Index for November 2007

Page 33: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Qual é a linguagemQual é a linguagemcom mais linhas de códigocom mais linhas de código

escrito no mundo?escrito no mundo?

COBOL!COBOL!

Page 34: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

CobolCobol✔ O Cobol é a linguagem mais usada no mundo todo, podendo O Cobol é a linguagem mais usada no mundo todo, podendo 

chegar a mais de 75% dos códigos existentes. 5 bilhões de li­chegar a mais de 75% dos códigos existentes. 5 bilhões de li­nhas de código de Cobol são adicionadas todos os anos aos nhas de código de Cobol são adicionadas todos os anos aos DataCenters do mundo inteiro. (fonte: itweb)DataCenters do mundo inteiro. (fonte: itweb)

✔ Mais de 83% das transações mundiais são feitas em Cobol. Mais Mais de 83% das transações mundiais são feitas em Cobol. Mais de 60% das informações residentes na Web estão em de 60% das informações residentes na Web estão em Mainframe.Mainframe.

✔ Mais de 95% das aplicações financeiras e seguridade são Mais de 95% das aplicações financeiras e seguridade são processadas em Cobol.processadas em Cobol.

✔ Raras universidade possui em sua grade cursos relacionados à Raras universidade possui em sua grade cursos relacionados à plataforma Mainframe. plataforma Mainframe. 

Page 35: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Qual das linguagens de Qual das linguagens de programação modernas programação modernas 

roda em Mainframes?roda em Mainframes?

JAVA!JAVA!

Page 36: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Java no MainframeJava no Mainframe

Page 37: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Quais ferramentas Quais ferramentas existem para seexistem para se

trabalhar com Java?trabalhar com Java?

Page 38: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

O JDKO JDK✔ java (runtime)java (runtime)✔ javac (compilador)javac (compilador)✔ javadoc (documentador)javadoc (documentador)✔ jarjar✔ jarsignerjarsigner✔ javawsjavaws✔ jconsolejconsole✔ ......

Page 39: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ JConsoleJConsole

Page 40: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ EclipseEclipse

Page 41: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ EclipseEclipse

• Open SourceOpen Source

• MultiplataformaMultiplataforma

• Grande gama de plugins e recursosGrande gama de plugins e recursos

• Desenvolvimento para todas as Desenvolvimento para todas as ediçõesedições

• Extremamente intuitivoExtremamente intuitivo

• Diversos “Sabores”Diversos “Sabores”

Page 42: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ Eclipse FoundationEclipse Foundation

• Europa Fall – 3.3.2Europa Fall – 3.3.2

• http://www.eclipse.orghttp://www.eclipse.org

• Várias opções disponíveisVárias opções disponíveis

• IDE for Java Developers (79M)IDE for Java Developers (79M)

• IDE for Java EE Developers (125M)IDE for Java EE Developers (125M)

• IDE for C/C++ Developers (59M)IDE for C/C++ Developers (59M)

• For RCP/Plugin Developers (153M)For RCP/Plugin Developers (153M)

• Classic (137M)Classic (137M)

Page 43: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ EasyEclipseEasyEclipse

• Mantida por um time de desenvolvedoresMantida por um time de desenvolvedores

• http://www.easyeclipse.org/http://www.easyeclipse.org/

• Opções oferecidas:Opções oferecidas:

• Exper Java  (1.2.2 – 121M / 1.3.1.1 ­ 133M)Exper Java  (1.2.2 – 121M / 1.3.1.1 ­ 133M)

• Desktop Java (1.2.2 – 127M/ 1.3.1.1 ­ 139M)Desktop Java (1.2.2 – 127M/ 1.3.1.1 ­ 139M)

• Server Java (1.2.2 – 223M)Server Java (1.2.2 – 223M)

• Mobile Java (1.2.2 – 131M/ 1.3.1.1 ­ 152M)Mobile Java (1.2.2 – 131M/ 1.3.1.1 ­ 152M)

• For Plugins and RCP Apps (1.2.2 – 209M/ 1.3.1.1 – 224M)For Plugins and RCP Apps (1.2.2 – 209M/ 1.3.1.1 – 224M)

• For C/C++; Ruby and Rails; PHP; Python; LAMP; etc ...For C/C++; Ruby and Rails; PHP; Python; LAMP; etc ...

Page 44: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ NetBeansNetBeans

Page 45: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ NetbeansNetbeans

• Open SourceOpen Source

• MultiplataformaMultiplataforma

• Grande gama de plugins e recursosGrande gama de plugins e recursos

• Desenvolvimento para todas as Desenvolvimento para todas as ediçõesedições

• Extremamente intuitivoExtremamente intuitivo

Page 46: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ Netbeans 6.1Netbeans 6.1

• Editor ImprovementsEditor Improvements• Ruby/JRuby/Ruby on Rails SupportRuby/JRuby/Ruby on Rails Support• Easier Installation and UpgradingEasier Installation and Upgrading• Swing GUI DevelopmentSwing GUI Development• ProfilingProfiling• Web and Java EEWeb and Java EE• MobilityMobility• SOASOA• UMLUML• C/C++C/C++• NetBeans Platform API ImprovementsNetBeans Platform API Improvements

Page 47: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ JEditJEdit

Page 48: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Ferramentas de DesenvolvimentoFerramentas de Desenvolvimento✔ KdevelopKdevelop

Page 49: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Quem ganha com a existência Quem ganha com a existência destas IDE's opensource?destas IDE's opensource?

✔ Quem quer aprenderQuem quer aprender

✔ Quem quer trabalharQuem quer trabalhar✔ Quem quer ensinarQuem quer ensinar

✔ Quem quer empreenderQuem quer empreender

✔ Quem não trabalha com Java!?Quem não trabalha com Java!?

Page 50: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Outras FerramentasOutras Ferramentas

✔ Jude (UML)Jude (UML)✔ Argo UMLArgo UML✔ JFreeChartJFreeChart✔ JGoodiesJGoodies✔ JavaDB (Derby) JavaDB (Derby) ✔ HSQLDBHSQLDB✔ ......

Page 51: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Servidores de Aplicação JEEServidores de Aplicação JEE

✔ Diversos fornecedores de soluçõesDiversos fornecedores de soluções

✔ Diversos servidores certificadosDiversos servidores certificados

✔ O poder da escolha, você decideO poder da escolha, você decide

✔ Facilita negociações de contratosFacilita negociações de contratos

Page 52: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Servidores de Aplicação JEE ­ OpenServidores de Aplicação JEE ­ Open

✔ JBoss (RedHat)JBoss (RedHat)✔ Geronimo (Apache)Geronimo (Apache)✔ GlassFishGlassFish✔ TomCatTomCat✔ JOnASJOnAS✔ OpenEJBOpenEJB✔ ......

Page 53: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Servidores de Aplicação JEE Servidores de Aplicação JEE 

✔ Apache Software Apache Software FoundationFoundation

✔ ATGATG✔ BEA SystemsBEA Systems✔ Borland Corp.Borland Corp.✔ Caucho Technology, Inc.Caucho Technology, Inc.✔ DataDirect TechnologiesDataDirect Technologies✔ FujitsuFujitsu✔ Hewlett­PackardHewlett­Packard✔ HitachiHitachi✔ IBMIBM

✔ IONA TechnologiesIONA Technologies✔ IronFlareIronFlare✔ JBoss GroupJBoss Group✔ Kingdee MiddlewareKingdee Middleware✔ MacromediaMacromedia✔ NECNEC✔ NokiaNokia✔ (Novell) SilverStream(Novell) SilverStream✔ ObjectWebObjectWeb✔ Oracle CorporationOracle Corporation✔ PramatiPramati✔ SAPSAP

✔ SAS Institute, Inc.SAS Institute, Inc.✔ SeeBeyondSeeBeyond✔ Sonic Software Sonic Software 

CorporationCorporation✔ SpiritSoftSpiritSoft✔ Sun MicrosystemsSun Microsystems✔ Sybase, Inc.Sybase, Inc.✔ TIBCO Software Inc.TIBCO Software Inc.✔ Tmax SoftTmax Soft✔ TongTech Co., LtdTongTech Co., Ltd✔ Trifork TechnologiesTrifork Technologies✔ webMethodswebMethods

33 fornecedores 33 fornecedores 

Page 54: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

O que é um framework?O que é um framework?

 “ “Um framework provê uma solução para uma Um framework provê uma solução para uma família de problemas semelhantes, sendo família de problemas semelhantes, sendo 

flexível e extensível para permitir a flexível e extensível para permitir a construção de várias aplicações com menor construção de várias aplicações com menor 

esforço, especificando apenas as esforço, especificando apenas as particularidades de cada aplicação.”particularidades de cada aplicação.”

Page 55: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

FrameworksFrameworks✔ StrutsStruts✔ SpringSpring✔ HibernateHibernate✔ JavaServer Faces JavaServer Faces ✔ JDO JDO ✔ JUnitJUnit✔ Ant Ant ✔ Jasper Report / iReportJasper Report / iReport✔ JMeterJMeter

Page 56: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Frameworks – R.I.A.Frameworks – R.I.A.

✔ GWT (Google Web Toolkit)GWT (Google Web Toolkit)✔ Openlaszlo Openlaszlo ✔ Flex (Adobe)Flex (Adobe)✔ ThinletThinlet✔ ThinWireThinWire✔ Java Web StartJava Web Start✔ DWRDWR✔ ......

Page 57: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – Google Web Toolkit Framework – Google Web Toolkit ✔ Simplifica o desenvolvimento de aplicações AJAXSimplifica o desenvolvimento de aplicações AJAX✔ ““Hosted Mode”, com depuração do código       Hosted Mode”, com depuração do código       ✔ Javascript compatível com principais navegadoresJavascript compatível com principais navegadores✔ Suporte a InternacionalizaçãoSuporte a Internacionalização✔ Integração com principais IDE’sIntegração com principais IDE’s✔ Licença  Apache 2.0Licença  Apache 2.0✔ Mais de 8.000 membros no GWT Developer ForumMais de 8.000 membros no GWT Developer Forum✔ Mais de 300 membros no GWT Contributors ForumMais de 300 membros no GWT Contributors Forum✔ Muitos patches externos incluídos no GWT 1.4Muitos patches externos incluídos no GWT 1.4✔ Mais de 1.000.000 de downloadsMais de 1.000.000 de downloads

Page 58: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – Google Web Toolkit Framework – Google Web Toolkit 

Page 59: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – AndroidFramework – Android✔ Plataforma Open Source para Dispositivos MóveisPlataforma Open Source para Dispositivos Móveis✔ Open Handset AllianceOpen Handset Alliance✔ Google, Motorola, Intel, NVIDIA, etc ...Google, Motorola, Intel, NVIDIA, etc ...✔ Padronização para AplicaçõesPadronização para Aplicações✔ API de acesso a hardware em C/C++API de acesso a hardware em C/C++✔ Desenvolvimento em JAVADesenvolvimento em JAVA✔ DVM – Dalvik Virtual Machine (.dex)DVM – Dalvik Virtual Machine (.dex)✔ S.O. Linux, kernel 2.6S.O. Linux, kernel 2.6

Page 60: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – Android ­ RecursosFramework – Android ­ Recursos✔ Browser integradoBrowser integrado✔ API gráfica 2D e 3D – OpenGLAPI gráfica 2D e 3D – OpenGL✔ Base de dados SQLiteBase de dados SQLite✔ Multimídia (Mpeg, H.264, MP3, JPG, etc ...)Multimídia (Mpeg, H.264, MP3, JPG, etc ...)✔ Telefonia GSMTelefonia GSM✔ Bluetooth, EDGE, 3G e WiFiBluetooth, EDGE, 3G e WiFi✔ Câmera, GPS, acelerômetro, etc...Câmera, GPS, acelerômetro, etc...✔ Ambiente Integrado de Desenvolvimento (Eclipse)Ambiente Integrado de Desenvolvimento (Eclipse)✔ Emulador de Dispositívo MóvelEmulador de Dispositívo Móvel✔ Suporte a Fonte TrueTypeSuporte a Fonte TrueType

Page 61: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – Android ­ ArquiteturaFramework – Android ­ Arquitetura

Page 62: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – AndroidFramework – Android

IDE e EmuladorIDE e Emulador

Page 63: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – OpenLaszloFramework – OpenLaszlo

✔ Simplifica o desenvolvimento de aplicações AJAXSimplifica o desenvolvimento de aplicações AJAX✔ Interfaces "cinemáticas" e dinâmicasInterfaces "cinemáticas" e dinâmicas✔ linguagem LZX declarativa, mesclando XML e linguagem LZX declarativa, mesclando XML e 

JavascriptJavascript

✔ Gera flash ou DHTML dinâmicamenteGera flash ou DHTML dinâmicamente✔ Roda em container web JavaRoda em container web Java

Page 64: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Framework – OpenLaszlo Framework – OpenLaszlo 

Page 65: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Apache Software FoundationApache Software Foundation✔ Projeto jakartaProjeto jakarta✔ TomCatTomCat✔ Harmony Harmony 

✔ ........

✔ CommonsCommons✔ VelocityVelocity✔ XMLBeansXMLBeans✔ DB ProjectDB Project✔ Harmony Harmony 

Page 66: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Outras linguagens na JVMOutras linguagens na JVM

✔ Jython (python)Jython (python)✔ Javascript (rhino)Javascript (rhino)✔ GrooveGroove✔ JRuby (Ruby)JRuby (Ruby)

Page 67: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

DemonstraçãoDemonstração

✔ Instalação da JDKInstalação da JDK

✔ DownloadDownload da documentação da documentação

✔ Instalação do NetbeansInstalação do Netbeans

✔ Instalação dos pacotes adicionaisInstalação dos pacotes adicionais

Page 68: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

Conclusão  Conclusão  ??????

Page 69: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

BibliografiaBibliografia✔ java.sun.comjava.sun.com

✔ www.portaljava.comwww.portaljava.com

✔ www.javafree.com.brwww.javafree.com.br

✔ www.jcp.org/en/participation/members/www.jcp.org/en/participation/members/

✔ http://www­03.ibm.com/systems/z/zaap/http://www­03.ibm.com/systems/z/zaap/

✔ http://paulbuchheit.blogspot.com/2007/06/java­is­faster­than­c.htmlhttp://paulbuchheit.blogspot.com/2007/06/java­is­faster­than­c.html

✔ http://www.tiobe.com/tpci.htmhttp://www.tiobe.com/tpci.htm

✔ http://info.abril.com.br/blog/sandra/20070410_listar.shtmlhttp://info.abril.com.br/blog/sandra/20070410_listar.shtml

✔ http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htmhttp://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

✔ http://pt.wikipedia.org/wiki/Java_Cardhttp://pt.wikipedia.org/wiki/Java_Card

Page 70: Desenvolvendo Aplicações Livres em Javagravatai.ulbra.tche.br/~elgio/tchelinux2008/outrasPalestras/41...Tchelinux - ULBRA Gravataí Desenvolvendo Aplicações Livres em Java Agenda

Tchelinux - ULBRA GravataíTchelinux - ULBRA Gravataí

Desenvolvendo Aplicações Livres em JavaDesenvolvendo Aplicações Livres em Java

BibliografiaBibliografia✔ http://www.javaworld.com/javaworld/jw­01­2002/jw­0111­hotspotgc.htmlhttp://www.javaworld.com/javaworld/jw­01­2002/jw­0111­hotspotgc.html

✔ http://java.nethttp://java.net