UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO CURSO DE SISTEMAS DE INFORMAÇÃO ARTIGO 1 DE PESQUISA PARA TRABALHO DE CONCLUSÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO ALUNO: ALECINDRO STEINKE CASTILHO ORIENTADOR(A): PROF. JOSÉ EDUARDO DE LUCCA Florianópolis, 27 de maio de 2007 Artigo Conhecendo a plataforma J2EE Autor: Eric C M Oliveira Bacharel em Ciencia da Computação/FASP e Comunicação/Unesp, tem experiência em desenvolvimento Java nas plataformas J2SE, J2EE e J2ME, além de atividades ligadas a disciplina de testes, engenharia e qualidade de software. Tem certificações Java SCJP 1.3, SCJP 1.4, Rational Test Management, Rational Robot e RUP (Rational Unified Process). Podemos desenvolvimento definir e J2EE como execução de a plataforma aplicações Java para servidoras, com capacidade de suporte ao desenvolvimento de aplicações robustas e escaláveis. Consiste em um conjunto de serviços, interfaces de programação de aplicação (APIs) e protocolos, que oferecem a funcionalidade para o desenvolvimento de aplicações de multicamadas, baseadas na Web. A plataforma J2EE estende a linguagem Java através de padrões simples e unificados em aplicações distribuídas através do modelo baseado em componentes. Características como portabilidade (uso em qualquer sistema operacional que contenha máquina virtual java) e interoperabilidade fizeram com que a tecnologia se difundisse e se consolidasse pela indústria de TI. O foco é simplificar o desenvolvimento de soluções no âmbito enterprise através de padrões, serviços e, principalmente, componentes modulares. Estes componentes, unidades de software em nível de aplicação com suporte a um contêiner, são configuráveis durante o desenvolvimento e incorporam um modelo de programação de acordo com o "contrato de componente" com seu contêiner. Isto é, um contêiner, oferece serviços de gerenciamento de ciclo de vida, segurança, distribuição e runtime (tempo de execução) para seus componentes. A plataforma define os seguintes tipos de contêiner (segunda a especificação da Sun): EJB (Enterprise Java Beans): um dos contêineres mais conhecidos da arquitetur. Especifica um ambiente de runtime para enterprise beans como serviços de segurança, concorrência, gerenciamento de ciclo de vida, transação, entre outros serviços. Os beans rodam no servidor J2EE. WEB: trata-se da implementação de contrato de componente da Web com a arquitetura J2EE, fornecendo ambiente de runtime para os componentes do tipo web que incluem desde segurança até gerenciamento de ciclo de vida e transação. Inclui Servlets (classes Java que podem ser carregadas dinamicamente e executar sob um servidor web) disponibilizadas por serviços de rede referentes aos pedidos e respostas enviados, com uso obrigatório do protocolo HTTP. E também engloba JSPs (Java Server Pages - tecnologia Web que utiliza, por exemplo, linguagens de scripting e objetos Java no servidor para retorno dinâmico a um cliente). Applet: contêiner Web que gerencia a execução de applets. Cliente da aplicação: Um contêiner que aceita e gerencia a execução de componentes do cliente da aplicação. Na figura abaixo, são ilustrados os componentes e containers J2EE. Algumas das principais APIs e suas funcionalidades da versão mais atual de J2EE (5) são: Enterprise JavaBeans API que padroniza componentes J2EE do lado servidor, com regras de desenvolvimento definidas como implementação de interfaces responsáveis por tarefas definidas ou regras de herança. Tem como vantagem o tratamento automático de segurança, persistência, transação dentre outros serviços. Java Servlet / JavaServer Pages Um servlet estende as funcionalidades de um webserver e pode fazer uso de qualquer outra API. Um JSP faz as funções de um script em uma página web e é compilado como servlet em seu container. Uma página JSP contém dois tipos de texto: estático, representado por marcações HTML, WML, ou XML, e elementos dinâmicos JSP. Java Message Service API (JMS) API que permite o acesso de forma padronizada serviços de mensagens na interação com outros tipos de programas. Java Transaction API (JTA) Especifica uma interface para as aplicações utilizarem um serviço de suporte transacional, por exemplo, gerenciamento de aplicações distribuídas. JavaMail API / JavaBeans Activation Framework (JAF) São implementações de suporte ao envio e recebimento de e-mails em Java. J2EE Connector Architecture (JCA) As APIs que formam esse tipo de arquitetura tem como funções prover integrações entre sistemas de forma corporativa, ou seja, padronizar conexões entre sistemas Java e EIS (Enterprise Information Systems), como por exemplo, ERPs e CRMs. JDBC API de acesso a bancos de dados. Sua importância esta no fato de permitir o acesso a diferentes tipos de bancos de dados usando a mesma API. Java Naming and Directory Interface (JNDI) Tem como objetivo fornecer uma interface padrão localização de usuários, máquinas, objetos, redes e serviços. para