• Nenhum resultado encontrado

2. REVISÃO BIBLIOGRÁFICA

3.5. Conclusão

Neste capítulo fez-se a análise e especificação de requisitos do SGOE. Desta forma é possível evitar um conjunto de problemas associados desde sempre à engenharia de

software. Ao longo do processo de desenvolvimento e decorrer das interações com todos

os colaboradores do projeto, esta documentação é por diversas vezes alterada de forma a manter-se atualizada, correspondendo ao sistema no seu estado final.

49

4.

Implementação do Sistema

Para o desenvolvimento do SGOE serão necessárias diversas tecnologias orientadas ao paradigma Web. Visto este meio de comunicação ser extremamente complexo, com uma rede aberta ao mundo, diversos detalhes têm de ser discutidos na busca da melhor solução. Como tal vão ser descritos alguns dos conceitos e tecnologias utilizadas.

4.1. Mecanismos de Comunicação

Segundo (Shklar & Rosen, 2009) o protocolo Hypertext Transfer Protocol (http) é a base da World Wide Web, trabalha na camada de aplicação no modelo Transmission

Control Protocol/Internet Protocol (TCP/IP) usando o TCP na camada de transporte para transmitir mensagens. Este protocolo faz uso do paradigma pedido resposta ou seja a aplicação cliente envia uma mensagem de pedido HTTP ao servidor o qual retorna com uma mensagem de resposta.

A estrutura das mensagens de pedido e resposta HTTP é similar às mensagens de

email. Consistem num conjunto de linhas no cabeçalho seguidas de uma linha em branco e

de seguida no corpo da mensagem.

O protocolo HTTP não guarda informações de estado é «Stateless», ou seja, uma transação consiste num único pedido por parte do cliente, seguido por uma única resposta por parte do servidor, contudo existem mecanismos que permitem contornar esta

desvantagem.

4.2. Arquitetura do SGOE

No desenvolvimento de uma aplicação Web standard a arquitetura utilizada baseia- se em duas camadas distintas, a de aplicação e a de dados como se verifica na Figura 25.

50

Neste projeto a arquitetura adotada será de 3 camadas seguindo o modelo Model View Controller (MVC), tendo como principal vantagem encapsular os dados da aplicação e disponibilizar uma maior flexibilidade na lógica de negócio por meio do controlador (Figura 26).

Esta separação ajuda a gestão no desenvolvimento de uma aplicação, permitindo a concentração num aspeto de implementação de cada vez. Podendo-se por exemplo

implementar o layout visual sem qualquer tipo de preocupação ao nível da lógica e dados.

4.3. Segurança

As aplicações Web funcionam num ambiente compartilhado, apesar de todas as vantagens que esta plataforma proporciona, a partilha de dados neste meio torna os dados mais vulneráveis a ataques. Com base em (Shklar & Rosen, 2009) o protocolo HTTP transmite as mensagens em texto aberto permitindo que qualquer fonte que intercete as mensagens de comunicação as consiga ler e alterar, pelo que surge a necessidade de criar mecanismos de segurança mais fiáveis por meio de controlo de acessos, meios de

Figura 25 - Aplicações 2Tier

Sistema de Gestão Para Oficinas de Eletrónica

51

comunicação cifrados e certificados de identificação digitais. Nas aplicações Desktop, uma vez que os dados são mantidos na máquina local, são menos suscetíveis de ataque no acesso à informação. No SGOE toda a informação é trocada por meio de protocolos de comunicação seguros. Foram adotados mecanismos via HTTPS que acrescentam o protocolo Transport Layer Security (TLS) na camada de transporte, encriptando os dados na comunicação entre cliente e servidor por meio de algoritmos de chave pública. Ao nível da base de dados as passwords encontram-se cifradas impedindo que no caso da aplicação sofrer algum tipo de “invasão” as mesmas não estejam expostas em texto limpo.

4.4. Tecnologias Utilizadas

4.4.1. .NET

A framework .NET é um meio de execução e gestão de aplicações em funcionamento contínuo. Disponibiliza a gestão de memória e outros serviços do sistema por meio do Common Language Runtime (CLR) e uma extensa biblioteca de funções que permite aos programadores tirar proveito de código robusto e fiável para grande parte das principais áreas de desenvolvimento de aplicações por meio da .NET Framework Class Library. O CLR é também o verdadeiro responsável pela interoperabilidade entre as linguagens suportadas pela plataforma .NET como é o caso do Visual Basic, C#, C++, F#, J# entre outras, nas suas diferentes versões. Permite a execução das aplicações .NET em diferentes plataformas como Windows 7, Windows 8, Windows Phone e Xbox 360.

4.4.2. ASP.NET MVC

A framework ASP.NET MVC fornece uma alternativa ao padrão Web Forms ASP.NET para desenvolvimento de aplicações Web. É uma framework de apresentação leve e altamente robusta que tal como com as aplicações Web Forms-based é integrada com recursos ASP.NET. Segue o padrão MVC, como tal a separação existente entre as diferentes camadas oferece maior controlo sobre partes individuais do projeto, o que permite mais facilmente desenvolver, modificar e testar a aplicação. Esta divisão também permite o desenvolvimento de aplicações de uma forma mais orientada aos processos existentes no seio das entidades/empresas, onde se apresenta o interface gráfico na camada

52

“View”, os processos de negócio na camada “Controler”, a estruturação e registo de dados na camada “Model”.

4.4.3. C#

Para o desenvolvimento de toda a lógica da aplicação do lado do servidor foi utilizada a linguagem C# que é parte integral da tecnologia ASP.NET MVC.

É uma linguagem de programação orientada a objetos, compilada, fortemente tipada, desenvolvida pela Microsoft como parte da plataforma .NET.

O “C” de C#, assim como o “C” de C++, e de Objective-C não são por acaso. A sintaxe é inspirada na linguagem C.

4.4.4. Javascript

JavaScript é uma linguagem script/interpretada, orientada a objetos e multiplataforma. É uma linguagem leve e com uma estrutura pequena. Não é útil como linguagem standalone, mas é desenhada para fácil integração em outros produtos ou aplicações, tais como Web Browsers.

O JavaScript contém um conjunto de objetos tais como o Array, Data e Math, e um conjunto de elementos da linguagem como operadores, controlo de estruturas e declarações. Pode ser estendido para diversos propósitos gerando e manipulando objetos adicionais. As extensões cliente-side possibilitam colocar elementos num formulário HTML em resposta a eventos do utilizador como operações com o rato, inserção de dados ou navegação na página.

O JavaScript Server-side estende a linguagem principal, manipulando ou criando objetos relevantes à aplicação, podendo por exemplo manipular dinamicamente ficheiros HTML.

4.4.5. Jquery

JQuery é uma biblioteca JavaScript multi-browser desenvolvida para simplificar os scripts client side desenvolvidos em JavaScript que interagem com o HTML. As mesmas permitem o processamento de diversas operações no browser do cliente. Desde animações, cálculos, operações assíncronas ou interfaces mais ergonómicos facilitando o desenvolvimento de aplicações Web dinâmicas.

Sistema de Gestão Para Oficinas de Eletrónica

53

4.4.6. ASP

ASP (Active Server Pages), foi o primeiro script engine do lado do servidor para dinamicamente gerar páginas Web. Faz uso de linguagens script como é o caso do JavaScript ou Microsoft Visual Basic Scripting Edition (VBScript). Com o ASP é possível combinar hipertexto com comandos script e componentes COM para criar páginas Web interativas. Assim como o desenvolvimento e alteração de aplicações Web complexas de forma mais fácil.

É uma tecnologia extremamente útil efetuando grande parte do processamento da informação a apresentar ao cliente.

4.4.7. MS-SQL

A tecnologia Microsoft SQL Server é um sistema de gestão de bases de dados relacionais desenvolvido pela Microsoft. Do ponto de vista da base de dados é uma aplicação cuja principal função é armazenar e retornar dados quando os mesmos são requisitados por outras aplicações, podendo as mesmas estar instaladas no mesmo computador ou numa outra máquina estabelecendo a comunicação por meio de uma rede. Existem diferentes versões do MS SQL Server cada uma desenvolvida para diferentes contextos e cargas de execução.

4.4.8. AJAX

Asynchronous JavaScript + XML, embora não seja uma tecnologia por si só, é um termo utilizado em 2005 por Jesse James Garrett que descreve uma nova abordagem utilizando um conjunto de tecnologias existentes, incluindo o HTML ou XHTML, Cascading Style Sheets (CSS), JavaScript, The Document Object Model, XML, eXtensible Stylesheet Language for Transformation (XSLT) e a mais importante XMLHttpRequest Object. Quando estas tecnologias são combinadas no modelo AJAX, as aplicações Web são capazes de fazer alterações de forma rápida no interface do utilizador sem ser necessário voltar a descarregar toda a página Web. Isto torna a aplicação mais rápida e eficiente aos pedidos do utilizador. A aplicação passa a trabalhar de forma assíncrona.

Embora o X em AJAX se refira a eXtensible Markup Language (XML), o JavaScript Object Notation (JSON) é mais utilizado do que XML atualmente por ser mais

54

leve e parte integrante do JavaScript. Tanto JSON como XML são utilizados para transferir informação no modelo AJAX.

4.4.9. JSON

JSON (JavaScript Object Notation) é um formato de texto para troca de dados extremamente eficiente. É de fácil leitura para humanos para ler e escrever, assim como é fácil para as máquinas de o analisar e gerar. É baseado num subconjunto do JavaScript. JSON é um formato de texto que é completamente independente de linguagens utilizando unicamente normas que são familiares aos programadores da família da linguagem “C” como o C, C++, C#, Java, JavaScript, Perl, Python, entre outras. Essas propriedades fazem do JSON o formato ideal para troca de dados.

4.4.10. LINQ

A tecnologia Language-Integrated Query (LINQ) é uma extensão das linguagens C# ou VB que permite efetuar querys a bases de dados relacionais por meio do código. É possível criar expressões LINQ de duas formas, por meio de querys ou da Application Programming Interface (API). Desta forma é possível aceder e manipular dados complexos de forma extremamente intuitiva e eficiente sem ser necessário escrever qualquer código Structured Query Language (SQL). A ferramenta de desenvolvimento Visual Studio inclui as funcionalidades LINQ que possibilitam a manipulação de coleções na framework .NET, bases de dados SQL, ADO.NET Datasets e documentos XML.

4.4.11. CSS

Cascading Style Sheets (CSS) contêm regras de estilização que são aplicadas a elementos HTML numa página Web. Estes estilos definem como os diferentes elementos são apresentados e onde se devem posicionar na página.

Quando se edita a apresentação de uma página Web, a mesma pode fazer-se de três formas, em linha, dentro de uma secção “<style>” numa página Web, ou dentro style sheet/documento CSS externo.

Sistema de Gestão Para Oficinas de Eletrónica

55

4.4.12. Pagination

Trata-se de uma classe previamente desenvolvida para plataforma ASP.NET MVC que permite navegar por meio de páginas nas diferentes linhas de informação a que acedemos, caso contrário o número de linhas apresentadas correspondentes a um conjunto de tabelas na base de dados seria enorme e pouco acessível.

4.4.13. Dynamic-Menu

Este conjunto de classes com a biblioteca de funções HtmlHelper são capazes de dinamicamente criar um menu, que se encontra definido de forma persistente, num documento XML consoante o tipo de utilizador.

4.4.14. Action-Filter

Este filtro de funcionalidades restringe o acesso a utilizadores não autenticados de realizar um conjunto de operações, mesmo que tenham acesso ao Uniform Resource Locator (URL) especifico da ação e façam um pedido HTTP por outro meio que não o interface da aplicação.

No caso de acederem a determinada funcionalidade e não terem acesso por não estarem autenticados ou não terem permissões suficientes, a aplicação notifica o utilizador de que se trata de uma área restrita a utilizadores autenticados. É de salientar que este filtro é lançado em todas as ações que se deseje que não sejam públicas. Os acessos são definidos num documento XML onde estão especificados todos os acessos por tipo de utilizador relativos a cada ação.

4.4.15. Doodle Report

É uma biblioteca de funções desenvolvida para a framework .NET que permite criar diferentes relatórios do tipo Excel, PDF, HTML e Comma-Separated Values (CSV) por meio de querys efetuadas a qualquer coleção de dados por meio da tecnologia LINQ.

4.4.16. Integração do Sistema

Sendo a necessidade de integrar as diferentes contas de utilizadores já registados no SIDE um dos principais requisitos para o SGOE, essa associação é feita por meio do

56

serviço de diretorias em funcionamento na UTAD (Figura 27). Atualmente a autenticação dos utilizadores no SIDE é efetuada comunicando com o serviço de LDAP da UTAD. Este serviço de diretorias encontra-se hierarquicamente acima do SIDE tendo registados praticamente todos os utilizadores do sistema. O SGOE acede a este serviço da mesma forma que o SIDE, importando os dados do utilizador quando este efetua o login pela primeira vez. De seguida é apresentado um formulário onde se pede ao utilizador para complementar a informação já obtida no serviço LDAP. As credenciais de acesso mantêm- se e não podem ser alteradas por meio do SGOE.

Sempre que um utilizador pretende efetuar o login no SGOE, este efetua um pedido de aprovação ao serviço LDAP: Caso o utilizador exista no sistema e as credenciais de acesso correspondam, o mesmo retorna uma resposta positiva.

O SGOE permite o registo de utilizadores externos à instituição. Desta forma o utilizador segue o processo de registo de novo cliente. Para se registar como um utilizador de tipo diferente esta ação só é possível por intermédio do responsável de oficina nos balcões das Oficinas da UTAD.

Sistema de Gestão Para Oficinas de Eletrónica

57

4.5. Instalação

Para colocar em produção o SGOE, ainda numa versão protótipo, diversos procedimentos foram efetuados, de modo a permitir um início de utilização o mais estável possível, sem grandes problemas e que ofereça confiança aos utilizadores finais.

4.5.1. Inserção de Dados

Como já referido no capítulo de introdução, anteriormente ao desenvolvimento deste projeto os funcionários das Oficinas desenvolveram uma base de dados na tecnologia Access onde foi efetuado o inventário de existências das Oficinas.

Para uma maior acessibilidade e otimização no início da utilização da aplicação todos os dados foram replicados previamente para a base de dados do SGOE desenvolvida na tecnologia MS-SQL. A replicação foi feita ao nível do código, a aplicação acedeu à base de dados já existente, copiou, formatou e ajustou os dados à estrutura da nova base de dados (Figura 28).

Como na nova base de dados a estrutura foi pensada e otimizada a outro nível, nesta fase acabou por se complicar mais o processo de replicação, tendo sido necessário imenso cuidado nos locais onde colocar os diferentes dados, evitando repetições e incoerências com as chaves estrangeiras e seus atributos associados, respeitando desta forma sempre a sua normalização.

58

Figura 28 - Replicação de Dados

4.5.2. Instalação da Aplicação e Base de Dados

Para colocar em produção o SGOE foi necessário um servidor Web com o Windows Server e o Microsoft Internet Information Services (MS IIS) já instalados e um endereço Web/HTTP para acesso dos diferentes utilizadores à plataforma. Atualmente, por motivos de segurança visto a aplicação ainda se encontrar numa versão protótipo, o endereço fornecido apenas disponibiliza o acesso à plataforma por meio da rede interna da universidade ou externamente por meio da rede privada virtual (VPN).

Para a aplicação aceder ao serviço LDAP foi também necessário permitir o acesso do servidor da aplicação SGOE ao servidor LDAP por meio de uma VPN interna que restringe acessos alheios a este serviço. Todos os dados de acesso encontram-se definidos num ficheiro XML que pode ser alterado e redefinido sempre que necessário.

Para efetuar as diferentes notificações via email o SGOE acede ao serviço de mail da universidade. O acesso a este serviço é feito unicamente dentro da rede interna com acesso restrito. Da mesma forma que no serviço LDAP os dados de acesso encontram-se guardados num ficheiro XML.

A aplicação neste momento encontra-se alojada num servidor com o sistema operativo Windows Server 2008 de 64bit, com dois processadores Intel Xeon de 3.0GHZ com 4GB de RAM.

Sistema de Gestão Para Oficinas de Eletrónica

59

4.5.3. Configuração das Zonas de Trabalho

Para o acesso dos utilizadores ao SGOE foi necessário configurar a ligação à rede interna da universidade dos diferentes terminais de acesso, respetiva instalação e atualização dos Web Browsers mais indicados e criação de atalhos diretos à plataforma garantindo maior acessibilidade no acesso.

Para o correto funcionamento da aplicação foi também necessário visionar todos os locais de armazenamento e garantir que a informação registada no sistema se encontra correta. Cada local de armazenamento pode ter registados a sua sala, armário, número de gaveta e partição. Cada gaveta encontra-se dividida em seis partições, contudo o sistema não se encontra limitado a esse número (Figura 29 e Figura 30).

Figura 29 - Armários de Armazenamento de Componentes

Após o sistema ter sido colocado em funcionamento os diferentes utilizadores foram instruídos com formações ao longo de diversos dias no local de trabalho, tendo sido explicada toda à lógica de funcionamento e processos.

Para uma melhor utilização e documentação do sistema foram criados manuais para os diferentes utilizadores. Desta forma sempre que qualquer utilizador tenha alguma

60

dúvida numa primeira fase consulta o manual e só em última instância recorre aos balcões das Oficinas.

Figura 30 - Balcões de atendimento das Oficinas

Documentos relacionados