66
Raquel Figueiredo Martins Conceção de arquiteturas lógicas para aplicações em cloud computing Pré-dissertação de Mestrado Mestrado integrado em Engenharia e Gestão de Sistemas de Informação Trabalho efetuado sob a orientação do Professor Doutor Ricardo Jorge Silvério de Magalhães Machado fevereiro de 2018

Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

Raquel Figueiredo Martins

Conceção de arquiteturas lógicas para

aplicações em cloud computing

Pré-dissertação de Mestrado

Mestrado integrado em Engenharia e Gestão de

Sistemas de Informação

Trabalho efetuado sob a orientação do

Professor Doutor Ricardo Jorge Silvério de

Magalhães Machado

fevereiro de 2018

Page 2: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

ii

RESUMO

Tem-se assistido a um crescimento na adoção do paradigma cloud computing

pelas empresas no que toca à oferta de software, o que obriga as empresas a

executar refactoring às suas soluções. Variadas vezes se verifica que nesta tarefa

especificidades da cloud não são consideradas na fase de conceção, mas apenas

em fases mais tardias, como deployment ou manutenção. De igual forma, o

paradigma cloud e iniciativas recentes que o utilizam, como Indústria 4.0, são

caracterizados por necessidades de integração de dados e sistemas, que também

devem ser endereçados na fase de conceção.

A utilização de arquiteturas lógicas de software pauta-se por estruturar o

comportamento funcional de soluções informáticas, mas onde o contexto cloud

veio alterar como estas devem ser concebidas, nomeadamente na inclusão de

mecanismos de disponibilidade, escalabilidade/ elasticidade, segurança,

deployment, etc.

Esta dissertação propõe-se a realizar investigação sobre as características e

requisitos de uma solução nativa para cloud, e a inclusão de funcionalidades

relativas a boas práticas de desenvolvimento de aplicações para cloud, na fase de

conceção de arquiteturas lógicas. Serão também estudadas as normas de

interoperabilidade e como as incluir na conceção das arquiteturas lógicas, de

forma a enfrentar os desafios de integração que comummente surgem ao

desenvolver aplicações de cloud.

Palavras-Chave: Interoperabilidade, Arquitetura Lógica, Cloud Computing,

Indústria 4.0, Internet of Things

Page 3: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

iii

ABSTRACT

A significant increase in the adoption of the cloud computing paradigm by software

providing companies has been noted. This forces businesses to perform refactoring

on their solutions. It has also been found that, in this task, cloud specifics are not taken

into consideration in the early stages, but only in later stages, such as deployment or

maintenance. Likewise, the cloud paradigm and recent initiatives that utilize it, such as

industry 4.0, are marked by data and system integration needs, that must also be

addressed in the design stage.

The use of logical software architectures is based on structuring the functional

behaviour of computer solutions, but where the cloud context has changed how they

should be conceived is, namely, in the inclusion of mechanisms of availability,

scalability/ elasticity, security, deployment, etc.

This dissertation proposed to carry an investigation about the characteristics and

requirements of a native solution for the cloud and the inclusion of functionalities

related to good development practices for the cloud in early phases of conception of

logical architectures. Interoperability rules and how to include them in the design of

logical architectures will also be studied in order to address the integration challenges

that commonly arise when developing cloud applications.

KEYWORDS: Interoperabilidade, Arquitetura Lógica, Cloud Computing Indústria 4.0,

Internet of Things

Page 4: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de
Page 5: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

v

ÍNDICE

Resumo ....................................................................................................................... ii

Abstract ...................................................................................................................... iii

Lista de Figuras ......................................................................................................... vii

Lista de Tabelas ......................................................................................................... ix

Lista de Abreviaturas, Siglas e Acrónimos ................................................................. xi

1. Introdução ............................................................................................................ 1

1.1 Contextualização ........................................................................................... 1

1.2 Estrutura do documento ................................................................................ 4

2. Objetivos e Abordagem de Investigação.............................................................. 5

2.1 Objetivos ....................................................................................................... 5

2.2 Abordagem de Investigação .......................................................................... 5

3. Análise do “Estado da Arte” ................................................................................. 9

3.1 Análise de linguagens de modelação ............................................................ 9

3.1.1 Introdução ............................................................................................... 9

3.1.2 UML (Unified Modeling Language) ......................................................... 9

3.1.3 SoaML (Service-oriented Architecture Modeling Language) ................. 11

3.2 Arquiteturas ................................................................................................. 12

3.2.1 Introdução ............................................................................................. 12

3.2.2 Conceitos .............................................................................................. 12

3.3 Interoperabilidade ........................................................................................ 17

3.3.1 Introdução ............................................................................................. 17

3.3.2 Conceitos .............................................................................................. 17

3.3.3 Níveis de Interoperabilidade ................................................................. 19

3.3.4 Barreiras da Interoperabilidade ............................................................. 20

3.3.5 Preocupações da Interoperabilidade .................................................... 21

3.3.6 Problemas da Interoperabilidade .......................................................... 22

3.3.7 Perspetiva do futuro .............................................................................. 23

3.4 Cloud Computing ......................................................................................... 24

3.4.1 Introdução ............................................................................................. 24

Page 6: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

vi

3.4.2 Conceitos .............................................................................................. 24

3.4.3 Características ...................................................................................... 25

3.4.4 Modelos de serviços ............................................................................. 26

3.4.5 Modelos de implementação .................................................................. 27

3.4.6 NIST Cloud Computing Reference Architecture.................................... 28

3.4.7 Aplicação nativa da cloud ..................................................................... 30

3.5 Indústria 4.0 ................................................................................................. 31

3.5.1 Introdução ............................................................................................. 31

3.5.2 A origem do conceito ............................................................................ 31

3.5.3 CPS (Cyber-Physical System) .............................................................. 33

3.5.4 IoT (Internet of Things) ......................................................................... 33

3.5.5 Fábricas Inteligentes ............................................................................. 35

4. Planeamento do Trabalho .................................................................................. 37

5. Conclusões ........................................................................................................ 39

Bibliografia ................................................................................................................ 41

Apêndice – Matriz de Conceitos ............................................................................... 49

Page 7: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

vii

LISTA DE FIGURAS

Figura 1 - Metodologia utilizada na temática em estudo (adaptado de Vaishnavi &

Kuehler) ...................................................................................................................... 6

Figura 2 - Arquitetura NIST do modelo Cloud Computing ........................................ 28

Page 8: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de
Page 9: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

ix

LISTA DE TABELAS

Tabela 1 - Calendarização das tarefas ..................................................................... 37

Page 10: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de
Page 11: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

xi

LISTA DE ABREVIATURAS, SIGLAS E ACRÓNIMOS

4SRS 4-Step Rule Set

SOA Service-oriented Architecture

IoT Internet of Things

SoaML Service-oriented Architecture Modeling Language

ISO International Organization for Standardization

IEEE Institute of Electrical and Electronics Engineers

UML Unified Modeling Language

CPS Cyber-Physical Systems

Page 12: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de
Page 13: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

1

1. INTRODUÇÃO

Este capítulo engloba uma introdução ao tema desta dissertação, a sua

contextualização e motivação. Posteriormente, são apresentados os casos de estudo

que serão analisados e os principais objetivos subjacentes. Por fim, é descrita a

estrutura do documento.

1.1 Contextualização

Ao longo dos últimos anos as tecnologias de informação têm vindo a desenvolver-se

de tal maneira que determinam o modo como as organizações evoluem e os

processos de negócio se desenvolvem.

O mercado está cada vez mais voltado para a eficiência tecnológica. A dimensão, a

diversidade e a complexidade dos sistemas de software requerem novas abordagens

de engenharia de software para a construção dos mesmos [1]. Uma dessas

abordagens é o uso de arquiteturas, que recomendam que a arquitetura e a

infraestrutura de TI sejam alinhadas com a organização e o controlo de processos de

negócio. Estas são projetadas de acordo com uma visão estratégica expressada numa

arquitetura empresarial [2], de maneira a definir e controlar as interfaces e a integração

de todos os componentes do sistema [3]. Desta forma, é possível reutilizar

sistematicamente conhecimento e componentes ao desenvolver uma arquitetura de

referência concreta [1].

O paradigma cloud computing surge da necessidade de utilizar eficientemente os

recursos para atingir excelência operacional [3].

A inclusão de plataformas de cloud computing pretende racionalizar os custos, investir

e otimizar de forma eficiente, procurando satisfazer de imediato as necessidades

computacionais de cada aplicação ou serviço. Disponibiliza um modelo de serviços ao

consumidor para que possa manipular informações pela internet, de acordo com as

suas necessidades atuais. Contudo, o outsourcing de tecnologias de informação traz

vários desafios que serão abordados no decorrer do projeto. Assim, as incertezas

sobre a migração para cloud computing podem ter um impacto negativo na adoção

desta tecnologia [4].

Page 14: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

2

No entanto, a adoção desta tecnologia oferece vantagens competitivas para melhorar

a agilidade, o custo, a qualidade e a rapidez dos sistemas. A interoperabilidade é um

atributo crítico do sistema de software que permite a interação entre os diferentes

sistemas [5].

A interoperabilidade e a normalização têm um enorme impacto na adoção e uso da

cloud. A normalização suporta aplicações de negócios desenvolvidas de forma

complexa na cloud, de maneira a ser interoperável e garantir a integração de dados e

aplicações entre as clouds. Os utilizadores têm uma ampla gama de opções na cloud;

não há bloqueio de fornecedores, portabilidade, capacidade de usar os serviços em

cloud de vários fornecedores e, de forma transparente, utilizar os recursos de um

centro de dados existente numa organização.

Por outro lado, também ajuda os fornecedores a disponibilizar serviços adicionais de

nível superior como a orquestração, além dos serviços normais da cloud necessários

pelos utilizadores. A normalização abre o caminho para a realização de verdadeiros

potenciais de cloud computing [6].

Com o advento das tecnologias emergentes que constituem os sistemas, como

objetos inteligentes e a Internet of Things, facilitaram o nascer da era dos serviços

vivos e da digitalização global [5], também denominada por Indústria 4.0.

A Indústria 4.0 concebe a oportunidade, sem precedentes, para o sucesso

transformacional, exigindo um futuro de produção ágil e acessível alimentado por

facilitadores de tecnologia, que vão de encontro a paradigmas como a Internet of

Things, Cloud Computing, dispositivos móveis, entre outros. Esta realidade

promissora tem o potencial de mudar tudo. A visão inteligente da Indústria 4.0 alcança

uma visão holística das operações de fabricação. Claramente, isso só pode acontecer

ao integrar dados de várias fontes diferentes com rapidez e flexibilidade [7],

promovendo o conceito cloud computing.

Durante a fase de conceção muitos projetos têm dificuldades em conceber

arquiteturas devidamente preparadas para ambientes cloud, devido a falhas na

identificação de comportamentos de software aquando instalados na cloud, a má

definição de requisitos, a especificação de serviços consoante as características,

entre outros. Deste modo, apenas em fases mais avançadas de implementação no

projeto essas falhas são identificadas, sendo que os custos de redefinição

arquiteturais e da reescrita de código são muito altos. Uma forma utilizada para

prevenir essas práticas refere-se à utilização de padrões, que clarifica os trade-offs

Page 15: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

3

envolvidos na utilização da cloud e ao mesmo tempo permitem reduzir o risco e o

custo ao proteger a aplicação da maior parte da complexidade. Propõe-se estudar

abordagens que utilizam padrões de arquiteturas cloud.

O tema desta dissertação surgiu no sentido de introduzir as boas práticas de

desenvolvimento de aplicações da cloud, aquando a conceção de arquiteturas lógicas.

Será realizado em colaboração com as equipas de trabalho EPMQ (Engineering

Process Maturity and Quality), no âmbito da associação CCG/ ZGDV – Centro de

Computação Gráfica, onde serão abordados dois casos de estudo, cujos desafios são

de naturezas distintas.

O caso de estudo 1 visa o desenvolvimento de uma plataforma de integração e

interoperabilidade de serviços, em modelo de cloud computing, suportada por uma

arquitetura SOA (Servie-oriented Architecture) que integrará os serviços, focando-se no

setor têxtil. Enquanto o caso de estudo 2 pretende especificar, conceber e implementar

o sistema, assente numa plataforma orientada a serviços (SOA), em modelo cloud

computing, direcionado para a indústria dos materiais de construção, mais

particularmente, o setor do cimento. A adoção do paradigma SOA tem como objetivo

capacitar o sistema para reagir de forma adequada e flexível a constantes alterações

de processos de negócios, através da reconfiguração e introdução de novas

funcionalidades.

O principal objetivo desta dissertação passa por propor abordagens baseadas na

conceção de arquiteturas lógicas, onde as questões de cloud computing, e algumas

de interoperabilidade que daí emergem, sejam endereçadas na fase de conceção. O

método 4SRS (Four Step Rule Set) vai ser alvo de análise nesta dissertação, dado

que permite derivar arquiteturas baseadas em modelos de requisitos, nomeadamente

UML (Unified Modeling Language). Para o efeito serão analisados os casos de estudo

1 e 2 para soluções cloud, onde foram utilizadas arquiteturas lógicas, e se conclui que

os modelos utilizados não chegam para resolver problemas ligados à temática da

cloud, havendo uma necessidade de incorporar este tipo de temáticas no início da

especificação.

Ambos os projetos são caracterizados com integração e interoperabilidade com

sistemas/ dispositivos terceiros, que também devem ser tratados de forma específica

no contexto cloud. É com base neste contexto que se pretende trabalhar, focando

principalmente nas abordagens baseadas na conceção de arquiteturas lógicas dos

projetos.

Page 16: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

4

1.2 Estrutura do documento

De maneira a clarificar os desafios endereçados neste projeto, o presente documento

foi estruturado da seguinte maneira:

O primeiro capítulo, a Introdução, apresenta a contextualização do tema a ser

estudado, a sua motivação, os casos de estudo que serão analisados, os principais

objetivos subjacentes, assim como a estrutura do documento, de forma sintetizada.

No segundo capítulo, Objetivos e Abordagem Metodológica, são descritos os objetivos

assim como a abordagem metodológica utilizada no âmbito do projeto, bem como as

técnicas de recolha de informação utilizadas.

O terceiro capítulo, a Análise do “Estado da Arte”, inclui todos os conceitos e áreas

envolventes na dissertação. Primeiramente, são abordadas as linguagens de

modelação que irão ser utilizadas no projeto, UML (Unified Modeling Language) e

SoaML (Service-oriented Architecture Modeling Language). De seguida, são

apresentados vários conceitos relacionados com arquiteturas, continuando com várias

definições de interoperabilidade, seguindo com um resumo sobre os níveis de

interoperabilidade existentes, as barreiras que a condicionam, juntamente com as

possíveis soluções para serem ultrapassadas, as preocupações, bem como os

problemas que possam surgir, finalizando com dois conceitos futuristas para poder

atingir a interoperabilidade perfeita. Procede-se com definições ligadas ao conceito

cloud computing, apresentam-se as características, os modelos de serviços e de

implementação, a arquitetura de referência NIST e finaliza-se com a caracterização

de uma aplicação nativa da cloud. Por último, aborda-se o conceito da Indústria 4.0,

a sua origem e as áreas relacionadas com o paradigma, como a Internet of Things.

O quarto capítulo, Planeamento do Trabalho, descreve as tarefas que irão ser

realizadas durante o projeto, bem como a sua calendarização.

No quinto capítulo, Conclusões, reúnem-se os resultados obtidos com as respetivas

discussões.

O sexto capítulo, Referências, contem todas as referências bibliográficas que foram

consultadas no decorrer do projeto e termina com a matriz de conceitos.

Page 17: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

5

2. OBJETIVOS E ABORDAGEM DE INVESTIGAÇÃO

2.1 Objetivos

Esta dissertação surgiu no sentido de introduzir as boas práticas de desenvolvimento

de aplicações cloud, aquando a conceção de arquiteturas lógicas. Cloud computing

pretende investir e otimizar de forma eficiente, reduzir a complexidade do lado do

cliente e os requisitos gerais, bem como, racionalizar os custos. Cada sistema é único

e a arquitetura é uma ferramenta indispensável para controlar a complexidade da

organização e dos seus processos.

O primeiro objetivo desta dissertação é fazer um levantamento das práticas cloud e

dos seus padrões. Terão que ser identificadas um conjunto de práticas e padrões

cloud no Four Step Rule Set e analisar quando é que as arquiteturas e o Four Step

Rule Set incorporam esses padrões.

É necessário analisar os padrões de interoperabilidade em ambientes cloud e

especificar os seus serviços, entre a cloud e os outros sistemas.

2.2 Abordagem de Investigação

No contexto de um projeto de investigação, um método refere-se a uma abordagem

organizada para resolução de problemas que inclui: recolha de dados, formulação de

uma hipótese ou proposição, teste da hipótese, interpretação de resultados e

afirmando conclusões que podem ser avaliadas de forma independente por outros [8].

Para a elaboração deste projeto é necessário realizar investigação, nomeadamente

para perceber o âmbito do problema e fazer pesquisas bibliográficas que se adequem

ao tema em estudo. Após este trabalho, é necessário fazer o design das arquiteturas

e propor as abordagens baseadas na conceção de arquiteturas lógicas. A abordagem

Design Science Research (DSR) foi a selecionada para atingir os objetivos propostos

neste projeto de investigação. Adequa-se à área de sistemas de informação e

possibilita fomentar o conhecimento que possa ser aplicado ao problema real. Para

alcançar o resultado final e para que seja possível a sua aplicação, será tido em conta

o referencial adaptado de Vaishnavi & Kuehler [9].

Page 18: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

6

Sintetiza as atividades sequenciais, bem como a metodologia a adotar e os resultados

esperados para cada uma, ajudando a ter uma melhor perceção de como decorreu o

processo de investigação, desde o estabelecimento da temática em estudo até à

entrega da dissertação.

A figura ilustrada acima sistematiza as principais etapas que constituirão a estratégia

de investigação a seguir neste projeto de investigação.

Inicialmente, é necessário identificar o problema da investigação a conduzir, tal como

as questões que se pretendem abordar, qual o problema a resolver, como proceder

para o resolver e qual a melhor técnica a adotar para alcançar os objetivos definidos.

Para desenvolver o trabalho de investigação ficou definida uma revisão de literatura

baseada no desenvolvimento teórico de Webster e Watson [10] que irá dar origem à

Matriz de Conceitos. Permitirá fomentar conceitos relacionados com linguagens de

modelação, arquiteturas, a técnica Four Step Rule Set, interoperabilidade, cloud

computing, indústria 4.0 e Internet of Things, através da análise de livros, artigos

científicos, dicionários, journals, websites e dissertações já realizadas neste âmbito.

Para que tudo decorra com sucesso, é fundamental que se usem fontes fidedignas

Conscientização do problema

Sugerir solução

Desenvolver e implementar a

solução

Discutir a solução

Conclusões

Proposta e

Tentativa do

Projeto

Apresentação da

arquitetura lógica com

base no paradigma

cloud computing e na

interoperabilidade

Análise dos resultados

obtidos e dos

conhecimentos

adquiridos

Fases do

Processo Fluxos de

Conhecimento

Resultados

esperados

Conhecimento das

Operações e

Limitação

Metodologia

a adotar

Revisão bibliográfica (ex. cloud computing, arquiteturas, 4SRS, entre outros); Análise das arquiteturas dos projetos; Proposta da abordagem.

Revisão bibliográfica (ex. cloud computing, arquiteturas, 4SRS, entre outros); Análise das arquiteturas dos projetos; Validar as abordagens nos dois casos de estudo.

Elaborar discussão.

Figura 1 - Metodologia utilizada na temática em estudo (adaptado de Vaishnavi & Kuehler) [9]

Page 19: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

7

como o Scopus, IEEE Electronic Library, Science Direct, Web of Science, Google

Scholar, e RepositoriUM. É uma atividade fulcral para a elaboração desta dissertação,

uma vez que permite aprofundar conceitos relacionados com o tema e desta maneira

clarificar dúvidas que possam existir. De seguida, é proposta uma solução para o

problema, com base nos conhecimentos retirados da revisão de literatura [11], que

passa por propor as abordagens com base na conceção das arquiteturas lógicas. Na

fase de desenvolvimento e implementação da solução, o objetivo é concretizar a

proposta definida na etapa anterior. Serão aplicados os casos de estudo, com o intuito

de experimentar e avaliar a aplicabilidade do método [12]. Como tal, são propostas

etapas para realizar um caso de tudo: Contexto, Definir a hipótese, Planear, Validar e

Analisar os resultados [13] o que irá determinar a realização dos objetivos propostos.

Procede-se a uma avaliação dos resultados, em que é feita uma análise crítica dos

resultados obtidos e de todo o trabalho desenvolvido.

Por fim, combina-se os resultados validados com os resultados esperados que irá

originar o documento de dissertação.

Page 20: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

8

Page 21: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

9

3. ANÁLISE DO “ESTADO DA ARTE”

Este capítulo apresenta os conceitos teóricos e científicos relacionados com o

desenvolvimento do projeto. Tal como tem vindo a ser descrito são abordados os

temas envolventes na dissertação, como o UML, Arquiteturas, Interoperabilidade,

Cloud Computing, Indústria 4.0 e Internet of Things.

3.1 Análise de linguagens de modelação

3.1.1 Introdução

Esta secção discute e apresenta uma visão geral dos conceitos relevantes

relacionados com a modelação.

3.1.2 UML (Unified Modeling Language)

Hoje em dia, o UML é a linguagem de modelação universal e fornece ao utilizador

diferentes tipos de modelação de modo a especificar os requisitos dos sistemas,

ocorrendo a maioria em contextos industriais [14][15]. Utilizando uma forma de

modelação, e neste caso específico o UML, estamos a assegurar ou pelo menos a

tornar mais viável o sucesso de um projeto de desenvolvimento de software. Pode

assegurar-se que a funcionalidade do negócio é completa e correta, as necessidades

dos utilizadores finais são correspondidas e o design do programa suporta requisitos

de escalabilidade, robustez, segurança, extensibilidade e outras características. Na

verdade, as pesquisas mostram que os projetos de software de grandes dimensões

têm uma enorme probabilidade de falha, uma vez que é mais provável que uma

grande aplicação de software não cumpra com todos os seus requisitos a tempo e no

orçamento previsto, caso não exista anteriormente todo um trabalho de análise ao

qual está claro associada a modelação dos processos de negócio, das

funcionalidades do sistema. Assim, e pensando numa forma de atingir o sucesso ou

aumentar as probabilidades do mesmo, a modelação é a única maneira de visualizar

o seu design e verificar se está de acordo com os requisitos antes de a equipa iniciar

Page 22: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

10

o desenvolvimento1. Esta linguagem contem diversos tipos de modelos que suportam

a descrição e especificação dos vários tipos de modelos [14][15].

Os modelos de casos de uso consistem na definição da fronteira do sistema com o

ambiente, assim como na especificação dos requisitos funcionais em termos de casos

de uso e atores [15]. Serão abordados de uma maneira muito geral.

Um caso de uso é a descrição de um conjunto de ações entre o sistema e os atores

que produzem determinados resultados ou objetivos anteriormente definidos

[15][16][17], enquanto um ator representa a conduta que os utilizadores podem ter em

relação a um determinado sistema ao interagir com ele. A identificação do ator no

sistema ajuda na definição das funcionalidades, elaborada através da identificação

dos casos de uso. Um caso de uso é executado por um, ou mais atores e esse mesmo

pode estar envolvido noutros casos de uso. Após a definição dos atores e dos casos

de uso envolvidos no sistema, poderá iniciar-se o processo de desenvolvimento [15].

Transformar os casos de uso em objetos nem sempre é uma tarefa fácil, dado que

não existe mapeamento direto de um a um de casos de uso para objetos. Vários casos

de uso podem dar origem a um objeto e um caso de uso pode originar um par de

objetos. O principal objetivo dos diagramas de objetos é identificar os objetos que

constituem o sistema. Este género de diagramas mostram a configuração estática do

sistema e as relações entre os objetos que o constituem [17].

Os modelos de sequência podem ser utilizados durante o teste do sistema, em que

compara o comportamento real do sistema com o que foi especificado. Nestes

modelos também podem ser descritos os comportamentos do sistema.

Os modelos de classe adequam-se a todos os métodos de desenvolvimento de

software orientados a objetos, onde indicam as classes e as relações nelas existentes.

A classe está dividida em três partes, a parte superior (é indicado o nome da classe),

a parte central (são indicados os atributos da classe) e a parte inferior (são indicadas

as operações da classe). Enquanto o nome é obrigatório as outras duas partes podem

ser omitidas.

Os modelos de estado não autorizam que a conduta dinâmica das instâncias das

classes seja definida, isto é, para classes mais complexas a abordagem à modelação

comportamental orientada para o estado é fulcral. Devido à capacidade de modelação

1 www.uml.org/what-is-uml.htm

Page 23: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

11

de um diagrama de estado revelar-se bastante útil em várias áreas de computação,

como o software, sistemas operativos, entre outros, a utilização dos diagramas de

estado tornou-se popular no domínio de hardware [15].

Os modelos de atividade traduzem-se no relacionamento do fluxo de controlo entre

as atividades de um processo de negócios específico. Modelos esses que abordam

os comportamentos dos sistemas ou das entidades em consideração. Estes modelos

são fundamentais quando ocorre uma mudança de comportamento. Um diagrama de

atividades apresenta o fluxo de controlo entre as atividades computacionais

envolvidas na realização de um cálculo ou fluxo de trabalho. Uma ação é um passo

computacional primitivo. Um nó de atividade é um grupo de ações ou subactividades.

Uma atividade descreve a computação sequencial e concorrente. Atividades essas

exibidas em diagramas de atividade [18].

3.1.3 SoaML (Service-oriented Architecture Modeling Language)

A especificação SoaML (Service Oriented Architecture Modeling Language) foi

concebida para suportar tanto uma perspetiva de tecnologias de informação, como de

negócio, definindo um perfil UML e um metamodelo na conceção dos serviços, de

modo a suportar a gama de requisitos de modelação para arquiteturas orientadas a

serviços.

Como linguagem arquitetónica, esta linguagem tem como objetivos apoiar as

atividades de modelação e conceção de serviços, de modo a alinhar uma abordagem

de desenvolvimento mais ajustada à orientação de modelos. O perfil SoaML inclui

também especificação de sistemas de serviços, especificação individual de interfaces

de serviços e a especificação da implementação de serviços. Estas extensões

suportam a geração automática de artefactos derivados, seguindo uma abordagem

baseada em MDA (Model-driven Architecture) [19][20][21].

Page 24: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

12

3.2 Arquiteturas

3.2.1 Introdução

Esta secção apresenta conceitos fundamentais sobre arquiteturas e o método 4SRS

(Four Step Rule Set), técnica esta que permite transformar modelos de requisitos do

utilizador em arquiteturas de software.

Devido à exacerbada complexidade das implementações dos sistemas de informação,

surgiu a necessidade de usar alguma construção lógica, por outras palavras, uma

arquitetura. De modo a definir e controlar as interfaces e a integração de todos os

componentes do sistema. Para evitar a desintegração do negócio, o conceito de

arquitetura de sistemas de informação tornou-se indispensável para estabelecer

alguma ordem e controlo no investimento de recursos de sistemas de informação [22].

Atualmente, na prática comercial, uma abordagem integrada para negócios e

tecnologias de informação, em que as estruturas organizacionais, os processos de

negócio, aplicações de tecnologias de informação e infraestruturas técnicas devem

estar alinhadas, é fundamental [23].

Todos os sistemas de computação são compostos por três partes fundamentais: o

software (ex.: programas ou bibliotecas), os dados, que tanto são temporários (na

memória) como constantes (no disco ou ROM) e o hardware (ex.: processamento,

memória, discos, placas de rede), sendo que o hardware é necessário para executar

os elementos do software.

Quando se tenta entender um sistema, interessa saber o que cada componente

individual faz, como funcionam e como interagem com o ambiente à sua volta, mais

particularmente, a sua arquitetura [24].

Tradicionalmente, um componente é uma unidade de software que é

independentemente substituível e atualizável. E as bibliotecas são componentes que

estão vinculados a um programa. Normalmente, são chamadas através de chamadas

de funções na memória [25].

3.2.2 Conceitos

A noção de arquitetura reflete-se na descrição dos componentes e das relações entre

eles para que possam satisfazer todos os requisitos de um sistema [26], com o meio

ambiente e o que origina a sua evolução [23]. Entre a lógica e a representação do

Page 25: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

13

conhecimento, as arquiteturas combinam várias lógicas num sistema lógico mais

complexo [27]. A arquitetura lógica suporta os requisitos funcionais, aqueles que o

sistema deve fornecer em termos de serviços aos seus utilizadores [28]. Pode ser

descritiva ou prescritiva. É descritiva quando se refere à arquitetura do sistema

existente e é prescritiva quando a especificação da arquitetura para o sistema de

software está a ser construída [26]. No entanto, quando os requisitos não são

devidamente “extraídos” e há entradas insuficientes para uma abordagem do produto

para a obtenção de requisitos, uma perspetiva de nível de processo é uma maneira

alternativa de alcançar os requisitos básicos pretendidos para o design lógico.

Um dos métodos utilizados para contornar esse problema é a adaptação da técnica

do 4SRS que deriva modelos arquitetónicos lógicos numa perspetiva ao nível do

processo [29]. É uma técnica orientada a modelos que permite transformar casos de

uso em objetos, ou seja, é um método baseado no mapeamento de diagramas de

casos de uso UML em diagramas de objetos UML [30]. A natural interação do método

com a utilização de modelos esquemáticos ajuda a garantir que a arquitetura lógica

obtida reflete os requisitos do utilizador. O método 4SRS gera arquiteturas lógicas,

representando os requisitos do sistema, a partir dos modelos de requisitos do

utilizador [31][32], de maneira a empregar sucessivas transformações de modelo, de

modo a obter uma arquitetura lógica que satisfaça tais requisitos [32]. Estas

arquiteturas lógicas criadas são apresentadas utilizando a notação dos diagramas

UML de objetos e de componentes.

A abordagem utilizada no 4SRS encontra-se dividida pelos seguintes passos:

1º Passo – Criação do Objeto (Object Creation): neste passo, cada caso de uso é

transformado em três tipos de objeto: uma interface, um dado e um controlo. A partir

daí cada um recebe a referência do respetivo caso de uso anexado com o sufixo (i, d,

c) que nos indica a categoria do objeto [31][32][33][34][35];

2º Passo – Eliminação do Objeto (Object Elimination): baseado na descrição textual

de cada caso de uso, deve ser decidido qual dos três objetos devem ser mantidos

para representar completamente em termos computacionais o caso de uso, tendo em

conta todo o sistema e não considerando cada caso de uso isoladamente

[31][32][33][34]. Este passo também suporta a eliminação da redundância nos

requisitos do utilizador, bem como na descoberta de requisitos em falta. Este é

considerado o passo mais importante da técnica do 4SRS, uma vez que as entidades

ao nível do sistema são decididas aqui [31][33]. Para lidar com a complexidade do

Page 26: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

14

passo, este foi decomposto em sete micros passos [31][35]: 2i – Identificação do caso

de uso (use case identification), 2ii – eliminação local (Local elimination), 2iii –

nomeação do objeto (object naming), 2iv – descrição do objeto (object description), 2v

– representação do objeto (object representation), 2vi – eliminação global (global

elimination) e, por fim, o 2vii – renomeação do objeto (object renaming);

3º Passo – Agregação e Empacotamento de Objetos (Object Packing and

Aggregation): nesta fase, os objetos que sobrevivem (aqueles que foram mantidos

após a execução do segundo passo), originam agregações ou pacotes de objetos

semanticamente consistentes. Por outras palavras, tendo em conta que existem

objetos que podem ter responsabilidades idênticas no contexto do sistema e que, por

isso, possam ser agrupados [31][32][33][34];

4º Passo – Associação do objeto (Object Association): O último passo da técnica de

4SRS suporta a introdução de associações no modelo de objeto, completamente

baseado na informação existente no modelo de caso de uso e gerado no micro passo

2i [31][32][33][35]. Em suma, os objetos agregados obtidos são ligados de modo a

especificar as associações entre os objetos existentes [33][34][35].

Uma arquitetura de software é um conjunto de modelos que contem as principais

decisões de design do sistema de software sob a forma de componentes (focos de

computação de sistemas e gestão de dados), conectores (focos de interação de

componentes) e configurações (arranjos específicos de componentes e conectores

destinados a resolver problemas específicos) [36]. São necessárias várias

visualizações para enfatizar e compreender diferentes aspetos da arquitetura; os

estilos são uma forma de codificação convincente e importante que pode ser usada

de forma descritiva e prescritiva; princípios de engenharia e propriedades materiais

são de extrema importância no desenvolvimento e suporte de uma arquitetura

particular e estilo arquitetónico [37].

A abordagem de microserviços, também conhecida como arquitetura de

microserviços, é um termo relativamente novo em padrões de arquitetura de software.

Um microserviço é um serviço leve e independente que desempenha funções únicas

e colabora com outros serviços similares, usando uma interface bem definida. A

arquitetura de microserviços permite a entrega/ implementação contínua de

Page 27: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

15

aplicações grandes e complexas2. Cada serviço é executado no seu próprio processo

e implementado de forma independente. Pode ser escrito em diferentes linguagens

de programação, usar modelos de dados próprios, entre outros [38]. O paradigma

microserviços foi proposto para superar as deficiências de uma arquitetura monolítica.

Para sistemas pequenos, a chamada arquitetura monolítica pode ser a mais adequada

e tornar-se altamente disponível e escalável, utilizando mecanismos simples de

balanceamento de carga [39].Internamente a aplicação pode ter vários serviços,

componentes, etc., mas é implementada como uma solução unificada. A maior

vantagem é que é mais fácil de implementar, mas também pode ser difícil de entender

e modificar. No entanto, a base de código será codificada e a aplicação monolítica

impediria que a equipa de desenvolvimento trabalhasse de forma independente, o que

dificulta o desenvolvimento contínuo [25]. Em aplicações monolíticas, os serviços são

desenvolvidos numa base de código única e é partilhada por vários elementos da

equipa. Quando a equipa de desenvolvimento quer adicionar ou alterar serviços, deve

garantir que a outra parte dos serviços continua a funcionar. A complexidade aumenta

à medida que mais serviços são adicionados, limitando a capacidade das

organizações de inovar com novas versões e recursos [38]. À medida que o tamanho

do sistema aumenta, problemas como dificuldades na compreensão do código,

aumento do tempo de implementação, escalabilidade para cargas intensivas em

dados começariam a aparecer [39]. Uma implementação monolítica representa um

único ponto de falha, ou seja, se a aplicação falhar, o conjunto de serviços desaparece

[38]. É aí que os microserviços ajudam, fornecendo pequenos serviços fáceis de

entender que podem ser implementados e escalados independentemente [39].

A arquitetura orientada a serviços (SOA) é uma abordagem para descrever e

compreender as organizações, as comunidades e os sistemas que maximizam a

agilidade, a escala e a interoperabilidade [21]. Tem como principal objetivo maneiras

de criar, publicar e integrar lógica aplicacional e recursos como serviços. O conceito

cloud não necessita de tecnologia embora seja recomendável criar princípios

orientados a serviços. A adoção dos princípios desta especificação transformam os

sistemas complexos e monolíticos num ambiente mais simples e bem definido [40].

Assim sendo, as arquiteturas orientadas a serviços revelam um interesse primordial,

2 http://microservices.io/

Page 28: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

16

não só em criar e hospedar aplicações e serviços em sistemas cloud, mas também,

em facultar serviços e recursos de alto nível que complementem a melhoria dos

recursos na base da “nuvem” [41]. A característica deste paradigma é a flexibilidade,

ou seja, as plataformas de computação e linguagens podem variar, os serviços podem

ser acedidos com uma rede de comunicações através de interfaces simples e bem

definidas, sem ter que se preocupar com os efeitos colaterais resultantes das

dependências entre serviços, sendo estes fatores os que permitem que as aplicações

utilizem os serviços de maneira eficiente e efetiva [42].

Para fins de representação, esta arquitetura adota a linguagem de modelação SoaML

que apresenta como elementos chave para serviços de modelação a especificação

dos participantes que fornecem serviços para serem utilizados por outros participantes

que consomem serviços de outros participantes; as interfaces de serviço; capacidades

e contratos de serviço [43][44].

Arquitetura, um termo ainda ambíguo, não só é aplicada em domínios técnicos e de

tecnologias de informação como ao nível de uma organização inteira, usualmente

referida como arquitetura corporativa. Fornece uma visão holística da organização

(métodos e modelos utilizados no projeto e na realização da estrutura organizacional,

processos de negócio, sistemas de informação, e infraestrutura de uma empresa) [23].

Uma das principais características do ambiente em cloud é que as falhas podem surgir

a qualquer momento e as aplicações devem ser planeadas de modo a resistir a tais

incertezas. Além disso, a escalabilidade da aplicação não seria possível sem uma

arquitetura escalável. As arquiteturas nativas da cloud, como a de microserviços, são

as que possuem essas características, como disponibilidade e escalabilidade e

podem facilitar a migração de arquiteturas baseadas no local para beneficiarem

totalmente dos ambientes em cloud [39].

Cada sistema é único e a arquitetura é uma ferramenta indispensável para uma

organização, tanto para controlar a sua complexidade como os seus processos, sendo

que, as organizações e as tecnologias devem estar alinhadas, levando a um custo

menor, maior qualidade e, porventura a maior satisfação do cliente.

Page 29: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

17

3.3 Interoperabilidade

3.3.1 Introdução

Assumindo um destaque cada vez maior no seio da comunidade académica e

científica, a compreensão e clarificação do conceito interoperabilidade revela-se um

desafio para quem sobre ele se debruça, levando ao surgimento de várias definições,

que apesar de distintas se complementam entre si.

3.3.2 Conceitos

Este conceito surgiu, tendo por base o termo interoperável, que em 1965 foi definido

como “capaz de ser usado ou operado reciprocamente”3, e que serve de referência a

todos os investigadores que se têm dedicado a este tema.

Inicialmente, o termo interoperabilidade deriva da engenharia de software, no qual se

pretendia que dois sistemas de software se interligassem entre si e desta forma

pudessem trabalhar, reduzindo o esforço de cada sistema [45][45]. Face a isto, a

interoperabilidade tornou-se uma propriedade com um nível de interesse e

importância cada vez maior para os diversos profissionais e investigadores, levando

a que a sua utilização tenha sido aplicada em vários domínios como, por exemplo, a

nível militar, dos transportes, da saúde, comunicações, entre outros [46].

Peter Wagner defende que a “interoperability is the ability of two or more software

components to cooperate despite differences in language, interface, and execution

platform [47]”. Deste modo, é possível constatar que a interação entre os

componentes de software é a essência para a interoperabilidade, apresentando uma

perspetiva mais técnica do termo. A título de exemplo, o IEEE (Institute of Electrical

and Electronics Engineers), sistematizou três definições para o conceito

interoperabilidade, uma direcionada para o software, outra para equipamentos e outra

para interfaces. A primeira definição defende que a interoperabilidade é uma

propriedade capaz de interligar dois ou mais sistemas para permutar dados e usar

mutuamente as informações já trocadas. A definição relacionada aos equipamentos

acrescenta a ideia de que no mínimo dois equipamentos podem trabalhar em conjunto

3 http://www.dictionary.com/browse/interoperability?s=t

Page 30: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

18

para executar alguma função. A interoperabilidade para interfaces garante a

integridade das transações na interoperabilidade das bibliotecas de reutilização [48].

Uma perspetiva mais completa desta temática, pois afirma que a informação é o alvo

para haver interação entre um ou mais sistemas para executar algum serviço.

Para alcançar a interoperabilidade é necessário que a interação entre dois sistemas,

ocorra, no mínimo, a três níveis: dados, aplicações e processos de negócio, com a

semântica definida no contexto do negócio [49].

Por outro lado, a interoperabilidade é definida como “The ability of a collection of

communicating entities to (a) share specified information and (b) operate on that

information according to a shared operational semantics in order to achieve a specified

purpose in a given context” [50]. Esta definição considera que é necessário existir uma

semântica operacional partilhada entre as várias entidades. Defende-se que a

essência da interoperabilidade está na relação entres as entidades num contexto

organizacional, e que é essencial a comunicação do fornecedor com o consumidor do

serviço.

Para além disso, a interoperabilidade também pode ser definida como a capacidade

de operar software e trocar informações numa vasta rede constituída por diversas

redes locais [51].

Esta complementaridade e diversidade em torno do conceito de interoperabilidade, é

uma questão essencial que põe em causa o seu correto funcionamento e,

consequentemente a sua realização [45]. Para tal, existem objetivos que lhe estão

associados e que tornam possível que ela ocorra em qualquer sistema, como por

exemplo, a troca de dados, a troca de significados e o acordo do processo.

Relativamente à troca de dados, entende-se que está relacionado não com o seu

significado, mas sim se são capazes de trocar algo entre si e se são capazes de

entender o que foi trocado entre os sistemas. A troca de significados é mais complexa

que a troca de dados, uma vez que não há garantia de que os sistemas irão interpretar

o significado da mesma forma, daí esta ser caracterizada pela atribuição do mesmo

significado da informação que está a ser trocada. Por fim, o acordo do processo

relaciona-se com o facto dos sistemas numa determinada comunicação terem a

mesma perceção de como agir, dado que já houve interações entre eles. Ou seja,

para alcançar o acordo do processo, os sistemas já concordaram como atuar com os

dados que recebem na troca. Posto isto, é possível evidenciar um exemplo prático (da

troca de significados), de como a falta de comunicação pode levar a falhas que se

Page 31: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

19

tornam irreversíveis e danosas, como é o caso da Mars Climate Orbiter (MCO),

coordenado pela NASA e lançado em 1998 ao espaço, com o objetivo de recolher os

dados meteorológicos do planeta Marte, e ao mesmo tempo retransmiti-los para as

equipas responsáveis [52].

Mediante estes objetivos pode afirmar-se que, para além da entidade que está a

transmitir a informação pretendida, esta deve entendê-la e acima de tudo ter a certeza

que a entidade recetora o irá entender de igual modo.

3.3.3 Níveis de Interoperabilidade

Ao considerar a interoperabilidade entre dois sistemas, é útil ter um modelo de

referência para a troca de informação. Um dos modelos mais relevantes para uso do

cliente de serviços em cloud é o “Four Levels of Interoperability”. Nele existem quatro

níveis [53].

O primeiro nível, designado de interoperabilidade técnica, está associado a

componentes, sistemas e plataformas de hardware (a nível de componentes) e

software (a nível aplicacional), que proporcionam a comunicação machine-to-machine

[54]. Este nível é atingido quando os serviços ou informações permutam diretamente

e satisfatoriamente entre eles e os utilizadores [51]. Com o avanço da tecnologia esta

perspetiva assume-se como uma mais-valia para o entendimento entre as diversas

aplicações [55], que suportam processos de negócios das organizações. De entre

estas aplicações pode destacar-se, o formato, preferencialmente o XML (eXtensible

Markup Language) e os protocolos de transferência, sendo eles, o HTTP (Hypertext

Transfer Protocol), o SOAP (Simple Object Access Protocol), o TCP/ IP (Transmission

Control Protocol/ Internet Protocol), entre outros, que são utilizados para as trocas de

mensagens, tanto em modo síncrono como assíncrono [56].

O segundo nível, a interoperabilidade sintática, diz respeito ao formato dos dados que

são trocados. A sua principal preocupação é a permuta de dados. Exemplos deste

nível incluem estruturas de dados XML (eXtensible Markup Language) ou fluxo de

dados JSON [53].

Um terceiro nível, a interoperabilidade semântica, preocupa-se em garantir que a

precisão do significado dos dados transmitidos sejam acessíveis, de maneira a que

qualquer entidade que não tenha sido criada com a mesma finalidade os compreenda

de forma explícita [55]. Como tal, crê-se que este nível é alcançado, quando sistemas

Page 32: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

20

heterogéneos interpretam ou partilham informações, dados ou conhecimentos em

comum, de forma consistente [56], não descurando a interpretação humana, em que

existe um entendimento comum entre as pessoas, no que toca ao significado do

conteúdo que está a ser trocado [51]. No que concerne, aos aspetos semânticos da

interoperabilidade semântica pode-se dar como exemplo as questões ligadas à

integração, consistência de dados para auxiliar a cooperação e a colaboração, e

sobretudo a partilha de conhecimento e informação [56]. Neste caso, se

considerarmos que duas entidades heterogéneas, A e B, e afirmar que A é

semanticamente interoperável com B, significa que a entidade A pode trocar dados

com a entidade B que opera sobre ele e que de acordo com a semântica partilhada,

com o intuito de chegar a um propósito num determinado contexto [57].

Por último, o quarto nível, definido como interoperabilidade organizacional, interessa-

se com a definição de objetivos comerciais, com a modelação de processos de

negócio e com a colaboração das organizações, cujo objetivo primordial atende aos

requisitos da comunidade de utilizadores, facultando serviços, de fácil acesso e

identificação orientados ao utilizador [55] [56].

3.3.4 Barreiras da Interoperabilidade

Apesar da eficácia associada aos sistemas interoperáveis, estes também acarretam

alguns obstáculos, fruto não só da falta de partilha da mesma semântica existente nos

processos de negócio que ocorrem em determinadas organizações, mas também,

devido aos processos de negócio das organizações serem criados de maneira

independente [55]. Estes obstáculos estão divididos em três categorias,

nomeadamente barreiras conceptuais, barreiras tecnológicas e barreiras

organizacionais [58].

As barreiras concetuais, que se referem a incompatibilidades sintáticas e semânticas,

são consideradas as mais importantes, pelo facto de se preocuparem com a

apresentação e representação de conceitos, para utilizar em situações empresariais

e operacionais [59]. Os problemas associados a estas barreiras relacionam-se tanto

à modelação no alto nível de abstração (como os modelos corporativos de uma

organização), como ao nível de programação (como o exemplo dos modelos XML)

[58]. Na tentativa de solucionar este problema torna-se necessário a anotação de

Page 33: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

21

modelos proprietários de acordo com a ontologia comum para permitir a reconciliação

de dados [60].

As barreiras tecnológicas no que concerne às incompatibilidades adicionais

provocadas pelo uso das tecnologias tem como principal interesse a utilização das

tecnologias de informação (tais como arquiteturas, plataformas, entre outros) na

comunicação e troca de informação. A estas barreiras os principais problemas que lhe

estão associados são o armazenamento, troca, processamento e comunicação de

dados, através da utilização de computadores [58] [59]. Para fazer face a esta barreira

foram desenvolvidas pela comunidade de engenharia de software diversas

tecnologias e standards, como por exemplo, XML (eXtensible Markup Language),

arquiteturas orientadas a serviços (SOA - Service Oriented Architecture), WS (Web

Services), entre outras [57].

Por fim, as barreiras organizacionais relacionam-se com as incompatibilidades da

estrutura organizacional e da gestão implementada nas organizações [61]. A principal

preocupação desta barreira passa por comportamentos humanos incompatíveis [59].

O facto de esta barreira ser a mais complexa torna difícil encontrar uma solução para

a mesma uma vez que esta trata de pessoas e organizações [57].

3.3.5 Preocupações da Interoperabilidade

Num contexto industrial é fundamental que exista comunicação entre os sistemas e o

facto da interoperabilidade se deparar com diversas barreiras, causa determinadas

preocupações.

A primeira, a interoperabilidade dos dados, diz respeito à criação de diferentes

conjuntos de dados e às linguagens de consulta em conjunto e tem como função

descobrir e partilhar informações de fontes de dados heterogéneos, para além de

poder ser encontrada em máquinas diferentes com vários sistemas operativos e

sistemas de gestão de bases de dados [58] [62].

A segunda, designada de interoperabilidade de serviços, tem como principal interesse

a identificação, constituição e elaboração de várias funções de aplicações juntas,

planeadas e implementadas de maneira independente. O termo “serviço” não se

restringe às aplicações com base nas máquinas como o computador mas também às

funções das organizações e organizações em rede [58] [62].

Page 34: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

22

Outra preocupação está relacionada com a interoperabilidade dos processos, que faz

com que os vários processos de negócio operem juntos. Aqui, o termo “processo” é

definido pela sequência das funções do mesmo, de acordo com determinadas

necessidades de uma organização. No entanto, numa organização em rede, há

necessidade de estudar uma forma de interligar os processos internos de duas

organizações para poder criar um processo em comum [58] [62].

Por fim, a interoperabilidade de negócios, defende que apesar dos diferentes métodos

de tomada de decisão, métodos de trabalho, legislações, cultura da organização e

assuntos comerciais para desenvolver o negócio entre as organizações, deve

trabalhar-se de forma apropriada, ao nível da organização [58] [62].

3.3.6 Problemas da Interoperabilidade

Uma das tendências no mercado global é a crescente colaboração entre as

organizações durante todo o ciclo de vida do produto que devem reagir de forma

flexível às mudanças nos mercados e parceiros comerciais [49]. No entanto, nem

sempre essas mudanças ocorrem da maneira que se deseja e podem surgir alguns

problemas quando os requisitos do negócio são traduzidos para os requisitos de

serviço [63]. Uma outra limitação surge com o facto de as funções em muitas

organizações terem sido criadas de forma independente e não partilharem a mesma

semântica para a terminologia dos seus processos [64] [65].

Assume-se então que testar a interoperabilidade é uma parte indispensável do projeto

e implementação do sistema. É uma tarefa formidável para sistemas complexos,

motivando a análise de testar máquinas de estados finitos para garantir o

funcionamento correto dos sistemas e descobrir aspetos dos seus comportamentos

[66]. O objetivo do teste é garantir que uma entidade que tenha sido modificada

mantenha a capacidade de trocar informações com várias entidades e utilizar essa

informação [48]. Tais testes podem revelar evidências de não interoperabilidade que

muitas vezes são consequências de especificações incompletas e/ ou falhas de

projeto não identificadas durante o teste de cada sistema isolado [67].

Só com uma representação comum de modelos de processo e com aceitação global

da indústria, a troca de modelos e interoperabilidade se tornam práticas comuns, e só

aí o apoio à decisão para criação, operação e descontinuação para os novos tipos de

organização empresarial se tornará realidade [64].

Page 35: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

23

3.3.7 Perspetiva do futuro

Alcançar a interoperabilidade perfeita entre as tecnologias de comunicação e sistemas

heterogéneos continua a ser um grande desafio no mundo em rede de hoje [54].

Neste contexto, surgem dois novos conceitos. O Sensing Enterprise e o Liquid

Enterprise que permitem às organizações completar essa transformação digital,

distribuindo às indústrias produção de vários setores os facilitadores necessários para

conectar tecnologias da internet futura. São previstos novos serviços baseados na

convergência de redes, computação incorporada, controlo, conteúdo e feedback de

sensor. Como tal, o conceito Sensing Enterprise, que surge com a evolução da

Internet of Things (conceito este que será abordado na secção 3.5.4), segue a

necessidade de descentralizar a inteligência, movendo-se para um cenário em que a

organização é vista como uma entidade inteligente e complexa capaz de detetar e

reagir a estímulos (de negócio). O Liquid Enterprise surge como extensão do conceito

Sensing Enterprise, em que o principal objetivo é ter um sistema que seja capaz de

chegar a todo o lado. Refere-se à confusão dos limites organizacionais, onde não é

fácil distinguir o “interior” e o “exterior”, os funcionários e os parceiros, os concorrentes

e os colaboradores. É uma organização com fronteiras difusas, em termos de recursos

humanos, mercados, produtos e processos.

Posto isto, tanto o conceito Enterprise Sensing como o Liquid Enterprise são

qualidades que podem funcionar como estratégias para qualquer empresa futura [68],

apesar do conceito Liquid Enterprise estar longe de ser implementado é um dos

objetivos futuros, em que todos os sistemas e conceitos consigam interoperar. A

exposição efetuada sobre estes conceitos (ou seja, a evolução das organizações

tradicionais em organizações digitais, sensoriais ou líquidas) representa uma

mudança fundamental nos modelos de negócio em que as organizações apoiarão e

serão capazes de implementar.

Uma vez que os sistemas são dinâmicos, necessitam de ser atualizados. Não basta

encontrar a solução interoperável, mas sim, sinalizar a estratégia para manter o

sistema interoperável ao longo do tempo, percebendo assim qual o seu impacto.

Page 36: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

24

3.4 Cloud Computing

3.4.1 Introdução

Apesar da grande diversidade de definições ligadas ao conceito de cloud computing

ainda não existe nenhuma definição concreta que permita caracterizar de forma coesa

este paradigma. Esta grande diversidade de conceitos deve-se ao facto de não ser

uma tecnologia nova mas sim um modelo de operações que agrupa tecnologias já

existentes, de forma a executar diferentes negócios [69].

3.4.2 Conceitos

Os estudos em torno do conceito cloud computing começam a surgir na década de

60, sendo nessa altura considerado uma forma de computação organizada como uma

utilidade pública [70] [71]. O termo cloud foi utilizado em vários contextos na década

de 1990. No entanto, foi em 2006 que o termo realmente começou a ganhar

popularidade, após Eric Schmidt ter usado a palavra para descrever o modelo

comercial de fornecer serviços na Internet [71].

Com o aparecimento da internet para as instalações da computação ubíqua, a internet

mudou o mundo da computação de forma drástica [72]. Como tal, existem fatores

primordiais que contribuem para o aumento e interesse na adoção de cloud

computing, como a diminuição rápida do custo do hardware e pelo aumento do poder

de computação e da capacidade de armazenamento, bem como o aparecimento da

arquitetura multi-core e de supercomputadores modernos; o tamanho de dados

exponencialmente crescente na simulação científica, publicação e arquivo na internet

e, finalmente a ampla adoção das aplicações de serviços informáticos e web 2.0 [73].

Multi-core é uma técnica de implementação de microprocessadores, principalmente

para computação de alto desempenho [40].

Com o crescente avanço das tecnologias de informação e comunicação, e já em 2009

acreditava-se que a computação fosse uma tecnologia promissora, tornando-se na 5ª

utilidade (a seguir à água, eletricidade, gás e telefone) [69].

Perante isto, o objetivo deste modelo de computação é fazer um melhor uso dos

recursos distribuídos e agrupá-los para alcançar um maior rendimento e ser capaz de

resolver problemas de computação de grande escala [74].

Page 37: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

25

O paradigma cloud computing refere-se a ambas as aplicações fornecidas como

serviços pela internet e, ao hardware e sistemas de software nas centrais de dados

que fornecem esses serviços. Os serviços em si têm sido chamados de software como

serviço (SaaS), então utiliza-se esse termo. O hardware e software da central de

dados é o que se chamará de cloud [75] [76].

Outra perspetiva do termo defende que a cloud é um tipo de sistema paralelo e

distribuído que consiste num conjunto de computadores ligados e virtualizados que

são aprovisionados dinamicamente e apresentam-se como um ou mais recursos de

computação unificada, baseada em contratos de nível de serviço estabelecidos

através de um acordo com o fornecedor de serviços e consumidores [69]. Pode

constatar-se que esta afirmação defende que a cloud engloba um vasto conjunto de

recursos mas hoje em dia, qualquer pessoa pode ter a sua cloud “artesanal”, mesmo

que seja de pequenas dimensões, não necessitando de contratos de nível de serviço.

Existem várias definições ligadas ao fenómeno cloud computing mas a maioria dos

artigos científicos referente ao tema utiliza a definição descrita pelo NIST (National

Institute of Standards and Technology). O NIST desenvolveu uma definição informal

que defende cloud computing como um modelo que permite o acesso a uma rede

inteligente a um conjunto de recursos computacionais reconfiguráveis como redes de

comunicações, servidores, armazenamento, aplicações e serviços que podem ser

rapidamente equipados e atualizados com um esforço mínimo de gestão ou de

interação do fornecedor de serviços [77]. Perante esta afirmação pode concluir-se que

a temática em estudo é um grande conjunto de recursos facilmente utilizáveis e

acessíveis, como por exemplo, o hardware, plataformas de desenvolvimento e

serviços, entre outros.

Com a proliferação em grande escala da internet pelo Mundo as aplicações passariam

a ser entregues como serviços pela internet e como tal, iria reduzir o custo total [72].

3.4.3 Características

Este modelo de computação em nuvem é constituído por características essenciais

que permitem ao consumidor fornecer recursos computacionais (como

armazenamento em rede, utilização de software, entre outros), de forma automática,

sem necessidade de recorrer a cada fornecedor de serviços (on-demand self-service),

através de plataformas heterogéneas, como por exemplo a internet (broad network

Page 38: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

26

access). Os recursos computacionais do fornecedor são reunidos para responder a

diversos consumidores, usando um modelo multi-tenant, com vários recursos físicos

e virtuais conforme o pedido do consumidor. A motivação para configurar esse

paradigma computacional baseado no agrupamento reside em dois fatores

importantes, a economia de escala e especialização. O resultado deste modelo é que

os recursos da computação física se tornam “invisíveis” para os consumidores que,

normalmente, não tem controlo ou conhecimento sobre a localização, formação e

originalidade desses recursos (resource pooling). Para o consumidor as capacidades

disponibilizadas para aprovisionamento podem ser ilimitadas e adequadas a qualquer

quantidade e a qualquer momento (rapid elasticity). Os sistemas em cloud controlam

e otimizam, de forma automática, a utilização dos recursos utilizando mecanismos

adequados para medir, baseados em pay-per-use ou charge-per-use, a um certo nível

de abstração que seja apropriado ao tipo de serviço, como por exemplo,

armazenamento, processamento, largura de banda e contas de utilizador ativas. Os

recursos utilizados podem ser monitorizados, controlados e reportados, fornecendo

transparência para ambos, fornecedor e consumidor do serviço utilizado (measured

service) [77].

3.4.4 Modelos de serviços

A infraestrutura da cloud assegura as características do modelo de computação em

nuvem, e é designada por duas camadas, a física e a de abstração. A camada física

contem os recursos de hardware necessários que suportam os serviços fornecidos na

cloud, que costuma incluir componentes do servidor, armazenamento e rede. A

camada de abstração consiste no software implementado na camada física, o que

evidencia as características essenciais da cloud [77].

Surgiram novos modelos de serviços resultantes do paradigma cloud computing,

sendo eles:

O software como um serviço (Software as a Service: SaaS) fornece ao consumidor

aplicações de software que são executadas numa infraestrutura da cloud. O acesso

às aplicações é feito através de vários tipos de dispositivos eletrónicos, com acesso à

rede [77]. Exemplos de SaaS incluem Google Mail, Google Docs [78], SAP Business

by Design, entre outros [41].

Page 39: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

27

A plataforma como um serviço (Platform as a Service: PaaS) é uma plataforma de

desenvolvimento que suporta o ciclo de vida do software completo que permite ao

consumidor implementar as suas próprias aplicações na infraestrutura da cloud,

utilizando linguagens de programação, bibliotecas, serviços e ferramentas suportadas

pelo fornecedor [77]. Um exemplo de PaaS é o Google App Engine [78], Windows

Azure (Platform) [41].

A infraestrutura como serviço (Infrastructure as a Service: IaaS) faculta ao consumidor

capacidade de processamento, armazenamento, redes, entre outros recursos de

computação fundamentais, onde o consumidor pode implementar e executar qualquer

software que incluem sistemas operativos [77]. Um exemplo de IaaS é o EC2 da

Amazon [78], Amazon S3, SQL Azure [41].

3.4.5 Modelos de implementação

Há muitos problemas a serem considerados ao mover uma aplicação corporativa para

o ambiente da nuvem. Podem existir fornecedores de serviços interessados em

reduzir o custo da operação enquanto outros podem preferir alta confiabilidade e

segurança. Consequentemente existem diferentes tipos de nuvens [71]:

Designa-se de nuvem privada (private cloud) quando a infraestrutura da cloud é

utilizada exclusivamente por uma organização. A propriedade, gestão e operação

pode ser da organização, um terceiro ou uma combinação entre ambos. Tanto pode

ser implementado dentro das instalações como fora [77].

A nuvem de comunidade (community cloud) é usada quando a infraestrutura da cloud

é utilizada apenas por uma comunidade específica de consumidores de organizações

com as mesmas preocupações, tais como, políticas, requisitos de segurança, entre

outros. A propriedade, gestão e operação pode pertencer a uma ou mais organizações

da comunidade, um terceiro ou uma combinação entre eles, podendo ser

implementado dentro ou fora das instalações [77].

Sabe-se que é uma nuvem pública (public cloud) sempre que a infraestrutura da cloud

está disponível ao público em geral. A propriedade, gestão e operação pode ser de

uma organização comercial, académica, governamental ou uma combinação entre

eles. É implementado nas instalações do fornecedor da cloud [77].

Por fim, caracteriza-se de nuvem híbrida (hybrid cloud) quando a infraestrutura da

cloud é composta por duas ou mais clouds distintas que permanecem entidades

Page 40: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

28

únicas, mas são ligadas por tecnologias que permitem a portabilidade de dados e

aplicações. Basicamente, é a combinação de clouds privadas, clouds de comunidade

ou clouds públicas [77].

Dado que existem muitos modelos de cloud computing, são necessárias normas para

modelos específicos e não apenas um conjunto. É necessário priorizar e concentrar-

se no conjunto básico de padrões para começar a expandir para outras áreas [6].

Quando as aplicações são migradas de uma cloud para outra, é importante garantir

que os requisitos não funcionais sejam satisfeitos também no novo ambiente migrado,

o que requer padrões para definir e trocar informação de meta sobre a aplicação entre

os fornecedores de serviços da cloud para verificar a conformidade dos requisitos não

funcionais referentes à segurança, disponibilidade, confiabilidade, desempenho,

escalabilidade, entre outros, que exigem conformidade [6].

3.4.6 NIST Cloud Computing Reference Architecture

A figura apresentada a seguir ilustra uma visão holística da arquitetura NIST. Nela são

identificadas as interações e funções dos principais atores: Cloud Service Consumer,

Cloud Service Provide, Cloud Broker, Cloud Auditor e Cloud Carrier. O objetivo

primordial deste modelo foca-se em facilitar a compreensão e comunicação dos

componentes de um sistema de cloud computing.

Figura 2 - Arquitetura NIST do modelo Cloud Computing [77]

Page 41: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

29

Dada a relevância dos conceitos da arquitetura NIST, de seguida são descritos de

forma sucinta:

O Cloud Consumer descreve uma pessoa ou organização que mantem uma relação

comercial e utiliza serviços de cloud providers. Enquanto o Cloud Provider representa

uma pessoa, organização ou entidade responsável por disponibilizar serviços para

cloud consumers. Os cloud providers executam diferentes tarefas para diferentes

serviços (SaaS, PaaS, IaaS). Estas atividades são discutidas em maior detalhe a partir

das perspetivas de Service Deployment, Service Orchestration, Cloud Service

Management, Security e Privacy. O Cloud Service Provider está associado ao

fornecimento de serviços, à gestão da alocação e controlo de recursos e às camadas

de recursos físicos que compõem a cloud. As Camadas de Serviço (Service Layer)

são descritas de forma a mostrar que é possível otimizar cada camada de serviço até

à Camada de Abstração e Controlo de Recursos (Resource Abstraction and Control

Layer) além de construir camada após a camada. Além disso, eles também são

responsáveis pela gestão geral da cloud, conforme mostrado na seção Cloud Service

Management (CSM). O CSM possui três componentes: suporte comercial (Business

Support) que consiste em todos os serviços relacionados a negócios com os clientes

e processo de suporte; Aprovisionamento e Configuração (Provisioning/

Configuration) que lida com todos os aspetos do aprovisionamento, mudança de

recursos, monitoramento e medição; e Portabilidade e Interoperabilidade (Portability/

Interoperability) que suporta a migração de serviços e dados entre clouds. Os aspetos

de segurança (Security) e privacidade (Privacy) da cloud atravessam todas as

camadas do backbone da cloud.

O Cloud Carrier funciona como intermediário que fornece conectividade e transporte

de serviços na cloud entre cloud providers e cloud consumers.

De seguida, o Cloud Broker apresenta-se como uma entidade que gere a utilização,

o desempenho, a entrega de serviços na cloud e negoceia relações entre cloud

providers e cloud consumers. Os principais serviços fornecidos pela entidade

aprimoram um determinado serviço melhorando algumas capacidades específicas

(Service Intermediation), combinam e integram variados serviços num ou mais

serviços novos (Service Aggregation) e permitem escolhas flexíveis e oportunistas,

tendo em conta que os serviços que são agregados não podem ser corrigidos (Service

Arbitrage).

Page 42: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

30

Por fim, o Cloud Auditor é capaz de realizar uma avaliação independente de serviços

na cloud, operações do sistema de informações, desempenho e segurança da

implementação na cloud [79].

3.4.7 Aplicação nativa da cloud

Uma aplicação nativa da cloud é concebida para tirar o máximo proveito de

plataformas cloud computing. É assumido que uma aplicação nativa da cloud possui

as seguintes propriedades, conforme aplicável:

Usufrui dos serviços da plataforma cloud para uma infraestrutura confiável e

escalável (“Let the platform do the hard stuff.”);

Utiliza comunicação assíncrona numa arquitetura sem acoplamento;

Possui uma escala horizontal que adiciona recursos à medida que a

necessidade aumenta e liberta recursos à medida que a necessidade diminui;

Otimiza custos para executar de forma eficiente, não desperdiçando recursos;

Lida com eventos de escala sem tempo de inatividade ou degradação da

experiência com o utilizador;

Lida com falhas de nós sem tempo de inatividade;

Utiliza distribuição geográfica para minimizar a latência da rede;

Faz atualizações sem tempo de inatividade;

Escala automaticamente usando ações pró-ativas e reativas;

Monitoriza e gere logs de aplicações, mesmo que os nós venham e voltem.

Tal como as características demonstram, uma aplicação não precisa de suportar

milhões de utilizadores para beneficiar de padrões nativos da cloud. As aplicações

que usam esses padrões devem ter vantagens em relação às aplicações que utilizam

serviços cloud sem serem cloud-native. Por exemplo, uma aplicação nativa da cloud

deverá ter maior disponibilidade, menor complexidade e custos operacionais, melhor

desempenho e maior escala. O Windows Azure e a Amazon Web Services são

plataformas de serviços de cloud computing que possuem todas essas características,

assim como qualquer plataforma de nuvem significativa (pública, privada ou outra)

terá a maioria dessas propriedades. Ambas as plataformas fornecem recursos de

PaaS e IaaS. A PaaS facilita o foco na lógica de aplicações para aplicações nativas

da cloud, enquanto a IaaS permite grande flexibilidade para a execução de aplicações

non-cloud-native, embora a utilização de PaaS não implique que a aplicação seja

Page 43: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

31

cloud-native e a utilização de IaaS não implique que não o seja. A arquitetura da

aplicação e a forma como usa a plataforma é um fator decisivo para entender se é ou

não uma aplicação nativa da cloud. É a arquitetura da aplicação que a torna uma

aplicação nativa da cloud, não é a escolha da plataforma, sendo importante referir que

nem sempre uma aplicação nativa da cloud pode ser a melhor escolha para

determinada situação [80].

As entidades industriais têm vindo a apostar cada vez mais em tecnologia com o

intuito de aumentar a sua eficiência, mantendo-se sustentável e sem sofrer grande

impacto nas suas operações, o que não é uma tarefa fácil. Surge assim o modelo

cloud computing que pode ser visto como um método adequado para fornecer uma

potencial solução no domínio industrial, assim como serviços de elevada qualidade ao

mais baixo custo, entre outros.

3.5 Indústria 4.0

3.5.1 Introdução

A indústria global enfrenta constantemente a competitividade entre as organizações o

que as obriga a adotar e desenvolver novas estratégias e métodos de produção [81].

Com a introdução de tecnologias da internet na indústria [82] esta secção pretende

dar uma visão geral acerca da Indústria 4.0, quais as ideias básicas que estão por trás

desse conceito, as suas implicações e ainda o que resulta da sua implementação nas

organizações.

3.5.2 A origem do conceito

Desde o início da industrialização, os avanços tecnológicos levaram a mudanças de

paradigma que atualmente são denominadas por revoluções industriais [83].

A revolução das tecnologias de informação despoletou uma transformação radical no

mundo em que vivemos e trabalhamos, com um impacto comparável ao da primeira

revolução industrial que surgiu com a introdução de instalações de produção

mecânica, a partir da segunda metade do século XVIII, entrando e sendo intensificado

ao longo de todo o século XIX. A partir da década de 1870, o fornecimento de

eletricidade e a divisão do trabalho levaram à segunda revolução industrial. De

Page 44: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

32

seguida, a terceira revolução industrial, também conhecida como Revolução Digital,

ocorreu no início da década de 1970, quando a tecnologia eletrónica avançada e a

tecnologia da informação desenvolveram ainda mais a automação e o controlo dos

processos de produção. Com base numa digitalização avançada nas fábricas, a

integração das tecnologias Internet of Things (IoT) com a Internet of Services (IoS)

[84] no ambiente industrial despertou nas organizações e nos governos uma jornada

evolutiva direcionada à quarta revolução industrial, designada de Indústria 4.0 [85].

Este conceito é amplamente utilizado pela Europa, em particular no domínio do fabrico

na Alemanha [83][86][87].

Atualmente é uma prioridade para muitas organizações, centros de investigação e

universidades. Apesar dos principais impulsionadores da ideia, o “Industrie 4.0

Working Group” e “Plattform Industrie 4.0” descreverem a visão, as tecnologias

básicas e os cenários envolventes ainda não existe uma definição concreta do termo.

Termo esse que se tornou publicamente conhecido em 2011, quando uma iniciativa

chamada “Industrie 4.0”, uma associação de representantes de negócios, política e

academia, promoveu a ideia como uma abordagem para fortalecer a competitividade

da indústria de fabrico alemã [84].

A indústria 4.0 está focada na criação de produtos, procedimentos e processos

inteligentes. As fábricas inteligentes possuem um enorme potencial, pois permitem

que os requisitos individuais dos clientes sejam atendidos e significa que mesmo os

produtos únicos podem ser fabricados lucrativamente. Nelas, os processos dinâmicos

de negócios e engenharia permitem mudanças de última hora na produção e oferecem

a capacidade de responder de forma flexível a interrupções e falhas em nome de

fornecedores (por exemplo) [86]. Os seres humanos, máquinas e recursos comunicam

entre si tão naturalmente como numa rede social. Os CPSs, criam uma cópia virtual

do mundo físico e tomam decisões descentralizadas [84]. Os produtos inteligentes

conhecem detalhes de como eles foram fabricados e qual o seu destino. As suas

interfaces com mobilidade, logística e redes inteligentes tornarão a fábrica inteligente

o elemento chave das infraestruturas inteligentes do futuro, resultando na

transformação das cadeias de valor convencionais e no surgimento de novos modelos

comerciais [86].

Page 45: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

33

3.5.3 CPS (Cyber-Physical System)

Com a última revolução industrial surgem componentes emergentes que são

fundamentais na indústria. Esta adoção introduz os Cyber-physical Systems (CPS),

que fundem o mundo físico com o virtual [84]. Os CPSs são redes online de máquinas

sociais que são organizadas de forma semelhante às redes sociais. Criam uma rede

inteligente de máquinas, propriedades, sistema de tecnologias, produtos inteligentes

e indivíduos em toda a cadeia de valor e o ciclo de vida completo do produto. Sensores

e elementos de controlo permitem que as máquinas sejam ligadas a plantas, frotas,

redes e seres humanos [87]. É útil para vários fins, como engenharia, configuração,

serviço, diagnóstico, operação e serviço de produtos, dispositivos de campo,

máquinas ou plantas [82].

3.5.4 IoT (Internet of Things)

Com o desencadeamento da internet, também surgem novos cenários como a Internet

of Things, advindos do paradigma Indústria 4.0, que permitem a comunicação entre

humanos, bem como máquinas em CPS, nas redes de grande escala [88].

Antes de surgir o conceito Internet of Things, já se detinha uma visão de tecnologias

com a capacidade de interligar máquinas e facilitar o trabalho das pessoas através da

partilha de informações [89] [90].

O conceito Internet of Things (IoT) é um conceito inovador, e que rapidamente se

tornou muito popular nesta área, anda a ganhar terreno no campo das

telecomunicações sem fio [91]. Apesar de não ser apenas sugerida para o domínio

industrial [92], esta importa-se com a conexão em rede das tecnologias envolvidas,

que poderão estar equipadas com inteligência ubíqua [91]. Esta conexão inteligente

entre as redes existentes e a computação consciente do contexto utilizando recursos

de rede, é uma parte indispensável da IoT [93], dado que esta tecnologia aumentará

a ubiquidade da internet integrando todos os objetos para a interação através de

sistemas incorporados, resultando numa rede altamente distribuída de dispositivos

que comunicam entre si e seres humanos [91]. A ideia básica deste conceito é um

sistema onde os itens físicos são enriquecidos com dispositivos eletrónicos

incorporados, como tags RFID (Radio-Frequency IDentification), sensores, entre

outros, conectados à internet [85], que através da rede de computadores, serão

capazes de interagir uns com os outros para alcançar objetivos em comum [84][91].

Page 46: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

34

No entanto, apesar de a RFID representar um pilar importante para fomentar a Internet

of Things, não é a única habilitada a tal. A Near Field Communication (NFC), Wireless

Sensors (and Atuators) Networks (WSN) e Machine to Machine (M2M) assumem um

lugar na vanguarda das tecnologias que conduzem esta visão. Graças aos avanços

rápidos nas tecnologias subjacentes, este paradigma está a abrir enormes

oportunidades para um grande número de aplicações inovadoras que prometem

melhorar a nossa qualidade de vida. Não deve ser esquecido que as palavras

“Internet” e “Coisas”, quando juntas, assumem um significado que introduz um nível

de inovação no atual mundo das tecnologias de informação.

Reconhece-se que a essência do paradigma IoT depende de objetos inteligentes e

redes inteligentes [89].

Uma visão adicional correlacionada com a IoT é a chamada Web of Things, que de

acordo com os padrões da Web são reutilizados para se conectar e integrar nos

objetos da vida diária da Web que contem um dispositivo incorporado ou um

computador [91].

De facto, é indubitável que a principal força da ideia da IoT é o alto impacto que terá

sobre vários aspetos da vida quotidiana, bem como o comportamento de potenciais

utilizadores [94]. Reconhece-se que a essência deste paradigma depende de objetos

e redes inteligentes [89]. Da perspetiva industrial, as consequências mais aparentes

também serão visíveis em áreas como automação e fabrico, logística, gestão de

processos/ negócios, transporte inteligente de pessoas e bens [94]. Para que a

tecnologia desapareça da consciência do utilizador, a IoT exige uma compreensão

partilhada da situação dos seus utilizadores e aparelhos, arquiteturas de software e

redes de comunicação penetrantes para processar e transmitir a informação

contextual para onde é relevante e, por fim, as ferramentas de análise na IoT que

visam o comportamento autónomo e inteligente. Com estes conceitos fundamentais,

a conectividade inteligente e a computação consciente do contexto poderão ser

realizadas [93].

Como tal, pode afirmar-se que após a integração desta tecnologia, seja em que

momento for, em qualquer lugar, teremos conectividade para qualquer coisa [91].

Embora não seja exclusivamente sugerido para redes industriais, a IoT preocupa-se

com a interconexão de todos os tipos de dispositivos incorporados e promete

inaugurar a automação em todos os campos das redes industriais [92].

Page 47: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

35

3.5.5 Fábricas Inteligentes

As fábricas inteligentes, equipadas com sensores, atores e sistemas autónomos [83]

representam um ambiente de fabrico consciente, utilizando tecnologias de ponta e

auxiliando pessoas e máquinas na execução das suas tarefas [94]. Com a introdução

de máquinas sensíveis ao contexto em que operam [89], podem revitalizar o setor

industrial, facilitando a competitividade e as exportações globais, proporcionando

empregos sustentáveis, melhorando radicalmente o desempenho e facilitando a

inovação de fabrico [95].

No domínio industrial, os CPSs envolvem máquinas inteligentes, sistemas de

armazenamento e instalações de produção capazes de trocar informações, de forma

autónoma, desencadear ações e controlar-se independentemente. Isso facilita

melhorias fundamentais para os processos industriais envolvidos no fabrico,

engenharia, uso de materiais e cadeia de suprimentos e gestão do ciclo de vida. As

fábricas inteligentes que já começaram a aparecer empregam uma abordagem

completamente nova à produção [91].

O intuito da implementação deste conceito é a elaboração de um pacote global ideal,

aproveitando o potencial tecnológico e económico existente através de um processo

de inovação sistemática com base nas habilidades, desempenho e know-how da força

de trabalho [86]. A indústria 4.0 irá focar-se na integração horizontal, através de uma

nova geração de redes globais de cadeia de valor, na integração digital de engenharia

topo de gama em toda a cadeia de valor e impacto de tecnologias exponenciais e na

integração vertical de sistemas de produção inteligentes [86][87].

Em suma, pode concluir-se que o fenómeno da indústria 4.0 traz com ele mudanças,

principalmente nas tecnologias de informação, no setor industrial, tornando-se um

desafio que assegura e desenvolve a competitividade nas organizações.

Page 48: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

36

Page 49: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

37

4. PLANEAMENTO DO TRABALHO

Dada a extensão deste projeto foram estabelecidas determinadas metas. Assim

sendo, neste capítulo expõe-se uma breve descrição das tarefas que serão realizadas,

bem como a calendarização para as mesmas, abaixo apresentadas:

Tabela 1 - Calendarização das tarefas

Tarefa 1 – Identificação de lacunas nos padrões cloud na técnica 4 Step Rule Set

A elaboração desta tarefa requer um estudo e conhecimento sobre as práticas e os

padrões cloud. Após essa análise, torna-se necessário identificar lacunas num

conjunto de práticas e padrões cloud na técnica 4SRS, onde será analisado se as

arquiteturas lógicas (que derivam dessa técnica) incorporam ou não essas práticas e

padrões e para saber qual o padrão necessário.

Tarefa 2 – Propor uma nova versão do método para incluir padrões cloud

Depois de identificar e organizar as práticas e os padrões cloud prevê-se assim a

criação de uma nova abordagem, tendo em conta os resultados anteriores.

Tarefa 3 – Identificação dos serviços

Esta tarefa refere-se à especificação de um conjunto de serviços. Para a identificação

dos mesmos foi tido em consideração o conceito de aplicação de cloud-native,

principalmente para seguir padrões arquiteturais como Horizontal Scaling Pattern,

Database Sharing Pattern, entre outros. Também será necessário analisar os padrões

Tarefas Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro

20-28 1-15 1-30 1-15 16-30 1-15 16-31 1-15 16-30 1-15 16-31 1-15 16-31 1-15 16-30 1-22

Tarefa 1

Tarefa 2

Tarefa 3

Tarefa 4

Tarefa 5

Tarefa 6

Tarefa 7

Tarefa 8

Tarefa 9

Page 50: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

38

de interoperabilidade em ambientes cloud e especificar os serviços entre a cloud e

outros sistemas.

Tarefa 4 – Propor uma nova versão de serviços

Como trabalho futuro pretende-se apresentar uma nova metodologia que auxilie a

conceção de serviços, segundo padrões arquiteturais em cloud, de maneira a

fomentar uma implementação e deployment adequadas às aplicações.

Tarefa 5 – Investigação do caso de estudo 1

Será feita uma análise sobre o caso de estudo 1.

Tarefa 6 – Investigação do caso de estudo 2

Será feita uma análise sobre o caso de estudo 2.

Tarefa 7 – Análise dos resultados dos casos de estudo

Com o fundamento das investigações feitas anteriormente, serão propostas as

abordagens endereçadas na conceção das arquiteturas lógicas

Tarefa 8 – Elaboração do documento final

Nesta tarefa pressupõe-se uma revisão ao documento que constitui todo o trabalho

feito e os resultados obtidos durante o projeto, no qual já consta a contextualização

teórica realizada anteriormente.

Tarefa 9 – Entrega da dissertação

A posteriori é feita a entrega da dissertação.

Page 51: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

39

5. CONCLUSÕES

A interoperabilidade e a normalização são os principais fatores para a racionalização

de custos e investimentos dos processos de negócio, daí a extrema importância da

adoção da cloud nas organizações. A facilidade em gerir a infraestrutura, tanto no

hardware como no software é simplificada, existem menos interrupções, há uma

gestão de desastres que possam surgir, entre outros.

No entanto, uma das grandes problemáticas do ambiente cloud são as limitações do

software e as suas várias incompatibilidades, problemas de definição de requisitos,

segurança, especificação de serviços, etc. Como tal, é importante que essas

alterações sejam feitas numa fase inicial do desenvolvimento do projeto. E é neste

sentido que surge a proposta do estudo de abordagens que utilizam padrões de

arquiteturas cloud.

O intuito deste documento é expor uma visão pessoal do tema e para isso foi

elaborada uma revisão de literatura, onde foram exploradas as tarefas previstas e

expostas as principais ideias de modo a responder aos objetivos.

Após a revisão de literatura é evidente que o futuro será baseado em empresas e

indústrias inteligentes. É possível atingir um nível de elegância e eficiência

tecnológica? Em que a flexibilidade e a adaptabilidade é tal que os obstáculos mais

complexos são ultrapassados? Sim, é.

Para o desenvolvimento do projeto foi identificado o método de investigação, o Design

Science Research (DSR), onde será proposto um artefato 4SRS que incorporará os

padrões cloud e de interoperabilidade, em que será avaliado analisando os casos de

estudo.

Tal como referido anteriormente, o objetivo deste projeto é a introdução de boas

práticas de desenvolvimento de aplicações da cloud, aquando a conceção de

arquiteturas lógicas, onde a técnica 4SRS (Four Step Rule Set) vai ser alvo de análise,

uma vez que permite derivar arquiteturas baseadas em modelos de requisitos. Os

casos de estudo são realizados no âmbito da associação CCG/ ZGDV – Centro de

Computação Gráfica, em colaboração com as equipas de trabalho EPMQ

(Engineering Process Maturity and Quality) e terão contribuições distintas para o

desenvolvimento do artefato.

Page 52: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de
Page 53: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

41

BIBLIOGRAFIA

[1] E. Y. Nakagawa, P. Oliveira Antonino, and M. Becker, “Reference architecture

and product line architecture: A subtle but critical difference,” Lect. Notes

Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes

Bioinformatics), vol. 6903 LNCS, no. October 2016, pp. 207–211, 2011.

[2] F. B. Vernadat, “Interoperable enterprise systems: Principles, concepts, and

methods,” Annu. Rev. Control, vol. 31, no. 1, pp. 137–145, 2007.

[3] P. K. Senyo, E. Addae, and R. Boateng, “Cloud computing research: A review

of research themes, frameworks, methods and future research directions,” Int.

J. Inf. Manage., vol. 38, no. 1, pp. 128–139, 2018.

[4] T. Branco, F. De Sá-Soares, and A. L. Rivero, “Key Issues for the Successful

Adoption of Cloud Computing,” Procedia Comput. Sci., vol. 121, pp. 115–122,

2017.

[5] R. C. Motta, K. M. De Oliveira, and G. H. Travassos, “Rethinking Interoperability

in Contemporary Software Systems,” Proc. - 2017 IEEE/ACM Jt. 5th Int. Work.

Softw. Eng. Syst. 11th Work. Distrib. Softw. Dev. Softw. Ecosyst. Syst. JSOS

2017, pp. 9–15, 2017.

[6] A. V. Parameswaran and A. Chaddha, “Cloud Interoperability and

Standardization,” Infosys Technol. Limited/SETLabs Briefings, vol. 7, no. 7, pp.

19–26, 2009.

[7] M. Dunkerley and M. Bradley, “Manufacturing Sofware for Industry 4.0,” pp. 0–

17, 1996.

[8] M. Berndtsson, J. Hansson, B. Olsson, and B. Lundell, Thesis Projects, A Guide

for Students in Computer Science and Information Systems, Second Edi.

Springer, 2008.

[9] V. Vaishnavi and B. Kuechler, “Design Science Research in Information

Systems,” Ais, p. 45, 2004.

[10] J. Webster and R. T. Watson, “Analyzing the Past to Prepare for the Future :

Writing a Literature Review ANALYZING THE PAST TO PREPARE FOR THE

FUTURE : WRITING A,” vol. 26, no. 2, 2016.

[11] K. Peffers, T. Tuunanen, M. A. Rothenberger, and S. Chatterjee, “A Design

Science Research Methodology for Information Systems Research,” J. Manag.

Page 54: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

42

Inf. Syst., vol. 24, no. 3, pp. 45–77, 2007.

[12] R. K. Yin, Case Study Research Design and Methods, Third Edit. 2003.

[13] B. Kitchenham and L. Pickard, “Case Studies for Method and Tool Evaluation.”

1995.

[14] R. J. Machado, J. M. Fernandes, P. Monteiro, and H. Rodrigues, “Transformation

of UML Models for Service-Oriented Software Architectures,” 12th IEEE Int.

Conf. Work. Eng. Comput. Syst., pp. 173–182, 2002.

[15] J. M. Fernandes and R. J. Machado, Requirements in Engineering Projects.

Springer, 2016.

[16] J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language

Reference Manual, Second Edi. Boston, San Francisco, New York, Toronto,

Montreal, London, Munich, Paris, Madrid, Capetown, Sydney, Tokyo, Signapore,

Mexico City: Addison-Wesley, 2005.

[17] J. M. Fernandes, R. J. Machado, and H. D. Santos, “Modeling industrial

embedded systems with UML,” Hardware/Software Codesign - Proc. Int. Work.,

pp. 18–22, 2000.

[18] H. Gomaa, “Designing Software Product Lines with UML,” 2012 35th Annu. IEEE

Softw. Eng. Work., no. April, p. 3154, 2005.

[19] Object Management Group Inc., “Service oriented architecture Modeling

Language (SoaML) Specification,” no. May, 2012.

[20] B. Elvesæter, D. Panfilenko, S. Jacobi, and C. Hahn, “Aligning business and IT

models in service-oriented architectures using BPMN and SoaML,” Proc. First

Int. Work. Model. Interoperability - MDI ’10, pp. 61–68, 2010.

[21] C. Casanave, “Enterprise Service Oriented Architecture Using the OMG SoaML

Standard,” Model Driven Solut. Inc., White Pap., pp. 1–21, 2009.

[22] J. A. Zachman, “A framework for information systems architecture,” IBM

Systems Journal, vol. 26, no. 3. pp. 276–292, 1987.

[23] M. Lankhorst et al., Enterprise architecture at work: Modelling, communication,

and analysis. 2005.

[24] N. Rozanski and E. Woods, Software Systems Architecture, Second Edi. Upper

Saddle River, Boston, Indianapolis, San Francisco, New York, Toronto,

Montreal, London, Munich, Paris, Madrid, Capetown, Sydney, Tokyo, Singapore,

Mexico City, 2011.

[25] D. Namiot and M. Sneps-sneppe, “On Micro-services Architecture,” Int. J. Open

Page 55: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

43

Inf. Technol., vol. 2, no. 9, pp. 24–27, 2014.

[26] S. Kang and Y. Choi, “Designing logical architectures of software systems,” Proc.

- Sixth Int. Conf. Softw. Eng., Artif. Intell. Netw. Parallel/Distributed Comput. First

ACIS Int. Work. Self-Assembling Wirel. Netw., SNPD/SAWN 2005, vol. 2005,

pp. 330–337, 2005.

[27] L. Goble and J.-J. C. Meyer, Deontic Logic and Artificial Normative System.

Springer, 2006.

[28] P. Krüchten, “Architectural Blueprints -The ‘4+ 1’ View Model of Software

Architecture,” IEEE Softw., no. November 1995, pp. 42–50, 1995.

[29] N. Ferreira, N. Santos, R. J. MacHado, and D. Gašević, “Derivation of Process-

Oriented Logical Architectures: An Elicitation Approach for Cloud Design,” Lect.

Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes

Bioinformatics), vol. 7343 LNCS, pp. 44–58, 2012.

[30] A. Bragança and R. J. Machado, “Adopting computational independent models

for derivation of architectural requirements of software product lines,” Proc. -

Fourth Int. Work. Model. Methodol. Pervasive Embed. Software, MOMPES

2007, pp. 91–101, 2007.

[31] P. Monteiro, “Model-based Transformations for Software Architectures : a

pervasive application case study,” 2005.

[32] M. Y. Santos and R. J. Machado, “On the derivation of class diagrams from use

cases and logical software architectures,” Proc. - 5th Int. Conf. Softw. Eng. Adv.

ICSEA 2010, pp. 107–113, 2010.

[33] R. J. Machado, J. M. Fernandes, P. Monteiro, and H. Rodrigues, “Transformation

of UML Models for Service-Oriented Software Architectures,” 12th IEEE Int.

Conf. Work. Eng. Comput. Syst., pp. 173–182, 2005.

[34] J. Fernandes and R. Machado, “From use cases to objects: an industrial

information systems case study analysis,” Oois 2001, 2001.

[35] R. J. Machado, I. Ramos, and J. M. Fernandes, “Specification of requirements

models,” Eng. Manag. Softw. Requir., no. 1, pp. 47–68, 2005.

[36] N. Medvidovic and S. Malek, “Software deployment architecture and quality-of-

service in pervasive environments,” Int. Work. Eng. Softw. Serv. pervasive

Environ. conjunction with 6th ESEC/FSE Jt. Meet. - ESSPE ’07, no. 7, pp. 47–

51, 2007.

[37] D. E. Perry, T. B. Laboratories, M. Hill, and A. L. Wolf, “F o u n d a t i o n s for t

Page 56: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

44

h e S t u d y of Software A r c h i t e c t u r e,” vol. 17, no. 4, 1992.

[38] M. Villamizar, O. Garcés, H. Castro, M. Verano, L. Salamanca, and S. Gil,

“Evaluating the Monolithic and the Microservice Architecture Pattern to Deploy

Web Applications in the Cloud,” 10th Comput. Colomb. Conf., pp. 583–590,

2015.

[39] A. Balalaie, A. Heydarnoori, and P. Jamshidi, “Migrating to Cloud-Native

architectures using microservices: An experience report,” Commun. Comput. Inf.

Sci., vol. 567, pp. 201–215, 2016.

[40] C. Wang, X. Li, Y. Chen, Y. Zhang, O. Diessel, and X. Zhou, “Service-Oriented

Architecture on FPGA-Based MPSoC,” IEEE Trans. Parallel Distrib. Syst., vol.

28, no. 10, pp. 2993–3006, 2017.

[41] K. Jeffery and B. Neidecker-Lutz, “The Future of Cloud Computing:

Opportunities for European Cloud Computing Beyond 2010,” 2010.

[42] D. Carney, D. Fisher, E. Morris, and P. Place, “Some Current Approaches to

Interoperability,” Integr. Vlsi J., no. August, p. 27, 2005.

[43] A. Delgado and F. Ruiz, “Model transformations for Business-IT alignment: from

collaborative business process to SoaML service model,” Proc. 27th …, pp.

1720–1722, 2012.

[44] N. Santos, C. E. Salgado, H. Rodrigues, M. Melo, N. Ferreira, and R. J.

Machado, “Migration from monolithic to cloud applications : derivation of a

microservices logical architecture in SoaML based in UML Use Cases,” pp. 1–

15.

[45] D. Chen and F. B. Vernadat, “Enterprise Interoperability: A Standardsation

View,” Springer. Boston, MA, 2003.

[46] D. Soares and L. Amaral, “Reflections on the Concept of Interoperability in

Information Systems,” Proc. 16th Int. Conf. Enterp. Inf. Syst., pp. 331–339, 2014.

[47] P. Wegner, “Interoperability,” vol. 28, no. 1, 1996.

[48] IEEE, The IEEE Standard Dictionary of Electrical and Electronics Terms, 6th ed.

New York, 1997.

[49] D. Chen and G. Doumeingts, “European initiatives to develop interoperability of

enterprise applications - Basic concepts, framework and roadmap,” Annu. Rev.

Control, vol. 27 II, pp. 153–162, 2003.

[50] D. Carney, D. Fisher, and P. Place, “Topics in Interoperability : System-of-

Systems Evolution,” Softw. Eng. Institute, Carnegie Mellon Univ. Pittsburgh, PA,

Page 57: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

45

no. March, 2005.

[51] R. Rezaei, T. K. Chiew, and S. P. Lee, “An interoperability model for ultra large

scale systems,” Adv. Eng. Softw., vol. 67, pp. 22–46, 2014.

[52] B. J. Sauser, R. R. Reilly, and A. J. Shenhar, “Why projects fail? How

contingency theory can provide new insights - A comparative analysis of NASA’s

Mars Climate Orbiter loss,” Int. J. Proj. Manag., vol. 27, no. 7, pp. 665–679, 2009.

[53] D. Zissis and D. Lekkas, “Addressing cloud computing security issues,” Futur.

Gener. Comput. Syst., vol. 28, no. 3, pp. 583–592, 2012.

[54] C. M. Chituc, “XML interoperability standards for seamless communication: An

analysis of industry-neutral and domain-specific initiatives,” Comput. Ind., vol.

92–93, pp. 118–136, 2017.

[55] L. E. Whitman and H. Panetto, “The missing link: Culture and language barriers

to interoperability,” Annu. Rev. Control, vol. 30, no. 2, pp. 233–241, 2006.

[56] F. B. Vernadat, Technical, semantic and organizational issues of enterprise

interoperability and networking, vol. 13, no. PART 1. IFAC, 2009.

[57] E. Yahia, A. Aubry, E. Yahia, and A. Aubry, “Formal measures for semantic

interoperability assessment in cooperative enterprise information systems e

Panetto To cite this version : Formal measures for semantic interoperability

assessment in cooperative enterprise information systems,” 2012.

[58] D. Chen, G. Doumeingts, and F. Vernadat, “Architectures for enterprise

integration and interoperability: Past, present and future,” Comput. Ind., vol. 59,

no. 7, pp. 647–659, 2008.

[59] D. Chen, “Enterprise Interoperability,” vol. 38, no. October, 2009.

[60] D. Chen and N. Daclin, “Barriers driven methodology for enterprise

interoperability,” IFIP Int. Fed. Inf. Process., vol. 243, no. September, pp. 453–

460, 2007.

[61] G. Philipson, “A Brief History of Computing,” no. December, 2004.

[62] D. Chen, “Enterprise Interoperability Framework,” 2006.

[63] A. K. Y. Wong, P. Ray, N. Parameswaran, and J. Strassner, “Ontology mapping

for the interoperability problem in network management,” IEEE J. Sel. Areas

Commun., vol. 23, no. 10, pp. 2058–2068, 2005.

[64] K. Kosanke, “Standards in Enterprise Inter- and Intra-Organisational

Integration,” Knowl. Shar. Integr. Enterp., vol. 183, pp. 9–20, 2005.

[65] C. Schlenoff and M. Gruninger, “The Process Specification Language (PSL)

Page 58: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

46

Overview and Version 1.0 Specification,” Tech. Rep., pp. 1–83, 2004.

[66] D. Lee and M. Yannakakis, “Principles and Methods of Testing Finite State

Machines,” Murray Hill, New Jersey, 1996.

[67] F. Mattiello-Francisco, E. Martins, A. R. Cavalli, and E. T. Yano, “InRob: An

approach for testing interoperability and robustness of real-time embedded

software,” J. Syst. Softw., vol. 85, no. 1, pp. 3–15, 2012.

[68] C. Agostinho, M. Sesana, R. Jardim-Goncalves, and S. Gusmeroli, “Model-

driven service engineering towards the manufacturing liquid-sensing enterprise,”

3rd Int. Conf. Model. Eng. Softw. Dev., pp. 608–617, 2015.

[69] R. Buyya, C. S. Yeo, S. Venugopal, J. Broberg, and I. Brandic, “Cloud computing

and emerging IT plaforms: Vision, hype, and reality for delivering computing as

the 5th utility,” 2009 9th IEEE/ACM Int. Symp. Clust. Comput. Grid, CCGRID

2009, 2009.

[70] L. Francis, “Cloud Computing: Implications for Enterprise Software Vendors

(ESV),” 2009.

[71] Q. Zhang, L. Cheng, and R. Boutaba, “Cloud computing: State-of-the-art and

research challenges,” J. Internet Serv. Appl., vol. 1, no. 1, pp. 7–18, 2010.

[72] Y. Jadeja and K. Modi, “Cloud computing - Concepts, architecture and

challenges,” 2012 Int. Conf. Comput. Electron. Electr. Technol. ICCEET 2012,

no. March 2012, pp. 877–880, 2012.

[73] I. Foster, Y. Zhao, I. Raicu, and S. Lu, “Cloud Computing and Grid Computing

360-Degree Compared,” Shanxi Electron. Technol., 2008.

[74] B. P. Rimal, E. Choi, and I. Lumb, “A taxonomy and survey of cloud computing

systems,” NCM 2009 - 5th Int. Jt. Conf. INC, IMS, IDC, pp. 44–51, 2009.

[75] M. Armbrust et al., “A view of cloud computing,” Commun. ACM, vol. 53, no. 4,

p. 50, 2010.

[76] M. Armbrust, A. Fox, R. Griffith, A. Joseph, and RH, “Above the clouds: A

Berkeley view of cloud computing,” Univ. California, Berkeley, Tech. Rep. UCB

, pp. 07–013, 2009.

[77] P. Mell and T. Grance, “The NIST Definition of Cloud Computing

Recommendations of the National Institute of Standards and Technology,” Natl.

Inst. Stand. Technol. Inf. Technol. Lab., vol. 145, p. 7, 2011.

[78] T. Dillon, C. Wu, and E. Chang, “Cloud Computing: Issues and Challenges,”

2010 24th IEEE Int. Conf. Adv. Inf. Netw. Appl., pp. 27–33, 2010.

Page 59: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

47

[79] R. B. Bohn, J. Messina, F. Liu, J. Tong, and J. Mao, “NIST cloud computing

reference architecture,” Proc. - 2011 IEEE World Congr. Serv. Serv. 2011, no.

April, pp. 594–596, 2011.

[80] B. Wilder, Cloud Architecture Patterns. Beijing, Cambridge, Farnham, Köln,

Sebastopol, Tokyo: O’Reilly Media, 2012.

[81] A. Azevedo and A. Almeida, “Factory templates for digital factories framework,”

Robot. Comput. Integr. Manuf., vol. 27, no. 4, pp. 755–771, 2011.

[82] R. Drath and A. Horch, “Industrie 4.0: Hit or hype? [Industry Forum],” IEEE Ind.

Electron. Mag., vol. 8, no. 2, pp. 56–58, 2014.

[83] H. Lasi, P. Fettke, H. G. Kemper, T. Feld, and M. Hoffmann, “Industry 4.0,” Bus.

Inf. Syst. Eng., vol. 6, no. 4, pp. 239–242, 2014.

[84] M. Hermann, T. Pentek, and B. Otto, “Working Paper Design Principles for

Industrie 4.0 Scenarios: A Literature Review,” no. 1, p. 16, 2015.

[85] F. Shrouf, J. Ordieres, and G. Miragliotta, “Smart Factories in Industry 4 . 0 : A

Review of the Concept and of Energy Management Approached in Production

Based on the Internet of Things Paradigm,” pp. 697–701, 2014.

[86] H. (Deutsche P. A. Henning, Kagermann(National Academy of Science and

Engineering). Wolfgang, Wahlster (German Research Center for Artificial

Intelligence). Johannes, “Recommendations for implementing the strategic

initiative INDUSTRIE 4.0,” Final Rep. Ind. 4.0 WG, no. April, p. 82, 2013.

[87] Deloitte, “Industry 4.0. Challenges and solutions for the digital transformation

and use of exponential technologies,” Deloitte, pp. 1–30, 2015.

[88] M. Keller, M. Rosenberg, M. Brettel, and N. Friederichsen, “How Virtualization,

Decentralization and Network Building Change the Manufacturing Landscape:

An Industry 4.0 Perspective,” Int. J. Mech. Aerospace, Ind. Mechatron. Manuf.

Eng., vol. 8, no. 1, pp. 37–44, 2014.

[89] G. Miragliotta, A. Perego, and A. Tumino, “Internet of Things: Smart Present or

Smart Future?,” Dep. Manag. Econ. Ind. Eng. Politec. di Milano, 2012.

[90] M. Weiser, “The Computer for the 21st Century,” Scientific American, vol. 265,

no. 3. pp. 94–104, 1991.

[91] S. Li, L. Da Xu, and S. Zhao, “The internet of things: a survey,” Inf. Syst. Front.,

vol. 17, no. 2, pp. 243–259, 2015.

[92] D. F. H. Sadok, L. L. Gomes, M. Eisenhauer, and J. Kelner, “A middleware for

industry,” Comput. Ind., vol. 71, pp. 58–76, 2015.

Page 60: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

48

[93] J. Gubbi, R. Buyya, S. Marusic, and M. Palaniswami, “Internet of Things (IoT): A

Vision, Architectural Elements, and Future Directions,” Futur. Gener. Comput.

Syst., vol. 29, no. 7, pp. 1645–1660, 2013.

[94] F. Xia, L. T. Yang, L. Wang, and A. Vinel, “Internet of Things,” Int. J. Commun.

Syst., vol. 25, no. 9, p. 1101, 2012.

[95] J. Davis, T. Edgar, J. Porter, J. Bernaden, and M. Sarli, “Smart manufacturing,

manufacturing intelligence and demand-dynamic performance,” Comput. Chem.

Eng., vol. 47, pp. 145–156, 2012.

Page 61: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

49

APÊNDICE – MATRIZ DE CONCEITOS

Page 62: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

50

Page 63: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

51

Page 64: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

52

Page 65: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

53

Page 66: Conceção de arquiteturas lógicas para aplicações em cloud … · 2018. 2. 20. · Conceção de arquiteturas lógicas para aplicações em cloud computing ... A inclusão de

54