Desenvolvendo Aplicações Livres em Java

Propaganda
1º Seminário de Software Livre Tchêlinux
Gravataí ­ ULBRA
Desenvolvendo
Aplicações Livres em Java
João Avelino Bellomo Filho
Ranieri de Souza Fernandes
Desenvolvendo Aplicações Livres em Java
Os Palestrantes
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Agenda
✔
Java, como começou...
✔
Plataforma Java
✔
Java e Software Livre
✔
Ferramentas: Eclipse, Netbeans, etc...
✔
Servidor de Aplicação
✔
Frameworks: Google Web Toolkit, ANDROID, OpenLazlo, etc...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Java, como começou?
✔
✔
✔
Linguagem Oak
Green Project → *7 (StarSeven)
Objetivos
✔
Orientada a objetos
✔
Permitir a execução em diferentes S.O.s
✔
Conter suporte nativo para redes
✔
Execução segura a partir de fontes remotas
✔
Fácil de usar aproveitando características de outras Linguagens
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Java, como começou?
✔
✔
✔
✔
✔
Linguagem Oak
Green Project
Objetivos
A integração com o Netscape Browser
Applets, Java 2, evolução do desenvolvimento
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Quem ”manda” no Java?
✔
JCP – Java Community Process
✔
Qualquer um pode se inscrever
✔
O processo é aberto desde o início
✔
O papel da Sun
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Membros JCP
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Apache Software Foundation
BEA Systems
Borland
Google
Fujitsu Limited
Hewlett­Packard
IBM
Intel
Oracle
Red Hat SAP
Sun Microsystems
...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Brasil no JCP
✔
SouJava
✔
Bruno Souza
✔
✔
Marlon Luz
Osvaldo Pinali Doederlein
✔
Waldir Pires Jr.
✔
...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
O que é realmente o Java?
✔
A visão comum ­ linguagem
✔
O que realmente é?
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Plataforma Java
✔
Três grande subdivisões:
• JSE (Java SE): Java Standard Edition
• JEE (Java EE): Java Enterprise Edition
• JME (Java ME): Java Micro Edition
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
JVM – O segredo da portabilidade
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
JVM – O segredo da portabilidade
✔
✔
✔
✔
Java Virtual Machine é, a grosso modo, um interpretador de bytecodes
Interpreta os bytecodes e transforma­os em uma série de instruções nativas, utilizando recursos do SO.
É a base de toda plataforma Java
Contém a API, o gerenciamento de memória, e todos os recursos base utilizados pelas outras edições
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
JVM – O segredo do desempenho
J I T Compilador just­in­time
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
JVM – O segredo do desempenho
✔
Paul Buchheit foi o criador e líder de desenvolvimento do Gmail.
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
JVM – O segredo do desempenho
Trecho da entrevista com Orkut Buyukkokten, criador do Orkut
“ Ontem, aqui na Abril, nós conversamos com o Orkut umas duas horas. Ele contou que criou o site de relacionamentos em .Net – gosta particularmente de C# pela rapidez de programação – mas teve de passar para Java por ter a escalabilidade necessária. A passagem de uma tecnologia para a outra durou um ano – daí as 80 horas por semana” (InfoOnline)
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
A API Java
✔
✔
✔
✔
✔
✔
Conjunto de funcionalidades nativas da linguagem
Carga dinâmica de bibliotecas
Abstração do sistema operacional
O que não estiver implementado, é facilmente integrado
Não é engessado. O programador pode fazer suas próprias implementações
Garbage Collector
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Garbage Collector
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Detalhes sobre a plataforma
✔
JSE (Java SE): contém a JVM, API e recursos
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Detalhes sobre a plataforma
✔
✔
✔
✔
JME (Java ME): é, basicamente, um subset da JSE, utilizada para ambientes embedded
É a tecnologia mais utilizada no mundo para dispositivos embedded
Pode rodar numa infinidade de dispositivos: telefones celulares, PDA's, TV's, impressoras, etc...
Possui um robusto sistema de segurança, protocolos de comunicação integrados e todas as características de portabilidade do Java
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Detalhes sobre a plataforma
✔
✔
✔
✔
JEE (Java EE): é a plataforma de desenvolvimento de aplicações enterprise
É construída sobre a J2SE
Provê recursos para desenvolvimento de aplicações de grande porte, multi­camadas, portáveis e escaláveis
Possibilita o desenvolvimento da aplicação, livrando o programador de criar do zero estruturas altamente complexas e que não estão diretamente relacionadas à lógica da aplicação
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Detalhes sobre a plataforma
✔
J2EE (Java EE): • JDBC (Java Database Connectivity), utilizado no acesso a bancos de dados;
• Servlets, são utilizados para o desenvolvimento de aplicações Web com conteúdo dinâmico • JSP (Java Server Pages), um especialização do servlet que permite que conteúdo dinâmico seja facilmente desenvolvido.
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Detalhes sobre a plataforma
✔
JEE (Java EE): • JTA (Java Transaction API), é uma API que padroniza o tratamento de transações dentro de uma aplicação Java.
• EJBs, utilizados no desenvolvimento de componentes de software.
• JCA (Java Connector Architecture), é uma API que padroniza a ligação a aplicações legadas.
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Detalhes sobre a plataforma
✔
✔
✔
✔
✔
✔
✔
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 implementa diversas funções criptográficas, aproveitando as funções dos cartões inteligentes como tokens criptográficos;
É Java! Aproveite seus conhecimentos JSE para desenvolver para cartões inteligentes!
Capacidade de múltiplos aplicativos no mesmo cartão inteligente
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 inserido no terminal ele será atualizado.
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.
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Hmmm...
E onde está o Software Livre???
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Considerações Filosóficas
✔
O que é Software Livre???
“Softwares que são fornecidos aos seus usuários
com a liberdade de executar, estudar, modificar e
repassar (com ou sem alterações) sem que, para
isso, os usuários tenham que pedir permissão ao
autor do programa.”
✔
O que define um Software como Livre?
O Licenciamento, a licença de uso adotada.
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Considerações Filosóficas
✔
Licenças de Software Livre:
• GPL (General Public License)
• BSD (Berkeley Software Distribution)
• Mozilla
• Apache
• etc ...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Considerações Filosóficas
✔
Quais as motivações de desenvolver Software Livre?
• Ambiente de teste amplo
• Desenvolvimento Colaborativo
• O nome do Desenvolvedor fica conhecido
• Devolve a sociedade, e recebe dela, conhecimento
• etc...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Java não é e nunca será Software Livre!
Java não é software, é uma especificação!
As implementações de Java que podem ser Software Livre!
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Por quê Java?
✔
✔
✔
✔
✔
✔
✔
✔
O processo sempre foi aberto
A Sun liberou o código­fonte de toda a plataforma
A estratégia dos grandes (IDEs, ferramentas)
É um padrão de indústria
As características favorecem a usabilidade
A disputa entre .Net X Java
Possui um grande portfólio de aplicações Open Source
Foi adotada pela indústria como alternativa às soluções fechadas
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Java e o Software Livre
✔
✔
Freshmeat ranking de linguagens
✔
1­ C (8851 projetos) ✔
2­ Java (5822 projetos) ✔
3­ C++ (4867 projects) Portal java.net
✔
Projetos ✔
Grupos de usuários
✔
Foruns Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Adoção do Java
TIOBE Programming Community Index for November 2007
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Adoção do Java
TIOBE Programming Community Index for November 2007
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Qual é a linguagem
com mais linhas de código
escrito no mundo?
COBOL!
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Cobol
✔
✔
✔
✔
O Cobol é a linguagem mais usada no mundo todo, podendo 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 DataCenters do mundo inteiro. (fonte: itweb)
Mais de 83% das transações mundiais são feitas em Cobol. Mais de 60% das informações residentes na Web estão em Mainframe.
Mais de 95% das aplicações financeiras e seguridade são processadas em Cobol.
Raras universidade possui em sua grade cursos relacionados à plataforma Mainframe. Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Qual das linguagens de programação modernas roda em Mainframes?
JAVA!
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Java no Mainframe
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Quais ferramentas existem para se
trabalhar com Java?
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
O JDK
✔
✔
✔
✔
✔
✔
✔
✔
java (runtime)
javac (compilador)
javadoc (documentador)
jar
jarsigner
javaws
jconsole
...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
JConsole
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
Eclipse
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
Eclipse
• Open Source
• Multiplataforma
• Grande gama de plugins e recursos
• Desenvolvimento para todas as edições
• Extremamente intuitivo
• Diversos “Sabores”
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
Eclipse Foundation
• Europa Fall – 3.3.2
• http://www.eclipse.org
• Várias opções disponíveis
• IDE for Java Developers (79M)
• IDE for Java EE Developers (125M)
• IDE for C/C++ Developers (59M)
• For RCP/Plugin Developers (153M)
• Classic (137M)
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
EasyEclipse
• Mantida por um time de desenvolvedores
• http://www.easyeclipse.org/
• Opções oferecidas:
• Exper Java (1.2.2 – 121M / 1.3.1.1 ­ 133M)
• Desktop Java (1.2.2 – 127M/ 1.3.1.1 ­ 139M)
• Server Java (1.2.2 – 223M)
• 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 C/C++; Ruby and Rails; PHP; Python; LAMP; etc ...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
NetBeans
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
Netbeans
• Open Source
• Multiplataforma
• Grande gama de plugins e recursos
• Desenvolvimento para todas as edições
• Extremamente intuitivo
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
Netbeans 6.1
•
•
•
•
•
•
•
•
•
•
•
Editor Improvements
Ruby/JRuby/Ruby on Rails Support
Easier Installation and Upgrading
Swing GUI Development
Profiling
Web and Java EE
Mobility
SOA
UML
C/C++
NetBeans Platform API Improvements
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
JEdit
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Ferramentas de Desenvolvimento
✔
Kdevelop
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Quem ganha com a existência destas IDE's opensource?
✔
Quem quer aprender
✔
Quem quer trabalhar
✔
Quem quer ensinar
✔
Quem quer empreender
✔
Quem não trabalha com Java!?
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Outras Ferramentas
✔
✔
✔
✔
✔
✔
✔
Jude (UML)
Argo UML
JFreeChart
JGoodies
JavaDB (Derby) HSQLDB
...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEE
✔
Diversos fornecedores de soluções
✔
Diversos servidores certificados
✔
O poder da escolha, você decide
✔
Facilita negociações de contratos
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEE ­ Open
✔
✔
✔
✔
✔
✔
✔
JBoss (RedHat)
Geronimo (Apache)
GlassFish
TomCat
JOnAS
OpenEJB
...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEE 33 fornecedores ✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Apache Software Foundation
ATG
BEA Systems
Borland Corp.
Caucho Technology, Inc.
DataDirect Technologies
Fujitsu
Hewlett­Packard
Hitachi
IBM
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
IONA Technologies
IronFlare
JBoss Group
Kingdee Middleware
Macromedia
NEC
Nokia
(Novell) SilverStream
ObjectWeb
Oracle Corporation
Pramati
SAP
Tchelinux - ULBRA Gravataí
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
SAS Institute, Inc.
SeeBeyond
Sonic Software Corporation
SpiritSoft
Sun Microsystems
Sybase, Inc.
TIBCO Software Inc.
Tmax Soft
TongTech Co., Ltd
Trifork Technologies
webMethods
Desenvolvendo Aplicações Livres em Java
O que é um framework?
“Um framework provê uma solução para uma família de problemas semelhantes, sendo flexível e extensível para permitir a construção de várias aplicações com menor esforço, especificando apenas as particularidades de cada aplicação.”
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Frameworks
✔
✔
✔
✔
✔
✔
✔
✔
✔
Struts
Spring
Hibernate
JavaServer Faces JDO JUnit
Ant Jasper Report / iReport
JMeter
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Frameworks – R.I.A.
✔
✔
✔
✔
✔
✔
✔
✔
GWT (Google Web Toolkit)
Openlaszlo Flex (Adobe)
Thinlet
ThinWire
Java Web Start
DWR
...
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – Google Web Toolkit ✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Simplifica o desenvolvimento de aplicações AJAX
“Hosted Mode”, com depuração do código
Javascript compatível com principais navegadores
Suporte a Internacionalização
Integração com principais IDE’s
Licença Apache 2.0
Mais de 8.000 membros no GWT Developer Forum
Mais de 300 membros no GWT Contributors Forum
Muitos patches externos incluídos no GWT 1.4
Mais de 1.000.000 de downloads
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – Google Web Toolkit Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – Android
✔
✔
✔
✔
✔
✔
✔
✔
Plataforma Open Source para Dispositivos Móveis
Open Handset Alliance
Google, Motorola, Intel, NVIDIA, etc ...
Padronização para Aplicações
API de acesso a hardware em C/C++
Desenvolvimento em JAVA
DVM – Dalvik Virtual Machine (.dex)
S.O. Linux, kernel 2.6
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – Android ­ Recursos
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Browser integrado
API gráfica 2D e 3D – OpenGL
Base de dados SQLite
Multimídia (Mpeg, H.264, MP3, JPG, etc ...)
Telefonia GSM
Bluetooth, EDGE, 3G e WiFi
Câmera, GPS, acelerômetro, etc...
Ambiente Integrado de Desenvolvimento (Eclipse)
Emulador de Dispositívo Móvel
Suporte a Fonte TrueType
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – Android ­ Arquitetura
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – Android
IDE e Emulador
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – OpenLaszlo
✔
✔
✔
Simplifica o desenvolvimento de aplicações AJAX
Interfaces "cinemáticas" e dinâmicas
linguagem LZX declarativa, mesclando XML e Javascript
✔
Gera flash ou DHTML dinâmicamente
✔
Roda em container web Java
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Framework – OpenLaszlo Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Apache Software Foundation
✔
✔
✔
✔
✔
✔
✔
✔
✔
Projeto jakarta
TomCat
Harmony Commons
Velocity
XMLBeans
DB Project
Harmony ....
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Outras linguagens na JVM
✔
✔
✔
✔
Jython (python)
Javascript (rhino)
Groove
JRuby (Ruby)
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Demonstração
✔
Instalação da JDK
✔
Download da documentação
✔
Instalação do Netbeans
✔
Instalação dos pacotes adicionais
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
???
Conclusão ???
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Bibliografia
✔ java.sun.com
✔ www.portaljava.com
✔ www.javafree.com.br
✔ www.jcp.org/en/participation/members/
✔ http://www­03.ibm.com/systems/z/zaap/
✔ http://paulbuchheit.blogspot.com/2007/06/java­is­faster­than­c.html
✔ http://www.tiobe.com/tpci.htm
✔ http://info.abril.com.br/blog/sandra/20070410_listar.shtml
✔ http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm
✔ http://pt.wikipedia.org/wiki/Java_Card
Tchelinux - ULBRA Gravataí
Desenvolvendo Aplicações Livres em Java
Bibliografia
✔ http://www.javaworld.com/javaworld/jw­01­2002/jw­0111­hotspotgc.html
✔ http://java.net
Tchelinux - ULBRA Gravataí
Download