Depois de alguns dias ausente (esse negócio de manter um blog não é fácil!!!), estou de volta com um tema que achei interessante, versionamento de SOA.
Para quem ainda não conhece o que significa mais essa sigla, SOA (Service Oriented Architecture) ou arquitetura orientada a serviços, sugere que todos os aplicativos desenvolvidos em uma corporação sejam implementados de forma que possam prover serviços que permitirão entre outras coisas, a famosa integração independente de plataforma.
Isso só é possível pelo uso de WebServices, que a grosso modo podem ser classificados como métodos remotos publicados na Web, que através do uso do protocolo SOAP (opa outra sigla) e o XML, permite a exposição de métodos de aplicativos diversos na Web(intranet também), para consumo por qualquer outro aplicativo ou dispositivo que utilize o protocolo http(s).
Dentre algumas das preocupações relativas ao assunto, existe a primeira delas, que é não propagar problemas internos de aplicações corporativas (inconsistências de dados) para os clientes dos serviços. Imagine se um Webservice que possui uma consulta a uma disponibilidade de vagas em um hotel qualquer, que ao invés de retornar a informação do valor da diária, de um quarto em um período qualquer, retornasse o valor “V1” de um campo chave de uma tabela de domínio para valores de diária…também existe a não menos importante, preocupação com segurança, os serviços publicados na internet precisam ter o mínimo de requisitos de segurança atendidos, como criptografia dos dados trafegados por exemplo, para garantir a integridade das informações propagadas.
Recentemente li o artigo (Versioning in SOA, do periódico The Architecture Journal, Edição 11, Microsoft Press) que expôs os principais desafios relativos ao uso de SOA. Como manter um serviço ativo e atualizado ao mesmo tempo, sem propagar problemas após a liberação de uma nova versão?
To be continued…