... | @@ -5,7 +5,7 @@ |
... | @@ -5,7 +5,7 @@ |
|
## 7.2 Diagrama de Deployment
|
|
## 7.2 Diagrama de Deployment
|
|
- O projeto foi dividido em camadas que executam em dispositivos diferentes, e podem ser visualizadas na figura a seguir, juntamente das principais tecnologias envolvidas. Cada componente, incluindo possíveis subcomponentes, é instanciado em um contêiner **Docker** conforme será explicado no item 7.4.
|
|
- O projeto foi dividido em camadas que executam em dispositivos diferentes, e podem ser visualizadas na figura a seguir, juntamente das principais tecnologias envolvidas. Cada componente, incluindo possíveis subcomponentes, é instanciado em um contêiner **Docker** conforme será explicado no item 7.4.
|
|
|
|
|
|
<img src="http://www.tools.ages.pucrs.br/EasyWork/Wiki/raw/master/7.%20arquitetura/Deployment%20Diagram%20Easywork.png" alt="DEPLOYMENT_DIAGRAM"/>
|
|
<img src="http://tools.ages.pucrs.br/EasyWork/Wiki/raw/master/7.%20arquitetura/Deployment%20Diagram%20Easywork.png" alt="DEPLOYMENT_DIAGRAM"/>
|
|
|
|
|
|
- O dispositivo **Client** faz parte da camada de Front-End. Este dispositivo possui um componente **React.js Application** que é uma abstração de uma aplicação desenvolvida na linguagem **Javascript** utilizando a biblioteca **React.js** para comunicação com o usuário.
|
|
- O dispositivo **Client** faz parte da camada de Front-End. Este dispositivo possui um componente **React.js Application** que é uma abstração de uma aplicação desenvolvida na linguagem **Javascript** utilizando a biblioteca **React.js** para comunicação com o usuário.
|
|
- O dispositivo **Server** faz parte da camada de Back-end. Este dispositivo possui um componente **REST API** (Representational State Transfer - Application Programming Interface) que é uma abstração de uma aplicação desenvolvida na linguagem **Java** utilizando o framework **Spring** para implementar o conceito de **microsserviços**. Serve para validar regras de negócio e comunicar a camada do usuário com o servidor de banco de dados através de protocolo HTTP.
|
|
- O dispositivo **Server** faz parte da camada de Back-end. Este dispositivo possui um componente **REST API** (Representational State Transfer - Application Programming Interface) que é uma abstração de uma aplicação desenvolvida na linguagem **Java** utilizando o framework **Spring** para implementar o conceito de **microsserviços**. Serve para validar regras de negócio e comunicar a camada do usuário com o servidor de banco de dados através de protocolo HTTP.
|
... | @@ -13,19 +13,19 @@ |
... | @@ -13,19 +13,19 @@ |
|
<br><br>
|
|
<br><br>
|
|
|
|
|
|
## 7.3 Visão de subcomponentes da aplicação REST
|
|
## 7.3 Visão de subcomponentes da aplicação REST
|
|
- Cada rota disponibilizada para uso compõe um subcomponente do componente **REST API** descrito acima. Estas rotas e sua breve explicação podem ser encontradas na <a href="http://www.tools.ages.pucrs.br/EasyWork/Wiki/wikis/9.-rotas-api">wiki 9. rotas api</a>.
|
|
- Cada rota disponibilizada para uso compõe um subcomponente do componente **REST API** descrito acima. Estas rotas e sua breve explicação podem ser encontradas na <a href="http://tools.ages.pucrs.br/EasyWork/Wiki/wikis/9.-rotas-api">wiki 9. rotas api</a>.
|
|
- Outro modo de visualização e entendimento de comportamento das rotas é através da ferramenta <a href="https://www.getpostman.com/">**Postman**</a>, cujas coleções de rotas por microsserviço podem ser obtidas no <a href="http://www.tools.ages.pucrs.br/EasyWork/Wiki/tree/master/9.%20rotas%20api">repositório 9. rotas api</a>.
|
|
- Outro modo de visualização e entendimento de comportamento das rotas é através da ferramenta <a href="https://getpostman.com/">**Postman**</a>, cujas coleções de rotas por microsserviço podem ser obtidas no <a href="http://tools.ages.pucrs.br/EasyWork/Wiki/tree/master/9.%20rotas%20api">repositório 9. rotas api</a>.
|
|
<br><br>
|
|
<br><br>
|
|
|
|
|
|
## 7.4 Conteinerização e Diagrama de Microsserviços
|
|
## 7.4 Conteinerização e Diagrama de Microsserviços
|
|
- Para a implantação do sistema (deploy) utiliza-se <a href="https://www.docker.com/">**Docker**</a>, uma tecnologia de software que permite que a utilização contêineres (virtualizações em nível de sistema operacional) que empacotam uma aplicação e suas dependências em um recipiente virtual.
|
|
- Para a implantação do sistema (deploy) utiliza-se <a href="https://docker.com/">**Docker**</a>, uma tecnologia de software que permite que a utilização contêineres (virtualizações em nível de sistema operacional) que empacotam uma aplicação e suas dependências em um recipiente virtual.
|
|
- Mais precisamente, utiliza-se <a href="https://docs.docker.com/compose/overview/">**Docker Compose**</a>, uma ferramenta que define e implementa um ambiente contendo múltiplos contêiners Docker.
|
|
- Mais precisamente, utiliza-se <a href="https://docs.docker.com/compose/overview/">**Docker Compose**</a>, uma ferramenta que define e implementa um ambiente contendo múltiplos contêiners Docker.
|
|
- Abaixo encontra-se o diagrama de microsserviços onde:
|
|
- Abaixo encontra-se o diagrama de microsserviços onde:
|
|
* a caixa em branco representa o usuário do sistema, tipicamente um browser web.
|
|
* a caixa em branco representa o usuário do sistema, tipicamente um browser web.
|
|
* as caixas em azul representam as aplicações dockerizadas e implementadas no projeto.
|
|
* as caixas em azul representam as aplicações dockerizadas e implementadas no projeto.
|
|
* as caixas em cinza representam as aplicações não implementadas no projeto, podendo fazer parte de um futuro MVP.
|
|
* as caixas em cinza representam as aplicações não implementadas no projeto, podendo fazer parte de um futuro MVP.
|
|
|
|
|
|
<img src="http://www.tools.ages.pucrs.br/EasyWork/Wiki/raw/master/7.%20arquitetura/Microservices%20Diagram%20Easywork.png" alt="MICROSERVICES_DIAGRAM"/>
|
|
<img src="http://tools.ages.pucrs.br/EasyWork/Wiki/raw/master/7.%20arquitetura/Microservices%20Diagram%20Easywork.png" alt="MICROSERVICES_DIAGRAM"/>
|
|
<br><br>
|
|
<br><br>
|
|
|
|
|
|
## 7.5 Análise dos princípios SOLID
|
|
## 7.5 Análise dos princípios SOLID
|
... | | ... | |