segunda-feira, dezembro 17, 2007

Arquitetura de Sistemas de Informação

A idéia de que sistemas de informação devem ter uma arquitetura é compartilhada por vários autores e é anterior ao movimento, hoje em moda, chamado SOA. Essa nota é preliminar a uma futura nota sobre SOA.

No artigo sobre Organização Federativa eu tinha proposto uma visão de arquitetura centrada na idéia de federação.

O que vou relatar aqui é um resumo de um livro, lido há bastante tempo, que considero bastante relevante para o entendimento do conceito de arquitetura de sistemas de informação. Trata-se do livro “ Building Enterprise Information Architectures” de Melissa A. Cook. Melissa fornece uma visão prática de como propor uma arquitetura de SI, baseada em sua experiência profissional, na HP, e no artigo, clássico, de John Zachman.

O livro baseia-se na primeira versão do “framework” de Zachman (em Inglês, em Português (Wikipedia)). Vale lembrar que esse “framework” evoluiu e incorporou o esquema das perguntas de qualidade (5w1h), e é, hoje, uma referência na área. Na visão de Cook, existem três tipos de arquitetura (dados, processos e tecnologia), mas no artigo de Zachman têm-se: dados, processos e rede.

O “framework” usado no livro é uma matriz com 6 linhas e 3 colunas. As colunas representam a perspectiva que pode ser: dados, processos e tecnologia. As linhas são: Visão Geral, Visão do Dono, Visão do Arquiteto (“Designer”), Visão do Construtor, Representação Detalhada e Sistema em Funcionamento. O livro tem por objetivo abordar a sub-matriz (1,1;1,2;2,1;2,2) ou seja os dois primeiros níveis de abstração (Visão Geral e Visão do Dono) tanto sob a perspectiva de dados como pela perspectiva de processos. Com isso acredita que terá uma visão da organização. A grande ênfase é que essa visão é uma visão horizontal e não vertical da organização. Ou seja, ou invés de entender a organização através do conhecimento acumulado de cada um dos seus departamentos (visão vertical) passa-se a ter uma visão integradora e entendida como horizontal. A perspectiva tecnológica é tratada a parte.

O processo sugerido pelo livro é o seguinte:

Sub-Matriz (Visão Geral, Processo): a construção da visão geral da arquitetura de processos é feita com base em um processo de colaborativo no qual lista-se as principais classes de processos da organização, ou funções da organização e suas definições. Por exemplo: vendas, marketing, produção. Para isso utiliza-se o conceito de classificação e evita-se redundância entre essas descrições.

Sub-Matriz (Visão Geral, Dados): a construção da visão geral da arquitetura de dados é também baseada em um processo colaborativo para chegar-se as classes de dados. Parte-se das funções para, utilizando-se de técnicas de modelagem de dados, chegar-se à classes de dados refinadas. A autora sugere o uso de meta classes do tipo: gente, lugar, coisa e evento. O uso dessas meta classes ajuda na elaboração de classes de dados. Por exemplo: (pessoa, organização), (ordens de compra, vendedores), (orçamento, previsão, cotas).

As Sub-Matrizes da Visão do Dono é considerada pela autora a visão do sistema de informação. Seu processo básico é composto de 3 sub-processos. Primeiro, para cada função do negócio identifica-se todas as entidades presentes na lista da visão geral que são criadas por esta função. Segundo, refina-se a Visão Geral de tal modo que haja um mapeamento um para um entre funções e classes de dados. Esse mapeamento define fronteiras entre sistemas de informação. Terceiro, identifique para cada entidade das classes de dados, uma função primitiva, que pertença à classe de funções, que crie essa identidade. O ferramental básico para a criação da Visão do Dono é uma matriz que mapeia funções primitivas e entidades e nomeia as células com as etiquetas cria, lê, atualiza e apaga. Em inglês essa matriz é conhecida pelo nome de “CRUD” (veja nas páginas de 36 a 42, uma explicaçõe e um exemplo dessa matriz) e é bastante útil no mapeamento entre dados e processos.

O resultado esperado é que se define um conjunto de sistemas de informação em que cada um é coeso e em que cada um está fracamente acoplado com outros. Isso ocorre porque cada sistema de informação servira uma função do negócio e terá acesso de escrita a apenas àquelas entidades que são de sua responsabilidade criar. Outros sistemas interagem com um sistema na medida em que tem acesso de leitura aos dados criados por este sistema. Essa visão de sistemas de informação baseia-se na perspectiva de tecnológica em que sistemas de informação comunicam-se através de permissão de leitura entre servidores de diferentes sistemas.

É interessante notar que nesse livro desenham-se heurísticas gerais para a obtenção de uma federação de sistemas, baseadas em um planejamento global com base no “framework” de Zachman. Muitas propostas atuais de SOA utilizam-se desse mesmo conjunto de premissas.

Em futura nota comentarei em mais detalhes os prós e contras dessa visão de arquitetura.