• Nenhum resultado encontrado

• Oferece uma configura¸c˜ao especifica para cada sistema atrav´es de utilit´arios de carregamento de dados, gest˜ao de mem´oria cache, entre outros;

• Pode ser instalado em praticamente todos os Sistemas Operativos;

• O MySQL ´e de utiliza¸c˜ao livre e gratuita;

• Inclui o MySQL Workbench Visual Database Designer.

2.4

Web Services

Um web service ´e um gateway de comunica¸c˜ao entre dispositivos de rede. ´E baseado no conceito de servi¸co que est´a sempre dispon´ıvel num certo local (endere¸co) e que pode ser acedido remotamente com o objetivo de obter informa¸c˜oes ou alterar o estado da maquina onde este corre (upload de dados, altera¸c˜ao de campos em bases de dados, e outros).

O objetivo de um web service ´e o de disponibilizar uma forma padronizada de interoperabilidade entre diferentes sistemas. Estes sistemas estar˜ao possivelmente implementados em tecnologias e ferramentas diferentes, correndo sobre plataformas distintas. Desta forma permite-se a integra¸c˜ao de v´arios agentes da web que ser˜ao arbitrariamente distintos, atrav´es de um meio de comunica¸c˜ao comum [25].

Definem-se genericamente num sistema assente em web services duas entidades, o cliente e o servidor. O servidor ser´a algu´em que disponibiliza o web service com a finalidade de dar acesso a alguma informa¸c˜ao ou funcionalidade que possa ser relevante para o cliente. Por exemplo, uma entidade noticiosa que disponibiliza por interm´edio de um web service a obten¸c˜ao das suas not´ıcias, e neste caso um cliente que poder´a ser por exemplo uma aplica¸c˜ao m´ovel que obt´em estas not´ıcias para as apresentar ao utilizador, 2.13.

Figura 2.13: Diagrama Cliente-Servidor

2.4.1

Arquitetura SOAP

O SOAP (Simple Object Access Protocol ) ´e um protocolo para troca de in- forma¸c˜oes estruturadas, utilizando a linguagem XML (eXtensible Markup Language). Este protocolo ´e normalmente assente sobre outros protocolos da camada de aplica¸c˜ao como o HTTP (Hypertext Transfer Protocol ) e o SMTP (Simple Mail Transfer Pro- tocol ). Tem como objetivo disponibilizar um conjunto de ferramentas b´asicas para a constru¸c˜ao de web services.

O que o SOAP permite na pr´atica ´e a execu¸c˜ao de fun¸c˜oes predefinidas do lado do servidor do web service, por parte do cliente. Esta dinˆamica est´a associada ao conceito de RPC (Remote Procedure Call ), sendo o SOAP uma implementa¸c˜ao dela. A grande vantagem do SOAP face a outras implementa¸c˜oes de RPC ´e a sua abstra¸c˜ao da plataforma e protocolo sobre o qual assenta. O seu ´unico requerimento ´e a capacidade de troca de mensagens textuais que permitam codificar objetos XML, que servir˜ao de base `a representa¸c˜ao de um “envelope” SOAP.

O suporte para utiliza¸c˜ao de SOAP ´e dado por parte das linguagens e siste- mas de desenvolvimento em que est´a a ser desenvolvida a aplica¸c˜ao, podendo existir esse suporte ou n˜ao. No caso do iOS e do Android, n˜ao existe de forma nativa o suporte para SOAP, sendo necess´aria a adi¸c˜ao de bibliotecas pr´oprias para a correta codifica¸c˜ao das mensagens.

2.5. Plataformas M´oveis

2.4.2

Arquitetura REST

A utiliza¸c˜ao da arquitetura REST (Representational State Transfer ) para cria¸c˜ao de web services ´e de certa forma uma evolu¸c˜ao do conceito SOAP, ao qual adiciona bastante liberdade.

Tal como no SOAP, existe uma abstra¸c˜ao da plataforma e do protocolo sobre o qual assenta, embora apare¸ca quase sempre associado ao protocolo HTTP. A troca de mensagens ´e textual, sendo comummente utilizado o formato de dados XML ou JSON (JavaScript Object Notation) para codificar os dados enviados por cada uma das partes.

Uma das caracter´ısticas mais importantes da arquitetura REST ´e a ausˆencia de estado por parte do servidor. Se o servidor for desligado e ligado novamente a meio de intera¸c˜ao com clientes que est˜ao a fazer uso dos web services, n˜ao dever´a ser notada nenhuma perda de funcionalidade.

Um dos conceitos base do REST ´e o de recurso. Um recurso ´e algo que pode ser acedido por interm´edio de um URI tal como uma qualquer p´agina web atrav´es de um pedido HTTP. Com este recurso podem ser executadas opera¸c˜oes POST, GET, PUT e DELETE, a partir do envio de alguns dados em JSON que descrevam a opera¸c˜ao que se pretende efetuar.

Uma das grandes vantagens da arquitetura REST face a SOAP ´e que para implementa¸c˜ao de REST apenas ´e necess´ario o suporte de HTTP e XML/JSON, sendo que ambos s˜ao suportados de base tanto por iOS como por Android. Por esse motivo, pela sua simplicidade, e pela liberdade de implementa¸c˜ao, o REST ´e a arquitetura mais utilizada no desenvolvimento de web services.

2.5

Plataformas M´oveis

Em 1993 a IBM d´a o primeiro passo ao criar o que poder´a ser considerado o primeiro smartphone, o IBM Simon [26], que incorporava j´a um ecr˜a t´atil e capaci- dades de voz e dados. Desde ent˜ao rapidamente se seguiram novas empresas como a Palm, a Nokia e recentemente a Apple, que foram cada uma delas respons´aveis por melhorar e fazer avan¸car a no¸c˜ao de smartphone at´e ao que conhecemos hoje.

Os smartphones desde cedo tinham uma capacidade de processamento muito consider´avel para a sua escala reduzida, assim como a capacidade de comunicar atrav´es de uma liga¸c˜ao de dados, facultando o acesso `a Internet. Este facto tornou-os

alvos de muito valor para as empresas que queriam criar servi¸cos para os seus clientes que pudessem ser utilizados em qualquer lugar e contexto.

Hoje em dia, mesmo num smartphone de gama baixa poderemos encontrar uma capacidade de processamento compar´avel `a de um computador port´atil de h´a cinco anos atr´as, tendo ainda um diverso conjunto de funcionalidades como GPS, bluetooth, Wi-Fi, infravermelhos, girosc´opio, aceler´ometro, cˆamara fotogr´afica e de v´ıdeo, leitor de impress˜oes digitais, entre outros.

Atualmente o mercado dos smartphones est´a distribu´ıdo entre alguns sistemas operativos, sendo desde h´a algum tempo dominado pelo Android e iOS, com a recente adi¸c˜ao do Windows Phone que come¸ca a ganhar algum relevo. A tabela 2.1 descreve a quota de mercado de cada um dos sistemas operativos.

Tabela 2.1: Quota de mercado dos sistemas operativos m´oveis no 3o trimestre de 2013 [3]

Sistema Operativo Quota de mercado Android 81.3% iOS 13.4% Windows Phone 4.1% Blackberry 1.0% Outros 0.2%

2.5.1

iOS

O iOS ´e o sistema operativo propriet´ario da Apple. A sua primeira vers˜ao foi lan¸cada em 2007 junto com o primeiro iPhone. Esta primeira vers˜ao corria apenas as funcionalidades implementadas de raiz no sistema operativo. Permitia j´a o acesso a paginas web num formato equivalente a um computador de secret´aria e fazia uso de um teclado no ecr˜a como ´unica forma de introdu¸c˜ao de texto.

Em 2008 a Apple lan¸ca a segunda vers˜ao do iOS, e simultaneamente dispo- nibiliza publicamente o iPhone SDK (Software Development Kit ) e abre a loja de aplica¸c˜oes da Apple (Apple AppStore) que permite a qualquer empresa ou pessoa individual desenvolver aplica¸c˜oes para a plataforma e publica-las de forma paga ou gratuita ao p´ublico geral, incendiando assim o rastilho do mercado das aplica¸c˜oes para dispositivos m´oveis que atingir´a em 2013 uma escala de cerca de 20 mil milh˜oes de euros [27].

2.6. Cloud Computing

sendo apenas poss´ıvel desenvolver para esta plataforma num computador Mac, uti- lizando o iOS SDK, no IDE (Integrated Development Environment ) Xcode. A lin- guagem de programa¸c˜ao utilizada ´e Objective-C. O desenvolvimento e publica¸c˜ao de aplica¸c˜oes na loja requer a subscri¸c˜ao do programa de developer da Apple que tem um custo de 100$ anuais.

2.5.2

Android

O sistema operativo Android aparece como a aposta da Google para se introdu- zir no mercado dos smartphones. Come¸ca com a aquisi¸c˜ao da empresa Android Inc em 2005 e culmina com o lan¸camento do primeiro smartphone Android em 2008, o HTC Dream.

Um dos grandes fatores diferenciadores do Android ´e ser de c´odigo aberto, disponibilizado sob a licen¸ca Apache. Este facto permite que qualquer empresa de dispositivos m´oveis possa distribui-lo nos seus aparelhos, adicionando-lhe ainda mo- difica¸c˜oes pr´oprias como forma de adicionar vantagens competitivas sobre as outras marcas (Ex: HTC Sense, TouchWiz, etc).

Em 2009 a Google disponibilizou tamb´em o Android SDK e abriu o Android Market (atualmente Play Store), permitindo assim aos developers criar aplica¸c˜oes e distribu´ı-las, tal como na Apple AppStore. Embora lan¸cada um ano mais tarde, o Android Market ultrapassou em Outubro de 2012 a Apple AppStore em n´umero de aplica¸c˜oes dispon´ıveis na loja, e recentemente, em Junho de 2013, o n´umero total de downloads de aplica¸c˜oes, embora ficando ainda substancialmente atr´as nas receitas geradas [28].

O desenvolvimento de aplica¸c˜oes para Android pode ser realizado em qualquer uma das principais plataformas de desktop, seja ela Windows, Linux ou Mac OS, uti- lizando uma variedade de IDEs como o Eclipse, o IntelliJ, o Netbeans e recentemente o Android Studio.

2.6

Cloud Computing

O conceito de cloud computing ´e utilizado para descrever uma variedade de re- cursos computacionais partilhados e configur´aveis que podem ser acedidos atrav´es da Internet [29]. Estes recursos podem ser, por exemplo, de armazenamento, servidores, aplica¸c˜oes e servi¸cos.

Para utilizar este servi¸co ´e normalmente requerida a cria¸c˜ao de uma conta e ´e pedido ao utilizador que escolha uma m´aquina virtual com a plataforma que mais se adeque aos seus requisitos, dependendo da plataforma e da m´aquina, o servi¸co da cloud pode ou n˜ao ser gratuito. O cliente poder´a depois instalar e configurar as ferramentas e recursos que pretende que estejam dispon´ıveis na sua m´aquina, atrav´es do acesso remoto ao terminal da m´aquina por SSH (Secure Shell ).

Ser˜ao agora descritas cinco das principais carater´ısticas do modelo de cloud computing [30]:

• Um cliente pode a qualquer momento ajustar as carater´ısticas da m´aquina virtual de acordo as suas necessidades sem que para isso seja necess´ario requerer a intera¸c˜ao humana por parte da entidade prestadora do servi¸co;

• Os seus recursos est˜ao dispon´ıveis atrav´es da Internet, e s˜ao acedidos por me- canismos standard que possibilitam o acesso a partir de v´arias plataformas diferentes;

• Os recursos virtuais e f´ısicos s˜ao atribu´ıdos dinamicamente a clientes diferentes consoante estes ajustam as suas necessidades;

• As suas capacidades s˜ao fornecidas r´apida e elasticamente, isto ´e, s˜ao normal- mente ilimitadas e podem ser adquiridas a qualquer momento;

An´alise e Modela¸c˜ao do Sistema

No cap´ıtulo anterior foram estudados os principais conceitos e tecnologias que envolvem este projeto de disserta¸c˜ao. Foi assim poss´ıvel perceber e definir quais as melhores op¸c˜oes a tomar de acordo com os objetivos definidos. Neste cap´ıtulo ´e descrita a an´alise e modela¸c˜ao do sistema, isto ´e, qual a sua arquitetura, quais os seus requisitos, os casos de uso, assim como a descri¸c˜ao das tecnologias escolhidas para integrar as componentes do sistema:

• Base de dados; • Servidor;

• Aplica¸c˜ao M´ovel.

3.1

Requisitos do Sistema

O sistema deve cumprir os seguintes requisitos:

3.1.1

Requisitos funcionais

• Dever˜ao existir dois tipos de utilizadores: administrador e utilizador comum. O utilizador comum apenas dever´a ser capaz de monitorizar as WSNs `as quais lhe foi garantido acesso, o administrador dever´a ser capaz de gerir a base de dados e monitorizar todas as WSNs;

Documentos relacionados