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

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 .............................................................................................................. 9
4.1 Requisitos Funcionais ........................................................................................................... 9
4.2 Requisitos no Funcionais ................................................................................................ 9
5 Ferramentas ............................................................................................................................ 9
5.1 - Linguagem de Programao.............................................................................................. 9
5.2 - Linguagem de Modelao ................................................................................................. 9
5.3 - Plataforma....................................................................................................................... 10
5. 4- Framework ...................................................................................................................... 10
5.5 - APIs.................................................................................................................................. 10
5.6- Servidores ........................................................................................................................ 10
6 - Arquitetura do Sistema .......................................................................................................... 10
6.1 Diagram de Casos de Uso ............................................................................................... 10
6.2 Diagrama de Classes....................................................................................................... 11
7- Implementao ....................................................................................................................... 11
7.1 Home Page Administrador ............................................................................................. 11
7.2 Gerir Utilizador ............................................................................................................... 12
8 - Camada das regras de negcio .............................................................................................. 13
8.1 Utilizador Servlet ........................................................................................................... 13
8.2 Entidade cadastrarUtilizador.jsp .................................................................................... 14
8.3 Entidade listarUtilizador.jsp ............................................................................................... 16
8.3 Class Utilizadador.java.................................................................................................... 16
8.4 Class ContaFacadeLocal.java .......................................................................................... 18
8.5 Modelo Utilizador.java ................................................................................................... 19
9 Camada de Persistncia ........................................................................................................ 23
9.1 Diagrama da Base de Dados........................................................................................... 23

Miguel Sungue Copyright@2016 UCAN

10 Concluses........................................................................................................................... 24
11-Extenses ............................................................................................................................... 25

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.

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 treze captulos nos quais se apresenta o trabalho
realizado no decorrer do semestre.
Com os diversos requisitos apresentados, para a concepo do mesmo, porm tomei a
iniciativa de transforma-los em vrios mdulos que so: Utilizadores, Gesto
Administrativa (Cadastro Clientes, 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

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.

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, E-commerce, 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:
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;
Miguel Sungue Copyright@2016 UCAN

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.

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 sistema deve recuperar lances;


O sistema deve cadastrar artigos;
O sistema deve cadastrar utilizadores/clientes;
O sistema deve calcular o tempo limite do lance;
O sistema realiza autenticao por via de login;
O sistema deve mostrar disponibilidade dos artigos;
O sistema 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

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.

Miguel Sungue Copyright@2016 UCAN

10

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.

Miguel Sungue Copyright@2016 UCAN

11

Descrio

Gerir Utilizador

Cadastrar

Alterar

Eliminar

Listar

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.

Miguel Sungue Copyright@2016 UCAN

12

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);
pessoaFacade.create(pessoa);

Miguel Sungue Copyright@2016 UCAN

13

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>
<div class="reg_section personal_info">
<input value="" id="nome" name="nome" type="text"
placeholder="Nome" required="true" autofocus="">

Miguel Sungue Copyright@2016 UCAN

14

<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="">
<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>

Miguel Sungue Copyright@2016 UCAN

15

<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</td></tr>
<%= utilizadorControlo.gerarUtilizadores()%>
</table>
</form>

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);
}

Miguel Sungue Copyright@2016 UCAN

16

//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
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;
}
}

Miguel Sungue Copyright@2016 UCAN

17

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();
}

Miguel Sungue Copyright@2016 UCAN

18

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)
@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](?:[a-z0-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")

Miguel Sungue Copyright@2016 UCAN

19

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;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSenha() {
return senha;
}
Miguel Sungue Copyright@2016 UCAN

20

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;
}
@XmlTransient
public List<Artigo> getArtigoList() {
return artigoList;
}
public void setArtigoList(List<Artigo> artigoList) {
this.artigoList = artigoList;
}

Miguel Sungue Copyright@2016 UCAN

21

@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 + " ]";
}
}

Miguel Sungue Copyright@2016 UCAN

22

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

Miguel Sungue Copyright@2016 UCAN

23

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 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.

Miguel Sungue Copyright@2016 UCAN

24

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.

Miguel Sungue Copyright@2016 UCAN

25