You are on page 1of 39

Aprenda a disciplina,

busque a arte e contribua THE


com idéias no:
www.ArchitectureJournal.net
Recursos nos quais você
ARCHITECTURE
pode confiar.
JOURNAL
Idéias para melhores resultados
TM

Journal 13

Software + Serviços

O Barramento de Serviços
para a Internet

Perfil do Architecture Journal:


Ray Ozzie

Projeto Astoria

Implicações do Consumo
de Software + Serviços do
TI Corporativo

Mashups Corporativos

Microsoft Office como


Plataforma de
Software + Serviços

Um Planeta Regido por


Arquiteturas de Software
THE
Sumário ARCHITECTURE
JOURNAL TM

Idéias para melhores resultados

Journal 13

Apresentação 1
por Simon Guest

O barramento de serviços para a Internet 2


por Donald F. Ferguson, Dennis Pilarinos, John Shewchuk
Conheça os aspectos arquiteturais da transmissão de mensagens pela Internet utilizando um barramento de serviços para
Internet.

Perfil do Architecture Journal: Ray Ozzie 9


Ray Ozzie é arquiteto-chefe de software da Microsoft. Nesta edição, Ray nos apresenta a sua visão para um mundo feito de
software + serviços e algumas de suas idéias ao tornar-se um arquiteto de software.

Projeto Astoria 12
por Pablo Castro
Astoria é uma nova tecnologia para a criação de serviços que expõem dados na web. Conheça os detalhes dessa nova
tecnologia que se desdobra em software e serviço.

Implicações do consumo de software + serviços do TI corporativo 18


por Kevin Sangwell
Saiba quais são os pensamentos e as recomendações para o consumo de serviços dos departamentos de TI corporativos.

Mashups corporativos 24
por Larry Clarkin e Josh Holmes
Os mashups não são apenas para usuários e consumidores finais. Veja como criar mashups quando a empresa possui várias
fontes de dados.

Microsoft Office como plataforma de software + serviços 29


por Chip Wilson e Alan Josephson
Como plataforma cliente, o Microsoft Office pode trabalhar bem com a visão software + serviços. Investigue como isso tem
sido feito por meio de um conjunto de exemplos do mundo real.

Um planeta regido por arquiteturas de software 34


por Gianpaolo Carraro
Junte-se a nós para um tour por Architectopia, mundo no qual diferentes paradigmas de computação definem
as civilizações.

Recursos nos quais você pode confiar. www.architecturejournal.net


Fundador
Arvindra Sehmi
Microsoft Corporation
Editor-chefe
Simon Guest
Microsoft Corporation
Apresentação
Conselho Editorial Microsoft
Gianpaolo Carraro
John deVadoss
Neil Hutson
Eugenio Pace
Javed Sikander
Philip Teale Caro Arquiteto,
Tim O'Brien
Editor
Lisa Slouffman
Microsoft Corporation C omo arquitetos de software, muitas vezes nos defrontamos com decisões
tecnológicas bem no início do processo de desenvolvimento. Cliente gordo ou
magro? Computador portátil ou de mesa? Instalação local ou aplicativo web? Em lugar de
Design, impressão e distribuição
escolher uma opção "ou" outra, como seria se pudéssemos escolher algo usando "e"? Por
CMP Technology – Editora que nossas escolhas têm de ser forçadas a usar uma determinada tecnologia quando a
Chris Harding, diretor administrativo melhor solução é, quase sempre, um mix de duas? Este é o conceito que serve de base ao
Angela Duarte, gerente de publicação tema desta edição do The Architecture Journal: software + serviços.
Lisa Broscritto, gerente de projeto
Kellie Ferris, diretor corporativo de A organização dos artigos desta edição explora uma nova visão de software + serviços,
serviços criativos conforme exposto por Ray Ozzie, arquiteto-chefe da Microsoft, em seu discurso na MIX
Jimmy Pizzo, diretor de produção 07 deste ano.

Diagramação, finalização e impressão (BR) Iniciamos esta edição com Don Ferguson, cujo perfil foi o destaque do Jornal 11, lembra-
Arthéria Comunicação & Multimídia se? Don compartilha suas idéias sobre os aspectos arquiteturais de como transmitir
www.artheria.com.br mensagens pela Internet por meio de um barramento de serviços para a Internet ou ISB
(Internet Service Bus).
Depois do artigo do Don, e como parte de nossa série Perfil do Architecture Journal, é
com grande entusiasmo que compartilhamos uma entrevista com o próprio Ray Ozzie.
Nesta entrevista, Ray nos revela alguns dos detalhes da visão software + serviços e o que
®
representa ser arquiteto-chefe de software da Microsoft.
Depois da entrevista com Ray, Pablo Castro nos oferece uma síntese técnica do Projeto
As informações contidas neste The Architecture Journal (“Jornal”)
Astoria. Astoria é um novo serviço que expõe dados para clientes da web no âmbito de
têm finalidade informativa, apenas. As matérias do Jornal não
constituem a opinião da Microsoft Corporation (“Microsoft”) nem uma rede corporativa e pela Internet. Kevin Sangwell vem a seguir, com suas idéias sobre
da CMP Media LLC ("CMP") e, tampouco, são recomendações da as implicações do consumo de serviços pelo
Microsoft ou da CMP; assim sendo, você não deve confiar em TI corporativo e, este texto nos leva
nenhuma das matérias deste Jornal sem solicitar o aval de um diretamente a um artigo sobre mashups na
consultor independente. A Microsoft e a CMP não fazem
empresa, escrito por Larry Clarkin e Josh
declarações nem oferecem garantias quanto à exatidão ou
adequação para determinada finalidade de qualquer matéria deste Holmes.
Jornal e, em nenhuma circunstância, nem a Microsoft, nem a CMP Para fechar esta edição, Chip Wilson e Alan
aceitará responsabilidade de qualquer tipo, inclusive
Josephson investigam o uso do Microsoft
responsabilidade por negligência (salvo em caso de danos físicos
ou morte) com relação a quaisquer tipos de perdas ou danos Office como plataforma para software +
(incluindo, mas não se limitando, aos casos de perda de negócios, serviços. Finalmente, temos a divertida
de receita, de lucros ou prejuízo imprevisto) resultantes do uso das analogia escrita por Gianpaolo Carraro que
informações deste Jornal. O Jornal pode ter imprecisões técnicas e nos faz esta pergunta: E se a arquitetura
erros tipográficos. O Jornal pode ser atualizado periodicamente e,
fosse um planeta? Nesse texto, Gianpaolo analisa uma perspectiva interna para revelar
às vezes, poderá estar desatualizado. A Microsoft e a CMP não se
responsabilizam pela atualização das informações deste Jornal mais sobre os benefícios de se utilizar o software + serviços.
nem por deixar de fazê-lo. Este Jornal contém matérias Aqui no The Architecture Journal, gostamos de "praticar o que pregamos”. Para tanto,
encaminhadas e criadas por terceiros. Até o máximo permitido
temos prazer em anunciar uma nova experiência offline do Jornal, denominada "Journal
pela lei aplicável, a Microsoft e a CMP isentam-se de todas as
responsabilidades por qualquer ilegalidade decorrente de erro, Reader" (Leitor do jornal).
omissão ou imprecisão deste Jornal ; além disso, a Microsoft e a Demonstrando muitos dos princípios destacados nesta edição, este novo leitor é um
CMP não se responsabilizam pelas matérias recebidas de terceiros.
aplicativo instalado localmente que possibilita transformar cada edição do Jornal em uma
As marcas comerciais a seguir são marcas comerciais registradas
experiência fácil de ler, imersiva, com pesquisa integrada. O aplicativo faz a sincronização
da Microsoft Corporation: BizTalk, Microsoft, SharePoint, SQL
Server, Visual Studio, Windows, Windows NT e Windows Server. com nossos serviços de gerenciamento de conteúdo e, assim, será possível ter acesso
Quaisquer outras marcas comerciais são de propriedade de seus automático às mais recentes edições do Jornal, sem necessidade de fazer o download de
respectivos proprietários. arquivos PDF ou ler online.
Todos os direitos autorais e outros direitos de propriedade Recebemos grande volume de feedback dos leitores sobre como o jornal é lido e
intelectual das matérias publicadas no Jornal pertencem à
Microsoft Corporation ou estão a ela licenciados. Copiar,
esperamos que este novo serviço ofereça uma forma de leitura exclusiva e útil. Já no
reproduzir, transmitir, armazenar, adaptar ou modificar o layout ou início de novembro, você poderá fazer o download do leitor e obter mais detalhes em
o conteúdo deste Jornal são ações proibidas, a não ser que haja nosso website: http://www.architecturejournal.net.
autorização prévia, por escrito, da Microsoft Corporation e de cada
um dos seus autores.
Copyright © 2007 Microsoft Corporation. Todos os direitos
reservados.
Simon Guest

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 1


O Barramento de Serviços
para a Internet
por Donald F. Ferguson, Dennis Pilarinos, John Shewchuk

Resumo e construíram websites. As responsabilidades básicas do cargo dos


profissionais talvez nem inclua programação, mas em muitos casos eles
Os aplicativos web têm como base um modelo
criarão programações simples se isso aumentar a sua produtividade.
extremamente comum e eles se tornarão cada vez mais Também podem desenvolver aplicativos simples só por que é legal.
dominantes. Praticamente todos os aplicativos para empresas Para este conceito, utilizaremos a expressão programação feita pelo
de médio a grande portes oferecem uma IU de web. Neste usuário final.
artigo, empregaremos o termo empresa para englobar A programação feita pelo usuário final é um caso extremo de
negócios de médio a grande portes, o fornecedor de desenvolvimento oportunista, que ocorre em departamentos e linhas de
software e as empresas integradoras. Aplicativos para negócio (LOBs) nas empresas. As LOBs e as equipes quase sempre
desktop e cliente/servidor cada vez mais usam o navegador desenvolvem aplicativos SharePoint ou PHP simples, de modo "rápido e
para o mecanismo da IU e fazem chamadas para obter sujo", que resolvem um problema imediato do negócio, ampliando os
aplicativos comerciais ou aqueles de base usados por toda a empresa.
dados e serviços pelos protocolos web.
O desenvolvimento oportunista é o oposto do desenvolvimento
Software, modelos de aplicativos e a própria web estão
sistemático. O desenvolvimento sistemático é dirigido a modelo, cheio
passando por uma transformação revolucionária. O efeito de exigências de coleta, casos de uso e entrevistas com as partes
dessa transformação será tão grande para a computação interessadas, um ciclo de vida do desenvolvimento do aplicativo que
como foi o modelo cliente/servidor ou o surgimento inicial inclui qualidade, garantia, etc. O desenvolvimento sistemático é o
da web. A web evoluirá da função de conectar usuários aos modelo predominante da equipe de desenvolvimento corporativo
aplicativos fornecidos por sites para um modelo em que: ("equipe CIO"). Muitos programadores de aplicativos comerciais (ISVs ou
fornecedores de software independentes) e integradores de sistemas
"
o aplicativo é executado "na web"; (SIs) também produzem soluções sistemáticas.
"
os usuários finais desenvolvem os próprios aplicativos para acessar a Existe uma tensão nas empresas entre os desenvolvimentos oportunista
web, transformando-a em um espaço de trabalho desenvolvido pelo
e sistemático. Essa tensão aumentará se a programação feita pelo
usuário final para acesso aos Web Services.
usuário final vier a ser comum. Os usuários finais não se contentarão
Este artigo tem como enfoque um pequeno número de em esperar pelas equipes de desenvolvimento sistemático para
elementos dessa transformação. Outros artigos ampliarão a desenvolver ou modificar soluções. A arquitetura de referência que
visão. descrevemos oferece uma abordagem para reconciliar os extremos dos
desenvolvimentos oportunista e sistemático.
Usamos um cenário para ilustrar a arquitetura de referência. Um
V árias tecnologias e tendências oferecem a força propulsora para a
transformação revolucionária descrita acima. Alguns exemplos são:
processadores de vários núcleos; virtualização; cenários de aplicativos
elemento básico que surge e serve de base para a arquitetura é um
barramento de serviços para a Internet ou ISB. A arquitetura de
que fazem a federação de muitos dispositivos como celulares e mesas referência abrange muitos elementos; contudo, este artigo detalha
digitalizadoras; arquitetura orientada a serviço (SOA) e Web Services; apenas o ISB. Outros artigos descreverão outros elementos.
Web 2.0; e software como serviço (SaaS).
O cenário e os desenvolvimentos oportunista e sistemático
Discutiremos o efeito de algumas dessas tendências, mas nossos
Dave viaja muito a negócio e utiliza os serviços de hotéis e empresas
principais enfoques são SOA, Web 2.0 e SaaS. Esses conceitos e as
aéreas preferenciais. Aluga carros nas locadoras das cidades que visita e
respectivas relações ainda não estão bem compreendidos. As
faz reservas em restaurantes. A colaboração com amigos, família e
tecnologias freqüentemente parecem ser antagônicas. O artigo
descreve os elementos de uma arquitetura de referência de alto nível colegas também é importante. Dave utiliza vários websites de agências
que reúne os conceitos em um todo consistente. de viagem para elaborar e modificar planos de viagens.

Muitas das tendências tecnológicas precedentes são completamente Administrar as viagens do Dave envolve muitas tarefas manuais para
conhecidas e aceitas. Este artigo discute uma terceira tendência, mais interagir com as agências de viagens por meio dos respectivos websites.
controversa: a capacidade de programação universal. Grande parte de Ele precisa coordenar tarefas manualmente em vários sites e
graduados do nível médio e das universidades possuem qualificações copiar/colar dados entre campos. Existe também alguma lógica
de programação básica quando passam a integrar a força de trabalho; seqüencial, por exemplo, fazer reserva em um restaurante e alugar um
muitos alunos já desenvolveram aplicativos PHP ou Visual Basic simples carro para chegar até o restaurante. As atitudes de Dave são

2 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


O Barramento de Serviços para a Internet

similares a um aplicativo composto ou solução de integração de parceiros que precisam usar o aplicativo e isso exige a segurança da
aplicativo corporativo (EAI - Enterprise Application Integration). O empresa. Alguns aplicativos podem fazer parte de importantes
trabalho manual é entediante e passível de erros. Dave conhece decisões do negócio, como a aprovação de empréstimos. Governança
programação básica e decide escrever um pequeno mashup. O mashup e conformidade exigirão acesso e entrada de dados de registro, assim
usa os websites das agências de viagens por meio de um script de como gravar as versões do código desses aplicativos. Transferir os
página web do lado do cliente ou clipping de HTML simples (Figura aplicativos de situação para a central de dados traz implicações
1(a)). O mashup facilita a vida do Dave, acrescentando produtividade ao profundas. As centrais de dados precisarão dar suporte a centenas ou
seu trabalho, pois o tempo que economizará na administração de suas milhares de aplicativos que mudam constantemente, além das
viagens poderá usar no seu trabalho. O mashup também é legal e isso soluções básicas do negócio. A central de dados precisa administrar
impressiona seus amigos. dezenas de servidores de aplicativos básicos supercarregados,
Mary e Ludwig gostam do aplicativo e Dave lhes oferece o código. acessados por milhares de usuários e milhares de servidores virtuais
Desejam uma IU diferente, mas compartilham o código. Assim sendo, raramente acessados por equipes pequenas que usam aplicativos
aprimoram o aplicativo separando a IU do acesso ao website, específicos.
scripting, fazendo o cache pela implementação de uma versão simples Existem muitos cenários em que as soluções sistemáticas consomem
de modelo-visão-controlador (Figura 1(b)). Este aprimoramento aplicativos oportunistas. O Dave achará bem legal se o departamento
também permite a reutilização do código para acesso por meio de de TI utilizar um de seus aplicativos.
outros dispositivos como PDAs ou celulares (Figura 1(c)). Por fim,
Em resumo, os aplicativos oportunistas incentivam as soluções
decidem deslocar a camada do modelo para um servidor web de
sistemáticas e estas solidificam os aplicativos oportunistas (como o
departamento e implementam um aplicativo web simples. Esse
Representational State Transfer (REST) -> Web Services). Essas
procedimento permitirá que várias pessoas tenham acesso às
dinâmicas também movimentam o software como serviço ou mais
informações, por exemplo, os assistentes.
precisamente, software + serviços. O conceito de software + serviços
Os amigos construíram nessa oportunidade um aplicativo composto: oferece uma plataforma que une os desenvolvimentos de aplicativos
uma simples solução pseudo-EAI. Na medida em que programadores sistemático e oportunista com a distribuição.
qualificados são admitidos para integrar a força de trabalho, esses
aplicativos específicos e ocasionais serão cada vez mais comuns. Existe Software + serviços, e um barramento de serviços para a
o aspecto "legal" que dá destaque aos criadores e os aplicativos Internet
simplificarão as tarefas entediantes. Os profissionais também podem Barramento de serviço corporativo
construir aplicativos ocasionais para problemas de curta duração do Imagine o que acontece se a empresa aérea cancela o vôo de conexão
negócio como uma convenção. Os aplicativos desempenham funções do Dave, no trecho Dallas-São Francisco, enquanto ele faz o trecho
análogas às das planilhas, quando o usuário executa uma tarefa do Nova York-Dallas. Dave não conseguirá chegar em São Francisco e
negócio e acessa bancos de dados e aplicativos de base existentes. precisará passar a noite na cidade do aeroporto de conexão. Será
Aplicativos de situação oportunista terão efeito profundo sobre a preciso alterar todas as reservas: hotel, aluguel de carro e restaurante.
distribuição sistemática dos aplicativos corporativos. Um efeito Dave poderia usar o seu mashup para simplificar essas mudanças
acontecerá sobre o desenvolvimento do aplicativo corporativo. Os quando desembarcar. Seria ainda melhor ("mais legal") se fosse
aplicativos de situação podem "forçar" os aplicativos corporativos possível refazer a reserva automaticamente, durante o vôo. As
básicos ou utilizá-los de modos inesperados. Isso fará com que a empresas aéreas e os sites que monitoram vôos emitem “feeds” com
organização de TI transfira algumas das "camadas de modelo" para os atualizações dos horários de vôo. De modo ideal, o aplicativo do Dave
servidores corporativos, para aprimorar o desempenho e a estaria sempre sendo executado em algum lugar "da nuvem". O
integridade. Resumindo: os aplicativos de situação têm casos de uso aplicativo faria a monitoração dos “feeds” e usaria lógica simples para
definidos que podem conduzir a transformação sistemática do reagir a eventos e modificar o itinerários e os planos.
aplicativo corporativo. Os aplicativos de situação podem substituir Não é provável que um simples aplicativo de usuário final pudesse
modelos simples para documentar casos de uso e orientar a sempre ajustar o itinerário, mas a maioria dos ajustes é, muitas vezes,
modelagem formal. bastante simples. Dave só teria de interferir manualmente nos casos
Muitas pressões tratarão de transferir os aplicativos de situação, tanto complexos e poderia, também, aprovar as alterações feitas
quanto possível, para os servidores corporativos. Poderá haver automaticamente pelo seu aplicativo durante o vôo.
O cenário geral do aplicativo para ajustar o
Figura 1: Evolução do mashup itinerário é um tipo de problema comum nas
empresas. Problemas similares podem acontecer
A com ordens de compra e aprovação de contas de
C despesas, por exemplo. O cenário é um exemplo
de aplicativo composto que implementa um
padrão de processamento direto (STP - Straight-
Through-Processing) (vide Referências). As
empresas implementam uma abordagem
sistemática para resolver esses problemas. A
Figura 2 oferece uma visão geral de como seria o
aplicativo composto se a empresa aérea, o hotel,
D restaurante, a locadora e outros sistemas
B

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 3


O Barramento de Serviços para a Internet

3. Os aplicativos das empresas aéreas e dos hotéis são externos à


Figura 2: Um processo corporativo do negócio
empresa. As empresas são bastante ponderadas e cautelosas
quanto a estabelecer conexões B2B. Ainda que o parceiro de
Feed
negócios implemente Web Services, a empresa precisará definir
Serv
Converte Inf regras de autorização e auditoria para interações de Web Services
Autos
com os parceiros. A empresa precisará ter suporte para
Recebe Filtra
gerenciamento, federação e provisionamento de identidades de
Nova
Converte Cancela reserva Sucesso usuário pois os funcionários terão uma identidade na empresa e
hotel
outras nas empresas aéreas e hotéis.
Nova
reserva
hotel
Sucesso 4. A personalização da solução para aceitar preferências dos
funcionários é complexa. Ao funcionário falta habilidade para fazer
a personalização "faço eu mesmo". O aplicativo reside em
Mensagem C RPC servidores corporativos centralizados. Os profissionais de TI
SQL RFC SAP
sobre MQ COBOL
definem e modificam o processo do negócio, não o Dave.
Seria de fato muito legal se o Dave pudesse criar uma versão simples e
pessoal da solução sistemática. Se generalizarmos o ESB e o
considerarmos um tipo de barramento de serviço otimizado para o
Vôos Itinerário Hotéis Locadora
desenvolvimento empresarial sistemático, poderíamos também
imaginar um tipo de barramento de serviço otimizado para
estivessem no âmbito do firewall corporativo. Um processo de
desenvolvimento oportunista. Este é o barramento de serviços para a
orquestração de execução relativamente longa inscreve-se em eventos
Internet (ISB). O ISB parece mais com um tecido universal. O ISB faz a
que o sistema de gerenciamento de vôo emite. O processo envia
ligação dos dispositivos entre si, dispositivos e servidores locais, entre
mensagens de/para e chama os aplicativos existentes para cancelar
websites e ESBs e é, em si, um ESB. O ISB é uma plataforma para
reservas, consultar disponibilidades e fazer novas reservas. As empresas
aplicativos compostos e processos do negócio do tipo "faça você
são heterogêneas e os aplicativos existentes possuem diversos
mesmo". O ISB é também um exemplo de software como serviço
formatos de mensagens (C, COBOL etc.) e de protocolos de
(Saas).
comunicação (WebSphere MQ, SAP RFC, por exemplo).
Barramento de serviço de Internet
O projeto do processo de ajuste apresentado na figura 2 é frágil. O
processo do negócio deve modificar se, por exemplo, outro aplicativo A Figura 4 oferece uma visão geral do conceito de barramento de
de empresa aérea tiver sido adicionado. O processo do negócio serviços para a Internet. (O BizTalkServices é um dos primeiros
também pode ser acoplado a formatos e linguagens de mensagem exemplos de ISB; vide Referências.) Um provedor ISB é análogo a uma
específicos dos aplicativos existentes. Seria difícil adicionar um empresa que hospeda websites PHP. Ambos fornecem uma plataforma
mecanismo geral para o registro de mensagens que correspondesse a de aplicativos na "nuvem". Um site que hospeda web PHP fornece
determinadas condições, por exemplo, registro de todas as mensagens basicamente uma plataforma para o desenvolvimento de websites
se o viajante for um executivo. Essa fragilidade levou as arquiteturas de dinâmicos e Web Services que interagem com um banco de dados.
aplicativos corporativos a evoluírem para um barramento de serviço Por outro lado, o ISB fornece uma plataforma para criação e
corporativo (ESB - Enterprise Service Bus). implantação de aplicativos compostos que integram serviços
A Figura 3 oferece uma visão geral de um barramento de serviço
corporativo. Os adaptadores de aplicativos convertem formatos e
protocolos existentes em Web Services padrão. Isso transforma o Figura3: Um barramento de serviço corporativo
problema do mapeamento de protocolo/formato N N para conectar
Feed
uma coisa à outra em um problema de mapeamento N 1, ou seja, Serv
Converte Inf
tudo dentro de um padrão. O ESB oferece funções adicionais que Autos
processam o fluxo de mensagens entre serviços. Exemplos incluem Recebe Filtra
conversão, registro e roteamento das mensagens. Nova
Converte Cancela reserva Sucesso
Se a área de desenvolvimento corporativo e as unidades de negócio hotel

da empresa do Dave tivessem decidido que a implementação do Nova


aplicativo de viagem construído por ele era bastante importante para reserva Sucesso
hotel
ser capitalizado, a equipe corporativa poderia implementar um
aplicativo similar àquele da Figura 3. O desenvolvimento dessa solução
sistemática apresenta vários problemas:
Mapeia Routeia
1. Não há garantia de que a empresa resolveria investir no
SQL SNA RFC SAP
aplicativo composto. Pode haver outros problemas mais PL/1
prioritários para o negócio.
2. O desenvolvimento sistemático envolve casos de uso, algum
tipo de modelagem de processo e entrevistar os participantes.
Tudo isso leva tempo. Vôos Itinerário Hotéis Locadora Locadora

4 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


O Barramento de Serviços para a Internet

"
seu site PHP pessoal dirigido a banco de dados;
Figura 4: Um barramento de serviços para a internet
"
portal de colaboração familiar por meio do http://www.twiki.org/;
"
presença em espaços como no Windows Live Spaces (http://home.
services.spaces.live.com/).
Don, amigo do Dave, pode inscrever-se com o componente de
identidade do ISB e criar uma ID de usuário don@foo.bar. Dave pode
Serviços de usar a IU web do componente da identidade para especificar quais
Conectividade Workflow
Identidade URIs ISB podem ser acessadas pelo Don. Dave também pode definir
grupos e conceder acesso aos grupos. Don pode ter acesso aos URIs
depois de estar conectado no ISB. O ISB simplifica o gerenciamento de
segurança do Dave porque ele pode manter um banco de dados
centralizado e, depois, autorizar o "ISB" a acessar sua página wiki e
outros recursos. O ISB protege os recursos atuais por meio do controle
de acesso dos URIs ISB que os antecedem. O ISB tem como benefício
um único espaço para que Dave defina e atualize identidades, grupos,
recursos e diretivas de acesso para todos os seus "serviços" na web.
Acabamos de descrever ações explícitas de usuário por meio de
fornecidos por outros sites. ISBs, empresas que hospedam web PHP e páginas da web. Outra abordagem bastante comum será a de ter
armazenamento como serviço, tipo S3 da Amazon, são exemplos de aplicativos nas extremidades que participem das APIs de Web Services
infra-estrutura de implementação de aplicativo de SaaS. Isso contrasta que utilizam o aplicativo composto para ter acesso ao ISB.
com Salesforce.com o qual, de início, era aplicativo SaaS comercial.
O componente da identidade também dará suporte às funções do STS
O conceito básico do ISB está construído ao redor do espaço URI (Security Token Service) do WS-Security, e fará a federação com outros
(Uniform Resource Identifier). A equipe de Dave que trabalha no STSs. Isso permite ao Dave gerenciar o acesso a identidades não
aplicativo registra e é "proprietária" do site URI registradas no ISB. Se foo.bar fosse uma empresa em que Dave confia
O ISB oferece uma função de identidade e acesso para controlar quais e se esta implementar um STS, Dave poderá definir diretivas de acesso
http://ISB.net/DaveAndTeam. URIs abaixo dessa raiz representam para identidades autenticadas em foo.bar.
pontos de integração do aplicativo e são similares a destinos nas filas Com o tempo, os ISBs oferecerão outras diretivas e implementações
do Java Messaging Service em middleware orientado a mensagem ou que podem ser aplicadas aos URIs. Os exemplos podem incluir WS-
tópicos em sistemas com o padrão publicação/assinatura. A equipe ReliableMessaging (troca confiável de mensagens em Web Services) ou
desenvolve um aplicativo ISB pela associação de diretiva e função com registro implícito de mensagens. O conceito é similar à associação de
URIs. O aplicativo composto é um conjunto de URIs, diretivas e diretivas de qualidade de serviço com conexões em middleware
funções. orientado a mensagem.
O ISB oferece uma função de identidade e acesso para controlar quais O ISB aproveita as capacidades de identidade e acesso para fornecer
mensagens podem ser enviadas a um URI e por quem. A função de "conectividade universal segura" aos aplicativos – mesmo para aqueles
identidade e acesso é um exemplo de associação de diretiva com um protegidos por firewalls. Isso inclui suporte para ampla gama de
URI. padrões e protocolos de conectividade. Entre os exemplos incluem-se
Como exemplo, Dave poderia escolher manter uma página wiki em HTTP orientado a REST, WS-* e padrões dirigidos a evento
um website público que mostrasse suas reservas de viagens. Ele encontrados em muitos aplicativos corporativos. Especificamente, o
desejará controlar o acesso à página wiki. Configurar e atualizar componente de conectividade do ISB oferece três funções básicas:
bancos de dados de autenticações e autorizações em seu website 1. Transmissão: possibilita a comunicação entre o ISB e os
pessoal pode ser entediante. O problema ficará mais complexo se aplicativos protegidos por firewalls. Existem muitas técnicas para
Dave tiver páginas e dados em vários websites, por exemplo: realizar esta capacidade (BizTalk Labs, vide Referências). A função
de transmissão elimina a necessidade de configurar conexões
Figura 5: Processamento de mensagem ISB sistemáticas em toda a empresa para cenários simples.
2. Protocolo: oferece um conjunto de protocolos comuns para a
XML HTML troca de mensagens, como WS-* ou REST. O ISB também fornece
E-mail
mapeamento de protocolo para conexão automática de
extremidades utilizando protocolos diferentes. Por exemplo, é
"LE-"
possível conectar um “feed” RSS a uma conexão de mensagens
XML
WS-*, sem necessidade de modificar nenhum dos aplicativos.
3. Funções: oferecem suporte para associar funções simples tipo
"OL" ESB ao URL. Entre os exemplos seria possível incluir distribuição
Cancela múltipla (multicast), WS-Eventing (eventos de Web Services), troca
HTTP POST de mensagens persistentes, etc.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 5


O Barramento de Serviços para a Internet

A camada de conectividade opera no nível da infra-estrutura de 3. Converte a mensagem para o formato esperado pela locadora,
tecnologia. Simplifica o desenvolvimento da solução removendo a ou seja:
complexidade graças a vários "encanamentos", por exemplo, REST vs
a) e-mail em HTML para um provedor
WS-*. Os projetos que devem implementar a integração da infra-
estrutura neste nível incorrem em custo e risco significativos. O ISB b) HTTP POST para o segundo provedor
elimina esses problemas. Construir funções para processamento de mensagens pode ser
A camada de conectividade desconhece os elementos no nível do bastante simples. Muitos dos cenários de aplicativos comuns são
aplicativo e os formatos das mensagens. A construção de um instanciações simples de padrões e modelos. Um provedor de ISB
aplicativo composto exige adaptação entre formatos diferentes de oferecerá uma simples ferramenta de desenvolvimento de aplicativo
mensagens implementados pelos serviços conectados. Um exemplo baseada em web que permite aos programadores selecionar modelos
das funções do ISB poderia ser a conversão de parâmetros de um de atividade e definir parâmetros de configuração por meio de um
comando HTTP GET em elementos de uma mensagem XML. O ISB formulário web. No caso do roteamento, o formulário web permitiria
oferece um workflow simples (coreografia do serviço) que fornece ao programador especificar o campo da mensagem para roteamento e
suporte para mapeamento no nível do aplicativo (Figura 5). os valores da respectiva tabela. Com o tempo, os ISBs oferecerão
O ISB oferece um conjunto de "atividades-modelo" para funções ferramentas mais poderosas, como as ferramentas de processamento
simples. Um workflow é um gráfico composto de modelos de atividade de mensagens do BizTalk. O processamento de mensagens
de instanciação. Suponha que a empresa aérea emita status de vôos por (roteamento, conversão, etc.) é suficientemente robusto para muitos
meio de um feed RSS e parte do aplicativo do Dave espera receber cenários de aplicativos. Contudo, para outros cenários, é preciso ter
notificações das atualizações pelo WS-Eventing. A camada de seqüenciamento simples e fluxo de controle. Imagine a tarefa de fazer
conectividade é compatível com a integração de RSS e WS-*. Ainda é uma reserva de hotel em Dallas quando Dave estiver atrasado. Uma
necessário converter a carga da mensagem do formato RSS para o descrição simples do processo poderia ser:
formato de evento XML esperado pelo aplicativo do Dave. Em geral, o
ISB oferecerá um modelo de atividade configurável e reutilizável para o “SOFTWARE COMO SERVIÇO" TOTAL É UM MITO.
mapeamento RSS para XML. TODAS AS SOLUÇÕES SAAS REPRESENTATIVAS
Outro modelo de atividade comum será o roteamento baseado em INCLUIRÃO, EM ALGUM MOMENTO, UM ITEM DE
seleção. O aplicativo do Dave pode emitir uma mensagem de SOFTWARE INSTALADO NO LOCAL: UM HÍBRIDO.
cancelamento: cancel car reservation ID=1234. Se os códigos de reserva
de uma locadora de autos começam com "LE-" e os de outra com "OL",
QUASE TODOS OS CENÁRIOS QUE UTILIZAM ISB
o aplicativo do Dave pode enviar eventos de cancelamento para um E SAAS SÃO, NA VERDADE, HÍBRIDOS DE
único URI ISB. A seguir, o seletor processa a mensagem roteando-a para SOFTWARE INSTALADOS NO LOCAL E
a extremidade correta.
EXTERNAMENTE. SOFTWARE + SERVIÇOS É O
Combinar atividades de processamentos de mensagens mais TERMO PARA O MODELO HÍBRIDO".
complexos pode ser útil e será uma função comum dos ISBs. Como
exemplo, a Figura 6 apresenta as atividades do URL que Dave define 1. Enviar um pedido de reserva para a cadeia de hotel AAA
para recebimento da mensagem de cancelamento da reserva do carro: 2. Receber uma resposta.
1. Recebe a mensagem de cancelamento em XML utilizando WS-*. 3. Se bem-sucedido, sair
2. Possui uma atividade que extrai o elemento de ID da reserva e 4. Enviar um pedido de reserva para a cadeia de hotel BBB
consulta o prefixo em uma tabela.
5. Se bem-sucedido … …

Figura 6: Processamento de mensagem ISB As atividades de workflow ampliam o processamento de


mensagens com modelos de atividades de fluxo de controle
como while, if ... then …, etc. Os ISBs acrescentarão suporte,
por incrementos, para workflow simples para ampliar o
Feed
processamento básico de mensagens.
Serv
Converte Inf. O workflow pode parecer um conceito complexo e as
Autos soluções corporativas de workflow sistemático são robustas
e complexas. Por outro lado, os workflows para aplicativos
Recebe Filtra
específicos e oportunistas, em sua maioria, são
extremamente simples. A estrutura não é significativamente
Nova
Converte Cancela reserva Sucesso mais complexa do que diagramas simples do PowerPoint.
hotel
Existe uma pequena coleção de figuras para conexões e
formatos para que o programador defina propriedades aos
Nova formatos, expressando o comportamento da atividade
reserva Sucesso
hotel
Muitos dos processos de workflow tendem a ter a estrutura
de uma lista aninhada. Isso permite que ferramentas
simples possam construir os XSD simples pode fornecer a
estrutura para documentos XML que definem um workflow

6 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


O Barramento de Serviços para a Internet

Se a empresa reutilizar o aplicativo específico para várias


Figura 7: Um ecossistema e modelo do negócio
conferências, uma solução sistemática poderá emergir da
solução oportunista. A solução oportunista proporciona um
Modelos
conjunto concreto de casos de uso para a solução sistemática.
Instanciar
Fornecedores de Também pode fornecer métricas para determinar quais
software aspectos do aplicativo são utilizados com mais freqüência.
Integradores
Comunidades Feed

Transform
Inform
Car
Terceiros farão a conexão de serviços de valor agregado ao
Service
Feed

Feed

Inform
Receive

Receive
Filter

Transform
Filter
Transform

Feed
Cancel
Inform
Car
Service
New
Hotel
Reservation
Success
ISB. O primeiro tipo serão os serviços de infra-estrutura como
Transform Car Inform
Service New
Transform New
Car

um mecanismo de workflow mais robusto ou um banco de


Transform CancelHotel Hotel
Succes
Service s Success
Reservation Reservation
Receive Filter
Receive Filter
New
New Hotel Success
Transform Cancel Hotel Success Reservation New
Reservation Transform Cancel Hotel Success
Reservation

dados em XML com consulta integrada. Os programadores


New
Hotel Success New
Reservation Hotel Success
Reservation

podem incluir esses serviços em suas soluções conectando-os


Barramento de serviços para Internet aos URIs dos seus aplicativos. Esses serviços de infra-estrutura
são um exemplo de como terceiros podem fazer parte do
... ecossistema fornecendo infra-estrutura avançada como
S1 S2 S3 S3 serviço.
... O segundo tipo serão os serviços reutilizáveis do negócio, por
exemplo, um serviço pré-construído para atualização das
de lista aninhada. Uma ferramenta visual permite ao programador informações e catálogos de produto. Outro exemplo poderia
especificar as atividades e seus implementos ou conexões com serviços ser a programação da sala de conferências para convenções. Como,
externos. Muitos programadores conhecem esse modelo pois os por exemplo, um terceiro que passa a fazer parte do ecossistema pela
frameworks de IU da web quase sempre fornecem um conceito similar adição de um serviço de "bloco de construção" de aplicativo. O
para fluxos e transições de páginas (Struts, por exemplo). aplicativo composto do ISB pode usar o bloco de construção
conectando um URI do aplicativo composto ao bloco de construção.
Quase sempre, as soluções sistemáticas de workflow são complexas
porque são de missão crítica e dão suporte a aplicativos utilizados por Por fim, os integradores do sistema e os fornecedores de soluções
milhares de pessoas. A modelagem e o mecanismo do processo devem oferecerão produtos configuráveis e extensíveis como modelos. Um
ter condições de expressar todas as funções do processo e administrar terceiro pode oferecer uma solução configurável que dá suporte a
condições de erro mais complexas, aprovações, etc. Em contraposição, muitas funções de gerenciamento de conferências/convenções. Um
para soluções mais oportunistas e específicas, um pequeno grupo de fornecedor de aplicativo comercial pode oferecer a vantagem do "teste
pessoas usa o workflow e a equipe está constantemente estudando suas e compre". Em lugar de entregar um CD que exige instalação do
possibilidades para aprimorá-las. aplicativo e pré-requisitos, o provável cliente pode simplesmente
Objetivos de nível de serviço instanciar uma versão na "nuvem".

Empresas que implantam aplicativos no ISB desejarão definir contratos A comunidade é um importante aspecto da Web 2.0. Pode ser, na
de nível de serviço (SLAs) especificando tempo de resposta, taxa de verdade, o aspecto mais importante. Os serviços de infra-estrutura,
transferência, disponibilidade, etc. O SLA determinará o custo cobrado blocos básicos de construção de aplicativos e modelos de solução
pelo provedor de ISB. O problema geral de se executar SLAs para também surgirão em meio a uma comunidade associada com ISBs,
aplicativos arbitrários é enorme. Contudo a tarefa do ISB é mais que oferece e compartilha código. A comunidade também
simples, pois não implanta código de usuário arbitrário. Instanciar e proporciona um fórum de suporte de auto-atendimento e estabelece
configurar modelos pré-construídos para atividades de diretiva, o renome de provedores de "software como serviço".
publicação/assinatura e workflow, por exemplo, restringem os Software + serviços
aplicativos. Isso simplifica executar SLAs, custo previsível e integridade.
"Software como serviço" total é um mito. Todas as soluções SaaS
Uma arquitetura de referência de software + serviços para representativas incluirão, em algum momento, um item de software
aplicativos oportunistas litantes. instalado no local: um híbrido. Alguns elementos de uma solução
A Figura 7 apresenta uma visão geral de extremo alto nível sobre instanciada residirão no barramento (workflows, por exemplo); outros,
como se juntam as peças deste artigo. Primeiramente, o barramento em serviços conectados ao barramento (como um sistema de
de serviços para a Internet é universal e faz a conexão de todos os gerenciamento de conteúdo XML) e alguns serão "instalados" no local.
sistemas e servidores. Haverá muitos aplicativos compostos nos quais
Quase todos os cenários que utilizam ISB e SAAS são, na verdade,
alguns elementos estão no "ESB" e outros, no ISB. Aplicativos
híbridos de software instalados no local e externamente.
compostos multiorganizacionais são um exemplo óbvio que
implantaria elementos em um ISB na "nuvem". Outra possibilidade são Em outro exemplo, imagine um provedor de armazenamento de
os aplicativos compostos uniorganizacionais, de curta duração. Por dados usado por Dave para armazenar os itinerários do seu aplicativo.
exemplo, um aplicativo composto que a empresa utiliza para Ler/atualizar o itinerário sempre por acesso remoto fragiliza o
administrar uma conferência interna. Reutilizar uma plataforma de processo. Provavelmente, o fornecedor de armazenamento fornecerá
software pré-configurada e instalada na "nuvem" pode ser mais um pacote de software instalado no local e no PC para otimizar o
eficiente do que adquirir, instalar, configurar e dar suporte a itens de acesso aos dados por meio de cache, replicação, controle de versões,
hardware e software para executar o aplicativo internamente. etc. Software + serviços é o termo para o modelo híbrido.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 7


O Barramento de Serviços para a Internet

Conclusão Biztalk Labs


Várias tendências se agrupam para transformar de modo radical o http://labs.biztalk.net
modelo de aplicativo web. Atualmente, a web primária possibilita a Enterprise Application Integration (EAI)
conexão de pessoas a documentos e aplicativos. A transformação http://en.wikipedia.org/wiki/Enterprise_application_integration
fundamental trata de imaginar a Internet e a web como uma Barramento de serviço corporativo
plataforma na qual os aplicativos podem ser executados. Os http://en.wikipedia.org/wiki/Enterprise_application_integration
profissionais com habilidades básicas de programação escrevem
Mashup
aplicativos pessoais que aumentam a eficiência do uso que fazem da
http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)
web. Eles compartilharão esses aplicativos com amigos e colegas que
entendem um pouco menos de computadores. Comunidades surgirão Modelo-Visão-Controlador
e proporcionarão outra abordagem da disseminação de uma solução http://en.wikipedia.org/wiki/Enterprise_application_integration
pessoal que se multiplica na comunidade. OASIS Web Services Reliable Messaging (WSRM) TC
Inevitavelmente, os elementos dos aplicativos pessoais se "transferirão www.oasis-open.org/committees/wsrm/
para a nuvem”. A principal fonte será o uso amplo de PCs "virtuais" que SAP RFC
se instalam com base nos dispositivos próximos e do usuário. Em lugar http://en.wikipedia.org/wiki/ABAP
de usar um notebook em um quarto de hotel, o PC se instalará a partir
Processamento direto (STP - Straight-Through-Processing)
do celular do viajante que usará o teclado, a conexão da TV e da
http://en.wikipedia.org/wiki/Enterprise_application_integration
Internet no quarto. É possível instalar uma máquina virtual (VM -
Struts
Virtual Machine) que tenha apenas o software necessário para
http://struts.apache.org/
implementar um cenário específico. A VM ainda oferece:
Casos de uso
"
isolamento do aplicativo;
http://en.wikipedia.org/wiki/ABAP
"
administração do usuário final da implementação de um modelo WS-Eventing
conceitual similar ao modo como o usuário gerencia Pcs; http://www.w3.org/Submission/WS-Eventing/
"
exploração natural de processadores escalados com base em WS-Security Security Token Service
processadores de vários núcleos. http://sts.labs.live.com/
As vantagens para a empresa da convergência dessas tendências Zorro's ISB Blog
inclui: http://zorroisb.spaces.live.com
"
aprimoramento significativo na produtividade e no moral do
funcionário. O trabalho fica menos entediante, mais concentrado nas
Sobre os autores
tarefas importantes do negócio e, provavelmente, mais divertido.
Maior agilidade e capacidade de ação pois o desenvolvimento e a Dr. Donald Ferguson é Technical Fellow da Microsoft em plataformas
modificação do aplicativo podem acontecer em horas, não em meses. e estratégia na função de CTO. O seu enfoque está no papel evolutivo
e revolucionário da tecnologia da informação nos negócios. Antes de
Uma tecnologia-chave que possibilitará essas transformações será um
ingressar na Microsoft, Don era Fellow da IBM e arquiteto-chefe do
barramento de serviços para a Internet. A SOA, os Web Services e
grupo de software do SWG (Software Group) da IBM e presidiu o SWG
mashups permitem o rápido desenvolvimento de aplicativos
Architecture Board (SWG AB) que se concentrava na integração de
compostos que integram, personalizam e ampliam os blocos de
produtos, iniciativas de produtos inter-relacionados e tecnologia
construção dos aplicativos básicos. Possibilitar que esses compostos
emergente incluindo Web Services, padrões, Web 2.0 e
cheguem à web é o próximo maior salto e um aspecto primordial da
desenvolvimento dirigido a negócio. O principal hobby de Don é
Web 2.0. O elemento crítico para cumprimento da promessa é um
caratê (Kenpo). Em dezembro de 2005 ele tornou-se faixa preta.
barramento de serviços para a Internet. Além disso, para permitir o
desenvolvimento de um aplicativo flexível, o ISB permite a existência Dennis Pilarinos é diretor técnico sênior de Connected Systems, uma
de um ecossistema de provedores de software. As capacidades do ISB divisão da Microsoft. Para conhecer outros detalhes do trabalho que
oferecem suporte à emergente população de profissionais com ele realiza, visite o seu blog em www.dennispi.com.
conhecimentos de programação admitidos na força de trabalho, John Shewchuk dirige a equipe de estratégia de tecnologia de
especialmente o desenvolvimento crescente pela comunidade de Connected Systems (CSD), uma divisão da Microsoft. Na CSD, John
aplicativos tipo cauda longa (long tail) trabalhou no desenvolvimento da plataforma de aplicativos da
(http://www.microsoft.com/brasil/msdn/Tecnologias/arquitetura/Long Microsoft inclusive nas tecnologias de troca de mensagens como o
Tail.mspx). A teoria unificadora do universo computacional é a de produto Windows Communication Foundation, especificações para a
software + serviços e o ISB é a pedra fundamental desse novo modelo interoperabilidade de Web Services como o WS-Security e em
de aplicativo. tecnologias de identidade e acesso como o InfoCard. John foi co-
fundador da equipe Indigo e foi um condutor-chave da
interoperabilidade entre setores. Com outros componentes da equipe
Referências
Indigo, John liderou o desenvolvimento da arquitetura e das
BizTalk Adapter especificações dos Web Services e gerenciou as negociações técnicas
http://msdn2.microsoft.com/EN-US/library/aa744368.aspx com ampla gama de parceiros do setor.

8 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Perfil do The Architecture
Journal: Ray Ozzie

Ray Ozzie é arquiteto-chefe de software da Microsoft, e


assumiu a função de Bill Gates em junho de 2006.
Coincidindo com o tema desta edição do The
Architecture Journal, nós nos encontramos com Ray para
saber qual é a sua visão do tema software + serviços e
conhecer algumas de suas idéias sobre o que é tornar-se
um arquiteto de software
AJ: Muitos leitores talvez tenham ouvido o seu discurso na MIX
deste ano sobre software + serviços. Poderia dissertar um pouco
sobre a sua visão?
RO: Existem mudanças fundamentais que continuamente acontecem
em nosso setor, com relação ao preço dos diferentes tipos de
componentes e o custo da comunicação. Há cerca de cinco anos, mais
ou menos, descobrimos a necessidade de reavaliar as arquiteturas
corretas para sistemas baseados nas mudanças que ora ocorrem. Hoje,
a confluência do processamento barato, com o armazenamento
barato e as comunicações baratas está nos forçando a reavaliar a
posição em que colocamos a computação para produzirmos soluções
e resolvermos problemas. armazenam suas músicas, etc. Até as câmaras de vídeo digitais estão
Inicialmente, a web foi construída para um mundo de largura de aumentando. Isso quer dizer que todos os seus filmes pessoais estarão
banda de baixa velocidade, utilizando cliente magro ou terminal nos PCs? Ou replicados entre os seus PCs? Acredito que esta é uma
smart, e assumiu largura de banda bastante lenta sendo a maior parte enorme oportunidade para o nosso setor de estudar, solução por
do poder de computação aplicado ao nível de serviço. Na era cliente- solução, e perguntar qual a melhor forma de equilibrar o uso de
servidor, tivemos uma rede de largura de banda de alta velocidade no código de cliente e serviço.
âmbito corporativo que equilibrou o processamento no cliente e no AJ: Parece que muitas dessas soluções se ajustariam a um
servidor. Em vista das mudanças em computação, armazenamento e espectro de clientes baseados em navegador e interação rica. No
comunicações, como setor e empresa, estamos refletindo sobre o valor âmbito desse espectro você vislumbra o surgimento de tipos de
que entregamos aos nossos clientes e analisando qual a melhor forma padrões arquiteturais diferentes?
de equilibrar o que acontece no cliente, no servidor corporativo e nos
RO: Vários padrões estão surgindo, embora não saibamos, ainda, o
serviços para atender aos vários cenários. que serão exatamente. Os padrões para escala horizontal são os mais
Estamos passando por uma mudança bastante radical no modo de desafiadores e interessantes neste momento, acredito. O que está
produzirmos soluções. Acredito, verdadeiramente, que a resposta muito claro é que, para qualquer serviço de alta escala, é preciso ter
nunca está nos extremos, a não ser que realmente haja forte restrição, em mente a imagem de uma máquina virtual que você escala de
como um canal de comunicação magro. Existem algumas soluções acordo com as suas necessidades. Neste momento, refatorar o seu
que serão entregues como serviços puros. Basta ir a um navegador: aplicativo para uma expansão horizontal e não vertical, fazendo-o
também extensível em termos de escopo muito largo ou estreito é,
você realiza a transação, obtém as informações desejadas e faz o que
provavelmente, o mais interessante.
precisa ser feito. Existem outras situações nas quais, estando em
trânsito, a conectividade com a Internet é menos confiável Determinados padrões de projeto, como MapReduce, são, claramente,
dependendo do local. Nesses ambientes, o extremo oposto é padrões de projeto escaláveis horizontalmente, mas estes resolvem um
conjunto relativamente pequeno de problemas se comparado ao
verdadeiro: você deseja transportar o maior volume de dados possível
grande número de aplicativos corporativos que temos hoje em dia.
no seu enorme disco rígido e ter pronto acesso a ele.
Com o tempo, finalmente, descobriremos um meio termo e
Por exemplo, no começo o PC armazenava principalmente acabaremos com frameworks que pensam sobre seu aplicativo em
documentos. Agora, lógico, tudo tem a ver com a mídia. As pessoas camadas. Essas camadas, desde que ajustadas ao padrão, devem ser
tiram fotos digitais, carregam enormes bibliotecas nos discos rígidos, escaláveis horizontalmente.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 9


Perfil do The Architecture Journal: Ray Ozzie

AJ: Na medida em que esses padrões surgem ou os frameworks programar na década de 1960 e, nesse tempo, havia um modelo de
são disponibilizados, na sua opinião, qual a diferença da visão programa na cabeça da gente. Começava com o comando main e a
software + serviços dos consumidores em relação à visão das partir daí você escrevia. Em dado momento, o comando passou a ser
corporações? WinMain e transformou-se mais em um modelo baseado em evento.
O novo modelo de programação começa quando você pensa em um
RO: Essa é uma boa pergunta. Não tenho certeza de que os padrões
modelo declarativo, iniciando com XAML e uma tela para construir o
sejam todos assim tão diferentes, exceto a única coisa na empresa que
seu aplicativo nessa base.
não existe no espaço do consumidor: o servidor corporativo. Se você
estiver na empresa e construir sistemas para seus clientes, será igual a "NESTE MOMENTO, REFATORAR O SEU
construir sistemas para consumidores. Se estiver construindo para
APLICATIVO PARA UMA EXPANSÃO HORIZONTAL
funcionários, haverá mais problemas de integração de sistemas.
Provavelmente você desejará construir soluções com algum tipo de E NÃO VERTICAL, FAZENDO-O TAMBÉM
afinidade com outro servidor local, na mesma geografia, e localizar EXTENSÍVEL EM TERMOS DE ESCOPO MUITO
esses servidores com base em padrões de acesso a dados pode ser LARGO OU ESTREITO É, PROVAVELMENTE, O
bastante significativo. Mas, com o tempo, cada vez mais vejo empresas
MAIS INTERESSANTE".
adotarem a prestação de serviços; inicialmente para infra-estrutura
como serviços de e-mail e outros de nível básico, antes de passar para Este novo modelo é diferente: a gente começa fazendo o protótipo
os aplicativos corporativos. com ele, sem imaginar o poder e o nível de produtividade que se
adquire assim que adotar esta nova forma de pensar. A prototipagem
AJ: Na medida em que os leitores pensam mais sobre adotar o
o leva para uma nova perspectiva em que se começa a pensar...
modelo software + serviços, onde devem começar hoje? E como
"Nossa"! Agora entendo como pude construir algo em Silverlight e
saberão que serão bem-sucedidos?
implantá-lo rapidamente em todos os sistemas com um navegador".
RO: Vou começar pela última. Se estiverem tentando alcançar metas e Seguir essa abordagem será muito mais fácil do que descobrir como
objetivos, serão bem-sucedidos. Agora, quanto a onde começar, no escrever em JavaScript para os vários tipos de navegadores.
meu ponto de vista, recomendaria tornar-se extremamente fluente em
AJ: Você mencionou uma relação entre designers e
tecnologias, tanto da perspectiva de desenvolvedor como de designer.
Para a plataforma Microsoft, isso significa entender de Expression desenvolvedores. Historicamente, eu diria que esses profissionais
Studio e Visual Studio. Depois, continue, explore e faça protótipos de não se comunicaram tão bem quanto deveriam. Você vê
coisas em WPF (Windows Presentation Foundation) no Vista: é uma mudanças nesse comportamento com essa nova onda
ferramenta surpreendentemente robusta. Como você sabe, comecei a tecnológica?

Ray Ozzie
Arquiteto-chefe de estratégia (CSA), Microsoft Corporation
Ray Ozzie, visionário do setor e esteve envolvido com o desenvolvimento dos primeiros sistemas
pioneiro no trabalho cooperativo operacionais distribuídos da Data General Corp.
apoiado por computador, é
Ray formou-se em ciência da computação pela University of Illinois,
arquiteto-chefe de software da
Urbana-Champaign, e lá conheceu a natureza e o significado dos
Microsoft. Ray assumiu o cargo de
sistemas colaborativos e o trabalho em equipe apoiado por
arquiteto-chefe de software em
computador durante o trabalho desenvolvido no projeto
junho de 2006, quando o
Ray Ozzie embrionário da universidade denominado PLATO. Esse trabalho teve
presidente Bill Gates anunciou seu
desejo de abdicar de suas grande influência na sua visão dos sistemas colaborativos e nos
responsabilidades diárias na Microsoft até julho de 2008. No seu projetos que assumiu em toda a sua carreira. Ao final do curso, teve
cargo de CSA, Ray é responsável pela supervisão da estratégia a honra de ser reconhecido como um dos melhores alunos da
técnica e a arquitetura de produtos da empresa. Ray também escola.
supervisiona o desenvolvimento da próxima geração de plataformas Reconhecido também como um dos sete "Pioneiros do Windows",
de serviços de software da empresa. Ray foi nomeado "Pessoa do ano" em 1995 pela PC Magazine, e foi
Anteriormente, de abril de 2005 a junho de 2006, Ray era executivo conduzido ao Hall da Fama do Computer Museum Industry e ao
de infra-estrutura da área de tecnologia (CTO – Chief Technology Hall da Fama do InfoWorld. Em novembro de 2000 ele recebeu o
Officer). Assumiu o seu cargo em abril de 2005, depois que a prêmio W. Wallace McDowell do Institute for Electrical and
Microsoft adquiriu a Groove Networks, uma empresa de software Electronics Engineers (IEEE) Computer Society e, em 2001, foi
colaborativo de próxima geração fundada por ele em 1997. considerado um pioneiro em tecnologia do World Economic Forum.
Antes da Groove, Ray fundou e era presidente da Iris Associates, Atuou como membro do Computer Science and
empresa na qual criou e liderou o desenvolvimento do Lotus Notes. Telecommunications Board do Nacional Research Council e fez parte
Antes disso, contribuiu para o desenvolvimento do Lotus Symphony do comitê do NRC, que produziu o memorável relatório CRISIS
e dos produtos TK!Solver e VisiCalc da Software Arts; além disso, sobre o impacto social da criptografia.

10 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Perfil do The Architecture Journal: Ray Ozzie

RO: Em qualquer solução efetiva que tenha um elemento de projeto, EQUILÍBRIO CERTO DO ENFOQUE SOBRE
ambos precisarão encontrar uma forma de entender-se. Não há nada
TENDÊNCIAS INTERNAS E EXTERNAS QUE LHE
que a Microsoft possa fazer para mudar o DNA, ou seja, o tipo de
pessoa que é um designer ou um desenvolvedor. DARÃO A PERSPECTIVA QUE PRECISA".
O que eu tenho observado é que desenvolvedores e designers se AJ: Você está no setor de software há mais de 25 anos e,
esforçam de formas diferentes. Alguns designers podem se aprofundar nitidamente, é uma apaixonado por software e tecnologia. O que
no entendimento dos desafios enfrentados pelos desenvolvedores. E mantém a constante motivação? O que o motiva a se levantar
alguns desenvolvedores podem entender mais efetivamente os pela manhã?
desafios enfrentados pelos designers. Ter ferramentas onde há
RO: Gosto de resolver problemas. Gosto do que é complexo e de
sobreposição, onde não existe uma fronteira absoluta entre uma
tecnologia. Tenho tido sorte porque logo no início da minha carreira
ferramenta de programação e outra, de desenvolvimento, é
extremamente importante e útil. O núcleo do Microsoft Expression tive a oportunidade de trabalhar em sistemas implantados em larga
está realmente orientado para o designer. O trabalho realizado pelos escala. Assim, de certa forma, sou um escravo do pensamento de
programadores traduz-se em XAML, o qual pode ser importado e causar um grande impacto nas coisas que fazemos. Cada indivíduo
usado no Visual Studio por um desenvolvedor. Estou entusiasmado e acorda pela manhã com diferentes motivações. Para mim, trata-se de
otimista sobre como ferramentas como essa unirão desenvolvedores e ser um construtor. Gosto de resolver problemas que possam
designers resultando em benefício para o usuário. influenciar positivamente as vidas das pessoas.

AJ: Atualmente, temos vários leitores do The Architecture Journal AJ: Imagino que para fazer isso você deve ter um grande cabedal
ocupando cargos de desenvolvedores que aspiram tornar-se em várias tecnologias. Posto isso, e considerando as equipes de
arquitetos de software. Tendo em conta as suas produto com as quais interage diariamente, como você se
responsabilidades, como é o dia na vida de um arquiteto-chefe mantém atualizado?
de software da Microsoft? RO: É realmente uma combinação interessante. A coisa mais fácil e
RO: No meu ponto de vista, a profissão de arquiteto trata de natural é simplesmente falar com as pessoas na sua área de influência
compatibilizar padrões. Refere-se a estar exposto a ferramentas e e entrar em contato com várias tecnologias, como parte do seu
técnicas do ramo suficientes para que, com o tempo, você comece a trabalho. Mas, para ter sucesso a longo prazo, é preciso estar em
desenvolver um conjunto de padrões diferentes que trabalham em contato com as tendências e com o que está acontecendo
diferentes situações. Isso é válido para a arquitetura de software e, externamente, especialmente saber o que os clientes ou cada um dos
provavelmente, também para outros tipos de arquitetura. Quer você usuários está dizendo e fazendo.
construa pontes ou projete edifícios, está tentando aplicar padrões a Dedico boa parte do meu tempo à leitura de blogs, acompanhando
uma determinada situação. influenciadores específicos cujas opiniões são muito interessantes,
O meu cargo na Microsoft é interessante porque existem arquitetos de tanto as relacionadas aos nossos produtos como aquelas totalmente
peso nos diferentes grupos de produtos, nas várias divisões da dissociadas.
empresa e eles estão realizando um ótimo trabalho com os seus Compareço a uma combinação de conferências que denomino
produtos. O meu papel é essencialmente relacional. Quero dizer, devo "cabeça" e "cauda". Durante o ano, participo de algumas em que se
entender como os clientes estão utilizando os vários produtos juntos reúnem os influenciadores conhecidos do setor. Essas me permitem
e, depois, me pergunto quais os padrões que vejo. Qual é a menor rastrear as principais questões da concorrência ou, no mínimo,
coisa possível que eu poderia sugerir para uma equipe de produto, conhecer as apresentações do que os concorrentes estão falando e
para que pudesse refazer a arquitetura do produto para minimizar os
fazendo. Mas, eu também aprecio as conferências de cauda, onde é
pontos de contato com outros produtos? Ou, por uma perspectiva do
possível ter uma noção mais próxima do que realmente está
negócio, qual a menor coisa possível que seria possível passar para
acontecendo. Gosto de encontrar pessoas recém-formadas, que têm
esses produtos para agregar valor para os nossos clientes e criar uma
idéias e entendem os tipos de escolhas tecnológicas que fazem e por
vantagem competitiva para as nossas soluções no mercado. No nível
quê. No nível mais alto, meu conselho ao arquiteto aspirante é
mais alto, meu conselho aos arquitetos aspirantes é o seguinte: pense
descobrir o equilíbrio certo do enfoque sobre tendências internas e
duas vezes. É preciso passar um tempo como programador para
externas que lhe darão a perspectiva que precisa.
entender os vários padrões existentes e reconhecer os atributos de
sistemas bem arquitetados para, então, passar para o próximo nível de AJ: Esse é, sem dúvida, um ótimo conselho. Em relação a isso, na
abstração das soluções que você estiver construindo. sua opinião, quais são as características que definem um
AJ: Parece, então, que a habilidade de compatibilizar padrões arquiteto de software eficiente?
deve realmente passar pela experiência? RO: Os arquitetos mais eficientes com os quais já trabalhei são aqueles
RO: Totalmente. Trata-se especialmente das coisas que ninguém gosta que cumpriram suas obrigações. São aqueles que passaram muito
de pensar no nível arquitetural. Por exemplo, características de tempo nas "trincheiras" construindo e depurando sistemas bastante
desempenho, E/S, confiabilidade... Você pode ter tido experiência com complexos. Aprende-se muitas coisas consertando os defeitos das
um sistema que trabalha bem, frente a determinado nível de outras pessoas. Quando alguma coisa falha e o responsável já saiu da
complexidade, mas se utilizado em um ambiente mais dinâmico empresa, é possível aprender muito fazendo engenharia reversa ou
poderia apresentar-se muito frágil. Isso só se aprende com a estudando a documentação. Quanto mais sistemas você puder
experiência. conhecer pelo lado de dentro, mais será possível desenvolver e
entender o que são boas e más práticas em padrões de programação.
"NO NÍVEL MAIS ALTO, MEU CONSELHO AO Como disse antes, é essa biblioteca de padrões da sua mente que o
ARQUITETO ASPIRANTE É DESCOBRIR O definirá como um arquiteto.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 11


Projeto Astoria

por Pablo Castro

Resumo Ainda que a infra-estrutura de software oferecida pelo Astoria possa


ser uma peça útil do quebra-cabeça para a construção de novos
O projeto Astoria produz um conjunto de padrões e aplicativos e serviços web, é apenas uma peça. Outros elementos
também uma infra-estrutura concreta para a criação e o desses aplicativos precisam ser organizados para permitir a interação
consumo de serviços de dados utilizando tecnologias da com dados pela web.

web. Este artigo explora a mudança dos modernos Neste artigo, tratarei dos aspectos arquiteturais que sofrem o impacto
das abordagens modernas do desenvolvimento de aplicativos
aplicativos e serviços web centralizados e o papel que o
preparados para web, com enfoque em como os serviços de dados se
Astoria pode desempenhar nessas novas arquiteturas. integram no quadro.

O s dados tornam-se cada vez mais disponíveis, como um


elemento de primeira classe na web. A proliferação de novos
tipos de aplicativos dirigidos a dados, como os mashups, indica
Separando os dados da apresentação
A nova geração de aplicativos web utiliza tecnologias como AJAX,
Microsoft Silverlight ou outras infra-estruturas de apresentação rica.
claramente que a ampla disponibilidade de dados auto-suficientes, Uma característica comum de todas essas tecnologias é que elas
independentes de qualquer IU, está mudando a forma com que os impõem uma mudança com respeito à forma com que os aplicativos
sistemas são construídos e, também, o aproveitamento dos dados. web são construídos.
Mais ainda, tecnologias como a do Asynchronous JavaScript and XML A Figura 1 compara o fluxo de conteúdo nos tipos tradicional e
(AJAX) e do Microsoft Silverlight estão introduzindo a necessidade de moderno de aplicativos web. Aplicativos web tradicionais dirigidos a
mecanismos para a troca de dados independentemente da dados compreendem, tipicamente, um conjunto de páginas ou scripts
apresentação de informações para dar suporte a experiências de do lado do servidor, executado quando chega uma solicitação;
usuário altamente interativas. durante o processo, as páginas ou scripts executam algumas consultas
ao banco de dados e, então, processam o HTML que contém
O projeto Astoria oferece a arquitetos e desenvolvedores um conjunto
informações de apresentação e dados nele incorporados.
de padrões para a interação com serviços de dados sobre HTTP
utilizando formatos simples como POX (Plain Old XML) e JavaScript Um aplicativo baseado em AJAX ou Silverlight não segue esse modelo
de interação. As informações de apresentação são despachadas para o
Object Notation (JSON). O cumprimento à risca do protocolo HTTP
navegador web com o código para acionar a IU, mas sem os dados
resulta em excelente integração com a infra-estrutura existente de
verdadeiros. Essas informações de apresentação são, em geral, uma
web, da autenticação a proxies e cache. Além dos padrões e formatos, combinação de aplicativos HTML, Cascading Style Sheets (CSS),
fornecemos uma implementação concreta que pode fazer surgir JavaScript for AJAX e Extensible Application Markup Language
automaticamente um esquema de modelo de dados de entidades (XAML)/ DLLs para Silverlight. Depois que o código está ativo e em
(EMD - Entity Data Model) ou outras fontes de dados por meio da execução no cliente, a IU inicial é apresentada e os dados são
interface HTTP. recuperados na medida em que o usuário interage com a interface.

Figura 1: Fluxo de conteúdo tradicional (à esquerda) e como o fluxo se modifica nos aplicativos web modernos (á direita)

Dados
010
1
010 01
1
101 00
Servidor Web 1
101
011
0 Servidor Web
0 10

Cliente Cliente
Apresentação + Apresentação
dados (por (por exemplo, HTML)
exemplo, HTML
com dados
incorporados)

Servidor de Servidor de
banco de dados banco de dados

12 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Projeto Astoria

Curiosamente, este novo ciclo de tecnologias está agindo como uma As etapas detalhadas para a criação de serviços de dados Astoria,
função de força para transferir a organização do aplicativo na direção assim como farta documentação sobre o URI Astoria e os formatos de
de uma meta comum em muitas arquiteturas de aplicativos: separação carga podem ser encontrados no documento “Using Microsoft
rígida entre dados e apresentação. Codename Astoria”, disponível no website Astoria no endereço
Pela perspectiva do servidor, apresentar os elementos da IU é http://astoria.mslivelabs.com.
relativamente fácil. Na maioria das vezes, são simples recursos de Depois que o serviço estiver ativo e operacional, os URIs poderão ser
arquivo no servidor, como arquivos HTML ou CSS e arquivos de mídia. utilizados para examinar os recursos expostos pela interface de dados.
Apresentar os dados é outra história. Até agora, a interação com Os exemplos a seguir utilizam o serviço experimental do Astoria on-
dados era algo que acontecia entre o servidor web e o servidor do line que hospeda alguns serviços de dados read-only. Por exemplo:
banco de dados; não havia necessidade de expor pontos de entrada http://astoria.sandbox.live.com/northwind/northwind.rs
acessíveis do código, executado em toda a web, em um navegador e/Customers
web ou algum outro agente de software. É neste ponto que entra o retornaria todos os recursos do container recurso de clientes. No
projeto Astoria. formato XML-padrão, teria esta aparência:
Interfaces de dados flexíveis
<DataService xml:base=”http://astoria.sandbox.live.
Há várias formas de expor dados aos clientes que os consumirão pela com/northwind/northwind.rse”>
web. Uma abordagem, possibilitada pelas tecnologias existentes, é <Customers>
usar uma conduta similar à chamada de procedimento remoto (RPC - <Customer uri=”Customers[ALFKI]”>
<CustomerID>ALFKI</CustomerID>
Remote Procedure Call): as funções são expostas por meio da interface
<CompanyName>Alfreds Futterkiste</CompanyName>
como os Web Services (por exemplo, interface baseada no protocolo <ContactName>Maria Anders</ContactName>
SOAP ou uma convenção simples baseada em UTI para chamar <ContactTitle>Sales Representative</ContactTitle>
métodos e parâmetros de transferência). O Microsoft Visual Studio <Address>Obere Str. 57</Address>
oferece um conjunto de ferramentas comprovado, que facilita criar e <City>Berlin</City>
<Region />
consumir interfaces construídas dessa forma. O conjunto de
<PostalCode>12209</PostalCode>
ferramentas do ASP.NET AJAX leva isso para o próximo nível, <Country>Germany</Country>
permitindo que Web Services criados com o Visual Studio trabalhem <Phone>030-0074321</Phone>
com clientes AJAX. <Fax>030-0076545</Fax>
<Orders href=”Customers[ALFKI]/Orders” />
O principal problema desta abordagem é a flexibilidade. Se a interação
</Customer>
com dados acontece apenas por meio de pontos de entrada fixos e <Customer uri=”Customers[ANATR]”>
predefinidos, qualquer cenário novo ou variação dos existentes, com ...properties
dados pouco diferentes, exigirá, tipicamente, a criação de novos
</Customer>
pontos de entrada. Ainda que este nível de controle seja conveniente ...more customer entries
em determinadas ocasiões, na maioria dos casos, maior flexibilidade </Customers>
aumentará a produtividade do desenvolvimento e contribuirá para um </DataService>
aplicativo mais dinâmico.
Pode-se também apontar para uma entidade específica utilizando
O projeto Astoria apresenta uma alternativa à abordagem RPC,
estas chaves:
baseada na semântica simples do HTTP. O Astoria adota uma definição
http://astoria.sandbox.live.com/northwind/northwind.rs
de esquema que descreve cada uma das entidades com as quais o seu
e/Customers[ALFKI]
aplicativo lida, mais as associações entre entidades expondo-as sobre
retornaria um recurso de cliente específico; novamente, utilizando o
uma interface HTTP. Cada entidade pode ser endereçável com um
formato XML no exemplo:
identificador de recurso uniforme (URI - Uniform Resource Identifier) e
a convenção do URI permite aos aplicativos atravessar as associações <DataService xml:base=”http://astoria.sandbox.live.
entre entidades, pesquisar entidades e executar outras operações com/northwind/northwind.rse”>
normalmente exigidas com dados. <Customers>
<Customer uri=”Customers[ALFKI]”>
A definição do esquema utilizado pelo Astoria é o esquema de <CustomerID>ALFKI</CustomerID>
modelo de dados de entidades (EMD - Entity Data Model), <CompanyName>Alfreds Futterkiste</CompanyName>
diretamente compatível com o ADO.NET Entity Framework. O Entity <ContactName>Maria Anders</ContactName>
Framework também inclui um robusto mecanismo de mapeamento <ContactTitle>Sales Representative</ContactTitle>
<Address>Obere Str. 57</Address>
que permite aos desenvolvedores mapear o esquema EDM em um
<City>Berlin</City>
banco de dados relacional para o armazenamento efetivo. <Region />
Para demonstrar a interação com os serviços do Astoria, utilizarei um <PostalCode>12209</PostalCode>
exemplo com base no conhecido banco de dados Northwind. É <Country>Germany</Country>
possível configurar um serviço de dados sobre o Northwind criando <Phone>030-0074321</Phone>
<Fax>030-0076545</Fax>
um aplicativo ASP.NET, importando o esquema Northwind do banco <Orders href=”Customers[ALFKI]/Orders” />
de dados em um esquema EDM, por meio do assistente ADM e,
</Customer>
depois, criar um serviço de dados Astoria voltado para aquele </Customers>
esquema EDM. </DataService>

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 13


Projeto Astoria

Se o URI apontar para um recurso específico, como o que acabamos inclui um URI que representa o seu local canônico (no atributo do URI
de discutir, é possível não apenas recuperar o recurso utilizando um do elemento "Customer" acima).
comando HTTP GET, mas também atualizá-lo, utilizando HTTP PUT, ou Interação com dados da camada de apresentação
excluí-lo utilizando HTTP DELETE.
Existem várias opções para interação com fontes de dados da camada
Como a descrição do esquema fornecido ao Astoria inclui associações
de apresentação. O primeiro aspecto que definirá o escopo das
entre as entidades, estas podem também ser aproveitadas na interface
opções disponíveis para um determinado cenário é a natureza do
HTTP. Continuando com o exemplo, se cada recurso de cliente estiver
cliente (por exemplo, navegador vs cliente rico).
associado a um conjunto de recursos de pedidos, o seguinte URI
representará o conjunto de pedidos relacionado a um determinado Como a interface do Astoria é apenas HTTP puro, quase todos os
cliente: ambientes com biblioteca de cliente em HTTP podem ser utilizados
para consumir serviços de dados. A interface foi especificamente
http://astoria.sandbox.live.com/northwind/northwind.rs
e/Customers[ALFKI]/Orders projetada para ser fácil de usar no nível HTTP; os padrões de URI são
simples e legíveis por humanos e os formatos de carga usam JSON ou
Além de ser capaz de apontar para recursos específicos e listar os um subconjunto de XML que o mantém direto e simples.
recursos de um container, também é possível filtrar, ordenar e paginar Para aplicativos .NET, o conjunto de ferramentas Astoria inclui uma
os dados para facilitar a criação de IUs sobre o serviço de dados. Por biblioteca de cliente executável no ambiente do .NET Framework e
exemplo, para listar todos os recursos de clientes da cidade de
apresenta resultados provenientes dos serviços Astoria como objetos
Londres, ordenados pelo nome do contato, o aplicativo pode usar este
.NET; não apenas é o mais fácil para os desenvolvedores, para uso no
URI:
âmbito da base de códigos do aplicativo cliente, mas também se
http://astoria.sandbox.live.com/northwind/northwind.rs integra bem com componentes que já operam sobre objetos .NET
e/Customers[City eq 'London']?$orderby=ContactName normais. A biblioteca oferece serviços ricos como gerenciamento de
gráfico, rastreamento de modificações e tratamento de atualizações.
O formato real do URI do Astoria ainda pode estar sujeito a mudanças,
(Vide Exemplo 1.)
mas a semântica e as capacidades devem permanecer relativamente
estáveis. A biblioteca de cliente do Astoria é executável tanto no .NET
Framework como no Microsoft Silverlight. Isso permite a criação de
Em qualquer dos casos, os dados são trocados em formatos simples
como XML ou JSON. O formato real pode ser controlado pelo cliente- aplicativos de desktop e baseados no Silverlight utilizando a mesma
agente utilizando negociação do tipo de conteúdo HTTP normal. Os API, por simples referência ao respectivo conjunto Astoria no
dados são codificados como recursos que simplesmente mapeiam ambiente de destino.
propriedades de entidades EDM em elementos XML ou propriedades
JSON, as quais estão vinculadas por hyperlinks a outros recursos com Exemplo 1: Acessar um serviço Astoria do código .NET utilizando a
os quais estão associadas. Por exemplo, o URI do exemplo anterior: biblioteca de cliente do Astoria
http://astoria.sandbox.live.com/northwind/northwind.rs
e/Customers[ALFKI]
WebDataContext ctx = new WebDataContext(
resultaria na seguinte resposta (em XML): “http://astoria.sandbox.live.com/
Northwind/Northwind.rse”);
<DataService xml:base=”http://astoria.sandbox.live.
WebDataQuery<Customer> customers = ctx.
com/northwind/northwind.rse”>
CreateQuery<Customer>(“/Customers?$orderby=CompanyNa
<Customers>
me”);
<Customer uri=”Customers[ALFKI]”>
foreach(Customer c in customers) {
<CustomerID>ALFKI</CustomerID>
Console.WriteLine(c.CompanyName);
<CompanyName>Alfreds Futterkiste</CompanyName>
<ContactName>Maria Anders</ContactName>
}
<ContactTitle>Sales Representative</ContactTitle>
<Address>Obere Str. 57</Address>
<City>Berlin</City>
<Region />
<PostalCode>12209</PostalCode>
<Country>Germany</Country>
<Phone>030-0074321</Phone>
<Fax>030-0076545</Fax>
<Orders href=”Customers[ALFKI]/Orders” />
</Customer>
</Customers>
</DataService>

Você pode ver que a resposta inclui propriedades simples e hyperlinks


com outros recursos (“Orders” no exemplo). Cada recurso também

14 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Projeto Astoria

Exemplo 2: Acessar um serviço Astoria de um aplicativo AJAX (o Exemplo 3: Utilizar a API assíncrona no cliente Astoria para .NET
exemplo usa a biblioteca ASP.NET AJAX)
WebDataContext ctx = new WebDataContext(
function ListCustomers() { “http://astoria.sandbox.
live.com/Northwind/Northwind.rse”);
var req = new Sys.Net.WebRequest();
req.set_url(“Northwind.svc/Customers?$orderby=Co WebDataQuery<Customer> q = ctx.
mpanyName”); CreateQuery<Customer>(“/Customers[City eq 'London']”);
req.get_headers()[“Accept”] = “application/json”;
req.add_completed(onCustomersCompleted); q.BeginExecute(
req.invoke(); delegate(IAsyncResult ar)
{
} foreach (Customer c in q.EndExecute(ar)){
// process each customer
function onCustomersCompleted(response) { }
if(response.get_statusCode() != 200) },
alert(“Error retrieving customers: “ + null);
response.get_responseData());
Para tratar do requisito que permite a introdução da lógica do
else {
var res = response.get_object(); negócio, rigidamente vinculada a determinadas peças de dados, o
var html = “<ul>”; Astoria é compatível com dois mecanismos de personalização:
for(var i = 0; i < res.length; i++) { operações e interceptores de serviço.
html += “<li>” +
res[i].CompanyName + “</
O serviço padrão do Astoria consiste inteiramente em containers de
li>”; recursos localizados nos pontos de entrada do gráfico de recursos
como, por exemplo, /Customers (clientes) ou / Products (produtos).
} Além desses, os desenvolvedores podem definir as operações de
html += “</ul>”; serviço que encapsulam a lógica do negócio e as consultas. Por
exemplo, em um determinado aplicativo, talvez não se queira listar
// “Customers” is a DIV element defined in
the HTML document todos os clientes; em lugar disso, o aplicativo poderia oferecer um
$get(“Customers”).innerHTML = html; ponto de entrada para listar os "meus clientes" e, ainda assim, poderia
} haver um requisito em que os usuários pudessem recuperar, de cada
} vez, os clientes de uma determinada cidade. O desenvolvedor pode
No caso dos aplicativos web estilo AJAX, a maioria dos frameworks definir uma operação de serviço "MyCustomersByCity" (meus clientes
AJAX inclui invólucros fácil de usar para acesso de HTTP para recursos por cidade), que obtém a identidade dos usuários do contexto (da
externos. Esses invólucros são até compatíveis com a materialização da propriedade ASP.NET's HttpContext.User, por exemplo), e depois
resposta em objetos JavaScript se você indicar que a resposta será formular uma consulta que fatore a identidade do usuário e o nome
dada no formato JSON. (Vide Exemplo 2.) da cidade, transferida como um argumento. Por exemplo:
Independentemente do tipo, os aplicativos serão executados em [WebGet]
ambientes com latência relativamente alta entre o cliente e o serviço public static IQueryable<Customer> CustomersByCity(No
de dados, portanto o uso de técnicas típicas de execução assíncrona rthwindEntities db, string city)
{
deverá ser a norma. A API cliente tem suporte incorporado para
execução de requisição assíncrona. Para o caso de aplicativos AJAX, a if (city == null || city.Length < 3) throw new
interface XMLHTTP, com a maioria dos invólucros, oferece suporte Exception(“bad city”);
para requisições de envio de modo assíncrono. (Vide Exemplo 3.)
var q = db.Customers.Where(“it.City = @city”,
Introdução à lógica do negócio new
ObjectParameter(“city”, city));
Com o Astoria, basta que o desenvolvedor aponte para um banco de
dados ou esquema EDM pré-construído para que uma visão HTTP seja
// add user-based filter condition to q
automaticamente gerada. Embora isso seja ótimo para as iterações
iniciais de um aplicativo, essa interface totalmente aberta quase nunca
return q;
será adequada à produção de aplicativos.
}
Em muitos bancos de dados, existe uma divisão relativamente clara
entre os dois tipos de dados (quase sempre, dois tipos de tabelas): há seria então invocável (callable) com um URI seguindo este padrão:
uma parte dos dados com suficiente semântica implícita em si (isto é /MyCustomersByCity?city=Seattle
válido para conceitos mais simples como a "categoria de produto").
Nesses casos, a lógica do negócio (em geral magra ou inexistente) e a Um recurso interessante do Astoria é que as operações de serviço
interface direta para os dados é o quanto basta. A outra parte dos podem optar por retornar uma consulta em lugar dos resultados reais,
dados só faz sentido com alguma lógica do negócio à volta dela; por como apresentado no exemplo anterior. Quando o objeto da consulta
exemplo, os dados apresentados precisam ficar restritos com base no retorna, o restante do padrão URI ainda pode ser usado; assim, por
contexto, ou as modificações precisam transferir validações externas exemplo, o cliente ainda poderia acrescentar uma opção "orderby"
(pedido por) ao URI.
ou, ainda, quando um determinado valor é alterado, outro efeito
colateral precisa acontecer, e assim por diante. /MyCustomersByCity?city=Seattle&$orderby=CompanyName
THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 15
Projeto Astoria

A operação de serviço também pode conter código para realizar repositórios de dados especializados ao uso de bibliotecas de acesso
validações, atividade de registro ou qualquer outra necessidade. Tal baseadas em LINQ para serviços online (por exemplo, existem
condição oferece um bom meio termo entre o RPC rígido, que implementações informais do LINQ para a Amazon e LINQ para o
dificulta a construção de IUs flexíveis e as interfaces de dados Flickr que fornecem capacidades limitadas de consulta àqueles sites
totalmente abertas, que não permitem controlar os dados que fluem da Internet).
pelo sistema.
Cenários de implantação: aplicações e serviços
Nos cenários para os quais se deseja preservar a interface centrada em Hoje, um aplicativo web típico, dirigido a dados, terá o seu próprio
recursos, os interceptores podem ser usados. Um interceptor é um banco de dados além de um ou mais servidores web. Para aplicativos
método invocado sempre que uma determinada ação acontece em corporativos, esses servidores fazem parte da infra-estrutura de TI e
um recurso no âmbito de um dado container de recursos. Por para aplicativos hospedados em ISPs, a maioria destes oferece serviços
exemplo, um desenvolvedor poderia registrar um interceptor para ser de banco de dados.
invocado sempre que houver mudança (POST/PUT/DELETE) no
Seguindo o mesmo pensamento, espera-se que muitos aplicativos
container de recursos dos produtos ("Products"). O interceptor pode
que usem o Astoria como o seu serviço de dados, construídos com
desempenhar validações, modificar valores e até escolher abortar a
base no AJAX ou Silverlight, ainda assim tenham banco de dados
requisição.
próprio. Nesses cenários, o serviço de dados do Astoria pode fazer
Extensibilidade e fontes de dados alternativas parte do próprio aplicativo web e, assim, serão implantados com os
Até o momento, falei do Astoria no contexto do EDM e do ADO.NET demais componentes do aplicativo. Este é um dos cenários que temos
Entity Framework. Utilizar o Astoria para revelar dados em um banco com alvo para o Astoria, mas não é o único que pretendemos.
de dados é, sem dúvida, a melhor opção; entretanto, nem todos os O Astoria como tecnologia para construir serviços de dados para o
dados estão em um banco de dados. consumo de outros sistemas é outra forma de considerá-lo. Os
Na primeira CTP (Community Technology Preview) pública do Astoria, provedores de dados podem configurar servidores Astoria com os
tínhamos nos voltado apenas para o Entity Framework. Na medida em quais outros aplicativos podem interagir, consumindo e atualizando
que fazemos iterações do design do produto, estamos mudando isso dados, conforme necessário e permitido pelas diretivas de segurança.
para oferecer mais opções. Especificamente, para criar cenários onde O provedor de dados pode ser o mesmo proprietário do aplicativo
se deseja expor fontes de dados, não bancos de dados, o suporte será que consome os dados ou pode ser um serviço consumível por
dado utilizando qualquer fonte de dados preparados para LINQ, a terceiros.
serem expostos por meio da interface HTTP. Ainda mais uma forma de considerar o Astoria é como um serviço de
LINQ define uma interface geral denominada IQueryable: permite aos uso geral para armazenamento de dados. Para explorar essa idéia,
consumidores compor consultas de modo dinâmico sem precisar configuramos um serviço online experimental que hospeda vários
saber quaisquer detalhes sobre a natureza do alvo da consulta. É conjuntos de dados de exemplo, inclusive os bancos de dados
responsabilidade da implementação atual da IQueriable de cada fonte Northwind e AdventureWorks, um subconjunto de artigos do
interpretar ou converter as consultas de modo apropriado. Isso Microsoft Encarta e um snapshot de dados compatíveis com o site
permite ao runtime do Astoria ter uma "consulta base" para compor social de marcadores Microsoft TagSpace. Transformar isso em um
com operações como ordenação e paginação. (Vide Figura 2.) serviço para o mundo real exige tecnologia muito além da interface e
dos padrões HTTP, e esse é um espaço fora do escopo do projeto
Com a adoção desse ponto de extensibilidade, os desenvolvedores Astoria; todavia, ainda consideramos que o serviço experimental tem
poderão contar com um amplo conjunto de fontes de dados no valor como ferramenta de aprendizado, só para ver o que os
cenário, expondo-as por meio da interface HTTP. Isso vai do acesso a desenvolvedores de aplicativos poderiam construir tendo-o como
base.
Figura 2: Diagrama da arquitetura do Astoria ilustrando a Segurança
estrutura em camadas baseada em IQueryable Expor uma interface de dados webfacing exige elaboração cuidadosa
com relação ao acesso seguro, para confirmar que apenas os dados
Canal de comunicação
(ex: HTTP por meio de WCF) que devem ficar disponíveis estejam efetivamente acessíveis pela
interface HTTP. Isso envolve uma infra-estrutura de autenticação e
diretivas de autorização adequadas.
Interface de host
Adaptador de host Astoria Embora muitos pontos de design do Astoria apliquem-se igualmente
ao Astoria como componente de aplicativo e como serviço, a
Runtime Astoria (tradução, autenticação é uma das áreas à qual essa afirmação não se aplica.
formato, diretivas URL...) Iqueryable
(+ outras interfaces)
REST e Astoria
Entity Outras fontes
Framework de dados...
O acrônimo REST significa Representational State Transfer
(Transferência de estado representacional) e foi criado por Roy
Fielding. Refere-se, de forma livre, a um estilo arquitetural em que
os sistemas apresentam uma abstração bastante simples,
orientada a recurso para o estado do aplicativo e uma interface
uniforme para agir sobre esses recursos. Existem também aspectos
Armazenamento como estrutura em camadas e armazenamento em cache que se
de dados

16 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Projeto Astoria

Notas de encerramento: escopo e planos do projeto Astoria


ajustam muito naturalmente no modelo e permitem a criação de
sistemas de grande porte, altamente escaláveis. A World Wide Web A maneira pela qual os aplicativos são escritos está mudando. Uma das
é quase sempre citada como exemplo de aplicação do protocolo principais características desses aplicativos web emergentes são as
REST e o nível de escalabilidade que proporciona. novas formas pelas quais interagem com seus dados. Aqui, existe uma
clara oportunidade de introduzir tecnologia básica para ajudar a
Acredito que o Astoria pode ser considerado um bom cidadão
comunidade de desenvolvimento a assumir este novo espaço.
REST, pois transforma entidades e registros em recursos e estes
recursos são endereçáveis por meio do espaço URI apresentado Com o projeto Astoria, pretendemos dar condições para o uso de
pelo servidor. Todos os recursos podem ser obtidos e manipulados dados como um modelo de primeira classe na web e em toda a pilha
por meio da interface uniforme HTTP, e o sistema permite de aplicativos. Queremos fornecer a infra-estrutura para a criação de
estabelecimento simples de camadas e cache por meio de métodos serviços de dados na web e também contribuir para a criação de um
tradicionais usados pela WWW. Como qualquer outra peça de ecossistema no qual os provedores e consumidores de serviços usem
infra-estrutura de sistemas, alguns pragmatismos precisam ser uma interface uniforme para os dados. Gostaríamos de ver
considerados: quando necessário, o Astoria permite aos fornecedores de controles de IU, escritores de bibliotecas de cliente e
desenvolvedores deixar o universo de interação usando recursos e outros participantes aproveitarem o poder de reutilização das
possibilitar a introdução de alguns RPCs os quais, algumas vezes, interfaces de dados para construir ferramentas melhores para a criação
são necessários para a construção de aplicativos do mundo real. de aplicativos web.
Estamos iniciando esta visão em casa. Na Microsoft, estamos em
estreita colaboração com muitos grupos para explorar os vários
Se o Astoria for utilizado como serviço de dados fazendo parte de um aspectos em que o Astoria pode participar.
aplicativo web personalizado, a autenticação, em geral, se aplica a
No lado dos serviços, estamos trabalhando com a organização do
todos os recursos presentes em determinada área, inclusive o acesso Windows Live, colegas da Web3S especificamente (eles são
aos dados. Os usuários fariam a autenticação quando estivessem no responsáveis pelas interfaces de dados das propriedades do Live), para
website e o sistema precisa ter condições de aplicar as credenciais ao explorar um mundo em que cada interface de dados seja uma
serviço de dados, assim como ao restante do aplicativo. O Astoria interface Web3S/Astoria e possa ser consumida pelas várias
consulta a API do ASP.NET para saber se o usuário foi autenticado e ferramentas e controles que eles utilizam.
para descobrir outros detalhes e, assim, aplicativo que use qualquer
No lado das ferramentas, as equipes do ASP.NET, WCF e Astoria, assim
esquema de autenticação, adequadamente integrado ao ASP.NET, como os vários colegas envolvidos com o Silverlight, estão trabalhando
automaticamente trabalhará com o Astoria. juntos para fornecer uma história sólida, ponta a ponta, para o
A integração com a autenticação ASP.NET significa que em casos desenvolvimento de aplicativos web incluindo ferramentas e
típicos, mecanismos comuns de autenticação sobre HTTP funcionarão. bibliotecas de primeira classe para interação com dados dos aplicativos
Incluem-se aí "autenticação de formulários", autenticação integrada e serviços web.
(útil no âmbito das redes corporativas) e esquemas de autenticação O projeto Astoria anda rápido e se concentra em resolver desafios do
personalizados; é ainda mais fácil estabelecer uma implementação mundo real que existem na web e com os dados. Planejamos
personalizada de autenticação "básica" de HTTP, que pode ser muito completar o processo de projeto de forma transparente para que todos
boa se usada sobre conexões SSL, dependendo da natureza do possam ver o que pretendemos. Têm sido muito bons os momentos de
aplicativo. trabalho neste espaço; eu incentivaria qualquer um que tenha interesse
Para serviços online isso se torna um desafio muito maior. Além da real no tema, a visitar o blog da equipe do Astoria, acompanhar as
problemática tecnológica de como acontece a autenticação, existem discussões de projeto e participar, sempre que tiver algo a dizer.
diferenças de nível mais alto que precisam ser cuidadas em primeiro
lugar: se o aplicativo e o serviço de dados provêm de fontes diferentes, Referências
os dados do serviço de dados são de propriedade do usuário do Blog da equipe Astoria:
aplicativo? Em caso afirmativo, o aplicativo não deveria ter acesso às http://blogs.msdn.com/astoriateam
credenciais do usuário para o serviço de dados? O que é preciso, nesse Blog do Pablo:
cenário, é ter um esquema pelo qual o usuário faz a sua autenticação http://blogs.msdn.com/pablo
no serviço de dados, independentemente do aplicativo (o qual Projeto Astoria
também precisará ser autenticado). Estamos explorando este espaço http://astoria.mslivelabs.com
como parte do esforço de projeto do Astoria e, embora tenhamos um
conhecimento razoável dos cenários, ainda não projetamos uma
Sobre o autor
tecnologia concreta para o seu suporte.
Pablo Castro é líder técnico da equipe do SQL Server. Contribuiu muito
Depois de implantado o esquema de autenticação, é preciso ter um
em várias áreas do SQL Server e do .NET Framework inclusive na
modelo de autorização adequado. A versão atual do Astoria (lançada
integração SQL-CLR, extensibilidade (type system), no protocolo
na CTP de maio, 2007) tem uma implementação super simples: as
cliente-servidor do TDS e na API do ADO.NET. Atualmente, Pablo está
diretivas de autenticação podem ser configuradas no nível do
envolvido com o desenvolvimento do ADO.NET Entity Framework e
container de recursos ( /Customers, por exemplo); em cada uma delas, também lidera o projeto Astoria, estudando como juntar dados e
a configuração pode indicar se é preciso autenticação para ler os tecnologias web. Antes de ingressar na Microsoft, Pablo trabalhou em
recursos do container e para escrever neles. Este procedimento não é várias empresas, lidando com amplo conjuntos de temas, dos sistemas
suficientemente flexível para a maior parte dos aplicativos; assim sendo, de inferência distribuídos, para análise de pontuação/risco de crédito,
fica claro que é preciso providenciar um esquema mais sofisticado. aos aplicativos colaborativos (groupware).

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 17


Implicações do Consumo
de Software + Serviços
do TI Corporativo
por Kevin Sangwell

Resumo negócio sentem-se frustrados em relação aos projetos de TI por


levarem meses e investimento significativo, para oferecer vantagens
Muitos artigos desta edição usam a expressão Software +
que aparecem na Internet, prontas para serem utilizadas. Os usuários
Serviços (S+S) para referir-se ao cliente (desktop, encontram na Internet capacidades de pesquisa, colaboração e
navegador e dispositivo) e aos aplicativos baseados em publicação muito superiores às capacidades internas de muitas
servidor que consomem um ou mais serviços da Internet empresas. Um número cada vez maior de aplicativos tem sido
(nuvem). Embora este modelo compartilhe algumas colocado à disposição na Internet como serviços, oferecendo ao
negócio um modelo alternativo de suprimento de TI.
características com o software como serviço (SaaS), as
Neste artigo, colocarei em discussão as implicações do consumo de
diferenças são significativas para o TI corporativo.
serviços de software externo com base na infra-estrutura e operações
Este artigo compara os desafios de se adotar o S+S em corporativas existentes, comparando os desafios do modelo SaaS com
relação ao SaaS; ficará claro que o consumo de um serviço aqueles do modelo S+S no que se refere ao consumo de todos os
aplicativos de linha de negócio amplamente adotados em toda a
externo bem definido é menos desafiador para as
empresa. Utilizo a expressão "serviços de software" para fazer referência
empresas do que o consumo de um serviço acabado. aos serviços dos dois modelos, Saas e S+S, pois podemos considerar a

H oje, a maioria dos aplicativos distribuídos como serviço pela


Internet (ou seja, SaaS) destina-se aos mercados consumidor e
distribuição de software como um continuum com software
convencional hospedado in-house, construído ou comprado, de um
lado, e serviços acabados distribuídos pela Internet (ou seja, Saas), do
das empresas de pequeno porte. O modelo usado de monetização do
outro. A configuração híbrida, software in-house mais serviços na
negócio, quer seja custeado por assinaturas ou publicidade é, em
grande parte, aquele do tipo long tail: vender um pouco de alguma nuvem, cobre a parte intermediária do continuum (ou seja, S+S). A
coisa a inúmeros clientes por meio de um canal de distribuição Figura 1 ilustra o continuum da distribuição de software. Neste artigo,
escalável, conforme descrito por Chris Anderson (vide Referências). "
Software convencional refere-se aos aplicativos instalados na infra-
Entretanto, as demandas corporativas são significativamente diferentes estrutura e acessados exclusivamente pelos usuários internos.
das demandas desses segmentos (consumidor e pequena empresa) e, "
Serviços de bloco de construção oferecem capacidades de nível baixo,
por isso, determinadas premissas que dão apoio à economia e à consumidos pelos desenvolvedores na construção de um aplicativo
distribuição (e ao consumo) de serviço simplesmente não se aplicam ao composto. Esses serviços existem na nuvem.
contexto corporativo. Por exemplo, os consumidores não precisam se
preocupar com conformidade e integração de aplicativo corporativo "
Serviços vinculados fornecem um nível mais alto de funcionalidade
(EAI - Enterprise Application Integration) e tudo o que isso implica é, na se comparados aos serviços de bloco de construção. Os aplicativos
maioria dos casos, irrelevante para as pequenas empresas. aproveitam os serviços vinculados para adicionar funcionalidade.

Assim sendo, os serviços de software analisados pela perspectiva


corporativa levanta várias perguntas. A quem pertencem os dados? Figura 1: Continuum da distribuição de sotfware e taxonomia
O que é o contrato de nível de serviço (SLA)? As identidades internas dos serviços de software
podem ser levadas para além do firewall para ter acesso aos serviços
da nuvem? Existem implicações normativas? Instalado no local SaaS
Histórico
Software Serviços de bloco Serviços Serviços
Aproximadamente 70% dos orçamentos de TI são gastos na convencional de construção vinculados acabados
manutenção dos sistemas existentes, e apenas 30% são aplicados em Serviços a partir dos Serviços que
Instalado e
soluções novas. Por outro lado, o custo de hardware e software operado
quais aplicativos fornecem Aplicativos entregues
podem ser funcionalidade auto- via SaaS
no local
diminui e o custo do gerenciamento e suporte cresce. As empresas construídos contida
esperam do setor de TI mais do que nunca, em parte devido à Interessante
Interessante para
Interessante para programadores e Interessante para
confiança recuperada ocorrida após a queda das empresas pontocom, para usuários
programadores pessoal de infra- usuários finais
finais
assim como à crescente demanda das capacidades estilo Web 2.0 estrutura

dentro do firewall. P. ex., P. ex., P. ex.,


Por exemplo, Exchange Hosted
Serviços Amazon S3 Safesforce.com ou
Microsoft Services ou
ou Windows Liveapis Microsoft Dynamics
Ao mesmo tempo, o TI corporativo passa por uma crise de percepção, Exchange Windows Update CRM Live
conforme evidenciado pelo feedback do ensaio de Nicholas Carr de
Software + Serviços
2003 "IT Doesn't Matter" (vide Referências). Muitas vezes os líderes do

18 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Implicações do Consumo de Software + Serviços do TI Corporativo

"
Serviços acabados são análogos aos aplicativos totalmente Nem os produtos Active Directory (AD) ou os metadiretórios como o
desenvolvidos, distribuídos pela Internet, utilizando o modelo SaaS. Microsoft Identity Lifecycle Manager resolvem esse problema
" específico. O AD é proprietário e o seu modelo de confiança não é
S+S refere-se ao uso de aplicativos que consomem serviços
suficientemente granular e os metadiretórios não são extensamente
vinculados ou àquele construído com os serviços de bloco de
implantados e não operam em tempo real. Algo baseado em padrões,
construção.
como federação, oferece um conjunto de capacidades que a
Ao analisar uma infra-estrutura de TI ou modelo de suprimento de qualificam como uma boa escolha especificamente para a integração
aplicativo, é importante conhecer os objetivos do negócio. Por com um aplicativo ou serviço externo. Apesar do baixo acoplamento,
exemplo, a terceirização é motivada pela necessidade de obter uma opera em tempo real e não por meio de programação, simplificando o
relação positiva entre custo e eficiência, transferindo o custo e o risco provisionamento e o (des)provisionamento. As relações de confiança
de entregar um aplicativo existente, maduro, a um terceiro, em troca da federação possuem alto nível de granularidade, permitindo à
de pagamentos contratados. Por outro lado, a adoção de um serviço organização do consumidor expor apenas um subconjunto do dos
de software satisfaz a necessidade do negócio, como gerenciamento respectivos diretórios (baseado em regras); e um mapeamento de
atributos em tempo real para "declarações", reduzindo a necessidade
de cliente mais eficiente (no caso de CRM). Pela perspectiva do
de mudanças internas de diretório. (vide a Figura 3; para conhecer
gerente do negócio, SaaS parece ser o melhor dos dois mundos: o
mais sobre federação e ADFS “Active Directory Federation Services”,
beneficio para o negócio é concretizado a um custo proporcional ao vide Referências.)
uso (ou até de graça), sem investimento prévio de capital, ou adicional,
Em contraposição com SaaS, os aplicativos S+S podem ter um serviço
em recursos de TI. Ainda que o negócio esteja melhor posicionado
back-end rodando no firewall e, nesse caso, uma única empresa ou
para determinar a qualidade com que o serviço resolve o seu
identidade proxy poderia ser transferida ao serviço na nuvem. A
problema, a não ser que a área de TI faça parte da discussão, muitas integração de identidades é uma capacidade comum de muitos
das implicações mais abrangentes para a área de TI da empresa (custos aplicativos corporativos e, assim, o serviço back-end pode integrar-se
não visíveis da adoção dos serviços de software) passarão com o Active Directory ou diretórios LDAP (Lightweight Directory
despercebidas. Access Protocol) prontos para usar.
Serviços de software: novos desafios de integração Controle de acesso
Ao adotar serviços de software, um conjunto de desafios fica sob a O gerenciamento de autorização e acesso é outro aspecto que deve
responsabilidade do provedor: distribuição e suporte para os serviços. ser considerado. Muitos aplicativos oferecem capacidades diferentes,
Entretanto, ao adotar um novo modelo, a área de TI enfrenta um de acordo com o usuário. Por exemplo, um aplicativo que gerencia
despesas pode permitir ao gerente autorizar reembolsos de até
conjunto adicional de desafios e, portanto, novo (Figura 2).
$4.000; valores superiores precisam da aprovação da diretoria.
Ignorar esses novos desafios não é uma opção. Como veremos, pode Atualmente, muitos aplicativos instalados atrás do firewall corporativo
haver custos diretos e indiretos, implicações de recursos e questões de definem permissões de acordo com cada usuário; na verdade, o
conformidade. Em outras palavras, a adoção de um serviço de aplicativo contém um mapeamento entre o usuário e a respectiva
software representa um projeto híbrido de aquisição/integração para a autorização. Contudo, inúmeras organizações começam a se afastar
área de TI interna. A integração precisa ser analisada no âmbito de três das autorizações baseadas em usuário para a autorização baseada em
áreas amplas: função. As vantagens são evidentes: custos de administração menores,
autorização consistente de acordo com a função e conformidade
"
gerenciamento de identidades e acesso transparente
"
dados
"
operações
Figura 2: O consumo de serviços de software acrescenta novos desafios
Regulamentos e obrigações legais também devem ser analisados.
Gerenciamento de identidades e acesso
TI Corporativo Service Provider
O gerenciamento de identidades e acesso é um problema perene
(responsabilidades existentes)

que afeta muitos aspectos da TI: dos custos de suporte técnico, • Distribuição de serviço • Distribuição de serviço
Software Convencional

Serviços de Software

produtividade do usuário à segurança dos dados. Também é uma • Gerência de nível de serviço • Gerência de nível de serviço
área para a qual a TI corporativa deveria fornecer uma experiência • Gerência de capacidade • Gerência de capacidade
• Gerência de disponibilidade • Gerência de disponibilidade
de usuário melhor, se comparada à da Internet (e, ainda assim, • Gerência de continuidade de TI • Gerência de continuidade de TI
muitas empresas têm dezenas de diretórios de usuários). Análises • Suporte do serviço • Suporte do serviço
feitas por organizações especializadas atestam, com freqüência, que • Suporte técnico • Suporte técnico
• Treinamento • Treinamento
as redefinições de senha são responsáveis por 30%, em média, das
chamadas de suporte técnico.
A adição de um serviço acabado, com o seu correspondente
Novos desafios na adoção

diretório externo, exige extensões do processo de provisionamento e


dos serviços de software

• Integração
(des)provisionamento, ainda que este seja um processo humano. Por • Gerência de identidades
exemplo, quando um funcionário sai da empresa, muitas • Dados
• Operações
organizações lutam para concretizar o (des)provisionamento ou
• Segurança
desativação de contas internas em tempo hábil; o risco de exposição • Gerência de contratos
no caso de um aplicativo ou serviço externo é significativo porque • SLAs
não há firewall corporativo que impeça o usuário de ter acesso ao • Conformidade

aplicativo e aos seus dados.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 19


Implicações do Consumo de Software + Serviços do TI Corporativo

precisa de dados não processados: nome do funcionário, valor do


Figura 3: Integração de identidades oferecidas por federação: pagamento, etc. para o processamento mensal da folha. Neste
exemplo, os dados poderiam ser fornecidos por meio de um simples
Rede Corporativa Provedor do Serviço
extrato das informações relevantes do sistema interno de RH.
Obviamente, enviar por e-mail um arquivo XLS ou CSV para o
Servidor de Servidor de provedor da folha de pagamento não oferecerá os níveis de segurança
federação federação
Serviços e confidencialidade exigidos; assim, é preciso ter outra forma para a
Servidor de
de autenticação troca de dados e espera-se que o setor de TI ofereça essa alternativa.
diretório
Em outras palavras, a área de TI se defronta com o projeto de
integração de aplicativo corporativo (EAI).
Pela perspectiva de EAI, o bloco de construção e os serviços vinculados
devem ser de fácil integração; afinal, são projetados para o consumo
de desenvolvedores como extensões de um aplicativo local. O
Exchange Hosted Services for Filtering é um exemplo de serviço
Usuário final vinculado (para mais informações sobre o Exchange Hosted Services,
Servidores de vide Referências). A integração nessa situação possui duas partes:
aplicativo
1. DNS: Registro MX modificado para apontar para o provedor de
serviços (Microsoft neste caso)
Quando um serviço acabado possui vários níveis de autorização,
2. Regras de firewall alteradas para só permitir a entrada de SMTP
existem duas opções: atribuir a alguém da empresa a tarefa de mapear
do provedor de serviço (aumentando a segurança).
manualmente os usuários e respectivos níveis de autorização, ou
ampliar o modelo interno baseado em funções para o aplicativo Como o foco deste artigo é a infra-estrutura, não me aprofundarei em
externo. O primeiro quase sempre acaba no suporte técnico: um custo mais detalhes sobre a EAI. Contudo, analisaremos as implicações da
oculto da adoção de serviços acabados. O último, mapear uma função infra-estrutura para dados de algumas outras perspectivas:
externa para um aplicativo externo, poderia ser feito por meio da "
regras e filtros de firewall
federação; por exemplo, a associação de um grupo do Active Directory
poderia ser mapeada para um par nome-valor em um cookie, utilizado "
criptografia e assinatura
pelo aplicativo externo. "
visão do usuário
A autorização no bloco de construção ou nos serviços vinculados (o Firewall
híbrido Software + Serviços) poderia seguir o modelo federação e, na
Para entender as implicações de firewall no consumo de serviços
verdade, as seguintes vantagens poderiam ser obtidas: gerenciamento
acabados, precisamos investigar quais aplicativos internos serão
estrito da integridade no provedor do serviço e isso poderia ajudar na
integrados ao serviço de software e qual a forma de integração.
conformidade. Quanto mais flexível o modelo do S+S, maior a
Quantos aplicativos internos devem ser integrados: um ou vários?
possibilidade de a autorização ser executada por um servidor local,
Quais regras de firewall precisam ser criadas para permitir a publicação
antes de qualquer solicitação do serviço externo. Ter controle local da
e o fluxo de tráfego? Se os aplicativos estão trocando XML, esse
diretiva e de sua aplicação significa que a empresa tem condições de
procedimento precisa ser validado no firewall e o firewall pode
reagir às mudanças do negócio mais rapidamente. Além disso,
fornecer essa capacidade? Os dados precisam se integrar com alguma
simplifica a integração: a empresa pode modificar a configuração da
forma de workflow e, se assim for, como esse workflow abrange a
parte local do aplicativo do fornecedor para adaptá-lo ao seu
ambiente. infra-estrutura interna/externa? Se a integração acontecer sobre HTTP
(SOAP, por exemplo), pode haver algumas implicações no firewall além
da criação de regras.
Resumo das implicações do gerenciamento de identidades e
Com bloco de construção e serviços vinculados, provavelmente haverá
acesso
alguma infra-estrutura de back-end que, naturalmente, passa a ser o
"
Se o serviço externo depende da identidade do usuário (muito principal enfoque para a integração e segurança dos dados. Na
provável para SaaS, possível para S+S), o provisionamento e o verdade, alguns fornecedores de SaaS estão percebendo que as
(des)provisionamento precisa ser ampliado. A integração poderia empresas estarão mais abertas à assinatura quando seus dados estão
ser feita por um processo tecnológico ou manual e ambos armazenados no firewall corporativo (assim, estão desenvolvendo seus
possuem implicações de custo. serviços acabados para o modelo S+S, instalando um aparelho dentro
"
As diretivas para conta de usuário do provedor de serviços das centrais de dados do cliente).
precisam ser avaliadas comparando-as com as diretivas internas Criptografia e assinatura
(por exemplo, complexidade da senha, bloqueios, etc.).
A forma mais efetiva de trocar dados criptografados pela Internet é a
de adotar certificados de uma autoridade pública de certificação. Se os
Dados certificados forem instalados em clientes, será preciso ter uma infra-
É pouco provável que haja um aplicativo de linha de negócio isolado estrutura de chave pública (PKI - Public Key Infrastructure), com todas
como uma ilha, ainda que seja de origem externa. Um bom exemplo é as suas implicações, como gerenciamento do ciclo de vida do
a folha de pagamento. O provedor de serviço de folha de pagamento certificado e publicação da lista de revogação do certificado. Não se

20 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Implicações do Consumo de Software + Serviços do TI Corporativo

trata de um empreendimento trivial, mas uma vez concluído, permitirá Treinamento


à infra-estrutura realizar outras capacidades como e-mail assinado e O treinamento do usuário é um aspecto importante na introdução de
autenticação via Smart Card. qualquer aplicativo novo, independentemente do local em que está
Obviamente, com uma infra-estrutura de back-end local em hospedado. Os serviços acabados têm uma vantagem: em geral, o
implementações S+S, provavelmente a criptografia e a assinatura provedor oferece treinamento quando necessário. Contudo, a
ficarão muito mais simples (menor número de extremidades). empresa tem pouco controle sobre a qualidade desse treinamento e,
treinamento sofrível aumenta o custo do suporte e reduz a
Visão do usuário
produtividade do negócio. A introdução de atualizações como parte
Outra perspectiva sobre os dados é a visão do usuário. Certo ou
do serviço, um dos benefícios de ser assinante de serviços acabados, é
errado, muitas pessoas querem continuar a trabalhar com as
outro problema em potencial: se a empresa não tem a capacidade de
ferramentas com as quais estão familiarizados: aplicativos do Microsoft
adiar a implementação da atualização até que todo o pessoal tenha
Office. Analise o número de vezes que um novo aplicativo não alcança
sido treinado, o suporte técnico interno talvez tenha de lidar com
todo o seu potencial porque os usuários do negócio insistem em
extrair os dados e usar o Excel para a administração diária. Raramente picos de chamadas de suporte. Uma questão correlata é se os recursos
esses dados voltam para o aplicativo. Vários fornecedores individuais do serviço acabado podem ser desativados de modo
independentes de software iniciaram a construção de seus clientes de seletivo: Se a capacidade já estiver disponível internamente, o TI
aplicativo como OBAs (Office Business Applications) utilizando precisa certificar-se de que todos os usuários estejam utilizando essa
essencialmente o Office como plataforma de aplicativos. Em geral, isso capacidade interna.
resulta na adoção mais rápida e em menor sobrecarga de “QUANTO MAIOR A IMPORTÂNCIA DO
treinamento, mas representa problemas de implantação e manutenção
para a área de TI. Pontos a serem considerados: O serviço de software
APLICATIVO PARA O NEGÓCIO, MAIS
oferece todas as capacidades que o negócio exige ou os usuários IMPLICAÇÕES PRECISARÃO SER
precisarão extrair os dados para serem manipulados/analisados em CONSIDERADAS. UM APLICATIVO DE LINHA DE
ferramenta ou sistema local? A adoção do serviço de software resultará
NEGÓCIO DISTRIBUÍDO COMO SERVIÇO
na construção de mais aplicativos departamentais em Access e Excel?
Operações ACABADO REPRESENTA TAREFA DE
O problema da integração operacional na obtenção externa de INTEGRAÇÃO SIGNIFICATIVA".
aplicativos ou serviços é incongruente, de certa forma: afinal, o Implantação
principal benefício de ser um consumidor é que as operações ficam Se o serviço acabado utilizar o navegador como seu cliente, aplicam-
sob a responsabilidade do provedor e, no entanto, as operações e os
se os cuidados normais de compatibilidade: versão do navegador e
processos internos serão impactados pelo aplicativo ou serviço
configurações de segurança, mais os plug-ins instalados e respectivas
externo, em várias áreas, sendo as mais significativas o suporte técnico
versões. Com um aplicativo convencional, a empresa pode determinar
e o treinamento do usuário.
quando passar para a nova versão, o que é de importância crítica, caso
a nova versão exija o navegador mais recente. Quando o aplicativo é
Resumo das implicações de dados externo, esta opção talvez não esteja disponível.

"
Análises serão necessárias para determinar as necessidades de
Se o cliente do serviço não tem o navegador como base, a área de TI
integração de dados e ETL. interna será responsável pela implantação e por suas implicações
(testes de compatibilidade, planejamento de implantação, distribuição,
"
Regras de firewall talvez sejam necessárias para permitir a
etc.).
integração.
Se for um serviço de bloco de construção ou vinculado, será preciso
"
O firewall talvez precise ser atualizado para possibilitar a filtragem
implantar infra-estrutura de back-end na central de dados da empresa
dos dados do aplicativo (por exemplo, validação de esquema
XML). ou do cliente ou em ambos. Para a implantação de back-end, existem
desafios comuns não funcionais: Qual servidor, rede e capacidade de
"
Talvez seja preciso comprar certificados ou implementar PKI para armazenamento são adequados para a carga? Podem ser utilizados
dar suporte às exigências de autenticação, criptografia e
serviços compartilhados como o servidor SQL existente ou os web
assinatura.
farms do servidor? De que forma são fornecidas flexibilidade e
capacidade de recuperação de desastres? Podem ser
Suporte técnico
Muitos consumidores se sentem frustrados pela ineficiência e executadas em várias centrais de dados? As respostas dependerão
confusão existentes nas centrais de chamadas. Para evitar problemas mais dos componentes do local do aplicativo do que do serviço
similares, as equipes internas do suporte técnico devem ser vinculado na nuvem: ou seja, podem ser abordadas, em grande parte,
informadas sobre os novos aplicativos e serviços a serem integrados às como uma implantação de back-end normal.
operações de TI. Os usuários corporativos dependem de inúmeros Operações do provedor/continuidade do negócio
sistemas internos de TI para acessar um aplicativo externo: rede, DNS, É tentador concentrar-se simplesmente no conteúdo do SLA quandose
servidores proxy. O suporte técnico corporativo é responsável pelo trata de selecionar, monitorar e avaliar um provedor de serviço. É
atendimento desses itens e não o provedor de serviços. Muitas importante considerar como o SLA será formalizado: um SLA que
organizações percebem, agora, a importância de simplificar o estabeleça que o serviço será restaurado em 24 horas após o desastre
processo de suporte do negócio e fornecer, por exemplo, um único parece bom em princípio; entretanto, a definição de desastre e a
número de telefone e um site intranet para fazer a comunicação com forma de restauração têm importância crítica. Para o consumidor do
a equipe adequada, de primeira linha. serviço, desastre pode ser a exclusão acidental de registros do

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 21


Implicações do Consumo de Software + Serviços do TI Corporativo

aplicativo, mas provavelmente o provedor do serviço terá uma visão Emissão de relatórios
diferente. Analisando melhor este exemplo, a restauração de dados do Como com qualquer SLA, os grupos comerciais e de TI devem analisar
aplicativo é um processo complicado para muitos aplicativos os relatórios de desempenho e investigar quais os pontos não
corporativos. Por exemplo, restaurar uma única caixa de correio ou atendidos pelos SLAs.
mensagem do Exchange ou um simples site ou documento do
Regulamentos e obrigações legais
Sharepoint era um desafio significativo, até o amadurecimento destes
aplicativos. Agora, aplicar esse desafio a um aplicativo SaaS com vários Proporcionar conformidade com regulamentos e obrigações legais
locatários, ainda que restauração granular seja possível, fará com que terá um impacto na infra-estrutura e garantir a conformidade de um
o provedor fique relutante, devido aos custos operacionais. processo do negócio, que abrange sistemas internos e serviços
externos, pode ser especialmente desafiador. Além disso, apresenta
Outra preocupação que ouvi de vários arquitetos trata do risco de o uma solução em potencial com referência à conformidade: se o
provedor do serviço falir ou reter dados para evitar a migração para aplicativo ou o serviço estiver alinhado com o setor, existe uma boa
um concorrente. Colocar o código do aplicativo em garantia é uma possibilidade de estar de acordo com os regulamentos relevantes dos
etapa na direção correta mas, na verdade, não é suficiente. principais mercados; este talvez não seja o caso de serviços genéricos.
Mesmo em situações nas quais a conformidade é um ponto de venda
Resumo das implicações de operações do serviço, as diretivas de segurança interna da empresa ou as leis
"Os procedimentos de suporte técnico precisam ser atualizados
específicas da região, como as de proteção de dados do parlamento
para a execução de diagnóstico de primeira linha para aplicativos europeu (European Parliament Data Protection Laws), podem ser
novos e os processos de escalação precisam ser definidos com o incompatíveis com as políticas do provedor de serviço.
provedor do serviço.
Propriedade de dados
"Revisar os SLAs do suporte técnico interno para confirmar se ainda
Obviamente, as empresas desejam manter a propriedade dos dados
podem ser atendidos quando dependentes do provedor de do negócio, sempre; o contrato deve definir isso, explicitamente. Além
serviço para suporte escalado. do mais, seria prudente confirmar que os dados podem ser extraídos
quando solicitado.
Pressupondo que um consumidor corporativo pudesse obter esses Privacidade
dados, reconstruir o aplicativo na central de dados sem instalar As empresas devem avaliar cuidadosamente as diretivas de privacidade
instruções ou dar acesso aos desenvolvedores talvez não seja viável. e as condições de uso do provedor para confirmar se seus dados são
Ainda não há uma solução para isso: é uma questão de ter confiança mantidos em confidencialidade e não são utilizados para marketing
no provedor, que este fará a coisa certa caso aconteça o pior, e de que nem vendidos para terceiros, especialmente importante nos casos em
o provedor tenha boas qualidades de administrativas e comerciais. que os serviços acabados têm o suporte de anúncios publicitários.

Tabela 1: Resumo das recomendações

Gerenciamento "Considerar se é válido adotar o suporte de federação nos critérios de seleção de provedor.
de identidade "Analisar se a administração baseada em funções é uma forma de reduzir complexidade e custo.
e acesso
"O caso de negócio para integração deveria ser construído sobre segurança aprimorada para obter conformidade além da
redução de custo.
"Iniciar um período de amadurecimento nas tecnologias de identidade, como federação e CardSpace.
"Produzir uma arquitetura para simplificar a integração de identidades dos serviços de software futuros.

Operações "Incluir exigências para padrões abertos (por exemplo, WS-*) nos critérios de seleção de provedor.
de dados "Induzir o monitoramento leve do serviço para dar suporte à medição do SLA.
"Se os dados ficarem residentes no provedor, determinar se restaurações físicas são necessárias/possíveis.
"Avaliar o uso de frameworks operacionais formais (por exemplo, MOF/ITIL) nos critérios de seleção de provedor.
"Confirmar se não há dúvidas sobre a estrutura de custos relativa às operações (por exemplo, existem custos adicionais para
restaurações, relatórios, etc.).
"Avaliar se o provedor oferece treinamento. É de boa qualidade e disponível em todos os idiomas necessários? Quanto demora
para receber material atualizado quando um novo recurso é lançado?
"Se for preciso implementação no cliente, decompor a programação de lançamentos do provedor (patches e versões novas) nos
processos e planos de engenharia dos desktops existentes.
"Avaliar as necessidades da implantação e suas dependências (por exemplo, testes de compatibilidade do aplicativo de desktop,
espaço na central de dados, compra de produtos de integração).
"Peça aos seus desenvolvedores para avaliar a documentação entregue pelo provedor. É de boa qualidade e disponível em todos
os idiomas necessários?
"Analisar a flexibilidade, as políticas e os procedimentos de recuperação de desastre do provedor.
Regulamentos/ "Determinar se a conformidade se aplica ao provedor e, em caso afirmativo, decidir quais relatórios/diretivas/credenciais são
legal necessários para comprovar a conformidade.
"Considerar a automatização da criação de relatórios de conformidade híbridos: interno e do provedor. Isso pode significar que
o provedor de serviço tenha de expor APIs de relatório e não apenas fornecer um relatório estático.
"Se os dados ficarem residentes no provedor, analisar o contrato para confirmar que você detém a propriedade dos dados.
"Estender os seus dados de arquitetura de integração para dar suporte à integração do serviço externo. Adicionar credenciais de
segurança para os critérios de seleção de provedor.

Geral "Criar uma arquitetura de integração de infra-estrutura para oferecer um framework para a integração do serviço de software.

22 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Implicações do Consumo de Software + Serviços do TI Corporativo

Figura 4: Mapa de calor (heatmap) das considerações


Propriedade Conformidade SLAs Credenciam. de API's de Web Integração de Integração de RBAC
de dados contratuais Segurança Services Operações Identidades
Aplicativos de linhas de negócios
Aplicativo tático

Considerar obrigatoriamente Deveria considerar

Hoje, os departamentos de TI da empresa têm mais experiência e


Resumo das implicações legais
"A conformidade pode se estender ao provedor de serviço; como é confiança no consumo de bloco de construção ou serviços vinculados
possível provar a conformidade ainda assim? do que em aplicativos completos. Seja um "feed" de dados para um
"Os relatórios de conformidade podem representar um custo. aplicativo rico, como o Reuters 3000, ou um serviço de infra-estrutura,
como o que oferece filtragem de spams, este modelo é bem
Programas-selo de privacidade podem ser úteis para definir a compreendido.
credibilidade de um provedor; os provedores licenciados da TRUSTe, Na medida em que o modelo de distribuição SaaS amadurece e ganha
por exemplo, terão uma diretiva publicada e foram auditados por maior notoriedade, torna-se natural um aumento das necessidades
firma independente, para garantir a conformidade com um conjunto
corporativas tais como a integração a ser atendida e, assim, crescerá a
de princípios de privacidade.
faixa de capacidades para as quais as empresas estão preparadas para
Conclusão buscar como serviços. O resultado será software mais aplicativos de
Atualmente, o mercado de SaaS está repleto de ofertas destinadas aos
serviços: um equilíbrio natural do software instalado no local e serviços
consumidores e às empresas de pequeno porte, pois este segmento de
na nuvem.
mercado se beneficia do modelo de distribuição, sem a necessidade
de integração. Consumir um aplicativo de linha de negócio desses Como Gianpaolo Carraro e Fred Chong declaram em seu artigo “SaaS:
provedores é arriscado para qualquer empresa, pois muitos dos pontos An Enterprise Perspective”, SaaS e S+S são ferramentas adicionais que
de integração discutidos neste artigo não serão abordados. CIOs experientes podem utilizar para oferecer mais valor ao negócio.
Quanto maior for a importância do aplicativo para o negócio, mais Em lugar de sentirem-se ameaçados, os gerentes de IT deveriam
implicações deverão ser consideradas. Um aplicativo de linha de considerar SaaS e S+S pelo que são: modelos de suprimento
negócio distribuído como um serviço acabado representa tarefa de alternativo para o benefício do negócio e uma abordagem arquitetural
integração significativa se comparada ao pouco esforço associado à
diferente para as soluções de construção.
aplicação tática em que a principal preocupação refere-se a questões
contratuais como a propriedade dos dados. O mapa de calor da Manipulados corretamente, os serviços de software ajudarão a
relação está representado na Figura 4. modificar a percepção que o negócio tem da área de TI.

Referências para o WS-Federation da Microsoft transforma-se em Active Directory


European Parliament Data Protection Laws Federation Services (ADFS), um componente do Windows Server 2003 R2
http://ec.europa.eu/justice_home/fsj/privacy/index_en.htm "OASIS

Exchange Hosted Services http://www.oasis-open.org/committees/documents.php?wg_


http://www.microsoft.com/exchange/services/default.mspx abbrev=wsfed
“IT Doesn't Matter,” Nicholas G. Carr, Harvard Business Review, "Active Directory Federation Services (ADFS)
Maio, 2003 http://www.microsoft.com/WindowsServer2003/R2/Identity_
http://harvardbusinessonline.hbsp.harvard.edu/b01/en/common/item_ Management/ADFSwhitepaper.mspx
detail.jhtml?id=R0305B
The Long Tail: Why the Future of Business Is Selling Less of More,
Chris Anderson (Hyperion, 2006 Sobre o autor
Microsoft Privacy Guidelines for Developing Software Products Kevin Sangwell é arquiteto de infra-estrutura do Developer and
and Services Platform Group da Microsoft. Esteve à frente de vários cargos técnicos
http://www.microsoft.com/downloads/details.aspx?FamilyID=c48cf80f- e de liderança no setor de TI por mais de 16 anos, incluindo cinco anos
6e87-48f5-83ec-a18d1ad2fc1f&displaylang=en como consultor principal do setor de Consulting Services da Microsoft.
Microsoft Regulatory Compliance Planning Guide (embora este guia Kevin foi líder de arquitetura e projeto de infra-estruturas corporativas
tenha como enfoque a área de TI interna, pode também ser útil para e de eCommerce nos setores públicos e privados do Reino Unido,
avaliação de um provedor externo) incluindo a infra-estrutura distribuída da Microsoft para uma
http://www.microsoft.com/technet/security/guidance/ organização com 120.000 usuários e uma plataforma de aplicativos
complianceandpolicies/compliance/rcguide/default.mspx?mfr=true extranet com 1,2 milhão de usuários educacionais. Como arquiteto de
WS-Federation é uma versão do padrão OASIS, adotada por vários infra-estrutura, ele presta serviços de aconselhamento e consultoria
fornecedores incluindo Microsoft, IBM, RSA, BEA e VeriSign. O suporte para clientes corporativos e se apresenta em eventos internacionais.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 23


Mashups Corporativos

por Larry Clarkin e Josh Holmes

Resumo Na medida em que as técnicas para a criação de mashups


amadureceram, começamos a ver nas empresas a construção de
Mashup é uma técnica para a construção de aplicativos modelos do negócio baseados em mashups. No mercado imobiliário
que combina dados de várias fontes para criar uma norte-americano, Redfin (http://www.redfin. com) e Zillow
experiência integrada. Atualmente, há muitos mashups (http://www.zillow.com) utilizam grandes volumes de dados
imobiliários, públicos e privados, (de fontes como autarquias de
hospedados em sites da Internet que oferecem registro municipais e Multiple Listing Service) combinados com
representações visuais de dados abertos ao público. Este serviços internos de "valor agregado", cujo resultado é apresentado ao
artigo descreve o histórico e a arquitetura dos mashups e usuário em um mapa (utilizando o Virtual Earth da Microsoft e o
Google Maps, respectivamente). Há muitos outros tipos de infomações
explora como é possível criar mashups para uso na
que podem ser acrescentadas a um site do setor imobiliário: outras
empresa. Além disso, compartilhamos algum listagens similares, informações sobre escolas e hospitais locais, índices
conhecimento obtido de projetos com clientes e recentes de criminalidade, classificados para colocações de trabalho e
integradores de sistemas que implementaram mashups muito mais.

corporativos. Arquitetura de um mashup prototípico


Embora haja grande variação na IU e nas fontes de dados de muitos
Histórico dos mashups
mashups, ainda assim podemos derivar padrões arquiteturais comuns,
Os mashups ganharam aceitação nos últimos anos, impulsionados pela compartilhados por todos. Por exemplo, todos os mashups são de
Web 2.0. Inicialmente, os mashups adotaram dados de fontes como natureza RESTful (obedecem aos princípios do protocolo de
Craigslist (http://www.craigslist.org), combinando-os com serviços de transferência de estado representacional). A Figura 1 ilustra um
mapeamento ou fotografia, para criar visualizações dos dados (por processamento arquitetural de um mashup típico.
exemplo, http://housingmaps.com). Muitos desses primeiros mashups Dados
tinham o consumidor como objetivo mas, em anos recentes, a
Dados agregados e apresentados ao usuário são o principal elemento
empresa também começou a se interessar e aceitar os mashups
de qualquer mashup. Embora o diagrama acima descreva a fonte de
corporativos. As organizações começam a perceber que podem
dados como um banco de dados, o conceito de mashup não exige
colocar seus serviços bem definidos para produzir bits distintos de
esse recurso no local, nem para o software mashup nem para o cliente.
lógica do negócio com outros serviços existentes, internos ou externos
Os dados podem vir estritamente dos Web Services em que são
à organização, para fornecer visões novas e interessantes dos dados. serializados para XML ou JSON (este é o padrão mais comum em
mashups baseados em Internet). Existem compensações arquiteturais a
serem feitas, do armazenamento de dados primários no local ao
Figura 1: Arquitetura de um aplicativo mashup típico
acesso aos dados feito a cada solicitação. Na medida em que os
mashups deixam de ser aplicativos baseados em Internet para serem
internos à empresa, tendem a depender menos dos locais externos de
Serviços de armazenamento de dados.
Web Services “Feeds” RSS Plataforma
"Feeds" RSS
O uso de "feeds" RSS (Really Simple Syndication) é uma fonte comum
Aplicativo
de dados primários ou suplementares para mashups. Os "feeds" RSS
mashup são fáceis de serem consumidos pois são documentos XML e muitas
Dados
bibliotecas existem para manipular esses "feeds". O formato e a
especificação de RSS está bem documentada e entendida com apenas
poucas variações de uma versão para outra. A extensibilidade do RSS
também é bastante conhecida, como demonstra a quantidade de
extensões em uso atualmente, como a adição de vínculos aos "feeds",
informações de localização e licenciamento da Creative Commons.
Web Services
É também comum incluir chamadas para Web Services dentro dos
Aplicativo cliente mashups. É fácil ver Web Services baseados em WSDL e outros,

24 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Mashups Corporativos

cliente, com o surgimento das Rich Internet Applications (RIAs). As


Figura 2: Uso do BizTalk Services como um serviço de plataforma RIAs são aplicativos executados no navegador com funcionalidade
para a transmissão de informações
rica, similar àquela de muitos aplicativos de desktop. Tipicamente, não
exigem uma instalação do lado do cliente, além de um plugin
genérico, como o Adobe Flash ou Microsoft Silverlight.
Aplicativo cliente
“BizTalk Services” O mashup é distribuído e apresentado ao usuário como aplicativo
Serviço de cliente. Para mashups públicos de Internet, o aplicativo cliente mais
Identidade comum é um navegador web que recebe HTML e JavaScript
Confiança distribuídos de um servidor web sobre HTTP. Contudo, começamos a
Serviço de ver mashups sendo distribuídos também com plataformas RIA. Neste
Autenticar 3
conectividade modelo, o cliente pode fornecer mais riqueza visual e até algum
Abrir processamento do mashup no lado do cliente.
Conectar 1 Autenticar
2 Direção futura dos mashups
4 Conexão
Confiável Nas primeiras versões dos mashups, grande parte da implementação
era muito entediante e demorada. Muitos deles usavam o
Serviço
processamento do lado do servidor (quase sempre com PHP ou PERL)
Cliente
e o cansativo scripting do lado do cliente, na forma de JavaScript, para
criar a experiência de mashup. Era comum para a pessoa que criava os
mashups criar código personalizado para analisar os conjuntos de
baseados em REST, com alguns serviços expondo os dois estilos. Os retorno XML que recebiam das respectivas fontes de dados.
Web Services podem ser usados para oferecer dados adicionais ou Na medida em que o tempo passou e o processo de desenvolvimento
transformar os dados submetidos ao mashup. Para um mashup amadureceu, uma boa parte do trabalho entediante de codificação foi
baseado em mapa, os dados só podem conter endereços de ruas e substituída por frameworks e melhores padrões de codificação. Os
uma chamada para Web Service baseado em WSDL ou REST pode ser scripts personalizados no lado do servidor começam a serem
feita para converter o endereço de rua em uma coordenada substituídos por bibliotecas padronizadas que automaticamente
longitudinal/latitudinal para o mapa. gerarão o necessário script do lado do cliente. Presenciamos também
Serviços da plataforma a padronização dos formatos de mensagens. Um exemplo disso é a
extensão GeoRSS, para o padrão RSS, que permite especificar a
A Figura 2 representa uma classe especial de serviços, usadas para
longitude e a latitude correlatas dos itens do "feed". Os três principais
criar mashups. Estamos chamando estes serviços de plataforma
provedores de serviço de mapeamento (Google, Microsoft e Yahoo)
porque fornecem funcionalidade além do modelo típico
são compatíveis com GeoRSS e isso significa que os mashups com essa
solicitação/resposta dos Web Services tradicionais. Um exemplo típico
extensão RSS praticamente não exigem codificação.
disso é o mapeamento de serviços fornecido pelo Virtual Earth. Inclui
uma lista completa de capacidades de processamento dos dois lados, A criação de mashups foi domínio exclusivo do desenvolvedor, mas
cliente e servidor, assim como "serviços na nuvem". Estamos existe um movimento para colocar a habilidade de criar mashups
presenciando o surgimento de serviços de bloco de construção diretamente nas mãos do cliente final. Como os frameworks para criar
baseados na nuvem que começam a criar valor. Por exemplo, o serviço mashups tornam-se cada vez mais simples de usar e os formatos de
Amazon S3 oferece armazenamento "na nuvem": facilita a exposição mensagens tornam-se mais padronizados, o próximo passo lógico será
de todos os dados estáticos por meio de upload para provedor de o de construir ferramentas que possam criar mashups. Algumas dessas
armazenamento hospedado. O BizTalk Services da Microsoft é uma ferramentas serão destinadas ao consumidor final dos mashups. Pipes
plataforma de serviços que oferece uma capacidade diferente: da Yahoo e Popfly da Microsoft são exemplos de frameworks e
transmite comunicações da Internet por meio de um firewall ferramentas que permitem aos usuários criar os próprios mashups.
corporativo e, assim, expõe serviços internos para o consumo de Observamos um crescimento na importância do esquema comum e
parceiros de negócio ou terceiros que constroem os próprios mashups dos metadados no desenvolvimento de mashups. Na seção anterior,
corporativos. Comunicações transmitidas como fornecidas pelo BizTalk descrevemos como o esquema comum dos "feeds" RSS facilitam a sua
Services é também um serviço útil mesmo dentro de uma única incorporação nos mashups. Os mesmos princípios também precisarão
empresa, com muitas unidades de negócio ou com inúmeros ser aplicados a outros tipos de dados (robusto como é o RSS, não é
segmentos de rede. Uma transmissão de comunicações baseada em possível modelar todos os dados nesse formato). Atualmente, já
Internet pode eliminar a topologia de rede física como um obstáculo observamos o surgimento de outros esquemas-padrão, como a
às comunicações. linguagem de marcação de keyhole (KML - Keyhole Markup
Aplicativos mashup Language) para descrever dados geoespaciais. Ainda mais interessante
Até este pondo, identificamos muitos tipos de serviços que podem ser será o Microformats, framework de grante potencial, destinado à
utilizados na criação de mashups, mas não abordamos a importância distribuição de significado semântico, que pode ser facilmente lido
do software que cria e distribui a experiência de mashup. Pense no por software do tipo mashup.
aplicativo mashup como uma combinação de serviços de camada Mashups na empresa
intermediária e de lógica leve do negócio. Para mashups baseados na Uma ótima forma de explorar mashups na empresa é com um
Internet, o software é usualmente escrito utilizando tecnologias web exemplo. Imagine-se arquiteto de aplicativos de um sistema de call
(como PHP ou ASP. NET), mas estamos começando a ver a demarcação center que recebe chamadas sobre assistência técnica de garantia e
entre o processamento do servidor e a indefinição do aplicativo peças sobressalentes. Utilizando o número de telefone do chamador,

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 25


Mashups Corporativos

poderíamos exibir os registros desse usuário, incluindo um histórico endereço dos centros de assistência técnica do local do cliente. Em
de compras. Esse interessante aplicativo já está implementado em terceiro lugar, após sabermos as informações e a localidade do cliente,
muitas centrais de chamadas, atualmente. Mas e se, além de pesquisar cada um dos
as informações do cliente, pudéssemos plotar o número do telefone painéis de conteúdo são independentes e não exigem interação com
em um mapa, utilizando um serviço disponível ao público e também as outras partes. Esse procedimento permite reunir e agregar os dados
exibir uma lista de centros de assistência técnica do local ou
de cada uma das partes a serem executadas, de modo assíncrono.
fornecedores de peças dos produtos incluídos no mapa? Com esses
dados em mãos, poderíamos responder as perguntas dos clientes em Concretizar o retorno sobre o investimento (ROI) é uma preocupação
segundos. E se também pesquisássemos as condições atuais do tempo comum das implantações da arquitetura orientada a serviço (SOA).
nessa área ou as equipes de esportes do local e os resultados dos seus Muitas organizações consideram difícil justificar o investimento inicial
jogos recentes como início de conversação ou passatempo em da criação de serviços para diferentes funcionalidades, quando seria
chamadas de longa duração? mais fácil criar um aplicativo simples. Os mashups corporativos são um
grande exemplo de como um investimento em SOA pode
Utilizando este exemplo, a Figura 3 apresenta um mashup simulado
proporcionar grande valor. (Vide na barra lateral "Mashups deliver ROI
de atendimento ao cliente que poderia ser usado por um atendente
for IDV Solutions".)
no momento do recebimento de uma chamada. Combinando dados
de serviços públicos (como a previsão do tempo e o noticiário) com Aproveitar os serviços já construídos por você
fontes de dados internas (um blog de alertas do atendimento ao O retorno imediato de uma SOA pode ser concretizado quando as
cliente e um banco de dados de locais de assistência técnica), este organizações começam a mesclar e fazer a correspondência desses
aplicativo combina os elementos de mashup com a acessibilidade de serviços entre objetivos novos e existentes. Pode ser instigante iniciar
um portal. o aproveitamento dos serviços ou aplicativos nos modos jamais
Como mostra a Figura 3, o mashup incorporado coloca um volume imaginados no momento em que foram escritos. (Vide na barra lateral,
extraordinário de informações nas mãos do agente do serviço de “Quicken Loans leverages mashups for fast results” - Quicken Loans
chamadas: dos principais itens de serviço, para que as perguntas aproveita mashups para resultados mais rápidos)
possam ser rapidamente respondidas, até pesquisas reversas de Aproveitar os serviços construídos por terceiros
chamadas passadas para ter assunto para iniciar uma conversação. Este É importante compreender que não se pode ter todas as informações
tipo de mashup é estritamente interno mas proporciona valor do mundo e que há um retorno sobre o investimento bastante alto
significativo na primeira chamada, com qualquer cliente. quando você simplesmente aproveita o trabalho árduo de outra
Existem vários elementos-chave para o êxito deste mashup. Acima de pessoa, em lugar de reinventar a roda.
tudo, deve ser contextual à tarefa em questão. Em segundo lugar, Construir serviços que terceiros possam aproveitar
deve dar prioridade às informações na ordem em que, Outra oportunidade para as empresas, na medida em que os mashups
provavelmente, serão mais úteis. É preciso saber com quem estamos tornam-se cada vez mais populares, é a de construir serviços que
lidando, quais produtos estão registrados, quais os principais itens do possam ser facilmente consumidos por aplicativos mashups. Voltando
serviço que se destinam a esses produtos e, então, começar tentando ao exemplo que citamos, o atendente do serviço de chamadas pode
responder as perguntas do usuário como, por exemplo, qual o deixar o cliente feliz informando o endereço da loja
mais próxima. Mas, imagine se as próprias lojas
Figura 3: Exemplo de mashup para a nossa central de chamadas expusessem seus inventários e disponibilidade de
produtos para o mashup. Agora, o atendente do
serviço de chamadas pode fornecer informações
ainda mais detalhadas e valiosas ao cliente. Esse tipo
de serviço seria importante para o cliente, para a
central de chamadas e para a própria loja.
Plataforma ágil
Como discutido anteriormente, muitos mashups
foram criados para distribuição na plataforma web
baseada em padrões (HTML e Java Script). Isto não é
uma limitação dos próprios mashups, mas apenas a
forma padrão de distribuir aplicativos na Internet. À
medida que vemos os mashups entrarem na empresa,
observamos também um número crescente de
mashups construídos em plataformas RIA (como o
Flash da Adobe e o Silverlight da Microsoft) e até
mesmo o surgimento de mashups para desktop ricos,
completos, construídos em Windows Presentation
Foundation. O processamento em 3-D completo, em
plataforma de cliente rica, pode aumentar o apelo
visual do mashup. Os mashups corporativos podem
aproveitar totalmente essas plataformas mais ricas
pois muitas terão maior controle dos desktops.

26 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Mashups Corporativos

A atualização dos dados é importante


A Quicken Loans aproveita os mashups para resultados As decisões do negócio serão tomadas com base nos mashups
rápidos corporativos. Extrair dados de várias fontes pode ser perigoso, pois os
dados podem estar ultrapassados. Como com qualquer relatório que
sirva de base para decisões, é importante ter carimbo de data/hora
Durante a confecção deste artigo, falamos com Keith Elder da para identificação da última atualização. Esta característica aprimorará
Quicken Loans. Keith é arquiteto de um aplicativo interno que muito a clareza e a utilidade dos dados do mashup e a confiança com
utiliza mashups e serviços existentes para oferecer qualidade rápida que as decisões podem ser tomadas.
aos seus clientes. Esses serviços foram construídos nos últimos anos
como parte da iniciativa SOA da empresa. Não tente resolver os problemas dos dados corporativos
À medida que os mashups entram na empresa, é inevitável incorrer
Levamos informações e combinamos nossas telas com base em em fragmentação de dados e questões de normalização, em
todos os tipos de serviços. Nossos usuários finais não têm idéia de decorrência de anos de desenvolvimento de aplicativo legado. Por
que estamos aproveitando os serviços de toda a empresa para exemplo, fazer um mashup de vendas por área geográfica poderia ser
extrair dados, verificar a validação de endereço, visualizar a como criar um mashup lógico para o seu gerente geral de vendas.
atividade de chamadas, enviar faxes e muito mais. Para os membros Mas, e se os dados estiverem armazenados em três sistemas diferentes,
de nossa equipe, o aplicativo é apenas um produto apropriado que por linha de produto, tendo, cada sistema, diferentes regras de
lhes fornece a funcionalidade que precisam, na hora em que controle das estruturas de dados e do negócio? Recomendamos
precisam. descobrir um candidato melhor para tecnologias de mashup e deixar
Keith acrescenta que na Quicken Loans falou-se muito, no início, que um projeto mais tradicional (como um esforço de consolidação de
sobre a granularidade dos serviços ali construídos. Existem sistemas) resolva os problemas mais complexos.
compensações a serem feitas entre os serviços de uso específico e Compreender as questões de autenticação e autorização
aqueles de multiuso. Eles escolheram os serviços de uso específico, Autenticação e autorização podem ser impedimentos imensos para
que ofereceram funcionalidade bastante específica. Houve uma fazer um mashup de vários serviços, caso todos exijam autenticação de
compensação: talvez tenham de chamar vários serviços como parte acordo com esquemas diferentes. Por exemplo, poderá haver
de um único mashup. problemas se você tiver um serviço que exija nome de usuário e senha
e, outro, que exija um certificado X509. Essa situação não é
insuperável, mas pode ser uma grande barreira que deve ser
Tempo de resposta rápido
ultrapassada. Existem várias estratégias de ataque a esse problema.
Se você estiver aproveitando Web Services existentes e serviços de
Você pode evitar serviços que exijam autenticação ou autenticação
plataforma robustos, o tempo de desenvolvimento dos mashups pode
por métodos incompatíveis com o sistema. Ainda que você possa
ser medido em horas ou dias, em lugar de semanas ou meses . O
iniciar o processo dessa forma, a realidade é que há serviços que você
tempo de resposta rápido dos mashups pode mudar a forma de precisa aproveitar mas que não consegue, sem autenticação. Você
interação dos departamentos de TI com os usuários em suas organiza- poderia tentar forçar terceiros, ou pagá-los, para oferecer o tipo de
ções. O desenvolvimento conjunto e as várias iterações dos aplicativos autenticação que lhe seja conveniente. A realidade, entretanto, é que
entregues a curto prazo podem tornar-se metas mais realistas. o seu aplicativo provavelmente terá de ser compatível com a
Visualização rica dos dados de seus usuários autenticação do serviço utilizando muitos mecanismos diferentes, e
O maior benefício obtido pelos mashups é, talvez, a visualização que todos devem ser considerados.
criam para os usuários. Os dados de natureza visual são muito mais
Riscos
fáceis de entender e podem criar maior significado para o cliente. Isto
Ao implementar mashups, quatro áreas de risco devem ser
não se limita aos exemplos de mapeamento que discutimos até agora.
consideradas:
Outras técnicas, como os mapas de calor e os mapas em árvore,
também podem ser criadas como visualizações de dados em mashups. Dependências dos serviços
Um dos principais riscos da criação de mashups corporativos ocorre
Principais fatores de sucesso
quando se cria uma dependência dos serviços externa à sua empresa
Procure serviços utilitários de consumo (simples e não complexos).
(como "serviços na nuvem”). Os termos dos acordos de serviço
Quanto mais coisas um determinado serviço faz, mais difícil será o deveriam ser analisados antes de se criar uma dependência. Por
amálgama com outros serviços. Os serviços certos fazem uma coisa e exemplo, alguns serviços exigem que o software que usa o serviço seja
fazem isso muito bem. Por exemplo, um serviço cujo resultado inclui um site da Internet de acesso público; isto pode ocorrer quando o
dados de pessoal com seus endereços, empréstimos, automóveis, trens, serviço tem um modelo de receita baseada em publicidade. Os termos
aviões e automóveis pode estar oferecendo um volume de dados do serviço também podem estar sujeitos às mudanças, em alguns
muito grande. Talvez você queira criar um subconjunto do serviço cujo casos, de formas que poderiam impedi-lo de usar esse serviço. Para
resultado traga apenas nomes e endereços para o mashup, pois é uma minimizar essa preocupação, procure provedores de serviço cujo
perda de largura de banda e de processamento extrair dados que não modelo que se adapte ao seu uso.
serão utilizados.
Perda de fidelidade dos dados
Manter os mashups no modo somente leitura A perda de fidelidade dos dados exibidos é outro risco-chave. Na
Os mashups são visões ágeis dos dados que apresentam. Não são uma medida em que os dados são visualizados, existe uma tendência de
superfície de edição toda-poderosa, capaz de editar todas as informa- adaptar os dados aos limites da superfície de apresentação. Haverá
ções recebidas. Se alguém quiser editar esses dados, deverá voltar para uma tendência natural de não visualizar pequenos volumes de dados
o aplicativo que criou os dados para tal. O mecanismo para a edição ou de agrupar dados em coleções maiores para economizar espaço na
deve ser óbvio também. Este procedimento reduzirá drasticamente a superfície de apresentação. Isso pode "distorcer" a visão que o usuário
complexidade (e aprimorará a agilidade dos aplicativos mashup. final tem dos dados.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 27


Mashups Corporativos

Acreditamos que a baixa aceitação dos mashups na empresa deve-se à


Mashups geram ROI para a IDV Solutions relativa inovação da tecnologia comparada a outras incluídas na
pesquisa (como Web services, podcasts e "feeds" RSS). O fato de que
Recentemente, falamos com Ian Clemens da IDV Solutions
as ferramentas para a construção de mashups estão apenas
(integrador de sistemas que desenvolve aplicativos mashups para
clientes corporativos) sobre a velocidade com que os mashups são começando a surgir também faz a diferença (no momento em que
desenvolvidos. "Nossos clientes têm experimentado ROI escrevemos este artigo, muitas das mencionadas neste artigo estão
significativos decorrentes de mashups, não só devido a custos nos estágios beta e alfa). Estamos certos de que as técnicas serão mais
menores de implementação (se comparados ao desenvolvimento comuns e as ferramentas amadurecerão. Conceitos como o do
de software personalizado convencional) mas, também, devido a barramento de serviços para a Internet (página 2) devem facilitar a
aplicativos mais ricos e amigáveis, que simplificam muito os construção desses mashups corporativos, tornando-os mais úteis.
workflows do negócio", disse Ian. Acreditamos que os mashups têm um lugar na empresa e nós o
incentivamos a considerar a sua adoção.
Política
A política também pode ser um obstáculo à criação de mashups. Se o
Referências
serviço foi criado por terceiros, talvez faça (ou não) exatamente o que
“Consumerization Gains Momentum: The IT Civil War,” Gartner
você desejou e, para fazer com que o originador do serviço
Special Report, 2007 (resumo)
modifique-o de acordo com suas necessidades, demora muito. Essa
http://www.gartner.com/it/products/research/consumerization_it/
mentalidade não-foi-inventado-aqui é fatal para os mashups. Isso
consumerization.jsp
também se manifesta em confiança. Se não confia no provedor do
serviço, você também não confiará nesse serviço para o seu aplicativo “How Businesses are Using Web 2.0: A McKinsey Global Survey,” The
de missão crítica. McKinsey Quarterly, Agosto, 2007
http://www.mckinseyquarterly.com/article_abstract_visitor.
"Consumerização" não controlada
aspx?ar=1913
De acordo com um recente relatório do Gartner, Inc. as tecnologias de
consumo estão cada vez mais sendo utilizadas pelas empresas sem Mashup (Web application hybrid), Wikipedia
consciência, governança ou TI corporativo. Ferramentas voltadas ao http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29
consumidor têm enfoque rígido na criação e visualização de um Redfin - http://redfin.com
mashup, assim, pode ser muito fácil criar o mashup inicial, mas a
“Web 2.0 na empresa”, Michael Platt, The Architecture Journal,
manutenção de mais longo prazo não é considerada. Veja, também,
Jornal 12
como seria perigoso ter um usuário final carregando dados
corporativos em uma ferramenta pública de mashup como Pipes ou Zillow - http://zillow.com
Popfly.
Existem muitas formas de minimizar esses riscos. Primeiramente, para Sobre os autores
serviços internos ou externos, implemente um contrato de nível de Larry Clarkin é architect evangelist da Microsoft. A experiência de
serviço (SLA) que descreva claramente as responsabilidades das duas Larry em projeto e construção de aplicativos em várias tecnologias e
partes, tempos de resposta para requisições de mudança, exigências setores é superior a 15 anos. Ele se especializou na integração de
de tempo de processamento, restrições de largura de banda e todos tecnologias web com sistemas legados e ERP, tarefa que vem
os outros detalhes relevantes. Depois, esquematize as possíveis realizando há mais de 10 anos. Quando não está trabalhando com
exigências de emergência do seu aplicativo, caso haja falha na seus clientes, Larry poderá ser encontrado realizando palestras sobre
chamada de determinado serviço. Para alguns serviços, pode ser tecnologia para grupos locais de usuários. Para falar com Larry, visite o
aceitável simplesmente não apresentar esses dados; com outros seu blog no endereço http://larryclarkin.com.
serviços, você pode deixar os dados em cache aos quais poderá
Josh Holmes é architect evangelist da Microsoft. Antes de ingressar na
recorrer sempre que houver uma falha. Talvez seja preciso ter um
Microsoft, em outubro de 2006, Josh era consultor e trabalhava com
serviço secundário alinhado como backup, a ser chamado caso
vários tipos de clientes, desde as grandes empresas mencionadas na
alguma coisa horrível aconteça.
Fortune 500 às empresas de pequeno porte. Josh é palestrante
Por fim, será preciso abordar as questões e a política de freqüente e líder de equipe em conferências nacionais e internacionais
consumerização. Ao contrário da crescente confiabilidade e sobre desenvolvimento de software com enfoque nas tecnologias
redundância dos serviços, isto exige um processo de governança. Se a emergentes, projeto e desenvolvimento de software com ênfase em
sua organização tiver um processo amadurecido para governar o uso mobilidade e RIA (Rich Internet Applications). Preocupado com a
dos serviços, esse processo também deverá ser aproveitado para a comunidade, Josh fundou e/ou administra muitas organizações
criação e o consumo de mashups. tecnológicas do Great Lakes Area .NET Users Group à Ann Arbor
Conclusão Computer Society; também fez parte do comitê que instituiu o
Em pesquisa de janeiro de 2007 feita pela McKinsey perguntou-se a CodeMash. Para falar com Josh, visite o seu blog no endereço
clientes corporativos qual o nível de adoção das tecnologias de Web http://www.joshholmes.com.
2.0. Como seria de se esperar, muitos deles investiram ou estavam
planejando investir em uma ou mais tecnologias de Web 2.0. Para nós,
a parte surpreendente da pesquisa foi que os mashups estavam em
uso ou sendo considerados para uso por 21% dos entrevistados e a
maioria deles, 54%, sequer pensavam em adotá-los.

28 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Microsoft Office
como Plataforma de
Software + Serviços
por Chip Wilson e Alan Josephson

Resumo crítica, existe um formidável impulso por trás de uma classe de soluções
emergente conhecida como Office Business Applications (OBA).
Software + serviços (S+S) é uma visão para criar
Desde o Microsoft Office 2003, é possível construir-se aplicativos
arquiteturas de aplicativo que aproveitam ao máximo maduros sobre os aplicativos cliente do Office. Esta capacidade vai bem
recursos de ponta - os recursos dos dispositivos do além do que era possível com o Visual Basic for Applications (VBA).
cliente - para fornecer aos usuários finais experiências Embora mecanismos para integração de conjuntos de módulos
ricas e intuitivas. Esta visão representa uma etapa (assemblies) .NET em aplicativos Office estejam bem documentados, os
padrões de projeto específicos necessários para o aproveitamento pleno
incremental na direção do processamento universal, em e aprimorado da IU ainda não são bem compreendidos pelo setor.
que a tecnologia não mais interferirá nos processos de
No momento em que as técnicas para casar a IU do Office com os
raciocínio das pessoas, permitindo a humanos entender conjuntos de módulos do .NET estiverem dominadas (permitindo ao
melhor como máquinas funcionam e, a partir disto, código transferir informações de/para os documentos gerenciados
poderem realizar as suas tarefas. O Microsoft Office com pelo Office), conectar esses documentos a sistemas de back-end via
sua interface bastante conhecida, rico conjunto de serviços não será apenas lógico mas também relativamente simples,
presumindo-se que o trabalho de expor a lógica do negócio como um
serviços e base estabelecida de usuários corporativos é serviço já tenha sido realizada. Isso supera uma das maiores
uma fundação natural para a criação de aplicativos desvantagens de se implementar lógica do negócio significativa no
corporativos S+S. Office: o efeito colateral de se criarem ilhas de dados ou os chamados
"Excel Hell". Depois que os documentos estiverem conectados e

E mbora os recursos do dispositivo de processamento do cliente


possam ser aproveitados para oferecer uma interface de usuário
rica, não são adequados à execução da lógica e dos processos do
atuando sobre dados ao vivo nos sistemas de registro, eles se
transformarão em ferramentas em tempo real para automação dos
processos do negócio.
negócio, críticos para a empresa. Os recursos do sistema, idealmente
Conectar esses documentos diretamente a sistemas corporativos traz a
adequados para processos e armazenamento de dados do negócio
vantagem adicional de permitir o acesso às informações-fonte via
cuja hospedagem é de missão crítica estão, em geral, centralizados em
serviços, liberando o usuário final da tarefa entediante de fazer a
ambientes administrados, seguros, sob os olhos atentos da equipe de
entrada manual dos dados dos sistemas e relatórios da empresa nos
operações das áreas de TI. As interfaces de serviço são
documentos do Office. Depois que as etapas do processo
importantíssimas no aproveitamento dessas capacidades fundamentais
automatizadas pelo Office estiverem concluídas, as informações
do negócio a partir dos inúmeros dispositivos do cliente que oferecem
resultantes poderão ser novamente armazenadas nos sistemas
ricas interfaces de usuários. corporativos, mais uma vez via serviços, eliminando as tarefas
Muitas tecnologias e plataformas de cliente constroem o universo da adicionais de entrada de dados e garantindo a exatidão e a
computação de ponta, desde simples interfaces de navegador Web 1.0 temporalidade dos dados.
aos aplicativos .NET totalmente desenvolvidos, executados em
Um problema comum do negócio
desktops ou laptops. Muito já se fez a partir dos últimos anúncios da
Para que os negócios possam se desenvolver e manter vantagem
Microsoft sobre o Silverlight e os anunciados mecanismos do Google:
sobre a concorrência, é preciso elaborar a modelagem e as análises
novos lançamentos no espaço de processamento do cliente. Embora
financeiras com informações em tempo real, sem exigir que os
acrescentem capacidades novas e instigantes a muitas plataformas,
usuários acessem vários locais de armazenamento de dados. Os OBAs
existem outras tecnologias comprovadas que a base de usuários
agilizam o acesso às informações em tempo real, eliminando
existente conhece melhor. Um caso irrefutável pode ser criado para
processos manuais para a aquisição de dados e a obtenção de
permitir que as plataformas de cliente existentes sejam o "Software" no
definições de cálculo. Essas soluções permitem aos usuários do
padrão arquitetural software + serviços.
Microsoft Excel executar análises complexas com dados extraídos
Praticamente todos os knowledge workers de todas as empresas diretamente de data warehouses centrais, aplicativos ERP (Enterprise
conhecem o mesmo conjunto de aplicativos de produtividade: Resource Planning) ou de sistemas externos, via web.
Microsoft Office. O simples fato de que tantas pessoas tenham
Algumas limitações do modelo Office desconectado surgem das ilhas
aprendido como utilizá-lo, transforma-o em uma base natural para a
de dados armazenados em discos rígidos individuais e
criação de aplicativos corporativos. compartilhamentos de redes. Em primeiro lugar porque, de modo
Lançamentos recentes incorporaram funcionalidades ao Office típico, não há trilha de auditoria dos dados. Esse fato pode ser
transformando-o em algo muito maior do que um conjunto especialmente verdadeiro quando os documentos são enviados por e-
independente de aplicativos de produtividade. Agora, o Office é uma mail e alterações são introduzidas por várias pessoas, criando versões
plataforma de desenvolvimento de aplicativos madura que oferece um paralelas do documento. Depois, como os dados não são agregados,
rico conjunto de serviços sobre a qual constroem-se aplicativos fica difícil ou até impossível executar qualquer tipo de análise de
corporativos. Considerando que tantos knowledge workers já utilizam tendência. Por último, pesquisar muitos documentos para obter
esses aplicativos para implementar processos corporativos de missão informações específicas pode ser extremamente difícil e demorado.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 29


Microsoft Office como Plataforma de Software + Serviços

corporativos de registro, levando-as para um aplicativo familiar,


Figura 1: Como o Excel atua na versão Software + Serviços
baseado em Excel. Os dados em tempo real permitem a melhor
tomada de decisão ao oferecer um acesso mais preciso e imediato às
UI (Excel)
Painéis de informações.
gerencia-
mento A "Empresa C" é representada por um banco comercial, com uma
abrangente iniciativa de gerenciamento de capacidade. A iniciativa tem
Web
Service
por objetivo reunir a gerência de produto e vendas com as operações
bancárias e de TI e, como uma equipe transfuncional e unificada,
Ferramenta de cálculo identificar novas oportunidades de receita incremental para o banco
Serviços essenciais que aproveitem a capacidade não utilizada, medida e disponível.
Segurança Validação Agendamento As equipes transfuncionais, organizadas de acordo com uma estrutura
Definição Relatórios
de cálculo Auditoria Notificação Emissão de corporativa de gerenciamento de linha opera em um ciclo contínuo de
(excel) relatórios
gerência de desempenho do negócio na qual as projeções agrupadas e
as metas de desempenho são definidas e confirmadas a cada trimestre
e, posteriormente, revisadas com o comitê diretivo do gerenciamento
Exemplos do mundo real de capacidade de acordo com novas projeções para o trimestre ou
Para compreender melhor as características do problema do negócio, ciclo subseqüente.
examinar alguns exemplos do mundo real pode ser útil. Apresentamos
Para cada produto, a equipe de gerenciamento de capacidade
três cenários em que padrões arquiteturais foram utilizados para
construiu modelos em Microsoft Excel para os cálculos mensais e
resolver problemas similares do negócio em contextos e setores bem
geração dos resultados para painéis ou scorecards das informações de
diferentes.
gerenciamento. A conexão desses modelos diretamente aos sistemas
A “Empresa A” oferece planos de benefícios a funcionários de bancos corporativos que contêm os dados de custo e produção necessários
norte-americanos de pequeno porte e cooperativas de crédito que para realizar os cálculos de capacidade não apenas eliminou a entrada
desejam atrair e reter os melhores talentos executivos possíveis. Para se manual dos dados nas planilhas, como permitiu aos analistas executar
destacar da concorrência, a Empresa A oferece planos muito as análises de capacidade em tempo real, oferecendo feedback via
personalizados, que exigem intenso processo administrativo para painel, continuamente, e não apenas mensal ou trimestralmente.
garantir o nível mais alto de serviço ao cliente.
Solução
Contudo, oferecer esse nível de serviço personalizado cria desafios. Generalizando, essas três soluções recaem no padrão arquitetural
Benefícios como planos de seguro de vida são, em geral, registrados software + serviços, uma solução OBA utilizando o Excel como um
como ativos dos bancos que os compram para seus funcionários. cliente conectado a sistemas corporativos distribuídos via Web Services.
Assim, os planos precisam ser tratados como outros ativos financeiros Os Web Services recuperam informações atuais imediata e diretamente
importantes que refletem a completa saúde financeira da instituição, a na planilha do usuário. Os usuários autorizados podem fazer e aplicar
qual pode ser afetada por variáveis externas como as taxas de juros mudanças nos sistemas corporativos, assegurando que informações
mutáveis. A Empresa A deve monitorar os planos e as ferramentas de precisas estejam imediatamente disponíveis em toda a empresa.
financiamento continuamente e oferecer atualizações periódicas a seus
Todos os diagramas, gráficos, tabelas e outras ferramentas para
clientes. Para tanto, emprega administradores treinados para
emissão de relatórios que usam os dados modificados são
acompanharem de perto os detalhes da política e do plano de
automaticamente atualizados de modo a refletir as informações atuais,
benefícios como, por exemplo, as mudanças de beneficiários,
corretas. Esta solução permite aos usuários recuperar informações dos
flutuações da taxa de juros, cálculos de aposentadorias e outros fatores.
sistemas corporativos de forma transparente levando-as para um
Historicamente, esses administradores de planos trabalharam com aplicativo familiar, baseado em Excel. As informações em tempo real
vários sistemas e software, inclusive os bancos de dados Microsoft permitem a melhor tomada de decisão ao oferecer um acesso mais
Access e SQL Server, programas do Microsoft Office como o Excel e preciso e imediato às informações. A administração e a manutenção do
inúmeros outros processos documentais, incluindo formulários em aplicativo OBA são simplificadas pela implantação das alterações de
papel. (Vide Figura 1.) uma biblioteca central de documentos.
A "Empresa B" é representada por uma empresa de serviços de suporte Benefícios no mundo real
e administradora de investimentos imobiliários que presta serviços Vamos ver como essa solução geral forneceu valor concreto ao
completos, gerenciando investimentos em total superior a $20 bilhões negócio nos três cenários mencionados acima.
na América do Norte, Ásia e Europa. A equipe de gerenciamento de A Empresa A simplificou os principais processos do negócio
risco tem por enfoque maximizar o potencial do portfólio global da organizando melhor e centralizando seus documentos. As tecnologias
empresa pela monitoração contínua dos instrumentos de de Web Services criaram flexibilidade nos sistemas de TI da empresa,
financiamento e das propriedades que possui. O grupo mantém um ajudando os gerentes a incluir e modificar características do plano para
banco de dados abrangente para o gerenciamento dos ativos e administradores, sem prejudicar os recursos internos. E o que é mais
depende muito do Microsoft Excel para elaborar análises de suas importante, a empresa continua em seu curso anual de crescimento,
inúmeras e variadas propriedades. firme, com acréscimos mínimos de pessoal.
A equipe queria ter condições de executar análises complexas de O tempo economizado pela solução aparece igualmente em outros
gerenciamento de risco com dados obtidos diretamente dos sistemas processos do negócio, inclusive naqueles que afetam diretamente as
corporativos. A solução OBA permite aos usuários do gerenciamento comunicações regulares da Empresa A com bancos. Se um banco
Para cada produto, a equipe de gerenciamento de capacidade de risco chama a Empresa A e deseja experimentar um cenário "what-if" de
recuperar informações de forma transparente dos sistemas determinada política - digamos que o banco deseja analisar os custos

30 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Microsoft Office como Plataforma de Software + Serviços

O framework de segurança faz uso do recurso segurança de acesso a


Figura 2: Componentes do framework da lógica do negócio código do .NET. O uso desse recurso reduz a probabilidade de que o
aplicativo possa ser utilizado inadequadamente por código malicioso
Módulo do processador de IU do
processador de ou mal programado. Outra vantagem é a sua capacidade de permitir
cálculo
• Intérprete de metadados
cálculo aos administradores do sistema especificar os recursos que podem ser
• Gerente de conectividade
utilizados por um aplicativo e restringir o acesso do usuário a pastas de
• Mecanismo de execução Pasta de trabalho do trabalho ou servidores específicos, de acordo com a sua função.
Excel, Office Open XML
• Local (modelo de objeto Excel) Para abordar o problema de manter simultaneamente várias versões da
• Excel Services pasta de trabalho do Excel em toda a empresa, criou-se um framework
Metadados
• Gerente de persistência de cálculo para controle de versões de uso geral que permite aos desenvolvedores
atualizar os conjuntos de módulos associados aos documentos e aos
Serviço do dados ali contidos. Antes de os resultados poderem ser submetidos aos
processador do Armazenamen- IU do agendador de
trabalho de to de dados trabalhos de cálculo sistemas corporativos, o componente cliente do OBA determina se
cálculo do trabalho de
cálculo existe uma versão mais nova do documento por meio de consulta via
Web Service. Se este for o caso, os conjuntos de módulos do .NET são
associados à antecipação da data de aposentadoria de determinado descarregados para atualização dos dados, da lógica do negócio e IU
executivo - agora leva dois minutos, ou menos, porque todos os dados da pasta de trabalho. Se os dados da pasta de trabalho satisfizerem sua
estão agregados e facilmente acessíveis. No passado, esse processo lógica de validação atualizada, o carregamento continua com os dados
poderia ter levado até três dias pois o administrador teria de pesquisar colocados na versão correta.
as planilhas relevantes para extrair os dados adequados. Para executar as regras do negócio e os mapeamentos de dados
Os analistas da Empresa B continuam a usar a interface familiar do especificados no framework da lógica do negócio, um framework de
Microsoft Excel para modelar o seu portfólio imobiliário. Utilizando o execução lê na pasta de trabalho a lógica do negócio, armazenada
Excel como cliente em um OBA proporcionou-lhes um ambiente rico e como metadado. A seguir, o framework interpreta e executa as
robusto para interação com os sistemas corporativos. Aprimorou e instruções com base em um simples conjunto de instrução extensível.
simplificou os processos de análise dos usuários, oferecendo-lhes os Esta abordagem interpretada permite aos desenvolvedores adicionar
dados que precisam, na forma em que já estão acostumados a facilmente novos tipos de instrução, conforme necessário, entregando-
trabalhar. os a designers de pasta de trabalho, não desenvolvedores, por meio de
Os Web Services oferecem uma forma transparente para a troca de assistentes amigáveis.
grandes volumes de informações pela rede, simplificando a forma com Aplicativo de otimização de capacidade
que aplicativos cliente geram solicitações para os sistemas corporativos Para entender melhor a arquitetura da solução, examinaremos a
e permitindo aos desenvolvedores construir inteligência no aplicativo. solução de gerenciamento de capacidade da Empresa C mais
A Empresa C aproveitou o Excel para fornecer uma interface de cliente detalhadamente. O enfoque, neste caso, estará em como um
rica para que os analistas de negócio possam construír modelos de desenvolvedor de pasta de trabalho aproveita o framework que contém
utilização fundamentados nos princípios do cálculo de custos baseado a lógica do negócio para fazer a conexão de pastas de trabalho com
em atividade. Ao permitir que esses modelos extraiam dados ao vivo de sistemas corporativos via Web Services e "executar" as tarefas de cálculo
recursos e custos dos sistemas de back-end, a Empresa C pôde criadas para a pasta de trabalho nos cenários de cliente e servidor. A
automatizar o processo para determinar quais pontos de capacidade solução geral compreende quatro componentes (vide a Figura 2):
não utilizada poderiam gerar receita adicional sem afetar os custos fixos
associados ao produto e, assim, aumentar as suas margens. Ao fornecer
"
Módulo processador de cálculo para configurar, salvar e executar
uma tarefa de cálculo (usados nos dois cenários: cliente e servidor);
informações de utilização calculadas aos sistemas corporativos, os
painéis de gerenciamento puderam apresentar não apenas as "
IU do processador de cálculo que implementa a IU do módulo
informações de utilização de capacidade atuais e periódicas, mas processador de cálculo;
executar análises de tendências que ajudam a gerência a tomar "
Serviço do processador do trabalho de cálculo para cálculos em
decisões sobre onde concentrar recursos futuros de marketing e
execução no servidor utilizando os serviços Excel chamados de um
vendas.
serviço Windows;
Solução técnica
Ao solucionar três problemas diferentes com a mesma abordagem
"
Agendador de trabalhos de cálculo para configurar a execução
arquitetural, várias características comuns tornaram-se aparentes e baseada em tempo dos trabalhos de cálculo.
vários frameworks implementados são suficientemente gerais para Criação de tarefa de cálculo
serem utilizados em projetos futuros. O módulo processador de cálculo é responsável por modelar e
O framework da lógica do negócio permite aos designers de pastas de seqüencialmente executar as etapas que formam uma tarefa de cálculo.
trabalho (usuários Excel qualificados que conhecem as relações dos Tarefa de cálculo é uma unidade de execução assim denominada por
dados de uma pasta de trabalho e sua apresentação) modificar as regras compreender um conjunto simples de etapas de cálculo que descrevem
do negócio do sistema sem incluir um desenvolvedor para recompilar e como:
reimplantar o código. O acesso baseado em função para metadados da "
chamar métodos de Web Service para transferir dados de/para a
pasta de trabalho proporcionam uma IU especial para esses designers, pasta de trabalho;
permitindo-lhes executar tarefas tais como modificar o comportamento
de uma pasta de trabalho, alterar itens de menu, controlar como os "
transferir dados dentro da própria pasta de trabalho;
dados dos sistemas corporativos são mapeados por meio de Web "
conectar eventos de IU do Excel para reagirem às interações do
Services para campos das pastas de trabalho e ocultando ou exibindo usuário (executado apenas quando a pasta de trabalho está aberta
planilhas ou linhas e colunas individuais baseadas em dados. no cliente).

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 31


Microsoft Office como Plataforma de Software + Serviços

Figura 3: Criação de etapa de cálculo com base em método Figura 4: Mapeamento de um esquema gerado do método do
do Web Service Web Service
Add Web Service Method Invocation Step

et Expenses Rename / Dele


Delete / Run
Web Service URL
Make sure to provide a simple, but explanatory name for this input eld .
t FTEs Rename / Dele
Delete /
http://companyc.com/Services/CalculationReslts.asmx?wsdl Retrieve Methods
t Product Stats Rename / Dele
Delete / Run

Web Service Method


t Resource Cost Driver Stats Rename / Dele
DeleteSelect
/ Runa method to call from this web service.

SaveFunctionalCalculation
Add a Step Description: Transmits results of a functional calculation to the system of
record for a product, site, and reporting period.
Inputs: Reporting Period Start <datetime>
2 Steps) Edit / Delete Reporting Period End <datetime>
Product Code <string>
> Site Code <string>
Capacity Metric By Function Calcs <object>
Capacity Based Unit Cost Calcs <object>
(4
4 Steps) Edit / Delete Hour Rate Calcs <object>
Capacity Based Unit Cost Summary Calc <object>
Hour Rate Summary Calc <object>

Outputs: Status <string>


Updated <datetime>

Step Name
Make sure to provide a simple, but explanatory name for this step.
Save Functional Calculation Results

Add this Step

Além disso, uma tarefa de cálculo possui um conjunto de entradas Adicionalmente à criação de etapas de cálculo, o designer da pasta de
fornecidas pelo usuário para acionar a execução da tarefa. trabalho também especifica entradas bem tipadas para configurar
Um designer de pasta de trabalho usa o assistente de conexão para uma tarefa de cálculo utilizando um assistente de entrada de tarefa de
adicionar chamadas de método do Web Service específicas para uma cálculo para especificar nomes de entrada e seus respectivos tipos de
tarefa de cálculo (vide Figura 3). Ao especificar o identificador de dados. O processador de cálculo gera de modo dinâmico uma XSD
recurso uniforme (URI) para uma WSDL (Web Service Definition correspondente às entradas a qual é, depois, adicionada à pasta de
Language) do Web Service, seus métodos e respectivas assinaturas são trabalho como um mapa XML Excel e mapeada para as células da
recuperados e apresentados ao designer da pasta de trabalho que, planilha, como anteriormente mostrado na Figura 4. Quando a tarefa
depois, acrescenta um método de interesse para a tarefa de cálculo de cálculo é executada no cliente Excel, o sistema apresenta ao usuário
como uma etapa do cálculo. um formulário gerado que solicita os valores das entradas (vide Figura
5). Quando executado pelo processador do trabalho de cálculo no
Uma vez acrescida, o processador de cálculo gera, de modo dinâmico, servidor, são usados os valores das entradas especificados pelo
uma definição de esquema XML (XSD) correspondente às entradas e agendador de trabalho de cálculo.
saídas do método do Web Service, incluindo-a na pasta de trabalho
Execução de tarefa de cálculo
como um mapa XML do Excel. A seguir, o designer da pasta de
O mecanismo de execução é o coração do módulo processador de
trabalho faz o mapeamento dos elementos individuais do mapa XML
cálculo. É responsável por interpretar a chamada do método do Web
para as planilhas utilizando o recurso arrastar-e-soltar do painel de
Service, copiar as etapas de dados e executá-las na ordem especificada
tarefas-fonte XML (vide Figura 4). Essas tarefas serão valores escalares
pelo designer da pasta de trabalho em uma tarefa de cálculo. Quando
mapeados para células individuais ou coleções de elementos que se
o Excel é executado em um cliente, o mecanismo de execução acessa
repetem, mapeados para tabelas do Excel 2007, anteriormente
diretamente o modelo de objeto Excel, utilizando os mapas XML para
conhecidas no Excel 2003 como listas Excel. Enquanto os mapas XML vincular dados de/para planilhas. Quando executado no servidor,
preservam a estrutura hierárquica dos objetos proxy do Web Service, utiliza o Excel Services para realizar a vinculação, o cálculo e a
estes ficam desnormalizados quando mapeados para tabelas ou pastas recuperação dos dados.
de trabalho do Excel.
Ao colocar em serviço pastas de trabalho existentes, quase sempre
Figura 5: Execução de uma tarefa de cálculo
recomenda-se preservar a apresentação dos dados na pasta de
trabalho. Muitas vezes, dados similares não são apresentados na forma All Workbook
Workbook Tasks
Tasks
T Create a New Task
de tabela, como exigido pelo mapeamento de elementos que se
repetem nos mapas XML. Além disso, existe um limite para mapas - Run Capacity Management Calculation (4 Steps) Edit / Delete Run Task
XML do Excel, ou seja, as células de mapeamento não podem se Performs the capacity management calculation for a
reporting period, site, and product. Debug Task
sobrepor àquelas de outros mapas XML. Nesses casos, algumas vezes é
Run Capacity Management Calculation
preciso transferir dados de uma faixa de células da planilha para outra,
1. Reporting Period Start / Date
e Edit / Delete
para fazer com que as entradas e saídas do serviço "fiquem em linha". Reporting Period Start
Um tipo de etapa de cálculo denominada copiar dados permite ao 2. Reporting Period End / Date Edit / Delete

designer da pasta de trabalho especificar como duplicar dados para Reporting Period End 3. Product Code / List Edit / Delete

outros locais de uma pasta.


4. Site Code / List Edit / Delete
Nos cenários em que o Excel é usado no cliente para edição e Product Code

atualização de dados, algumas vezes a lógica do negócio em dados Add an Input


Site Code
recuperados exige mudanças dinâmicas na IU do Excel. Tal etapa de
manipulação de dados da pasta de trabalho poderá, por exemplo,
ocultar e exibir dados das planilhas com base em valores específicos Continue1. Get Expenses Rename / Delete / Run

dos dados. Um tipo de etapa modificar IU permite ao designer da 2. Get FTEs Rename / Delete / Run
pasta de trabalho fazer a conexão dessas interações.
3. Get Product Stats Rename / Delete / Run

32 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Microsoft Office como Plataforma de Software + Serviços

Programação e execução de trabalho de cálculo


Figura 6: Programação de um trabalho de cálculo
O agendador de trabalhos de cálculo é um aplicativo pelo qual
Edit Job usuários administrativos configuram pastas de trabalho e os
respectivos trabalhos de cálculo para execução em hora marcada (vide
Name
Create a New Jo b
ed Jobs View Job Logs Make sure to provide a simple, but explanatory name for calling this task.
View Figura 6). As informações fornecidas são:
Monthly Cap Man - Dalla s
Scheduled
Schedul Jobs
s Edit / Delete
T.
elete
Document to Use Run Job
"
caminho da pasta de trabalho;
Monthly Cap Man - Dalla Select the spreadsheet that you'd like to use with this job.
Monthly Cap Man - Dalla
T on 1/1/2007
This task runs daily at 6:00am CS CapMan.xls x Browse Load
"
identificação de qual tarefa de cálculo da pasta de trabalho deve ser
Last run at 6:00am CS
Tulsa Edit / Delete
Tulsa Task to Run
Run Job
executada;
Weekly Cap Man - T
T
T.. Run Capacity Management Calculation
d Last run at 2:00am CS T on 1/1/2007
ly Disabled
This task runs weekly on Sunday at 2:00am CS
1
Schedule
T. Run Job
Provide Input Values
"
programação da execução (recorrente ou data de execução única);
Currently
Current Disable
Cap Man - Kansas City Edit / Delete
y on Januar y 1st at 2:00am C
You should provide a fairly detailed description of the purpose of this task
and a high-level overview of the steps involved. "
entradas iniciais para o trabalho de cálculo conforme determinado
Annual Cap Man - Kansas City
T on 1/1/2007 Daily at 00 : 00 UTC pelos metadados da tarefa de cálculo;
This task runs annually
annuall on January 1st at 2:00am CS
Weekly on Sunday at 00 : 00 UTC "
caminho da pasta na qual os instantâneos de auditoria da pasta de
Monthly on the 1st at 06 : 00 UTC trabalho devem ser armazenados.
Once on January at 00 : 00
1st 2007 UTC
O serviço do processador do trabalho de cálculo é executado como um
Save/Create this Jo b
serviço do Windows e chama o módulo do processador de cálculo
sempre que um critério de programação de um trabalho de cálculo for
satisfeito. As entradas iniciais fornecidas no momento em que o
Limitações atuais do Excel Services proíbem que pastas de trabalho trabalho foi programado são transferidas para o cálculo e o trabalho
com mapas XML sejam abertas no servidor. Para contornar essa de cálculo da pasta é executado utilizando o Excel Services.
limitação, o módulo processador de cálculo extrai as informações de Opcionalmente, um instantâneo da pasta de trabalho (depois de
vinculação armazenadas nos mapas XML de uma pasta de trabalho, concluída a tarefa de cálculo) pode ser gravado em local
remove os mapas XML e apresenta uma cópia "limpa" ao Excel predeterminado para fornecer uma trilha de auditoria do trabalho de
Services. As etapas de chamada do método do Web Service utilizam cálculo.
estas informações de vinculação para determinar como configurar e Conclusão
obter faixas de células dentro da pasta de trabalho por meio da API do Esta abordagem arquitetural para resolver problemas do negócio
Excel Services. Esta abordagem é similar ao modelo "push" em que os
extremamente comuns tem sido utilizada muitas vezes, ultimamente.
dados são alimentados para o documento utilizando a estrutura de
Provou-se robusta e confiável, agregando incrível valor ao negócio.
controle explícita na tarefa de cálculo. Uma abordagem alternativa que
Em um dos casos, esta solução revolucionou completamente o
aproveita as funções definidas pelo usuário (UDFs - User Defined
modelo de negócio da empresa, permitindo uma oferta de serviços da
Functions) do Excel para encapsular as chamadas do Web Service
qual que nenhum outro concorrente poderia sequer se aproximar.
também é possível, mas apresenta várias limitações, inclusive:
A visão software + serviços de IUs ricas em dispositivos do cliente
"
ter de confiar no gráfico de dependência da planilha para o chamando serviços na nuvem adapta-se muito bem ao sistema do
seqüenciamento das chamadas do método do serviço (sem controle Microsoft Office, especialmente porque a IU oferecida pelo Office é
explícito);
absolutamente universal e conhecida.
"
apenas um volume predeterminado de dados pode advir das UDFs
pois a lista de tipos de valor de retorno deve estar vinculada a faixas
fixas do Excel; Referências
Denise Partlow, EMC Global Services (ex-Geniant, LLC). “Improving
"
exige manutenção adicional para implantar e fidelizar UDFs nos
Data Integrity in Financial Analyses”. Abril, 2006.
termos do Excel Services.
Denise Partlow, EMC Global Services (ex-Geniant, LLC). “Real Estate
O gerente de persistência abstrai o armazenamento dos metadados do
Firm Simplifies Risk Analyses with Web Services and Excel Smart
processador de cálculo. Os metadados serializados ficam armazenados
Clients”. Abril, 2006.
como uma parte XML personalizada (recurso novo do Excel 2007)
dentro do pacote Office Open XML que representa a pasta de Microsoft Office Business Applications http://office.microsoft.com/en-
trabalho. Dessa forma, todas as informações sobre o trabalho de us/products/FX102204261033.aspx
cálculo ficam armazenadas na própria pasta de trabalho, disponível
para o serviço do processador do trabalho de cálculo.
Sobre os autores
A IU do cliente de cálculo pode ser implementada como um add-in do
Chip Wilson é arquiteto corporativo da EMC Global Services. Seu mais
Excel ou como uma personalização do Excel que acrescenta itens de
recente livro publicado, Transparent IT: Building Blocks for an Agile
menu para que a IU do Excel tenha acesso a um jogo de formulários
Enterprise (www.TransparentIT.com), descreve um framework e
do Windows. Esses formulários ampliam a IU do Excel por meio de um
roadmap detalhados para a adoção de uma arquitetura orientada a
conjunto de assistentes para que um designer de pasta de trabalho,
serviço e a criação de uma empresa ágil.
não desenvolvedor, possa configurar, salvar, expor uma tarefa de
cálculo para execução, executá-la diretamente ou examinar suas Dr. Alan Josephson é consultor sênior de prática da EMC Global
etapas de cálculo. Outra classe de usuário, sem autorização para Services, especializado no desenvolvimento do sistema Microsoft
modificar o cálculo, poderia ter acesso restrito apenas para a interface Office. Criou soluções personalizadas de Smart Client e Office
de execução. Automation para clientes nos setores financeiro, de seguros e energia.

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 33


Um Planeta Regido por
Arquiteturas de Software
por Gianpaolo Carraro

O mundo da arquitetura de software deu um passo "gigante" à


frente quando passou dos acrônimos de três letras (SOA e ESB)
para os acrônimos de quatro letras (AJAX e SaaS). Como você pôde
experiências não fazem parte de suas tradições. A Tabela 1 compara os
prós e os contras da vida em Desktopistan.
Grão-ducado de Enterprisia
testemunhar nesta edição, agora temos um novo acrônimo que inclui
Forte aliado do império Big-Iron durante a época da escuridão, o
um caractere não alfanumérico: S+S (software + serviços). Agora, duas
Grão-ducado de Enterprisia reinventou a si mesmo durante a
perguntas povoam nossas mentes:
renascença. A dependência do império esvaiu-se dada a maior
1. Os analistas se sentirão ameaçados por esta nova geração de influência de Desktopistan. As motivações não foram filosóficas mas,
acrônimos e aumentarão a aposta introduzindo outros que exijam
sim, fundamentadas na vantagem econômica dessa mudança. Tal fato
codificação Unicode?
não surpreende pois o Grão-ducado foi sempre dirigido como uma
2. Como posso transmitir de modo eficaz a visão S+S em minha "economicracia", ou seja, todas as decisões políticas devem resultar em
organização? maior valor para o total dos ativos do Grão-ducado. De acordo com
A resposta da primeira pergunta é: só o tempo dirá! Tentando essas regras, algum descontentamento da população é aceitável,
responder a segunda, entretanto, quis explorar uma analogia, a de um especialmente se a felicidade for considerada muito cara.
planeta com eras imaginárias em que cada uma delas é dominada por Ainda que apenas em princípio, o Grão-ducado está aberto à adoção
uma civilização específica, metaforicamente representando um estilo de novos modelos para vantagens globais aprimoradas, mas adota
de arquitetura. Faz sentido? Espero que sim. Vamos começar… posição bastante conservadora para aceitar tais modelos, ferramentas
A época da escuridão e equipamentos. Essa lenta adoção, usada como um mecanismo de
Architectopia nem sempre foi um lugar feliz como hoje. Não faz muito proteção, é fiscalizada pelo influente "comitê pragmático de novas
tempo, a maior parte de suas terras era dominada pelo império Big- adoções" formado por 27 membros resolutos. De acordo com os
Iron. Embora não sendo maligno, o império Big-Iron impunha regras governantes do ducado, a adoção lenta é um preço pequeno a se
muito rígidas sobre as populações locais; naqueles dias, a liberdade de pagar pelo rigor e controle permitidos pela disseminação disciplinada
expressão era bastante limitada. Nessa época da escuridão, não havia de tecnologia nova. Posto isto, pode-se observar que muitos chefes de
outra opção a não ser cumprir respeitosamente a autoridade central vilas não se queixam do lento processo de adoção e assumem novos
do imperador Mainframe I. modelos localmente, sem a permissão do Grão-duque. Em geral, é
sempre muito tarde para que o Grão-duque altere qualquer coisa no
A renascença
momento em que fica sabendo do fato.
A renascença foi um tempo de inovação rápida que viu o surgimento
Observando-se o lado positivo, elevados padrões de qualidade são
de novos sistemas políticos, o início da ciência moderna e a
prevalentes em todas as disciplinas. A infra-estrutura do ducado
exploração geográfica. Nesse tempo, os Architectopianos acalentavam
um forte desejo de emancipação que trouxe certo declínio ao império (estradas e energia elétrica) embora antiga, é bastante confiável e
Big-Iron e a criação de vários Estados poderosos, notadamente: a raramente passa por períodos de interrupção. O sistema legal também
República de Desktopistan e o Grão-ducado de Enterprisia. é bastante desenvolvido e os acordos de serviço contratual são, em
geral, bastante respeitados.
A República de Desktopistan
Ultimamente, como parte do seu plano de crescimento de cinco anos,
A República de Desktopistan foi instituída com base nos princípios da
o próprio duque concedeu autorização à Sociedade da Ordem e
individualidade e da independência. Chegou aonde as regras limitam
Abundância (SOA) para reformar grande parte do modo de operação
a expressão. Agora, todos podem ter acesso à literatura, matemática e
do ducado. Ainda não se sabe ao certo se benefícios substanciais serão
arte; para que isso ficasse garantido a todos, um livro, um ábaco e
obtidos sem reformas mais fundamentais do Grão-ducado, mas as
uma tela podiam ser encontrados sobre as mesas de cada lar.
esperanças são grandes. A Tabela 2 apresenta os prós e os contras da
Nenhuma casa da república é igual à outra, todas têm layout vida no Grão-ducado de Enterprisia.
personalizado, papel de parede feito em casa e equipamentos
adicionais diferentes como espaço extra de armazenamento,
iluminação ativada por voz e, como norma, TVs de tela grande. Em Tabela 1: Prós e contras da vida em Desktopistan
Desktopistan, espera-se que os artesãos produzam artefatos que se
adaptem a esses ambientes e equipamentos adicionais personalizados. Prós Contras
Muitos detestam cortador de cookies e abordagens de denominador
• Experiências ricas • Experiência isolada
comum.
• Pleno uso dos recursos locais
Contudo, a forte individualidade da cultura tem um preço: é uma • Extensibilidade
sociedade muito solitária. Reuniões sociais e compartilhamento de

34 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


Um planeta regido por arquiteturas de software

Tabela 2: Prós e contras da vida no Grão-Ducado de Enterprisia Tabela 4: Prós e contras a vida em Deviceland

Prós Contras Prós Contras

• Padrões de qualidade elevados • Adoção lenta, aceitação lenta • Mobilidade


• Fator forma pode degradar
• Contratos e acordos de nível de • Falta de agilidade • Acesso em qualquer lugar toda a experiência
serviço baseados na economia • Muitos dados legados • Fator forma
• Governança

A erupção do monte Web A única exigência é passar algum tempo ao final da experiência de
A República Popular do Mundo On-line é uma jovem nação instituída compras na frente de uma grande tela na qual exibe-se propaganda
em um novo continente criado pelas violentas erupções do monte (ironicamente, do Grão-ducado de Enterprisia). O tempo que você
Web. Em muitos aspectos, a República Popular se rege por valores deve passar assistindo a propaganda é diretamente proporcional ao
opostos aos do Grão-ducado de Enterprisia. Na mesma medida em valor estimado da sua experiência de compra. A Tabela 3 apresenta os
que Enterprisia é dirigida a processo, com sistemas centralizados, a prós e os contras da vida na República Popular do Mundo On-line.
República Popular caminha rápido e é centrada nas pessoas. Em lugar Deviceland
de confiar em práticas definidas e bem comprovadas, os cidadãos da Kermit-TTY, o primeiro governante de Deviceland, chegou atrasado na
República Popular preferem o procedimento tentativa-e-erro. Outro reunião do Tratado de Divisão de Architectopia, pelo qual os vários
ponto divergente trata da habilidade artesanal. Fica claro que as continentes foram alocados às várias civilizações antigas
qualidades leve e funcional são as preferências da República Popular (supostamente porque "não recebeu o memorando"). Desde então, os
para seus produtos artesanais, em detrimento da elegância ou habitantes de Deviceland são obcecados por ter acesso às informações
durabilidade. Até mesmo no tempo parecem diferentes pois o restante a qualquer hora, em qualquer lugar.
de Architectopia rege-se por anos orbitais longos e na República Formados por tribos nômades de guerreiros errantes, os residentes de
Popular o tempo é contado em dias lunares meridionais, muito mais Deviceland adaptaram plenamente seus hábitos para acomodar-se ao
curtos. estilo de vida apressado, sempre em alta velocidade. A perspicácia das
Um ditado popular desse país (considerado herege em Enterprisia) diz tribos não deve ser subestimada: é prática comum para eles observar o
“vamos tentar e ver o que acontece”. Explosões são freqüentes nos que está acontecendo nos outros países e adaptar os avanços que
laboratórios da República Popular. Muitos nem se surpreendem pois encontram à sua vida nômade - quase sempre, entretanto, à custa da
os cientistas, em sua maioria, são adolescentes que aspiram ser riqueza da experiência.
alquimistas e que se recusaram a cursar as melhores universidades do Em Deviceland, as tribos vivem muito felizes em territórios isolados,
Grão-ducado de Enterprisia. Em vez de irem à escola, preferem mas mantêm contato constante entre si e com a cidade da capital. O
dedicar sua energia inesgotável procurando pela pedra filosofal a qual, lugar mais provável no qual se encontram membros das tribos são
no dialeto local, denomina-se "IPO". Pela perspectiva sociológica, é pontos específicos conhecidos como Hot Spots. São muito populares
interessante notar que muitas dessas experimentações são em Deviceland pois fornecem "o suco", uma fonte de energia
patrocinadas por uma sociedade secreta conhecida por duas letras: necessária para todos, assim como "sinal forte", campo
C.R. (capital de risco). Entretanto, nem todos os experimentos eletromagnético quase-místico, que fornece um profundo sentimento
terminam em explosões: os poucos que tiveram êxito, em geral, de paz às pessoas. Os Hot Spots são o tema central do hino de
modificam a face de Architectopia e tornam-se modelos para todos os Deviceland: "Agora você me escuta?" A Tabela 4 lista os prós e os
outros países, ainda que adaptados às culturas locais. contras da vida em Deviceland.
Um valor fundamental da cultura da República Popular é o enfoque O novo mundo
nas formas de trabalho centradas nas pessoas, que permitiu o A recente colonização de Servicetopia, anteriormente territórios hostis
estabelecimento de uma infra-estrutura de comunicações muito de Architectopia, lançou algo novo. Em lugar de viverem isolados em
avançada. Nesse país, muito pouco parece ser divertido, se não for cidades-Estado como era o hábito em sua terra natal, os colonizadores
feito em grupo. O trabalho é feito em grupo, reuniões sociais em do velho mundo, especialmente a República de Desktopistan, o Grão-
massa são comuns e alcançar todas as pessoas é o principal estandarte ducado de Enterprisia, a República Popular do Mundo On-line e
de sua filosofia. Deviceland estabeleceram casamentos inter-raciais e mesclaram seus
valores.
Um aspecto final do interesse cultural da República Popular é a noção
de que todas as compras deveriam ser grátis, de acordo com os seus
Tabela 5: Os atributos centrais da Federação Unida de S+S
cidadãos.
e a influência da origem

Tabela 3: Prós e contras da vida na República Popular do Atributo Influenciado por


Mundo On-Line
Padrões elevados e SLAs Grão-Ducado de Enterprisia

Prós Contras Individualidade e experiências ricas República de Desktopistan

• Alcance • Sem contratos, todas as transações Alcance, coletividade e inovação República Popular do Mundo
seguem o “Farei o possível” rápida On-Line
• Coletividade
• Tende a satisfazer uma
• Inovação rápida (técnica e
experiência de denominador Fatores de forma e mobilidade de Deviceland
nos modelos de negócio) hardware otimizado
comum

THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net 35


Um planeta regido por arquiteturas de software

Figura 1: Bandeira da Federação Unida de S+S Figura 2: Um padrão S+S possível para empresa

Solução
contábil
SaaS

Solução Contabilidade
CRM Saas
Arquitetura
Arquitetura
CRM de integração
de
composição
Usuário
Portal Colaboração corporativo

E-mail

A diversidade e o respeito pela escolha tornaram-se o principal line"). Este padrão, claro, não é utilizado apenas pela Microsoft, mas
conjunto de características do povo de Servicetopia. Assim, não é de está se tornando uma tendência do setor. As combinações
se surpreender que quando Servicetopia tornou-se a Federação Unida iPod/iTunes da Apple, Salesforce.com/Salesforce.com Offline Edition
de Software + Serviços (UF S+S), a diversidade e a escolha tornaram-se também são exemplos deste modelo.
elementos centrais da sua constituição. Na verdade, como Contudo, a visão software + serviços não se limita a clientes locais
representado pela sua bandeira, pode-se pensar que a Federação ricos que acessam aplicativos Saas. Outro exemplo poderia ser o
Unida de S+S é uma mescla do que cada cultura do velho mundo modelo estendido da arquitetura orientada a serviço (SOA) em que as
tinha a oferecer (Figura 1). empresas executam parte do seu portfólio localmente e parte dele na
Em sua essência, a UF S+S é uma sociedade que baniu a tirania que nuvem, conforme ilustrado pela Figura 2.
obrigava a escolha de um modo de vida ou outro e, em lugar disso, Sob a proteção do guarda-chuva software + serviços pode-se admitir
adotou o poder da fusão. Os padrões elevados de Enterprisia e a um número maior de cenários e eu diria que as três realizações mais
liberdade de experimentação da República Popular são desejados; freqüentes (pelo menos inicialmente) serão:
procura-se ter as experiências ricas dos nativos de Desktopistan e a
1. Software local complementando um serviço na nuvem (por
mobilidade normalmente encontrada em Deviceland. Opiniões
exemplo, uma interface baseada em Outlook para o CRM Live).
dogmáticas e vacas sagradas são substituídas por tomada de decisão
Este modelo combina a experiência rica, ágil, familiar do usuário
pragmática, processo linear para se fazer a escolha certa, no momento
local com economia de escala e distribuição SaaS um-para-muitos.
certo. A Tabela 5 apresenta os atributos centrais da Federação Unida
2. Software local ampliado por um serviço na nuvem (por
de S+S e a influência originada.
exemplo, um serviço anti-spam, anti-phishing baseado na nuvem,
O que tudo isso quer dizer, realmente? ampliando um servidor de mensagens executado no local). Este
O objetivo da história irônica anterior foi o de transmitir a premissa modelo permite que uma incrível variedade de serviços de valor
fundamental da visão software + serviços: arquiteturas híbridas são agregado seja acrescentada na nuvem, liberando os sistemas
boas. existentes que controlam os dados considerados preferenciais para
Similar à fusão musical em que os estilos pop, folclore e reggae são ficarem intramuros.
misturados, ou à fusão culinária que coloca patê de fígado sobre um 3. Consumo de serviço independente de local, muitos-para-um no
sushi, software + serviços combina padrões arquiteturais encontrados TI corporativo (por exemplo, cenário de “SOA estendida”). Este é
na empresa, na web, nos aplicativos para desktop e nos dispositivos. um cenário típico de otimização de TI.
Em lugar de escolher um ou outro, a visão software + serviços agrupa-
Por fim, para concluir esta narrativa fantasiosa, deixo-os com a
os e aceita todos os padrões de cada domínio trazendo oportunidades
recomendação que teria sido, estou certo, a afirmação da hipotética
únicas para uma solução global.
da constituição da Federação Unida de Software + Serviços: “Aceite a
Portanto, propomos um distanciamento do modelo "tamanho único" diversidade, exija escolher”.
e, em seu lugar, combinar várias arquiteturas na mesma solução, para
tentar conseguir a abordagem "o melhor de todos os mundos".
Agradecimentos
Não se trata mais de comprometer a riqueza pelo maior alcance, mas
Agradeço muito aos meus irmãos de armas, Eugenio Pace e Frederick
oferecer ambos; tampouco comprometer controle rígido e
Chong, pelas conversas que tivemos que nos levaram aos vários países
propriedade dos dados de uma solução interna por estrutura de custo
fictícios.
para vários locatários, mais econômica, mas conseguir ambos.
Atualmente, existem muitos exemplos de software + serviços. A
combinação Xbox / Xbox Live oferece um exemplo perfeito: Sobre o autor
proporciona ricas experiências em 3-D, maximizando o poder de Gianpaolo Carraro é diretor de Distribuição de serviço – Estratégia de
processamento gráfico do console local (influência “Desktopistana”) e, arquitetura da Microsoft. Para saber mais sobre ele, visite o blog do
ao mesmo tempo, permite experiências participativas por meio do Gianpaolo: http:// blogs.msdn.com/gianpaolo
serviço Xbox Live (influência da "República Popular do Mundo On-

36 THE ARCHITECTURE JOURNAL • Journal 13 • www.architecturejournal.net


ARC THE
ARCHITECTURE
JOURNAL
Inscreva-se no endereço: www.architecturejournal.net

You might also like