Você está na página 1de 12

1.

Introdução
Computação em Nuvem visa fornecer serviços através da Internet. A característica
principal da Computação em Nuvem é o pagamento sobre a demanda do uso, isto é, você
paga somente pelo que você usar. Computação em Nuvem permite acessar serviços Web
de forma fácil e eficiente. Para [1], “Computação em Nuvem, ou Cloud Computing do
inglês, tem relação com a virtualização de serviços e hardware, pois, por meio da
computação em nuvem, é possível uma pessoa utilizar equipamentos, software e
armazenamento indiferentemente do local em que se encontra, pois o acesso é todo feito
por meio da internet. Além disso, é possível escalonar os serviços de acordo com cada
necessidade, ou seja, de acordo com a demanda, é possível utilizar determinados espaços
e sistemas, uma determinada largura de banda e demais recursos computacionais sem a
necessidade de interação humana tudo acontece por meio de plataformas amigáveis para
utilização” [1]. O termo Computação em Nuvem surgiu em 2006 em uma palestra de Eric
Schmidt, da Google.

Nesta unidade, vamos aprofundar o estudo sobre Computação em Nuvem, vamos


falar sobre;

• Serviços
• Web Services
• Arquitetura Orientada a Serviço (SOA)
• Microsserviços
• Sistemas e banco de dados distribuídos.

Vamos começar o estudo falando sobre Serviços e posteriormente, falando sobre


Web Services.

2. Serviços e Web Services

Na Computação, um serviço consiste em uma unidade ou conjunto de funcionalidades


de um software que operam de forma independente, mas com o objetivo de concluir uma
tarefa especifica, tal como recuperar informações ou executar operações. Com o passar
dos anos, esses serviços começaram a ser invocados remotamente através da Internet. A
partir então, surge a Computação em Nuvem [5].
Já como fonte de estudo, indicamos a referência [1], que é um livro sobre
Computação em Nuvem. A seguir, vamos apresentar a definição de Computação em
Nuvem e logo em seguida, apresentar mais fontes de estudo para que você possa
aprofundar os estudos.

Na Computação em Nuvem, os serviços podem ser entendidos como; o


armazenamento de uma foto em drives, ouvi músicas em plataformas digitais, tais como,
Spotify e Deezer, ou até mesmo, assistir um filme no Netflix. Para [1], “Os serviços
podem ser interpretados como a disponibilização de uma função computacional de um
dado sistema para outro sistema, funcionando de forma independente, com interface
definida. O serviço, na computação, sempre será uma ação decorrente de algum pedido
ou solicitação por exemplo, uma pergunta sobre o telefone de alguém. A resposta será
uma prestação de serviço de informação. A flexibilização dos serviços oferecidos aos
clientes permite uma escalabilidade do que está disponível para que o cliente usufrua, de
acordo com suas programações de atividades. Em alguns momentos, o usuário pode ter
um pico de atividades e, em outros, uma redução desse fluxo, não necessitando de todas
as ferramentas solicitadas em um momento anterior.” [1].

Faça uma leitura da página 15 da referência [1] para aprofundar os estudos


serviços na Computação em Nuvem.

Web Service é um elemento marcante em Computação em Nuvem. Web Service


consiste em um conjunto de métodos que visa principalmente, a transferência de dados
de um sistema para outro. Para [13], “Web service é uma solução utilizada na integração
de sistemas e na comunicação entre diferentes aplicações. Através dos web services,
sistemas podem abrir suas portas (de maneira controlada) para o mundo, conseguindo se
comunicar com outros sistemas de uma maneira padronizada e independente de sua
plataforma ou linguagem de programação. Com webservices, é possível expor
funcionalidades de um sistema através de um protocolo padronizado. Os web services são
baseados em um conjunto de padrões da internet definidos pelo W3C, não requerem
configurações especiais nos firewalls, pois o protocolo http, o qual é o mais utilizado,
atua como transportador na comunicação entre cliente e web service”. [13]

Faça uma leitura também, da Seção “Web Services” da referência [2] para
aprofundar o estudo sobre Web Services. Leia também, a referência [13] para obter
mais informações sobre Web Services.
Ainda sobre Web Service, podemos dizer que Web Services consistem em um
conjunto de métodos e ferramentas tecnologias que visam transferir dados de um sistema
para outro, independentemente de linguagem de programação, sistema operacional ou
arquitetura. Para [2], “Um Web Service, também chamado de serviço web, é um
mecanismo que provê uma interface de comunicação que permite aos clientes interagir
com computadores servidores de forma simplificada, não havendo a complexidade da
programação distribuída, como acontece nos sistemas que usam RMI. Em um sistema
orientado a serviços, os clientes acessam funcionalidades em um servidor web por meio
de requisições e respostas formatadas em XML, JSON ou outros protocolos. Além disso,
geralmente essas mensagens são transmitidas usando o protocolo HTTP.” [2].

Você também pode encontrar um estudo aprofundado na referência [3].

Figura 1: ilustração de Web Service

Fonte: extraído de [3]

Você também pode encontrar um bom estudo sobre Web Services na


referência [4].
Como mencionado anteriormente, Web Service é um serviço Web que visa
transferir dados de um sistema para outro. Para [2], “Um serviço Web é uma coleção de
protocolos e padrões públicos utilizados para trocar informações entre aplicações e
sistemas. As aplicações de software são diversificadas, utilizam diversas linguagens de
programação e executam em diferentes plataformas. Note que, para manter a
comunicação entre diversos aplicativos e sistemas, é necessário que eles se conheçam,
como acontece com os sistemas que usam chamada remota de métodos” [2].

Faça uma leitura a partir da página 117 da referência [6] para aprofundar
os estudos sobre Web Services. Faça uma leitura também, a partir da página 393 da
referência [7] para aprofundar os estudos sobre Web Services.

O próximo assunto que vamos estudar, é sobre SOA (Arquitetura orientada a


serviço), que é a apresentado na seção seguinte.

3. Arquitetura orientada a serviço SOA

SOA é o acrônimo de Services-Oriented Architecture, em português “Arquitetura


Orientada a Serviço”. SOA é uma arquitetura aplicada a softwares que visam fornecer
serviços. No SOA as funcionalidades dos softwares devem ser disponibilizadas em forma
de serviço acessíveis via Web Services. Para [6], “SOA é um paradigma que trabalha com
recursos distribuídos, orientados como serviços. Temos, então, as aplicações e suas
respectivas funcionalidades. Essas funcionalidades são projetadas como serviços
fracamente acoplados — ou seja, em SOA, trabalhamos com o conceito de independência
entre os serviços. Logo, a SOA serve para modelar e implantar funcionalidades em
formato de serviços.” [6].

Na Arquitetura Orientada a Serviço é utilizado

• XML: Um XML (Extensible Markup Language) visa o compartilhamento


de informações através da Web. O principal objetivo do XML é definir
padrões e formatos para dados (documentos que contém dados). As
principais características de um XML é: Simplicidade, Legibilidade,
Possibilidade de criação de tags sem restrições. A grande vantagem de um
arquivo XML é facilidade do compartilhamento de dados. O
armazenamento de dados é realizado no formato de texto, este fato facilita
a leitura dos dados.
• Web Services Description Language (WSDL): Linguagem para
descrever serviços.
• SOAP (Simple Object Acess Protocol): Este protocolo utiliza arquivos
XML para simplificar a comunicação entre as aplicações e também para
simplificar a realização de serviços através via HTTP. A ideia principal do
SOAP é facilitar a troca de dados entre as aplicações. Assim, este
protocolo não impõe ou define regras, modelo de programação, linguagem
de programação, arquitetura ou qualquer aspecto semântico da
implementação. Este fato é importante e muito notório porque o serviço
pode ser “prestado” sem qualquer arquitetura, linguagem de programação
ou outro aspecto de divergência de tecnologia, isto é, permitindo a
interoperabilidade e a intercomunicação entre diferentes computadores.
Essa facilidade se torna possível através do uso do XML. Por esse motivo,
o SOAP se tornou muito popular no desenvolvimento de aplicações Webs.
Figura 2: SOA

Fonte: extraído de [14]

Faça uma Leitura da Referência [6] para aprofundar o estudo em SOA.

Programadores que criam softwares voltados para SOA fazem amplo uso da
linguagem XML para descrição dos tipos e estruturas de dados em SOA. Também
baseada em XML, a Web Services Description Language (WSDL) normalmente descreve
os serviços, enquanto o protocolo SOAP descreve os protocolos de comunicação.

Continuando o estudo sobre serviços, o próximo assunto que iremos estudar é a


arquitetura de Microsserviços é apresentado na próxima seção.

4. Microsserviços

Microsserviços é uma abordagem de arquitetura, isto é, uma arquitetura de


software que visa fornecer serviços. Nesta arquitetura o software consiste em pequenos
serviços independentes que se comunicam. Para [9], “Microsserviços são uma abordagem
arquitetônica e organizacional do desenvolvimento de software na qual o software
consiste em pequenos serviços independentes que se comunicam usando APIs bem
definidas. Esses serviços pertencem a pequenas equipes autossuficientes. As arquiteturas
de microsserviços facilitam a escalabilidade e agilizam o desenvolvimento de aplicativos,
habilitando a inovação e acelerando o tempo de introdução de novos recursos no
mercado.” [9].

Uma boa fonte de estudo pode se encontrada na referência [10], onde é


apresentado a definição de Microsserviços e logo em seguida, é realizada uma
comparação das as arquiteturas convencionais com a arquitetura Microsserviços que
visam oferecer serviços.

Segundo [9], Características dos Microsserviços são:

• Autônomos: Cada serviço do componente de uma arquitetura de microsserviços


pode ser desenvolvido, implantado, operado e escalado sem afetar o
funcionamento de outros serviços. Os serviços não precisam compartilhar nenhum
código ou implementação com os outros serviços. Todas as comunicações entre
componentes individuais ocorrem por meio de APIs bem definidas [9].
• Especializados: Cada serviço é projetado para ter um conjunto de recursos e é
dedicado à solução de um problema específico. Se os desenvolvedores
acrescentarem mais código a um serviço ao longo do tempo, aumentando sua
complexidade, ele poderá ser dividido em serviços menores [9].

Faça uma leitura da referência [9] para aprofundar o conhecimento em


microsserviços.

Microsserviços diferente das arquiteturas de softwares convencionais, é uma


arquitetura de software voltada para serviços. Como benefícios dessa arquitetura
podemos mencionar:

• Agilidade: “Os microsserviços promovem uma organização de equipes


pequenas e independentes que são proprietárias de seus serviços. As
equipes atuam dentro de um contexto pequeno e claramente compreendido
e têm autonomia para trabalhar de forma mais independente e rápida. O
resultado é a aceleração dos ciclos de desenvolvimento” [9].
• Escalabilidade flexível: “Os microsserviços permitem que cada serviço
seja escalado de forma independente para atender à demanda do recurso
de aplicativo oferecido por esse serviço. Isso permite que as equipes
dimensionem corretamente as necessidades de infraestrutura, meçam com
precisão o custo de um recurso e mantenham a disponibilidade quando um
serviço experimenta um pico de demanda” [9].
• Fácil implantação: “Os microsserviços permitem a integração e a entrega
contínuas, o que facilita o teste de novas ideias e sua reversão caso algo
não funcione corretamente. O baixo custo de falha permite a
experimentação, facilita a atualização do código e acelera o tempo de
introdução de novos recursos no mercado” [9].
• Liberdade tecnológica: “As arquiteturas de microsserviços não seguem
uma abordagem generalista. As equipes são livres para escolher a melhor
ferramenta para resolver problemas específicos. O resultado é que as
equipes que criam microsserviços podem optar pela melhor ferramenta
para cada tarefa” [9].
• Código reutilizável: “A divisão do software em módulos pequenos e bem
definidos permite que as equipes usem funções para várias finalidades. Um
serviço criado para uma determinada função pode ser usado como
componente básico para outro recurso. Isso permite que os aplicativos
sejam reutilizados, pois os desenvolvedores podem criar recursos sem
precisar escrever código” [9].
• Resiliência: “A independência do serviço aumenta a resistência a falhas
do aplicativo. Em uma arquitetura monolítica, a falha de um único
componente poderá causar a falha de todo o aplicativo. Com os
microsserviços, os aplicativos lidam com a falha total do serviço
degradando a funcionalidade, sem interromper todo o aplicativo” [9].

Como fonte de estudo sobre Microsserviços indicamos as referências [1, 8, 9].

5. Banco de Dados Distribuídos

Banco de dados distribuídos é muito utilizado em aplicações onde sistemas de


banco de dados convencionais não conseguem armazenar grande quantidades de dados.
Banco de Dados Distribuídos é um sistema composto por vários Nodes e em cada Node
há um sistema de armazenamento.

Banco de Dados Distribuídos é um conceito de armazenamento de banco de dados


usados em diversas aplicações atualmente. Para [11], “Um sistema de banco de dados
distribuído (BDD) consiste em uma relação de nós, cada qual podendo participar na
execução de transações que acessam dados em um ou mais nós. Em um sistema de banco
de dados distribuído, o banco de dados é armazenado em diversos computadores (nós).
Os computadores, em um sistema distribuído, comunicam-se uns com os outros por
intermédio de vários meios de comunicação, tais como: redes de alta velocidade, redes
sem fio ou linhas telefônicas, eles não compartilham a memória principal e o relógio.”
[11]. A figura a seguir, ilustra a diferença de um banco de dados convencional para um
banco de dados distribuídos.
Figura 3: Sistema de Banco e dados distribuídos

Fonte: extraído de [12]

Como fonte de estudo, indicamos as referências [11, 12] para o estudo de Sistemas
de Banco de Dados Distribuídos.

Ainda em [11], consta: “A diferença principal entre sistemas de banco de dados


centralizados e distribuídos é que no primeiro os dados estão localizados em um único
lugar, enquanto que no outro os dados residem em diversos locais. Esta distribuição de
dados é motivo de muitas preocupações e dificuldades.”

5.1.Vantagens de um Sistema de Banco de Dados Distribuído

As vantagens de um Sistema de Banco de Dados Distribuídos são inúmeras. Para [12]


são:
• A confiabilidade assim como a disponibilidade visam ao funcionamento do
sistema mesmo com falhas, mas sem violar a consistência do banco de
dados.
• Autonomia local, um departamento pode controlar seus dados (já que é o
mais familiarizado com eles).
• O aumento de desempenho é uma vantagem em um sistema de banco de
dados distribuídos, a consulta pode ser subdividida e realizada
paralelamente.
• Maior disponibilidade: uma falha em um banco de dados afetará somente
um fragmento, em vez do banco de dados inteiro.

Faça uma leitura da referência [12] para aprofundar o conhecimento em nas


características de um sistema distribuído.

5.2.Falhas em Sistemas Distribuídos

Em questão de falhas, em sistemas de banco de dados distribuídos podem ocorrer


as mesmas falhas que um sistema de banco de dados convencional. Para [11], “Em um
sistema de banco de dados distribuído pode sofrer os mesmos tipos de falhas que ocorrem
em um sistema centralizado, porem existem falhas adicionais que podem ocorrer em um
(BDD), tais como: falha de comunicação entre eles, perda de mensagens e o
particionamento da rede, cada um desses problemas deve ser considerado no projeto de
recuperação de um BDD. Para um sistema ser robusto, ele precisa detectar qualquer uma
dessas falhas, reconfigurar-se enquanto a falha é recuperada.”

Faça uma leitura das referências [11, 12] para aprofundar o conhecimento
em sistemas de banco de dados distribuídos.

6. Conclusão

Nesta unidade, estudamos os principais conceitos de Computação em Nuvem,


como Web Service e SOA. Estudamos também, Microsserviços e Banco de Dados
Distribuídos. Para finalizar o nosso estudo, como conclusão, podemos concluir que o foco
da Computação em Nuvem é fornecer serviços. Podemos concluir também que
Computação em Nuvem usa muito Computação Distribuída. Como também, sistemas
distribuídos podem ser implementados na Nuvem.

Referência

[1] SILVA, F.R.; SOARES, J.A.; SERPA, M.D.S.; AL., E. Cloud Computing. [Digite o
Local da Editora]: Grupo A, 2020. 9786556900193. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9786556900193/. Acesso em: 25 Jan
2022

[2] CARVALHO,S. A. L. WEB SERVICES E COMPUTAÇÃO EM NUVEM disponível


em:
https://laureatebrasil.blackboard.com/bbcswebdav/institution/laureate/conteudos/CTI_S
ISDIS_20/unidade_4/ebook/index.html Acessado em: 26/01/2022

[3] AUGUSTO, C. Web Services – O que é, como funciona e os protocolos SOAP e


REST, disponível em: http://ninjadolinux.com.br/web-services-soap-e-rest/ acessado em
28/01/2022

[4] THOMAS DevMedia Web Services disponível em:


https://www.devmedia.com.br/web-services/2873 acessado em 29/01/2022

[5] RedHat - O que é arquitetura orientada a serviços (SOA)? - disponível em:


https://www.redhat.com/pt-br/topics/cloud-native-apps/what-is-service-oriented-
architecture Acessado em 20/01/2022

[6] ZENKER, A.M.; SANTOS, J.C.D.; COUTO, J.M.C.; AL., E. Arquitetura de


sistemas. [Digite o Local da Editora]: Grupo A, 2019. 9788595029767. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788595029767/. Acesso em: 29 Jan
2022

[7] COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas


Distribuídos. [Digite o Local da Editora]: Grupo A, 2013. 9788582600542. Disponível
em: https://integrada.minhabiblioteca.com.br/#/books/9788582600542/. Acesso em: 29
Jan 2022
[8] Erl, T., Web Services - https://www.devmedia.com.br/web-services/2873, 2010
Acessado em 29/01/2022
[9] Amazon O que são microsserviços? disponível em:
https://aws.amazon.com/pt/microservices/, acessado em: 29/01/2022
[10] Geekhunter - O que são microsserviços e como funcionam?, 16/07/2020 -
disponível em: https://blog.geekhunter.com.br/arquitetura-de-microsservicos-x-
arquitetura-monolitica/ Acessado em 29/01/2022
[11] Roniere, O que é um Banco de Dados distribuído? disponível em:
https://www.devmedia.com.br/o-que-e-um-banco-de-dados-distribuido/24762
acessado em: 29/01/2022
[12] ROSÁRIO, L. G. - O que é Banco de Dados Distribuído? disponível em:
https://imasters.com.br/banco-de-dados/o-que-e-banco-de-dados-distribuido,
acessado em 29/01/2022
[13] Polo, Gabriel – O que é um Web Services - disponível em:
https://medium.com/@gabrielpolo/o-que-%C3%A9-um-webservice-c5104d847a85
Acessado em: 29/01/2022
[14] Eduardo Santana - Descubra toda verdade sobre SOA - disponível em:
http://bufallos.com.br/bg_br/descubra-toda-verdade-sobre-soa/ Acessado em
29/01/2022

Você também pode gostar