Monthly Archives: May 2008

SOA Design Pattern (SOA World Magazine, Jun/2008)


A revista “SOA World Magazine” de Junho/2008 trará este excelente artigo (PDF, 07 páginas) de um dos mais renomados escritores técnicos de SOA, Thomas Erl (várias vezes citado neste blog).

O artigo é nota 10 e se você tem interesse por Patterns e/ou SOA, a leitura é “mandatória”. Propositalmente, não vou escrever nenhum resumo ou resenha. Vou apresentar apenas um trecho do artigo:

Design Patterns and Architecture Types

Each SOA design pattern provides a design solution in support of successfully applying service orientation and establishing a quality service-oriented architecture. Therefore, to better understand how and to what extent individual SOA design patterns can be applied, SOA as an architectural model itself needs to be broken down into the following types, each of which represent a common “scope of implementation”:

• Service Architecture – The architecture of a single service.
• Service Composition Architecture – The architecture of a set of services assembled into a service composition.
• Service Inventory Architecture – The architecture that supports a collection of related services that are independently standardized and governed.
• Service-Oriented Enterprise Architecture – The architecture of the enterprise itself, to whatever extent it is service-oriented.

In a typical enterprise, these architecture types are very much interrelated, yet each requires individual design attention and
documentation.

Linux Magazine de Maio/08: SOA


A Linux Magazine deste mês de Maio/08 (edição 42) trata da Arquitetura Orientada a Serviços (SOA) como tema principal. São vários artigos sobre esta arquitetura e, claro, o artigo da capa é sobre uma solução open source SOA (“Bem Arquitetado”, SOA sobre JBoss).

Blog do Cezar Taurion: Impacto Econômico do Open Source

O blog do Cezar Taurion (IBM Brasil) é uma das minhas leituras semanais obrigatórias. Quero compartilhar com vocês uma série de 04 (quatro) posts que ele escreveu sobre o “Impacto Econômico do Open Source:

  1. Impacto Econômico do Open Source (I): a dica é para quem se interessa em aprofundar no tema, lendo o documento “Economic Impact of FLOSS on Innovation and Competitiveness of the EU ICT sector” um PDF de 280 páginas que aborda a inovação e competitividade no setor de IT da União Européia
  2. Impacto Econômico do Open Source (II): aqui ele discute o aspecto da transferência de tecnologia no mundo open source. É um assunto bastante interessante pois aborda o que, na minha opinião, é um dos aspectos mais importantes de qualquer iniciativa de software aberto: a colaboração
  3. Impacto Econômico do Open Source (III): ele conta iniciativas de licenciamento de open source que trazem retorno financeiro (e.g. My SQL) e continua abordando o tema colaboração. Casos de sucesso como as redes Orixo (www.orixo.com) na Europa, e ZEA Partnes (www.zope-europe.org) que reune empresas que desenvolvem e suportam o Zope.
  4. Impacto Econômico do Open Source (IV): 4o. e último post da série, Taurion escreve as suas conclusões e observações. A opção por open source por uma empresa, ou mesmo como um política pública em qualquer esfera dos nossos poderes, não está relacionada unicamente a aspectos econômicos e muito menos ideológicos, mas como uma das melhores estratégias de promover a inovação. Minha opinião é que a possibilidade de colaboração que o open source traz “por default” é (e será) o grande motor que vai promover soluções, verdadeiramente, inovadoras.

Um trecho deste último post: Entendo que os modelos Open Source e Proprietários não sejam exclusivos
e antagônicos. Existe espaço para ambos o modelos e acredito que muitas
vezes mix destes modelos serão adotados pelo mercado. A razão é
simples: existem conhecimentos específicos em um software (lembrem-se,
software é conhecimento!) pelos quais o mercado reconhece valor e está
disposto a pagar por este conhecimento. Estes são os softwares que
serão comercializados, seja por licença seja como
Software-as-a-Service. Agora, softwares que estão em fase de
comoditização e com excesso de desempenho (funções muito acima das
necessidades do mercado), não são mais reconhecidos como valor agregado
pelo mercado, que busca então alternativas mais baratas como as opções
Open Source. Estes softwares, sim, serão canibalizados pelo modelo Open
Source.

Category: open-source

Governança SOA: Erros Comuns e Soluções (parte II)

No post anterior vimos alguns conceitos básicos em um pouco do escopo da Governança SOA.

Na segunda parte desta série sobre Governança SOA, veremos 05 (cinco) erros mais comuns na implantação da governança e qual a sugestão para resolver cada um deles (a base é este artigo do Dave Rosenberg, CEO da Mulesource).

Vejamos quais os principais erros de e as soluções propostas:

Erro 01 – Descentralizando Artefatos Comuns

Isto se aplica a empresas com operações descentralizadas. Alguns artefatos importantes como o WSDL ficam distribuídos em vários servidores em vários sites, resultando grande perda de tempo na procura de interfaces e schemas.

Solução para Erro 01: criação de um repositório centralizado com controle de acesso e registro dos services disponíveis, schemas e aplicações que fazem/farão uso destes. Um benefício imediato para o administrador de Web Services é saber quais serviços estão em produção. Acredite, este simples controle pode salvar algumas cabeças do departamento de TI.

Erro 02 – Reinventando a Roda

Este é o erro mais básico e, na minha opinião, está relacionada com nossa “herança genética” da época em que construíamos sistemas em “silos”: serviços e aplicações que irão realizar a mesma função sendo reescritos. Resultado: além do esforço “perdido” temos um altíssimo custo de controle de versão.

Solução para o Erro 02: colaboração e informação são as palavras-chave; faça com que todos no time conheçam os serviços já implementados e obrigue-os (isto mesmo!) a questionar sempre se um serviço existente pode ser reutilizado.  

Erro 03 – Desconhecendo as Melhores Práticas

Educação. Um ou outro desenvolvedor jr. podem não conhecer as melhores práticas, os patterns e anti-patterns. 

Solução para o Erro 03: Seminários técnicos internos apresentando um conjunto básico das best practices é uma solução simples e barata.

Erro 04 – “Esquecendo” os Consumidores dos Serviços

Dificilmento o desenvolvedor tem mapeado todos os sistemas e aplicativos que fazem uso de um determinado Web Service. Ele está preparado para responder a pergunta: “Se eu alterar este serviço quais sistemas serão afetados?”. Lembrando ainda que serviços chamam serviços. Já pensou no estrago que uma simples alteração pode fazer no seu “ecosistema” SOA? Melhor nem imaginar.

Solução para o Erro 04: os seus serviços são ativos e como tal devem ser gerenciados e controlados. No artigo o autor sugere uma ferramenta da sua empresa. Tenha em mente que um simples controle em uma planilha eletrônica ou em um Wiki pode fazer toda diferença. Se o volume for mesmo muito grande o investimento em uma boa ferramenta compensa, trust me!

Erro 05 – A Importância da Estratégia de Deployment

Geralmente temos uma forma de realizar o deployment de acordo com o sistema, sem padrão, ad-hoc. Muitos processos manuais, não documentados que só aquele desenvolvedor conhece (isto soa samiliar?). Imagine que você precisa fazer um rollback de algum sistema, complicado certo? Certo. Imagine isto em um ambiente SOA com dezenas de serviços, serviços que chamam serviços… …diria que isto é a definição de “chaos”.

Solução para o Erro 05: automatização do processo de building. Existem várias ferramentas gratuitas que fazem este serviço de forma unificada e, de quebra, já documentam o processo: determine que o script de bulding seja bem comentado.

Boa sorte! 

Category: Governance, SOA

Governança SOA: Erros Comuns e Soluções (parte I)

Posted on by 1 comment

SOA PresentationGovernança é importante em qualquer empresa, mais ainda em TI e fundamental em caso de adoção de uma arquitetura orientada a serviços (SOA).

Vamos relembrar o conceito de Governança em um contexto de SOA.

O que é Governança SOA?

Anne Thomas Manes (VP do Burton Group) define governança como:

The processes that an enterprise puts in place to ensure that things are done … in accordance with best practices, architectural principles, government regulations, laws, and other determining factors. SOA governance refers to the processes used to govern adoption and implementation of SOA

Questões de Governança SOA importantes no contexto de SOA

  • Adequação com os padrões ou leis (Compliance to standards or laws): diz respeito à necessidade de prover trilhas de auditoria nos sistemas de TI para, por exemplo, adequação à regulação da Sarbanes-Oxley (SOX).
  • Gerência de mudança (Change management): este é crítico. Em um ambiente SOA a mudança em um serviço pode ter consequências indesejáveis. Se a gestão de mudanças já é importante em um “ambiente tradicional” de sistemas, em uma arquitetura SOA fortemente baseada em reuso de serviços, o change management deve ser levado a sério.
  • Garantia de Qualidade de serviços (Ensuring quality of services): toda flexibilidade que SOA oferece para adicionar um novo serviço implica em atenção redobrada para os SLAs dos mesmos. Serviços frequentemente “chamam” outros serviços e basta um elo desta cadeia apresentar um problema que todos os processos que dependem deste(s) serviço(s) irão degradar ou mesmo parar. A solução é Governança, Governança e mais Governança. Entendido?

A Gestão do Portfólio e o gerenciamento do Cliclo de Vida dos Serviços; a utilização de Políticas de Restrição e Controle de Acesso e o Monitoramento da Performance destes serviços são questões-chave para a Governança SOA.

Anne Thomas Manes tem uma excelente apresentação sobre Governança SOA entitulada “You Can´t Buy Governance” (leitura altamente recomendada; o PDF está disponível para download sem nenhuma restrição).

Volte em alguns dias e veja a parte II deste assunto.

Category: Governance, SOA

Cloud Computing e o Futuro do Data Center Corporativo

Cloud ComputingPor que companhias como Google, Yahoo, Amazon (vide EC2/S3), Microsoft, IBM e tantas outras estão desenvolvendo infraestrutura de Cloud Computing?

Já tratamos deste tema aqui (vide post “O que é Cloud Computing“). Para tentar entender isto, com base neste post de Irving Wladawsky-Berger, vamos voltar 100 anos atrás e entender como se deu a evolução da eletricidade.

Logo após a invenção da eletricidade no final do século 19 as pessoas (e empresas) construiram suas próprias fontes geradoras de energia. Apenas após 30 anos (1910) é que Samuel Insull criou a primeira companhia cujo negócio era gerar energia. As pessoas perceberam que era mais fácil e barato comprar energia do que ter a responsabilidade de manter seus geradores e cuidar de toda infraestrutura necessária para ter uma geração própria de eletricidade.

Talvez esteja chegando o momento de questionarmos até quando vale manter os nossos próprios data centers ( a não ser que este seja o negócio de sua empresa).

Cada empresa com seu data center?

Por que cada empresa ou negócio (independente do tamanho) precisa ter seu próprio parque de servidores para hospedar suas aplicações, seu ERP, seu CRM, seus bancos de dados?

Alguns dos pequenos e médios servidores de nossas empresas são utilizados parcialmente: cerca de 20% apenas, consumindo 100% de energia. Isto é um problema. E a má notícia é: vai piorar. Não vamos ter fontes inesgotáveis de energia que irão permitir um crescimento vertiginoso da quantidade de servidores e PCs no mundo.

Iniciativas do tipo Green IT e outras ajudam, porém o conceito de Cloud Computing, na minha opinião é o que pode, de fato, otimizar a utilização dos recursos de software, infraestrutura e hardware, de forma mais eficaz. Cada empresa ou indivíduo fará uso apenas dos recursos em que necessita, no tempo em que for necessário.

Tenho um amigo que tem em sua casa (ele, esposa e filha de 12 anos): 03 notebooks, 02 PCs robustos que trabalham como servidor caseiro, outros tantos monitores, HD externo, 02 conexões de banda larga para atender a demanda de seus trabalhos… …e já pensou, com toda razão, em consolidar parte das máquinas em um servidor. Se esta é uma realidade em muitas casas de classe média e alta, imagine o quanto a base de hardware está aumentando nas empresas.

Cloud Computing está pronta para ser utilizada nas empresas?

Vejamos o que afirma este estudo do Forrester Research.

Cloud computing is a new IT outsourcing model that doesn’t yet meet the criteria of enterprise IT and isn’t supported by most of the key corporate vendors. It’s wildly popular with startups, exactly fits the way small businesses like to buy things, and has the potential to completely upend IT as we know it. And there’s a high likelihood developers inside your company are experimenting with it right now. Forrester spoke with more than 30 companies in this market to determine its worthiness for enterprise consideration and found that it provides a very low-cost, no-commitment way for enterprises to quickly get new services and capabilities to market that entirely circumvents the IT department. Infrastructure and operations professionals can try to ignore it as it is just in its infancy, but doing so may be a mistake as cloud computing is looking like a classic disruptive technology.

Aplicações que podem se beneficiar da Cloud Computing

  • Aquelas que precisam acessar informações em tempo real (real-time information acess) tais como: RFID, sistemas de segurança e de transporte
  • Sistemas de pagamento e financial services
  • Mundos virtuais (à la Second Life) e as redes sociais
  • Todas as aplicações cujos bilhões de dispositivos móveis farão (estã fazendo) uso

Nem tudo são flores

A infraestrutura precisa melhorar (e muito!), principalmente aqui no Brasil. Como as empresas poderão garantir a disponibilidade dos serviços?

Veja o que aconteceu com um dos serviços mais famosos e um dos melhores exemplos de Cloud Computing (Amazon):

Amazon EC2/S3 Outage

E se o seu negócio dependesse apenas deste serviço?

Apesar destes “senões”, o futuro do processamento corporativo parece ser mesmo a Cloud Computing.

Aguarde outros posts sobre este assunto.

Outros artigos interessantes:
- Entrevista do CEO da Amazon.com (Jeff Bezos) para a WIRED Magazine em Mar, 2008: “Cloud Computing. Available at Amazon.com Today

- Post do Joe McKendrick em Abr, 2008: “Is Cloud computing too good to be true for enterprises?