Arquitetura genérica de E-commerce ou páginas Web

A forma de representar uma arquitetura de um e-commerce ou páginas Web, de forma genérica, é entre 3 camadas. Esta característica de distribuição qualifica-se como: Camada 1 – Apresentação; Camada 2 – Regras de Negócio e Camada 3 – Camada de Dados. Para o usuário final que está no Browser são ocultas todas as camadas, exceto a primeira.

1

Modelagem de Dados

As ferramentas de desenvolvimento de um website ou e-commerce distinguem-se em 7
categorias :
1) Modelagem UML
A modelagem Unified Modeling Language é uma notação de diagramas que documenta e
especifica os modelos de software orientados a objetos. Seguindo do UML, a mesma compõe
diversos aspectos e formas de visualizar um sistema. Dentre as formas, destacamos as mais
comuns como:

(a) Diagrama de Casos de Uso – mostra a interação dos usuários entre as
funcionalidades do sistema.
(b) Diagrama de Classes – mostra a interação e o relacionamento entre as classes do sistema.
(c) Diagrama de Sequência – mostra as trocas de mensagens entre os métodos do sistema.
(d) Diagrama de Estado – mostra o ciclo de vida de um objeto no sistema, focando quando
o mesmo é iniciado e terminado, e as interações que mudam seu estado atual.

 

2) Modelagem de Dados

A modelagem de Dados projeta o Banco de Dados, no qual, através das ferramentas
citadas abaixo, é gerado o código SQL (Structured Query Language) que é instalado na
ferramenta SGBD. O Banco de Dados é projetado, valendo se dos conceitos de E-R (Entidade
e Relacionamento) ou Diagrama de Classes no padrão da UML, as principais características das
entidades são: nome, atributo e tipo de dado e relacionamento entre outras entidades.

As principais ferramentas são:
MySQL Work Bench http://dev.mysql.com/downloads/tools/workbench/
DBDesigner 4 http://www.fabforce.net/dbdesigner4/
Erwin http://erwin.com/worldwide/portuguese-brazil
Open ModelSphere http://modelsphere.org/

Tabela – Sistemas de Modelagem de dados disponíveis para download

a) Sistema de Gerenciamento de Banco de Dados (SGBD)
A ferramenta SGBD é o software que provê o serviço e o gerenciamento de Banco de Dados
do sistema.

As principais ferramentas são:
MySQL http://dev.mysql.com/downloads/
PostGreeSQL http://www.postgresql.org/download/
Apache Derby http://db.apache.org/derby/derby_downloads.html

Tabela – SGBD´S disponíveis para download

3) Ambiente Integrado de Desenvolvimento ou IDE

O IDE (Integrated Development Environment) é um software que facilita a programação
propriamente dita, intimamente ligada à linguagem de programação, pois cada linguagem
de programação, geralmente, tem seu IDE. Em certos casos não possui. Existem linguagens
de programação que permitem escrever no Bloco de Notas e utilizar outros programas como
Compiladores ou Interpretadores para gerar o programa.
As principais ferramentas são:
Eclipse http://www.eclipse.org/downloads/
Netbeans https://netbeans.org/
Visual Studio http://www.microsoft.com/visualstudio/pt-br/download
SharpDevelop http://www.icsharpcode.net/opensource/sd/
Tabela – IDE´s disponíveis para download

(a) Linguagem de marcação: antes de iniciar alguma linguagem de programação para
a Web, é primordial iniciarmos o HTML (HyperText Markup Language), ou Linguagem de
Marcação de Hipertexto, que é composto pelos símbolos < e >, que são chamados de tags.
Essa linguagem de marcação de conteúdo é um conjunto de códigos por meio do qual
o Navegador ou Browser (exemplo: Google Chrome) tem o primeiro contato com o
website; geralmente é por onde se inicia o conteúdo e a forma de expor esse conteúdo.
No exemplo ao lado, é mostrado o texto “Olá Mundo” no Browser.

(b) Linguagens de Programação Web: linguagens de programação são instruções
gravadas no computador que executa estas instruções, transformando estas instruções em
tarefas computacionais. Existe uma infinidade de linguagens de progra-mação, mas, para a
Web, temos algumas. A escolha das linguagens de programação não influencia o e-commerce,
pois, para o cliente ou usuário que irá navegar no sistema Web, é totalmente imperceptível a
programação do website.
Ao utilizar uma linguagem de programação, o desenvolvedor abre o leque, literalmente, do
software, transformando um Website apenas de conteúdo estático à um Website interativo
com um simples formulário ou um grande sistema com diversos relatórios, consultas,
cadastros, mensagens etc.
Costumeiramente, para Internet, o que define a escolha da linguagem são dois aspectos: (1) o
domínio do web developer e (2) o servidor possuir o Servidor de Aplicação (ou middleware)
correspondente à linguagem de programação escolhida.
Acima vimos um exemplo de comandos em HTML que se inicia com a frase “Olá Mundo”.
Também seguem exemplos de como ficaria essa mesma frase em algumas outras linguagens.

1

Algumas Linguagens de programação Web são:
1. PHP (Hypertext Preprocessor)
2. JSP (JavaServer Pages)
3. C Sharp ou C #
4. ASP (Active Server Pages)
5. Python
6. Pear

 

4) Web Server ou HTTP Server
São softwares da categoria middleware que recebem uma requisição HTTP request
diretamente do Browser ou do Navegador, e que distribuem o que é solicitado por HTTP
response. Geralmente esse software já vem instalado em Sistemas Operacionais Servidores,
como Linux, Unix, Novell e Microsoft Windows Server.

5) Frameworks
São coleções de códigos-fonte,bibliotecas de funcionalidades abstratas ou aplicações que
facilitam o serviço do programador em relação à produção de códigos.
Hibernate http://www.hibernate.org/downloads
Struts http://struts.apache.org/download.cgi
Spring Source http://www.springsource.org/spring-framework
CodeIgniter http://ellislab.com/codeigniter/user-guide/installation/downloads.html
Tabela – Frameworks disponíveis para download

6) Middleware
De forma geral, são softwares que estão entre as camadas de Rede e de Aplicação ou entre
o Sistema Operacional e outros programas. Na Unidade anterior, vimos que o Certificado de
Autenticação faz com que as conexões sejam criptografadas em um e-commerce. Esse é um
exemplo de Middleware

Seu uso vai muito além do que participar de um servidor. Com o Middleware, pode-se
ter vários sistemas em diferentes servidores e ter relacionamento entre eles. Através de API´s
(Interface de Programação de Aplicativos), vários programas podem utilizá-lo. Serve também
para tarefas como computação distribuída, persistência, autorizações, identificações, controle de
diretórios, certificados digitais entre outros.
Uma das aplicações encontradas no Microsoft Windows, quando falamos de Middleware, é
o ODBC (Open Database Connectivity). Esse driver (na figura abaixo) faz a comunicação entre
alguns Bancos de Dados e softwares. Nesse driver é direcionado o caminho do Banco de Dados
e o software se comunica com ele. Observe, na aba “Drivers” da figura abaixo, alguns Bancos
de Dados pré-configurados. Caso haja necessidade de um Banco de Dados que não esteja
disponível nesse local, pode ser instalada uma espécie de “atualização” para a comunicação.

Destaco os Middlewares abaixo:
JDBC http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-
112010-090769.html
Corba http://www.omg.org/technology/corba/corbadownloads.htm
JBoss ESB http://www.jboss.org/projects
Ginga http://www.ginga.org.br/
Tabela – Middlewares disponíveis para download

a) Servidor de Aplicação
Um exemplo de funcionalidade seria receber o endereço de uma página do usuário e enviá-
lo à página que foi solicitada. Porém a forma como se dá essa execução é mais complexa, pois
esse mesmo servidor de aplicação é responsável pela execução dos códigos das Linguagens de
Programação contidas nas páginas solicitadas, em outras palavras é esta aplicação que “roda”
a linguagem de programação. Nesse aspecto, aumentam muito as possibilidades de recursos do
sistema, o Servidor de Aplicação permite também o envio e recebimento de e-mails, transações comerciais e acesso ao Banco de Dados online.

Alguns servidores de Aplicação:
GlassFish https://glassfish.java.net/
TomCat http://tomcat.apache.org/
IIS http://www.iis.net/
JBoss http://www.jboss.org/overview/
Tabela – Servidores de Aplicações disponíveis para download

7) Plataformas
São programas de código-fonte de e-commerce que são disponibilizados pelas empresas
ou desenvolvidos de forma particular. Temos plataformas caracterizadas por 4 categorias de
desenvolvimento e distribuição:
(1) gratuitamente, pela Internet, através da licença Open Source (Código aberto);
(2) locação, que o Administrador usa conforme contrato mensal ou gratuito;
(3) desenvolvimento próprio, em que a empresa opta por desenvolver um e-commerce
particular e fechado que atenda a suas necessidades;
(4) de forma agregada, ou seja, um e-commerce “filho” é agregado a um e-commerce
maior “pai”, em que se distribuem alguns dos produtos do “pai” para o “filho”, tendo ambos
o mesmo suporte, porém layout e nome de site diferentes.
Abaixo apresentamos alguns e-commerces genéricos, que podem ser baixados e alterados
para uso.
Oscommerce http://www.oscommerce.com/
Prestashop http://www.prestashop.com/pt/baixar
Magento http://www.magentocommerce.com/pt_BR
Algozone http://www.algozone.com/free-oscommerce-downloads.php
Templatemonster http://www.templatemonster.com/
Tabela – Plataformas disponíveis para download

 

Ferramentas para Desenvolvimento na Web e Servidores:
www.dsc.ufcg.edu.br/~garcia/cursos/ecomm/apresentacoes/arquitetura-ecommerce.ppt
Saiba mais sobre Middleware:
http://www.dimap.ufrn.br/~flavia.delicato/Middleware_aula1.pdf
Desenvolvimento na Web com Softwares Livre:
http://www.slideshare.net/givanaldo/desenvolvimento-web-com-software-livre
Linguagens de Programação: PHP
http://php.net/manual/pt_BR/index.php
Linguagens de Programação: JSP (Muito BOM)
http://www.devmedia.com.br/introducao-ao-java-server-pages-jsp/25602
Exemplos de código em C# e Asp.NET
http://www.w3schools.com/aspnet/webpages_examples.asp
UML
http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-elements.html#use-case-diagram

Ferramenta Case que auxilia o processo de engenharia de software e-commerce

A definição para a palavra CASE é: Computer Aided Software Engineering, ou seja,
engenharia de software assistida por computador. A ideia central é: são ferramentas que auxiliam
o processo de engenharia de software.
Existem diversas ferramentas no mercado, tais como: Rational Rose, Genexus, Clarify, Multicase,
Paradigm, Together, entre outras. Citarei as ferramentas específicas para área
de banco de dados, tais como: DBDesigner, Erwin, Embarcadero, Workbench, Oracle Designer.

A ferramenta Erwin é bastante utilizada comercialmente devido à quantidade de recursos
disponíveis. Seu fabricante é a CA Computer Associates, e existe uma cópia trial no site que
pode ser usada por 30 dias desde que você faça um cadastro prévio.
Já na esfera das ferramentas gratuitas, podemos citar duas ferramentas:
Mysql Workbench
• Dr. Case
Uso o Mysql Workbench, por ser livre e também porque suporta o banco Mysql, que
uso como SGBD por ser gratuito. A ferramenta Workbench ainda está em
desenvolvimento e, portanto, sua versão é alpha.

Principais Características das ferramentas Case para banco de dados:
1) Suporte a Diagramas.
2) Scripts SQL.
3) Forward Engineer – a partir do Der [diagrama de entidade relacionamento],você conecta no banco e implementa automaticamente o modelo físico. Este recurso permite que uma pessoa sem conhecimentos de SQL, Structured
Query Language, implemente um Der diretamente no banco.
4) Reverse Engineer – a partir do modelo físico implementado no banco, você consegue gerar o Der. Este recurso permite que uma pessoa que não conheça o modelo implementado no banco possa extrair o DER. Um cenário que
podemos citar é de um novo contratado da empresa que precisa desenvolver um sistema baseando-se no banco de dados já existente. Através do uso de uma ferramenta case, ele pode conectar-se à base de dados e extrair o
modelo existente.
5) Documentação – durante a criação das tabelas e atributos, você já documenta, ou seja, já cria o dicionário de dados do seu modelo. Desta forma, é possível sempre ter a documentação atualizada.
Principais Vantagens:
1) Melhor documentação – sempre atualizada
2) Maior velocidade no desenvolvimento de projetos
3) Qualidade dos processos
4) Interface gráfica

 

Mysql Workbech
Características: Gratuito.
Site para download: http://wb.mysql.com/.
Versão atual: 5.1.18 – alpha.
Suporte para Banco: Mysql.

Erwin
Características: Pago ou Trial para teste (30 dias mediante cadastro prévio no site).
Site para download: http://www.ca.com/us/data-modeling.aspx.
Versão atual: 7.3.
Suporte para Banco: Sql Server, Oracle, db2, entre outros.
OBS.: os scripts e o banco escolhido para o exemplo a seguir foi o ORACLE.