JAVA - AT-311 ONDE PODEMOS IR TOMANDO CAFÉ

Propaganda
Java – Até onde
podemos ir tomando
café?
Pensamentos elevados devem ter
uma linguagem elevada – Aristófanes
O que é Java?
Linguagem ou Tecnologia?
O que é Java?
• Ao contrário do que muitos pensam, Java
não é apenas uma linguagem de
programação, mas sim uma 'Plataforma de
Desenvolvimento e Execução de Software'.
• Plataforma composta principalmente por:
–
–
–
–
Máquina Virtual Java(JVM).
Linguagem de programação.
Conjunto padrão de bibliotecas (Core API).
Ambiente de Deployment.
Java 2: As 3 grandes áreas
Arquitetura J2SE
Java Community Process
www.jcp.org
Java Community Process
• Organização aberta e participativa de
desenvolvedores e licenciados da tecnologia
Java.
• Objetivo: Desenvolver e revisar as
especificações Java, implementações de
referência e os kits de compatibilidade.
• Conta hoje (20/09/2008) com mais de 1500
membros.
Java Specification Request
(JSR)
• Solicitação para uma nova especificação.
• Pode ser:
– Modificação de uma especificação existente.
– Nova biblioteca.
– Nova plataforma.
• Possui um líder (Spec Lead) e um grupo
(Expert Group).
• Fases:
–
–
–
–
JSR Review.
Community Draft.
Public Draft.
Final Release.
• Exige uma Implementação de Referência
(RI) e um kit de teste de compatibilidade
(TCK).
JSR#176: J2SE 1.5 (Tiger)
•
•
•
•
•
•
•
•
•
•
•
•
•
Apache Software Foundation
Borland Software Corporation
Hewlett-Packard
Nokia Corporation
SAP AG
SavaJe Tecnologies
Apple Computer, Inc
Cisco Systems
Fujitsu Limited
IBM
Macromedia, Inc
Oracle
Sun Microsystems (Lead)
JSR#26: UML → EJB
•
•
•
•
•
•
•
•
Fujitsu Limited
IONA Tecnologies PLC
Oracle
Sun Microsystems, Inc
IBM
Open Cloud
Rational Software (Lead)
Unisys
JSR#37: MIDP
•
•
•
•
•
•
•
•
•
•
•
•
America Online
•
Espial Group
•
Hitachi, Ltda
•
KDDI Corporation
Mitsubishi Eletric Corp•
•
NEC
•
Oracle
SONY International •
•
Sharp Corporation
•
Sun Microsystems
Telcordia Tecnologies
Ericsson Inc
Fujitsu Limited
J-Phone Tokio
Matsushita Eletric
Motorola (Lead)
Nokia Corporation
Research In Motion
Samsung Eletronics
Siemens AG
Symbian
SunSource.net
• A Sun Microsystems suporta alguns projetos
de software livre:
–
–
–
–
–
–
–
–
–
–
OpenSolaris: sistema operacional.
Brazil: desenvolvimento de aplicações Web.
GlassFish: servidor de aplicações.
Grid Engine: administração de recursos distribuídos.
Interoperability Prototype for Liberty.
JRMS: multicast applications.
JXTA: computação distribuída com peer-to-peer.
Netbeans: ide java.
OpenOffice.org: office livre.
Jini: descoberta de serviços em rede.
LINGUAGEM MAIS
UTILIZADA DO MUNDO
• Java tem 20.72% de popularidade entre os
programadores.
Java.net
• O site foi criado para centralizar a
comunidade Java mundial em um local de
discussão, de troca de informação, código
e experiências.
• Foi observado que foram criadas diversas
tecnologias que tornaram-se padrões
mesmo sem terem passado pelo JCP.
• Alguns projetos:
–
–
–
–
Java Desktop
Java Games
Java Patterns
Javapedia
Máquinas Virtuais Livres
Projetos de JVM
GNU e Java
• GCJ: The GNU Compiler for Java
– Fonte Java diretamente para código de máquina.
– Fonte Java para bytecodes Java.
– Bytecodes Java para código de máquina.
• The GNU Package
– Coleção de pacotes Java licenciadas pela GPL.
• Máquinas virtuais Kaffe e Japhar
Java e Linux
• Primeiro porte foi efetuado pela
Blackdown.
• Existem também máquinas fornecidas pela
IBM e pela Sun.
• A Sun libera simultâneamente suas
versões da máquina virtual Java para
Solaris, Windows e Linux.
Java e FreeBSD
• Em Dezembro de 2001, a Fundação FreeBSD
recebeu a licença para portar oficialmente a
máquina virtual Java para o sistema
operacional FreeBSD de maneira nativa.
• Antes disto, os usuários usavam a máquina
virtual para Linux.
• http://www.freebsd.org/java
Kaffe e Guaraná
• Kaffe é uma implementação livre da máquina
virtual Java em conjunto com a bibliotecas
básicas de classes (core api).
• Boa escolha para pesquisas e estudos de
máquina virtual.
• Foi usada como base para uma máquina virtual
reflexiva no Brasil: Guaraná.
Projeto Javali
• Projeto criado pelo jug Soujava para auxiliar o
uso de tecnologias abertas pelo Governo
Brasileiro.
• http://www.javali.org.br
• Objetivos:
– Promover geração de tecnologia.
– Geração de conhecimento em universidades e
centros de pesquisa.
– Auxiliar o Governo no desenvolvimento de
aplicações.
– Ampliar a atividade dos JUG's.
– Posicionar o Brasil no mercado mundial.
– Integrar desenvolvedores nacionais com os
internacionais.
Projetos Javali
•
•
•
•
•
•
•
Máquina Virtual Livre
Conjunto de Bibliotecas Livres
IDE
Soluções de Integração de Aplicações Cliente
Componentes Visuais para eGov
Tecnologia para TV Digital
Geração de Documentação em Português
SuperWaba
• Máquina virtual similar ao Java para PDA's
Palm e Pocket PC e Symbian.
• Utilizado pela COPEL (Compania Paranaense
de Eletricidade) em seus sistemas.
• Mantido por um brasileiro.
LeJOS: Java em Lego
• Máquina virtual livre que possibilitou uso de
Java em controladores RCX.
Outras Máquinas Livres
• Jikes RVM (IBM)
– Máquiva virtual para pesquisas.
– Testes de design.
• Japhar
– Máquina virtual escrita do zero.
• LaTTe
– Específica para máquinas RISC.
• JamVM
– Pequena VM para PowerPC
• kissme
– Criada inicialmente para decoders de satélite.
• SableVM
– Projeto de pesquisas de Etienne M. Gagnon, Ph.D.
• joeq
– Escrita totalmente em Java.
Software Livre com Java
Alguns exemplos:
IDE's Java Livres
• NetBeans
– IDE patrocinada pela Sun.
• Eclipse
– IDE patrocinada pela IBM.
• jEdit
– Editor de fontes baseado em plugin's.
• Jext
– IDE para diversas linguagens escrita em Java.
• BlueJ
– IDE para aprendizado introdutório de OO.
Servidores J2EE
• JBossAS
– Foi escolhido como melhor servidor de aplicação pela
revista JavaWorld no ano de 2002.
• JOnAS
– Já foi chamado de JBoss Killer :-).
• Apache Geronimo
– Servidor que vem sendo desenvolvido pela Apache.
• JFox
– Servidor J2EE chinês.
• GlassFish
– Projeto java.net promovido pela Sun.
Servidores J2EE - Servlets/JSP
• Jetty
– Servidor Servlet/JSP da Mort Bay. (Consultora Jetty e
JBoss).
• Jigsaw
– Servidor HTTP 1.1 de referência da W3C.
• Tomcat
– Servidor de referência da tecnologia Servlet/JSP.
Banco de Dados e Prevalência
• HSQL
– Banco de Dados SQL leve escrito em Java.
– Usado no programa de acompanhamento da apuração
eleitoral.
• McKoi
– Banco de Dados SQL escrito em Java para execução
emambiente Client/Server.
• Derby
– Projeto da Apache derivado do Cloudscape.
• Prevailer
– Camada de prevalência escrita em Java.
– Escrito por um brasileiro e utilizado mundialmente.
Projeto Jakarta
• Jakarta é um projeto da Fundação Apache,
encarregado da criação e manutenção de soluções
server-side de fonte aberto e de qualidade
comercial para a plataforma Java, baseadas na
licença da própria fundação para serem
distribuídos sem custo para o público.
Enhydra
• Projeto similar ao Apache, mas com maior
foco no E-Business.
• Milhares de desenvolvedores em 50 países.
• Aplicações:
– Open Source Enhydra: Application Server baseado
em XML.
– Enhydra ME: Apis para Java 2 Micro Edition.
– Applications: Design Gráfico para Workflow.
– Tools & Tecnologies: Ferramentas XML, plugins
para IDE's, relacionamento objeto-relacional.
ObjectWeb Consortium
• Comunidade de software Open Source criada
no final de 1999 pela France Telecom, Bull e
INRIA e é mantido pelo Ministério Francês da
Economia, Finanças e Industria.
• Objetiva o desenvolvimento de middleware
Open Source.
Compiere ERP & CRM
• Implementação de um ERP com CRM integrado
desenvolvido em Java 2 Enterprise Edition.
• Contra: Fortemente integrado com Oracle 9i.
Atualmente sendo desenvolvido o porte para
PostgreSQL.
• CompiereBR: Versão suportada no Brasil.
– Abrange os processos de Vendas, Compras,
Financeiro, Contabilidade, Custos, Manufatura,
Estoque, Projetos, Serviços e WebStore.
OpenSymphony
• Projeto Open Source dedicado a prover
aplicações e componentes J2EE (maioria
Servlet).
• Objetivo similar ao Jakarta Commons.
• Possue:
–
–
–
–
–
Classes utilitárias.
Layout para páginas web.
Engine de Workflow.
Cache para J2EE.
etc...
sourceFORGE.net
• É o maior site de desenvolvimento Open
Source e abriga muitos projetos em Java.
• Java é a terceira tecnologia mais utilizada no
site.
• No dia 10/09/2005 estava com 17.352 projetos
em Java. Segunda colocada.
Projetos por Linguagem
18000
16000
16192
15970
15479
14000
12000
11647
10000
8000
6000
4000
2682
2137
1872
2000
0
C++
Java
C
PHP
Delphi
C#
4
25
Cobol
Progress
VisualBasic
jake2
• Porte do engine Quake2 da idSoftware para java.
Joone
• Java Object Oriented Neural Engine
• Joone é framework livre para criação,
treinamento, e testes de redes neurais.
• Inclui um editor visual.
MegaTrack
• Faz o tracking de tempestades tropicais.
jlGui – Java Music Player
• Aplicação em Java que suporta os formatos
MP3, OGG Vorbis, WAV, AIFF, AU e SPEEX.
• Clone do winamp ;-), inclusive suporte as
skins.
• Você pode iniciá-lo da sua pagina via JWS.
Columba
• Cliente de e-mail
Azureus
• Cliente BitTorrent em Java.
Software Livre com Java
Por que usar?
Padrão Aberto e MultiPlataforma
Java e Software Livre
Obrigado pela paciência!
... If you can imagine it,
Someone is doing it in Java
Download