• Nenhum resultado encontrado

III. Comparação entre BLAST e FASTA

4. METODOLOGIA

4.5 CORBA

CORBA (Common Object Request Broker Architecture ou Arquitetura Comum de Agente de Requisição de Objeto) consiste em uma definição aberta e neutra que especifica arquitetura e infra-estrutura para a execução de programas em redes de computadores. A sua grande vantagem é permitir a integração de programas escritos em

Facade

Classes-clientes

diversas linguagens e executados em virtualmente qualquer combinação de hardware ou sistema operacional. Ao mesmo tempo, provê uma sólida base para a utilização de componentes reutilizáveis de software. Consulte http://www.omg.org.

Dentre os diversos serviços do CORBA, três deles estão sendo diretamente utilizados no Sistema BLOOM: Serviço de Objeto Persistente, Serviço de Consulta e Serviço de Coleção.

O Serviço de Objeto Persistente (POS – Persistent Object Service) permite que objetos sejam persistidos além da aplicação que o cria ou do cliente que o usa. O ciclo de vida pode ser curto ou indefinido. Este serviço permite que o estado de um objeto seja salvo em um meio persistente e que esse estado seja recuperado sempre que necessário. Quando o objeto está na memória local, pode-se acessar seus atributos e métodos à velocidade das linguagens de programação nativas [Orfali et al, 1997].

Os principais elementos deste serviço são:

a) Objetos persistentes (PO´s): são objetos cujo estado deve ser

persistido ou armazenado. Para tornar-se também persistente, um objeto deve herdar as características de um PO. Todo objeto deste tipo tem um PID (Persistent Identifier). É descrito pela interface PO.

b) Gerenciamento de Objeto Persistente (POM): é uma interface

independente de implementação para operações persistentes. Posiciona-se entre os objetos e o banco de dados.

c) Serviço de Dados Persistentes (PDS´s): são interfaces para

implementações particulares de um meio de armazenado (ou banco de dados). Executa a tarefa de mover dados de um objeto para o repositório persistente. Para conseguir acesso ao meio de armazenamento, é necessário especializar as interfaces PDS e PID.

d) Meio de armazenamento: são repositório de dados persistentes para

os atributos de um objeto. São exemplos os ODBMS, RDBMS, dentre outros.

Além das interfaces citados nos elementos acima, há três outras também muito importantes neste serviço: a) PIDFactory, que permite criar um objeto PID; b)POFactory,

que permite criar uma instância de um objeto persistente; e c) PID, que retorna uma versão string do PID.

Nesta Dissertação, este Serviço de Objeto Persistente estará representado para o Sistema BLOOM no item Mecanismos de Persistência.

Orfali et al, 1997

O Serviço de Coleção (CCS – CORBA Collection Service) provê uma maneira uniforme para criar e manipular as maioria das coleções mais comuns. As classes deste serviço relacionam-se com as do Serviço de Consulta.

Coleções permitem que os objetos sejam manipulados em grupo. Tipicamente se aplicam operações de coleção em grupos, e não em objetos individuais. Exemplos de coleção são filas, pilhas, listas, arrays, árvores, conjuntos e bags, cada um exibindo comportamentos específicos do tipo de coleção. Alguns operações que podem ser invocadas em um set são: adicionar um novo membro, testar igualdade, testar se está vazio, união, intersecção, e assim por diante. Algumas coleções são ordenadas; outras usam chaves para identificar os elementos. Finalmente, algumas coleções rastream as referências dos objetos; outras simplesmente coletam tipos de dados (por exemplo, linhas em uma coleção do tipo tabela).

As principais interfaces de Coleção e de Consulta são:

a) CollectionFactory: define uma única operação create( ). Esse método

deve ser invocado para criação uma nova instância de uma coleção vazia.

b) Collection: define operações que permitem adicionar, alterar, recuperar

e remover membros de uma coleção. Invoca-se o método add_all_elements para adicionar todos os elementos de uma outra coleção para a coleção de destino. Insert_element_at permite adicionar O Serviço de Consulta (OQS –Object Query Service) permite encontrar objetos cujos atributos coincidam com o(s) critério(s) especificado(s) na busca. Deve-se notar que as consultas não possuem acesso ao estado interno do objeto, o que significa que não violam o encapsulamento. As consultas podem ser formuladas em OQL (Object Query Language), SQL (Structure Query Language), ou em subconjunto dessas duas linguagens

um elemento numa posição particular. Create_iterator permite criar um ponteiro móvel para navegar pela coleção.

c) Iterator: define três operações que permitem percorrer uma coleção.

Reset aponta para o início da coleção. Next incrementa a posição do iterator. More permite testar se ainda restam elementos na iteração.

d) QueryEvaluator: define a operação evaluate( ) para avaliar uma

consulta. Essa operação utiliza a linguagem de consulta especificada ou default. Um banco de dados é um exemplo de um objeto QueryEvaluator, pois gerencia uma coleção de objetos persistentes.

e) QueryManager: é uma forma mais poderosa de um QueryEvaluator.

Também permite criar um objeto Query.

f) Query: define quatro operações que podem ser executadas em uma

instância de Query. Prepare permite compilar a consulta e prepará-la para execução. Execute permite executar uma query compilada. Get_status permite determinar o status de preparação/execução da query. Get_result permite obter o resultado da query.

g) QueryableCollection: não introduz novas operações. Ao contrário,

herda suas funcionalidades de QueryEvaluator e Collection. Objetos desta classe avaliam uma query em membros particulares de uma coleção. Deve-se notar que qualquer membro da coleção a ser avaliada por ser um objeto QueryableCollection. Isso significa que se pode ter um infinito número de subconsultas aninhadas.

Nesta Dissertação, os Serviços de Consulta e de Coleção estarão representados nos diagramas de seqüências e de classes dos Sistemas BLOOM e Genoma.

Utilizando a arquitetura CORBA e os serviços descritos acima, está sendo possível tratar os resultados de seqüenciamento como objetos que são distribuídos através da rede para o servidor central. Estes estão sendo atualmente depositados em bancos de dados relacionais administrados pelo programa gratuito PostgreSQL (http://www.postgresql.org),

Um sistema, conforme o que está sendo proposto, encaixa-se perfeitamente nessa filosofia, pois os laboratórios em rede podem depositar dados genômicos e receber caso respeitem diversos critérios de qualidade [Pappas, 2002].

análises de seqüências. Implementações recentes demonstram a importância desta nova tecnologia na bioinformática (http://corba.ebi.ac.uk/), principalmente para a integração de bancos de dados biológicos [Pappas, 2002].