Category Archives: SOA

“SOA Magazine” agora é “Service Technology Magazine”

Service Technology Magazine

A antiga “SOA Magazine” agora é “Service Technology Magazine“. Segundo o autor, Thomas Erl, a mudança reflete a necessidade de expandir o conceito de Serviços que, de fato, não pode ficar restrito à discussões em torno da Arquitetura Orientada a Serviços (SOA, Service-oriented Architecture).

Category: magazine, SOA

SmartGrid, SOA e Cloud Computing

(image: GigaOM.com)
De acordo com o Departamento de Energia dos EUA, “se a rede atual de energia dos EUA fosse 5% mais eficiente, a economia de energia seria equivalente à eliminar, para sempre, o combustível e a emissão de gás de efeito estufa de 53 milhões de carros“. Um outro estudo mostra que isto corresponde à uma economia de 46 a 117 bilhões de dólares, em vinte anos.
Volto à este assunto porque esta semana vi a notícia do Estadão que afirma que “O governo quer obrigar as concessionárias de energia elétrica a instalar medidores inteligentes nos 63 milhões de residências urbanas hoje atendidas pelo sistema“. De acordo com a notícia, a partir de 2012, nas novas ligações ou substituição de medidores, o medidor eletrônico será utilizado.
- Vantagens para o consumidor: medição mais exata do consumo, com descontos nas falhas de fornecimento. Em uma fase mais avançada, dentro do conceito de Smart Grid nós, consumidores, podemos vender energia que nossos painéis solares domésticos produzem (por exemplo). Ou seja, o grid envia e recebe energia, gerando mais economia e otimização do consumo
- Vantagens para o fornecedor: medição em tempo real (cloud computing?), com leitura, corte e religação sem necessidade do deslocamento do técnico
Players e Cloud Computing
Já citei alguns como o Google e a IBM com alguns de seus cases de sucesso: case 1, case 2, case 3. A Cisco está muito à frente e, desde 2009, já se posicionou como um dos fornecedores de soluções para Smart Grid. Veja nesta figura uma visão de alto nível da proposta da Cisco para dominar as soluções para o grid. Percebem como Smart Grid e SOA estão interligados?! A Cisco já tem um case com a Duke Energy (USA). E a razão de todo este interesse desta empresa é muito simples. Estima-se que os dispositivos que farão parte deste grid serão 100 a 1,000 vezes mais numerosos do que os atuais dispositivos que se conectam com a Internet. Simples, não? À isto chamamos de visão estratégica e senso de oportunidade.
Minha humilde opinião é que os dados dos “medidores inteligentes” (smart meters) fluirão naturalmente para a “cloud”. Uma enorme oportunidade para SOA/Cloud.
A Intel é outra gigante que está investindo muito, uma vez que os milhões, bilhões, de medidores inteligentes podem utilizar seus processadores.
E a Microsoft? Perdeu o bonde do Smart Grid? O tempo dirá. Mas o certo é que está tentando recuperar o tempo perdido. Em Outubro de 2009 eles publicaram o “SERA“-Smart Energy Reference Architecture. Se você se interessa pelo assunto, ou está em algum projeto SOA, eu recomendo fortemente a leitura deste PDF. É deste documento que extrai a figura a seguir:
Category: Microsoft, SOA

Apresentação “Gerando Valor com SOA”

Em Outubro/2009 eu fiz uma apresentação para uma grande empresa de desenvolvimento de software. O tema era Como Gerar Valor com SOA ou Como Vender SOA na Crise.

Fiz um resumo desta apresentação e disponibilizei no SlideShare.net para visualização e/ou download. São apenas 10 slides de conteúdo (12 no total).

Se você encontrar seu (sua) chefe no elevador, mostre apenas os slides 4 e 5 (“Como Vender SOA na Crise“). Se ele(a) ficar convencido, peça uma reunião de 30 minutos e apresente o restante.

Diferente do que se recomenda para as apresentações, não inclui muitos gráficos (perdoem-me pelo excesso de textos nos slides).

O objetivo desta apresentação é compartilhar com todos vocês algumas dicas de como é possível “vender” SOA. Estas notas são resultado da experiência prática de tentar mostrar o valor de SOA e como ela pode ajudar no nosso desafio diário de construir soluções de software e integrá-las.

Category: presentation, SOA | Tags:

Cloud Computing: Open-source Cloud e a Ajuda da Microsoft

Este post traz duas boas notícias para o mundo da “Cloud Computing”. A primeira é o anúncio da empresa de soluções SOA open-source, WSo2, já citada várias vezes neste blog, e a outra vem da Microsoft e de sua plataforma de Cloud, Azure.
wso2cloud

WSo2 Lança sua Plataforma de “Cloud Computing”

Para quem não conhece, a WSo2 é uma companhia que desenvolve soluções para a arquitetura orientada a serviços (SOA) no modelo open-source. Tem escritório no longíquo Sri Lanka (terra natal do seu fundador) e nos EUA e Europa.

A plataforma de “Cloud Computing” que eles lançaram permite que as empresas criem sua própria “nuvem”, as chamadas “Private Clouds“, com um custo (direto) de software bastante reduzido.

A solução de Governance as a Service é um dos serviços já disponíveis para serem utilizados (veja restrições abaixo).

wso2gaas A idéia é que sua empresa possa fazer o setup de uma solução de Governança para o ambiente SOA (SOA Governance Registry) diretamente na “nuvem” da WSo2.

Veja o que é possível implementar:

- Armazenar services, WSDLs, Schemas e policies, facilitando a descoberta (discovery) dos serviços e suas restrições

- Gerenciar o ciclo de vida dos serviços
- Manter múltiplas versões dos serviços

- Acompanhar as dependências e associações entre os WSDLs e os Schemas

- Dar permissões apropriada para os usuários

As restrições para utilização são:

  • até 5 usuários
  • não mais do que 100 recursos armazenados
  • não mais do que 100 recursos acessados / dia
  • cada recurso pode ter, no máximo, 1 MB

E estão preparando o lançamento do 2o. produto: “Indentity as a Service”!

Importante: como informou esta notícia da InformationWeek USA, o WSO2 suporta o uso de seu produto como uma “Amazon Machine Image“, o formato de máquina virtual do EC2/Amazon Cloud. É compatível também com “VMware ESX Server virtual machine” e, claro, no open source Linux KVM virtual machine.

A Cloud da Microsoft, Azure, agora pode rodar “Ruby on Rails”

azureinterop

A notícia vem do blog da Mary-Jo Foley. No final de Novembro (25/11/2009) o arquiteto da Microsoft, Simon Davies, anunciou que já tinha um exemplo do “Ruby on Rails” rodando em uma “nuvem” do Microsoft Azure (veja aqui “ao vivo”).

Em um movimento acertado, a Microsoft tem feito um esforço para que sua “nuvem” tenha compatibilidade com vários produtos e soluções open-source. Alguns exemplos de “Azure compatible” são:

  • Ruby
  • PHP e ferramentas baseada no Eclipse
  • MySQL
  • MediaWiki
  • MemCached
  • Tomcat
  • SugarCRM tem sua versão para o Azure (!)

e claro, o seu “Service Bus and Access Control services”, antes conhecido como “.NET Services”, agora roda diretamente no Windows Azure e é chamado agora de “Windows Azure platform AppFabric Service” (nome nada fácil…). Mais detalhes aqui e aqui.

Como na discussão levantada no post da Mary-Jo, não imagino que exista motiva de desconfiança por trás desta iniciativa da Microsoft em suportar soluções open-source em sua “nuvem”.

No meu ponto de vista, não importa para o usuário, e até mesmo para o desenvolvedor, em que “nuvem” sua sua aplicação baseada no “Ruby on Rails” ou seu open-source SugarCRM, está sendo executado.

O que você acha?

Carol, Yto e a Ontologia de SOA (parte I)

Carol é uma arquiteta de software, recém-casada, sem filhos, está prestes a receber seu 6o. certificado Java. Formada em análise de sistemas, é autodidata e adora música (não desgruda do seu iPod).

Yto é o gerente de desenvolvimento. Filho de japoneses, ele é casado, tem 1 filha, e está cursando uma pós-graduação em engenharia de software. Foi desenvolvedor por muito tempo e este é seu primeiro cargo como gerente.

carol&yto01 São 17:52 (veja o relógio) quando Yto chega próximo da mesa da Carol e pergunta:

[Yto] – Carol?

[Carol] – (ouvindo “Bangers and Mash”, do Radiohead, não ouve a pergunta)

[Yto] – (chegando mais perto) Carol, eu sei que já está tarde, mas preciso da sua ajuda para pensarmos sobre a Ontologia e a Taxonomia dos serviços que já construímos.

[Carol] – “Taxo” o que Yto? (ao mesmo tempo em que pensava, “O Yto não tem mesmo o que inventar, perguntar desta tal de ‘taxo-não sei-o-que’ quase 6 da noite…”)

Ontologia e Taxonomia

Os termos parecem difíceis para quem nunca ouviu falar mas o conceito é relativamente simples. Carol não precisa se preocupar mas, claro, às 06:00 PM não é a hora do Yto solicitar um planejamento de como classificar os serviços que eles já desenvolveram.

Quando se tem poucos Serviços – um número entre 20 e 100, então pode-se assumir que uma pessoa será envolvida no trabalho de entender e descrever a semântica deste Serviço.

Entretanto quando temos centenas de ou milhares de serviços, e estes estão sendo constantemente atualizados, é difícil ou mesmo impossível manter a semântica de cada um destes Serviços atualizado. Em algum momento se faz necessário uma representação formal, um padrão para representar a semântica destes Serviços.

soa-ontology(Evolução da Taxonomia para a Ontologia, SOASimples.com a partir de várias fontes)

Definições

Taxonomia são esquemas básicos, primários, de classificação através de hierarquia. A Taxonomia entretanto é uma estrutura muito simples para se utilizar em sistemas com muitas mudanças. Algumas vantagens:

  • Auxilia na definição de complexidade, melhorando estimativas de custo
  • Evita a quebra de uma regra básica de orientação a serviço que define que “serviços só podem utilizar outros serviços do mesmo nível (layer) ou de um nível inferior”
  • Suporta a linha de negócios (LoB) no entendimento do nível de reusabilidade quando surgem novos requisitos

Introduzir o conceitos de novos Serviços em uma ambiente de constante mudança (como o de uma operadora de telefonia) é uma das desvantagens desta classificação “horizontal”. Surgiu então necessidade de algo mais resiliente a mudanças, e a Ontologia tem esta característica importante.

Pode ser utilizada para capturar visões alternativas dentro de um arcabouço único, uma classificação “vertical”. Algumas vantagens:

  • Quando se desenha os serviços no contexto de “domínios” fica estabelecido uma linguagem comum entre TI e negócios
  • A visão de alto nível, simplifica o desenvolvimento de requisitos de negócio
  • Uma visão do todo (“big picture”) é compartilhada com todos facilitando a interoperabilidade dos novos serviços e evitando a duplicação de funcionalidades
  • Facilita a identificação de “quem” é o dono do novo serviço

Acompanhe aqui como a estória se desenrola. Abcs!

SOA e BPM devem ser iniciativas separadas?

soabpm

Existe existia uma idéia pré-concebida na minha mente que SOA BPM devem ser iniciativas “casadas”, parte de um processo único. O resultado pode ser catastrófico. Algumas razões:

  • SOA é estilo de arquitetura que utiliza fortemente o conceito de serviços para a construção de aplicações compostas
  • BPM é sobre análise de processos de negócios e otimização
  • A turma de Business Process Management (BPM) encontra na arquitetura orientada a serviços (SOA) a abordagem ideal para colocar em prática os processos de negócio que irão permear por toda a organização
  • Quando se fala de Business Process a tecnologia é o menor dos problemas. Política, resistência de alguns departamentos, problemas inevitáveis de comunicação, falta de direcionamento estratégico, áreas ou empresas dispersas geograficamente… …estes são os desafios da implantação de BPM

A utilização de uma arquitetura orientada a serviço pode ser parte de um esforço, de uma estratégia de BPM, porém ter as duas iniciativas de forma concorrente é um forte indício de que você esteja utilizando a abordagem “Big Bang” (que deve ser evitada).

SOA e BPM tem objetivos diferentes e métricas diferentes. Como afirmou J P Morgenthal em seu blog, “The Tech Evangelist“:

…SOA and BPM each have their own metrics of success and their ownbarriers to success. Combining them into one, well, the words “boilingthe ocean” comes to mind

Afinal, qual o papel do Analista de Negócio?

Ele precisa entender de arquitetura orientada a serviço? Não! Seu foco deve ser localizar e extrair dos stakeholders as informações necessária para capturar o “as is” (hoje) e ajudar a definir o “to be” (amanhã). Acredite, é a parte mais difícil.

Para ganhar agilidade no processo e evitar entrevistas desnecessárias com os clientes (internos ou externos), um(a) arquiteto(a) SOA deve acompanhar o(a) analista de negócio.

Se você quiser saber quais as oito competências que todo  Analista de Negócios deve ter, eu aconselho a leitura deste artigo: “Eight Competencies a Business Analyst Needs to Know“.

Bottom-up, Top-down, “Goal-oriented”?

Geralmente (isto não é regra) as equipes com foco na arquitetura SOA utilizam a abordagem “bottom-up“, em que os arquitetos especificam Serviços com base em “capacidades” (capabilities) que já existem. O risco desta abordagem é resultar em implementação de Serviços que não correspondem com os requisitos do processo. É o problema da “visão de poço” ou “visão de profundidade” em que coloca-se muito foco na tecnologia e, por vezes, esquecemos o objetivo maior, que faz parte de um processo de negócio.

Do outro lado, analistas de negócio (BPM), que geralmente utilizam excessivamente abordagens “top-down” irão tentar otimizar processos sem levar em conta o detalhamento que permitirá a implementação de um Serviço.

Qual a solução? A que eu recomendo é a utilização de iterações em que visita-se do topo (“top“) até a base (“bottom“), ou seja, verifica-se o processo “to be” mapeado pela equipe de BPM e a definição do(s) Serviço(s) projetado(s) pela equipe de arquitetos SOA.

Avançando nesta discussão o ideal seria ter definidos objetivos (“Goals“) factíveis e de curta duração, com grande visibilidade, e adotar esta ação conjunta “bottom-up”+”top-down” com um Goal de negócio como meta. A isto eu defino como “Goal-oriented“.

Abraços,

Davi

(atualizado às 08:10 PM para atualização do tópico “Bottom-up, Top-down, “Goal-oriented”?)

Category: bpm, SOA | Tags:

SOA, RFID e bagagens despachadas nas empresas aéreas

RFID-Architecture01.png
(fonte: SOASimples.com)

Alguns meses atrás, eu preparei a arquitetura simplificada acima para um trabalho no meu MBA no IBMEC São Paulo/INSPER. É apenas um exemplo de como uma arquitetura orientada a serviços (SOA) pode auxiliar em diversas aplicações de RFID. O objetivo foi apresentar uma solução para o rastreamento de cargas e bagagens aéreas utilizando tags RFID. Este tipo de solução já é utilizada em vários aeroportos e companhias aéreas no mundo. Veja um exemplo da United Airlines (Chicago, EUA) e da Air New Zealand (Nova Zelândia).

O Mercado mundial

A International Air Transport Association (IATA) estima que, por ano, as companhiam aéreas perdem US$ 3 a 4 bilhões/ano devido aos custos por extravio de bagagens. Em um cenário de pressão por redução de custos nas passagens, concorrência acirrada, reclamação dos clientes das longas filas nos balcões de check-in, eficiência operacional etc, fica claro que alguma ação precisa ser tomada para diminuir estes custos. É um investimento perdido e, pior, com “retorno negativo”, porque além dos problemas causados aos passageiros que tiveram sua bagagem extraviada, as empresas correm o risco de não ver nunca mais aquele passageiro em seus aviões.

Números, números…:

  • IATA estima que quase 33 milhões de malas são extraviadas todo ano
  • Este número representa algo próximo a 1.4% de todas as bagagens
  • Custo médio por bagagem extraviada: $100

A presão por redução de custos operacionais é tão grande que lá fora as empresas cobram de US$ 15 a US$ 100 adicionais simplesmente para despachar a bagagem dos seus clientes. Se esta moda pega por aqui…

Uma das soluções pode ser a utilização de RFID. Na minha opinião os custos iniciais podem até serem relativamente altos, porém os ganhos em eficiência, confiabilidade e até mesmo retenção de clientes são enormes. Você volta a utilizar os serviços de uma companhia aérea se, frequentemente, sua bagagem é extraviada? Pouco provável, certo?

Importante: não se trata apenas de imprimir tags RFID e colocar nas bagagens (sim, hoje temos impressoras que imprimem as etiquetas de RFID). Existe todo um ambiente de sistemas tais como ERP, CRM, despacho de bagagens, que precisam ser integrados e em tempo real.

As tecnologias e decisões de arquitetura para estas situações envolvem o uso de:

Não se assuste com a “sopa de letras” acima. Todas as tecnologias são correlatas, se complementam para a construção de um “meio-ambiente” que permita operar de forma eficiente uma solução baseada em eventos.

Investimentos: o case da Air Zealand

KioskRFID-AirZealand.jpg



A Air Zealand foi além do simples controle. Ela implantou kiosks (vide foto acima) onde os passageiros despacham suas bagagens devidamente identificada com tags RFID.

O investimento foi US$ 16.5 milhões. Com este valor a empresa:

  • instalou 112 kiosks como este e
  • mais 84 gate scanners que são os “leitores” de etiquetas dispostos em vários locais por onde é realizado o transporte e triagem das bagagens
  • tudo isto foi implantado em 26 aeroportos onde a empresa opera

Com isto ela foi a 1a. companhia aérea a oferecer RFID-enabled self-scanned check-in. Você prefere isto ou enfrentar a fila nos balcões? Isto influenciaria a escolha da sua companhia aérea? Quanto tempo você economizaria?

Como SOA ajuda

A questão central é o controle mais eficiente das bagagens e cargas, agilidade, integração dos vários sistemas, e uma grande redução de custos. Todos ganham no processo, a companhia aérea, a empresa que administra os aeroportos mas, principalmente, o cliente.

Existem middlewares utilizados em arquitetura SOA que são específicos para tratar centenas de milhares de eventos como estes gerados por etiquetas RFID. SOA é uma abordagem ideal para tratar de eventos complexos e integração de ambientes heterogêneos, com custo relativamente baixo, sem necessidade de reescrever o legado. Por tudo isto SOA é uma excelente escolha.

No próximo post vou tratar dos middlewares que são específicos para tratamento de CEP em uma arquitetura SOA. Não perca!

JBoss Libera HornetQ: open-source messaging system

Se você é familiar com os produtos da JBoss/Red Hat, já deve ter ouvido falar do JBoss Messaging (v 1.x). Como o nome diz é um middleware orientado a mensagens (ou MoM – Message-oriented Middleware), que era a solução de mensageria padrão do JBoss Enterprise Application Platform, JBoss SOA Platform e JBoss Application Server version 5.0.

O produto evoluiu e a versão 2.x ficou tão diferente do projeto original que eles decidiram dar um novo  nome para o produto: HornetQ.

Principais características

  • como o projeto original do qual é originado, o HornetQ é open-source (Apache v 2.0 licence)
  • roda em qualquer plataforma Java 5.x ou superior
  • suporta JMS 1.1 API, apesar de ter uma API de mensagens proprietárias (que a JBoss alega que tem uma performance superior)
  • provê sistema de mensagens persistentes com performance de MoM que trabalha com mensagens não persistentes (em memória)
  • pode ser integrado com o JBoss Application Server ou com com outro Java server/container
  • pode ser “empacotado”(embed) em sua própria aplicação (!)
  • opção de alta disponibilidade (server replication e client failover)
  • permite a criação de clusters (load balance, distribuição geográfica dos seus MoMs etc)
  • “core” do produto baseado em Plain Old Java Objects (POJO)
  • etc..

Arquitetura (high-level view)

Documentação

  • Guia rápido (PDF), recomendo!
  • Manual do Usuário (PDF)

MoM – Definição

Por fim, mas não menos importante, vamos a uma definição básica de um Message-oriented middleware (MOM).

Basicamente é uma solução de infraestrutura de software que recebe e envia mensagens. A arquitetura destas soluções tem um grande foco em questões relacionadadas a confiabilidade da entrega/envio das mensagens, interoperabilidade (“conversam” com vários protocolos) e portabilidade (ambientes altamente heterogêneos).

Na minha opinião, do ponto de vista de arquitetura de software, são soluções “elegantes” que reduzem a dependência e a complexidade das suas aplicações e/ou componentes. Como arquiteto(a), por exemplo, você não precisa se preocupar como uma mensagem vai sair do ambiente mainframe, ser persistida, transformada e roteada para, finalmente, ser entregue no formato de um SMS para seu cliente. Isto permite que você mantenha o foco no desenho, na arquitetura da solução, que é o mais importante.

Tudo indica que Mensageria será um dos elementos-chave em Cloud Computing. JBoss sabe disto e lançou o HornetQ com este objetivo ambicioso: ser o provedor de mensagens preferido no ambiente de cloud computing.

Boa sorte!

BI, SOA e Integração de Dados em Tempo Real

Uma discussão recorrente no mundo da arquitetura orientada a  serviços (SOA) é como o Business Intelligence (BI) se integra neste cenário e, no caso da empresa onde trabalho (operadora telecom), como disponibilizar dados em tempo real para o BI.

Antes de mais nada sabemos que o Business Intelligence não tem a premissa de tratar dados em tempo real. Utilizamos para consolidar dados de várias fontes, gerar gráficos e relatórios para os vários níveis da empresa (operacional, tático e estratégico), como um dashboard para os tomadores de decisão etc, mas quase nunca como uma ferramenta de análise de dados em real time.

BI

Falando em BI, em uma pesquisa realizada alguns anos atrás, mostrou os principais motivadores que levavam as empresas a adotar esta solução:

  • Aumentar a satisfação e a retenção de clientes: 62%
  • Dimunição de Custos: 53%
  • Aumento de Receita: 48%
  • Aumento de Lucratividade: 41%
  • Aumento de Market-share: 37%
  • Ferramenta de redirecionamento de produto: 30%

(fonte: http://www.information-management.com/issues/20040201/8034-1.html)

Análise de Dados em Tempo Real

Soluções do tipo BAM (Business Activity Monitoring), e mesmo os já conhecidos BI, podem demandar a apresentação de dados e gráficos de dados com uma latência menor. Alguns exemplos simples: vendas realizadas na última hora, ligações telefônicas completadas com sucesso nos últimos 45 minutos, lotes produzidos nas últimas 2 horas, transações com cartão de crédito no últimos 5 minutos etc.

Se o volume for considerável, milhões de transação no caso de uma operadora de telecom ou de cartão de crédito, é um desafio disponibilizar estas informações através do BI ou BAM. Não apenas estes dois mercados, mas todas as operações onde temos eventos em real-time que precisam ser capturados, correlacionados e apresentados para monitoramento em tempo real.

Estes cenários são típicos de Complex Event Processing (CEP) e Event-driven Architecture (EDA). Detalhes adicionais neste link.

Oracle e Integração de Dados em Tempo Real

Ontem (23/Jul/2009) a Oracle anunciou a compra da GoldenGate, uma empresa de San Francisco, Califórnia, que possui uma solução de integração de dados em tempo real. Veja a imagem abaixo que consta na apresentação oficial da Oracle:

Verifique que a solução da GoldenGate alega que extrai e disponibiliza os dados em “tempo real” para vários “consumidores”, entre eles: Message Bus típicos de arquitetura SOA/EDA e o que eles denominam “Operational BI“.

Veja uma arquitetura simplificada de onde como a solução da GoldenGate disponibiliza dados em tempo real para ferramentas de análise e BI:

A apresentação detalha ainda alguns cases de sucesso da implantação solução da empresa de San Francisco. Mesmo sendo um material com viés promocional de como os produtos da Oracle serão integrados com o da GoldenGate, a leitura vale a pena.

SOA Manifesto

Por ocasião do 2o. SOA International Symposium (Holanda, Outubro/2009), será lançado oficialmente o “SOA Manifesto“.

Nas palavras de Thomas Erl, um dos líderes do movimento “Towards and SOA Manifesto”, SOA já atingiu um nível de maturidade em que seus princípios, intenções e objetivos por trás da filosofia de orientação a serviços, já podem ser formalizados em um Manifesto.

The service-oriented architectural model and the service-orientation paradigm have reached a stage of maturity where the principles, intentions, and ambitions that embody their underlying philosophy and goals can be expressed in a formal manifesto. On October 23, 2009 at this year’s 2nd International SOA Symposium in Rotterdam, the “Towards and SOA Manifesto” working group will be following in the footsteps of the agile community by announcing the SOA Manifesto for the first time

Reproduzo parte do web site http://www.soa-manifesto.com/ :

Category: Architecture, SOA