O documento discute o desenvolvimento de aplicações livres em Java. Apresenta detalhes sobre a plataforma Java, incluindo as edições JSE, JEE e JME. Também discute a importância da máquina virtual Java (JVM) para a portabilidade e desempenho, além de mencionar exemplos de frameworks e ferramentas livres para desenvolvimento em Java.
3. 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í
4. 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í
5. 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í
6. 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í
7. Desenvolvendo Aplicações Livres em Java
Membros JCP
✔ Apache Software Foundation
✔ BEA Systems
✔ Borland
✔ Google
✔ Fujitsu Limited
✔ HewlettPackard
✔ IBM
✔ Intel
✔ Oracle
✔ Red Hat
✔ SAP
✔ Sun Microsystems
✔ ...
Tchelinux - ULBRA Gravataí
8. Desenvolvendo Aplicações Livres em Java
Brasil no JCP
✔ SouJava
✔ Bruno Souza
✔ Marlon Luz
✔ Osvaldo Pinali Doederlein
✔ Waldir Pires Jr.
✔ ...
Tchelinux - ULBRA Gravataí
12. 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 transformaos 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í
16. 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í
19. 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í
20. 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, multicamadas,
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í
21. 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í
22. 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í
23. 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í
25. 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í
26. 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í
27. 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í
29. Desenvolvendo Aplicações Livres em Java
Por quê Java?
✔ O processo sempre foi aberto
✔ A Sun liberou o códigofonte 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í
34. 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í
41. 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í
42. 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í
43. 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í
45. 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í
46. 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í
53. Desenvolvendo Aplicações Livres em Java
Servidores de Aplicação JEE
33 fornecedores
✔ Apache Software ✔ IONA Technologies ✔ SAS Institute, Inc.
Foundation ✔ IronFlare ✔ SeeBeyond
✔ ATG ✔ JBoss Group ✔ Sonic Software
✔ BEA Systems ✔ Kingdee Middleware Corporation
✔ Borland Corp. ✔ Macromedia ✔ SpiritSoft
✔ Caucho Technology, Inc. ✔ NEC ✔ Sun Microsystems
✔ DataDirect Technologies ✔ Nokia ✔ Sybase, Inc.
✔ Fujitsu ✔ (Novell) SilverStream ✔ TIBCO Software Inc.
✔ HewlettPackard ✔ ObjectWeb ✔ Tmax Soft
✔ Hitachi ✔ Oracle Corporation ✔ TongTech Co., Ltd
✔ IBM ✔ Pramati ✔ Trifork Technologies
✔ SAP ✔ webMethods
Tchelinux - ULBRA Gravataí
54. 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í
57. 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í
59. 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í
60. 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í
63. 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í