Em meu último post falei dos principais cursos de graduação e MBA na serra gaúcha. Acredito que tenha ajudado ao pessoal a se encontrar ou quem sabe como um simples "Para Conhecimento".
Pretendo em algum momento me dedicar mais a este assunto, mas principalmente sobre Eventos de TI na Serra! (carência detectada)!
Mas hoje eu gostaria de falar um pouco sobre um assunto que veio despertando minha atenção nos últimos meses e tenho lido algumas bibliografias sobre isso. Trata-se de uma tecnologia chamado SOA, a qual utilizo diretamente em meu trabalho de Analista de Negócios (e Sistemas).
Mas o que é SOA ?
Antes de entender SOA, faz-se necessário entender o que significa a orientação a serviço, que trata-se de um paradigma de construção e integração de software composto por elementos chamados serviços.
Quando falamos de serviço, nos referimos a uma unidade dentro de SOA que tem a função específica, que pode ser oferecida a um consumidor e mantida por um provedor.
Service Oriented Architecture ou SOA, é um estilo arquitetural que suporta o paradigma de orientação a serviços. Este estilo arquitetural é definido como combinação de características distintas sobre a qual uma arquitetura é realizada ou expressada.(HIRAMA, 2013, p. 58)
Abaixo a estrutura SOA:
- Interfaces Consumidoras / Camada de Apresentação: Canais através dos quais a funcionalidade dos serviços e processos de negócio é disponibilizada. Seria o front-end, ex: formulários eletrônicos, plataformas de portais, aplicações Web, aplicativos móveis e aplicativos desktop.
- Camada de Processos de Negócio: Possui a lógica de negócio, os quais estão representados através de fluxos BPMS. Camada responsável por gerenciar e executar os fluxos de trabalho de cada processo de negócio e possibilitar a participação de pessoas na execução das tarefas.
- Serviços: Camada que possui todos os serviços e os metadados que os descrevem. Esta é a camada que provê a interface entre provedores e consumidores de serviço, pois fornece uma abstração dos contratos publicados pelos provedores.
- Componentes de Serviço: Contém componentes de software que garantem as realizações de serviços, implementando as definições do contrato e servindo como ponte para os sistemas operacionais. Ex: plataforma JAVA e .Net que suportam WebServices.
- Recurso de Dados/ Sistemas Operacionais: Composta por sistemas e aplicações não orientadas a serviços. Fornece recursos que podem ser utilizados por provedores de serviço para implementar contrato de serviços. Ex:
- Aplicações orientadas a objetos (.NET, Java)
- Aplicações implementadas com tecnologias legadas (cliente-servidor e alta plataforma)
- Bases de dados (MySQL, SQL Server, Oracle, Postgres, Progress, etc)
- Aplicações pacote (ERP's, CRM's)
A Camada de Qualidade de Serviço provê desempenho, confiabilidade, disponibilidade, escalabilidade e segurança às camadas funcionais de arquitetura de referência.
A Camada de Informação representa a arquitetura da informação da organização, provendo aos usuários as análise de dados de processo por meio de tecnologias como BI.
A Camada de Governança tem o objetivo de garantir a aderência aos padroes desejados pela companhia e alinhados as metodologias de mercado.
Implementar SOA
Para a implementação da arquitetura SOA, diversas plataformas tecnológicas pode ser usadas, mas as mais comum é por meio de WebServices. Esta tecnologia trata-se de um conjunto de padrões abertos que possibilita a comunicação entre duas aplicações através da Web.
Um cliente comunica com um Webservice para fazer invocações através da troca de mensagens, definidas em sua interface.
Padrões fundamentais da tecnologia WS:
- WSDL: Linguagem baseada em XML para definição formal de interfaces de serviços.
- SOAP: Protocolo de comunicação baseado na troca de mensagens em formato XML transmitidas via HTTP ou outro protocolo.
- UDDI: Especificação de registro de serviços publicados e descoberta de interfaces de serviços em WSDL.
O uso de WebService permite encapsular funções de ambientes legados de forma que estes possam fazer parte de uma arquitetura SOA. Isso permite a interoperabilidade de sistemas legados sem a necessidade de integrações ponto a ponto.
Alinhamento com o Negócio
A orientação a serviços segue um modelo de evolução que contempla um alinhamento entre os processos de negócio. O impacto destas evoluções é pouco quando a arquitetura SOA está bem preparada, assim a orientação a serviços busca responder aos requisitos com o máximo de agilidade.
Requisitos de Implantação e de Segurança
A arquitetura SOA é composta por diversas camadas, sendo que estas interagem frequentemente, trocando mensagens e com necessidade de processamento regular. Para isso existem também os transportes de dados nos formatos e protocolos de tecnologia WebServices, como XML, XSD e SOAP.
A empresa deve se atentar para a possívellatência na quantidade de mensagens que surgirão com a arquitetura SOA em produção. Isso tem total impacto na questão de Infraestrutura de TI.
A empresa deve se atentar para a possível
Outra preocupação constante é a segurança da informação. A garantia de que somente consumidores autorizados possam acessar determinados dados disponibilizados pelos provedores, faz com que se exija um comprometimento na confidencialidade. O padrão WS-Security procura oferecer requisitos para isso.
Governança SOA
Mais do que oferecer facilidade de integração entre as diversas camadas, estas devem ser gerenciadas por algum tipo de metodologia que busque estabelecer papéis, responsabilidades e processos para organizar os serviços desenvolvidos. A governança tem este papel de criar mecanismos para desenvolver, manter e divulgar os serviços do portfólio.
O presente e o futuro estão cada vez mais ligados a orientação de serviços, que já é tratado como trend topic pelas grandes organizações.
Grande abraço !
Bibliografia
HIRAMA K, "Soa - Modelagem Análise e Design". São Paulo: Campus, 2013.