Buscar

TG_adam_Gabriel_v11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 47 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
FACULDADE DE TECNOLOGIA DE CATANDUVA
adam riva do nascimento
gabriel duarte sanches
catanduva/SP
2019
backend as a service: um estudo experimental
backend as a service: um estudo experimental
adam riva do nascimento
gabriel duarte sanches
Trabalho de Graduação apresentado à Faculdade de Tecnologia de Catanduva para obtenção do grau de Tecnólogo em Gestão 
da Tecnologia da informação
, sob a orientação do Prof. Esp.
 Ronaldo Rodrigues Martins.
catanduva/SP
2019
S6778
Riva do Nascimento
, 
Adam
.
Backend as a Service: um estudo experimental
Adam Riva do Nascimento
,
 Gabriel Duarte Sanches.
 – Catanduva: FATEC, 201
9
.
30
f.
Orientador: Prof. Esp. 
Ronaldo Rodrigues Martins
.
Trabalho de Graduação (Curso de Tecnologia em Gestão
 de Tecnologia da informação
) – Faculdade 
de Tecnologia de Catanduva, 2019
.
1. 
Backend as a Service
. 2. 
Serviço
. 3. 
Firebase
. I. 
Riva do Nascimento
, 
Adam
. II. 
Duarte Sanches
, 
Gabriel
. III. 
Marins
, 
Ronaldo
. 
I
V.
 
Faculdade de Tecnologia de Catanduva
. V. Título.
adam riva do nascimento
gabriel duarte sanches
backend as a service: um estudo experimental
__________________________________________
Prof(a). ________________________
FATEC-Catanduva
Orientador(a)
_________________________________________
Prof(a). ___________________________
FATEC-Catanduva
Avaliador(a)
_________________________________________
Prof(a). ___________________________
FATEC-Catanduva
Avaliador(a)
Aprovação em: / /
Trabalho de Graduação apresentado à Faculdade de Tecnologia de Catanduva para obtenção do grau de Tecnólogo em Gestão 
da Tecnologia da informação
, sob a orientação do Prof. Esp.
 Ronaldo Rodrigues Martins.
 
Dedicamos este trabalho a Deus, nossa família e ao orientador, por todo suporte no caminho até aqui.
AGRADECIMENTOS
Agradecemos aos nossos pais, por todo apoio nos momentos mais difíceis.
Agradecemos a todos os professores, em especial ao prof. Ronaldo Rodrigues Martins que nos orientou, dando suporte, correções e incentivos neste último ano. 
Nosso agradecimento aos amigos que trilharam este caminho ao nosso lado nestes três anos que se passaram.
E por fim, nosso agradecimento a todos da Fatec Catanduva.
RESUMO
Resumo do trabalho EM PORTUGUÊS. Em média de 10 a 15 linhas, entre 150 e 500 palavras. Explicar sucintamente o que é o trabalho: tema, métodos, resultados principais. Atenção: é um parágrafo único, espaçamento simples, sem recuo na primeira linha. As palavras chave são separadas por ponto, cada uma iniciando com letra maiúscula. Não use figuras, gráficos, tabelas ou esquemas. Evite fórmulas, abreviaturas, frases negativas, símbolos e citações.
Palavras-chave: Palavra. Palavra. Palavra.
ABSTRACT
Resumo do trabalho EM INGLÊS. Tradução do resumo anterior. Também é um parágrafo único, espaçamento simples, sem recuo na primeira linha. As keywords em INGLÊS, separadas por ponto, cada uma iniciando com letra maiúscula.
Keywords: Word. Word. Word.
LISTA DE FIGURAS
Figura 1 - Backend e Frontend.	13
Figura 2 - Como uma API funciona.	14
Figura 3 - Modelo de Web Service.	17
Figura 4 - Custa da Nuvem.	18
Figura 5 - Tipos de nuvem.	19
Figura 6 – BaaS.	22
Figura 7 - Janela de criação de Políticas de Segurança Google Cloud Platform.	24
Figura 8 - Tela inicial protótipo.	27
Figura 9 - Menus do protótipo.	28
Figura 10 - Diagrama de Classe.	29
Figura 11 - Diagrama de sequência.	30
Figura 12: Diagrama de atividade.	31
Figura 13 - Métodos de login disponíveis no Firebase.	32
Figura 14 - Exemplo de autenticação sem o BaaS.	33
Figura 15 - Código de login no frontend.	34
Figura 16 - Exemplo de autenticação com o BaaS.	34
Figura 17 - Regras do storage.	35
Figura 18 - Exemplo de armazenamento sem o BaaS.	36
Figura 19 - Realtime Database.	37
Figura 20 - API picasso	37
Figura 21 - Gráfico de usuários ativos.	39
 
 
LISTA DE ABREVIATURAS
API		Application Programming Interface
ASP		Active Server Pages
AWS		Amazon Web Services 
BaaS		Backend as a Service 
CFML		ColdFusion Markup Language
CSS		Cascading Style Sheets
HTML 	Hypertext Markup Language
IaaS		Infrastructure as a Service
JSP		JavaServer Pages
MBaaS	Mobile Backend as a Service
PaaS		Plataform as a service
PHP		Hypertext Preprocessor
SDK		Software development kit
SOAP		Simple Object Access Protocol
SSL		Secure Sockets Layer
UDDI		Universal Description, Discovery and Integration
URL		Uniform Resource Locator
VB 		Visual Basic
VM		Virtual Machine
WSDL		Web Services Description Language
XML		Extensible Markup Language
SUMÁRIO 
INTRODUÇÃO	11
1	FUNDAMENTAÇÃO TEÓRICA	12
1.1	Backend e Frontend	12
1.2	Application Programming Interface	13
1.3	Web Service	15
1.3.1	Tecnologias e Protocolos	15
1.4	Serviços em nuvem	17
1.4.1	Tipos de nuvem	18
1.5	Backend as a Service	20
1.5.1	Como o BaaS funciona	21
1.5.2	Monetização	22
2	MÉTODOS	25
3	DESENVOLVIMENTO	26
3.1	Protótipo	26
3.2	Diagramas	28
3.2.1	Diagrama de classe	28
3.2.2	Diagrama de sequência	29
3.2.3	Diagrama de atividade	30
3.3	Firebase Authentication	31
3.4	Firebase Storage	34
3.5	Realtime Database	36
4	RESULTADOS E DISCUSSÃO	38
4.1	Vantagens	38
4.2	Dificuldades no desenvolvimento e utilização do BaaS	39
CONSIDERAÇÕES FINAIS	41
REFERÊNCIAS	42
APÊNDICE A – Quando é elaborado por você	45
ANEXO A – Quando é de outra pessoa	46
INTRODUÇÃO
O desenvolvimento de aplicações vem solidificando ferramentas que procuram facilitar cada vez mais os desenvolvedores no momento da programação, seja na interface da ferramenta de desenvolvimento, agilidade em processos ou utilização de códigos diversos para diminuir o prazo de entrega dos softwares.
Em um projeto de software, o programador preocupa-se em desenvolver soluções de software para problemas tanto empresariais quanto pessoais, e o cenário atual de desenvolvimento impossibilita o programador de continuar escrevendo códigos complexos e longos, consumindo tempo e, consequentemente, recursos. As exigências dos usuários também aumentaram, consumindo mais tempo de desenvolvimento para compreender o que o usuário exatamente precisa, e, alinhado a todos estes fatos, o valor do tempo está presente, também se esperando que as soluções de software sejam entregues o mais rápido possível. Desviar a atenção do programador para atividades repetitivas, longas e maçantes como programar tecnologias exige divisão de foco, quando o mesmo poderia estar focado em outros setores do desenvolvimento, como uma melhor solução do próprio problema do usuário, interface mais intuitiva, compreensão do cenário do usuário para alinhar a finalidade do software desenvolvido, etc. 
Observando a demanda do mercado, diversas empresas surgem fornecendo o Backend para as aplicações web e mobile, e este serviço é conhecido como Backend as a Service (Backend como serviço). Este trabalho, portanto, orienta-se em aprofundar o estudo de utilização e ferramentas disponíveis no mercado sobre BaaS, facilitando desenvolvedores a compreender o que é BaaS e como utilizá-lo.
26
35
Portanto, buscou-se reunir dados e/ou informações, analisadas através de um experimento, com o propósito de responder ao seguinte problema de pesquisa: Como o Backend as a Service pode facilitar o desenvolvimento de aplicações web e mobile?
FUNDAMENTAÇÃO TEÓRICA
Esse capítulo apresenta os conceitos teóricos que sustentam esse trabalho. Portanto, são apresentadas as definições e conceitos sobre o BaaS (Backend as a Service) e sobre conceitos que complementam o assunto como Application Programming Interface (Interface de Programação de Aplicativos), Backend e Frontend, Web Service, Serviço em nuvem e Monetização de Serviços BaaS.
A Seção 1.1 define os princípios básicos de Frontend e Backend. A Seção 1.2 define o que é umaAPI. A Seção 1.3 define Webservice e suas tecnologias. A Seção 1.4 Mostra o que é serviços em nuvem e seus tipos. A Seção 1.5 define o que é Backend as a Service. A Seção 1.6 mostra como é a monetização de provedores BaaS e Nuvem. 
Backend e Frontend
Existem duas camadas de programação para desenvolvermos para internet: as linguagens frontend e as linguagens backend. 
A primeira camada é a frontend, a camada de navegação dos usuários, também chamada de client-side. A estrutura é geralmente feita em HTML, Javascript, CSS e Flash. Frontend faz a interface do site ou aplicativo funcione bem em qualquer tipo de dispositivo mobile ou navegador, que pode ser Chrome, Firefox ou Internet Explorer (GETSOURCE, 2018).
A linguagem backend é a de programação camada de programação que envolve processamento dos dados recebidos do frontend. Também conhecido como server-side, no backend à rotinas e funcionalidades, combinados com informações de um banco de dados processem e entreguem informações aos usuários. O backend é formado por três partes o servidor, a aplicação e o bando de dados (GETSOURCE, 2018).
Sem o backend, o frontend vira apenas uma interface, sem funcionalidade. Para aplicar a funcionalidade, o backend precisa ser desenvolvido e implementado junto à interface do frontend. Por isso no processo de Desenvolvimento Web é comum o desenvolvimento frontend preceder o desenvolvimento backend.
Figura 1 - Backend e Frontend.
Fonte: Figura adaptada de CloudFlare (2018)
Como a figura 1 demonstra, o Backend e Frontend são dois lados do mesmo iceberg. O programador pode ficar limitado a desenvolver a Interface do Usuário e a Lógica da aplicação voltada às necessidades do Cliente. O Backend entra como a parte de baixo do iceberg, a que não é vista e que sempre é a maior. Dentro de Backend, podemos incluir o Controle de Banco de Dados da aplicação, Armazenamento em Nuvem dos dados da aplicação, Autenticação do Usuário para a aplicação ajustar os dados visíveis para diferentes Usuários da mesma aplicação, Notificações, Hospedagem do serviço, entre outras (CLOUDFLARE, 2018).
Dentre as tecnologias desenvolvidas para backend e frontend, destacam-se:
Frontend: XHTML, HTML5, CSS, CSS3, Javascript, AJAX, jQuery, CFML, AngularJS, Bootstrap e Primefaces.
Backend: PHP, Node.js, Ruby on Rails, Python, Java, JSP, .NET, ASP, C♯, VB e Perl Catalyst.
Application Programming Interface
De acordo com ALMEIDA e col. (2015), API é um acrônimo de Application Programming Interface ou, em português, Interface de Programação de Aplicativos é uma estrutura que torna mais fácil para construir serviços HTTP que chegam a uma ampla gama de clientes, incluindo navegadores e dispositivos móveis. A intenção de uma API é facilitar o uso de um serviço web.
De acordo com Sampaio (2007), São apenas rotinas e padrões de um software para utilizar suas funcionalidades. Ou seja, API é composta por uma série de funções que não são visíveis ao usuário, pois estão acessíveis somente pelos códigos de programação, contudo não envolve em detalhes da programação, mas apenas usa seu serviço. Na figura 2 é mostrado um exemplo de rotina.
Figura 2 - Como uma API funciona.
Fonte: Figura adaptado de SLETER (2015)
	
O uso têm se generalizados em plug-ins, softwares livres que complementam a funcionalidades de um programa, ou seja, códigos que possibilitam utilizar recursos de um aplicativo em outro (VALDAMERI e CORREIA, 2009).
Em outras palavras, API é usado quando empresas cedem o código para outros programadores, assim diferentes aplicativos baseados na internet interagem entre si, de forma automatizada, associados a esse código.
 Conforme Mulesoft (2018) “conceito de API é muito antigo na computação, mas a integração de sistemas companhias como eBay, Salesforce e Twitter, enxergaram a demanda neste tipo aplicação”, quando as chances de gerar negócios pela internet aumentaram as APIs eram uma forma de potencializar os negócios online, assim a integração gerava oportunidades para parceiros e negócios.
Em tempos modernos o conceito de “API” frequentemente descreve qualquer tipo de interface de conectividade genérica para um aplicativo. Os padrões das APIs (geralmente HTTP e REST), que são fáceis de usar, fáceis de acessar e entender com amplitude (STOWE, 2015).
Continuando, Stowe (2015) diz que eles são tratados mais como produtos do que código. São projetados para consumo para públicos específicos (por exemplo, desenvolvedores de dispositivos móveis), são documentados de forma que os usuários possam ter certas expectativas de manutenção e ciclo de vida.
Como qualquer outro software produzido, a API moderna tem seu próprio CVDS (ciclo de vida de desenvolvimento de software) de criação, teste, criação, gerenciamento e controle de versão. Além disso, as APIs modernas são bem documentadas para consumo e controle de versão.
Web Service
Com o surgimento da nuvem no ambiente profissional, muitas APIs passaram a ser disponibilizadas via Web, e, com a evolução da ideia de nuvem, um novo tipo de serviço, que é conhecido como Web Service.
Webs Services podem ser considerados pedaços de aplicações separados por funções únicas (serviços) expostos na Web para utilização de determinado público. Sendo concebido com base em um conjunto de padrões abertos que garantem as suas principais características: interoperabilidade e reusabilidade (BRINHOSA, 2010).
A Web Services são aplicações que podem ser utilizadas via rede e não dependem da linguagem da plataforma cliente, esta aplicação pode ser acessada de diferentes sistemas através do uso de linguagens e protocolos padronizados permitindo receber e enviar dados em formato XML com a aplicação cliente (TAVARES, 2010).
Tecnologias e Protocolos
A arquitetura de Web Services é baseada nas interações com o a aplicação de serviço com a aplicação cliente, o cliente faz uso das aplicações do provedor, através de padrões e protocolos, e estes são:
Extensible Markup Language (XML): constitui a base da Web Service. Responsável por fornecer o armazenamento, descrição e modo de transição de dados através do Web Service. XML especifica, de forma genérica, de que maneira e qualidade os serviços são transmitidos. Comunica-se via protocolos internet (normalmente HTTP);
Simple Object Access Protocol (SOAP): Em português, protocolo Simples de Acesso a Objetos é um protocolo para ambientes distribuídos que permite a interação entre as aplicações baseada na troca de mensagens XML. O SOAP não impõe ou define a semântica, seja do modelo de programação ou específica de implementação. Este aspecto é extremamente importante, pois permite que aplicações desenvolvidas em diferentes linguagens de programação sejam invocadas para uma tarefa comum. Existe para garantir a interoperabilidade e intercomunicação entre diferentes sistemas (TAVARES, 2010).
Web Services Description Language (WSDL): Em português, linguagem descritiva de serviços web é Linguagem de descrição baseada em XML que possibilita a geração de um documento com o qual é possível obter-se informações necessárias para invocar um Web Service, localizá-lo, verificar operações disponíveis, além das assinaturas das mesmas. Funciona como uma espécie de "TypeLibrary" do Web Service, além de ser usado para a validação das chamadas dos métodos (TAVARES, 2010).
Universal Description, Discovery and Integration (UDDI): Em português Descrição Universal, Descoberta e Integração, Possibilita a criação de um registro de serviços, mecanismo que possibilita a publicação e busca de serviços (BRINHOSA, 2010).
ERL (2009) afirma que um registro UDDI contém três tipos de informação:
Informações gerais de cada organização, tais como o nome, endereço e contatos.
Informações de organizações e serviços por categorias de negócios.
Informações técnicas sobre os serviços providenciados pelas organizações.
Continuando ERL (2009) UDDI providencia três funções principais, conhecidas como publicação, descoberta e ligação:
Publicação: permite que uma organização divulgueo(s) seu(s) serviço(s);
Descoberta: permite que o cliente do serviço procure e encontre um determinado serviço;
Ligação (Bind): permite que o cliente do serviço possa estabelecer a ligação e interagir com o serviço.
Figura 3 - Modelo de Web Service.
Fonte: Apple (2016)
Web Service é a ponte entre os dados trafegados de um local para a nuvem, e esta nuvem pode transmitir os mesmos dados para outros dispositivos que não possuem correlação de linguagem de programação precisamente original do dispositivo transmissor, sendo assim, disponibilizando os dados para dispositivos diferentes, mas que interpretam somente o Web Service, conforme há no exemplo da figura 3.
Serviços em nuvem
Com possibilidade de se criar VMs (virtual machines – maquina virtual) através da computação em nuvem, as aplicações através de Webservices ficam mais atraentes.
Segundo Taurion (2009) o termo computação em nuvem surgiu em 2006 em uma palestra de Eric Schmidt, da Google, sobre como sua empresa gerenciava seus data centers. Hoje, computação em nuvem, se apresenta como o cerne de um movimento de profundas transformações do mundo da tecnologia.
Para os usuários utilizarem os serviços, necessitam apenas de máquinas com um sistema operacional, o navegador e acesso à internet. Todos os recursos e processamentos computacionais ficam disponíveis na Internet, com isso, o computador será apenas um usuário ligado ao servidor através internet.
Armbrust et al (2009) afirma que os serviços em nuvem tornaram os softwares muito mais atrativo, e mudou o modo com que hardwares são comprados, desenvolvedores com ideias para serviços de internet não precisam mais de um grande capital. 
Os serviços de computação em nuvem devem otimizar os recursos de maneira adequada, recursos como armazenamento, capacidade de processamento, número de usuários, etc. Ou seja, um modelo de utilização dinâmico o provedor aloca os recursos de acordo com a necessidade do cliente. Nesse modelo dinâmico de alocação e liberação de recursos é conhecido pelo termo pay-per-use (pagamento pelo uso). Isto faz do custo o maior benefício da computação em nuvem, conforme demonstra a figura 4.
Figura 4 - Custa da Nuvem.
Fonte: Opus (2015)
Demais benefícios da computação em nuvem estão agilidade e a flexibilidade. Em caso de demanda variável ou até mesmo picos de uso de processamento, aumentar de diminuir a capacidade de seu servidor se torna mais rápido e fácil (OPUS, 2012).
Sendo assim os principais provedores de computação em nuvem são Amazon Web Services, Google Clould Plataform, Microsoft Azure e o Softlayer da IBM. Esses provedores operam mundialmente, com ampla documentação técnica em vários idiomas.
Tipos de nuvem
Quando se fala sobre as possíveis formas de implantação da Computação em Nuvem, os seguintes tipos são normalmente propostos: nuvem pública, privada e híbrida. Os três cenários oferecem benefícios semelhantes, incluindo custo-benefício, desempenho, confiabilidade e escala, mas o método de implantação escolhido dependerá das necessidades do usuário (MICROSOFT, 2019).
Nuvem pública: As nuvens públicas são a maneira mais comum de implantar a computação em nuvem, devido à redução de custos com hardware e manutenção.
“Nuvem pública é aquela oferecida pela internet por um provedor de serviços, em que os recursos computacionais são compartilhados pelos seus diversos clientes e o controle das instâncias, máquinas virtuais e recursos de processamento e armazenamento ficam completamente delegados ao provedor” (OPUS, 2015, p. 37)
Dentre os provedores de nuvem pública se destacam a Google Cloud Platform, Amazon WS, IBM Clould, Oracle Clould, no Brasil se destacam a Vivo Cloud e a Brascloud. Estas oferecem serviços como servidores virtuais (virtual machine), armazenamento, backup e demais serviços essenciais, todas tendo suas características.
Nuvem Privada: Neste método, recursos de computação são usados exclusivamente por uma única empresa ou organização. Não é necessário que os equipamentos de hardware estejam alocados fisicamente ou pertença à organização (MICROSOFT, 2019).
Assim uma nuvem privada pode ser uma infraestrutura criada e controlada pela organização ou em uma que a infraestrutura é controlada por um de um provedor de serviços, através de uma “nuvem privada virtual” (Virtual Private Cloud - VPC), onde são isolados da rede pública. 
Segundo Opus (2015) escolha deste método traz mais flexibilidade e segurança. Pois é mais fácil para que a organização personalize seus recursos a fim de atender a requisitos de TI específicos, já que os recursos não estão sendo compartilhados com terceiros.
Na figura 5, é exemplificado o conceito de nuvem publica e privada.
Figura 5 - Tipos de nuvem.
Fonte: Opus (2015)
Nuvem hibrida: neste método, combina-se a infraestrutura local, ou seja, as nuvens privadas, com as nuvens públicas, permitindo que as organizações aproveitem às vantagens de ambas as opções (MICROSOFT, 2019).
De acordo com a Microsoft (2019) A nuvem hibrida traz mais controle, pois a organização pode manter em sua rede privadas ativos confidenciais, também torna mais fácil uma possível migração de serviço.
Backend as a Service
A computação em nuvem não se trata somente de máquinas virtuais ou armazenamento, também está relacionada à área do desenvolvimento, onde pode destacar o BaaS. “Provê aos desenvolvedores de aplicativos móveis uma maneira de vincular o backend de suas aplicações ao armazenamento em nuvem.” (COSTA, 2015)
É cada vez mais raro que empresas escolham ter sua própria infraestrutura de servidores. Isso porque a oferta de serviços de infraestrutura o IaaS (Infrastructure as a Service - infraestrutura como serviço) em nuvem se tornou muito confiável, fazendo o backend como serviço ser mais atrativo para plataformas mobile. 
Lane (2013) define BaaS como um serviço que fornece aos desenvolvedores de aplicativos Web e para dispositivos mobile uma maneira de conectar seus aplicativos ao backend armazenamento em nuvem e processamento, além de fornecer recursos comuns, como gerenciamento de usuários, notificações, integração de redes sociais e outros recursos que os usuários móveis exigem de seus aplicativos atualmente.
Conforme Lane (2013) “BaaS surgiu da grande demanda por aplicações de aplicativos mobile, com a falta de desenvolvedores mobile”, o BaaS tem como objetivo tornar o desenvolvimento mais rápido e barato. 
Dentre as vantagens citadas por Lane (2013) de se usar BaaS esta:
Ganhos de eficiência: Reduzindo os obstáculos para levar um aplicativo mobile da ideia à produção. Diminuindo a sobrecarga em todos os aspectos do desenvolvimento de aplicativos mobile, aumentando a eficiência em todos os estágios de desenvolvimento. 
Otimização: os provedores de BaaS colocaram muito tempo e recursos na otimização de recursos e rede para aplicativos mobile e Web, e em problemas de utilização em diferentes plataformas e dispositivos.
API’s: provedores de BaaS trazem pacotes de API’s de terceiros, API’s como mapas, Autenticação de usuários, armazenamento, serviço de notificações, integração com redes sociais, monitoramento, publicidade e vários outros serviços, assim os desenvolvedores não tem de desenvolver aplicações separadamente.
Desvantagens:
Dependência: existe uma dependência do provedor do backend e cliente por isso de haver confiança no sistema de segurança do serviço, “a probabilidade que o sistema irá prover o serviço continuamente e sem erros” (COSTA, 2015).
Funções: o cliente tem apenas as funcionalidades que o provedor oferece o que limita as funções de sua aplicação.
Termos: provedores tem termos de uso e o cliente pode ser expulso do serviço caso não siga os termos.
Migração: a maior das desvantagens, os provedores não oferecem meios fáceis para migrar para outra prestadora de serviços, estabelecendo assim uma relação de dependência com o serviço. Se a empresa provedora fechar ou falir a migração o cliente terá de migrar para outro provedor. 
O BaaS é focado principalmente nodesenvolvimento de aplicativos móveis, daí surge MBaaS (Mobile Backend as a Service). É uma ideia que surgiu de empresas que apostaram em serviços exclusivos para aplicativos iOS e Android.
Lane (2013) diz que, o BaaS foi desenvolvido com a área mobile em mente. Os provedores de BaaS estão se concentrando na otimização de dados para dispositivos móveis, reunindo recursos essenciais como geolocalização, integração com redes sociais e outros elementos críticos de aplicativos móveis. Embora o BaaS esteja focado no desenvolvimento de aplicativos móveis, ele oferece uma abordagem muito flexível para aplicações. Da estrutura ao PaaS (Plataform as a Service), com menos restrições de interface e com uma quantidade significativa de recursos para construir uma variedade de aplicativos da web.
Como o BaaS funciona
A API é o que torna o BaaS útil, pois permite armazenar e consultar dados, executar código do Backend, autenticar usuários e várias outras funcionalidades, coisas que geralmente não podem ser feitos na plataforma do usuário, ou seja o Frontend (GOOGLE CLOUD PLATFORM, 2018).
 Isso geralmente é implementado como um serviço de um provedor de computação em nuvem, serviços como a AWS ou o Google Cloud Platform.
FARIAS (2018) diz que o BaaS é uma abordagem na qual as API’s e SDK’s (Software development kit) são serviços de baseados em nuvem, em vez de desenvolver o backend e criar os próprios servidores. Como demonstrado na figura 6, o BaaS funciona da seguinte forma, ele cria as API’s primeiros para a assim servirem de base para a construção de aplicações em diferentes plataformas, o SDK e as API’s conectam o frontend ao backend por meio da nuvem.
Figura 6 – BaaS.
Fonte: Produção própria(2019)
Monetização
Conforme Lane (2013), os métodos usados por provedores de BaaS e Nuvem estão em constante mudanças, mas os mais utilizados por provedores no mercado são de abordagem por API’s ou por armazenamento.
A monetização deve cobrir o custo de serviço e ser lucrativa para os clientes, normalmente os provedores dão uma opção freemium no qual pode se comprar recursos dependendo da necessidade.
Lane (2013) cita os principais serviços monetizados pelos provedores estão:
Usuários Ativos: Muitos provedores de BaaS exercem a monetização por cima da quantia de usuários ativos no sistema. Cada provedor possui a sua própria definição de "usuário ativo" no sistema. Os usuários ativos podem variar de usuários cadastrados até usuários conectados no momento.
Análises: Muitos provedores de BaaS fornecem um básico sistema de análises, providenciando relatórios e dados organizados para visualização analítica.
Largura de Banda: Certas cobranças são sobre a largura de banda necessária e utilizada.
Aplicativos: Provedores também cobram encima de aplicativos desenvolvidos a partir do BaaS. É comum ver este tipo de cobrança, pois possui lógica, quanto mais desenvolvimento utilizando a plataforma, mais custos.
E-mail: Alguns provedores disponibilizam um provedor de e-mail para o cliente, acrescentando valor de custo no serviço. O armazenamento disponível para cada e-mail também pode estar sujeito à cobrança.
Features: Normalmente aplicadas em serviços de pacote premium, disponibilizando ferramentas normalmente de terceiras para a implementação do sistema, como marketplace, notificações push, bots para usabilidade, sistemas de autenticação de usuário, etc.
Segurança: Alguns provedores oferecem sistemas mais seguros, e cobram pelo serviço fornecido, dando mais complexidade de segurança para o código. As políticas de SSL (Secure Sockets Layer) controlam como os balanceadores de carga (técnica para distribuir a carga de trabalho uniformemente entre dois ou mais computadores) negociam SSL com clientes. Todos os balanceadores de carga HTTPS ou SSL são configuráveis, podendo assim criar políticas de segurança, como é mostrado na figura 7 à janela de criação de regras da plataforma da Google.
Figura 7 - Janela de criação de Políticas de Segurança Google Cloud Platform.
Fonte: Google Cloud Platform (2019)
Suporte: Desenvolvedores dão valor em suporte, e muitos provedores perceberam isso, assim, aplicando um suporte mais customizado, porém com custos mais elevados para atender a demanda. São oferecidos diferentes tempos e/ou velocidade disponíveis de atendimento em diferentes pacotes, sendo os com maior valor financeiro os com, consecutivamente, maior tempo e/ou velocidade de suporte disponível.
Armazenamento: Alguns provedores cobram o serviço encima do armazenamento disponível para a aplicação. Ferramentas de sincronização entre os serviços oferecidos também são cobradas, como conteúdo, horas e mensagens. Backups programados também se encaixam nessa categoria, tendo o custo o tamanho do backup e a frequência do mesmo.
MÉTODOS
Este trabalho visa demonstrar como é o desenvolvimento de uma aplicação mobile usando serviços backend, usando serviços oferecidos por provedores em desses serviços como armazenamento, geolocalização e API’s. Este trabalho é de natureza aplicada, pois tem como objetivo gerar conhecimentos para aplicação prática direcionada para soluções de problemas específicos que, no caso, abrange uma solução recente no mercado, o uso de backends como um serviço, demostrar passo a passo a elaboração e funcionamento, assim, colocando em pratica conhecimentos obtidos durante o curso (PRODANOV; FREITAS, 2013).
Quanto aos objetivos, se caracteriza por ser explicativa, pois segundo (PRODANOV; FREITAS, 2013). Busca explicar o porquê dos fatos e as suas causas através de registros, análise, classificação e interpretação das ocorrências observadas e que pesquisas explicativas em sua grande parte utiliza métodos experimentais que, no caso, deste consiste na realização de um experimento, neste caso um aplicativo mobile, a fim de descrever os processos realizados e as características do mesmo.
Do ponto de vista dos procedimentos técnicos o trabalho se encaixa no caráter experimental, pois, o objetivo é refazer as condições de um fato estudado, para observá-lo sob controle, a fim de demonstrar como e por que determinado fato é produzido que, no caso, consiste na utilização de serviços em nuvem para o desenvolvimento e um aplicativo (PRODANOV; FREITAS, 2013).
A respeito da Abordagem do problema a forma de abordagem se encaixa em uma pesquisa qualitativa, pois o problema em questão necessita de um trabalho mais intensivo em campo e de um contato mais direto com o ambiente de estudo (PRODANOV; FREITAS, 2013).
DESENVOLVIMENTO
Este capítulo tem o objetivo de mostrar os resultados do uso do serviço de BaaS conforme a fundamentação apresentada anteriormente, embasando a ideia de criação e manutenção da aplicação mobile proposta na metodologia usando o conceito de backend como um serviço. Esta aplicação usara o Firebase oferecido pela Google, na plataforma Google Clould Plataform. E envolvera controle de usuários e armazenamento em nuvem. Assim demonstrando na pratica as vantagens e desvantagens de se usar o BaaS.
Protótipo
Como parte da abordagem do projeto, que é, demonstrar como é o desenvolvimento de uma aplicação usando o BaaS, foi desenvolvido um protótipo visual do que se espera do aplicativo final, para este protótipo foi usado a ferramenta de edição Adobe Fireworks CS6, uma ferramenta que permite web designers criar interfaces de sites em vetor.
O aplicativo proposto se trata de um armazenamento de fotos em nuvem, que combina dados de localização obtidos por GPS e datas para construir álbuns automaticamente, um álbum para cada momento e local.
Na figura 8 mostra a tela inicial com as fotos separadas por data, ao clicar na imagem da câmera na parte superior direita, a câmera do dispositivo abre ao tirar a foto, a imagem é salva em nuvem.
Figura 8 - Tela inicial protótipo.
Fonte: Produção própria(2019)
Esta aplicação envolveria autenticação de usuário, armazenamento em nuvem e tratamento de metadados geográficos.
Na figura 9, se vê as opções do menu, na opção Imagem seriaa tela inicial, na opção viagens onde estaria os álbuns criados automaticamente usando a combinação de data e local.
Figura 9 - Menus do protótipo.
Fonte: Produção própria (2019)
Diagramas
Esta Seção tem como obtivo a apresentação dos diagramas relacionados ao experimento a ser desenvolvido.
Diagrama de Classe
O Diagrama de Classe foi elaborado já se pensando em suas classes e métodos em nível de programação. 
A figura 10 a seguir mostra o Diagrama de Classe.
Figura 10 - Diagrama de Classe.
Fonte: Produção própria
!!! ARIAL !!! A figura 10 indica as classes relacionariam na aplicação, onde se pode notar a herança envolvida entre a classe, Álbum, Pessoa e Imagem, este diagrama demonstra que as classes imagem e pessoa (diga-se usuário) terão um vínculo pela classe álbum onde toda imagem terá um álbum o relacionando a uma pessoa.
Diagrama de Sequência
O Diagrama de Sequência retrata uma situação específica do ator, ou seja, o usuário.
Figura 11 - Diagrama de Sequência.
Fonte: Produção própria
A ideia da aplicação é que o usuário comece efetuando sua autenticação, após isso o usuário pode fazer um upload a seu álbum ou abrir o álbum e ver suas fotos.
Na atividade de fazer o upload, ao tirar a foto ela é carregada para a base de dados onde é atribuído o código da imagem (no caso do aplicativo de exemplo a URL gerada pelo Storage do Firebase), a data de upload e o local. Por fim a imagem é atribuída ao álbum do usuário.
Na atividade de visualizar o álbum, o usuário abre o álbum o backend busca as imagens relacionadas a este álbum e exibe ao usuário. 
Diagrama de Atividade
Neste diagrama o objetivo é mostrar os fluxos conduzidos por processamentos da aplicação proposta.
Figura 12: Diagrama de Atividade.
Fonte: Produção própria.
O processo se inicia com o usuário se conectando ao aplicativo, neste caso a uma condição se o e-mail e senha do usuário estão corretos o usuário é validado, se não, processo finalizado. O usuário tira a foto e faz o upload, neste momento a outra condição, se o upload foi feito com sucesso o sistema adiciona a foto ao álbum, se não, ele retorna um alerta de falha e volta para fazer de fazer o upload.
Firebase Authentication
O Firebase oferece vários métodos de autenticação de usuários como mostrado na figura 13, a este serviço se dá o nome de Firebase Authentication, O método utilizado neste desenvolvimento foi à utilização de e-mail e senha. 
Figura 13 - Métodos de login disponíveis no Firebase.
Fonte: produção própria (2019)
Para ativar qualquer uma das opções de autenticação basta apenas selecionar o método desejado, habilitar e salvar, e qualquer aplicação que esteja vinculado a este projeto no Google Cloud Plataform já estão hábeis a utilizar esta funcionalidade. 
Na aplicação deve-se iniciar o Firebase Authentication, como ele iniciado usa-se a seguinte expressão para criar um usuário. 
	auth.createUserWithEmailAndPassword(String, String)
E a seguinte para se autenticar na aplicação.
	auth.signInWithEmailAndPassword(String, String)
Onde os strings contêm as informações de e-mail e senha.
Pode-se relacionar mais informações a cada usuário como nome, idade e até foto de perfil porem é necessária a utilização de outros serviços do firebase como o Cloud Firestore, Realtime Database e o Firebase Storage. Serviços que serão abordados mais para frente no desenvolvimento. 
Fica claro o ganho de tempo e facilidade quando se comparado com o mesmo caso de autenticação, porém sem usar o Backend as a Service. A figura 14 demonstra isso.
Figura 14 - Exemplo de autenticação sem o BaaS.
Fonte: Produção própria
Sem o backend já pronto, a pessoa teria que ter um conhecimento avançado para configurar um servidor para usa-lo como WebService, criar regras de segurança do negocio, necessário também uma boa criptografia, e a necessidade de se manter um banco de dados, o serviço do Firebase já entrega tudo isso de uma maneira mais simples.
Ao usar o BaaS o processo se torna mais curto, assim tornando o foco apenas no frontend, a seguir na figura 15 o código necessário para a autenticação no aplicativo proposto.
Figura 15 - Código de login no frontend.
Fonte: Produção própria
A figura 16 mostra a diminuição do processo de autenticação usando o BaaS, o serviço do Firebase.
Figura 16 - Exemplo de autenticação com o BaaS.
Fonte: Produção própria
Firebase Storage
Para salvar as imagens dos usuários é usado o Firebase Storage, um serviço disponível no Google Cloud Plataform, usado para armazenar e recuperar arquivos gerados pelo usuário, como imagens, áudios e vídeos, sem o código do lado do servidor, ou seja, sem a necessidade de manter um banco de dados em um servidor. 
Pra utilizar este serviço basta ativa-lo no console do Firebase, no storage existe um ambiente para editar regras. Por exemplo, para que somente usuários autenticados possam ler e escrever arquivos deve-se adicionar a seguinte regra mostrada na figura 17.
Figura 17 - Regras do storage.
Fonte: produção própria
O storage da à possibilidade de criar diretórios, assim fazendo caminhos, algo muito parecido com outro serviço da Google, o Google Drive. Em nosso aplicativo proposto cada usuário tem um diretório próprio, nomeado pelo id do usuário, para indicar o caminho na hora de fazer o upload ao storage se deve a seguinte linha de código. 
storageReference = FirebaseStorage.getInstance().getReference( idU +"/" + UUID.randomUUID().toString());
Onde “idU” é a string com o id do usuário, o “/” cria o diretório e o “UUID.randomUUID()” da um nome aleatório a imagem.
O BaaS torna muito simples o upload e download de arquivos, como o pagamento é por uso é fácil de expandir a capacidade de armazenamento, sem a necessidade de fazer backups.
Também não é necessário se preocupar com o tipo de arquivo que está sendo armazenado, pois o Firebase Storage salva o tipo do arquivo, data de upload e modificação e outros metadados como a localização.
Na figura 18 mostra como que ao usar o serviço da Google poupa tempo, pois não a necessidade de manter servidores robustos com grandes bancos de dados para salvar arquivos, diminuindo muito o tempo de desenvolvimento.
Figura 18 - Exemplo de armazenamento sem o BaaS.
Fonte: produção própria
Realtime Database
O Firebase Realtime Database é um banco de dados noSQL hospedado na nuvem, os dados armazenados são sincronizados em tempo real com todos os clientes conectados, permitindo sua utilização em diferentes plataformas clientes.
Ele será utilizado para vinculação das imagens carregadas ao Firebase Storage aos usuários que as carregou, permitindo também sua visualização. 
Sobre seu funcionamento, pode-se criar coleções, para fim de melhor organização cada usuário tem sua coleção nomeada a partir do ID do usuário, dentro das coleções terão os objetos (em nosso projeto nomeadas randomicamente) onde será guardada a informação sobre os arquivos de cada usuário, cada objeto carrega a informação de uma imagem, sendo essas informações o id vinculado ao usuário e a url do arquivo gerada no storage. Demonstrado na figura 19.
Figura 19 - Realtime Database.
Fonte: produção própria
O código usado para criação de cada objeto para é o seguinte 
public Upload(String name, String imageUrl) {}
Foi utilizado também a API Picasso para a exibir as imagens relacionadas ao usuário. O Picasso permite o carregamento de imagens sem complicações, normalmente em poucas linhas de código. O código usado para exibir as imagens em uma ImageView foi o seguinte mostrado na Figura 20. 
Figura 20 - API picasso
Fonte: produção própria.
RESULTADOS E DISCUSSÃO
O trabalho visa demonstrar a eficácia do BaaS no desenvolvimento de software, mostrar as vantagens e desvantagens do seu uso através de um experimento, desenvolvendo uma aplicação android, usando serviços backend em nuvem.
O Experimento obteve sucesso na demonstração do backend as a service mostrando o ganho de eficiênciano desenvolvimento tal serviço, levando em conta o tempo e o nível de conhecimento sobre o assunto dos autores. tudo que era relacionado ao backend, foi testado, como a autenticação, o armazenamento de arquivos, a criação de álbuns com uso de um banco de dados. 
Também foi constatado um maior controle sobre informação no backend, o Google Clould Plataform dispõe de estatísticas e monitoramento sobre o uso do backend.
Apesar da eficácia do serviço, a Google não torna fácil a migração para outra prestadora de serviço de BaaS ou a migração para um ambiente próprio. Tornando a organização que utilizar este serviço sempre dependente da disponibilidade do provedor do serviço.
Também se deve atentar ao custo do serviço o que pode se tornar não benéfico em aplicações em que terão muitos usuários ativos ou que use muito armazenamento, no experimento realizado se utilizou o plano Blaze do Firebase, no qual a forma de pagamento é pagamento pelo uso, o Google disponibiliza um saldo em créditos inicial para a utilização do seu serviço, apenas o curto tempo de desenvolvimento e testes foi usado 420 reais deste saldo.
Com base nesta informação é recomendada em projetos menores a utilização de um plano pré-pago (pago por mensalidade) em que se têm certas limitações em cada serviço da plataforma, porém diminui o custo. E em projetos muito grandes onde se utilizara muito dos serviços talvez não seja viável sua utilização em relação ao custo para manter estes serviços funcionando.
Vantagens
Com base na utilização do serviço no experimento é possível agora comparar com as vantagens descritas na fundamentação e apontar outras observações sobre o as ferramentas do serviço. 
O tempo de desenvolvimento para a aplicação foi de duas semanas com aproximadamente 4 horas por dia. Neste tempo for possível testar na pratica os principais serviços do Firebase. Levando em consideração que os autores deste trabalho tinha conhecimento iniciante tanto em linguagem de programação java, quanto em serviços em nuvem, o ganho de eficiência notável, também deve-se atentar para fácil utilização do serviço, utilização feito através de interfaces visuais quase sem nenhuma utilização de códigos na parte do backend, sendo ideal para profissionais iniciantes.
Outro beneficio ao se utilizar estes serviços são as demais ferramentas de acesso a informações do uso de seus aplicativos através de relatórios e gráficos. Informações essas como os de usuários ativos como mostrado na figura 21.
Figura 21 - Gráfico de usuários ativos.
Fonte: produção própria
O Firebase também disponibiliza gráficos de quanto seu aplicativo gera de receita através da monetização, de gastos e armazenamento. Além de que, também mostra estatísticas de uso, como o tempo que cada usuário fica com a aplicação aberta, em qual tela do aplicativo ele gasta mais tempo e em qual plataforma é mais utilizado (Android, IOS, navegadores). 
O Firebase também conta com a função Crashlytics em que é possível receber informações de uso dos usuários, assim gerando relatórios de erros, assim tornando identificação de problemas mais fácil e sua resolução mais rápida, melhorando a otimização da aplicação. 
Dificuldades no desenvolvimento e utilização do BaaS
Algumas dificuldades surgiram no desenvolvimento do trabalho, tanto pelo fato de Backend as a Servise ser um serviço recente, como pelo desconhecimento sobre computação em nuvem e Java. Dentre essas dificuldades é possível destacar o desconhecimento na linguagem de programação Java e do desenvolvimento de um de um aplicativo na plataforma android, para a utilização e estudo do BaaS, outra dificuldade destaca-se pelo fato do Android e BaaS serem novas tecnologias em constante mudança, assim documentação em livros e fóruns muitas vezes estavam defasadas tornando as informações inutilizáveis em versões mais recentes do Android Studio e Firebase.
Apesar destes contratempos, esses problemas foram aos poucos solucionados com a ajuda do orientador, livros, fóruns e pesquisas na internet.
CONSIDERAÇÕES FINAIS
Os serviços de Backend as a Service compõem um mercado recente, assim existe pouco conteúdo acadêmico voltado ao assunto. Este trabalho desenvolvido através de natureza aplicada, com o objetivo de demonstrar na pratica a utilização e funcionamento.
Por meio de um experimento, contando com o desenvolvimento de uma aplicação mobile, foi possível identificar e testar as principais características do serviço.
Tal experimento mostrou as vantagens e desvantagens do BaaS, este serviço se mostrou extremamente acessível a desenvolvedores iniciantes, tornando o desenvolvimento bem mais rápido. Porém, devido a dependência com a provedora do serviço e o custo do serviço que pode aumentar muito com o uso, é necessário um estudo quando se pretende utiliza-lo em uma organização. 
Também foi constatado quão maleável o BaaS pode ser, utilizando uma API de terceiros e tendo cada serviço separado dos demais, tornando a plataforma hibrida uma opção para projetos e organizações, por exemplo utilizar o serviço de autenticação do provedor e um storage de arquivos próprio, através de uma nuvem privada ou Web Service, tornando o custo com o BaaS mais barato e ainda sim diminuindo o tempo de desenvolvimento. 
O desenvolvimento de tal experimento aborda temas pertinentes a tecnologia da informação como computação em nuvem e desenvolvimento de software. O objetivo do experimento era mostrar a viabilidade do BaaS e os benefícios de usa-lo no desenvolvimento de uma aplicação mobile.
O objetivo foi alcançado, mostrou não só que o BaaS é viável, mas também facilita e diminui drasticamente o tempo de desenvolvimento.
São possíveis melhorias ao aplicativo, uma delas é o uso de metadados de localização para a criação de diversos álbuns como proposto no protótipo, tal implementação não foi possível de ser feita neste trabalho devido ao pouco espaço de tempo tido no desenvolvimento deste trabalho. Outra melhoria se encontra na parte visual do aplicativo, correção de bugs e tratamento de erros, como o objetivo era mostras as funcionalidades do backend, houve pouco tempo para a otimização do frontend. Ambas as modificações tornariam o aplicativo apito a ser monetizado.
REFERÊNCIAS
ALMEIDA, Wellington José; CASTRO, Eric de Lima; VALJÃO, Eric de Lima; BUSTO, Lucas Vasconcelos. Desenvolvimento de aplicativo com uso das apis do Google para geração de bibliografia para ganho de tempo em produção de textos acadêmicos. Revista Computação Aplicada, v.4, n.1, 2015.
APPLE, 2016. About CloudKit Web Services. Disponível em <https://developer.apple.com/library/archive/documentation/DataManagement/Conceptual/CloudKitWebServicesReference/index.html>. Acesso em: 15 mar. 2019.
ARMBRUST, Michael et al. Above the Clouds: A Berkeley View of Cloud Computing. Califórnia. University of California at Berkeley, (2009).
BERNARDI, josé Vicente Elias; LADIM, Paulo Barbosa. Aplicação do sistema de posicionamento global (GPS) na coleta de dados; UNESP/Rio Claro, Lab. Geomatemática, Texto Didático 10, 31 pp. 2002.
BRINHOSA, Rafael Bosse. WSIVM: MODELO DE VALIDAÇÃO DE ENTRADAS DE DADOS PARA WEB SERVICES. 2010. TG (Mestrado) - Universidade Federal de Santa Catarina, Florianópolis, 2010.
CLOUDFLARE. Backend-as-a-Service vs. Serverless. 2018, Disponível em <https://www.cloudflare.com/learning/serverless/glossary/backend-as-a-service-baas/>. Acesso em: 13 mar. 2019.
COSTA, Igor de Oliveira. Modelo Para Analise de Disponibilidade de uma Plataforma Mobile Backend as a Service. TG (Pós-Graduação) - Universidade Federal de Pernambuco, Recife, 2015.
DEITEL, H.M. et al. C# - Como programar. São Paulo: Pearson Education, 2003.
ERL, Thomas. Web Services: SOA, SOAP, REStful, WSDL e UDDI. 2018. Disponível em: <https://www.devmedia.com.br/web-services/2873>. Acesso em: 20 fev. de 2019.
FARIAS, LEO. Backend-as-a-service: What It Is, How It Works, and Where It’s Going. 2018. Disponível em: <https://conceptainc.com/blog/backend-as-a-service-what-it-is-how-it-works-and-where-its-going/>.Acesso em: 17 de mar. de 2019.
FREY, Sören; HASSELBRING, Wilhelm. The cloudmig approach: Model based migration of software systems to cloud-optimized applications. International Journal on Advances in Software, 2011.
GETSOURCE. Os conceitos básicos de Back-end & Front-end. 2018. Disponível em: <https://getsource.com.br/blog/os-conceitos-basicos-de-back-end-front-end/>. Acesso em: 29 fev. de 2019.
GOOGLE CLOUD PLATFORM. COMPUTE Engine: Maquinas Virtuais estacionadas de alto desempenho. Disponível em: <https://cloud.google.com/compute/>. Acesso em: 20 fev. de 2019.
LANE, Kin. Overview Of The Backend as a Service (BaaS) Space. USA, E-book. 2013.
MACHADO, Everto Fabio da Silva. Desenvolvimento de Sistemas de Geolocalização e rastreamento para plataforma ANDROID – COMPASS; Universidade tecnológica federal do Paraná; Francisco Beltrão – PR, 2015.
MICROSOFT. O Que são Nuvens Publicas, Privadas e Hibridas: o que você realmente precisa saber. Disponível em: <https://azure.microsoft.com/pt-br/overview/what-are-private-public-hybrid-clouds/>. Acesso em: 25 fev. 2019. 
MULESOFT. What is API? (application programming interface). <https://www.mulesoft.com/resources/api/what-is-an-api>. Acesso em: 23 mai. 2018.
OPUS. COMPUTAÇÃO em nuvem: o que você realmente precisa saber. Disponível em: <https://www.opus-software.com.br/livro-computacao-em-nuvem-landing/>. Acesso em: 20 fev. 2019. 2015.
PETROUTSOS, Evangelos. Google Maps Power tools for maximizing the API, ed1, MC Graw Hill Education. 2014.
PRODANOV, Cleber Cristiano; FREITAS, Ernani Cesar de. METODOLOGIA DO TRABALHO CIENTÍFICO: Métodos e Técnicas da Pesquisa e do Trabalho Acadêmico. 2° ed. Novo Hamburgo – RS. Universidade Feevale, 2013.
SAMPAIO, Cleuton. Guia do Java Interprise edition 5: Desenvolvendo Aplicações Corporativas. Brasil: Brasport, 2007.
SLETER, Greg. What's an API and Why Do You Need One?, 2015 ,Disponível em: <http://www.govtech.com/applications/Whats-an-API-and-Why-Do-You-Need-One.html>. Acesso em: 13 Mar. 2019.
SVENNERBERG, Gabriel. Beginning Google Maps API 3. Ed. 3. Apress. 2010.
STOWE, Michael. Undisturbed: A guide to designin the perfect API. USA, E-book. 2015.
VADAMERI, Alexander Roberto; CORREIA, Rion Brattig. Estudo de caso no segmento gastronômico com a utilização da api do Google maps e Google analytics. RICA, vol. 3, n. 3, julho, 2009.
TAURION, CEZAR. Cloud Computing - Computação em Nuvem. Brasil: Brasport, 2009.
TAVARES, Daniel. Um modelo de integração baseado no uso de Proxy e Web Service para incorporação de recursos do WIMS ao ambiente virtual Moodle. TG (Pós-Graduação) - Universidade Federal do Ceara, Fortaleza, 2010.
APÊNDICE A – Quando é elaborado por você
Um apêndice é um trecho do trabalho que você mesmo fez, mas por qualquer motivo preferiu deixar separado do texto principal. Exemplo: um modelo de questionário que foi aplicado para coleta de dados.
Cada apêndice começa numa nova folha. Seu título deve ser escrito com letras normais, e deve ser precedido da palavra APÊNDICE, seguida da identificação por uma letra maiúscula (A, B, C, etc.) e um travessão, tudo em negrito, exatamente como neste modelo.
ANEXO A – Quando é de outra pessoa
Um anexo é um trabalho feito por outra pessoa que é muito importante para o seu texto, mas é longo demais para ser colocado como citação e por isso deve ser separado do texto principal. Exemplo: uma demonstração de teorema que é básica para o seu projeto, mas não foi você quem fez. Não deve ser um texto apenas “colado”: ele deve ser comentado e formatado de acordo com o restante deste documento.
Cada anexo começa numa nova folha. Seu título deve ser escrito com letras normais, e deve ser precedido da palavra ANEXO, seguida da identificação por uma letra maiúscula (A, B, C, etc.) e um travessão, tudo em negrito, exatamente como neste modelo.

Continue navegando