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

Tecnologia Java

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