Desenvolvimento de Aplicações Web nas plataformas J2EE e IDE Eclipse LEIC – Engenharia de Software Estrutura da Apresentação 1. Java To Enterprise Edition (overview) 2. Aplicações Web - Páginas Web 3. Aplicações Web - Web Services 4. IDE Eclipse 5. Eclipse Web Tools Platform Project LEIC - Engenharia de Software 2 Plataforma para Soluções Empresariais Baseada em componentes modulares standard Proporciona um conjunto completo de serviços Gere automaticamente detalhes relativos ao comportamento das aplicações 2. Java To Enterprise Edition (overview) 3 Serviços Empresariais J2EE 2. Java To Enterprise Edition (overview) 4 Tecnologias Implementadas Conceito “Write Once, Run Anywhere” Java Database Connectivity (JDBC) Servlets e JavaServer Pages (JSPs) Common Object Request Broker Architecture (CORBA) Extensible Markup Language (XML) Enterprise JavaBeans (EJBs) 2. Java To Enterprise Edition (overview) 5 Modelo para Aplicações Empresariais 2. Java To Enterprise Edition (overview) 6 Modelo de Aplicação J2EE Permite um desenvolvimento mais rápido com melhor qualidade e manutenção com portabilidade para um grande número de plataformas empresariais Aumenta a produtividade das equipas de desenvolvimento Permite uma gestão melhorada dos recursos disponíveis Resulta num melhor aproveitamento dos investimentos tecnológicos efectuados pelas organizações empresariais 2. Java To Enterprise Edition (overview) 7 Servlets Servlets permitem que a lógica de aplicação seja embutida no processo request-response: Um servlet é um programa Java que corre do lado do servidor e que estende a funcionalidade do servidor Web. 3. Desenvolvimento de Aplicações Web - Páginas Web 8 Funcionamento dos Servlets Quando um servidor Web entende que uma URL deve ser atendida por um Web Container, passa o controlo para o container (um conjunto de classes em Java, geradas automaticamente) Este container decide qual é a Web Application que deve executar; Quando é um servlet, o container controla a execução do servlet; Através da API de servlets, o servlet pode aceder à informação do Request e fornecer uma Response. 3. Desenvolvimento de Aplicações Web - Páginas Web 9 Java Server Pages (JSP’s) A geração de informação dinâmica pode ser feita de duas formas: Programando-a (servlets); Através de templates (Java Server Pages ou JSP). 3. Desenvolvimento de Aplicações Web - Páginas Web 10 Funcionamento dos JSP’s JSP é uma extensão da tecnologia de servlets: Uma página JSP contém código HTML (ou XML); Tags ou "scripts" especiais são introduzidos no HTML para execução; A página JSP é traduzida para um servlet, automaticamente, pelo servidor J2EE; O servlet é compilado (apenas uma vez); A partir daí, o servlet é executado para gerar o conteúdo dinâmico; É de notar que depois de a página JSP ser transformada em servlet, a situação é idêntica à execução de um servlet. 3. Desenvolvimento de Aplicações Web - Páginas Web 11 Funcionamento dos JSP’s Diagrama de Funcionamento 3. Desenvolvimento de Aplicações Web - Páginas Web 12 Enterprise JavaBeans (EJB) A especificação EJB define: As interfaces entre o servidor EJB e os componentes nele contidos; Os serviços que o container oferece para esses componentes. O objectivo maior é deixar o programador concentrar-se no “Business Logic”. Isso é feito de duas grandes formas: Programação Declarativa; Serviços Automáticos. 3. Desenvolvimento de Aplicações Web - Páginas Web 13 Modelo de Aplicação J2EE Programação Declarativa Cada Bean tem um “Deployment Descriptor” que permite configurá-lo visualmente durante a implementação; Sem ter código fonte e sem programar. Aumenta a produtividade das equipas de desenvolvimento; Serviços Automáticos Implementados por um Container. 3. Desenvolvimento de Aplicações Web - Páginas Web 14 Desenvolvimento de Web Services em J2EE Serviços oferecidos através da Internet utilizando aplicações modulares Facilitam a comunicação entre aplicações de empresas diferentes baseadas no XML Estas aplicações utilizam: Web Services Description Language (WSDL) Universal Description, Discovery and Integration(UDDI) Simple Object Access Protocol (SOAP) 3. Desenvolvimento de Aplicações Web - Web Services 15 Tecnologias Java usada para Web Services A linguagem Java é ideal para construir Web Services Foram criadas APIs com a finalidade de ligar o Java ao XML Estas APIs e algumas ferramentas encontram-se no Java Web Services Developer Pack (Java WSDP) 3. Desenvolvimento de Aplicações Web - Web Services 16 Java APIs Java API for XML Registries (JAXR) Aceder a registos standard tais como os baseados no UDDI e no ebXML Publicar usando o registo UDDI ou o registo ebXML, ou procurar por um registo de um Web Service Java API for XML-based RPC (JAX RPC) Aceder a Web Services através de uma chamada a um procedimento remoto (RPC) baseado no SOAP Chamar métodos do Web Service num ambiente distriuído 3. Desenvolvimento de Aplicações Web - Web Services 17 Java APIs Java API for XML Messaging (JAXM) Construir e enviar mensagens orientadas por documentos baseados no SOAP (mais propriamente no SOAP for Messaging) Java API for XML Processing (JAXP) Processar documentos XML (usado para retornar este tipo de documentos como resposta de um Web Service) 3. Desenvolvimento de Aplicações Web - Web Services 18 Tecnologias Java usada para Web Services Sun Microsystems: Sun ONE Developer Platform: ambiente sofisticado de desenvolvimento baseado em Java e no J2EE que inclui o Java WSDP Outras: Apache Jakarta-Tomcat Apache-Soap Jakarta-AXIS (3ª geração de SOAP da Apache) Ant 3. Desenvolvimento de Aplicações Web - Web Services 19 IDE Eclipse Projecto Open Source Dividido em : Plataforma Eclipse JDT (Java Development Tools) PDE (Plugin Development Environment) 4. IDE Eclipse 20 IDE Eclipse IDE que “serve para tudo e para nada em particular” Serve fundamentalmente para desenvolver IDEs, facilmente, para quaisquer linguagens de programação, editores de texto, etc 4. IDE Eclipse 21 IDE eclipse É permitido adicionar novas funções(ferramentas) ao IDE através de plugins que são programados em Java Os plugins são desenvolvidos de forma modular de modo a permitir a determinados plugins utilizarem as funções de outros 4. IDE Eclipse 22 Interface Gráfica A interface gráfica do Eclipse é programada utilizando o JFace e o SWT, logo o UI (interface com o utilizador) é igual em qualquer sistema operativo. 4. IDE Eclipse 23 JDT (Java Development Tools) Conjunto de Plugins que adicionam ao IDE a capacidade de desenvolver aplicações Java Permite colorir a sintaxe do programa, gravar informações do debugger e do compilador, ter a hierarquia de ficheiros organizada em árvore entre outras opções 4. IDE Eclipse 24 JDT (Java Development Tools) Dividido em 2 grupos: Plugins de UI (interface com o utilizador) Plugins não-UI (plugins não relacionados com a interface com o utilizador) Esta divisão permite a utilização do Eclipse em sistemas que não sejam baseados em interfaces gráficas com o utilizador. 4. IDE Eclipse 25 Eclipse Web Tools Platform Project Recursos humanos envolvidos no projecto (pcm) Constituição do projecto (sub-projectos e componentes) Infra-estrutura Desenvolvimento 5. Eclipse Web Tools Platform Project 26 Eclipse Web Tools Platform Project Plataforma baseada na plataforma mãe da eclipse Fornece ferramentas no campo da Web (baseadas em Java) Tool suites 5. Eclipse Web Tools Platform Project 27 Quadros do projecto: Pcm (comissão gestora do projecto) Utilizadores Passivos Utilizadores activos (construtores/programadores) Coordenadores 5. Eclipse Web Tools Platform Project 28 Projecto Sub-projecto 1 Sub-projecto2 … Componente 1 Componente 2 … “Port” 1 “Port” 2 … 5. Eclipse Web Tools Platform Project Sub-projecto N Componente N “Port N” 29 Infra-estrutura: bug database source repository (depósito de código) Website Forum genérico (general mailing lists) Forum de sub-projecto (subproject mailing lists) Forum de componente (component mailing lists) 5. Eclipse Web Tools Platform Project 30 Desenvolvimento: Controlado pela pcm Etapas e prazos Reuniões e gestão de conflitos 5. Eclipse Web Tools Platform Project 31 Conclusões do trabalho efectuado: A plataforma J2EE revela-se ideal para desenvolver aplicações empresariais; A plataforma Eclipse é um IDE concebido para desenvolver variadas aplicações, desde páginas web até aplicações Java, em C ou C++; A plataforma Web Tools Platform Project, uma das várias plataformas da Eclipse, destaca-se pela disponibilização de inúmeras ferramentas vocacionadas para o fácil desenvolvimento de “tool suites” e “web tools”. LEIC - Engenharia de Software 32