Tecnologia Java

1.955 visualizações

Publicada em

Publicada em: Tecnologia
1 comentário
4 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
1.955
No SlideShare
0
A partir de incorporações
0
Número de incorporações
51
Ações
Compartilhamentos
0
Downloads
15
Comentários
1
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tecnologia Java

  1. 1. Tecnologia Java Glaucio Scheibel – GuJava/SC www.gujavasc.org
  2. 2. Agenda <ul><li>O que é Java? </li></ul><ul><li>Java: as 3 grandes áreas </li></ul><ul><ul><li>JavaSE </li></ul></ul><ul><ul><li>JavaEE </li></ul></ul><ul><ul><li>JavaME </li></ul></ul><ul><li>Outra utilizações </li></ul><ul><li>Java Community Process </li></ul>
  3. 3. O que é Java?
  4. 4. O que é Java? <ul><li>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' . </li></ul><ul><li>Plataforma composta principalmente por: </li></ul><ul><ul><li>Máquina Virtual Java(JVM). </li></ul></ul><ul><ul><li>Linguagem de programação. </li></ul></ul><ul><ul><li>Conjunto padrão de bibliotecas (Core API). </li></ul></ul><ul><ul><li>Ambiente de Deployment. </li></ul></ul><ul><ul><li>Ferramentas de Desenvolvimento. </li></ul></ul>
  5. 5. O que é Java?
  6. 6. Java: Buzzword Compliant <ul><li>Simples </li></ul><ul><li>Orientada à Objetos </li></ul><ul><li>Distribuída </li></ul><ul><li>Robusta </li></ul><ul><li>Segura </li></ul><ul><li>Portável </li></ul><ul><li>Alta-Performance </li></ul><ul><li>Multi-Thread </li></ul><ul><li>Dinâmica </li></ul><ul><li>Garbage Collection </li></ul>
  7. 7. Java: Multi-Plataforma
  8. 8. Java Virtual Machine (JVM) <ul><li>Emula um computador de 32 bits. (Máquina Java) </li></ul><ul><li>Modifica o código em memória de maneira que ele possa executar mais rapidamente. </li></ul><ul><li>Motivo da multi-plataforma. </li></ul><ul><ul><li>1.0 Interpretada </li></ul></ul><ul><ul><li>1.1 Java JIT (Symantec) </li></ul></ul><ul><ul><li>1.3 Java HotSpot </li></ul></ul><ul><ul><li>1.4 Novo Java HotSpot (+58%) </li></ul></ul><ul><ul><li>1.4.2 + 30% na carga </li></ul></ul><ul><ul><li>5.0 + 25% </li></ul></ul><ul><ul><li>6 + 58% (SciMark2) </li></ul></ul>
  9. 9. Linguagem Java <ul><li>Sintaxe baseada no 'C'. </li></ul><ul><li>Orientação a Objetos com semântica do Smalltalk. </li></ul><ul><li>Simples. </li></ul><ul><li>Poucas palavras chaves (53). </li></ul><ul><li>Princípio: </li></ul><ul><ul><li>Mantenha-na simples, pois o que é complexo é difícil de construir, testar, depurar, aprimorar e explicar. </li></ul></ul>
  10. 10. Java Core API <ul><li>Biblioteca padrão de classes. </li></ul><ul><li>Praticamente toda a funcionalidade necessária já encontra-se codificada. </li></ul><ul><li>Atualmente conta com 3777 tipos (classe, interfaces, enumerações e anotações). </li></ul><ul><li>Pode ser ampliada através do mecanismo de extensão (javax). </li></ul>
  11. 11. Java Deployment <ul><li>Applets: </li></ul><ul><ul><li>O próprio navegador possui funções em conjunto como Java Plugin para buscar e armazenar localmente as classes e bibliotecas utilizadas. </li></ul></ul><ul><li>Application: (Java Web Start) </li></ul><ul><ul><li>O utilitário de Deployment Java Web Start traz toda a funcionalidade e vantagens conseguidas com os Applets para Aplicações Cliente comuns escritas emJava. </li></ul></ul><ul><ul><li>Liberta do problema de atualizar 'n' máquinas ao atualizar as versões. </li></ul></ul>
  12. 12. Java Vantagens para o Desenvolvedor <ul><li>Grande produtividade (>2x C). </li></ul><ul><li>Bem documentada. </li></ul><ul><li>Padronizada (JCP). </li></ul><ul><li>Sistemas mais confiáveis. </li></ul><ul><li>Grande quantidades de bibliotecas para os mais diversos fins. </li></ul><ul><li>Não há a necessidade de preocupar-se com a plataforma escolhida pelo cliente. </li></ul>
  13. 13. Java Multi-Plataforma
  14. 14. Java e as suas três áreas Java SE Java ME Java EE
  15. 15. Java As 3 grandes áreas
  16. 16. Java Standard Edition (JavaSE) <ul><li>Também conhecido como JDK ou JRE. </li></ul><ul><li>Destinado aos computadores comuns, Desktop. </li></ul><ul><li>Aplicações “Cliente”. </li></ul><ul><li>Serve como base para o JEE. </li></ul><ul><li>API's auxiliares: </li></ul><ul><ul><li>JDBC </li></ul></ul><ul><ul><li>JCE </li></ul></ul><ul><ul><li>JDO </li></ul></ul><ul><ul><li>JMF </li></ul></ul><ul><ul><li>JavaMail </li></ul></ul><ul><ul><li>Java3D </li></ul></ul>
  17. 17. Java Enterprise Edition (JavaEE) <ul><li>Necessita de um servidor para ser executado. </li></ul><ul><li>Os componentes são instalados dentro deste servidor e acessados remotamente. </li></ul><ul><li>Principais tipos: </li></ul><ul><ul><li>Servlets/JSP </li></ul></ul><ul><ul><li>Enterprise Java Beans </li></ul></ul><ul><li>Outros componentes/Serviços: </li></ul><ul><ul><li>JNDI </li></ul></ul><ul><ul><li>JMS </li></ul></ul><ul><ul><li>JAAS </li></ul></ul><ul><ul><li>Connector Architecture </li></ul></ul><ul><ul><li>Corba/IDL </li></ul></ul>
  18. 18. Java Enterprise Edition (JavaEE)
  19. 19. JavaEE Servlets e JSP <ul><li>Tecnologia Java para desenvolvimento de componentes Web. </li></ul><ul><li>Extende o serviço de Requisição e Resposta do HTTP para componentes Java. </li></ul><ul><li>Os componentes fazem parte do mesmo processo que o servidor HTTP. </li></ul><ul><li>Adiciona “inteligência” ao HTTP. </li></ul>
  20. 20. JavaEE Servlets e JSP – Servidores <ul><li>Apache Tomcat </li></ul><ul><li>Apache Jserv </li></ul><ul><li>ATG Dynamo </li></ul><ul><li>Bajie Server </li></ul><ul><li>BEA WebLogic </li></ul><ul><li>Borland Server </li></ul><ul><li>Caucho Resin </li></ul><ul><li>C.A. Adv. Joe </li></ul><ul><li>EasyThings </li></ul><ul><li>Fujitsu </li></ul><ul><li>Gefion </li></ul><ul><li>HP Total-e-Server </li></ul><ul><li>IBM WebSphere </li></ul><ul><li>IONA Orbix </li></ul><ul><li>Jetty </li></ul><ul><li>Lutris Enhydra </li></ul><ul><li>Adobe Jrun </li></ul><ul><li>ServletExec </li></ul><ul><li>Novocode NetForge </li></ul><ul><li>Oracle 9i AS </li></ul><ul><li>Orion AS </li></ul><ul><li>Pramati Server 3.0 </li></ul><ul><li>Secant </li></ul><ul><li>Servertec </li></ul><ul><li>Novell eXtend </li></ul><ul><li>SITEFORUM </li></ul><ul><li>Sun ONE </li></ul><ul><li>Sybase EAServer </li></ul><ul><li>Tagtraum </li></ul><ul><li>Trifork AS </li></ul><ul><li>vqSoft vqServer </li></ul><ul><li>W3C Jigsaw </li></ul><ul><li>Zeus Web Server   </li></ul>
  21. 21. JavaEE Enterprise Java Beans <ul><li>Tecnologia Java para Objetos Distribuídos. </li></ul><ul><li>Acessível via: </li></ul><ul><ul><li>Remote Method Invocation (RMI) </li></ul></ul><ul><ul><li>Corba Object Request Broker (ORB) </li></ul></ul><ul><ul><li>Simple Object Access Protocol (SOAP) </li></ul></ul><ul><li>Divide-se em: </li></ul><ul><ul><li>Session Beans: componentes que representam a camada de serviços e lógica. </li></ul></ul><ul><ul><li>Entity Beans: componentes que representam a camada de entidades do negócio. </li></ul></ul><ul><ul><li>Message-Driven Beans: componentes assíncronos que respondem à mensagens JMS. </li></ul></ul>
  22. 22. JavaEE EJB – Servidores <ul><li>Apache Geronimo </li></ul><ul><li>ATG Dynamo </li></ul><ul><li>BEA WebLogic </li></ul><ul><li>Borland ES </li></ul><ul><li>Bull JOnAS </li></ul><ul><li>Compaq NonStop Enterprise </li></ul><ul><li>Desiderata Blazix </li></ul><ul><li>Fujitsu BeanTransactions </li></ul><ul><li>Fujitsu Interstage </li></ul><ul><li>HHPN XLiRAD </li></ul><ul><li>Hitachi Cosminexus </li></ul><ul><li>IBM Websphere </li></ul><ul><li>IBS EAS </li></ul><ul><li>Ironflare Orion </li></ul><ul><li>JBoss AS </li></ul><ul><li>Adobe JRun </li></ul><ul><li>Novell eXteNd </li></ul><ul><li>OpenConnect EIS </li></ul><ul><li>Oracle 9i AS </li></ul><ul><li>Persistence Power Tier for J2EE </li></ul><ul><li>SAP AG WAS </li></ul><ul><li>Secant ModelMethods </li></ul><ul><li>Sun ONE </li></ul><ul><li>Sybase EAServer </li></ul><ul><li>TradeCity Rexip Appserver </li></ul><ul><li>Trifork EAS </li></ul>
  23. 23. Java Micro Edition (JavaME) <ul><li>Ambiente Java altamente otimizado para pequenos dispositivos. </li></ul><ul><li>Java voltando às origens. </li></ul><ul><li>Dividido em duas configurações: </li></ul><ul><ul><li>CDC: Dispositivos médios. </li></ul></ul><ul><ul><li>CLDC: Pequenos dispositivos. </li></ul></ul>
  24. 24. JavaME Configuração CDC <ul><li>Dispositivos 32 bits com até 2Mb de memória. </li></ul><ul><li>Máquina virtual CVM. </li></ul><ul><li>Base para as seguintes tecnologias: </li></ul><ul><ul><li>Java TV. </li></ul></ul><ul><ul><li>Java Phone. </li></ul></ul><ul><ul><li>Personal Java. </li></ul></ul>
  25. 25. JavaME Configuração CLDC <ul><li>Dispositivos 16/32 bits com até 1Mb. </li></ul><ul><li>Máquina KVM. </li></ul><ul><li>Principal perfil: MIDP. </li></ul><ul><li>Utilizado em Celulares, Pagers, PDA's. </li></ul>
  26. 26. JavaCard <ul><li>Habilita a tecnologia Java rodar em SmartCards e outros dispositivos com memória limitada. </li></ul><ul><li>Licenciado em OEM para os fabricantes de SmartCards que representam 90% do mercado. </li></ul><ul><li>Departamento de Defesa Americano irá fazer o deploy de uma aplicação Java que utilizará 4.4 milhões de JavaCard's. </li></ul><ul><li>É o chip utilizado dentro dos celulares GSM. </li></ul>
  27. 27. Outras utilizações
  28. 28. Java Aplicações Open-Source <ul><li>SourceForge: </li></ul><ul><ul><li>18.314 Projetos em Java no SourceForge (03/05/06) </li></ul></ul><ul><ul><li>Java em primeiro lugar!!!!! </li></ul></ul><ul><li>Projeto Jakarta: </li></ul><ul><ul><li>Projeto da fundação Apache para desenvolvimento de softwares servidores, utilitários e API's em Java. </li></ul></ul><ul><li>ObjectWeb Consortium: </li></ul><ul><ul><li>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. </li></ul></ul><ul><li>OpenSymphony </li></ul><ul><ul><li>Projeto Open Source dedicado a prover aplicações e componentes J2EE (maioria Servlet). </li></ul></ul>
  29. 29. JavaRing <ul><li>Espécie de Wearable Computer. </li></ul><ul><li>Utiliza-se da especificação do JavaCard. </li></ul><ul><li>De 6Kb a 134Kb de Ram não volátil. </li></ul><ul><li>Algumas características: </li></ul><ul><ul><li>Dynamic Objects </li></ul></ul><ul><ul><li>Garbage Collector </li></ul></ul>
  30. 30. JavaTV <ul><li>Com a TV digital teremos interatividade, e com a API do JavaTV essa interatividade será facilmente desenvolvida. </li></ul>
  31. 31. JavaCar
  32. 32. LeJOS: Java em Lego <ul><li>Projeto Open-Source que possibilitou uso de Java em controladores RCX. </li></ul>
  33. 33. Java onde nenhuma outra chegou <ul><li>Spirit e Oppurtunity </li></ul><ul><li>Robôs que estão atualmente em Marte possuem JVM's embutidas com Real Time Java. </li></ul><ul><li>JSR#001. </li></ul><ul><li>Multi-Planetária :-) </li></ul>
  34. 34. Tommy <ul><li>Participou do DARPA Grand Challenge 2005 </li></ul><ul><li>Usa a tecnologia PRI-MAX que é desenvolvida totalmente em Java pela Perrone Robotics. </li></ul>
  35. 35. Java na Torradeira
  36. 36. MoMa <ul><li>Telemetria na Formula 1 pela Magneti Marelli </li></ul><ul><li>Utiliza JSB (Jini Service Beans) </li></ul>
  37. 37. Compiere ERP & CRM <ul><li>Implementação de um ERP com CRM integrado desenvolvido em Java Enterprise Edition. </li></ul><ul><li>CompiereBR: Versão suportada no Brasil. </li></ul><ul><li>Abrange os processos de Vendas, Compras, Financeiro, Contabilidade, Custos, Manufatura, Estoque, Projetos, Serviços e WebStore. </li></ul>
  38. 38. jake2 <ul><li>Porte do engine Quake2 da idSoftware para java. </li></ul>
  39. 39. jlGui – Java Music Player <ul><li>Aplicação em Java que suporta os formatos MP3, OGG Vorbis, WAV, AIFF, AU e SPEEX. </li></ul>
  40. 40. Evoluindo Java
  41. 41. Java Community Process <ul><li>Organização aberta e participativa de desenvolvedores e licenciados da tecnologia Java. </li></ul><ul><li>Objetivo: Desenvolver e revisar as especificações Java, implementações de referência e os kits de compatibilidade. </li></ul><ul><li>Conta com 1.285 membros (12/08/07). </li></ul><ul><li>www.jcp.org </li></ul>
  42. 42. JCP – Alguns Membros <ul><li>Adobe Systems Inc. </li></ul><ul><li>Ajile Systems </li></ul><ul><li>Apache Software Foundation </li></ul><ul><li>Apple Computer, Inc. </li></ul><ul><li>ARM Limited </li></ul><ul><li>Autodesk, Inc. </li></ul><ul><li>Bank of America </li></ul><ul><li>BEA Systems </li></ul><ul><li>Boeing </li></ul><ul><li>Borland Software Corporation </li></ul><ul><li>CA, Inc. </li></ul><ul><li>Cisco Systems </li></ul><ul><li>Citicorp Development Center, Inc. </li></ul><ul><li>Compuware Corporation </li></ul><ul><li>Electronic Data Systems (EDS) </li></ul><ul><li>Ericsson AB </li></ul><ul><li>Google Inc. </li></ul><ul><li>Hewlett-Packard </li></ul><ul><li>IBM </li></ul><ul><li>Intel Corp. </li></ul><ul><li>JBoss, Inc. </li></ul><ul><li>LG Electronics Inc. </li></ul><ul><li>Lucent Technologies </li></ul><ul><li>Motorola </li></ul><ul><li>MySQL Inc. </li></ul><ul><li>Nokia Corporation </li></ul>
  43. 43. JCP – Alguns Membros <ul><li>Novell, Inc. </li></ul><ul><li>NVIDIA </li></ul><ul><li>Oracle </li></ul><ul><li>PalmSource, Inc. </li></ul><ul><li>Panasonic Information and Network Technologies Laboratory </li></ul><ul><li>Philips Electronics UK Ltd </li></ul><ul><li>RSA Security, Inc. </li></ul><ul><li>Samsung Electronics Corporation </li></ul><ul><li>SAP AG </li></ul><ul><li>Sharp Corporation </li></ul><ul><li>Siemens AG </li></ul><ul><li>Software AG </li></ul><ul><li>Sony Ericsson Mobile Communications AB </li></ul><ul><li>SONY International (Europe) GmbH </li></ul><ul><li>Sun Microsystems, Inc. </li></ul><ul><li>Sybase </li></ul><ul><li>Symantec Corporation </li></ul><ul><li>Telecom Italia </li></ul><ul><li>Texas Instruments Inc. </li></ul><ul><li>The SCO Group </li></ul><ul><li>Time Warner Cable Inc. </li></ul><ul><li>Unisys </li></ul><ul><li>Vodafone Group PLC </li></ul>
  44. 44. Java Specification Request (JSR) <ul><li>Solicitação para uma nova especificação. </li></ul><ul><ul><li>Modificação de uma especificação existente. </li></ul></ul><ul><ul><li>Nova biblioteca. </li></ul></ul><ul><ul><li>Nova plataforma. </li></ul></ul><ul><li>Possui um líder (Spec Lead) e um grupo (Expert Group). </li></ul><ul><li>Exige uma Implementação de Referência (RI) e um Kit de Teste de Compatibilidade (TCK). </li></ul>
  45. 45. JSR#270: JavaSE 6 <ul><li>Apache Software Foundation </li></ul><ul><li>Google Inc. </li></ul><ul><li>Hewlett-Packard </li></ul><ul><li>JBoss, Inc. </li></ul><ul><li>SAP AG </li></ul><ul><li>Thoughtworks, Inc </li></ul><ul><li>BEA Systems </li></ul><ul><li>Intel Corp. </li></ul><ul><li>IBM </li></ul><ul><li>SAS Institute Inc. </li></ul><ul><li>Oracle </li></ul><ul><li>MetaSolv Software, Inc. </li></ul><ul><li>Sun Microsystems (Lead) </li></ul>
  46. 46. Desenvolvimento Comunitário <ul><li>OpenJDK </li></ul><ul><li>Java sob GPL </li></ul><ul><li>6.5 milhões de linhas de código </li></ul><ul><li>https://jdk7.dev.java.net/ </li></ul>
  47. 47. ... If you can imagine it, Someone is doing it in Java Everyone! Everything! Everywere! Everytime! What's next for Java? Obrigado!

×