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 –
Download

- 1 – SOA Módulo 1 – Introdução O grande desafio do - tcc