Monthly Archives: April 2009

Métricas em SOA: quais são importantes? Parte II

Na Parte I deste post mostrei a proposta do CTO da Red Hat sobre quais métricas são, de fato, relevantes quando se trata de arquiteura orientada a serviço (SOA).

Mais indicadores, desta vez Loraine Lawson, que em seu blog publicou o texto “Twelve Metrics To Monitor SOA’s ROI“ (Doze Métricas para Monitorar o Retorno do Investimento de SOA).

Segue resumo:

  1. Return on investment (ROI) per service. Já publicado na Parte I deste post. ROI per service pode se um indicador prévio de como será o ROI como um todo.  Novamente, lembre-se que alguns serviços só executam sua tarefa de negócio dentro de um contexto específico, ou seja, são depedentes de outros serviços. Não faz sentido olhar o ROI deste serviço isoladamente, mas sim em todo conjunto de serviços que executam uma tarefa de negócio.
  2. Revenue per service. Nem todo serviço gera receita. Leia meio post sobre Hierarquia de Serviços em SOA.
  3. Service growth rate/reuse ou Number of New Services Generated and Used as a Percentage of Total Services. De acordo com o texto, esta métrica ajuda na identificação de que os serviços estão sendo reutilizados quando possível e diminuir os risco de desenvolver novos serviços redundantes.
  4. Business agility ou Mean Time to Service Development: quanto tempo entre o design e o deploy do serviço.
  5. Mean Time to Service Change. Quanto tempo para realizar a alteração de um serviço?
  6. Reliability medida de intervalo entre falhas (MTTF, mean time to failure)  e tempo decorrido para a recuperação (MTTR, mean time to recovery). Uma das dificuldade é medir o “Custo de Serviços não Utilizados ou Seviços Parados”.
  7. Service Vitality Index: quanto da receita de novos serviços dos últimos 12 meses versus o total de receita de todos os serviços.

As outras 4 métricas vem de Leo Shuster, líder de SOA no National City Bank’s SOA. Ele escreveu este artigo sobre ROI em Fevereiro/2009, que também indiquei na Parte I do post. Em resumo, as métricas que ele sugere são:

  • Efficiencies associated with service reuse
  • Integration time savings
  • Related opportunity costs
  • Cost savings/avoidance
  • Reduction in project and maintenance costs

Category: Uncategorized

Eclipse ESB SwordFish 0.8 Liberado

Para quem acompanha o desenvolvimento do ESB open-source Eclipse Swordfish, a Eclipse Foundation anunciou no último dia 23/Março/2009 a liberação do primeiro release do framework (v 0.8).

A proposta, já anunciada aqui em Jan/2008, é disponibilizar um framework para que sua empresa possa construir seu ESB, adicionando componentes como service registry, um sistema de messaging etc, construindo um “ambiente SOA” a partir de padrões abertos e open-source.

Em resumo, Swordfish é um framework baseado no Apache ServiceMix e Apache CXF, que extende as funcionalidades deste para contrução de um ESB corporativo.

Abaixo veja onde o “papel” do Swordfish em um pattern de “ESB Distribuído” (Federated ESB):

Mais detalhes? Recomendo a leitura deste whitepaper (PDF, 3 páginas).

Pesquisa Rápida sobre SOA

Pessoal, o Flávio Lages é aluno de mestrado da Escola Brasileira de Administração Pública e de Empresas (EBAPE), da Fundação Getúlio Vargas, no Rio de Janeiro.

Ele está realizando um estudo sobre Flexibilização Organizacional e Arquitetura Orientada a Serviços para a sua dissertação e solicita ajuda no preenchimento do questionário abaixo:

http://www.surveymonkey.com/s.aspx?sm=wKc7Ys_2frf39cs7hJ_2bewPYw_3d_3d

Não é necessário conhecimento técnico sobre arquitetura orientada a serviços. Se você está envolvido ou participou de algum projeto relacionado a esta arquitetura, você pode ajuda-lo preenchendo o questionário acima.

É simples, rápido (não levei mais do que 2 minutos) e não requer cadastro.

Todos os dados estatísticos sobre SOA com os quais me deparo são do mercado americano ou europeu. Temos pouquíssimas informações sobre o mercado brasileiro, daí a importância de sua participação.

Em nome do Flávio agradeço antecipadamente. Grande abraço.

Category: SOA, statistics

Oracle compra a Sun: um pouco dos bastidores

A compra da Sun pela Oracle ainda vai render muitos artigos, notas em blogs, provavelmente cases em MBAs, artigos em revistas etc.

Por enquanto, é a notícia mais hot além da atual crise financeira mundial.

Vamos a alguns fatos que venho coletando desde Segunda, 20/04/09, quando foi anunciada a compra.

Existem rumores que a negociação iniciou-se na Quinta (16/04) e foram concluidas no Domingo (19/04). Bastante rápido. O valor da transação envolve cifras da ordem de US$ 7,4 bilhões que vai para um valor líquido de aquisição de US$ 5.6 bilhões (US$ 9.50 / ação).

Duas semanas antes a IBM havia baixado sua oferta de US$ 10,00 / ação para US$ 9.40. Vou listar alguns fatos que ajudam a explicar os motivos que levaram a Sun a recusar a oferta da IBM e a aceitar a do Mr. Ellison:

1. Lawrence J. Ellison, Oracle’s chief executive (CEO), estava de olho na plataforma Java da Sun. Nas palavras dele em uma tradução livre, “…de longe é o maior ativo de software que já adquirimos”

2. De todas as instalações do banco de dados da Oracle no mundo, a grande maioria (ainda não sei o percentual), já roda em servidores e sistema operacionais da Sun (Solaris).

3. Com a Sun, a Oracle pode competir com a IBM, H.P. Agora eles podem oferecer o serviço completo. Nas palavras de Gordon Haff, um analista da empresa Illuminata, “…Oracle is transforming itself into a soup-to-nuts information technology vendor

4. Ambas nasceram e se estabeleceram no Vale do Silício. De fato, Larry Ellison (CEO Oracle) e Scott McNealy (um dos fundadores da Sun), são amigos. Em 2003, em mais uma das crises da Sun, McNealy brincou em um evento dizendo que tinha as chaves do iate e Ellison. O CEO da Oracle retrucou que precisava sair correndo para trocar as fechaduras. Nesta época havia um boato que a Sun seria vendida para a empresa do Mr. Ellison. Pessoalmtente acho que elas tem culturas semelhantes, apesar dos fundadores terem histórias de vida diferentes. McNealy é graduado em economia por Harvard e MBA em negócios por Stanford. Ellison começou a carreira desenvolvendo um banco de dados para o agência secreta americana, cujo nome, advinhem, era Oracle.

5. McNealy não gosta da IBM. Acha despezível algumas práticas de negócio da “big blue” e que faltaria um entrosamento no alto comando. Os “engomadinhos” da IBM não iriam entender a cultura dos ripongas e nerds da Sun. Neste ponto concordo com o fundador da Sun

6. McNealy e Ellison estão propensos a assumir mais riscos (diferente da IBM). Se a “big blue” tivesse comprado a Sun, provavelmente iríamos ver a IBM empreender um enorme esforço no sentido de provar que “seus” produtos seriam melhores que a da empresa adquirida

Perguntas que não querem calar:

a) O que vai acontecer com o MySQL adquirido recentemente pela Sun? Veja “Is the Sun/Oracle Deal Good for MySQL Customers?“. Quando a Sun adquiriu o MySQL em Janeiro/2008 muitos líderes de projeto/desenvolvedores do banco de dados deixaram a empresa. Agora com a aquisição pela Oracle, é provável que outros tantos irão. Isto poderia definir o fim de uma das referência em banco de dados open-source. Detalhes aqui.

c) E o OpenOffice? Thanks God, já temos vários forks desta suite open-source. Utilizada por milhões de usuários no mundo inteiro, incluindo governos e escolas que não podem bancar com os custos absurdos das suites pagas, eu espero sinceramente que a Oracle continue apoiando o grupo da Sun que mantém o desenvolvimento de partes do “core” deste produto.

b) Você gostaria de ficar dependente de um único fornecerdor como a Oracle? Provavelmente não, correto?

E aqui no Brasil?

Segundo reportagem do Valor Econômico desta Quarta (22/Abr/09), com a aquisição a Oracle passaria da 11a. posição para a 5a. colocação no ranking nacional de companhias de tecnologia da informação, com um faturamento de R$ 1,3 bilhão, resultado que tira a Microsoft do pódio das 5 maiores. A nova lista seria IBM, Hewlett-Packard (HP), Positivo, Itautec e Oracle.

Ambas empresas são forte no país. Os mercados de Telecom (área onde atuo) e Governo, são quase um nincho de mercado para a Sun. Isto explica porque quase 20% dos negócios globais da Sun estão nos BRIC (Brasil, Rússia, Índia e China).

Por fim, veja abaixo a previsão de Larry Ellison em 29/09/2005, quando do anúncio da Siebel:

No industry remains in this fragmented form. The railroad industry didn’t, the automobile industry didn’t, nor will the computer industry. There’ll be far fewer companies. For example, there aren’t that many auto companies in the world. There doesn’t need to be, nor will there be thousands of software companies.

Não é que ele tinha razão?

Category: open-source, Oracle

Arquitetura Hexagonal

Dr. Cockburn é um renomado consultor que entre outras contribuições, ajudou na criação do Agile Development Manifesto e no desenvolvimento de Use Cases. Ele definiu um pattern chamado Ports and Adapters (‘’Object Structural’’) ou “Hexagonal Architecture“.

O objetivo, como descrito no documento acima, é permitir que uma aplicação seja igualmente “conduzida” por usuários, programadores, testes automáticos ou scripts batch, e que seja desenvolvida e testada de forma isolada do seu ambiente e banco de dados de produção.

A idéia por trás deste pattern é isolar a aplicação (veja figura ao lado) e, à medida que eventos chegam em direção à aplicação através de uma porta (port), um adapter específico converterá este evento em uma chamada de procedure ou mensagem e encaminha a requisição, já traduzida, para a aplicação.

Independente do dispositivo ou ambiente onde esteja sendo executada, dos sinais recebidos e dos que precisam ser enviados ao “mundo exterior”, tudo isto precisa ser transparente para a aplicação.

Uma das motivações, de acordo com o autor, é prevenir um velho problema que encontramos em muitas aplicações: a inclusão de lógica de negócio no código da interface de usuário (GUI). Alguns problemas que isto traz:

  • o sistema não pode devidamente testado porque parte da lógica é dependente de como os detalhes de apresentação da camada visual são apresentados
  • pela mesma razão, é impossível simular a interação de um ser humano através, por exemplo, de um script batch (para fins de teste)
  • difícil integração com outros programas ou sistemas devido ao alto acoplamento da camada de negócio com a camada visual

A proposta é que todas as funcionalidades estejam externalizadas através de uma API. Vários ports seriam criados para cada ator que precisa interagir com a aplicação: GUI, banco de dados, acesso via FTP, funções de teste etc. Veja a figura a seguir com alguns detalhes da fronteira da aplicação e as várias interações com o mundo:

Bom, e o que isto tem a ver com SOA? Eu acho que esta é uma excelente opção para fazer um wrapper em sua aplicação legada e inseri-la no meio-ambiente da sua arquitetura orientada a serviços.

Boa sorte!

Category: Architecture

Métricas em SOA: quais são importantes?

Neste artigo Mark Little, CTO da Red Hat discute um pouco sobre governança SOA e algumas métricas importantes neste mundo de arquitetura orientada a serviços.

Apesar de um pouco superficial (não apresenta qualquer fórmula ou exemplos práticos), o texto nos mostra quais indicadores importantes devemos colocar nosso foco. Abaixo a lista de Mark Little:

- Return on Investment (ROI) per service
Medir o ROI é complicado em qualquer cenário/arquitetura de software. Em SOA, mais complicado ainda. “Holísticamente”, como diz este artigo do Leo Shuster, estrategista SOA do National City Bank (EUA), o ROI do seu programa (conjunto de projetos) SOA pode ser calculado através da seguinte equação:

SOA ROI ($) = Cost Savings/Efficiencies Achieved – All SOA-Related Investments

or

SOA ROI (%) = SOA ROI ($) All SOA-Related Investment

Um dos “complicômetros” desta métrica é que alguns serviços são dependentes de outros para executar a regra de negócio à qual ele se propõe (objetivo). Assim, o ROI deste serviço deve ser medido ao longo de toda cadeia de dependência dos outros serviços/componentes. O autor lembra também que medir o ROI não significa necessáriamente que um serviço específico vai gerar receita.

- Revenue per service

Receita por serviço. Métrica diretamente relacionada com o ROI. A proposta é priorizar os serviços pelos retornos “teóricos” de investimento, classificando-os pela receita que eles produzirão.

- Service grow rate/reuse

Uma das grandes vantagens de SOA é o reuso de serviços. Pelo menos é isto que eu falo quando tento vender a idéia por trás da arquitetura. Na verdade, uma boa arquitetura, no mínimo, avalia esta possibilidade e projeto o serviço para que o mesmo seja reutilizado, gerando enormes economia de tempo/recurso e manutenção daquele código.

Este indicador é importante para definir o ROI e acompanhar o quanto um serviço vai ser/está sendo reutilizado força seu time a revisitar as implementações e avaliar a performance.

O que geralmente ocorre é que, mesmo que você tenha desenhado um serviço com a preocupação no reuso, dificilmente você sabe por quantos sistemas e sub-rotinas o mesmo está sendo invocado. No momento de stress com performance você tem esta informação na mão? I guess no.

- Business agility

Quanto tempo leva entre o planejamento do serviço e seu deployment? SOA traz agilidade, correto? Não foi isto que voê vendeu para seu cliente? Então, esta é uma métrica excelente para você exibir para seu patrocinador, mostrando que, de fato, o quanto esta nova forma de conceber soluções de software traz ganho para a empresa.

- Reliability

Métricas de confiabilidade (SLA) já utilizadas em outros ambientes (SOA ou não):

mean time to failure (MTTF) e

mean time to recovery (MTTR)

- Service inter-dependencies

Nada no mundo está isolado. Quanto um serviço depende de outro? A idéia é classificar e documentar o “nível” de interdependência dos serviços. Este serviço tem uma dependência “fraca” ou “forte” destes outros? Estes serviços com alta dependência podem ser classificados como uma única “unidade lógica”?

Como em muitos projetos que utilizam esta arquitetura, a idéia é começar a medir e extrair algumas métricas do seu ambiente. As coisas tendem a ficar um pouco mais complexas. Exemplo: Cloud Computing. Imaginar que parte destes serviços e infra-estrutura pode estar em qualquer lugar da “nuvem” é uma idéia que deve dar pesadelo em todo gestor de TI, mas já é uma realidade que não tem volta.

Melhor começarmos a medir este indicadores agora.

Mais sobre métricas de SOA nesta nota.

SOA, Open Source Cloud e o grupo “Eagles”

Apresentação feita por Sanjiva Weerawarana propõe uma solução para implementar uma “Open Source Cloud”, eliminando ou diminuindo a dependência de “nuvens proprietárias”.

O evento foi o The SOA Symposium, patrocinado pelo Departamento de Defesa do governo dos Estados Unidos (DoD).

Alguns exemplos de “nuvens prorietárias”: Amazon EC2, Microsoft Azure, Google App Engine. O autor recorre até à letra de “Hotel California” (Eagles) para explicar a situação de quem utiliza estas “clouds”:

‘Relax,’ said the night man,
‘We are programmed to receive.
You can check-out any time you like,
But you can never leave!’

Um trecho dos comentários do autor:

“Cloud computing is primarily about three things: on-demand scaling for peak load management, multi-tenant sharing, and parallel execution. On-demand scaling refers to the ability of the cloud to allow an application to consume more resources as the demand on the application increases and for this to happen without over participation from the developer. Multi-tenancy relates to how a single application can be shared and used securely (and independently) by different consumers. Finally, parallel execution enables an application to request additional hardware and to execute in the entire set of nodes as a parallel computer. The most challenging part of the puzzle is providing a single programming model for application developers.”

Google APP Engine falando Java? ERP/CRM nas Nuvens

Todos sabemos que o Python é uma das linguagens preferidas pela turma do Google. Segundo esta nota de Maureen O’Gara, aparentemente, eles estão utilizando Java 1.6 o que implica, segundo ela, em compatibilidade também com “Ruby on Rails”.

Suporte inicial incluem um Java runtime e integração com uma versão mais amigável do  Google Web Toolkit 1.6, integrado no IDE Eclipse (plug-in).

Uma mudança e tanto (positiva) para os milhares de desenvolvedores que compõem a comunidade Java ao redor do mundo. De acordo com o gigante de busca, desde que o App Engine foi lançado, mais de 150,000 desenvolvedores já implementaram 50,000 aplicações que agora geram mais de 100 milhões de pageviews por dia.

Entenderam porque a Google investe tanto nisto?

App Engine e “The Cloud”

O que isto tem a ver com “cloud computing”? Os softwares corporativos ainda estão confinados nas empresas, “protegidos” pelas políticas de acesso restrito e os “firewalls”. Como expor estas informações para a “nuvem”? Através do App Engine em uma estratégia que eles denominaram de “Secure Data Conector” (SDC).

A Oracle já afirmou que o seu CRM Siebel já suporta o SDC.

Veja o anúncio oficial em um dos blogs do Google.

BizTalk 2009 e RFID

O site “Redmond Developer News” (http://reddevnews.com) anunciou o upgrade do Microsoft BizTalk, plataforma de middleware da gigante de software.

O BizTalk é uma aposta tímida da Microsoft em relação à arquitetura orientada a serviços, com foco em pequenas empresas. Entretanto, temos que reconhecer que a grande base de usuários nos obriga a, no mínimo, conhecer a evolução do seu produto.

A estratégia é ter uma grande integração com o Visual Studio 2008, além de criar uma comunidade on-line (portal) com soluções pré-prontas para os usuários do middleware. Se você planeja ou já é usuário de BizTalk, veja este link (em inglês).

RFID

A Microsoft lançou um standard pack para RFID e RFID Mobile (smartphones que utilizam Windows-CE).

Um trecho do anúncio:

BizTalk Server 2009 supports the latest versions of Microsoft’s .NET platform, notably the Windows Communications Foundation component of .NET Framework 3.5 Service Pack 1 (SP1). With that comes support for Visual Studio 2008 SP1 and the latest releases of SQL Server and Windows Server. It also will support native Hyper-V, improved clustering, improved failover clustering and added adaptors and host integration interfaces. It has a new registry based on the UDDI 3.0 specifications.

Category: Microsoft, middleware

Evento BPM Open Source em São Paulo (13/Abr/2009)

A Intalio é uma empresa baseada em Palo Alto, CA e se auto-define como “The BPM 2.0 Company”. Exageros de auto-definição à parte, eles irão promover um evento gratuito sobre a sua plataforma BPMS open source.

Divulgo este tipo de evento por dois motivos básicos:

- Estão se tornando raros (olhe que estamos em São Paulo) e acho muito importante que todos conheçam um pouco mais sobre os ganhos que uma solução de BPM traz para o negócio (independente do fornecedor)

- É gratuito (*vagas limitadas*)

Se você estiver interessado, acesse este site: http://www.regonline.com/builder/site/Default.aspx?eventid=720964

Category: Architecture, bpm, vendors