Você está na página 1de 25

Repblica de Angola

Ministrio da Educao
Universidade Catlica de Angola

Relatrio do Projecto de Sistemas


Distribudos e Paralelos II

Sistema de Leilo Online


Miguel Sungue

3246 Miguel Sungue


Orientado pelo: Docente. Eng. Felisberto Pinto Delgado

1
Miguel Sungue Copyright@2016 UCAN

Contedo
Agradecimentos............................................................................................. 4
Resumo.......................................................................................................... 5
Siglas Resumo de alguns elementos utilizados............................................6
Introduo...................................................................................................... 7
1 - Enquadramento........................................................................................ 7
2 - Objetivos................................................................................................... 7
2.1 - Objetivos Gerais.................................................................................. 7
2.2 - Objetivos Especficos..........................................................................8
3-Especificao.............................................................................................. 8
4 - Requisitos do Sistema............................................................................... 8
4.1 Requisitos Funcionais............................................................................. 8
4.2 Requisitos no Funcionais...................................................................9
5 Ferramentas............................................................................................. 9
5.1 - Linguagem de Programao...............................................................9
5.2 - Linguagem de Modelao...................................................................9
5.3 - Plataforma.......................................................................................... 9
5. 4- Framework.......................................................................................... 9
5.5 - APIs..................................................................................................... 9
5.6- Servidores.......................................................................................... 10
6 - Arquitetura do Sistema........................................................................... 10
6.1 Diagram de Casos de Uso.................................................................10
6.2 Diagrama de Classes........................................................................10
7- Implementao........................................................................................ 11
7.1 Home Page Administrador................................................................11
7.2 Gerir Utilizador................................................................................. 12
8 - Camada das regras de negcio...............................................................12
8.1 Utilizador Servlet............................................................................. 12
8.2 Entidade cadastrarUtilizador.jsp.......................................................14
8.3 Entidade listarUtilizador.jsp.................................................................16
8.3 Class Utilizadador.java......................................................................17
8.4 Class ContaFacadeLocal.java............................................................19
8.5 Modelo Utilizador.java.......................................................................20
9 Camada de Persistncia.........................................................................24
9.1 Diagrama da Base de Dados............................................................24
10 Concluses........................................................................................... 25
11-Extenses................................................................................................ 26
2
Miguel Sungue Copyright@2016 UCAN

3
Miguel Sungue Copyright@2016 UCAN

Agradecimentos
Agradeo a todos aqueles que me acompanharam durante toda esta
caminhada. Ao professor da cadeira e aos amigos de estudo. Agradeo,
tambm aos meus orientadores, Bruno Banguela, Herbert Neto, Paulo
Mbunga, Francisco Sebastio e demais colegas pelas sugestes e
contribuies que ajudaram no enriquecimento deste trabalho, por fornecer
os equipamentos e tecnologias indispensveis na realizao deste trabalho. E
por fim, agradeo a meus familiares pelo apoio nesta importante fase de
minha vida.
Ao engenheiro Felisberto Delgado pela pacincia na orientao incentivo
q tornaram possvel concluso deste Projecto.

4
Miguel Sungue Copyright@2016 UCAN

Resumo
Projeto realizado no mbito da cadeira de Sistemas Distribudos e
Paralelos II e tem por objectivo dar o processo no seu todo realizado e
as diferentes fases do seu desenvolvimento.
O principal fato a criao de uma interface grfica com o utilizador,
para a principal operao que a empresa denominada Mawonso
realiza em Leiles Online.
O documento constitudo por onze captulos nos quais se apresenta
o trabalho realizado no decorrer do semestre.
Com os
mesmo,
mdulos
Clientes,

diversos requisitos apresentados, para a concepo do


porm tomei a iniciativa de transforma-los em vrios
que so: Utilizadores, Gesto Administrativa (Cadastro
Utilizador, Artigo, Tabelas dos endereos).

Mas apraz-me dizer que neste documento ser detalhado com maior
preciso o principal objectivo da empresa, que o sorteio do leilo,
desde a fase de lances at o sorteio do vencedor

5
Miguel Sungue Copyright@2016 UCAN

Siglas Resumo de alguns elementos utilizados


MVC - Model View e Controller
BD Base de Dados
API Application Programming Interface ou Interface de Programao
de Aplicativos, conjunto de rotinas e padres estabelecidos por um
software para a utilizao das suas funcionalidades.
EJB Enterprise Java Bean.
Entidade ou Entity JavaBean que mapeia uma tabela na base de
dados.
Framework Conjunto de classes implementadas em uma
linguagem de programao especfica, usadas para auxiliar o
desenvolvimento de software.
JavaBean Componente Java reutilizvel.
Java EE Java Enterprise Edition, plataforma de programao para
servidores na linguagem de programao Java.
JSP Java Server Pages, framework MVC para o desenvolvimento de
aplicaes Web.

6
Miguel Sungue Copyright@2016 UCAN

Introduo
O mundo Online abriu as portas para diversos tipos de novos
negcios, e alguns deles possuem todas as suas bases de
funcionamento dentro de ambientes digitais. So leiles, Ecommerce, ERP's, Imobilirias, Sistemas de Reservas para Hotis e
Pousadas, Jogos, entre tantos outros...
A Mawonso vem se especializando em algumas destas plataformas, a
fim de poder oferecer solues ainda mais completas, para beneficiar
a sua empresa com ganhos em produtividade e customizao de
processos.

1 - Enquadramento
O sistema de leilo online da Mawonso, possui uma plataforma
completa para realizar leiles online, com lances prvios.
Conta com cadastro de clientes, que aps aprovados, podem dar
lances nos lotes, com notificaes em tempo real a cada lance
superado. Nos lotes os clientes podem conferir fotos, e detalhes. Na
parte administrativa h mdulos para administrar os leiles, lotes,
usurios, lances, relatrios entre outros.
O site de leiles tambm contempla um sistema de administrao,
com acesso restrito para os administradores do site, com cadastros
(para inserir, editar e excluir leiles), relatrios de lances, cadastro de
lotes (com possibilidades de inserir diversas imagens/fotos, regras de
lances), controle de cadastro de clientes e lances.
preciso deixar claro que o leilo virtual no a mesma coisa que
um leilo tradicional. um novo conceito de leilo que possibilita aos
consumidores adquirir produtos dos mais variados, a preos muito
baixos, sendo que, em alguns casos com at 99% de desconto.

2 - Objetivos
2.1 - Objetivos Gerais
Caracterizam-se
como
objetivos
do
presente
trabalho,
o
desenvolvimento de um sistema de leilo voltado para internet, que
implemente os conceitos de multicamadas, utilizando a tecnologia
Java Server Pages. Os objetivos especficos do trabalho so:
7
Miguel Sungue Copyright@2016 UCAN

a) Desenvolver o sistema de leilo voltado para empresas industriais;


b) Definir as vantagens e a viabilidade de utilizar Java Server Pages
no desenvolvimento de sistemas para internet;
c) Implementar o conceito de multicamadas delimitando a camada de
apresentao, regras de negcio e acesso aos dados.

2.2 - Objetivos Especficos


A soluo apresentada a empresa, tem vrios parmetros a serem
observados, para a implementao da sistematizao e automao
dos mesmos.
Um dos principais objetivos do sistema em termos de utilizao da
aplicao de gerir o sorteio de lances online, no sentido de controlar
as operaes de vrios lances que que so dados pelos clientes.

3-Especificao
Para a especificao do sistema, optou-se pela anlise orientada a
objetos, utilizando a linguagem UML (Unified Modeling Language),
sugerida por Fowler (2000) para a implementao de sistemas
utilizando linguagens orientadas a objetos.
A UML aborda conceitos fundamentais da orientao a objeto,
buscando efetuar um casamento entre mtodo e utilizao prtica,
para cobrir o ciclo de vida de desenvolvimento.
O modo para descrever os vrios aspectos de modelagem pela UML
atravs da notao definida pelos seus vrios tipos de diagramas. Um
diagrama uma apresentao grfica de uma coleo de elementos
de modelo, frequentemente conectados por arcos e vrtices (outros
elementos do modelo).
Segue abaixo, os diagramas que sero utilizados para a especificao
do sistema:
a) Diagrama de casos de uso;
b) Diagrama de classes.
Para a construo dos diagramas foi utilizada a ferramenta Astah
Professional, seguindo os padres de modelagem desta ferramenta.

8
Miguel Sungue Copyright@2016 UCAN

4 - Requisitos do Sistema
4.1 Requisitos Funcionais
Aps um forte na viabilidade de implementao do sistema, cheguei a
concluso de ser preciso avaliar os seguintes requisitos:

O
O
O
O
O
O
O

sistema
sistema
sistema
sistema
sistema
sistema
sistema

deve recuperar lances;


deve cadastrar artigos;
deve cadastrar utilizadores/clientes;
deve calcular o tempo limite do lance;
realiza autenticao por via de login;
deve mostrar disponibilidade dos artigos;
deve apresentar relatrios.

4.2 Requisitos no Funcionais


Aps ter apresentados os requisitos funcionais, terei a possibilidade
de descrever os requisitos no funcionais.

5 Ferramentas

NetBeans 7.4

MySql WorkBench 6.0 CE

Astah Professional

5.1 - Linguagem de Programao

Java

5.2 - Linguagem de Modelao

UML
9
Miguel Sungue Copyright@2016 UCAN

5.3 - Plataforma

Java EE 6

5. 4- Framework

JSP

5.5 - APIs
JDK 1.7
EJBs

5.6- Servidores

Glassfish 4.0

MySQL Server 5.1

6 - Arquitetura do Sistema
6.1 Diagram de Casos de Uso
Diagramas de caso de uso fornecem um modo de descrever a viso
externa do sistema e suas interaes com o mundo exterior,
representando uma viso de alto nvel de funcionalidade intencional
mediante o recebimento de um tipo de requisio do usurio.
A figura abaixo demonstra claramente as interaes do sistema com
o mundo exterior, delimitando os personagens e funes do sistema.
O anunciante ou compradora poder efetuar o cadastro no sistema. O
anunciante ir anunciar os seus produtos e efetivar ou fechar a
negociao sobre a maior proposta do comprador. O comprador
poder consultar os anncios e efetuar propostas sobre os mesmos.

10
Miguel Sungue Copyright@2016 UCAN

6.2 Diagrama de Classes


Uma vez definidas as principais funes do sistema, descreve-se as
classes originadas atravs destas funes no diagrama de classes.
O diagrama de classe a essncia da UML, trata-se de uma estrutura
lgica esttica mostrando uma coleo de elementos declarativos de
modelo, como classes, tipos e seus respetivos contedos e relaes.
A parte de dados de um objeto definida por um conjunto de
atributos e a poro funcional definida por um conjunto de
operaes.

7- Implementao
Nesta etapa desenvolvido o sistema de leilo propriamente dito,
onde so descritas as tcnicas e ferramentas utilizadas para
implementao segundo os objetivos propostos. Alm deste
apresentado um estudo de caso, mostrando as funcionalidades do
sistema do ponto de vista do usurio.

7.1 Home Page Administrador


Tem como objectivo fazer a gesto de todas as actividades
relacionadas ao utilizador, como cadastrar Artigos, Users, Admin,
Tabelas, Cliente.

11
Miguel Sungue Copyright@2016 UCAN

Descrio

Gerir
Utilizador

Cadastr

Alter

Elimina

Lista
r

7.2 Gerir Utilizador


A Gesto de Cliente feita para que, cada cliente tenha as opes de
visualizar, editar e eliminar e, por ltimo tem a possibilidade de
permitir que os leiles sejam feitos, como mostra o cdigo abaixo.

12
Miguel Sungue Copyright@2016 UCAN

8 - Camada das regras de negcio


8.1 Utilizador Servlet
@WebServlet(name = "utilizadorServlet", urlPatterns =
{"/utilizadorServlet"})
public class utilizadorServlet extends HttpServlet {
@EJB
private ContaFacadeLocal contaFacade;
@EJB
private PessoaFacadeLocal pessoaFacade;
/**
* Processes requests for both HTTP <code>GET</code> and
<code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
Pessoa pessoa = new Pessoa();
Pessoa pessoa2 = new Pessoa();
Conta conta = new Conta();
String operacao = request.getParameter("operacao");
if (operacao == null)
operacao = "guardar";
if (operacao.equals("guardar"))
{
pessoa.setNome(request.getParameter("nome"));
pessoa.setSobrenome(request.getParameter("sobrenome"));
pessoa.setDataNascimento(new
Date(request.getParameter("data")));
pessoa.setTelefone(request.getParameter("telefone"));
pessoa.setSexo(request.getParameter("sexo"));
String idmunicipio = request.getParameter("cbomunicipio");
Municipio municipio = new Municipio(Integer.parseInt(idmunicipio));
pessoa.setMunicipioIdmunicipio(municipio);
13
Miguel Sungue Copyright@2016 UCAN

pessoaFacade.create(pessoa);
conta.setUsername(request.getParameter("txtusername"));
conta.setSenha(request.getParameter("txtsenha"));
conta.setEmail(request.getParameter("txtemail"));
conta.setAcesso(1);
pessoa2=pessoaFacade.consultarUltimaPessoa();
if(pessoa2!=null){
conta.setIdpessoa(pessoa2);
contaFacade.create(conta);
request.setAttribute("resultado", "Cadastrado com sucesso");
request.getRequestDispatcher("/inserirUtilizador.jsp").forward(request,
response);
}
else{
request.setAttribute("resultado", "Erro ao cadastrar");
request.getRequestDispatcher("/inserirUtilizador.jsp").forward(request,
response);
}
}
}

8.2 Entidade cadastrarUtilizador.jsp


<form action="utilizadorServlet" method="post" name="utilizadorform"
id="utilizadorform" >
<fieldset>
<table>
<tr>
<td>
<div class="container">
<section class="register">
<h3>Dados Pessoais</h3>
14
Miguel Sungue Copyright@2016 UCAN

<div class="reg_section personal_info">


<input value="" id="nome" name="nome"
type="text" placeholder="Nome" required="true" autofocus="">
<input value="" id="sobrenome"
name="sobrenome" type="text" placeholder="Sobrenome" required="true"
autofocus="">
<input value="" id="telefone"
name="telefone" type="text" placeholder="Telefone" required="true"
autofocus="">
<input value="" class="tcal" type="text"
required="true" id="data" name="data" placeholder="Data de nasc em
yyyy/MM/dd"/>
<select name="sexo" required="required"
id="sexo"><option value="Masculino">Masculino</option><option
value="Femenino">Femenino</option></select>
<div class="reg_section password">
<
%=paisControlo.getComboBox("clienteform", "cbopais", "", "")%>
<select name="cboprovincia"
required="required" id="cboprovincia"><option
value=''></option></select>
<select name="cbomunicipio"
required="required" id="cbomunicipio"><option
value=''></option></select>
</div>
</div>

</section>
</div>
</td>
<td>
<div class="container">
<section class="register">
<h3>Dados Conta</h3>
<div class="reg_section personal_info">
<input value="" id="txtusername"
name="txtusername" type="text" placeholder="username" required="true"
autofocus="">
<input value="" id="txtsenha"
name="txtsenha" type="password" placeholder="senha" required="true"
autofocus="">

15
Miguel Sungue Copyright@2016 UCAN

<input value="" id="txtsenha2"


name="txtsenha2" type="password" placeholder="repetir senha"
required="true" autofocus="">
<input value="" id="txtemail"
name="txtemail" type="text" placeholder="Email" required="true"
autofocus="">
</div>
</section>
</div>
<p class="submit" style="float: left"><input
type="submit" name="clear" value="Limpar"
onclick="clearForm(this.form);"/></p>
<p class="submit"><input type="submit"
name="guardar" value="Salvar"></p>

</td>
</tr>
</table>
</fieldset>
</form>

8.3 Entidade listarUtilizador.jsp


<form action="utilizadorServlet" method="post" name="utilizadorform"
id="utilizadorform" >
<table cellspacing="1" cellspadding="1">
<tr><td>Id</td><td>Nome</td><td>Sobrenome</td><td>Data
Nascimento</td><td>Sexo</td><td>Username</td><td>Telefone</td>
<td>Municipio</td><td>Provincia</td><td>Alterar</td><td>Eliminar</t
d></tr>
<%= utilizadorControlo.gerarUtilizadores()%>
</table>
</form>

16
Miguel Sungue Copyright@2016 UCAN

8.3 Class Utilizadador.java


@Stateless
public class ContaFacade extends AbstractFacade<Conta> implements
ContaFacadeLocal {
@PersistenceContext(unitName = "LEILAO-ejbPU")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
return em;
}
public ContaFacade() {
super(Conta.class);
}
//Metodo que valida o login
@Override
public Conta login(Conta u)
{
TypedQuery<Conta> query =
em.createNamedQuery("Conta.findByLogin",
Conta.class)
.setParameter("username", u.getUsername())
.setParameter("senha", u.getSenha());
List<Conta> results = query.getResultList();
if (results.isEmpty())
return null;
return results.get(0);
}
@Override
public List<Conta> getFuncionarios(){
Query z ;
z = em.createQuery("SELECT c FROM Conta c WHERE c.acesso = '1'");
List<Conta> result = (List<Conta>) z.getResultList();
if (result == null)
return null;
return result;
}
@Override
17
Miguel Sungue Copyright@2016 UCAN

public List<Conta> getClientes(){


Query z ;
z = em.createQuery("SELECT c FROM Conta c WHERE c.acesso = '2'");
List<Conta> result = (List<Conta>) z.getResultList();
if (result == null)
return null;
return result;
}
}

8.4 Class ContaFacadeLocal.java


@Local
public interface ContaFacadeLocal {
void create(Conta conta);
void edit(Conta conta);
void remove(Conta conta);
Conta find(Object id);
List<Conta> findAll();
List<Conta> findRange(int[] range);
int count();
Conta login(Conta u);
List<Conta> getClientes();
List<Conta> getFuncionarios();
}

18
Miguel Sungue Copyright@2016 UCAN

8.5 Modelo Utilizador.java


@Entity
@Table(name = "conta", catalog = "leilao", schema = "")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Conta.findAll", query = "SELECT c FROM Conta
c"),
@NamedQuery(name = "Conta.findByIdconta", query = "SELECT c FROM
Conta c WHERE c.idconta = :idconta"),
@NamedQuery(name = "Conta.findByUsername", query = "SELECT c
FROM Conta c WHERE c.username = :username"),
@NamedQuery(name = "Conta.findBySenha", query = "SELECT c FROM
Conta c WHERE c.senha = :senha"),
@NamedQuery(name = "Conta.findByEmail", query = "SELECT c FROM
Conta c WHERE c.email = :email"),
@NamedQuery(name = "Conta.findByLogin", query = "SELECT c FROM
Conta c WHERE c.username = :username and c.senha = :senha"),
@NamedQuery(name = "Conta.findByAcesso", query = "SELECT c FROM
Conta c WHERE c.acesso = :acesso")})
public class Conta implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idconta")
private Integer idconta;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "username")
private String username;
@Basic(optional = false)
19
Miguel Sungue Copyright@2016 UCAN

@NotNull
@Size(min = 1, max = 45)
@Column(name = "senha")
private String senha;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$
%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[az0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email
address consider using this annotation to enforce field validation
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "email")
private String email;
@Basic(optional = false)
@NotNull
@Column(name = "acesso")
private int acesso;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idconta")
private List<Licitacoes> licitacoesList;
@JoinColumn(name = "idpessoa", referencedColumnName = "idpessoa")
@ManyToOne(optional = false)
private Pessoa idpessoa;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idconta")
private List<Artigo> artigoList;
public Conta() {
}
public Conta(Integer idconta) {
this.idconta = idconta;
}
public Conta(Integer idconta, String username, String senha, String email,
int acesso) {
this.idconta = idconta;
this.username = username;
this.senha = senha;
this.email = email;
this.acesso = acesso;
}
public Integer getIdconta() {
return idconta;
}
public void setIdconta(Integer idconta) {
this.idconta = idconta;
}

20
Miguel Sungue Copyright@2016 UCAN

public String getUsername() {


return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAcesso() {
return acesso;
}
public void setAcesso(int acesso) {
this.acesso = acesso;
}
@XmlTransient
public List<Licitacoes> getLicitacoesList() {
return licitacoesList;
}
public void setLicitacoesList(List<Licitacoes> licitacoesList) {
this.licitacoesList = licitacoesList;
}
public Pessoa getIdpessoa() {
return idpessoa;
}
public void setIdpessoa(Pessoa idpessoa) {
this.idpessoa = idpessoa;
}

21
Miguel Sungue Copyright@2016 UCAN

@XmlTransient
public List<Artigo> getArtigoList() {
return artigoList;
}
public void setArtigoList(List<Artigo> artigoList) {
this.artigoList = artigoList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idconta != null ? idconta.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are
not set
if (!(object instanceof Conta)) {
return false;
}
Conta other = (Conta) object;
if ((this.idconta == null && other.idconta != null) || (this.idconta != null
&& !this.idconta.equals(other.idconta))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.ucan.entidades.Conta[ idconta=" + idconta + " ]";
}
}

22
Miguel Sungue Copyright@2016 UCAN

9 Camada de Persistncia
9.1 Diagrama da Base de Dados
Apresento a imagem que compe o referido diagrama:

23
Miguel Sungue Copyright@2016 UCAN

10 Concluses
Com a disseminao do uso da internet nos ltimos anos, a
arquitetura multicamadas tem-se tornado uma arquitetura bastante
utilizada visando atender as necessidades de sistemas de
informaes requeridos pelas empresas para buscar atender seus
objetivos e a satisfao de seus clientes. O objetivo principal deste
trabalho foi alcanado atravs da implementao de um sistema de
leilo voltado para a internet.
Com o desenvolvimento do presente trabalho observou-se que a
arquitetura multicamadas oferece vantagens significativas sobre as
demais arquiteturas de software existentes no mercado.
Porm, com estudo e implementao da arquitetura multicamadas
atravs da tecnologia Java Server Pages, algumas dificuldades foram
encontradas devido a quantidade de tecnologias que so envolvidas
no desenvolvimento de um sistema para internet, sendo necessrio
estudar cada uma delas para a correta implementao do sistema.
Neste trabalho, foi utilizado tecnologias para criao das telas (HTML,
JavaScript e JSP), tecnologias para encapsular as regras de negcios
(JavaBeans), linguagens para trabalhar com banco de dados como o
SQL (Structured Query Language) alm de ferramentas para
desenvolvimento, servidor de aplicao e sistema gerenciador de
banco de dados.
Mesmo com um grande nmero de recursos e ferramentas
envolvidas, a tecnologia
JavaServer Pages se mostrou uma excelente soluo para
desenvolvimentos de sistemas para a internet, destacando os
seguintes pontos:
a) JavaServer Pages tem suporte a rpida construo e
manuteno das aplicaes, pela implementao da arquitetura
multicamadas, atravs da construo de componentes
reutilizveis e pela clara separao da lgica de apresentao
da lgica de negcios;
b) JSP no est vinculado a um fabricante. Qualquer camada de
uma aplicao JSP tem suporte a vrias tecnologias existentes
no mercado:

Camada de apresentao, pode ser construda atravs de


HTML (Hyper Text Markup Language), JavaScript, XML (Extended
Markup Language) bem como executar em navegadores como
24
Miguel Sungue Copyright@2016 UCAN

Internet Explorer, Netscape sob vrios sistemas operacionais


como Windows, Linux, Mac, dentre outros;
A camada de regras de negcio implementada atravs de
JavaBeans que so suportados por vrios servidores de
aplicao existentes no mercado;
Na camada de acesso aos dados, Java Server Pages tem suporte
a uma srie de bancos de dados atravs da utilizao da API de
Java JDBC.

Sendo assim espero que os objetivos alcanados na realizao deste


trabalho possam conduzir elaborao de outros trabalhos na rea
de sistemas distribudos e paralelos II, conforme sugestes a seguir.

11-Extenses
Como sugestes para trabalhos futuros sugere-se:
a) Estudar o funcionamento dos servidores de aplicao;
b) Utilizar Java Server Pages na implementao de sistemas
distribudos utilizando o suporte de Java para Enterprise
JavaBeans;
Sugere-se ainda estudos no sentido de aprofundar a investigao do
conceito de multicamadas o que diz respeito a camadas de gerncia
de aplicaes distribudas, utilizando tecnologias como Enterprise
JavaBeans.
Alm das camadas de lgica do negcio, acesso a banco de dados e
interface com o usurio, pode-se propor arquiteturas mais complexas,
que implementem camadas de servios tpicos de sistemas
distribudos, tais como servios de controlo de transaes, servios de
comunicao entre partes do sistema, tolerncia a falhas, dentre
outras.
Tais estudos representam a evoluo deste trabalho no que diz
respeito ao aprofundamento de questes relativas a arquiteturas de
sistemas distribudos.

25
Miguel Sungue Copyright@2016 UCAN