Desenvolvimento de aplicações Web na plataforma J2EE e IDE

Propaganda
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
Download