O objetivo deste artigo é abordar os conceitos da metodologia SOA, um modelo de arquitetura utilizado principalmente para integração com outras aplicações, normalmente é aplicado com auxilio de Web Services.
Em que situação o tema é útil
O tema é útil quando aplicamos uma metodologia conhecida como SOA que procura oferecer uma série de recomendações e boas práticas para a modelagem e a construção de projetos voltados à integração de sistemas: soluções deste tipo são compostas, normalmente, por web services que disponibilizam uma série de funcionalidades.
Princípios de Design de Serviços
Muitas organizações dependem atualmente de um número considerável de aplicações de software, sendo bastante comum a necessidade de se estabelecer algum meio de integração entre alguns destes sistemas. SOA é um padrão de arquitetura que procura fornecer alternativas neste sentido, com a disponibilização de funcionalidades em serviços (normalmente Web Services): esta abordagem enfatiza o reuso de componentes de softwares já existentes, assim como procura oferecer uma alternativa que possibilite a interoperabilidade entre soluções construídas nas mais diversas plataformas. Os diversos princípios que compõem a metodologia SOA não foram elaborados para a aplicação por uma tecnologia específica. Qualquer plataforma de software que suporte os padrões normalmente empregados em projetos SOA pode ser empregada na construção de soluções orientadas a serviço.
A necessidade de integração entre diferentes sistemas computacionais vem sendo uma preocupação constante ao longo dos anos em muitas organizações. O compartilhamento de dados entre aplicações representa, em muitos casos, um fator de importância vital para a continuidade de operações cotidianas dentro das companhias. É possível também que tal intercâmbio de informações possa envolver, em determinadas situações, fornecedores, clientes e outras entidades externas; cenários deste último gênero são classificados como B2B (Business-to-business).
Arquivos de texto posicionais foram um dos primeiros meios empregados para a troca de dados entre aplicações. Neste tipo de estrutura as informações encontram-se dispostas em linhas e colunas; cada coluna conta, com um formato e uma posição específica. Este tipo de prática encontra-se em uso ainda nos dias de hoje, isto acontecendo normalmente em aplicações voltadas ao ambiente de mainframe. Instituições bancárias também se valem deste recurso com seus clientes corporativos durante o envio/recebimento de informações financeiras.
O advento da Internet trouxe novas alternativas no que se refere ao compartilhamento de informações entre sistemas. Com o aumento vertiginoso na velocidade das telecomunicações decorrente disto, muitas organizações adequaram diversos de seus processos para o tratamento de transações em tempo real, agilizando com isto rotinas que apresentavam um comportamento moroso. Anteriormente, a execução de certas rotinas ocorria mediante a espera por lotes de informações, com o processamento de tais dados ocorrendo em um período pré-determinado ao longo do dia.
Web Services foram um dos mecanismos que possibilitaram esta troca de informações de maneira praticamente instantânea. Esse tipo de recurso é atualmente um dos principais meios utilizados na integração de sistemas, sendo que um Web Service é normalmente estruturado a partir do uso de uma série de formatos baseados em XML.
Graças à ampla aceitação do padrão XML na área de tecnologia, o foco no uso de diferentes formatos fundamentados neste padrão permite, raramente, que Web Services e outros tipos de aplicações construídas nas mais diferentes plataformas, possam se comunicar. Isso garante a interoperabilidade entre sistemas, assim como maximiza o potencial de reuso de uma solução baseada em serviços. É possível também que Web Services utilize outros formatos de comunicação como o REST.
A utilização crescente de Web Services, culminou com o desenvolvimento de um novo paradigma para a construção de aplicações orientadas a serviço: metodologia conhecida como SOA. O objetivo deste artigo é discutir, em termos gerais, alguns conceitos relativos a este padrão, bem como abordar princípios que podem estar sendo tomados como base para projetos que implementem este modelo. Deve-se ressaltar também que soluções orientadas a serviços podem ser constituídos por outros tipos de elementos de software, tais como componentes de mensageria.
REST (Representational State Transfer) é um padrão no qual recursos são representados por meio de um endereço único, através do uso de URLs. Objetos contendo dados e que são consumidos por uma aplicação, constituem exemplos de recursos. Um endereço único constituído por informações de identificação do recurso esperadas pelo serviço que provê o mesmo, bem como por uma indicação da operação a ser efetuada sobre tal elemento.
...