Salve, salve, amigos/colegas/leitores. Hoje darei inicio a uma nova série: “Série SOA”. Resolvi escolher esse tema por alguns motivos: primeiro por ser uma tecnologia nova (apesar de existir a mais de 6 anos, há alguns profissionais de T.I que nunca ouviu falar, ou que já ouviu mas não tem ideia do que seja); segundo é que a tecnologia já apresenta bons e ótimos alicerces dentro do ambiente T.I X Negócios.
Além de ser uma boa área para monografia (era o meu há 2 anos, mas por força do destino dos meus orixás acabei mudando) :D.
Espero que gostem do post e da tecnologia, lembrando: o que será apresentado nessa série é a ponta de um iceberg do mundo SOA. Nesse primeiro post temos uma pequena historinha e o conceito sobre a arquitetura.
Let’s GO…
Summary
This article presents technology SOA. This first series is presenting history and concepts about Service Oriented Architecture – SOA. Second ANSI/IEEE 2002(American National Standards Institute) is one architecture of the software about basic of as the component fundaments of the one system if relate. The point leading in the application of the business focus: reuse, reduce of costs of developing and maintenance become solution of business more agile and easy of implements having opportunity of business. In the case SOA is adopted by people.
História SOA
Uma realidade recente, de pouco mais de seis anos, a Arquitetura Orientada a Serviços, ou como é comumente conhecida, o SOA (Service Oriented Architecture), chegou ao mundo corporativo paralelamente a uma mudança de postura que tomava conta das empresas em relação à Tecnologia da Informação e sua influência nos resultados. A TI, como já se sabe, é alvo de constantes transformações e não obstante demanda sempre melhoria ao elo dos interesses da empresa.
Com o passar dos anos, o objetivo é, cada dia mais, encontrar tecnologias que garantam um desenvolvimento com maior eficiência dos negócios e agreguem valor aos serviços oferecidos. Nesse contexto, teoricamente a tecnologia poderia ser vista como uma ferramenta a favor dos processos corporativos. Mas nem sempre é assim.
Há uma problemática que está freqüentemente no cotidiano dos departamentos das empresas e que inverte a ordem de quem deveria estar a serviço de quem. Os processos, sistemas e ações preestabelecidas geradas pela Tecnologia da Informação são, muitas vezes, tão inflexíveis e baseados em um padrão tão uniforme, que em vez de atenderem diferentes e mutantes demandas das corporações, acabam por fazer com que os negócios se adequem a elas.
Negócios e TI
O grande desafio desse cenário é encontrar uma solução que seja compatível e flexível ao negócio de forma a se encaixar e a remodelar os processos dos diferentes departamentos, quando necessário. Substituir os sistemas legados para que eles se encaixem a essas novas demandas que surgem com o crescimento do negócio, pode ser, além de caro, uma ação que resulte em ineficiência. O conceito de SOA permite encontrar uma solução relativamente barata e com um custo-benefício maior quando se refere a sistemas que precisam conversar entre si e processos que demandam maior flexibilidade e agilidade para atender as revoluções do mercado.
A definição da arquitetura, de forma prática, pode ser colocada como um desenvolvimento orientado a serviços. Isso significa que as aplicações estarão alocadas de uma forma interdependente, reflexo de uma infra-estrutura de tecnologia preestabelecida e pensada para criar serviços com flexibilidade suficiente para serem reutilizados entre os sistemas. Assim, com SOA, é possível acessar apenas uma parte dos serviços existentes, sem a necessidade de utilizar o processo completo.
Estrutura diferenciada
Quando uma empresa opta por utilizar o conceito, imediatamente se anula a questão da TI não acompanhar os negócios por não ter capacidade de tratar um processo como um todo. Com ele, a estrutura anterior fica para trás, com os muitos sistemas distintos cuidando de pequenos passos do processo e sendo redundantes entre si, além de exigir uma base de dados para cada um, dando lugar a maior inteligência e a otimização do ambiente de Tecnologia da Informação.
Um exemplo interessante da aplicação do assunto é observar um mecanismo de recrutamento e seleção do RH. Isso envolve cadastro de candidatos, recrutamento, entrevista, testes, seleção e contratação. Todos esses processos são feitos com o objetivo de fazer a contratação de um funcionário específico. Porém, como reprogramar esse caminho quando o funcionário a ser contratado é uma mão-de-obra que já trabalha na empresa e precisa apenas ser transferida de área?
Nesse caso, algumas fases dessa linha de contratação seriam excluídas, como por exemplo, cadastro do candidato e seleção. Para modificar esse padrão, tradicionalmente era necessário fazer uma mudança manualmente para driblar os processos preestabelecidos. Já com a arquitetura orientada a serviços, basta utilizar apenas algumas partes desse processo já existente, de acordo com a granularidade do sistema.
Conceito
Definir Arquitetura Orientada a Serviços por vezes é complicado, já que se trata de um conceito abstrato que pode ser utilizado de diversas formas e se transformar em ferramentas específicas de acordo com o negócio e com a empresa que decide adotá-lo. Segundo o ANSI/IEEE 2002 (American National Standards Institute), uma arquitetura de software trata basicamente de como os componentes fundamentais de um sistema se relacionam intrinsecamente e extrinsecamente.
Nesse contexto, os aplicativos e rotinas são disponibilizados como serviços em uma rede de computadores, que pode ser a Internet ou mesmo intranet, permitindo uma comunicação por meio de padrões abertos. Por esse motivo, o WebService é um recurso bastante utilizado para a criação dessa estrutura.
Tecnicamente SOA é um paradigma para organização e utilização de competência distribuída que estão sob controle de diferentes domínios proprietários.
De um modo geral as pessoas ou as organizações criam competências para resolver ou suportar uma solução para problemas que encontram no decorrer de seus negócios. A arquitetura orientada a serviço (SOA) torna possível transformar aplicações monolíticas rígidas em componente de softwares flexíveis, permitindo a interoperabilidade entre diferentes tecnologias.
O ponto crucial nas aplicações de negócios enfoca: reutilização, a redução de custo de desenvolvimento e manutenção, torna soluções de negócios mais ágeis e fáceis de implementar, viabilizando as oportunidades de negócio, ai que SOA é adotado pelas entidades (pessoas e organizações).
As organizações e as pessoas em nosso tempo visam os seguintes pontos para um negócio: reutilização, custo x beneficio, segurança e flexibilidade, esses são os pontos cruciais por empreendedores de negócios.
Enfim SOA é uma metodologia que visa maximizar a reutilização de serviços existentes e a integração com novos serviços para aumentar a eficiência e produtividade de uma empresa.
SOA tem por objetivo modelar a corporação como uma coleção de serviços que ficarão disponíveis para uso de toda a companhia. Uma vez montada essa arquitetura não é mais necessário construir novas aplicações desde o início (como o exemplo citado de RH anteriormente), elas serão montadas a partir de serviços publicados (internos ou externos).
Para ficar, mas claro dentro do SOA, Serviço é um conjunto de funcionalidades oferecido por um componente, apresentando características como:
-Invocação somente através da interface;
-Interface endereçável em uma rede (independente de localização);
-É interoperável (independente da plataforma);
Referencias:
http://www.sinfic.pt/SOA/arquitectura-soa.html
http://www.sinfic.pt/SOA/arquitectura-soa.html
http://www.pcs.usp.br/~pcs5002/oasis/soarm-csbr.pdf
Revista mundo Java –numero 18 – Ano III
Um abraço a todos e espero que tenham gostado. Na série 2 apresentarei os benefícios!