A Plataforma JAVA Bibliografia: • The Java Platform: A White Paper Douglas Kramer Javasoft http:// java.sun.com 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 1 O Que é? • Uma plataforma de software para distribuir e executar applets e aplicações altamente interativas, dinâmicas e seguras, em sistemas de computadores em rede. • “Write Once, Run Anywhere” 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 2 Partes Básicas da Plataforma JAVA • Java Virtual Machine • Java Application Programming Interface (Java API) 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 3 Java Base Platform (I) • É a plataforma Java mínima que os desenvolvedores podem assumir com segurança como estando presente para executar applets e aplicações Java. • Aplica-se a network computers, desktop computers, workstations, etc... 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 4 Java Base Platform (II) • Contém a Java Virtual Machine e um conjunto mínimo de APIs necessárias para executar applets e aplicações. • Este conjunto mínimo de APIs é denominado Java Applet API ou Java Base API. • Java Standard Extension API - (em definição pela Javasoft) estenderá a funcionalidade da Java Base API. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 5 Java Embedded Platform API • Direcionada para para aparelhos eletrônicos de consumo e com poucos recursos e funcionalidade mais especializada que a de um Network Computer. • Restrições: pequena memória, sem display, não conexão a redes, etc .. • Impressoras, telefones celulares, copiadoras, fax, eletro-domésticos, etc... 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 6 Vantagens da Plataforma Java • Simplifica o controle de versões e upgrades. • Reduz o número de plataformas a suportar. • Os usuários passam a ter uma plataforma neutra para acesso à rede. • Deslocamento de certas atividades da companhia para os clientes (ex.: preenchimento de formulários). 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 7 Applets x Aplicações (I) • Applets: são “programas” que precisam de um browse (JVM) para serem executados. • Referências a applets são inseridas em arquivos html (applet tag). • Normalmente são pequenos, pois é preciso se efetuar o download. • Restrições de segurança 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 8 Applets x Aplicações (II) • Aplicações: similares às aplicações tradicionais. • Também precisam de uma plataforma Java para executar (programa em separado, ou embedded no sistema operacional subjacente ou na própria aplicação). 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 9 Plataformas Java • Browsers (Netscape Navigator, Internet Explorer, HotJava, etc...) • Sistemas Operacionais de desktops, workstations, network computers e mainframes (MVS/IBM). • família de circuitos integrados JavaChip (alvo: aparelhos de consumo e dispositivos industriais em geral) 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 10 A Família JavaChip • Projeto da JavaSoft e Sun Microelectronics. • picoJava, microJava e UltraJava • picoJava: é, na realidade, uma especificação padrão para projeto de um microprocessador que suporte a Máquina Virtual Java. • picoJava está disponível para licenciamento por fabricantes de chips. • microJava e UltraJava são chips, em desenvolvimento pela Sun Microelectronics (suportam o JavaOS) 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 11 JavaOS • Sistema Operacional que implementa a Java Base Platform para executar applets e aplicações. • Implementa a Java Virtual Machine, Java Embedded API, e a funcionalidade subjacente para janelas, redes e sistemas de arquivos. • Projetado para: Network Computers, aparelhos de consumo, dispositivos industriais. • Idéia: turn-on instantâneo, inexistência de setup na instalação, upgrade automático, quando em rede. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 12 Java Platform Applets Applications • Applets andand Applications Java Base API Java Standard Extension API Java Base Classes Java Standard Extension Classes Java Virtual Machine Porting Interface Adapter Adapter Adapter Java browser OS OS OS HW HW HW HW browser Desktop OS OS NW Smaller OS Java OS 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 13 A Plataforma Java (I) Possui 2 partes principais: • Java Virtual Machine: máquina abstrata que pode ser implementada em software ou hardware. Facilmente portável: via Porting Interface e Adapters. • Java API: formam uma interface padrão para applets e aplicações, independente do sistema operacional. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 14 A Plataforma Java (II) • Java API = Java Base API + Java Standard Extension API • A Java API especifica um conjunto de interfaces em áreas chaves. • Java Base API: provê o básico da linguagem Java e serviços utilitários, de I/O, de rede, GUI e applets (inclui os packages: lang, util, io, net, awt e applet) 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 15 A Plataforma Java (III) • Java Standard Extension API: estende a funcionalidade da Java Base API. • Progressivamente algumas destas extensões migrarão para a Java Base API. • As especificações das extensões são publicadas e submetidas à revisão da indústria. • A estrutura (framework) da Java API é aberta e extensível. • A API é organizada em grupos ou conjuntos. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 16 Java Standard Extension API APIs que migrarão para a Java Base API: • • • • • • • Java 2D Audio Java Media Framework Java Animation Java Enterprise Java Commerce Java Security 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 17 Java Standard Extension API APIs que permanecerão como Java Standard Extension: • • • • • • Java 3D Vídeo, MIDI Java Share Java Telephony Java Server Java Management 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 18 Java Security API • É uma estrutura para os desenvolvedores de software que possibilita a inclusão de funcionalidade relacionada à segurança de seus applets e aplicações. • Compreende: criptografia, assinaturas digitais, codificação e autenticação. • Inclui um layer abstrato que as aplicações podem invocar. Este layer, por sua vez, invoca classes nos Java Security packages, que implementam a função desejada. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 19 Java Media API (I) • Compreende as classes multimedia que dão suporte a um amplo espectro de media interativa na WEB e em aplicações tradicionais. • Inclui: áudio, vídeo, 2D, 3D, animação, telefonia e colaboração. • Os standards estão sendo definidos em conjunto por: JavaSoft, Adobe, Apple, Intel, Macromedia, Netscape, SGI, e Sun Microsystems. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 20 Java Media API (II) • Java 2D API • Java Media Framework API = Video API + Audio API + MIDI API • Java Animation API • Java Share API • Java Telephony API • Java 3D API 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 21 Java Enterprise API (I) • As classes da Enterprise API conectam aplicações Java a recursos de informação das empresas. • Compreende três grupos de API: – JDBC (Java Database Connectivity) – IDL (Interface Definition Language) – RMI (Remote Method Invocation) 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 22 Java Enterprise API (II) • JDBC: Interface SQL padrão para acesso a banco de dados. • Provê interface uniforme para acesso a diferentes bancos de dados. • Provê uma base comum sobre a qual ferramentas de alto nível e interfaces podem ser construídas. • Compreende classes para conexão a bancos de dados, comandos SQL, conjuntos resultados, e metadados • Possibilita aos programas Java formular comandos SQL e processar os resultados. • ODBC bridges 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 23 Java Enterprise API (III) • IDL (Interface Definition Language): Forma neutra, relativamente às linguagens, de especificar uma interface entre um objeto e seu cliente quando eles estão em diferentes plataformas. • Remote Method Invocation (RMI): Possibilita a invocação de métodos de objetos remotos, isto é, situados em outras máquinas virtuais Java. (análogo ao RPC) 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 24 Java Commerce API • Possibilita que operações comerciais e financeiras sejam executadas com segurança na WEB. • O componente inicial desta API é o Java Wallet. • Java Wallet define e implementa uma estrutura client-side para conduzir operações comerciais em rede. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 25 Java Server API • Estrutura extensível que possibilita e facilita o desenvolvimento de todo um espectro de servidores Java em ambientes Internet e Intranet. • Do lado do servidor incorpora classes para: administração do servidor, controle de acesso, controle dinâmico dos recursos do servidor. • Servlets são objetos independentes da plataforma e a contrapartida dos applets (substituem os scripts CGIs). 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 26 Java Management API (I) • É uma coleção de classes que provê os blocos básicos para um gerenciamento integrado. • Admin View Module: é uma extensão da AWT (Abstract Window Toolkit). Projetada para criar soluções para gerenciamento integrado (web browser hypertext style of navigation). • Base Object Interfaces: suporta a criação de objetos que representam recursos e serviços distribuídos que compõem o ambiente computacional da companhia. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 27 Java Management API (II) • Managed Notification Interfaces: provêm o fundamento sobre o qual serviços mais complexos gerenciados por eventos podem ser construídos. Provê notificação assíncrona de objetos entre objetos gerenciados e aplicações gerenciadoras, fornecendo as interfaces para implementação de um serviço básico de event-dispatching. • Managed Container Interfaces : possibilita o agrupamento de objetos gerenciados, de modo que as aplicações gerenciadoras possam realizar ações em um único grupo, ao invés de em várias instâncias de objetos. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 28 Java Management API (III) • Managed Data Interfaces: suportam mapeamento de atributos de extensões para Base Object Interfaces (Interfaces Baseadas em Objetos) para um Banco de Dados Relacional.. • Managed Protocol Interfaces: implementam as características de distribuição e segurança para extensões da Interfaces Baseadas em Objetos (usadas na Java Security API e Java Remote Method Interface-RMI). • SNMP Interfaces: estendem a Managed Protocol Interfaces para permitir que extensões dos Base Objects contenham informações obtidas de agentes SNMP existentes. Com isto, informações SNMP estarão disponíveis para todos os usuários da Java Management API. 01/98 Copyright by Oscar Luiz Monteiro de Farias, D.Sc. 29