25 Desenvolvimento de Soluções (SOA)

Atualmente algumas siglas andam em alta nos fóruns de discussões ligadas à Tecnologia da Informação:

Redes Sociais: A mais rica e fácil forma de comunicação.
Big Data: Inteligência para uso de volumes astronômicos de dados, para prover informações relevantes ao gestor.
Cloud Computing: Acesso à informação, de qualquer ponto do planeta.
Mobile: A plataforma número um em computação.
SOA: (Service oriented Architecture), sigla em inglês para Arquitetura Orientada a Serviços. Esta, juntamente com BPM (Business Process Management), Gerenciamento de Processos de Negócio, vem sendo utilizada pelas grandes companhias para alcançar a integração total de seus processos de negócios.

Na atualidade as mudanças nos negócios para atender as demandas específicas do mercado ou legislações estão cada vez mais constantes. Com isso as áreas de negócios e Tecnologia da Informação estão em crescente evolução, e cada vez mais próximas – evidência disto é o volume de sistemas pensados e arquitetados a partir da realidade do negócio, espelhada por uma consistente documentação de processos. Deste modo, alinhar Gestão de Processos de Negócio às mudanças exigidas pelo mercado, usando novos conceitos de desenvolvimento de soluções informatizadas, tende a ser uma tarefa cada vez mais ágil e menos complexa, facilitando o trabalho na governança de TI.

Tecnologia da Informação & Processos –
A introdução de TI aplicada a Gestão de Processos emergiu no final dos anos 90, como um fenômeno mundial, dando início a uma nova fase na vida das organizações.  Com o passar do tempo essa tecnologia para BPM foi ganhando força e superou expectativas. As organizações começaram a investir nela, pois até então, o que valia para as mesmas era o patrimônio, e em seguida os funcionários. Atualmente, elementos que passam a valer muito para as organizações são novos mercados, dinamismo e ciclo mais curto da vida de produto, que justamente traduzem pressão para ser ágil, flexível e com baixo custo.

Conceituando Service Oriented Architecture – SOA
SOA – (Service Oriented Architecture) é uma forma de se pensar e arquitetar sistema, em cujo desenvolvimento, as funcionalidades são tratadas como menores componentes lógicos possíveis, os quais, unidos a diferentes outros componentes resultam em soluções, chamadas serviços. Estes serviços são utilizados pelos engines de automação de processos, durante a execução das diversas atividades, criando uma comunicação entre os diversos sistemas existentes na infraestrutura de TI.

Regras de negócio mudam constantemente e novos requisitos aparecem. A arquitetura orientada a serviços visa facilitar a adequação às novas realidades, centralizando funções, minimizando custos e tempo com desenvolvimento.

É uma arquitetura para a construção de aplicações de negócios, como um conjunto de baixo acoplamento, utilizado na execução dos processos de negócios. Sua abordagem principal tem, portanto como foco, a reutilização de componentes.

Consiste na construção de sistemas informatizados sobre uma arquitetura orientada a serviços (Service Oriented Architecture) utilizando padrões abertos de mercado e todos os recursos providos por essa arquitetura, tais como:

  • Motor (engine) de execução de processos,
  • Barramento de integração ESB (Enterprise Service Bus),
  • Motor de regras e
  • Repositório de serviços.

SOA é um paradigma de desenvolvimento de sistemas distribuídos, que se baseia em serviços. Não é um produto que possa ser comprado ou uma receita simples que possa ser seguida e aplicada a qualquer situação. SOA se encaixa num contexto no qual a interoperabilidade entre sistemas é uma questão importante, cujos sistemas podem ou não utilizar as mesmas tecnologias em suas implementações, com o diferencial que SOA define uma tecnologia padrão para a comunicação dos mesmos. SOA requer certo nível de maturidade em relação aos processos de negócio da organização, pois engloba conceitos que não são somente técnicos, a base da arquitetura está no bom conhecimento do negócio, somado a uma infraestrutura que suporte a integração de sistemas de forma facilitada.

Desenvolver aplicações baseadas em SOA possibilita a construção de novos serviços de forma ágil, por meio da exposição de webservices, reutilizando os componentes existentes nos sistemas.

Os três principais conceitos de SOA: Serviços; Interoperabilidade e Acoplamento Fraco.

  1. Serviços

São funcionalidades de negócio desempenhadas ou assistidas por um sistema, por exemplo, cadastrar um cliente, aprovar uma negociação, realizar um cálculo, exibir o saldo de uma conta etc.

Uma característica dos serviços é que eles devem ser expressos de forma semelhante ao negócio e não numa visão técnica, dessa forma a abstração possibilita que “serviço” seja implementado em qualquer tecnologia, o que habilita plataformas heterogêneas.

“Da perspectiva corporativa, os serviços são bens da TI que correspondem às atividades corporativas do mundo real ou às funções de negócio reconhecíveis, e que podem ser acessados de acordo com as políticas de serviço que foram estabelecidas”

“Da perspectiva técnica, os serviços são bens da TI de granularidade grossa e reutilizáveis e que têm as interfaces bem definidas (também chamados contratos de serviços) que claramente separam as interfaces dos serviços externamente visíveis da implementação técnica”.

Serviços devem possuir uma interface bem definida, garantindo que os clientes do mesmo tenham informações suficientes para utilizá-lo. A interface de um serviço geralmente é definida por um arquivo XML, contendo informações como URL de acesso, parâmetros que devem ser informados e caso haja, como este serviço retornará informações a quem o tenha utilizado. Repositórios de serviços são lugares onde clientes de um determinado domínio podem publicar e buscar por serviços, uma espécie de biblioteca de serviços, dessa forma todos os membros desse domínio podem utilizar este repositório para conhecer os serviços e a forma de acessá-los.

  1. Interoperabilidade

Com a heterogeneidade dos sistemas, um dos primeiros desafios é fazer com que eles se comuniquem facilmente. Em SOA a comunicação entre sistemas se dá através de um protocolo comum à arquitetura. Por exemplo: Simple Object Access Protocol (SOAP) e  Extensible Markup Language (XML). A forma mais comum para implementar interoperabilidade em SOA é através do uso de Web Services.

  1. Acoplamento Fraco

O acoplamento fraco se propõe a resolver três problemas já conhecidos da engenharia de software: Flexibilidade; Escalabilidade e Tolerância a falhas. Em SOA, acoplamento fraco consiste em minimizar a dependência entre serviços e sistemas e, dessa forma, alterações em um serviço causam menos efeitos colaterais a outros participantes da arquitetura, contribuindo para tolerância a falhas, com mais flexibilidade.

Componentes SOA são “fracamente acoplados”, o que possibilita que sejam combinados e recombinados de inúmeras formas, possibilitando e fomentando o reuso. Isso faz com que tal estrutura seja muito mais flexível.

SOA não é destinado a construção de todo tipo de software, mas sim, é usado preferencialmente para a construção de aplicações de negócios. A estrutura de componentes permite a reutilização de aplicações de negócios existentes, pela adição de um adaptador, independente de plataforma tecnológica e de como foram construídos.

Acrônimo de “Service-Oriented Architecture” – arquitetura orientada a serviços e é um estilo de arquitetura de software, cujo princípio fundamental preconiza que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços. Frequentemente estes serviços são organizados através de um “barramento de serviços” (enterprise service bus, em inglês) que disponibiliza interfaces, ou contratos, acessíveis através de web services ou outra forma de comunicação entre aplicações. A arquitetura SOA é baseada nos princípios da computação distribuída e utiliza o paradigma request/reply para estabelecer a comunicação entre os sistemas clientes e os sistemas que implementam os serviços.

Outros conceitos associados a SOA:

  • Protocolo de Comunicação

É um conjunto de convenções que rege o tratamento e especialmente a formatação dos dados num sistema de comunicação.

Como SOA é baseada em serviços independentes, implementados em tecnologias diferentes, é necessário que a forma de comunicação entre os mesmos não seja atrelada a eles. Em uma SOA baseada no protocolo XML, os diferentes serviços recebem e enviam informações através de arquivos XML, porém em muitos casos é necessário converter este arquivo para um formato específico do sistema. Isso é totalmente válido, contanto que após o processamento as informações sejam traduzidas para o formato XML novamente, antes de serem enviadas.

  • Web Services

Web Service é um componente que facilita a integração entre sistemas. Ele basicamente desempenha funções pré-definidas, utilizando um protocolo independente para comunicação, tal como XML. Este componente é disponibilizado através de uma rede qualquer, geralmente a internet e, seu acesso é feito via URL semelhante a uma página na Internet.

Características comuns dos Web Services são: Acoplamento fraco, execução de funções bem definidas, utilização de interfaces para publicação de seus serviços e independência de tecnologia. Em Web Services as interfaces são definidas através de documentos WSDL, que além de possuírem todas as informações necessárias para acesso ao serviço, também é independente de tecnologia.

Os Web Services podem ser desenvolvidos no próprio software de automação, ou importado para ser utilizado no processo.  Existem cinco padrões fundamentais em Web services. Alguns deles já existiam e foram readaptados para o uso dos serviços no conceito de SOA, outros foram desenvolvidos para completar a solução.

  1. XML: Usado como formato padrão para descrever modelos, formatos e tipos de dados.
  2. HTTP: Protocolo utilizado para enviar dados pela rede através da internet. Hypertext Transfer Protocol
  3. WSDL: Pode descrever dois aspectos diferentes em relação aos serviços: Assinatura (nome e parâmetros) e detalhes técnicos (protocolo e localização). Especifica também como acessar o serviço e quais as operações ou métodos disponíveis – Web Services Description Language
  4. SOAP: O formato das trocas de mensagens entre web services. Como HTTP é um protocolo de baixo nível, SOAP é o formato específico para troca de dados dos Web Services no contexto HTTP.
  5. UDDI: Utilizado para gerenciar os Web Services. Através do UDDI é possível efetuar a localização e registro dos Web Services – Universal Description, Discovery and Integration

Após a definição dos serviços e regras do processo, criar as regras de conexão e suportar a integrações das informações é o passo seguinte. O responsável por essa interação dos Web Services é o ESB.

  • Entrerprise Service Bus

O barramento de serviços corporativos (ESB) tem como objetivo possibilitar a troca de dados entre sistemas. Fornece recursos de monitoramento, segurança e atua como intermediador entre os diversos sistemas que se comunicam.

A principal razão na utilização de um ESB é fazer com que os sistemas interajam de forma transparente, sem se preocuparem com protocolos ou formato de troca de mensagens. Nesse ponto o ESB se destaca por opcionalmente poder prover diversas funcionalidades, como criptografia de dados, uso de protocolos seguros, roteamento de requisições, busca de serviços, entre outros.

A responsabilidade do ESB pode envolver as seguintes tarefas: Prover conectividade; Transformação de dados; Roteamento; Lidar com segurança; Lidar com confiabilidade; Gerenciamento de serviços e Monitoramento / Logging.

  • Integrações de Sistemas

A integração é um dos mais antigos problemas no mundo da TI, seja ela entre sistemas, ou entre aplicações, no sentido de atingir um sistema de informação flexível. Hoje com aquisições e fusões de organizações, a TI vem se deparando com diversas plataformas e sistemas heterogêneos, trazendo assim múltiplos problemas de falta de integração, dificultando o compartilhamento de informações. Com integração de sistemas pode-se trazer redução de custos para a organização, pois ela pode mudar e otimizar os processos com agilidade trazendo assim o crescimento da organização.

A integração de sistemas é sempre associada a Enterprise Application Integration ou Integração de Aplicações Corporativas (EAI), que é uma tecnologia que proporciona a troca de informações entre diferentes aplicações, desenvolvidas em linguagem ou plataforma diferentes, podendo ser localmente ou remotamente localizadas.

Entretanto a EAI acaba se transformando em mais um sistema legado, o motivo disso é que ela usa tecnologias próprias para integrar os sistemas e adaptadores específicos para conectar as fontes de dados.

  • Governança

A governança de TI garante o alinhamento da área de tecnologia com os objetivos da organização como um todo, determinando direitos de tomada de decisão, políticas, práticas, processos e formas de medir prioridades. Ela ajuda ambas as áreas, onde encontrar e como monitorar cada ativo da organização.

A governança SOA vai ainda mais longe. Ela foca no desenvolvimento e integração de aplicações fornecendo visibilidade e controle, ao mesmo tempo em que aumenta a agilidade requerida pelas áreas de negócio. Ela tem que preconizar que todos os programas da organização sejam consistentes e alinhados com as metas e objetivos de negócios, através de um conjunto bem estruturado de políticas, procedimentos e de controles. Existem diferenças entre a gestão de um programa isolado SOA e a implementação de governança SOA. A governança possibilita a verificação dos programas SOA da organização, mostrando se eles estão no caminho certo, alinhados com as prioridades do negócio através dos diferentes níveis e domínios da organização, entregando mais valor significativo à organização como um todo.

Uma estrutura da governança SOA que possibilite alcançar os objetivos críticos, deve ser baseada em:

  • Dimensões (pessoas, processos e tecnologia) e
  • Domínios (Arquitetura, Gestão Ciclo de Vida de Serviços, Gestão Ciclo de Vida de Políticas, Gestão de Requerimentos, Gestão de Qualidade, Acordos, Gestão do Programa e Projeto, Controle de Mudanças e Comunicação, Gestão de Mudança e Treinamento).

Aplicações – situação ou ambiente favorável para implementação de SOA – quando se tem necessidade de:

  • Ferramenta que auxilie na melhoria da eficiência e eficácia do processo;
  • Alinhar a tecnologia com o negócio;
  • Integrar de aplicações e negócios;
  • Desenvolvimento e disponibilização ágil de novos serviços;
  • Aumento da confiabilidade da informação associada a cada processo;
  • Melhoria na eficiência na tramitação dos processos;
  • Evolução das aplicações de TI por etapas;
  • Suprir ausência de controle da execução dos processos e
  • Migração de aplicações para disponibilização em ambiente WEB usando arquitetura SOA.

– Vantagens da adoção de SOA

  • Possibilita o alinhamento das aplicações aos objetivos do negócio
  • Total interoperabilidade entre todos os padrões do mercado. Isso significa que os usuários não precisarão mais se preocupar com a falta de integração entre tecnologias distintas e podem utilizar livremente padrões Java (EJB, J2EE), Corba ou COM/DCOM e RMI, p. ex.
  • Reuso dos ativos de TI: Pode-se construir um serviço de negócio como uma agregação de componentes existentes. Sistemas legados podem ser encapsulados e acessados utilizando Web Services.
  • Redução de custos e tempo: o custo de desenvolver e criar novos serviços através do SOA é bastante reduzido.
  • Diminuição do risco: com o reuso de componentes já existentes o risco de introduzir novas funcionalidades dentro de processos, criar novos serviços e fazer a manutenção e gerenciamento da infraestrutura são reduzidas.
  • Política de Implementação Consistente, Progressiva e Flexível: Previne a abordagem desorganizada e inconsistente para a implementação de serviços através do uso de políticas bem definidas e gerenciadas.

– Desvantagens

  • Custo da implementação
  • Retorno sobre o investimento a longo prazo;
  • Necessidade de mudança interna cultural;
  • Não há um padrão único para o protocolo de comunicação;
  • Falta de mão de obra especializada no mercado.

Conclusão

O mercado está cada vez mais exigindo agilidade e flexibilidade no ambiente de tecnologia.

Garantir o pleno funcionamento do negócio, em relação a sistemas, passou a ser a fundamental para a área de TI. Na atualidade muitas organizações têm diversos sistemas na sua arquitetura e gerenciar aplicações, desenvolvimentos e interfaces entre os mesmos é um grande desafio.

Com a arquitetura orientada a serviços as soluções de softwares são desenvolvidas com a visão do negócio. Desenvolver serviços e disponibilizá-los num ambiente compartilhado possibilita a reutilização em outras etapas do processo.

Implementar SOA se justifica por facilitar o gerenciamento e desenvolvimento de sistemas baseando-os em serviços que podem ser reutilizados durante a execução do processo e reaproveitados no desenvolvimento de outros. Com isso a organização passará a ter mais qualidade na execução em seus processos, pois os serviços já serão bem conhecidos e bem desenvolvidos, menor custo de manutenção devido à reutilização e facilidade nas integrações com outros sistemas nessa mesma arquitetura, gerando por fim aumento na produtividade.

 

Cordialmente,

Pedro Osorio Souza Mello   ./

Fique à vontade para me contatar:    pepontomello@gmail.com                                    Abril – 2015


					
Anúncios

Sobre Pedro Osorio Souza Mello
Olá! Sou Pedro Osorio Souza Mello, responsável técnico por um grande volume de projetos - que envolvem Processos de Negócio - pela empresa Memora – Processos Inovadores. Já passei por vários papéis no ciclo de vida de BPM, nos meus mais de 15 anos dedicados a esse segmento de trabalho. Sou o responsável pela execução e entrega dos projetos e sempre que possível, participo também da execução, o que me traz bastante alegria e conforto. Tenho uma ligação muito especial com o tema “treinamento”, o que me levou a ser também Professor – em disciplinas ligadas à Gestão de Processos”, na FIAP – Faculdade de Informática e Administração de São Paulo, nos cursos de: •Gestão de Processos de Negocio •Arquiteturas Corporativas de TI •Arquitetura de Soluções •Engenharia de Software Orientada a Serviços (SOA) •MBA em Sistemas de Gestão Empresarial – ERP – SAP (O fato de BPM estar entre as disciplinas destes cursos é uma prova eloquente do valor do tema nos dias atuais e a relevância que tem entre os assuntos de TI). Prometi a mim mesmo escrever um livro sobre Gestão de Processos de Negócio, todavia com os novos tempos, entendi melhor fazê-lo de uma forma publicável através da rede. Gosto de compartilhar aquilo que já aprendi e receber dicas e conhecimentos de outros colegas que também convivem neste universo. A ideia desse blog é exatamente para isso. Tenho uma convicção forte sobre o potencial de Gestão de Processos - BPM, como mecanismo de melhoria contínua das organizações e sempre que me for possível, quero estar ligado, fazendo, experimentando, pensando e escrevendo sobre o tema e também sobre os vários recursos ligados a ele. Apesar de me utilizar de pesquisas, publico apenas aquilo que faz parte da minha acreditação e convicção. As opiniões expressas são estritamente minhas. Sou grato pela sua visita e espero que outros futuros acessos também ocorram. Cordialmente, Pedro Osorio Souza Mello Abril 2015

One Response to 25 Desenvolvimento de Soluções (SOA)

  1. Wallace says:

    Prezados,

    No link http://www.supravizio.com/Webservices-SOA.aspx exemplo de trabalho envolvendo BPM Human Centric e SOA para venda de seguros por site de classificados.

Comente

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: