Fala Pessoal, hoje iremos falar um pouquinho sobre o que é Arquitetura de Software?!
A arquitetura de software de um sistema consiste na definição dos componentes do software, da sua estrutura, consistindo de elementos de software, propriedades externamente visíveis desses elementos e os relacionamentos entre eles. A arquitetura define elementos de software (ou módulos) e envolve informações sobre como eles se relacionam uns com os outros. A arquitetura omite certas informações sobre os elementos que não pertencem às suas interações. Assim, uma arquitetura é antes de tudo uma abstração de um sistema que suprime detalhes dos elementos que não afetam como eles são usados. Na maioria das vezes essa descrição abstrata é relatada em forma de modelos.
Iremos citar alguns principais estilos e padrões arquiteturais para Sistemas de Informação.
Um estilo arquitetônico define um vocabulário de tipos de elementos e tipos de relacionamentos, e um conjunto de restrições sobre como eles podem ser combinados. Padrões arquitetônicos também estabelecem tipos de elementos e de relacionamentos entre eles, mas sua apresentação segue uma forma bem definida, indicando nome, contexto, problema, solução e consequências. Assim, normalmente, estilos têm uma apresentação mais livre e são descritos de maneira mais abstrata que padrões arquitetônicos.
Cinco categorias principais de estilos arquitetônicos, contendo algum grau de sobreposição entre elas:
• Sistemas de Fluxo de Dados: são caracterizados pelo modo como dados se movem através do sistema.
• Sistemas de Chamada e Retorno: são caracterizados por um modelo de ativação que envolve a linha principal de controle que realiza invocações explícitas de operações.
• Componentes Independentes: este estilo fia-se na invocação implícita de operações, ou seja, a invocação de uma operação é desacoplada de sua execução, de modo que os componentes chamador e chamado podem existir em processos separados e possivelmente distribuídos em processadores distintos.
• Máquinas Virtuais: uma máquina virtual é desenvolvida em software, contendo uma máquina de interpretação, uma memória contendo o código a ser interpretado, uma representação do estado da máquina de interpretação e uma representação do estado corrente do programa.
• Repositórios: esta categoria envolve um repositório de dados compartilhado para a passagem de informações.
Para encerrar irei falar de maneira breve o que é SOA.
SOA ou Arquitetura Orientada A Serviços, corresponde a uma metodologia para desenvolvimento de software, focado em disponibilizar e consumir serviços principalmente online para que o um mesmo serviço seja reaproveitado gerando uma gama de benefícios como: Reutilização, Facilidade de manutenção, Flexibilidade entre outros.
Contudo podemos observar que uma Arquitetura bem elaborada para um software trás diversos benefícios no momento de criação do mesmo e até mesmo após a criação seja facilitando o reuso de serviços, economizando recursos, evitar erros e até tornar a manutenção futura mais fácil.
