Monday, January 28, 2008

HP e Governança SOA

HP anunciou hoje um conjunto de software de governança e serviços relacionados que tem por objetivo acelerar a adoção de SOA ao mesmo tempo em que reduz os riscos potenciais na adoção desta arquitetura.

Em 31/12/2007 a HP foi posicionada no "quadrante mágico" do Gartner Group na categoria de empresas que possuem solução de Governança SOA (Magic Quadrant for Integrated SOA Governance Technology Sets, 2007) ao lado da IBM, Software AG, Progress Software, SOA Software e AmberPoint, entre outras.

Todos sabemos que a Governança é fator determinante de sucesso para qualquer iniciativa SOA na sua empresa.

Mas o que é Governança SOA?
Ainda de acordo com o Gartner, "Governança SOA está relacionada com a garantia de que os ativos de software e artefatos da sua arquitetura estão operando como esperado e dentro de um certo nível de qualidade".

Segundo o livro "SOA Compass" (IBM Press, 2005),



Governança provê uma estrutura para priorizar e suportar os objetivos de negócio da empresa nos níveis estratégicos, funcional e operacional. O modelo de governança define"o que fazer", "como fazer", "quem deve fazer" e "de que forma isto deve ser medido". Define também as regras,processos, métricas, e arranjo organizacional necessários para um efetivo planejamento, tomada de decisão, orientação e controle de todo esforço em direção à SOA para atingir as demandas do negócio e os desafioscolocados como alvo.


De quem é a responsabilidade de definir a Governança SOA?
Time de projetos de SOA

Quais as questões-chave que podem auxiliar na definição da estrutura de Governança?

  1. Que mudanças no negócio a empresa espera realizar com SOA? Uso otimizado da estrutura atual a um custo mais baixo, novos negócios...?
  2. Quais papéis, responsabilidades, estruturas e procedimentos são necessários para realizar priorização denegócio e que TI tenha o investimento, planejamento e tomada de decisão necessários para realizar taisimplementações?
  3. Como você pode desenvolver conhecimento e competência na liderança?
  4. Quais princípios e orientações são necessários para otimizar o alinhamento de TI e do negócio?
  5. Qual a forma apropriada para estruturar o relacionamento TI-e-negócio ao mesmo tempo em que mantém aconsistência e flexibilidade que permitirão a organização uma rápida adaptação às mudanças
  6. Qual o nível apropriado de standardization de serviços, a definição de serviços e a descrição dos mesmos?
  7. Como controlar e medir serviçoes e provedores de serviço? Quais processos-chave de negócio nós precisamos monitorar?Quem deverá monitorar, definir e autorizar mudanças para os serviços existentes?
  8. Como você decide qual a estratégia de implementação dos serviços?

Saturday, January 26, 2008

O que é ESB?

Primeiro, ESB é o acrônimo de Enterprise Service Bus (Barramento de Serviços Corporativos, em uma tradução livre). É um componente fundamenta na arquitetura orientada a serviços (SOA) e, por este motivo, é importante conhecermos qual o propósito e qual seu papel no desenho de sua solução SOA.

Hoje, a pesquisa de "ESB Definition"no Google irá apresenta mais de 46,000 links. Apresento aqui apenas 05 (cinco) que, na minha opinião, dão a idéia correta do que seja um ESB.

A primeira definição, claro, vem da Wikipedia.

Um ESB geralmente provê uma camada de abstração acima de um sistema de mensageria corporativa, que permite aos arquitetos de integração explorar todas as possibilidades e benefícios deste messaging system sem a necessidade de escrever código.

Ao contrário da abordagem tradicional da Enterprise Application Integration (EAI), que utiliza a arquitetura monolítica de hub and spoke, os fundamentos do ESB são baseados na decomposição de processos de negócio executando de forma "harmoniosa".

ESB não implmenta service-oriented architecture (SOA) porém oferece as funcionalidades necessárias para implmentar esta arquitetura. ESB não é, necessariamente, baseada apenas em web-services.



David Chappell é simplemente o "guru" e um dos "inventores" do conceito de ESB. Ele é o autor do livro "Enterprise Service Bus" em 2004 (foto ao lado). Atualmente é o líder de SOA na Oracle. De acordo com ele,

Um ESB é "backbone altamente distribuido" no qual a arquitetura orientada a serviços (SOA) é contruida.

A definição de ESB inclui os seguintes pontos:

* Uma arquitetura de serviços distribuidos, que inclui um modelo de container leve para "armazenar" componentes de integração como serviços remotos
* Um backbone de mensageria corporativa que oferece entrega confiável de mensagens entre aplicações e serviços
* Transformação de dados (XML)
* Orquestração de serviços e roteamento inteligente de mensagens baseada em seu contexto
* Framework de segurança flexível
* Infraestrutura gerenciável que permite a configuração, deployment, monitoração e gerência dos serviços remotos.

IBM SOA Foundation - Architecture Overview, whiter paper. Este é um dos melhores papers sobre o básico de SOA.

O Barramento de Serviços Corporativos (ESB) é parte da arquitetura lógica de SOA. Sua presença na arquitetura deve ser transparente para os serviços de suas aplicações SOA. Entretanto, a existência de um ESB é fundamental para simplificar o esforço de "invocar" os serviços. Detalhes como localização e qual o caminho que a requisição de um serviço deve fazer na rede são de responsabilidade do ESB e não precisam mais fazer parte do código do serviço.

Eric Bruno, escreveu um excelente artigo sobre ESB. Já postei aqui no blog. Reproduzo abaixo a tradução livre do trecho em que ele define o ESB.

Um Enterprise Service Bus é um framework que possui várias funcionalidades: escolha e use. Por exemplo, você pode utilizar apenas parte das features e ignorar as demais que não fazem sentido para a solução proposta pela arquitetura que você projetou. De qualquer forma, um "bom ESB" deve ter, pelo menos, estas características:

  • Ter um insfraestrutura de mensageria robusto e confiável
  • Possibilitar desenvolvimento de sistemas baseados em em arquitetura orientada a serviços (parece óbvio, mas não é; pergunte aos seus fornecedores como o ESB deles permite este tipo de implementação)
  • É fortemente baseado em XML
  • Suporta padrões de Web Service (e.g. SOAP)
  • É independente de plataforma (muito, muito, muito importante)
  • Suporta transações e tem features de segurança
  • E por fim, mas não menos importante, utiliza protocolos padrão e tem integração com "legados"


Cerveja ESB? Sim, ela existe. É uma cerveja tipo Ale da Redhook. Ganhou a medalha de ouro em 2006 no "North American Beers Award".

Não deixa de ser uma excelente "ferramenta" de integração, correto?

Cheers!

Wednesday, January 23, 2008

Microsoft, SOA e "Oslo"

Vocês lembram de quando eu postei aqui o site da Microsoft sobre SOA? Pois é, a empresa de Redmond tem sim uma estratégia para SOA. Quão boa ela é eu, sinceramente, não me atrevo a avaliar. Deixo isso por conta dos usuários de soluções da "fabricante" do Windows.

E esta iniciativa de arquitetura orientada a serviços tem um codinome, "Oslo".

O que é "Olso"?

De acordo com este documento (.doc, é claro!),
“Oslo” is the code name for a set of technical investments that aim to
significantly simplify designing, building, managing and scaling
service-oriented and composite applications that can span from the enterprise to
the Internet.
Minha crítica é que, mais uma vez, as iniciativas da Microsoft estão baseadas em ferramentas e a arquitetura fica em 2o. ou 3o. plano. Grande erro! SOA é tudo menos algo que você controi simplesmente comprando a nova versão do "Visual Studio 10". Continuando...

As 5 (cinco) principais áreas de "investimento" da iniciativa "Oslo":
  1. Framework: a versão "4" do .NET Framework terá investimentos em model-driven development como parte do Microsoft Windows Communication Foundation (WCF) e a tecnologia Workflow Foundation (WF) technologies.
  2. Server: a versão "6" do BizTalk Server terá WCF and WF como seu core foundation e estará apto para desenvolver, gerenciar e disponibilizar composite applications.
  3. Services: a versão "1" do BizTalk Services irá disponibilizar serviços (hosted services) que serão utilizados pelas composite application. Exemplo: hosted messaging, identity e implementação de workflow.
  4. Tools: os investimento permitirão que o Visual Studio “10” suportará model-driven design e deployment de aplicações compostas.
  5. Repository: System Center “5,” Visual Studio “10” e BizTalk Server “6” utilizarão um repositório comun para gerenciar, versionar e realizar o deploy.
Vocês localizaram a palavra "arquitetura" nos pontos acima? Nem eu. Isto me preocupa muito.

Toda iniciativa em direção a SOA é válida, não devemos esquecer da Arquitetura e Governança (outra palavra não citada). Boa sorte.

Monday, January 21, 2008

SOA: 10 Erros a Serem Evitados nos Projetos

Mais um lista do que fazer e do que não fazer nos projetos que utilizam SOA como arquitetura? Sim, esta é uma daquelas listas. Entretanto, todos nós temos a ganhar quando compartilhamos este tipo de experiência (What You should do, What You Should not do).

Desta vez Paul Callahan (diretor da empresa NetManage) escreve esta nota para o site da ZDNet.com com suas opiniões sobre os 10 principais erros que você deve evitar ao implementar projetos utilizando a arquitetura orientada a serviços (meus comentários em azul):

  1. Taking a shotgun approach: segundo o autor, disponibilizar todos os serviços é desnecessário e vai custar muito. O correto é avaliar quais serviços, de fato, precisam ser disponibilizados. Aqui não tem segredo. Os times de TI, com ajuda dos analistas de negócios, devem mapear antes os processos de negócio, candidatos a tornarem-se serviços. O passo seguinte é priorizar e definir quais deles precisar ser adequados, reescritos (se for o caso) e realizar as implementações necessárias para disponibilizar as informações como serviços.
  2. Failing to involve business analysts: sem comentários. Envolva o pessoal de negócios desde o início. Sua prioridade deve ser expor as informações de negócio e não desenvolver Web services.
  3. Spending more time on SOA products than SOA Planning: Planejamento e Governança. Produtos e ferramentas são importantes mas eles não servirão de nada sem o devido planejamento prévio e sem Governança desde o 1o. dia.
  4. Tackling the largest projects first: Não tente "abraçar o mundo". Projetos pequenos diminuem os risco da implantação e trazem resultados mais rápidos. Discodo do autor apenas no quesito "visibilidade". Na minha opinião um projeto que traga visibilidade é importante para você ganhar apoio da alta direção e mostrar para a empresa um retorno rápido do investimento.
  5. Forgetting that SOA is a business Problem: discussões sobre SOA não devem se ater a aspectos técnicos. SOA existe para nos ajudar a resolver problemas de negócio; e o negócio deve ser o mais importante, não os aspectos técnicos.
  6. Treating identity as an afterthought: de acordo com o autor, as empresas tendem a adiar questões de controle de acesso. Bom, isto tem a ver com Governança (vide item 3 acima).
  7. Buying new products when existing investments suffice: este é um velho problema. As empresas esperam implementar SOA comprando hadware e software. SOA é um estilo de arquitetura, não um produto, e está relacionada com uma "vontade política" de resolver alguns dos problemas de integração de sistemas, agilidade e alinhamento com as áreas de negócio. Porém, muitas decisões de arquitetura não envolvem, necessariamente, investimento direto.
  8. Misunderstanding company key players: quem são as áreas afetadas pelos processos? De acordo com o autor, é importante envolver estes departamentos nas discussões, do contrário corremos o risco de ter grandes resistências.
  9. Expecting the SOA project to spread quickly: implantar SOA não é como instalar um novo serviço de e-mail. Leva tempo para a empresa "absorver" e entender os benefícios desta nova abordagem.
  10. Lacking necessary elements: neste ponto o autor alerta que muitas empresas pequenas não tem pessoal qualificado para implementar uma mudança de arquitetura. Esta é uma decisão de cada empresa. O que eu posso garantir a vocês é que não se aprende sobre SOA apenas lendo revistas (ou blogs como este).

Sunday, January 20, 2008

SOA + Project Zero= Agilidade

Vocês irão ler várias vezes sobre o "Project Zero" neste blog.

O que é Project Zero? Projeto "incubado" na IBM, é um ambiente de implementação e execução ágil que simplifica e torna mais rápido o desenvolvimento de aplicações Web dinâmicas.

O Ambiente de Desenvolvimento inclui script runtime para Groovy (linguagem script baseada em Java), PHP (isto mesmo, o bom e velho PHP), otimizado para implementar serviços "à la" REST (Representational State Transfer), mashups, e interfaces Web "ricas".

O que isto tem a ver com SOA? São soluções como esta que dão visibilidade e trazem um benefício "visível" para todo esforço que seu time empreendeu implantando uma arquitetura orientada a serviços. O "Project Zero" é focado em desenvolver aplicações Web 2.0 e segue os princípio de SOA. Algo como Web-extended SOA (WOA).

Um excelente artigo sobre "Project Zero" e SOA pode ser lido aqui.

Nunca esqueça que um desenvolvimento ágil faz toda diferença hoje. E se este desenvolvimento for feito dentro dos princípios da sua arquitetura SOA, extensível, Web-based, com um framework disponível para a comunidade... ...melhor ainda! Esta é a proposta do "Project Zero".

Como prometido, vou postar outros artigos sobre esta iniciativa, é só aguardar e retornar aqui de vez em quando. Abraços!

Wednesday, January 16, 2008

Oracle compra BEA por US$ 8.5B

Agora é definitivo. Oracle vai comprar a BEA por US$ 8.5 Bilhões (ou US$ 19.75/ação).

De acordo com Larry Ellison, a arquitetura do seu middleware (Oracle Fusion) tem uma arquitetura aberta que vai permitir o acomplamento com os produtos da BEA.

Após o anúncio, o CEO da Oracle, Charles Phillips, apressou-se em garantir aos clientes da BEA que eles poderão utilizando a solução desta última, sem serem forçadas a migrarem para produtos da Oracle. Literalmente, ele afirmou:

"After the closing, Oracle intends to preserve and enhance customers' investments in BEA products as Oracle has done with its other acquisitions, while Fusion Middleware will continue to be the center of Oracle's current and future middleware and applications strategy,".

O processo deve se encerrar até o meio deste ano.

(fonte ComputerWorld)

Macbook Air


Simplesmente fantástico. Claro como usuário da Apple era "meu dever" compartilhar com vocês um vídeo (30 seg.) do novíssimo MacbookAir. Aumenta o som e cuidado para não "babar" no teclado. Sem palavras...

Tuesday, January 15, 2008

COBOL e SOA

Claro que a imagem aí do lado (tirada de um site sobre COBOL) é apenas para provocar.

COBOL ainda é uma linguagem muito utilizada, principalmente no mundo financeiro. De acordo com este post, existe uma estimativa da IBM/Rational que temos hoje aproximadamente 200 Bilhões (!) de linhas de código em COBOL. Com certeza, é algo que não deve ser ignorado pela industria de software.

E é esta industria, ainda de acordo com a notícia acima, que está empenhada em "modernizar" o COBOL através de SOA. Cada um com sua abordagen, IBM, Oracle, HP e Intel apresentam suas "armas" para desafio.

A IBM acredita (claro) que o mainframe é uma peça importante e vai se encaixar no lego de SOA.

Entretanto, HP, Intel e Oracle, se juntaram em uma iniciativa (AMI*) que, em linhas gerais, propõe substituir a parte "crítica" os sistemas em COBOL por serviços e novas implementações mais aderentes à proposta de arquitetura orientada a serviços.

(*AMI = Application Modernization Initiative)

Claro que o objetivo é trazer para servidores HP, com processadores Intel e utilizando o middleware Oracle Fusion, alguns milhões destas linhas de código escritas em COBOL.

Como diria um amigo meu, quem acha que esta linguagem está morta vai ter a nota fiscal do caixão impressa em um programa COBOL!

Monday, January 14, 2008

SOA é um Projeto?

Não. Meu conselho é: não coloque a implantação de uma arquiteura orientada a serviços na categoria de "Projeto".

SOA é muito mais do que isto. É uma abordagem de arquitetura, uma nova forma de pensar os novos sistemas e a integração entre eles, uma visão pragmática para alinhar as áreas de negócio e parceiros/fornecedores, uma infraestrutura que permite integrar os sistemas de forma mais eficiente/eficaz, uma implementação de processos de negócio como serviços... ...mas, acima de tudo, SOA é uma jornada, não tem fim. E, definitivamente, SOA não é um projeto.

Em todas as paletras eu sugiro fortemente que os times de TI não tratem SOA como "aquele projeto especial que vai levar boa parte do seu orçamento e que vai demorar a ser concluido".

A definição clássica de Projeto pressupõe algo único, que será desenvolvido em um tempo pré-definido (caráter "temporário" de um Projeto). Sua equipe não irá criar algo único (SOA já existe) e esta adequação não terá fim (a não ser que você decida não alterar e nem desenvolver mais nada).

Uma abordagem inteligente para convencer a alta diretoria a aprovar o budget inicial é, por exemplo:
  • "Vamos implementar um novo Portal que irá integrar - "agregar" - dados de vários sistemas corporativos, fornecendo à alta direção uma visão unificada dos principais dados e indicadores. Para tanto, precisamos adquirir uma infraestrutura básica para realizar esta integração de forma mais eficiente, preservando o investimento já feito nos nossos legados..."
  • "Temos uma demanda para integrarmos os dados de nossos sistemas com parceiros e fornecedores e queremos fazer isto de forma padronizada e organizada, evitando trocas de arquivos e implementações específicas para cada um deles. Nossa equipe já está 150% alocada nos projetos atuais e estamos bucando uma forma de disponibilizar os dados com segurança e utilizando as melhores práticas. Será necessário realizar um investimento em alguns softwares e serviços básicos para implementarmos estas integrações de forma mais rápida, atendendo as expectativas dos nossos parceiros de negócio. Este investimento irá gerar outros benefícios tais como: poderemos reutilizar algumas implementações feitas para um fornecedor e utilizar para vários outros; a forma como os nossos sistemas internos irão 'conversar' será otimizada, diminuindo o tempo de manutenção..."
Como vocês viram não utilizei o termo SOA em nenhum momento. Boa sorte!

Thursday, January 10, 2008

SOA Magazine de Janeiro "no ar"

A edição de Janeiro/2008 da SOA Magazine já está disponível. Como sempre, são três artigos de excelente conteúdo e a leitura vale a pena. Este mês temos:

Wednesday, January 09, 2008

Mais um SOA Framework Open-Source

O Framework é chamado de "SwordFish". De acordo com este artigo da InfoWorld, o projeto está sendo desenvolvido a 6 anos (!) pela Deutch Post (Alemanha), e agora faz parte da Eclipse Foundation. Está fortemente baseado em:



A empresa Sopera, também da Alemanha, já "empactou" este framework e desenvolveu o "SOPERA Advanced Services Framework (ASF)":


De acordo com este post do Joe McKendrick eles tem como alvo as pequenas e médias companhias que não tem "budget" para investimento em plataformas do mercado.


Na minha opinião estas iniciativas são excelentes pois possibilitam às companhias realizarem validações práticas das iniciativas de arquitetura orientada a serviços, sem a necessidade de grandes investimentos.


Outras plataformas SOA open source são: Red hat JBoss, MuleSource, FUSE e Glassfish.

Tuesday, January 01, 2008

SOA Poster

O poster acima é parte do livro "SOA: Principles of Service Design", autor Thomas Erl (dica: baixe o PDF e envie para impressão em alguma gráfica).