Olá, aluno(a), seja muito bem-vindo(a) a mais uma lição da disciplina de Análise e Projetos de Sistemas. Nesta lição, você irá aprender a construir o Diagrama de Implantação da UML, este que tem características bastante específicas, porque foca na infraestrutura e hardware do software que está sendo modelado (RUMBAUGH; JACOBSON; BOOCH, 1999; GUEDES, 2011).
Você utilizará o diagrama de implantação para fornecer ao desenvolvedor uma ótica da infraestrutura de hardware necessária para a implantação do software. Nesse diagrama, você terá condições de especificar os servidores em que o software “rodará” e as suas configurações físicas em detalhes. Bacana, hein!
O Diagrama de implantação pode ser considerado um diagrama que agrega à UML a possibilidade de definir o projeto físico para a implantação do software e não somente as suas características lógicas de funcionalidade. Esse é um recurso que falta em versões anteriores da UML ou mesmo em outras linguagens para modelagem de projetos de software.
Bom! Temos muito o que discutir e aprender sobre o Diagrama de Implantação da UML. Então, vamos lá!
Nota: o Diagrama de Implantação da UML pode ser encontrado na versão on-line do Visual Paradigm (https://online.visual-paradigm.com/) com o nome de “Deployment Diagram”.
Conforme já mencionei no início da nossa lição, o Diagrama de Implantação da UML foi criado para fornecer ao projetista de software um meio para projetar a infraestrutura de hardware em que o software que está sendo modelado será executado. Nesse momento, você precisa se atentar ao fato de que um projeto de software não envolve somente a sua parte lógica, como a programação do software, os seus testes e funcionalidades definidas pelo stakeholder, mas envolve, também, questões de hardware que são tão importantes quanto as de software.
Sempre quando você estiver à frente do desenvolvimento de um software, também reflita sobre o ambiente operacional em que o seu software irá “rodar”. Apresentar características físicas de segurança como a existência de um equipamento firewall entre o equipamento dos usuários e o servidor de dados ou o servidor onde o software “roda” pode ser importante para garantir características físicas e lógicas de acesso ao software que você projetou.
Você também poderá detalhar que tipo de comunicação com o seu software deve ser criptografada ao longo da comunicação para atender os elementos associados a requisitos não funcionais apresentados no documento de requisitos. Muitas vezes, a criação do Diagrama de Implantação estará associada ao atendimento de requisitos não funcionais do software, porque não são características do próprio software, mas necessárias à sua funcionalidade.
Caso o Diagrama de Implantação não seja desenvolvido ou fique “em aberto” para a equipe de implantação realizar essa atividade, corre-se o risco de que um hardware inadequado seja usado para a instalação do software e todo o trabalho de projeto do software pode ser comprometido por características físicas da infraestrutura de hardware.
Considere que você está à frente do projeto de um software que manipula imagens de projetos arquitetônicos de casas/apartamentos e que a empresa está “apostando alto” nesse novo software, porque pode ampliar as vendas e colocar a organização no mundo digital.
Você, como um bom conhecedor dos diagramas da UML, decide iniciar os seus trabalhos, após levantar os requisitos, criando o Diagrama de Caso de Uso, depois cria o Diagrama de Classe, Diagrama de Sequência, Atividade, Máquina de Estado e Visão Geral de Interação para cada Caso de Uso. Você vê todos aqueles diagramas e se sente bastante confortável para apresentar o projeto à equipe de desenvolvedores para iniciar a programação. Assim, você faz!
Após todo o desenvolvimento do software, a realização dos testes e a aceitação das funcionalidades do software por parte de alguns stakeholders, chega a hora da implantação do software fora daquele ambiente onde ele foi desenvolvido. É o momento de colocarmos o software “rodando” na infraestrutura de hardware da empresa para o uso por parte dos usuários ainda em uma versão Beta.
Contudo, você não detalhou que tipo de hardware ou qual a organização da infraestrutura de hardware em que o software deveria funcionar. A equipe de implantação, que é diferente da equipe que trabalhou diretamente com você, faz a implantação do software na infraestrutura que eles tinham já disponível e na forma que eles acreditavam que era a melhor. Após o início do uso do software, os usuários que estão participando do uso da versão Beta do software começam a informar quedas constantes na comunicação com o software e lentidão quando algumas consultas são realizadas.
Diante das reclamações, você decide verificar o que pode estar ocorrendo e percebe que o cabeamento físico usado para conectar os equipamentos até o servidor onde os dados estão armazenados, assim como os equipamentos da rede de computadores (ex. Switches e roteadores) são obsoletos e a velocidade de comunicação não atende a quantidade de dados que é trafegada entre o servidor e as máquinas dos usuários. Você também percebe que o servidor onde o software realiza o processamento das imagens tem pouca memória RAM e uma velocidade de processamento já considerada baixa à época.
Todas essas características associadas ao meio de comunicação entre os equipamentos dos usuários e os servidores de dados e da aplicação poderiam ter sido detalhadas com antecedência no Diagrama de Implantação e esses problemas poderiam ter sido evitados.
O caso apresentado é bastante comum no cotidiano de ambientes de Tecnologia da Informação onde o hardware acaba tendo menor prioridade sobre o software. Contudo, não deve ser assim, tanto software quanto hardware precisam ser pensados e projetados de forma harmônica, em que um complementa ou fornece suporte ao outro.
O Diagrama de Implantação determina as necessidades de hardware do sistema, as características físicas como servidores, estações, topologias de rede e protocolos de comunicação; ou seja, todo o aparato físico sobre o qual o sistema deverá ser executado pode ser especificado no Diagrama de Implantação.
O diagrama de implantação deve ter uma relação direta com a estrutura física necessária para a implantação do software que está sendo desenvolvido. Lembrando que estamos na fase de projeto e aqui é o momento de se pensar no projeto de hardware associado ao software. Você deve responder à pergunta: em qual infraestrutura de hardware o software deverá “rodar”/executar?
O Diagrama de Implantação deve demonstrar, claramente, COMO o sistema deverá ser implantado e quais os equipamentos físicos que serão necessários, como será a comunicação entre estes equipamentos, informando, inclusive, possíveis protocolos de comunicação, além de configurações do hardware.
Assim como todos os demais diagramas da UML, o Diagrama de Implantação possui as suas notações gráficas para que seja modelado. Vamos a elas:
O Diagrama de Implantação tem como componente básico os chamados “nós”, que podem ser associados a um item de hardware em que determinados módulos do sistema serão executados. A Figura 1, a seguir, apresenta o nó do tipo “device”.
A Figura 1 apresenta um nó do diagrama de implantação que modela um equipamento (device) que pode ser associado a uma máquina servidora física ou mesmo lógica situada nas nuvens de algum provedor de serviços em nuvem. A descrição no centro representa o nome dado ao equipamento e tipo de servidor. O termo “servidor de aplicação” é usado para referenciarmos máquinas servidoras que fornecem acesso ao software que “roda” nesses equipamentos. Geralmente, o software não está instalado nos clientes, mas apenas no “servidor de aplicação” e os clientes acessam esse software apenas por meio de um ícone na sua área de trabalho. Todo o processamento é realizado no servidor de aplicação sem que nada seja instalado no cliente.
Nesse momento, acredito que é importante distinguirmos alguns tipos de arquitetura de software que podem ser aplicadas para a implantação de um software.
Nesse tipo de arquitetura, o software é instalado na máquina do usuário e acessa um servidor de banco de dados onde os dados ficam armazenados. Cada vez que o software passa por uma atualização é necessário que cada máquina cliente tenha a atualização realizada.
Nesse tipo de arquitetura, o software é instalado em um servidor de aplicação e o usuário acessa o software por meio de um ícone compartilhado em cada uma das máquinas clientes. A primeira camada é o equipamento do cliente/usuário, a segunda camada é o servidor de aplicação e a terceira o servidor de banco de dados. Nesse tipo de arquitetura, sempre que uma atualização do software, seja ela de interface ou lógica, for realizada é necessário desconectar todos os clientes da aplicação e fazer a atualização.
Nesse tipo de arquitetura, o cliente é um navegador web (ex. Google Chrome, Firefox, Edge etc.). A primeira camada seria o navegador web do cliente/usuário, a segunda camada é o servidor de aplicação, a terceira camada é o servidor de banco de dados e a quarta camada é o servidor web onde está a interface com o usuário que ele vê no navegador. Assim, por meio desse tipo de arquitetura, uma atualização de interface não interfere na lógica, porque estão localizadas em servidores diferentes. Assim como uma atualização na lógica não interfere na interface. Esse tipo de arquitetura tem sido bastante utilizada por sistemas de informação do tipo ERP (Enterprise Resource Planning), porque permite centralizar todos os elementos do software num ambiente centralizado, geralmente na nuvem do desenvolvedor daquele software. Contudo, ainda existem muitos sistemas de informação do tipo ERP que usam a arquitetura em três camadas, mas com projetos para migrar para quatro camadas.
Na sequência, vamos observar essas arquiteturas modeladas sob os princípios do Diagrama de Implantação da UML.
A Figura 2, a seguir, apresenta um Diagrama de Implantação associado a uma arquitetura de software em duas camadas.
A Figura 2 modela uma arquitetura de software organizada sob duas camadas, onde o equipamento do usuário possui o software instalado e acesso a um equipamento servidor que executa um Sistema Gerenciador de Banco de Dados (SGBD). No caso, o SGBD que está instalado no equipamento é um Microsoft® SQL Server 2019. Observe que no diagrama também apresentamos características do meio de comunicação (ex. TCP/IP 1000 mbps) entre o equipamento do usuário e o servidor.
Na sequência, vamos observar um diagrama de implantação que modela uma arquitetura de software em três camadas (Figura 3).
A Figura 3 apresenta a modelagem de uma arquitetura de software em três camadas onde o equipamento do usuário se conecta com um servidor de aplicação em que o software está instalado. Este, por sua vez, se conecta com o servidor de banco de dados onde está instalado o SGBD. Ambos os servidores estão conectados por meio de um meio de comunicação que usa os protocolos TCP/IP como base e sob uma velocidade de conexão de 1000 megabits por segundo (mbps).
Até o momento, não especificamos nenhuma característica de segurança que possa fazer parte da infraestrutura de hardware do projeto de implantação do software. Assim, vamos observar uma infraestrutura mais complexa e baseada na arquitetura em quatro camadas.
A Figura 4 apresenta um Diagrama de Implantação mais complexo onde se pode observar elementos associados à segurança na conexão com o sistema (ex. Firewall) e detalhes na conexão dos dados por meio de um Secure Socket Layer (SSL), onde a conexão é criptografada entre as partes. A Figura 4 modela que o usuário vai acessar, por meio do seu navegador, uma página web localizada em um servidor onde está instalado o sistema operacional Debian e o servidor web Apache. Esse servidor se conecta com um equipamento firewall do tipo Fortigate Fortinet 100f que, por sua vez, se conecta com o Servidor de Aplicação onde o software executa as suas funcionalidades de regras de negócio. Somente o servidor de aplicação se comunica com o servidor de banco de dados que tem o SGBD Microsoft SQL Server 2019.
Ao longo desta lição, você teve a oportunidade de conhecer o Diagrama de Implantação da UML. Trata-se de um diagrama que fornece uma ótica acerca da infraestrutura de hardware necessária para a implantação do software que está sendo projetado.
O Diagrama de Implantação é um diagrama que tem características bastante distintas dos demais da UML, porque não tem foco nos requisitos funcionais do software, mas sim nos requisitos não funcionais, especialmente aqueles associados a características de hardware. A utilização do Diagrama de Implantação é praticamente uma obrigatoriedade do projetista do software, porque todo software será executado sobre uma infraestrutura de hardware, independentemente das suas funcionalidades.
Você enquanto projetista de um software de computador deve desenvolver alguns conhecimentos básicos sobre as características de hardware que melhor se adequa ao software e, especialmente, compreender as arquiteturas de software possíveis, como discutimos nesta lição. Para softwares mais simples que irão funcionar em ambientes organizacionais pequenos e com poucos usuários pode ser mais adequado usar uma arquitetura em duas camadas, enquanto para softwares desenvolvidos para ambientes de médio a grande porte pode ser mais adequada uma arquitetura em três ou quatro camadas.
A definição da arquitetura exata do software e, por consequência, a sua infraestrutura de hardware deve ser analisada caso a caso, uma vez que deve levar em consideração a infraestrutura existente na organização, bem como os recursos financeiros para uso de uma outra infraestrutura de hardware.
GUEDES, G. T. A. UML 2: Uma Abordagem Prática. 2. ed. Rio de Janeiro: Novatec, 2011.
RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. The Unified Modeling Language Reference Manual. Reading: Addison Wesley Longman, 1999.