Java – J2EE Java pra Web UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS Agenda Introdução Plataformas para web Java Web – J2EE Introdução Atualmente, com a globalização e a “evolução das máquinas”, surgiram diversos meios de comunicação que permitiram a expansão de diversos ramos empresarias. A internet foi o meio de comunicação que mais propiciou este crescimento, tornando as empresas mais competitivas e dispondo-nos de serviços que se encontravam cada vez mais distantes. Plataforma web Através da internet diversas empresas definiram sua “capa de rosto”, seu primeiro contato. Aplicações desenvolvidas para esta plataforma (plataforma web) são bastantes conhecidas por serem flexíveis, isto é, não ficarem presas a um determinado sistema operacional e muito menos a um software específico. Plataforma web O desenvolvimento de aplicações para Web é um pouco diferente do desenvolvimento de aplicações locais (Desktops), desde a parte de visualização, quanto segurança. Diversas linguagens permitem o desenvolvimento para Web, são elas: Java, PHP, Dot Net (.net), asp, etc... O foco desta disciplina será dado na Linguagem Java utilizando a Plataforma J2ee. Plataforma de desenvolvimento é o nome dado a um conjunto de componentes (bibliotecas e APIs) que regem toda uma arquitetura de desenvolvimento. JEE O que devemos saber antes? Java é uma linguagem de programação. A linguagem java é utilizada na implementação das 3 plataformas existentes: JSE – Java Standart Edition • Ferramentas e APIs essenciais para qualquer aplicação Java (inclusive GUI) desktop JEE – Java Enterprise Edition (Web) • ferramentas e APIs para o desenvolvimento de aplicações distribuídas JME – Java Micro Enterprise • ferramentas e APIs para o desenvolvimento de aplicações para aparelhos portáteis JEE A plataforma Java JEE surgiu com o objetivo de padronizar e simplificar a criação de aplicações empresariais. Para isso, propõe um modelo onde componentes J2EE (páginas JSP, Servlets, EJB's, etc) escritos pelos usuários da plataforma, podem fazer uso de serviços providos por esta, os quais simplificam sua implementação e possibilitam maior foco no negócio. Tais serviços podem ser envio de email, transações complexas com banco de dados, etc... O usuário passa a preocupar com as regras do negócio, não se preocupando com a parte técnica referente a arquitetura e processamento. Concluindo o conceito de J2EE O JEE (Java Enterprise Edition ou Java EE) não passa de uma série de especificações bem detalhadas, dando uma receita de como deve ser implementado um software que faz um determinado serviço. Para encontrar informações sobre diversas especificações java, acesse: www.jcp.org Java Community Process Informações sobre J2EE: www.sun.com/javaee Como ocorre o acesso aos sistemas web? As aplicações desenvolvidas para internet são acessadas via os navegadores web, o que quer dizer que elas utilizam o protocolo HTTP para comunicação e o tráfego de dados na rede. Este protocolo é baseado no modelo de solicitação e resposta. O cliente é quem sempre faz uma solicitação a um servidor, que, por sua vez, processa e gera uma resposta de volta ao cliente. Neste ponto a conexão entre cliente e servidor é fechada, ou seja, não existe uma sessão permanente entre esses dois pontos de comunicação. O cliente abre uma conexão com o servidor, envia a requisição, recebe a resposta e fecha a conexão. JEE A comunicação entre o cliente (browse) e o servidor . JEE Aplicações distribuídas são compostas de uma camada cliente, que implementa a interface com o usuário, uma ou mais camadas intermediárias que processam a lógica do negócio e provêem serviços à camada cliente, tais como: sistemas legados e bancos de dados. A infra-estrutura oferecida pela JEE possibilita que estas camadas, possivelmente localizadas em máquinas diferentes, possam se comunicar remotamente e juntas comporem uma aplicação. JEE Quando criamos um componente numa aplicação J2EE, o mesmo deve ser instalado no container apropriado. Uma parte de código criado em java, que pode ser aproveitado por outra aplicação, dar-se o nome de componente. Um container é um ambiente de execução padronizado que provê serviços específicos a um componente. Assim, um componente pode esperar que em qualquer plataforma J2EE implementada por qualquer fornecedor estes serviços estejam disponíveis. Aplicações Container O container Web, além de gerar conteúdo dinâmico oferece os seguintes serviços: Gerenciamento dos recursos utilizados pelos componentes. Exemplo: Conexões com o banco de dados. Gerenciamento do ciclo de vida dos componentes. Gerenciamento de sessões de usuários. Gerenciamento de segurança da aplicação. Modelo de acesso Cliente (Browse) Servidor Web Container Web Especificações Java Páginas HTML estáticas Aplicações cliente-servidor O desenvolvimento de aplicações web na plataforma J2EE faz-se necessários o conhecimento de alguns conceitos: Aplicações cliente-servidor Aplicações para Web Linguagem java HTML, JSP e servlet Aplicações cliente-servidor Aplicações cliente-servidor São programas que seguem o modelo cliente-servidor. Neste modelo um programa serve (envia) dados ao programa cliente quando solicitado. Aplicações para Web São aplicações criadas com conteúdos dinâmicos a partir de informações vindas do banco de dados, etc... Linguagem java Linguagem utilizada na implementação de aplicações na plataforma J2EE. HTML, JSP e Servlet Linguagem de hipertexto. JSP é a linguagem utilizada para apresentar conteúdo dinâmico Servlet é o script utilizado para maniupar banco de dados e processar a regra de negócios. Arquitetura em camadas O desenvolvimento de software utilizando a arquitetura de cliente-servidor normalmente é feita utilizando se o conceito de: Duas camadas Neste tipo de arquitetura a parte de acesso a banco de dados e regra de negócios se misturam, tornando a codificação confusa para manutenção. Três camadas JEE Uma aplicação Web pode ser dividido utilizando a arquitetura em 3 camadas: Apresentação e visualização. Controle (definição e o processamento das regras de negócios). Persistência de dados. JEE Apresentação e visualização. É responsável por interagir e apresentar os dados aos usuários e por se comunicar com outras camadas da aplicação. Em geral é a única parte da aplicação com a qual o usuário tem contato. A camada cliente comunica-se com outras camadas através de interfaces bem definidas. JEE Controle (definição e o processamento das regras de negócios). é quem recebe e processa as requisições dos usuários através de um web container. É responsável por realizar todo processamento web, como hospedar páginas HTML, executar servlets e formatar páginas JSP a serem apresentadas pelos navegadores. Em nosso caso, é responsável também pelo controle do fluxo da aplicação e por processar toda a lógica do negócio, incluindo o gerenciamento de conexões com banco de dados e conectores para acesso a recursos legados JEE Persistência de dados. Camada de banco de dados e sistemas de informação legados: tipicamente nesta camada estão incluídos sistemas gerenciadores de banco de dados, sistemas de planejamento de recursos (ou Enterprise Resource Planning (ERP)) e quaisquer sistemas legados. JEE Mas, o que significam todos estes termos: servlets, JSP, bean, etc...? Próximo assunto Parte II - Servlets Arquivos utilizados Caelum Java Web .pdf Capítulo 3 Principais padrões J2EE para a construção de aplicações não distribuídas.pdf Introdução Curso Java Web.pdf Slide 1 a 7 Aplicações cliente-servidor via web usando java.pdf Capítulo 1, 2 e 3