SOA Módulo 1 – Introdução O grande desafio do SOA (Arquitetura Orientada a Serviços ou Service Oriented Architecture) é encontrar soluções que sejam compatíveis ao negócio e que se encaixem aos processos dos diferentes departamentos. No lançamento de um novo produto ou mesmo na fusão entre companhias, por exemplo, há muitos aspectos em TI que precisam ser revistos. Com o SOA, os processos podem ser alterados de forma rápida e eficiente. Introdução ao 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 adeqüem a elas. SOA: Uma ponte entre 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. -1– 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 o 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 que estamos debatendo é 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, por exemplo. 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. Quebra de paradigmas Com a chegada da tendência de Arquitetura Orientada a Serviços pode-se dizer que surge então uma mudança de paradigma no lidar com os processos e negócios. A necessidade de fortalecer os laços com os clientes e tornar a gestão de serviços mais produtiva ganhou um foco maior com o SOA, que pode ser visto como uma ferramenta de quebra de antigos padrões e que vislumbra novas possibilidades entre TI e negócios. Porém, é importante destacar que por ser ainda um conceito recente, o caminho para a chegada no estado da arte do SOA ainda é doloroso e trabalhoso em todos os departamentos de uma organização, afinal estamos falando de uma mudança de postura. -2– Vale lembrar que o conceito está intimamente ligado às pessoas, o que exige também um caminhar em direção à evolução organizacional e à conscientização e ao aculturamento para mudanças. Além disso, é preciso que seja estabelecido um padrão de gerenciamento de pessoas que seja não apenas eficiente, mas que também reúna a avaliação dos objetivos das pessoas em detrimento dos objetivos da organização. Nesse caso, temos uma estrutura em que se torna os desafios e expectativas da empresa aderentes à atuação do pessoal envolvido, o que pode ser um dos maiores desafios na mudança da gestão organizacional, mas também um dos pontos mais importantes. Estrutura corporativa em choque com as mudanças O grande problema enfrentado pelas empresas nos últimos anos, é que elas detêm sim uma tecnologia importante para a realização de suas metas, porém, as mudanças do mercado não são rapidamente absorvidas pra essa tecnologia que detém processos ainda pouco dinâmicos. Com a utilização do SOA, o cenário ganha um aspecto diferenciado em relação a isso e consegue responder mais rapidamente as incidências do dia-a-dia. Por exemplo, uma mudança no ambiente de negócios, um lançamento de produto concorrente ou mesmo uma fusão entre companhias provoca rápida reação por parte da empresa, já que com o SOA, os processos podem ser alterados rapidamente, uma vez que os serviços são disponibilizados pelos aplicativos e sistemas, sendo eles desenvolvidos internamente, ou adquiridos no mercado. Dessa forma, cria-se uma rotina de reutilização desses serviços por qualquer outro sistema ou processo que demande. Se o conceito, que ainda engatinha no que se refere à consolidação, for realmente implementado pelas companhias, haverá ainda uma otimização no próprio orçamento de TI. A razão disso é que hoje existe uma grande quantidade de fornecedores numa composição de uma mesma infra-estrutura e compartilhando informação com distintos padrões, porém, quando se opera com o SOA é possível criar um ambiente mais transparente e interoperável, ainda que haja muitos fabricantes em uma mesma cadeia tecnológica. A conclusão disso é uma queda dos custos principalmente quando se fala de manutenção dos sistemas e às aplicações para integração, gerando uma lacuna de investimento, o qual pode ser direcionado para novas soluções ou tecnologias. Outro ponto importante está na própria atuação da equipe de TI que poderá focar mais o trabalho em tarefas estratégicas do que apenas cuidar da manutenção da estrutura. Em destaque, porém, podemos colocar a transparência e a flexibilidade da estrutura de processos tecnológicos, resultando, conseqüentemente, em uma visualização mais concreta do retorno do investimento. -3– Módulo 2 – Conceituação Arquitetura Orientada a Serviços é um conceito abstrato que pode ser utilizado de diversas formas. Um ponto importante é que o SOA tem como base e componente fundamental o conceito de serviços. Outra característica da Arquitetura Orientada a Serviços é a possibilidade de fazer o reuso de softwares, que reduz o esforço de desenvolvimento aplicacional e diminui custos, além de atender com mais agilidade aos novos requisitos de negócios. Conceituação Definir Arquitetura Orientada a Serviços por vezes é complicado, já que trata-se 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 web service é um recurso bastante utilizado para a criação dessa estrutura. Serviços Um ponto importante é que o SOA tem como base e componente fundamental o conceito de serviços. É uma espécie de função independente que permite que se faça uma ou mais requisições e que se ofereça uma ou mais respostas por meio de uma interface predefinida e padronizada. O destaque está no fato de que os serviços podem atuar utilizando apenas partes de um processo e editar ou mesmo processar uma transação. O importante quando se fala em serviços é saber que eles não podem depender do estado de outras funções ou processos. Isso quer dizer que a tecnologia que conduz o serviço, que pode ser uma linguagem de programação, por exemplo, não pode ser usada como instrumento de definição do serviço. Para organizar essa estrutura, é necessário seqüênciá-los de forma a fornecer uma lógica adicional para processar dados. É importante sempre fazer uma ressalva no que se refere à relação desses serviços com outros, pois não pode haver nenhuma dependência do primeiro com a condição do segundo. Com isso, se estabelece a possibilidade de o consumidor criar uma seqüência desses serviços e orquestrá-los em vários fluxos de forma a executar a lógica de uma aplicação. -4– Há então dois pontos importantes nesses processos descritos anteriormente: o consumidor, que consome e requisita os resultados ao provedor, ou seja, o outro lado da questão, executa o serviço e responde às necessidades. Para o sucesso das aplicações em SOA, é essencial que haja a capacidade de identificar os serviços e suas características. Essa ação depende, porém, de um diretório que disponibiliza quais são os serviços disponíveis em determinado domínio. O relacionamento entre os componentes que estão inseridos em uma aplicação precisa estar descrito em um contrato, que pode ser uma interface Java ou um arquivo XML, por exemplo. Dessa forma, cria-se uma rotina que facilita e explicita a dependência, a manutenção e a adaptação. Reuso de software Uma das características da Arquitetura Orientada a Serviços é a possibilidade de fazer o reuso de software. Essa ação surgiu a partir de uma necessidade de economizar recursos de hardware, já que há algum tempo atrás os dispositivos não possuíam memória suficiente para armazenar muitas rotinas. Por esse motivo, descobriu-se que era possível fazer tarefas similares por meio de uma única rotina baseada em parâmetros sem a necessidade de fazer uso de grande parte da memória. Porém, essa situação inicial se modificou, já que os componentes de hardwares evoluíram e os preços caíram. Com isso, o objetivo de fazer o reuso de software foi modificado. Agora, a razão de utilizá-lo é a possibilidade dada por ele de economizar recursos humanos. Sistemas abertos Para manter a flexibilidade demandada por muitos negócios, o SOA pode contar com a colaboração de sistemas abertos, que são aqueles em que é possível que novas entidades possam passar a compor o sistema, sair dele, ou mesmo evoluir. Há também o chamado sistema aberto distribuído, que permite que essas mesmas entidades estejam localizadas em máquinas diferentes. Com a utilização desses conceitos torna-se possível acessar distintas plataformas de hardware e implementações em diferentes linguagens de programação a partir do uso de um protocolo já definido e com uma interface com uma linguagem portável. Esse processo de intervenção nos sistemas começa quando o cliente por meio de algum identificador, como endereço IP, por exemplo, envia suas requisições para o servidor. Esse caminho é o chamado Sistema Distribuído Fechado, já que novas entidades não conseguem permissão para entrar no processo. -5– Há também os Sistemas Distribuídos que fornece aos clientes, de forma transparente, a entrada e a saída de componentes. Nesse caso, aquele identificador estático necessário para enviar requisições ao servidor, não mais é necessário, pois o servidor pode ser alterado desde a implementação até sua localização. Portanto, vemos que aplicações orientadas a serviços, são naturalmente aplicações distribuídas que utilizam os conceitos de distribuição, já que além de serem formadas por sistemas legados em diferentes máquinas, ainda garantem maior escalabilidade, o que é de extrema importância para a resolução dos problemas e demanda do requerente. Integração de sistemas Com o advento da internet, observamos uma revolução quando falamos em desenvolvimento de sistemas, pois a realidade diferenciada demandou uma série de mudanças de posturas, principalmente no que se refere aos sistemas de informação cooperativos em que se vêem agregadas diversas fontes de informação disponibilizadas ao usuário. Os sistemas que se tornaram cada vez mais heterogêneos, compostos de plataformas de hardware e software distintas, o que dificultava a formação de sistemas de informação cooperativos. Nesse contexto, entende-se que a necessidade de disponibilizar uma comunicação eficiente entre os sistemas é grande, ainda que o ambiente seja complexo e não uniformizado. Esses tipos de ambientes são eficientemente suportados por SOA, isso porque a arquitetura orientada a serviços trabalha com sistemas cooperativos abertos. Normalmente, os componentes dos sistemas estão sendo executados em máquinas distintas, podendo ser até mesmo, máquinas virtuais. Para se comunicarem podem utilizar um protocolo padronizado, um protocolo proprietário. Para concretizar projetos de integração de aplicações corporativas, o SOA está sendo bastante utilizado, principalmente porque as aplicações legadas já constituídas estão, geralmente, executadas em diversas plataformas, desde Linux em micro computadores até OS/390 em mainframes. De forma a tornar possível a comunicação entres esses sistemas, o que se faz é criar adaptadores que sejam capazes de acessar aplicações legadas e se comunicarem por meio do protocolo definido pelo sistema. Já esses sistemas, fazem o trabalho de disponibilizar as informações agora agregadas, fornecidas pelas diversas aplicações, sem a necessidade de reescrever linhas de código do legado. -6– Conclusão Com a arquitetura SOA, é possível transformar aplicações em componentes de software flexíveis, o que gera interoperabilidade entre diversas tecnologias. Como conseqüência dessa possibilidade, as aplicações legadas são alavancadas, há reutilização de software, redução dos custos de desenvolvimento e manutenção, além de transformação das soluções de negócios mais ágeis e fáceis de implementar. O reuso de software, como falamos anteriormente, se torna muito importante, principalmente, porque reduz o esforço de desenvolvimento aplicacional e os custos, além de satisfazer com mais agilidade novos requisitos de negócios. Vale lembrar que o web service é um caminho muito utilizado para a concretização desse processo. Eles providenciam um conjunto robusto e consistente de protocolos, regras e tecnologias que são completamente independentes das plataformas, sistemas ou linguagens de programação. A abordagem do conceito de SOA entre os clientes e os serviços resultam nos benefícios de interoperabilidade e cria-se uma ponte de acesso entre clientes e serviços, independente das plataformas que os suporta. Outra palavra-chave do conceito é Flexibilidade. Os componentes estão ligados de uma forma que possibilita a combinação semântica, a utilização de bibliotecas comuns e a divisão até de estados de execução. -7– Módulo 3 – Vantagens O SOA pode trazer muitos ganhos a uma companhia, principalmente porque as políticas globais são executadas uniformemente na rede e depois aplicadas nas interações de serviço. Com Arquitetura Orientada a Serviços é possível ter mais flexibilidade e adaptação de novas demandas. Quando uma companhia opta por uma arquitetura SOA, ela também opta por aprimorar a capacidade de utilizar os padrões já existentes, resultando em uma série de benefícios. Flexibilidade e adaptação Depois de entender os conceitos de SOA, vamos explorar as razões para implementá-lo. Quais são as vantagens e qual é a necessidade que justifica o investimento nessa tendência? Um fator importante ao optar por um novo modelo de arquitetura de software é a necessidade de transformar os modelos de negócios, que precisam caminhar junto com as novas demandas e objetivos das companhias. Ultimamente os negócios precisam constantemente se adaptar às novas bases de clientes, por exemplo. Essa habilidade de se adaptar rapidamente às novas bases e aos novos parceiros de negócios é a chave para o sucesso e significa ser dotado de uma característica importante no mercado competitivo de hoje: a flexibilidade e adaptação. Está aí a principal vantagem oferecida pela arquitetura orientada a serviços. Quando vemos a tendência do mercado de dividir os sistemas de TI com outras organizações, estamos de frente não apenas para uma realidade que busca maior valor para as empresas, mas também para uma realidade que demanda certos cuidados e diversas modificações nos sistemas. O processo de adaptação para a mudança o modelo de negócios não é fácil. São muitos sistemas legados que precisam ser modificados para se tornarem disponíveis. Esses sistemas legados precisam mudar para suportar as novas funções do negócio e se integrarem ao mais recente desenvolvimento dos sistemas ou se integrarem aos sistemas dos parceiros. A complexidade dessas ações é o que torna o conceito de SOA, muitas vezes, um grande desafio para as empresas. SOA para diminuir a complexidade Um exemplo interessante é imaginar que um departamento governamental, que tenha um sistema legado de gerenciamento de impostos que interaja com o legado do sistema de gerenciamento de negócios. O governo precisa incorporar um novo sistema que irá interagir com o legado de gerenciamento de negócios e conseqüentemente afetar o sistema de gerenciamento de impostos e taxas. Na essência, o que importa dizer é que, nesse contexto, os dois sistemas legados existentes anteriormente precisam ser reajustados para lidar com um novo tipo de negócio. O processo para isso é custoso, já que todo o sistema legado existente precisa ser alterado e depois passar por uma fase de testes e reajustes. -8– Porém, toda a complexidade descrita acima pode ser resolvida com a adoção de SOA. Com ele, os serviços trabalham em um esquema de extensão e, desse modo, podem lidar com vários tipos diferentes de entidades. O grande benefício do SOA é que ele é dirigido pelo modelo de negócios da organização e não o contrário. O benefício real está principalmente na redução de custo em reutilizar o modelo já existente. Outros pontos importantes estão na agilidade dos processos e na eliminação dos erros. Além disso, o SOA possibilita tarefas realizadas com consistência, alto desempenho, qualidade e com um controle mais bem-sucedido, já que a tecnologia garante a ação efetiva, dentro dos padrões pré-estabelecidos. É importante entender que adotar uma arquitetura orientada a serviços não significa necessariamente uma aquisição de tecnologia comum. A aquisição é, na verdade, um conceito que implica uso correto, melhores práticas e uma migração dos sistemas existentes. Vale ressaltar que o legado será aproveitado, uma vez que os investimentos anteriores serão integrados e não substituídos. O sucesso de SOA está também relacionado com seu gerenciamento. Por esse motivo, estão surgindo e se consolidando os padrões que podem uniformizar as políticas que sustentam o conceito. Uma abordagem de rede distribuída para SOA atinge uma maior evolução no que se refere a uma comunicação confiável, consistente e previsível entre serviços web implementados ao longo de uma corporação. Nesse caso, o projeto ganha em interoperabilidade e flexibilidade. Com isso, as corporações conquistam um mecanismo otimizado para implementar políticas que governam interações com serviços. Por causa desse benefício e à medida que departamentos distintos e projetos web se integrem, o grau de importância de SOA crescerá. Governança Um ponto importante na implementação de SOA é o que se refere à governança corporativa. Para que políticas essenciais sejam cumpridas e para que o compartilhamento e a reutilização de serviços sejam realmente efetuados, as empresas deverão contar com frameworks de governança de SOA para que os cumprimentos de políticas específicas para serviços e as interações entre eles sejam aderentes às regras. Se isso existir, conseqüentemente a empresa estará inserida em regras de negócios que agregam valor e que são essenciais para a competitividade, para adequação às normas e para a segurança. Um exemplo de como isso funciona é entender o mecanismo de uma rede de serviços em que todas as mensagens trocadas entre consumidores e fornecedores passam por uma rede de roteadores SOAP, que indica o ponto mais adequado para gerar uma governança uniforme das interações entre os serviços. O diferencial está no fato de que a inteligência de governança não está exclusivamente hospedada em diversos pontos finais, e sim, distribuída por toda a rede, de modo a ser executada de forma eficiente e uniforme. -9– Com isso, é possível adicionar outras tarefas no decorrer do processo. A vantagem está, então, no fato de que as políticas podem ser implementadas durante o caminhar das mensagens, sem interferir na comunicação entre os serviços e conseqüentemente qualquer ponto final pode ser acoplado à rede e exibido aos consumidores da corporação. O cenário atual mostra, porém, que as empresas estão ingressando em SOA com poucas iniciativas em web e centradas em projetos com padrões centrais como WSDL, SOAP e XML. Porém, as organizações que estiverem buscando iniciativas globais de SOA devem procurar padronização mais profunda para garantir a interoperabilidade dentro e fora dos departamentos. A possibilidade de colocar a governança em uma rede baseada em padrões é uma grande vantagem com relação à criação e à administração do conceito de SOA. Essa capacidade é importante porque cria uma rede inteligente em que não é necessário fazer hard-code e gerenciar políticas em cada ponto final independente. Pontos positivos na adoção de SOA A adoção de um conceito tão recente e ao mesmo tempo tão essencial pode, por vezes, parecer complexo demais. Porém, a consistência do SOA pode trazer ganhos consideráveis, principalmente porque como já dito, as políticas globais são executadas uniformemente na rede e posteriormente aplicadas em todas as interações de serviço. Isso resulta em uma aplicação consistente e que não depende dos conjuntos de habilidades de desenvolvedores ou necessidades individuais de projetos. Alcança-se uma maior flexibilidade e adaptação das novas demandas. O gerenciamento de troca simplificado é outro ponto importante para contabilizar ganhos. Vemos que os upgrades e modificações de diferentes políticas, que têm possibilidade de surgir durante os processos, podem ser implementados na rede e aplicados em todas as interações existentes. Com esse processo diferenciando, elimina-se a necessidade de solicitação de modificações a cada ponto final individual. As despesas administrativas ficam reduzidas quando se implementa um conceito de SOA. Isso acontece, porque, em geral, atualizar, executar e gerenciar políticas de infra-estrutura que estejam distribuídas em pontos finais individuais sugere uma alta despesa administrativa, o que é eliminado quando os trabalhos são transferidos para uma rede de serviços centralizada, o que reduz não apenas esses custos, mas também as responsabilidades de administração. É interessante a maneira como se dá a aceitação das políticas aplicadas aos processos com SOA. Podemos notar uma aplicação realmente consistente e garantida, uma vez que as mensagens não podem chegar ao ponto final, sem que as devidas políticas sejam aplicadas. Isso garante que nada do que foi programado será ignorado. Além disso, se for necessário alguma postura alternativa, as decisões dependem da competência de cada desenvolvedor corporativo. - 10 – Conclusão Quando uma companhia opta por uma arquitetura SOA consegue aprimorar a capacidade de utilizar os padrões e gerar uma série de benefícios. Entre eles está a liderança de padrões, que é extremamente importante já que as empresas de redes de serviços estão avançando cada vez mais nos processos de criação desses padrões e podem oferecer uma compreensão mais abrangente da adoção desse tipo de conceito junto aos consumidores e parceiros. Assim, os usuários podem entender melhor a estratégia e compreender onde devem ser feitas as aplicações de esforços de educação e desenvolvimento. Além disso, a intermediação desses padrões é bastante importante, pois ela permeia os serviços baseados em rede e possibilita que o usuário modifique mensagens e reúna da melhor forma os recursos de software. Um exemplo interessante é imaginar uma empresa que deseja atualizar serviços de produção que são efetivamente realizados por parceiros. A companhia quer fazer essa atualização de forma a colocar esses serviços em sintonia com os padrões mais atuais, porém, ao mesmo tempo não gostaria que os parceiros fossem forçados a participar da mudança. Nesse caso, a facilidade está no fato de que a empresa poder, ela mesma, alterar as mensagens durante a intermediação, para facilitar a comunicação contínua. As redes de serviços também funcionam como uma camada de isolamento, ao trabalhar entre os recursos de software e padrões que estão sempre em processo de evolução. As mensagens passam entre interfaces em uma rede distribuída de roteadores ligados e localizados nas extremidades da rede, o que possibilita uma melhor comunicação e um conceito de SOA efetivamente escalável. Essa rede de serviços age também como uma espécie de governança otimizada de SOA, que ganha mais importância conforme se dá a expansão do SOA, o que garante que a empresa veja as vantagens do compartilhamento e da reutilização de serviços. Apesar de recente, o conceito SOA tem despertado grande interesse no mercado, que já enxerga o business value do conceito. - 11 – Módulo 4 – Mercado Aos poucos o mercado começa notar a atuação de SOA nos negócios. Isso porque, quem utiliza SOA consegue oferecer novos serviços rapidamente, o que pode acontecer por meio de sistemas de TI novos ou existentes. Uma pesquisa feita nos Estados Unidos pelas revistas CIO e Computerworld identificou que 58% dos 612 executivos de TI entrevistados implementou o conceito ou pretendem implantar o SOA a curto prazo. Consolidação A aceitação do mercado ao conceito de SOA está se expandindo cada vez mais. A demanda crescente está estimulando as empresas fornecedoras a se unirem em estratégias e ações que maximizem a atuação da tendência e impulsionem o mercado para a consolidação. Muito se fala sobre SOA, mas ainda não há um padrão de desenvolvimento definido, as pequenas e médias empresas ainda desconhecem a visão do conceito como gerador de valor aos negócios. Além disso, há também um desconhecimento com relação aos custos e o retorno do investimento. A tendência é que esses pontos acima descritos sejam dissolvidos em pouco tempo, como reflexo das ações de mercado que já começam a acontecer e principalmente com a visibilidade que SOA tomará nos próximos anos. Estratégia de padronização O grupo denominado Open SOA resulta da aliança entre Oracle, SAP e BEA. Seu principal objetivo é criar sugestões de padrão de desenvolvimento para arquiteturas orientadas a serviços. Trata-se de uma forma de dar atenção ao tema e atender a pressão por padrões que garantam a integração entre tecnologias de diversos fabricantes. Participaram da fundação do grupo empresas especializadas como Iona Technologies, Sybase, Xcalia e Zend Technologies. A necessidade de estabelecer padrões é tão grande que algumas empresas que se uniram são rivais. Mas a criação de determinados pontos demanda que a competitividade seja deixada de lado, até que sejam definidas as características que conseqüentemente agregarão valor a todas as empresas que se relacionem com SOA. A partir de então, poderão dispor de uma forma simples de construção de aplicações componentizadas. Os esforços estão sendo concentrados em dois projetos. O primeiro trata da arquitetura de componentes de serviços (SCA, do inglês service component architecture), que tem o objetivo de definir modelos para criar e reunir componentes de serviços. O segundo projeto é o chamado Service Data Objects (SDO), responsável por estabelecer parâmetros de gerenciamento de dados em aplicações SOA. Até o fim de 2006, as empresas esperam submeter as duas iniciativas a um corpo de definição de padrões. - 12 – Hoje, a aliança já conta com a participação de 17 empresas. As últimas companhias que ingressaram na iniciativa foram Progress Software, Red Hat, Software AG e Sun Microsystems. Pequenas e médias empresas A mais recente ação da Magic Software anunciada em julho de 2006 visa a disseminação do conceito SOA para pequenas e médias empresas. A empresa seleciona integradores de software e prestadores de serviços de TI sendo desenvolvedores de ERP, CRM, supply chain e outras aplicações para gestão do negócio, de modo a criar uma rede de atendimento a pequenas e médias empresas para fornecimento de soluções baseadas na arquitetura orientada a serviços. Esse é somente um exemplo das ações de mercado que estão se voltando para a abrangência do mercado de SOA. O objetivo é mostrar que SOA não é apenas uma sigla longe da realidade corporativa de pequeno porte, mas sim um conceito de gestão empresarial acessível a qualquer tipo de negócio. Para a Magic Software, a estratégia está rendendo novos negócios. A companhia trabalha em nove projetos de integração de processos que contam com o apoio de SOA e BPM. A Oracle também criou o Fusion Middleware para adoção e administração de arquiteturas orientadas a serviços, em ambientes heterogêneos de TI. Trata-se de uma forma de fundir as melhores práticas de todas as linhas de produtos e tecnologias que a empresa oferece, reduzindo a complexidade dos ambientes de TI. SOA e América Latina O mercado da América Latina também desperta para o conceito SOA. A constatação vem da própria Oracle e dos resultados apontados com o Oracle Fusion Middleware. Relatório do instituto de pesquisas Gartner revela que a arquitetura orientada a serviços será a base de 80% dos projetos de desenvolvimento até o ano de 2008. Para a Oracle, as empresas clientes dessa região optam cada vez mais pelos componentes do Oracle SOA Suíte. Alguns clientes Oracle que estão fazendo uso da tendência são: Matera Systems do Brasil, Open Card da Colômbia, Farmalink da Argentina, o Ministério da Fazenda e Crédito Público do México, a Bolsa Mexicana de Valores (BMV), além da Instituição para Depósito de Valores (Indeval), também do México. A questão é que há uma percepção, ainda que em consolidação, de que, com o uso de SOA, conquista-se mais flexibilidade e eficiência no negócio e na redução de custos. - 13 – Percepção do mercado É consenso, entre os fornecedores e atuais usuários, que aos poucos o mercado começa notar a atuação de SOA. Isso porque quem utiliza SOA consegue oferecer novos serviços rapidamente, o que pode acontecer por meio de sistemas de TI novos ou existentes, não importando se são antigos, proprietários ou fechados. Estabelecese então uma atuação em que não é preciso implementar projetos caros e fora da realidade de algumas empresas, além de ser possível usufruir de uma plataforma integral de gestão do ciclo de vida dos serviços. O que os recentes usuários estão notando é que o SOA veio trazer evolução para os produtos e para a maneira de lidar com os negócios e prover integração sem grandes impactos. Uma pesquisa feita nos Estados Unidos pelas revistas CIO e Computerworld identificou que 58% dos 612 executivos de TI entrevistados implementou o conceito ou tem planos para fazê-lo. Aproximadamente 44% deles utilizarão SOA para integrar aplicações internamente, 28% para fornecer serviços a clientes ou consumidores e 21% para se conectarem com aplicações externas fornecidas por parceiros. Expectativas da IDC apontam para um crescimento de 138% dos investimentos em SOA somente neste ano, o que significa cerca de 8,6 bilhões de dólares. Em 2010 o valor chegará aos 33,8 bilhões de dólares, principalmente como reflexo da demanda dos setores de finanças e telecomunicações. Veja mais informações sobre as tendências e expectativas do mercado no módulo 8 de tendências. - 14 – Módulo 5 – Reutilização de Software Até pouco tempo atrás, a questão de reutilização de software passava por um problema de definição. No entanto, a engenharia de software proporcionou princípios, métodos e ferramentas que permitiram driblar esses problemas. É preciso ter em mente que, por melhor que seja, a reutilização significa mudança de postura nas empresas, em diversas áreas e em vários momentos. Produtividade e benefícios A reutilização de software, apesar de ser um conceito de SOA que permite redução de custos, ainda não está concretizada na indústria de software, embora toda a comunidade de TI já observe a produtividade e os benefícios de que envolvem a estratégia. O mercado começa agora a vislumbrar uma metodologia orientada ao conceito de modo a desenvolver software utilizando objetos que tenham sido produzidos previamente. Um componente é considerado reutilizado quando é introduzido em um novo esquema junto com toda a informação que possui. Assim, uma classe é reutilizada ao ser introduzida em um esquema junto com todas as suas hierarquias, associações, atributos, eventos, ações e representações gráficas. As ações, eventos e atributos que a classe integra são consideradas reutilizadas no modelo. A reutilização aplicada a componentes de alto nível, como classes e processos, proporciona os mais altos índices de automatização. A contrapartida normalmente é a incorporação de componentes de baixo nível que nunca são utilizados, mas que se encontram incluídos no esquema por estarem inseridos nessa classe de processos. A engenharia de software para possibilitar a reutilização Até pouco tempo atrás, a questão de reutilização de software passava por um problema de definição, ou seja, não havia uma precisão na planificação e estimação de custos, pouca produtividade, elevadas cargas de manutenção e demandas defasadas em relação à oferta, baixa qualidade dos produtos e grande dependência dos desenvolvedores. A engenharia de software proporcionou princípios, métodos e ferramentas que permitiram driblar esses problemas, mas o panorama atual do andamento do trabalho, a tecnologia das ferramentas de desenvolvimento e a grande sofisticação do hardware empregado exigem que a engenharia de software melhore suas práticas de criação de aplicações informáticas. - 15 – A metodologia de reutilizar software recorre à engenharia de software, ao tratar do desenvolvimento de sistemas com os objetos essenciais das atuais metodologias orientadas a objetivos, linguagens de quarta geração e da interface gráfica de usuário, mas também utiliza as Ciências da Informação para definir um sistema de indexação, classificação e recuperação de todos os objetos necessários para desenvolver a aplicação. O mercado encontra na reutilização uma forma de enfrentar a crise do software e de identificar como a companheira inseparável do paradigma orientado a objetos. Isso acontece porque há uma demanda cada vez maior por produtos e serviços confiáveis, mas ao mesmo tempo baratos e com curto tempo de entrega. Existem dois pontos importantes a serem considerados: o desenvolvimento para reutilização e o desenvolvimento com reutilização. Ambas, embora relacionadas, apresentam características peculiares, mas que ainda não estão suficientemente conceituadas ou desenvolvidas. Podemos dizer que a reutilização é um novo modelo desenvolvimento de software que requer um suporte pela tecnologia que ainda não está madura. Portanto, é necessário explicitar quando, como e onde reutilizar, ou como desenvolver o elemento para a reutilização. Os repositórios representam um passo a mais no processo para integrar a reutilização da engenharia de software. A investigação sobre modelos de métricas e validação dos mesmos integra a estrutura que possibilitará que a reutilização se converta em uma disciplina de engenharia totalmente incorporada à engenharia de software. Um completo modelo de reutilização deve ser composto de alguns pontos importantes: A vertente técnica, em que se consolida o processo de desenvolvimento para a reutilização e a integração com outras ferramentas. A vertente de processo, encarregada dos aspectos de gestão e metodologia. A vertente de qualificação e métricas, que compreende a política de qualificação dos elementos reutilizáveis e dos processos, sustentada pelas métricas adequadas. Reflexos da reutilização A reutilização significa que haverá reflexos nas empresas com relação à produtividade, a capacidade de manutenção, a portabilidade e a qualidade. Por isso, o reuso deve se aplicar a cada etapa do ciclo de vida, caso contrário todos os benefícios potenciais não serão aproveitados. Porém, para alguns estudiosos os resultados que se obtêm são ainda mais significativos, já que ramificações completas da estrutura do desenho podem ser reutilizadas. O ideal é reutilizar as especificações, pois essa atitude permite eliminar completamente o esforço implicado em desenhar, codificar e provar uma implementação da especificação. Durante a fase de análises o engenheiro de software deve ser capaz de visualizar um repositório corporativo de projetos finalizados, buscando especificações similares que podem servir para o novo projeto. - 16 – Os benefícios da reutilização podem ser medidos ao avaliar as fases de análises e de desenho, assim como o custo de corrigir um defeito produzido em fases, comparando ambos os custos com o de reutilizar informações de análises e desenho desenvolvidas e provadas. Além disso, é preciso também ter em conta que as decisões tomadas durante a fase de análises, de desenho ou de implementação, estejam ausentes no código. Assim, ainda que a reutilização de módulos de código de um sistema de base de dado possa reduzir os custos, a reutilização da especificação funcional de todo o sistema pode dar lugar a reutilização do conjunto completo de desenhos, módulos de códigos, documentação, casos de prova e experiência associada ao usuário e tudo o que se desenvolveu a partir desta especificação. Para que esse conceito seja realmente eficiente é importante que haja uma adaptação dos atuais modelos de ciclo de vida dos softwares, de modo que eles possam suportar a reutilização em todas as fases e para todos os produtos. Um importante requisito é a existência de um repositório (biblioteca de componentes softwares reutilizáveis) e de um sistema automático de gestão dessa biblioteca. Os componentes armazenados no repositório devem estar bem documentados, sendo o sistema gestor da biblioteca o encarregado de organizar, proteger e gerenciá-los. É necessário um mecanismo de busca para localizar os componentes de interesse, sendo também imprescindível um mecanismo de análises para entender os componentes, e outro para medir sua qualidade. Além disso, é necessário dispor das capacidades para identificar as relações entre diferentes componentes. A biblioteca de software reutilizável deve reunir as seguintes propriedades: Um sistema de gestão de base de dados extenso para armazenar e recuperar componentes, facilitando assim o acesso, a busca, o controle e a segurança. Operações que permitam ao usuário criar, editar, ver e compor componentes. Um esquema organizacional que atue como uma ajuda navegacional por meio da biblioteca. Facilidade para crescer Desenvolvimento e métricas O processo de desenvolvimento para o paradigma de Orientação ao Objeto se comporta de forma diferente ao paradigma de desenvolvimento clássico. As fases de análises e desenho não estão separadas. A diferença é ainda maior quando se desenvolve com a reutilização. Alguns aspectos relevantes da qualidade e das métricas devem ser considerados, desde o ponto de vista da reutilização, focando no processo e no produto. - 17 – Processo: O desenvolvimento de softwares com um alto valor de reutilização supõe um incremento nos custos, pois trará mais valor ao produto. O modelo de custos utilizado deverá incluir, de uma forma ou de outra, parâmetros que reflitam esse valor adicionado ao produto. Com relação aos custos do desenvolvimento com a reutilização, sabe-se que é o assunto conflitante, quando se está iniciando o projeto. Porém, os modelos de estimação de custos deverão diferenciar os elementos software que se desenvolvem por completo e aqueles que se reutilizam total e parcialmente. Além disso, é importante lembrar que posteriormente os custos cairão, já que com a reutilização, a produtividade aumentará. Produto: As métricas servirão para controlar, entre outros, o reuso e fatores de qualidade que sejam de interesse durante o desenvolvimento para reutilização. É um fator que os desenvolvedores, devem desempenhar com o máximo de interesse para que o investimento seja recuperado por meio da reutilização e da qualificação da produção. Um dos suportes para a reutilização que integra ferramentas de diferentes tipos atuando conjuntamente é o repositório. O papel desempenhado pela administração de um repositório não se limitará somente a publicar e gerir o acesso aos recursos recebidos. Também fará parte dessa ação um aspecto fundamental que é a qualificação dos recursos, de forma que determinado recurso, para ser considerado como tal, deve passar por um processo que lhe qualifique e o certifique como elemento de valor e de qualidade. As métricas do produto integram as ferramentas a serem utilizadas nesse processo. A exploração do repositório no desenvolvimento com reutilização permitirá obter informações dos usuários que podem dar lugar a revisões e ajustes nesse conjunto de métricas. - 18 – Módulo 6 – Quatro passos para adotar SOA O especialista em SOA, Benoit Lheureux, do Gartner, apontou na 5ª Conferência Anual de Integração Empresarial, os quatro passos essenciais para uma implementação bem-sucedida de Service Oriented Architecture: introdução, disseminação, exploração de resultados e platô.Veja os passos detalhadamente. Quatro passos para adotar SOA O especialista em SOA Benoit Lheureux, vice-presidente e analista do Gartner, integrou a programação da 5ª Conferência Anual de Integração Empresarial, com a palestra “O cenário de integração: Novas tecnologias, Novos Padrões e Novos Designs”. Ele apontou quais são os quatro passos para uma implementação bemsucedida de Service-Oriented Architecture: introdução, disseminação, exploração de resultados e platô. Introdução – É preciso definir um projeto-piloto. A implementação segmentada reduz os investimentos e permite mostrar as melhorias da iniciativa para a alta direção sem ter que enfrentar o risco de colocar SOA na empresa inteira. Disseminação – Concluída a primeira fase, o desafio é espalhar esse conceito para outras áreas, aumentando o escopo de atuação e as pessoas envolvidas. Exploração dos Resultados – Qualquer projeto precisa de resultados num prazo razoável. Documentando os benefícios resultantes da implementação, a adoção é facilitada e cultura é adotada pela empresa. Platô – Momento em que foi atingido o estado da arte sobre o tema, onde o conceito pode ser conferido em sua plenitude e aproveitado na organização. Se o gestor pular etapas, o fracasso está garantido. A maioria das empresas está entre a Introdução e a Disseminação do conceito. Assim, independente do país em que a companhia se encontra, ninguém está distante demais em SOA. Em pesquisa realizada pela IDC, em Londres, durante conferência sobre SOA, 60% de um grupo de 140 executivos de TI responderam ainda estar na fase investigativa em relação à arquitetura. A pesquisa mostrou que SOA ainda não foi completamente assimilado. Na América Latina, o conceito levará ainda mais tempo para ser entendido e aplicado. Na conclusão, foram destacadas dez orientações essenciais para a adoção de SOA: Entender que SOA é um dos seis elementos estratégicos para o Dynamic IT. Na América Latina, as empresas, especialmente no segmento SMB, devem partir da avaliação e do mapeamento de seus processos e rever visão, missão e planos de longo prazo. - 19 – Caso haja peças faltando, considerar os serviços de uma consultoria para unir TI aos negócios Manter o processo simples Definir a informação que necessita ser padronizada Mostrar o valor da proposta, considerando o uso de projetos-piloto e o desenvolvimento de aplicações compostas Executar o piloto, considerando os dados quantitativos e métricas do negócio Apresentar os pontos-chave e estabelecer a confiança Cobrar as métricas de ROI do fornecedor de serviços Integração A integração tradicional não pode atender às necessidades dos aplicativos de negócio dinâmicos, heterogêneos, mas conscientes dos custos, dos dias atuais. Os sistemas nervosos das empresas estão surgindo, alimentados por padrões, como por exemplo, serviços e conceitos da Web, tais como SOA, mas prejudicados por aplicativos legados, diferenças entre aplicativos em pacotes e demandas por controle local e customização. Nesse momento, os gestores de TI se deparam com uma série de questionamentos. Quais serão os benefícios e limitações das três estratégias mais importantes de migração: arrancar-e-substituir, embrulhar-e-aplicar reengenharia, e conservar-ecriar camadas? De que maneira padrões como Java, XML e serviços Web afetam a adoção de canais de serviço de empresa e outras tecnologias de integração? Como as estratégias de integração de empresa reconciliam as necessidades de coerência e reutilização com a necessidade de controle local e retorno imediato? Para fazer frente a tais questionamentos, os analistas apontam o planejamento em etapas como sendo a chave para sucesso de projetos de SOA. Estabelecer um plano fragmentado em etapas e gerenciar expectativas é o grande desafio para implantação de SOA e um dos principais fatores de sucesso para os projetos desse tipo. O estabelecimento de uma estratégia passo-a-passo ajuda a evitar sobreposições de fases. Como um projeto de SOA pode provocar um impacto notável na cultura da companhia, o aconselhável é começar aos poucos. O plano deve ser elaborado mediante a combinação de análises críticas de negócios e de tecnologia. A criação de um projeto-piloto o mais verossímil possível também pode contribuir para o sucesso da implementação no momento de real implantação. É necessário escolher um modelo com as exigências claras e escopo enxuto. Estabelecer as prioridades e comunicá-las aos profissionais envolvidos também é crucial para o projeto, determinando limites para as expectativas. Ao definir e planejar as etapas realistas de implementação, muitas frustrações são evitadas. Além disso, é necessário rigor e disciplina na governança dos projetos. - 20 – SOA no Brasil: como e quando implantar Ainda em fase embrionária no Brasil, a adoção de SOA é muito discutida por executivos de TI, que precisam entender que é impossível começar um projeto dessa dimensão sem antes instaurar uma política de governança. Os especialistas aconselham a começar a implementação pelos processos mais críticos para o negócio. Sugerem que as organizações comecem a implantar SOA aos poucos. A adoção da nova arquitetura pode ser feita em etapas, conforme demandas forem surgindo. O ideal é que as empresas apliquem SOA inicialmente em processos críticos, que exijam mais agilidade, como os sistemas onde a lógica de negócios possa ser facilmente desagregada da parte de apresentação. Uma vez que a companhia decida aderir ao SOA, ela precisa se certificar de que os projetos nascerão baseados na arquitetura. Quando for desenhar a arquitetura do sistema, os responsáveis têm de ter o projeto de SOA em mente. Desde a concepção do sistema, a nova arquitetura deve ser levada em consideração. Um dos principais benefícios do SOA é a garantia de maior longevidade que ele proporciona aos sistemas, ao criar a camada entre o mundo antigo e o novo. No médio prazo, as empresas vão alcançar altíssima produtividade no desenvolvimento. Não vão reconstruir aplicações, mas compô-las a partir de outras já existentes. Durante a implementação do projeto SOA, as equipes identificarão serviços não muito utilizados, mas dos quais as empresas também não devem se desfazer. Com SOA, algumas funcionalidades serão abstraídas e outras integradas. A arquitetura elimina retrabalho. As empresas devem construir um catálogo de serviços e utilizálos para outras aplicações. Outros especialistas acreditam que os desafios para a adoção do SOA estão muito mais do lado organizacional e cultural da empresa, do que em seu aspecto técnico. Um projeto de SOA só valerá a pena se houver alinhamento entre tecnologia e os objetivos de negócios da companhia. - 21 – Módulo 7 – Redução de custos O principal objetivo do SOA é o atendimento das necessidades de negócio de forma flexível e ágil, a partir de princípios bem definidos. Essa arquitetura é como um mapa que coloca toda a empresa no rumo certo em relação às vantagens competitivas e desafios futuros. Trata-se de um conjunto de políticas, práticas, normas, procedimentos e frameworks que garantem a agilidade do ambiente de TI e maior vantagem competitiva. Compromisso entre TI e negócios O grande diferencial competitivo das empresas líderes é a agilidade em redefinir estratégias e a rápida adaptação às mudanças. Sem a informação adequada, no momento certo, as chances de sucesso de uma nova iniciativa diminuem e, dessa forma, a solução encontrada pelas empresas para mitigar o risco da imobilidade corporativa muitas vezes está em ceder espaço às solicitações dos diferentes departamentos, gerando com isso novas demandas de informações e sistemas. Normalmente ações tomadas de forma rápida não obrigatoriamente significam ações de menor custo. Aí se encontra o grande paradoxo dessas organizações: Agilidade x Performance Corporativa versus Manutenção x Redução de Custos. Em função desse paradoxo, a percepção das áreas de negócio em relação à de TI é a de que esta última gasta muito e não consegue atender os requisitos de negócio no tempo adequado. Essa impressão é reforçada em geral por problemas de comunicação e baixa interação entre as áreas. Reforçar o compromisso entre o departamento de TI e as áreas de negócio é um dos fatores-chave de sucesso, para se conseguir flexibilidade e agilidade na estruturação dos processos de negócio. Para isso, é importante explicar e orientar as áreas sobre como a TI pode contribuir para o negócio, desenvolvendo as soluções adequadas a um custo menor e com mais agilidade. A visão adequada de arquitetura de sistemas nesse caso pode ser o primeiro passo, no sentido de reforçar o entendimento das áreas de negócio quanto ao retorno esperado pelas soluções propostas. Projetar essa arquitetura de forma adequada, portanto, é fator preponderante para se conseguir a tão almejada agilidade. Nesse momento, o conceito de SOA pode ser usado como o elo que une todas essas pontas. Quanto mais sistemas implementados, menos conhecimento há dos aplicativos realmente relevantes para os negócios. Esse é o cenário corporativo atual, um contraponto para a adoção do conceito de SOA, que caminha de forma lenta, porém efetiva, para tornar a tecnologia mais flexível e adaptável para benefício dos processos de negócios. Mas SOA não é um conceito isolado. É um dos seis elementos necessários para o modelo de Dynamic IT, proposto pela consultoria IDC, que requer vários investimentos para o fluxo dos aplicativos empresariais, que por sua vez não devem ser vistos de forma isolada, mas como uma extensão dos processos de negócios. - 22 – Isso, nas diversas etapas a seguir, desde a implantação de ferramentas de produtividade, de colaboração, de sistemas isolados, sistemas integrados, CRM e ERP, soluções de inteligência dos negócios, consolidação da infra-estrutura e outsourcing até a adoção de SOA e NaaS, para atingir uma TI mais dinâmica. Mas a realidade mostra que as empresas têm dificuldades em conhecer todos os seus processos, como pede o SOA. A adequação à lei Sarbannes Oxley, por exemplo, as obriga a olhar detidamente seus próprios processos, a fim de melhorá-los. Mas nem sempre esses processos são claros. Observando o cenário brasileiro, as companhias das áreas de telecomunicações e de finanças estão mais adiantadas em relação aos outros segmentos do mercado. Estratégia A indústria se reinventa: conceitos e fundamentos pré-existentes são lançados novamente ao mercado sob uma nova ótica. A euforia sobre esses conceitos traz à tona novas oportunidades, em diferentes nichos. A estratégia SOA empregada pelos grandes players está na redução de custos (TCO), aumento da produtividade e encapsulamento da complexidade técnica. O ROI (retorno de investimento) está quase sempre atrelado a estratégias de integração, em que o custo de integrar ambientes heterogêneos, utilizando técnicas de baixo acoplamento, como servidores de mensagens assíncronas, por exemplo, é excessivamente alto. O SOA seria um paradigma arquitetural de desenvolver os componentes de sua aplicação como serviços. Ele possibilita a criação de aplicações inteiras de forma heterogênea, consumindo serviços de diferentes players. Trata-se de uma mudança no formato, que outrora era inviável por questões de custos e especificação. Evitar a sobreposição Nas grandes corporações, para que o ROI de fato aconteça é preciso que a mentalidade na concepção da estrutura das aplicações sofra alterações. Isso é inerente à implementação tecnológica e à cultura empresarial, que deverá prover unidades de análise de negócios que caminhem junto à área técnica, a fim de evitar a sobreposição dos serviços. O fundamento central do SOA provém de uma especificação pré-existente, os web services, que não teve êxito como esperado no mercado. Sua repaginação para um novo modelo foi necessária. A idéia central dos web services era válida, mas inicialmente teria sido mal vendida ao mercado, talvez por falhas na especificação, deixando lacunas abertas, ou por falta de empenho das empresas de TI em empregar e disponibilizar serviços sob tal formato. O conceito de plataforma é mais amplo. Emprega o uso da rede como plataforma de serviços, onde aplicações podem buscar uma determinada funcionalidade e essa ser provida, sem precisar ser reescrita. - 23 – A complexidade dessa nova tratativa é o centro da estratégia de algumas iniciativas e um novo conceito está entrando em pauta, o SCA, de Service Component Architecture. Arquitetura Corporativa Para se explicar o conceito de SOA, é necessário compreender o significado e a importância da Arquitetura Corporativa de TI. Trata-se de uma visão compartilhada com toda a empresa, que expõe e define como dados, sistemas, processos, elementos de gerenciamento e ambiente devem trabalhar integrados como um todo, de forma a suportar a operação da empresa em um processo contínuo de alinhamento com o negócio. O SOA é uma forma de conceber ou projetar arquiteturas corporativas de TI, disponibilizando recursos de software, ou seja, funcionalidades, como serviços, agrupados em processos de negócio. O objetivo principal é o atendimento das necessidades de negócio de forma flexível e ágil, a partir de um conjunto bem definido de princípios. Tais princípios indicam que o negócio define a necessidade do serviço, bem como o serviço define a necessidade da tecnologia. Além disso, os serviços contam com interfaces bem definidas, com fácil comunicação entre clientes e serviços e entre serviços. Dessa forma, o uso e a organização dos serviços são garantidos, com a adoção de padrões abertos de mercado, que possibilitam a interoperabilidade entre todos os integrantes do ambiente de TI. Em última análise, SOA é o mapa que coloca toda a empresa no rumo certo em relação às vantagens competitivas. Trata-se de um conjunto de políticas, práticas, normas, procedimentos e frameworks que garantem a agilidade do ambiente de TI em relação aos processos de negócio com grande vantagem competitiva. Com essa abordagem, temos à nossa disposição a flexibilidade de lidar com os processos de negócio da mesma forma como podemos lidar de forma subjacente com a infraestrutura de TI, usando componentes que podem ser reutilizados e recombinados para atender as mudanças de prioridade do negócio. As empresas necessitam da abordagem de SOA, porque ela disponibiliza a longo prazo a promessa de se utilizar o potencial de TI para acelerar e potencializar o negócio, eliminando as frustrações com TI a partir da estruturação de soluções mais flexíveis e prazos mais curtos de desenvolvimento. Ela também justifica e explica custos e investimentos de TI, ao economizar recursos, esforço e tempo a longo prazo em função da reutilização de componentes e da sua flexibilidade. Além disso, ela oferece ao pessoal não-técnico um claro entendimento do que TI faz, como faz e o real valor para o negócio. - 24 – Vantagens Sob o ponto de vista do CIO, as vantagens estão ligadas aos seguintes fatos: diminuição da dependência da tecnologia para se conceber a solução, a fim de trabalhar melhor os requerimentos do negócio; a TI assume o papel de facilitador aproximando-se mais das áreas de negócio; melhor gerenciamento de recursos e projetos de TI, onde o ROI de uma fase ou projeto pode ser utilizado para o próximo, reduzindo os custos de forma geral; e, finalmente, um aumento significativo em relação à influência do CIO, já que ele passa a ter participação mais ativa no processo de definição da arquitetura, muito mais próximo ao negócio. - 25 – Módulo 8 – Tendências O mundo corporativo já observa o importante papel de SOA em alinhar os interesses do departamento de TI e os objetivos financeiros das empresas. O que impulsiona a decisão de optar por SOA é a grande flexibilidade e redução de custos ao integrar aplicações já existentes. Por esse motivo, o cenário é um dos melhores para os fornecedores de serviços especializados em SOA. Integra aplicações e fornece serviços O posicionamento de SOA no mercado está crescendo cada vez mais. Pesquisa feita nos Estados unidos pelas revistas CIO e Computerworld aponta que 58% dos 612 executivos de TI entrevistados implementou o conceito ou tem planos de fazê-lo. O resultado está diretamente ligado ao fato de que já se observa o importante papel de SOA em alinhar os interesses do departamento de TI e os objetivos financeiros das empresas, isso porque o conceito integra as aplicações e fornece serviços diretamente aos clientes. Além disso, o que impulsiona a decisão de optar por SOA é mais flexibilidade e redução de custos ao integrar aplicações existentes proporcionadas pela arquitetura. Apesar disso, grande parte dos entrevistados aponta que é necessário que haja uma evolução nas ferramentas e protocolos. Para a parte do mercado que passa pelo processo de implementação, a necessidade em destaque para melhor consolidar o conceito de SOA é a capacitação do pessoal. Aproximadamente dois terços dos entrevistados está investindo no treinamento da equipe para melhor atender os requisitos da implementação e quase metade, aproximadamente 45%, vai contratar consultores e 19% vão terceirizar segmentoschave. A falta de pessoal e recursos foi apontada por 47% dos entrevistados que não pensam em implementar SOA, 40% apontaram a falta de clareza sobre o ROI (retorno sobre o investimento) e 38% responderam que lhes falta financiamento para esse tipo de implementação. Depois de concretizado o processo de implementação, 44% utilizarão SOA para integrar aplicações internamente, 28% para fornecer serviços a clientes ou consumidores e 21% para se conectarem com aplicações externas fornecidas por parceiros. No que se refere aos desafios de SOA, 63% afirmam que tem como objetivo mudar para uma arquitetura e metodologia SOA para satisfazer as necessidades dos negócios atuais. Uma parcela de 56% afirmou que pretende reformular a infra-estrutura para suportar SOA e 47% dizem que irão adequar as metodologias dos desenvolvedores à nova arquitetura. Até mesmo na escolha dos produtos o mercado tem características marcantes. Um total de 62% dos CIOs responderam que consideram de grande importância o suporte a protocolos e padrões essenciais de SOA. Outros 36% consideram esse ponto relativamente importante. - 26 – Outra pesquisa, feita pela IDC, mostra que o mercado americano aumentará os seus investimentos na tendência até o final de 2006. Privilégio para os fornecedores Por esse motivo, temos um cenário privilegiado para os fornecedores de serviços especializados em SOA. A IDC acredita que o caminho da indústria será manter os esforços em educação, apresentação de produtos e demonstração dos benefícios que os usuários de SOA podem agregar aos negócios. Além disso, a consultoria acredita que terão dificuldades as empresas que optarem por implementar a arquitetura, sem um desenvolvedor específico. Porém, as empresas que pensam em contratar um provedor externo estão mais propensas a optar por grandes fornecedores, consultorias ou integradores de sistemas, além das empresas de outsourcing. As consultorias se mantêm no topo da lista, já que serviços adicionais são comumente demandados nesse contexto. A pesquisa revela ainda que a decisão por implementar SOA vem sempre do departamento de TI. Previsão Com a grande movimentação em relação ao conceito SOA, as empresas se preparam para apresentar novas tecnologias, soluções e caminhos. Uma previsão do Gartner aponta que em 2010, mais de 50% das grandes empresas terão consolidado um portfólio de sistemas sob o padrão SOA, com o objetivo de ter uma plataforma unificada de negócios. Outro levantamento feito pela Bea Systems para a InfoWorld ouviu cerca de mil empresas no Estados Unidos para entender onde SOA se posiciona nos projetos futuros de TI. Avaliando o estágio de implementação de SOA nas empresas, apenas 28% dos entrevistados disseram ter implementado. Desse, 35% dizem que o processo está sendo implementado em toda a empresa. Um outro ponto revela que 20% das empresas avaliam ou mesmo consideram a nova arquitetura, enquanto que 21% confessam não ter nenhum plano relacionado ao conceito e 31% nem se quer pararam para pensar na possibilidade de implementação. No mercado brasileiro, o conceito de SOA já é considerado o quinto maior item no que se refere à importância para o CIO, porém sabe-se que ainda vivemos um processo embrionário de desenvolvimento. Os fabricantes já começam a adequar suas ferramentas à arquitetura e pretendem tirar os projetos do papel com mais rapidez, principalmente por se tratar de uma adoção que interessa tanto aos fornecedores quanto aos consumidores. A expectativa é que SOA se torne um padrão para desenvolvimento de aplicativos e seja então realidade nas empresas de todo o mundo. - 27 – A perspectiva da IBM é que o uso crescente da arquitetura orientada a serviços aumente a quantidade de transações que funcionam em sistemas mainframe, fazendo-as inclusive dobrar até 2010. A projeção da empresa é baseada em pesquisa feita pelo Forrester Research, com empresas americanas e européias. O cenário mostra que 62% das companhias que possuem mais de 20 mil funcionários estão usando ou pensam em utilizar um plano para aplicar SOA nos próximos doze meses. O mercado está absorvendo o conceito de SOA e as empresas visualizam o contexto em que estar focadas em software orientado a serviços pode agregar valor e possibilitar respostas com mais eficiência e mais aproveitamento das oportunidades. Expansão do mercado Uma pesquisa feita em Portugal pela IDC analisou o que será o mercado de TI no período entre 2005 e 2009. O resultado mostrou que mais da metade dos investimentos será direcionada para hardware, seguido de serviços e softwares. A estimativa também é que haja um aparecimento cada vez maior de peças tecnológicas e ferramentas de desenvolvimento orientadas para a implementação de soluções SOA. Porém, vale ressaltar que a adoção desse tipo de arquitetura é um processo que deve acontecer em longo prazo, principalmente porque para que as organizações concretizem o conceito na realidade corporativa será preciso uma série de providências que vão desde a preparação tecnológica e pessoal até o nível de consolidação dos sistemas ou o estágio de desenvolvimento da estratégia de integração. Nesse contexto, é normal sentir um mercado que avança em direção ao conceito, porém de forma ainda receosa, ou seja, a adoção está sendo progressiva e controlada para evitar grandes rupturas na cultura da empresa e nos sistemas de informação. Um importante ponto na absorção da tendência pelo mercado está no fato de que as tecnologias que suportam SOA estão em constante crescimento á medida que as corporações incorporam os conceitos e absorvem os benefícios. Na América Latina o conceito também está em grande ascensão. Segundo relatório do Gartner, 80% dos projetos de desenvolvimento até 2008 estarão baseados em arquitetura orientada a serviços. Exemplos de empresas dessa região que utilizam este conceito por meio da Oracle, por exemplo, são: Matera Systems do Brasil, Open Card da Colômbia, Farmalink da Argentina, Ministério da Fazenda e Crédito Público do México, a Bolsa de Valores Mexicana, além da instituição para Depósito de Valores, também mexicana. - 28 – Novo conceito Com a ampla discussão torno de SOA, o mercado vislumbra um olhar para o chamado SOBA (Service-oriented Business Application), que embora tenha um nome parecido, representa outra realidade. Ambos são usados para descrever infraestruturas de desenvolvimento de aplicativos, porém, a idéia é que SOBA possa ser desenvolvido sobre SOA ou qualquer outra modelo ou padrão de infra-estrutura. Essa nova sigla, criada por Charles Abrams, diretor de pesquisas do Gartner, coloca SOBA em uma posição de última encarnação das soluções cliente/servidor. O modelo do Gartner diz que SOBA pode variar desde uma simples interface XML baseada em um aplicativo até uma baseada na mais sofisticada infra-estrutura que ainda possa aparecer. Além disso, ele possui variantes que incluem componentes para desenvolvimento de soluções para os mercados horizontal e vertical, suítes corporativas modulares de fabricantes ou uma construção a partir de múltiplos serviços desenvolvidos internamente. Conclusão Não apenas o mercado precisa se adequar ao novo conceito de SOA, mas quem vende também. Nesse caso, não se trata dos fornecedores, dos quais já falamos, mas também dos canais que deverão olhar com maior profundidade para o ambiente de TI e para os clientes. A ampla adoção do conceito depende da ação dos três agentes: clientes, fornecedores e canais. Expectativas da IDC apontam para um crescimento de 138% dos investimentos em SOA somente em 2006, o que significa cerca de 8,6 bilhões de dólares. Em 2010, o valor já estará chegando aos 33,8 bilhões de dólares, principalmente como reflexo da demanda dos setores de finanças e telecomunicações. Por esse motivo, todas as empresas que pretendem vender esse tipo de conceito precisarão estudá-lo, para entender de que forma serão afetadas pela onda. Isso se refere principalmente aos canais que oferecem desenvolvimento, integrações e migrações. É importante também que os integradores se aprimorem com certificações na área e estejam engajados no entendimento e difusão da arquitetura orientada a serviços. Por enquanto, quem implementa SOA é a grande empresa. A participação das pequenas e médias empresas nesse contexto ainda é pequena, porém começa a crescer e dar sinal de que observa a necessidade do mercado de ter sistemas flexíveis e adaptados aos negócios. - 29 –