Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse LEIC 2003/04 – Engenharia de Software Dezembro de 2003 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Bruno Santos , [email protected] Bruno Vieira , [email protected] Filipe Coelho , [email protected] José Moura , [email protected] Pedro Palmares , [email protected] Sérgio Pires , [email protected] Estudantes do curso de Engenharia Informática e Computação na Faculdade de Engenharia da Universidade do Porto Faculdade de Engenharia da Universidade do Porto Departamento de Engenharia Informática e de Computação Rua Roberto Frias, s/n, 4200-465 Porto, Portugal Dezembro de 2003 FEUP – LEIC 2003/04 – Engenharia de Software 2/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Resumo O presente trabalho consiste no estudo do desenvolvimento de aplicações web nas plataformas J2EE (Java To Enterprise Edition) e IDE Eclipse, tendo sido realizado no âmbito da disciplina de Engenharia de Software, do 1º Semestre, 3º ano, da Licenciatura em Engenharia Informática e de Computação da Faculdade de Engenharia da Universidade do Porto, leccionada pelos Professores Raul Moreira Vidal e João Pascoal Faria. FEUP – LEIC 2003/04 – Engenharia de Software 3/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Índice 1. Introdução ........................................................................................ 5 2. Plataforma Java 2, Enterprise Edition (J2EE) .................................. 5 2.1. 2.2. 3. Desenvolvimento de Aplicações Web .............................................. 9 3.1. 3.2. 4. Desenvolvimento de Páginas Web em J2EE...................................... 9 Desenvolvimento de Web Services em J2EE ................................... 13 IDE Eclipse ..................................................................................... 15 4.1. 4.2. 4.3. 5. Plataforma para Soluções Empresariais ............................................. 5 Novo Modelo para Aplicações Empresariais....................................... 6 Arquitectura dos Plugins ................................................................... 16 Workspace ........................................................................................ 16 Java Development Tooling (JDT)...................................................... 17 Eclipse Web Tools Platform Project ............................................... 17 5.1. 5.2. 5.3. PMC .................................................................................................. 17 Sub-projectos e suas componentes .................................................. 18 Infra-estrutura.................................................................................... 19 6. Conclusões..................................................................................... 19 7. Referências bibliográficas .............................................................. 20 FEUP – LEIC 2003/04 – Engenharia de Software 4/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse 1. Introdução Conforme já foi referido, este trabalho foi realizado no âmbito da disciplina de Engenharia de Software, do 1º Semestre, 3º ano, da Licenciatura em Engenharia Informática e de Computação da Faculdade de Engenharia da Universidade do Porto, leccionada pelos Professores Raul Moreira Vidal e João Pascoal Faria. Os seus objectivos são o estudo e conhecimento do desenvolvimento de aplicações web nas plataformas J2EE (Java To Enterprise Edition) e IDE Eclipse. Para uma melhor estruturação do presente relatório, este encontra-se dividido em quatro pontos principais, que são: • • • • A plataforma J2EE Desenvolvimento de Aplicações Web A plataforma IDE Eclipse Eclipse Web Tools Platform Project 2. Plataforma Java 2, Enterprise Edition (J2EE) 2.1. Plataforma para Soluções Empresariais A Plataforma Java 2 Edição Empresarial (J2EE), define um novo standard para desenvolver aplicações empresariais. Ao basear-se em componentes modulares, “standartizados”, a plataforma J2EE simplifica o desenvolvimento de aplicações empresariais ao proporcionar um conjunto completo de serviços sobre esses mesmos componentes, e gerindo automaticamente vários detalhes relativos ao comportamento das aplicações. A Plataforma J2EE possui várias características, sendo as mais importantes: • • • conceito de portabilidade “Write Once, Run Anywhere”: permite facilmente implementar a mesma aplicação em várias plataformas; a API JDBC (Java DataBase Connectivity): permite aceder e manipular dados obtidos de qualquer tipo de base de dados a partir da linguagem Java; tecnologia CORBA (Common Object Request Broker Architecture): infraestrutura que permite a interacção entre aplicações através de redes. FEUP – LEIC 2003/04 – Engenharia de Software 5/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Esta infraestrutura é independente da plataforma para a qual a aplicação foi desenvolvida. A plataforma J2EE possui total suporte para: • componentes Enterprise JavaBeans (EJB): modelam todos os objectos úteis numa empresa em dois grupos: o Session Beans: representam acções relacionadas com sessões de cliente (pagamento efectuado pelo cliente num site de comérico electrónico, por exemplo); o Entity Beans: representam colecções de dados (obtidos de uma base de dados relacional) e encapsulam operações nos dados que representam; • • API Servlets e JavaServer Pages (JSP): permitem o desenvolvimento de páginas web com scripting na linguagem Java; tecnologia XML: permite implementar componentes e ferramentas de desenvolvimento personalizadas. A Sun definiu assim uma plataforma robusta mas flexível, que pode ser implementada numa grande variedade de sistemas empresariais (sistermas de gestão de bases de dados, entre outros). 2.2. Novo Modelo para Aplicações Empresariais O modelo de aplicação J2EE constitui uma implementação simplificada para desenvolver aplicações baseadas em Internet/Intranet: Fig. 1: O Modelo de Aplicação J2EE FEUP – LEIC 2003/04 – Engenharia de Software 6/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse JSP: JavaServer Pages EJB: Enterprise JavaBeans Através do modelo de aplicação J2EE, toda a complexidade inerente às aplicações empresariais (gestão de transações, ciclo de vida das aplicações, gestão de recursos) está embutida na plataforma e é gerida automaticamente pelos componentes disponibilizados, permitindo assim aos responsáveis pelo desenvolvimento das aplicações concentrarem-se em tarefas específicas, como a lógica de negócio e interface com o utilizador. O modelo de aplicação J2EE encontra-se dividido em camadas, cada uma suportando um tipo específico de componentes. A lógica de negócio é gerida pelos componentes Enterprise JavaBeans (EJB). A interacção com o cliente pode ser apresentada através de páginas web através da API Servlets e Páginas JavaServer, ou através de aplicações Java. Os componentes comunicam entre si através de vários standards: HTML, XML, HTTP, SSL, RMI, IIOP, entre outros. Este método implementado pelo 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. Em termos de implementação, este modelo aumenta a produtividade das equipas de desenvolvimento e permite uma gestão melhorada dos recursos disponíveis, dando origem a um melhor aproveitamento dos investimentos tecnológicos efectuados pelas organizações empresariais. Definindo o padrão para aplicações empresariais: O Futuro A Sun Microsystems está a planear evoluir a plataforma J2EE, por forma a acompanhar o rápido desenvolvimento do mundo empresarial. A API Java Message Service, uma maior integração com XML, a capacidade de interagir com objectos de negócio desenvolvimdos em COM e a expansão da plataforma J2EE a outros sistemas de informação empresariais ainda não suportados, são algumas das características que podemos esperar no futuro. Serviços Empresariais Standard J2EE Para além de providenciar suporte para Enterprise JavaBeans, Java ServLets e JavaServer Pages, a plataforma J2EE possui ainda outros serviços standard, conforme se poderá visualizar na figura seguinte. FEUP – LEIC 2003/04 – Engenharia de Software 7/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Fig. 2: Serviços Standard providenciados pela plataforma J2EE Java Naming and Directory Interface (JNDI) API Concebida para “standartizar” o acesso a toda uma variedade de serviços de directório, a API JNDI disponibiliza um mecanismo simples para os componentes J2EE procurarem por objectos de que necessitem. JavaMail API A plataforma J2EE usa o JavaMail para apoiar aplicações web como sites de comércio electrónico. Pode ser usada, por exemplo, para permitir enviar confirmações de encomendas ou outro tipo de interacção por parte do utilizador. Java Transaction API (JTA) Apesar de a plataforma J2EE disponibilizar suporte a transações automaticamente, a API Java Transaction permite aos componentes J2EE gerirem as suas próprias transações, e a vários componentes participarem numa simples transação. Java Message Service (JMS) A API Java Message Service disponibiliza aos componentes um mecanismo standard para enviarem e receberem mensagens de forma assíncrona, para interacção tolerante a falhas. FEUP – LEIC 2003/04 – Engenharia de Software 8/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse 3. Desenvolvimento de Aplicações Web 3.1. Desenvolvimento de Páginas Web em J2EE Servlets Servlets permitem que a lógica de aplicação seja embutida no processo request-response: • Um servlet é um programa Java que corre ao lado servidor e que estende a funcionalidade do servidor Web; • A API de servlets fornece um framework simples para construir aplicações em servidores Web que dão suporte a servlets. Quando o servidor Web entende que uma URL deve ser atendida por um Web Container, ele passa o controlo para o container (Um 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 a informação do Request, fornecer uma Response, etc (Fig. 3). Fig. 3: Web Container FEUP – LEIC 2003/04 – Engenharia de Software 9/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse 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). O uso de templates é melhor pois deixa o Web Designer com a possibilidade de criar as páginas. 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, de forma a produzir o conteúdo final; • 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 da página JSP ser transformada em servlet, a situação seja idêntica à execução de um servlet (fig. 4). Fig. 4: Java Server Pages FEUP – LEIC 2003/04 – Engenharia de Software 10/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Ciclo de Vida de uma Página JSP Ao chamar uma página JSP, um servlet especial verifica se a página é mais recente do que o servlet que a representa: • Se for, o servlet é gerado novamente, a partir da JSP e recompilado, o que ocorre automaticamente; • Necessário para alterar aplicações sem desligar o servidor para aplicações de missão crítica (24x7); • Portanto, uma página JSP é, na realidade, um servlet. Servlets ou Java Server Pages? Temos várias alternativas para a geração de páginas dinâmicas que são: • Servlets que contêm a lógica de aplicação e que geram o conteúdo das páginas; • JSP’s que contêm a lógica de aplicação e que geram o conteúdo das páginas; • Servlets que contêm a lógica de aplicação e JSP que geram o conteúdo das páginas. Enterprise JavaBeans (EJB) EJB não é um produto, é uma especificação: Para ter suporte multifornecedor; Sistemas Abertos continuam ... O objetivo maior é deixar o programador concentrar-se no “Business Logic”. Isso é feito de duas grandes formas: • Programação Declarativa; • Serviços Automáticos. Programação Declarativa Cada Bean tem um “Deployment Descriptor” que permite configurá-lo visualmente durante a implantação, sem ter código fonte e sem programar. Serviços Automáticos Implementados por um Container (Fig. 5). FEUP – LEIC 2003/04 – Engenharia de Software 11/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Fig. 5: Serviços automáticos implementados por um Container Lifecycle Bean não precisa de se preocupar com criação de processos, threads, acivação ou destruição de objecos. Gerência de estado O estado conversacional de Beans (gravado/recuperado) automaticamente. (se houver) é gerenciado Segurança Beans não precisam de autenticar os utilizadores ou verificar o nível de autorização. Transações Não é necessário colocar código de demarcação de transações nos Beans para que possam participar de transações distribuídas. O Container automaticamente gerencia o início, enrollment, commitment e rollback de transações. Persistência Beans não precisam de se preocupar com a sua persistência numa Base de Dados. Outros Outros serviços podem ser oferecidos dependendo do fornecedor (Fail-over, Load-Balancing, ...). A implementação dessas idéias depende de 3 coisas: • Uma arquitectura; FEUP – LEIC 2003/04 – Engenharia de Software 12/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse • • Um novo processo de desenvolvimento (para favorecer o reuso); Novos papéis para os desenvolvedores (que já vimos antes). 3.2. Desenvolvimento de Web Services em J2EE Introdução sobre Web Services Web Services são serviços oferecidos pela Internet. São aplicações modulares que são auto descritas e podem ser publicadas, localizadas e invocadas de qualquer local na Web (ou numa LAN). São também a maior novidade em relação à colaboração business-to-business (B2B). Sempre que duas empresas queriam trocar informação ou partilhar aplicações do sistema tinham que passar por um longo e doloroso processo. Havia sempre grandes problemas em alinhar os sistemas para que a maneira como os pedidos eram comunicados e como a informação era representada seria semelhante. Web Services são serviços informáticos disponíveis através da Internet bastando para isso uma máquina configurada para executá-los. Web Services facilitam a comunicação entre aplicações distintas através de um conjunto de normas baseadas no XML. As empresas usam o Web Services Description Language (WSDL) que é baseado no XML para mostrar os seus Web Services na Internet e listá-los num registo baseado também no XML como o Universal Discription, Discovery and Integration (UDDI). O UDDI permite encontrar Web Services disponíveis publicamente. Um cliente envia o pedido do serviço ao registo, que informa o cliente sobre os serviços registados que condizem com o critério da pesquisa. O Simple Object Access Protocol (SOAP) é então usado para comunicar entre as aplicações que funcionam em plataformas diferentes, usando HTTP e XML como o método de troca. A figura seguinte representa a forma como este processo é realizado: Fig. 6: Tecnologias Java usadas para Web Services FEUP – LEIC 2003/04 – Engenharia de Software 13/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse Um Web Service pode ser escrito em qualquer língua de programação, no entanto o Java é ideal para construir Web Services e desenvolver aplicações que usam Web Services por diversas razões. Muitas APIs do Java foram criadas com a finalidade de ligar a linguagem Java com o XML, para se poder usar esta tecnologia do Java. Destas APIs salientam-se a seguir as mais importantes: • Java API for XML Registries (JAXR) – esta API é utilizada para aceder a registos standard tais como aqueles baseados no UDDI e o ebXML. Usando esta API, um fornecedor de um Web Service pode publicá-lo usando o registo UDDI ou o registo ebXML. O utilizador através de uma aplicação pode usar esta API para procurar por um registo de um Web Service. As especificações desta API foram escritas com o objectivo de suportar outros standards que possam vir a ser desenvolvidos no futuro. Encontra-se neste momento a ser desenvolvido um projecto opensource para suportar os registos ebXML usando esta API. • Java API for XML-based RPC (JAX_RPC) – esta API é utilizada para aceder a Web Services através de uma chamada a um procedimento remoto (RPC) baseado no SOAP(Simple Object Access Protocol). Isto permite que um cliente usando o Java possa chamar métodos do Web Service num ambiente distribuído, como por exemplo o cliente e o Web Service estarem em sistemas diferentes. Para o responsável pelo desenvolvimento da aplicação, esta API fornece um maneira de chamar o Web Service. Para o responsável pelo desenvolvimento do Web Service, esta API fornece uma maneira de colocar o Web Service disponível para ser chamado por uma aplicação. • Java API for XML Messaging (JAXM) – esta API é utilizada para construir e enviar mensagens orientadas por documentos baseado no SOAP. Neste caso é baseado mais propriamente pelo SOAP for Messaging. Esta API permite que o responsável pelo desenvolvimento possa concentrar-se na construção, envio, recepção e decomposição das mensagens em vez de programar rotinas de baixo nível de comunicação do XML. • Java API for XML Processing (JAXP) – esta API é responsável por processar documentos XML. Um exemplo de uso do JAXP é no processo de documentos XML usados para retornar como resposta de um Web Service. Para este efeito, o JAXP suporta várias normas para este processamento como: Document Object Model (DOM), Simple API for XML Parsing (SAX) e a transformação destes documentos usando o XSL Transformations (XSLT). Todas estas APIs do Java referidas anteriormente encontram-se no Java Web Services Developer Pack (Java WSDP). Neste pacote pode encontrar-se também algumas ferramentas de ajuda na construção e no teste de Web Services baseados em Java e aplicações Java que acedem a Web Services. FEUP – LEIC 2003/04 – Engenharia de Software 14/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse A Sun Microsystems divulgou o Sun ONE Developer Platform que é um ambiente sofisticado de desenvolvimento baseado na tecnologia Java e na plataforma Java 2 Enterprise Edition (J2EE) que também contém o Java WSDP. Mas também pode usar-se outras aplicações que usam esta tecnologia como: Apache, Jakarta-Tomcat (que usa Servlet 2.3 e JSP 1.2), Apache-SOAP, Jakarta-AXIS (3ª geração de SOAP da Apache), Ant. 4. IDE Eclipse A plataforma eclipse é um IDE para desenvolver aplicações para “tudo e para nada em particular”, isto é: a plataforma foi construída para desenvolver IDEs que podem ser usados para desenvolver desde páginas web até aplicações Java e aplicações em C ou C++. A plataforma inclui ferramentas necessárias ao desenvolvimento de quaisquer aplicações pois possibilita ao utilizador adicionar módulos ( plug-ins) que permite ao utilizador adicionar novas funcionalidades ao IDE. A plataforma eclipse pode ser dividida da seguinte maneira: Plataforma Eclipse Plugin 1 Workben ch Plugin 2 JFace SWT Plugin N WorkSpace Fig. 7: A plataforma Eclipse FEUP – LEIC 2003/04 – Engenharia de Software 15/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse 4.1. Arquitectura dos Plugins De todas as funcionalidades que podem ser desenvolvidas para o eclipse , um plugin é a mais pequena, que pode ser desenvolvida e distribuída separadamente. Todas as funcionalidades do eclipse são desenvolvidas através do desenvolvimento de plugins excepto o seu kernel. Os plugins são escritos em Java e servem para adicionar novas ferramentas à plataforma, onde uma ferramenta pode ser constituída por vários plugins. Qualquer plugin pode utilizar as funcionalidades de outro plugin , no que resulta o desenvolvimento de plugins bastante modular. 4.2. Workspace As várias ferramentas “ligadas” ao IDE através dos plugins operam no ficheiros do workspace do utilizar. O workspace consiste apenas em um ou mais projectos onde cada projecto corresponde a um directório especificado pelo utilizador. Com vista a minimizar a perda acidental de ficheiros o workspace contem uma mecanismo que permite fazer undo ao workspace de modo a recuperar os ficheiros pretendidos., o workspace mantêm também mecanismo que permitem guardar desde mensagem do compilador a informação sobre os breakpoints do debugger. Workbench e ferramentas de UI (interface com o utilizador) : As ferramentas de construção de componentes de UI podem ser divididas em: • • SWT JFace O SWT (Standard Widget Toolkit) é um conjunto de ferramentas que possibilita a construções de uma aplicação independente do GUI do sistema de janelas do sistema operativo, logo permite obter o mesmo aspecto visual tanto em máquinas que utilizem o Microsoft Windows como em sistemas que usem Linux. O Jface é também uma ferramenta para controlar funções comuns do UI. É tal como o SWT independente do sistemas de janelas tanto a sua API como a sua implementação, o Jface foi desenvolvido para funcionar com ou sem o SWT. È o workbench que fornece a estrutura com a qual as ferramentas interagem com o utilizador, a janela que o utilizador “vê” quando a plataforma e iniciada é o workbench, a sua API depende da API do JFace e da API do SWT. O workbench é constituído por editores , vistas e perspectivas. Os editores permitem ao utilizador abrir , editar e gravar objectos enquanto que as vistas providenciam informação sobre o documento a ser editado. São as FEUP – LEIC 2003/04 – Engenharia de Software 16/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse perspectivas que definem o modo como os editores e as vistas são dispostas no ecrã. 4.3. Java Development Tooling (JDT) O JTD é uma ferramenta que adiciona á plataforma a capacidade de desenvolver aplicações em Java, basicamente constrói um IDE para desenvolver programas Java. O JTD é implementado através de um conjunto de plugins que permitem ao utilizador , entre outras possibilidades , ter os ficheiros .Java e .class organizados por directórios, ter os projectos organizados por pacotes , adiciona capacidades de um editor de Java comum como por exemplo colorir as palavras-chave e a sintaxe, ver os estados dos threads e das stack frames ,etc. Os plugins que constituem o JTD são divididos em dois grupos: os que interferem e os que não interferem com a IU ( interface com o utilizador) , o que permite a utilização da plataforma eclipse em sistema que não sejam baseados em interfaces com o utilizador gráficas. 5. Eclipse Web Tools Platform Project De entre as várias plataformas da Eclipse, existe uma com particular interesse, pois disponibiliza inúmeras ferramentas com o objectivo de desenvolver facilmente “tool suites” e “web tools”. Estamos a falar da ” Web Tools Platform Project”. Assim para uma fácil implementação de qualquer aplicação web que utilize J2EE, a plataforma é baseada na plataforma principal do Eclipse, deste modo todos os serviços e estruturas que esta plataforma já fornece, são viabilizados. Este projecto lançado pela Eclipse, caracteriza-se por ser um projecto de open source e robusto, em que tem como objectivo suportar o máximo tipo de serviços de aplicações em J2EE. Este objectivo vai de encontro ao intuito de fornecer ao utilizar, um conjunto de ferramentas e sendo cada uma destas ferramentas universal, o que simplifica a criação e modificação do trabalho do utilizador. 5.1. PMC Ao falarmos de “Web Tools Platform Project”, é inevitável não falar da comissão que o gere a “Project Management Committee”, ou simplesmente, “PMC”. Esta comissão é responsável por toda a orientação e coordenação do projecto, desde a resolução de conflitos, ao desenvolvimento dos processos, sem esquecer a infra-estrutura e o sucesso técnico do projecto. Sobre todo o FEUP – LEIC 2003/04 – Engenharia de Software 17/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse projecto, só existe uma regra bastante justa, que é: quanto maior e melhor for o contributo de um elemento, mais este pode fazer. Os membros do projecto estratificam-se nas seguintes classes: • Utilizadores - São as pessoas que utilizam o projecto e não contribuem com nada para este. Mas tem o importante papel de alertar para possíveis erros que encontrem durante a utilização, assim como sugerir e interrogar potenciais duvidas. Como directa consequência, o projecto é melhorado. • Construtores/programadores - São pessoas que contribuem com código, documentação e todo o trabalho que envolva o projecto. Devem de ser pessoas activas no debugging e na localização de problemas. Um utilizador que contribua com código acaba por entrar neste grupo. • Coordenadores - É um construtor que frequentemente contribui para um sub-projecto, mas para subir a este escalão, é necessário primeiro uma votação secreta e posteriormente uma aprovação do PMC. Tem como vantagens, o facto de poder ver todo o código do sub-projecto , tal como o direito de voto nas decisões deste mesmo. Este cargo, tem todas as funções do seu antecessor mais: uma notificação do problema; explicação da resolução e consequente clarificação; listar toda a informação relacionada com o problema. 5.2. Sub-projectos e suas componentes O trabalho do projecto, está dividido em vários sub-projectos e cada qual consiste num trabalho importante do “Web Tools Platform Project” (como uma nova ferramenta para aplicações web) e devidamente aprovada pela PMC. Cada sub-projecto tem um respectivo líder e coordenadores e ao fim de um período de tempo, o líder é sujeito a uma votação pelos coordenadores, para manter o cargo. Esta votação pode ser anulada pela PMC, no caso do líder não estar a atingir os objectivos da PMC para aquele sub-projecto. Um sub-projecto pode ser subdividido em componentes pela PMC, quando isto acontece é fixado um líder para cada componente e os coordenadores desta, só tem direito de voto dentro desta componente. O líder da componente, terá parte nas reuniões do sub-projecto e este tem o voto que representa a decisão da sua componente. Ao criar uma componente, o PMC pretende criar grupos de trabalho mais eficazes e acelerar o trabalho. Dentro destas componentes, o código é baseado numa plataforma especifica e os programadores tem acesso ao código. Deste modo, um programador ao trabalhar num ponto do código, pode alterar e provocar erros noutras zonas da componente , assim ainda se pode fraccionar mais a componente , para não ocorrer este problema. FEUP – LEIC 2003/04 – Engenharia de Software 18/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse 5.3. Infra-estrutura A infra-estrutura do processo de desenvolvimento do “Web Tools Platform Project” é baseada nos seguintes pontos: • • • • • • “Bug Database” – Base de dados “Bugzilla” que detecta os erros e suas características; Deposito de Código (Source Repository) – Um ou mais locais onde é colocado o código e a documentação dos sub-projectos; Website – Site da web com toda a informação do projecto, desde a documentação, a downloads e dicas; Fórum Genérico (General Mailing List) – Fórum sobre o desenvolvimento do projecto e alguns pormenores dos sub-projectos, aberta a todos os utilizadores; Fórum do Sub-Projecto (Subproject Mailing Lists) – Fórum sobre discussões técnicas e os resultados das votações para coordenador, aberta a todos os utilizadores; Fórum da Componente (Component Mailing Lists) -- Fórum sobre discussões técnicas e os resultados das votações para coordenador, aberta a todos os utilizadores. Também existe um local onde todos os membros do projectos, desde os coordenadores até aos programadores e com acesso aos utilizadores em geral, podem discutir qualquer assunto relativo ao projecto. Toda esta infra-estrutura é da responsabilidade do PMC. Todo a infra-estrutura e estratificação do projecto aplica-se ao desenvolvimento de um processo. Pois todos os sub-projectos tem de planificar as suas actividades, fixar datas de entrega de trabalho, fazer pontos de situação e reuniões para discussão de problemas, gerir os seus conflitos internos e superar a aprovação em várias alturas da PMC. Assim é de notar algum burocracia no desenvolvimento, mas é positiva porque estabelece prazos de entrega e objectivos a cumprir. 6. Conclusões Com a realização deste trabalho, tornou-se possível obter um conhecimento mais aprofundado das plataformas J2EE e IDE Eclipse, do desenvolvimento de aplicações web e, daqui, extrair algumas conclusões importantes, tais como: • A plataforma J2EE revela-se ideal para desenvolver aplicações empresariais, na medida em que proporciona um conjunto de serviços sobre esses componentes, efectuando uma gestão automática detalhes relativos ao comportamento das aplicações; FEUP – LEIC 2003/04 – Engenharia de Software 19/20 Desenvolvimento de aplicações Web na plataforma J2EE e IDE Eclipse • • A plataforma Eclipse é um IDE concebido para desenvolver variadas aplicações, desde páginas web até aplicações Java, em C ou C++. Esta plataforma engloba as ferramentas necessárias para o desenvolvimento de quaisquer aplicações, pois faculta ao utilizador adicionar plug-ins que, por seu lado, permitem adicionar novas funcionalidades ao IDE; 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”. Esta plataforma baseia-se na plataforma principal do Eclipse, o que permite que todos os serviços e estruturas que esta fornece sejam viabilizados. Este projecto é de open source e robusto, tendo como objectivo suportar o máximo tipo de serviços de aplicações J2EE, indo de encontro ao intuito de disponibilizar um conjunto de ferramentas universais, o que simplifica a criação e modificação do trabalho do utilizador. 7. Referências bibliográficas • • • • http://java.sun.com http://java.sun.com/j2ee/overview.html http://java.sun.com/j2ee/overview2.html http://java.sun.com/j2ee/overview3.html • http://www.fe.up.pt/~jlopes/teach/2002-03/AW/ • http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/ • http://jakarta.apache.org/struts/index.html • http://jacques.dsc.ufpb.br/cursos/j2ee/html/j2ee-2.htm FEUP – LEIC 2003/04 – Engenharia de Software 20/20