Carol, Yto e a Ontologia de SOA (parte I)
Carol é uma arquiteta de software, recém-casada, sem filhos, está prestes a receber seu 6o. certificado Java. Formada em análise de sistemas, é autodidata e adora música (não desgruda do seu iPod).
Yto é o gerente de desenvolvimento. Filho de japoneses, ele é casado, tem 1 filha, e está cursando uma pós-graduação em engenharia de software. Foi desenvolvedor por muito tempo e este é seu primeiro cargo como gerente.
São 17:52 (veja o relógio) quando Yto chega próximo da mesa da Carol e pergunta:
[Yto] – Carol?
[Carol] – (ouvindo “Bangers and Mash”, do Radiohead, não ouve a pergunta)
[Yto] – (chegando mais perto) Carol, eu sei que já está tarde, mas preciso da sua ajuda para pensarmos sobre a Ontologia e a Taxonomia dos serviços que já construímos.
[Carol] – “Taxo” o que Yto? (ao mesmo tempo em que pensava, “O Yto não tem mesmo o que inventar, perguntar desta tal de ‘taxo-não sei-o-que’ quase 6 da noite…”)
Ontologia e Taxonomia
Os termos parecem difíceis para quem nunca ouviu falar mas o conceito é relativamente simples. Carol não precisa se preocupar mas, claro, às 06:00 PM não é a hora do Yto solicitar um planejamento de como classificar os serviços que eles já desenvolveram.
Quando se tem poucos Serviços – um número entre 20 e 100, então pode-se assumir que uma pessoa será envolvida no trabalho de entender e descrever a semântica deste Serviço.
Entretanto quando temos centenas de ou milhares de serviços, e estes estão sendo constantemente atualizados, é difícil ou mesmo impossível manter a semântica de cada um destes Serviços atualizado. Em algum momento se faz necessário uma representação formal, um padrão para representar a semântica destes Serviços.
(Evolução da Taxonomia para a Ontologia, SOASimples.com a partir de várias fontes)
Definições
Taxonomia são esquemas básicos, primários, de classificação através de hierarquia. A Taxonomia entretanto é uma estrutura muito simples para se utilizar em sistemas com muitas mudanças. Algumas vantagens:
- Auxilia na definição de complexidade, melhorando estimativas de custo
- Evita a quebra de uma regra básica de orientação a serviço que define que “serviços só podem utilizar outros serviços do mesmo nível (layer) ou de um nível inferior”
- Suporta a linha de negócios (LoB) no entendimento do nível de reusabilidade quando surgem novos requisitos
Introduzir o conceitos de novos Serviços em uma ambiente de constante mudança (como o de uma operadora de telefonia) é uma das desvantagens desta classificação “horizontal”. Surgiu então necessidade de algo mais resiliente a mudanças, e a Ontologia tem esta característica importante.
Pode ser utilizada para capturar visões alternativas dentro de um arcabouço único, uma classificação “vertical”. Algumas vantagens:
- Quando se desenha os serviços no contexto de “domínios” fica estabelecido uma linguagem comum entre TI e negócios
- A visão de alto nível, simplifica o desenvolvimento de requisitos de negócio
- Uma visão do todo (“big picture”) é compartilhada com todos facilitando a interoperabilidade dos novos serviços e evitando a duplicação de funcionalidades
- Facilita a identificação de “quem” é o dono do novo serviço
Acompanhe aqui como a estória se desenrola. Abcs!


Muito interessante, pretende dar continuidade a esse assunto?
Sim Glaucio, aguarde a continuação. Parte 2 e 3 vem em breve. Grato!
Davi
Bacana, fico no aguardo!
Um abraço