Java: Muito mais que uma linguagem!

1,271 views
1,150 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,271
On SlideShare
0
From Embeds
0
Number of Embeds
317
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Java: Muito mais que uma linguagem!

  1. 1. Java: muito mais que uma linguagem!Aécio CostaPós Graduação FCAP-UPEEngenheiro de Sistemas - CESAR
  2. 2. Agenda Java: A linguagem Plataforma Java JVM – Java Virtual Machine JRE, JDK Tecnologias Plataformas Linguagens Frameworks
  3. 3. SunOne 2003 – Java is everywhere! http://www.youtube.com/watch?v=guXCmQDy9Es&feature=relmfu
  4. 4. Java: A linguagem“Java é uma linguagem de programação de propósito geral, concorrente, baseada em classes e orientada a objetos. Projetada para ter o mínimo de dependências possível permitindo desenvolvedores escrever um programa uma vez e depois ser capaz de executá-lo em qualquer lugar na internet.” [ORACLE] James Gosling Pai do Java
  5. 5. Java: A linguagem JCP – Java Community ProcessMecanismo para o desenvolvimento de especificações técnicas padrão para a tecnologia Java. JSR – Java Specification RequestsSimples versão de uma especificação Java. ◦ Especificações  JDBC, JSP, Servlet API, JAX-WS, ... ◦ Membros
  6. 6. JCP e ALJUG Promove educação, treinamentos, eventos (como este!) e etc.; Lugar onde é possível encontrar profissionais com expertise em diversos assuntos Java; Programas lançados pela JCP como “o seu JUG no JavaOne Latin America” ou “Adote uma JSR”; Desconto de 15% para os JUGs cadastrados no evento; JUG responsável por uma JSR; Além de Network e Currículo.
  7. 7. Plataforma JavaJava não é apenas uma linguagem......é uma Plataforma.Plataforma é uma infra-estrutura para programação baseada no poder das redes de computadores e na idéia de que uma mesma aplicação possa executar em diferentes máquinas, aparelhos e dispositivos eletrônicos."Write once, run anywhere“[Sun Microsystems]
  8. 8. Plataforma JavaDe laptops à datacenters, game consoles à super computadores, telefones à Internet, Java is everywhere! 1.1 bilhões de desktops rodam Java; 930 milhões de downloads da Java Runtime Environment a cada ano; 3 bilhões de mobile phones rodam Java; 100% de todos Blu-ray players rodam Java; 1.4 bilhões Java Cards são fabricados a cada ano; Set-top boxes, impressoras, Web cams, games, car navigation systems, terminais de loteria, dispositivos médicos, estações de pagamento de estacionamento, e muito mais rodam Java.
  9. 9. JVM – Java Virtual MachineJVM é a base da plataforma Java. É o componente responsável pela independência. [ORACLE]
  10. 10. JVM – Java Virtual MachineCaracterísticas JVM não sabe nada sobre a Linguagem Java; Entende um tipo de arquivo binário particular denominado arquivo de classe (.class); O arquivo .class contém instruções também conhecidos como bytecodes; A JVM impõe fortes restrições sintáticas e estruturais sobre o código (.class); Qualquer linguagem que possa gerar arquivos de classe pode ser hospedada na máquina virtual Java.
  11. 11. JVM – Java Virtual Machine
  12. 12. JVM – Java Virtual MachineImplementações HotSpot; OpenJDK; JRockit; ...
  13. 13. JRE, JDK JRE – Java Runtime EnviromentConjunto de ferramentas que permitem a execução de aplicativos Java. JDK – Java Development KitConjunto de ferramentas que permite desenvolver aplicações Java.
  14. 14. JRE, JDKArquitetura
  15. 15. Tecnologias Desktop (Swing) Web (Applets, JSP, Servlets) Mobile/Embedded (Midlets, Xlets)
  16. 16. PlataformasJSE – Java Standard EditionPermite desenvolver aplicações seguras, portáveis e de alto desempenho para a mais ampla variedade de plataformas. JVM BibliotecasPadrão (java.lang, java.io, ...) Aplicações Desktop UI: Swing
  17. 17. PlataformasJSE – Java Standard Edition Arquitetura
  18. 18. PlataformasJEE – Java Enterprise EditionPadrão da indústria para aplicações Java para o ambiente Web e Server-Side.
  19. 19. PlataformasJEE – Java Enterprise Edition Arquitetura
  20. 20. PlataformasJEE – Java Enterprise EditionImplementa especificações como: Servlets JSP – Java Server Pages EJB – Entreprise Java Beans JPA – Java Persistence API
  21. 21. PlataformasJEE – Java Enterprise Edition Servlet ContainerComponente de um Web Server que interage com Servlets Java.javax.servlet.* Application ServerServidor que implementa as especificações JavaEE.javax.ejb.*
  22. 22. PlataformasJEE – Java Enterprise EditionServlet Container x Application Server
  23. 23. PlataformasJME – Java Micro EditionPlataforma usada para desenvolver aplicações para celulares. Midlets Especificamente Feature Phones UI: Lwuit
  24. 24. (Plataformas)“A primeira plataforma verdadeiramente aberta e compreensiva para dispositivos móveis, tudo que um software mobile precisa, mas sem obstáculos que escondam a inovação.” Andy Rubin Director of Mobile Platformshttp://googleblog.blogspot.com/2007/11/wheres-my-gphone.html
  25. 25. (Plataformas)Características Linux Linguagem Java Máquina Virtual Dalvik Framework para desenvolvimento de app  Biblioteca de Gráficos  SQLite  Suporte a multimídia  Tecnologia GSM  Bluetooth, EDGE, 3G e WiFi  Câmera e GPS  Web Services  Content Providers
  26. 26. PlataformasJavaCardPermite o desenvolvimento de aplicações para serem embarcadas em smart cards, sim cards, NFC e dispositivos similares que possuam pouca memória.
  27. 27. PlataformasJavaTVPermite o desenvolvimento de aplicações para uso em set-top boxes permitindo interatividade na TV. 100% dos Blu-ray Disc Players embarcam JavaTV Middleware de diversos padrões em TV Digital (MHP, Ginga)
  28. 28. PlataformasJavaTV JMF – Java Media Framework JavaDTV Ginga-J HAVi DAVICjavax.tv.service, javax.tv.graphics, …
  29. 29. PlataformasJavaFXPermite o desenvolvimento de aplicativos clientes Java com interfaces (UI) ricas.
  30. 30. PlataformasJavaFX Permite aos usuários uma melhor experiência no uso; Utilizado em navegadores ou desktop; Mais de 50 gráficos personalizáveis​​, formulários e componentes layout que podem ser integrados em aplicações Swing existentes; Alta performance com acelerador de hardware para gráficos permitindo visualização de interfaces ricas e complexas.
  31. 31. LinguagensCaracterísticas Linguagem Dinâmica; Baseada em Java com características inspiradas em Python, Ruby e Smalltalk; Curva mínima de aprendizagem; Aumenta a produtividade reduzindo scaffolding code; Integra sem problemas com classes e bibliotecas Java existentes; Compila diretamente para Java bytecode.
  32. 32. Linguagens“Groovy é como uma super versão do Java. Ela aproveita as capacidades do Java e provê recursos de produtividade interessantes como closures, builders e tipagem dinâmica. Se você é um desenvolvedor, você vai amar Groovy.” [GROOVY]
  33. 33. LinguagensExemplo Código
  34. 34. LinguagensImplementação da linguagem Python em Java que combina poder com sintaxe muito limpa e suporte a P.O.O. Jython é complementar a Java e muito usado para: Embedded scripting Interactive experimentation Rapid application development
  35. 35. Linguagens Embedded scriptingPossibilidade de adicionar bibliotecas Jython aos seus softwares permitindo usuários finais escreverem scripts simples ou complexos que adicionem funcionalidades a aplicação. Interactive experimentationFornece um interpretador que pode ser usado para interagir com pacotes Java ou com aplicações Java rodando. Isso possibilita depuração de sistemas Java usando Jython. Rapid application developmentProgramas em Python são tipicamente menores do que programas em Java equivalentes. Jython provê maior produtividade além de poder misturar as duas linguagens.
  36. 36. LinguagensCaracterísticas Compilação dinâmica para Java bytecodes; Possibilidade de extender classes Java em Jython (permite efeitos de classes abstratas e etc); Permite criação de applets, servlets, beans,...; Trabalha com bibliotecas já inscritas em Java; Excelente Linguagem de scripts para ser embarcada.
  37. 37. LinguagensExemplo Código
  38. 38. LinguagensCaracterísticas Implementação da linguagem Ruby 100% em Java para JVM; Maioria das bibliotecas padrão Ruby;  Some are still missing, but we hope to implement as many as is feasible. [JRuby]. Alta performance.
  39. 39. LinguagensPlataformas e Ferramentas Web Applications  JRuby on Rails  Porting de aplicações Rails para JRuby Desktop Applications  Cheri::Swing  Limelight  Monkeybars  Rswing  ... Tools  JRuby Rake
  40. 40. LinguagensExemplo Código
  41. 41. LinguagensLinguagem de programação projetada para expressar padrões de programação comuns de uma forma concisa e elegante. Integra recursos de linguagens OO e funcional trazendo maior produtividade. [SCALA]
  42. 42. LinguagensCaracterísticas Linguagem Orientada à Objeto/Funcional; Estaticamente Tipada; Closures; Interoperabilidade com Java e .NET.
  43. 43. LinguagensPorque migrar? Impulsionar produtividade; Escalar aplicações; Confiabilidade total.
  44. 44. LinguagensCase
  45. 45. LinguagensCase
  46. 46. LinguagensCase back end Mudança do Core do enfileiramento de mensagens; Motivo: Atender rápidas taxas de crescimento do Twitter; 1500 Linhas de Código Scala; Projeto Open-Source Twitter Kestrel.
  47. 47. LinguagensCaracterísticas Roda na JVM, CLR e em JavaScript engines; Dialeto da linguagem LISP; Linguagem Funcional; Ênfase em recursão; Linguagem Dinâmica; Concorrência.
  48. 48. LinguagensExemplo de Código 1
  49. 49. LinguagensExemplo de Código 2
  50. 50. Frameworks Apache Velocity Struts JSF – Java Server Faces Google Web Toolkit Spring EclipseLink Hibernate JBoss Seam ...
  51. 51. FrameworksFramework open source para criação de aplicações Java Web.Desenhado para permitir a separação arquitetural em MVC (Model,View, Controller).Versão Atual: Struts 2
  52. 52. FrameworksEspecificação padrão baseada em componentes de UI para a plataforma Java EE. [JSF]Especificado na JSR – 314, JSF estabelece o padrão para construir UI do lado do servidor. [ORACLE].Versão Atual: JSF 2.0
  53. 53. FrameworksImplementações
  54. 54. FrameworksOferece uma programação abrangente e um modelo de configuração para aplicações baseadas em Java EE. [SPRING] Spring Security Spring Integration Spring Batch Spring Data Spring Web Flow Spring Web Services Spring Mobile Spring Social Spring Android
  55. 55. FrameworksFramework para mapeamento objeto relacional (ORM) para a linguagem Java. Mapeia classes Java para base de dados; Persistência de objetos POJO’s; Hibernate Query Language (HQL); Possui outros componentes como:  Hibernate Validator  Hibernate OGM – Object/Grid Mapper  ...
  56. 56. Dúvidas?
  57. 57. Referências[ORACLE] http://docs.oracle.com/javase/specs/jls/se7/html/jls-1.html[SCALA] http://www.scala-lang.org/[GROOVY] http://groovy.codehaus.org/[JYTHON] http://www.jython.org/[JRUBY] http://jruby.org/[STRUTS] http://struts.apache.org/[JSF] http://www.javaserverfaces.org/[SPRING] http://www.springsource.org/spring-framework[HIBERNATE] http://www.hibernate.org[ANDROID] http://developer.android.com
  58. 58. Obrigado! www.aeciocosta.com.br www.cesar.org.br

×