Wednesday, February 06, 2008

Novo Blog no Ar!

"SOA, Simples Assim!" é a nova "casa" deste blog. Manterei este no ar por algum tempo e solicito a todos vocês que atualizem seus leitores de RSS e bookmarks para este novo endereço:




Apesar de usuário do Blogger desde o início (antes mesmo da aquisição pelo Google), o WordPress tem funcionalidades muito interessantes e "não tive escolha" :-).

O objetivo continua o mesmo: "traduzir" da forma mais simplificada possível (!) os conceitos da arquitetura orientada a serviços (SOA), além de trazer notícias, dicas de livros e sites sobre esta arquitetura e tecnologias relacionadas (BPM, BAM, ESB, Web Services etc.). 

Visite o novo Blog, deixe sua opinião, comentários, críticas... ...a "casa" é sua também!

Grande abraço! Davi


Tuesday, February 05, 2008

WS02 e Soluções para Open-Source SOA

WSO2 é um companhia baseada no Sri Lanka que desenvolve middleware open-source. Foi fundada a pouco mais de 2 anos atrás por Sanjiva Weerawarana, um ex-IBM que trabalhou (nos EUA) em vários projetos (Apache SOAP, a definição do WSDL, definição do BPEL etc) e decidiu desenvolver soluções abertas a partir deste país da Ásia. 

Entre outros produtos e frameworks a empresa desenvolve:
A lista completa de produtos está aqui.

A documentação do WSO2 ESB pode ser acessada neste Wiki que foi desenvolvido para a comunidade.

Monday, February 04, 2008

ESB: Mitos e Principais Funcionalidades

O Enterprise Service Bus (ESB) é (e será) um tema recorrente neste blog. Neste artigo, Dave Chappell, um dos criadores do conceito de ESB, trata de 10 mitos sobre o Enterprise Service Bus que precisam ser "desmascarados".

Não vou entrar em detalhes sobre cada um deles. Abaixo listo alguns deles:

  • Mito #1: ESB não é um novo nome para o EAI (Enterprise Application Integration)
  • Mito #4: ESB não é um pattern e muito menos um produto. ESB é um conceito que pode ser implementado de várias formas. Vide este post sobre a definição de ESB
  • Mito #5: ESB "compete" com servidores JAVA EE. ESB é complementar e se integra (deve se integrar) a Java Application Servers.
  • Mito #9: ESB serve apenas para "conectar" sistemas e não possui interface para implementar processos de negócio. Atualmente, qualquer ESB provê uma ferramenta/front-end para "desenhar" os fluxos dos processos. Não confundir com ferramentas de BPEL.
Entender qual o propósito da sua sua ferramenta de ESB é fundamental para "delegar" ao ESB as tarefas às quais ele foi projetado para implementar.

Novamente, da Wikipedia, temos as principais features do ESB:

1. it is an implementation of Service Oriented Architecture
2. it is usually operating system and programming language agnostic; it should work between Java and .Net applications, for example
3. it uses XML (eXtensible Markup Language) as the standard communication language.
4. it supports Web services standards
5. it supports messaging (synchronous, asynchronous, point-to-point, publish-subscribe)
6. it includes standards-based adapters (such as J2C/JCA) for supporting integration with legacy systems
7. it includes support for service orchestration & choreography
8. it includes intelligent, content-based routing services (itenerary routing)
9. it includes a standardized security model to authorize, authenticate, and audit use of the ESB
10. it includes transformation services (often via XSLT) between the format of the sending application and the receiving application, to facilitate the transformation of data formats and values
11. it includes validation against schemas for sending and receiving messages
12. it can uniformly apply business rules, enrichment of the message from other sources, splitting and combining of multiple messages, and the handling of exceptions
13. it can conditionally route or transform messages based on a non-centralized policy - meaning that no central rules engine needs to be present
14. it is monitored for various SLA (Service-Level Agreement) thresholds message latency and other characteristics described in a Service Level Agreement
15. it (often) facilitates "service classes," responding appropriately to higher and lower priority users
16. it supports queuing, holding messages if applications are temporarily unavailable
17. it is comprised of selectively deployed application adapters in a (geographically) distributed environment

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!