Beruflich Dokumente
Kultur Dokumente
Nesta pgina
O Problema Essencial da Integrao de Dados Excesso na Exigncia de Informaes Falta de uma Estratgia Eficiente de Verses Falta de Suporte para uma Extenso no Nvel do Sistema Diminuio dos Riscos Sobre os Autores
Recursos
Figura 2. Um nico formato e armazenamento de dados Cada sistema modificado para usar o armazenamento de dados da base por meio de sua interface de servios da Web. Os sistemas armazenam e recuperam informaes do cliente como um XML que se enquadra no esquema do cliente. Todos os sistemas compartilham a mesma instncia de servio, o mesmo modelo de dados XSD e as mesmas informaes XML. Essa soluo parece simples, elegante e boa, mas uma implementao ingnua normalmente falha por uma destas trs razes: excesso na exigncia de informaes, falta de uma estratgia eficiente de verses e falta de suporte para uma extenso no nvel do sistema.
No exemplo das informaes do cliente, fcil pensar em casos nos quais alguns sistemas querem trabalhar com os clientes mas no tm informaes completas do cliente disposio. Por exemplo: o sistema que registra o int eresse de um cliente em um determinado produto pode coletar apenas o nome e o endereo de email preferencial do cliente. O sistema de registro de eventos, por sua vez, pode captar tambm as informaes de endereo e carto de crdito. Se um modelo comum de dados de cliente exigir que cada registro vlido do cliente inclua nome, endereo de email e informaes de carto de crdito, nenhum sistema poder adot-lo sem coletar mais dados que o necessrio ou fornecer dados falsos. Ao fazer com que todos os dados que no sejam a identidade (nmero da cdula de identidade, endereo de email etc.) sejam opcionais, a adoo de um modelo de dados se torna mais fcil, porque os sistemas podem simplesmente fornecer as informaes que tm. Ao fazer a separao entre o formato de dados e os requisitos de ocorrncia, voc facilita o gerenciament o da mudana na implementao de um servio nico. Isso tambm critico quando voc define um esquema XML comum para ser usado por vrios servios e clientes. Se houver um excesso de informaes obrigatrias, cada sistema que quiser usar o modelo de dados pode estar sem algumas informaes obrigatrias. Isso d a cada sistema a opo de no adotar o modelo compartilhado e armazenar ou fornecer dados falsos (freqentemente, o valor padro de um tipo simples de linguagem de programao). Qualquer uma dessas opes pode ser considerada uma falha. Voc ganha bastante flexibilidade quando os sistemas adotam este modelo que flexibiliza quase que completamente os requisitos de ocorrncia do esquema. Cada sistema pode contribuir com todos os dados que tiver sua disposio, o que facilita muito a adoo de um esquema XML comum. O preo a pagar que os sistemas dos quais recebemos dados devem ter o cuidado de se certificar de que estejam presentes os dados realment e necessrios. Se no estiverem presentes, eles devem reagir adequadamente, obtendo mais dados do usurio ou outro armazenamento, simplificando o comportamento ou - somente na pior hiptese - gerar uma falha. O que voc est fazendo, na verdade, desviar de algumas das restries que voc normalmente colocaria em um esquema XML do seu cdigo, onde seriam verificadas no tempo de execuo. Esse desvio permit e alterar essas restries sem revisar o esquema compartilhado.
lei de Postel: "Seja liberal naquilo que aceita, e conservador naquilo que envia". Pode-se dizer que essa idia est por trs de todas as tecnologias bem-sucedidas de sistemas distribudos e certamente, de todas as tecnologias de acoplamento livre. Se adotar essa abordagem, voc poder ampliar um esquema sem atualizar os clientes. No exemplo do cliente, uma atualizao do esquema e do armazenamento pode adicionar suporte a um elemento adicional opcional que capta o nome de solteira da me do usurio, para fins de segurana. Se os sistemas que funcionam com a verso antiga gerarem registros de clientes sem essa informao, no haver problema, j que o elemento opcional . Se eles enviarem esses registros a outros sistemas que exigem essas informaes, a solicitao poder falhar, mas no h problema nisso tambm. Se os novos sistemas enviarem dados do cliente aos sistemas antigos incluindo o nome de solteira da me, tambm no haver problema, porque eles esto projetados para ignorar isso. Felizmente, muitos kits de ferramentas para servios da Web fornecem suporte a esse recurso diretament e nos encaixes do marshalling dirigidos a esquemas. Certamente, os mapeadores de objetos XML do .NET (tanto o antigo XmlSerializer quanto o novo XmlFormatter/DataContract) processam dados extras sem problemas. Alguns kits de ferramentas para Java tambm fazem isso, assim como os frameworks que fornecem suporte s novas especificaes de JAX-WS 2.0 e JAXB 2.0. Tendo isso em mente, muito fcil adotar essa abordagem. O nico verdadeiro problema desse modelo que ele introduz definies mltiplas de um determinado esquema, cada uma representando uma verso diferente. Considerando-se um dado - por exemplo: um fragmento de XML captado de uma mensagem enviada pelo meio fsico - impossvel responder a pergunta: "Esse dado vlido?" S possvel responder a pergunta da validade em relao a uma verso especfica do esquema. A incapacidade de determinar com certeza se um determinado dado vlido um problema para a depurao e, talvez, tambm para a segurana. No caso dos modelos de dados descritos com um esquema XML, possvel responder uma pergunta diferente e mais interessante: "Esse dado suficientement e vlido?" Essa pergunta o que realmente importa para os sistemas, e voc pode respond-la usando as informaes de validade que a maioria dos validadores fornece, que um caminho razovel a seguir quando a validao do esquema obrigatria, e isso pode ser implementado com os atuais frameworks de validao do esquema.
Figura 3. Uma combinao de armazenamentos (consulte as Figuras 1 e 2) Nesse caso, cada sistema modificado para gravar os dados no cliente no repositrio dedicado, usando o seu prprio modelo de dados, e no repositrio compartilhado, usando o esquema cannico. O sistema tambm modificado para ler dados do cliente a partir do armazenamento dedicado e tambm do compartilhado. Dependendo do que ele encontra, ele sabe se a empresa e o sistema j conhecem o cliente. A Tabela 1 resume as trs possibilidades. Registro no amazenamento compartilhado Registro no armazenamento do sistema No O cliente novo para a empresa. Coleta todos os dados comuns e especficos para o sistema. O cliente j conhecido pela empresa, mas novo Sim No para o sistema. Coleta dados especficos para o sistema. Sim Sim O cliente j conhecido pela empresa e pelo sistema. Significado
No
Tabela 1. Os trs casos possveis de dados de clientes O sistema pode usar essas informaes para decidir quantas informaes do cliente ele precisa armazenar. Se o cliente novo para a empresa, o sistema adiciona ao sistema cannico a maior quantidade possvel de informaes. Essas informaes ficam disponveis para outros sistemas que trabalham com clientes. O sistema tambm pode armazenar dados no armazenamento dedicado, para suprir as suas prprias necessidades. Esse modelo pode ser expandido ainda mais, para que os dados especficos do sistema sejam armazenados tambm no armazenamento compartilhado (consulte a Figura 4).
Figura 4. O mesmo armazenamento (consulte a Figura 3) com formatosde dados em um repositrio compartilhado. Essa soluo permite que os sistemas se integrem usando dados de extenso que esto alm do escopo do esquema cannico. Para funcionar corretament e, necessrio que o repositrios e os outros sistemas tenham visibilidade em relao aos dados de extenso. Em outras palavras, ele no pode ser opaco. A forma mais fcil de resolver esse problema fazer com que os prprios dados de extenso sejam XML. O sistema que fornece os dados define um esquema para os dados de extenso, para que os outros sistemas possam process-los de forma confivel. O armazenamento compartilhado faz um acompanhamento dos esquemas, para poder garantir que os dados de extenso sejam vlidos, mesmo que no precise saber explicitamente o que a extenso contm. No caso mais extremo, um determinado sistema pode optar por armazenar um registro inteiro do cliente em um formato especfico do sistema, como dados de extenso XML. Outros sistemas que entendem esse formato podem us-los. Os sistemas que no o entendem dependem da representao cannica. Quando os sistemas so independentes, cada um deles controla o seu prprio destino. Eles podem captar e armazenar quaisquer informaes necessrias, no formato e local que preferirem. A passagem para um nico esquema e repositrio em comum muda isso. Se a adoo de dados XML em comum restringir a liberdade do sistema visando proporcionar a funcionalidade necessria, voc estar condenado ao fracasso. O uso de uma combinao de dados de extenso tipo XML em um armazenamento compartilhado ou armazenamento no nv el do sistema aumenta a complexidade, porque voc tem que manter a sincronia dos dados. Porm, tambm proporciona uma grande flexibilidade. possvel alinhar sistemas em t orno de qualquer combinao de esquemas cannicos e esquemas alternativos que voc quiser. Voc pode ir mudando para o format o XML com o passar do tempo, mas ter sempre a flexibilidade de desviar desse formato para cumprir novos requisitos. Essa liberdade extra vale muito no incerto mundo de negcios. Outro benefcio sutil desse modelo o fato de permitir que a equipe que define o esquema em comum diminua a velocidade ao trabalhar nas revises. Os sistemas podem usar os dados de extenso para atender novos requisitos entre as revises. A equipe que trabalha no modelo cannico pode buscar essas informaes para contribuir no processo de reviso. Esse crculo de feedback ajuda a garantir que as mudanas de modelo sejam motivadas por requisitos reais do sistema.
Sobre os Autores
Tim Ewald uma das principais arquitetas da Foliage Software Systems, que ajuda os clientes a projetar e criar aplicativos que vo desde TI empresarial at dispositivos mdicos. Antes de entrar para a Foliage, Tim trabalhou na Mindreef, um dos maiores fornecedores de ferramentas de diagnstico para servios da Web; antes disso, Tim foi lder dos gerentes de programa no MSDN, onde trabalhou com Kim W olk como co-arquiteta do MTPS, o mecanismo de publicao baseado em XML e servios da Web que a base do MSDN2. Tim palestrante e escritora de renome internacional. Kim Wolk gerente de desenvolvimento do MSDN e a fora que move o MTPS, o mecanismo de publicao baseado em XML e servios da Web que a base do MSDN2. Antes disso, ela atuou como co-arquiteta e principal desenvolvedora do MTPS. Antes de entrar para a MSDN, Kim atuou por muitos anos como consultora, tanto independent e quanto ligada Microsoft Consulting Services, onde trabalhou em uma ampla gama de sistemas empr esariais de misso crtica.