Você está na página 1de 37

Centro de Cincias Departamento de Computao Mestrado em Cincias da Computao

Trabalho da Disciplina de Bancos de Dados Orientados a Objetos

Um Modelo Orientado a Objetos para Gerncia de Configurao de Servios em Ambientes Heterogneos:


Da escolha da metodologia ao desenvolvimento do modelo

por Juliana Silva da Cunha

Novembro/97

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

1. Introduo

Este trabalho fruto de um estudo feito entre algumas metodologias orientadas a objeto, visando escolher uma para representar o modelo de gerncia de configurao de servios em redes heterogneas apresentado na minha dissertao de mestrado. O estudo desenvolvido aqui foi resultado do meu trabalho na disciplina de Banco de Dados Orientados a Objetos. Dentre os mtodos aqui apresentados, dois so bastante conhecidos e um deles bem recente. No pretende-se aqui fazer um estudo detalhado de como utilizar cada um deles, e sim mostrar o meu processo de escolha. Inicialmente ser feita uma anlise do significado do paradigma de orientao a objetos e quais as vantagens de utiliza-lo no desenvolvimento de sistemas. Mostraremos ainda os principais termos utilizados, os quais sero teis para o entendimento das funcionalidades de cada metodologia. Na seo 3 sero enumerados os fatores importantes para escolha de uma metodologia. Logo em seguida sero apresentadas as caractersticas bsicas de cada metodologia estudada, dando mais nfase na metodologia Booch, que foi utilizada para o desenvolvimento do modelo apresentado na prxima seo. Na seo 5 apresentaremos o modelo orientado a objetos para gerncia de configurao de servios em ambientes heterogneos, desenvolvido na minha dissertao de mestrado. Finalmente algumas concluses sobre o assunto.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

2. O Paradigma de Orientao a Objetos

O desenvolvimento de sistemas um processo interativo comeando com a definio do sistema e terminando com um produto. O produto final deve executar tarefas especficas para um grau pr-definido de preciso e corretude em um tamanho de tempo definido como aceitvel. O primeiro passo no projeto de um sistema envolve o desenvolvimento de uma estrutura ou arquitetura. Este passo inicial no processo de desenvolvimento estabelece a estrutura base. A palavra projeto sugere que o desenvolvimento do software comea quando o foco de estudo muda de o que para ser construdo para o como deve ser construdo[BH96]. Em resumo, o processo de desenvolvimento est completo quando: (1) uma arquitetura para o sistema existe, (2) todas as funes do sistema esto definidas, (3) parmetros de performance esto estabelecidos e (4) funes de performance esto adequados ao hardware, software e operador. Modelagem e projeto orientado a objetos uma nova maneira de se pensar sobre problemas usando modelos organizados em volta de conceitos de mundo real. A estrutura o objeto, que combina as estruturas de dados e o comportamento numa entidade simples [RBPEL91]. Superficialmente o termo "orientao a objetos" significa que organizamos software como uma coleo de objetos discretos que incorporam a estrutura de dados e comportamento.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

Com a necessidade de fornecer um modelo padronizado, modular, flexvel e escalvel o paradigma de orientao a objetos mostra-se o mais adequado. Os benefcios da utilizao de orientao a objetos para desenvolvimento de sistemas so: 1. Desenvolvimento mais rpido - O uso de objetos padres, reuso de modelos existentes e prototipao rpida diminui consideravelmente o tempo de desenvolvimento. 2. Maior Qualidade - Os programas so montados utilizando componentes existentes que podem ser aproveitados. A modularizao proporciona a reduo de interaes entre os componentes do programa tornando mais fcil averiguar seu funcionamento. 3. Facilidade de Manuteno - Devido ao mapeamento natural entre o sistema modelado e a estrutura do software a localizao problemas se torna mais fcil, novos erros ocasionados por correes so reduzidos pela falta de redundncia de cdigo. 4. Reduo de Custos - A possibilidade de reuso diminui os custos. 5. Escalabilidade - Permite a incluso de novos objetos sem alterar os existentes. 6. Flexibilidade - Mudanas podem ser feitas facilmente sem a necessidade de reconstruo de grandes partes do sistema. O uso de anlise e projeto orientados a objetos e as ferramentas associadas pretendem fornecer uma maneira de extrair um problema do mundo real para uma abstrao, representando somente as caractersticas essenciais do problema. Para tal, a anlise orientada a objetos faz uso de alguns componentes: (1) objetos e classes para identificar os principais componentes do problema, (2) atributos que so caractersticas ou propriedades dos objetos e classes e (3) operaes que caracterizam o comportamento dos objetos. Conceitualmente, a abordagem orientada a objetos captura os requisitos funcionais e de performance, e os transforma em representaes abstratas que envolvem operaes que agem sobre os objetos que formam a abstrao do problema. Para usar

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

este mtodo eficientemente o analista deve desenvolver um ponto de vista diferente da abordagem funcional e estruturada, e achar classes e objetos que descrevem todos os aspectos importantes do sistema.

2.1 Principais Termos da Orientao a Objetos


Classe - Uma classe uma abstrao que descreve importantes propriedades para uma aplicao e ignora o resto. Cada classe descreve um conjunto possivelmente infinito de objetos individuais. Objeto - Cada objeto dito como sendo uma instncia de sua classe. Um objeto contm uma referncia implcita da sua prpria classe. Operao - Uma operao uma ao ou transformao que um objeto desempenha ou est sujeito. Mtodo - Mtodo uma implementao especfica de uma operao por uma determinada classe. Polimorfismo - Polimorfismo significa que a mesma operao pode se comportar de maneira diferente para classes diferentes. Herana - Herana o compartilhamento de atributos e operaes entre classes baseado em relacionamento hierrquico. Programao Orientada a Objetos (OOP)- um mtodo de implementao no qual programas so organizados como uma coleo de objetos cooperativos, cada um deles representando uma instncia de alguma classe, e onde tais classes so todas membro de uma hierarquia de classes unidas pelo relacionamento de herana.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

Projeto Orientado a Objetos (OOD)- um mtodo de projeto que abrange o processo de decomposio orientada a objetos e uma notao para representar tanto os aspectos lgicos e fsicos como os estticos e dinmicos de um sistema. Anlise Orientada a Objetos (OOA)- um mtodo de anlise que examina especificaes em uma perspectiva de classes e objetos encontrados no vocabulrio do problema.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

3. Metodologias de Desenvolvimento Orientadas a Objetos

Para capturar todos os aspectos do sistema a ser desenvolvido faz-se necessria a escolha de um mtodo de especificao. Possuir uma notao expressiva e bem definida importante para o processo de desenvolvimento do software. Uma notao padronizada permite ao analista ou desenvolvedor descrever um cenrio, ou formular uma arquitetura de forma concisa e no ambgua tornando o seu entendimento fcil s outras pessoas do projeto. Alguns fatores devem ser observados na escolha de um mtodo no processo de desenvolvimento orientado a objetos [Lei97]: (1) O modelo deve ser bem documentado atravs de livros ou artigos que facilitem o seu entendimento. (2) A equipe de desenvolvimento deve estar familiarizada com o modelo. (3) Ele deve concentrar-se nos princpios da orientao a objetos. (4) Deve ser conciso e enxuto o suficiente para captar os aspectos relevantes do sistema.
(5)

A melhor metodologia , provavelmente, aquela que voc j sabe usar

A seguir sero apresentadas as 3 metodologias estudadas. Na prtica, todas as metodologias orientadas a objetos tem muito em comum, elas diferem realmente em comparao com as metodologias no OO.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

3.1 Object Modeling Technique - OMT


OMT (Object Modeling Technique) [RBPEL91] uma metodologia que combina trs pontos de vista da modelagem de sistemas:

Modelo de Objetos: descreve os objetos no sistema e seus relacionamentos; Modelo Dinmico: descreve as interaes entre objetos no sistema; Modelo Funcional: descreve as transformaes dos dados do sistema.

Modelo de Objetos O Modelo de Objetos descreve a estrutura esttica de objetos de um sistema, ou seja, a identidade de um objeto, seus relacionamentos com outros objetos, seus atributos e suas operaes. O objetivo na construo do Modelo de Objetos capturar os conceitos do mundo real que so importantes para uma aplicao. considerado o mais importante dos diagramas. Ele na verdade composto de diagrama do modelo de objetos e do dicionrio de dados. Existem dois tipos de diagrama de objetos: o diagrama de classes e o diagrama de instncias. Os diagramas de classe descrevem o caso geral da modelagem, enquanto os de instncias so teis para exemplificar. As Classes

Uma classe de objetos descreve um grupo de objetos com propriedades (atributos), o mesmo comportamento (operaes), os mesmos relacionamentos com outros objetos e a mesma semntica. Cada classe possui um conjunto de atributos e

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

operaes. A figura abaixo mostra a notao utilizada para se representar as classes em um diagrama.

Figura 1

Relacionamentos entre Classes

Ligaes e associaes so meios de estabelecer relacionamento entre objetos. Uma ligao uma conexo fsica ou conceitual entre as instncias de objetos. Uma ligao uma instncia de uma associao. A seguir esto representados os principais tipos de associao:

Generalizao (Herana) - o relacionamento entre uma classe e uma ou mais verses refinadas dela. A classe que estiver em processo de refinamento chamada de superclasse e cada verso refinada de subclasse. Cada subclasse herda os atributos e operaes da superclasse e pode acrescentar novas operaes e atributos.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

10

Figura 2 Agregao - So relacionamentos onde os objetos representam partes de um outro objeto que representa a estrutura inteira.

Figura 3 Atributo de Associao - uma propriedade das ligaes de uma associao.

Figura 4

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

11

Modelo Dinmico O Modelo Dinmico descreve os aspectos do sistema que se preocupam com o tempo e a sequncia das operaes, ou seja, dos eventos e sequncia de eventos que marcam mudanas, estados que definem o contexto para eventos e a organizao de eventos e estados. O Modelo Dinmico representado graficamente por uma diagrama de transio de estados, este tipo de diagrama relaciona eventos e estados. Um diagrama de estados deve ser feito para cada classe de objetos. O modelo dinmico a juno dos diagramas de estados mais o diagrama global do fluxo de eventos. Este ltimo diagrama verifica o sistema como um todo. A notao grfica a seguinte:

Figura 5

Eventos - Um evento algo que acontece em um certo instante, causando uma transmisso ou informao unidirecional de um objeto para outro. Um evento causa uma mudana de estados.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

12

Estados - Um estado especifica a reao de um objeto aos eventos de entrada, isto , o comportamento do objeto em um determinado instante tempo at que um novo evento altere seu estado. Condio - Opcionalmente pode-se utilizar condies. Uma condio uma funo booleana, que de acordo com o seu resultado, pode ou no ativar um evento.

Modelo Funcional O Modelo Funcional descreve os aspectos do sistema que se preocupam com transformaes de valores, ou seja, funes, mapeamento, restries e dependncias funcionais. O Modelo Funcional representado por um diagrama de fluxo de dados e suas restries, ele mostra o fluxo dos dados desde de sua origem nos objetos at seu destino em outros objetos, atravs de processos que os transformam. Estes diagramas contm processos, fluxos, objetos atores que consomem e produzem dados e objetos depsitos que armazenam dados passivamente. na figura abaixo as elipses representam os processos, as setas so os fluxos, o retngulo o objeto ator e o objeto conta um exemplo de depsito.
Senha Codificada Conta Verificar Senha OK Valor Cliente Dinheiro Atualizar

senha

Figura 6

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

13

3.2 Booch
Dentre as metodologias existentes, a escolhida neste trabalho para especificar o sistema de gerncia de configurao de servios foi a mtodo Booch[Boo94]. O mtodo Booch divide a especificao de um sistema em dois modelos: um modelo lgico e um modelo fsico. A viso lgica do sistema permite descrever a existncia das classes e mtodos que compem o domnio do problema. Esse modelo permite ainda mostrar as interaes entre as instncias das classes, assim podem ser descritos os aspectos estruturais e dinmicos das classes do sistema. Atravs de tcnicas de organizao e de uma linguagem grfica apropriada pode-se descrever e definir o vocabulrio e os conceitos do domnio do problema. O modelo fsico permite descrever concretamente a organizao das classes nos mdulos de implementao do sistema. Para efetuar todo o processo de especificao do sistema em desenvolvimento utiliza-se os diagramas estticos de classes, de objetos, de mdulos e de processos, e os diagramas dinmicos de transio de estados e interao.

Diagramas de Classes Os diagramas de classes so utilizados para mostrar a existncia de classes e suas relaes com uma viso lgica do sistema. Ele representa uma abstrao do domnio do problema. Os dois elementos essenciais do diagrama de classes so as classes e suas relaes.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

14

As Classes Uma classe define uma estrutura e um comportamento comuns a todos os seus objetos. A figura 7 mostra a notao empregada para representar as classes. Nessa notao, acima da linha, encontra-se o nome da classe e abaixo, os nomes de seus atributos, de suas operaes e de possveis restries.

Figura 7 Os atributos descrevem uma propriedade particular dos objetos de uma classe. Cada atributo possui um nome e um domnio. Nesta metodologia o domnio especificado pelo nome da classe. Ele pode ser representado por uma das formas seguintes: A :C A:C

- Somente o nome do atributo. - Somente a classe. - O nome do atributo e da classe

A : C = E - O nome do atributo e da classe e uma expresso cuja avaliao fornece um valor default ao atributo na instncia da classe.

As operaes especificam os servios que so oferecidos pela classe. A notao para diferenciar os atributos das operaes utilizao de parnteses depois do nome da operao. Por exemplo, Operation( ) informa o nome da operao.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

15

Relaes Entre as Classes O mtodo Booch prope quatro tipos diferentes de relaes cujas notaes so apresentadas na figura 8. Associao Herana Conteno Uso Figura 8 A relao associao representa uma relao geral entre duas classes. Uma relao deve ser nomeada com um nome que mostra a natureza da associao. Deve-se fornecer igualmente a cardinalidade da associao. A associao sugere uma navegao bidirecional, sugerindo uma dependncia semntica entre as classes envolvidas. A relao de herana representa uma relao do tipo generalizaoespecializao. Uma classe que herdada chamada de superclasse, enquanto que a que herda chamada subclasse. Herana significa que as subclasses herdam a estrutura de suas superclasses. No diagrama a seta aponta para a superclasse. A relao de conteno representa uma relao do tipo contido-contm, mais conhecida como agregao. O crculo aponta para a classe que representa o todo.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

16

A relao de uso representa uma relao do tipo cliente-servidor, onde o servidor tipicamente fornece servios ao cliente. Ao contrrio da relao de associao, neste tipo de relacionamento a conexo exige um direcionamento. O crculo aponta para a classe cliente, isto , para a classe que est solicitando um pedido. Categorias de Classes As categorias de classes so utilizadas para estruturar um sistema. Elas so compostas de classes e de outras categorias de classes. A notao utilizada para representar as categorias de classes dada na figura 3.3. A descrio de uma categoria compreende seu nome e os nomes das classes que a compem.
Nome Nome das Classes

Figura 9 Uma categoria de classes pode utilizar outras categorias de classes, isto , os servios oferecidos por uma classe de outra categoria. Ento, diz-se que existe uma relao de utilizao entre as duas categorias. O mtodo utiliza a notao empregada para especificar as relaes de utilizao entre classes.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

17

Diagramas de Objetos Os diagramas de objetos so utilizados para mostrar a existncia de objetos e suas relaes no modelo lgico do sistema. Um diagrama representa uma foto instantnea no tempo de uma certa configurao de objetos. Os elementos essenciais de um diagrama de objetos so os objetos e suas relaes. Objetos Os objetos possuem um estado, um comportamento e uma identidade. Um objeto uma instncia de uma classe. A estrutura e o comportamento dos objetos semelhantes so definidos na sua classe. Os termos instncia e objeto so sinnimos. A especificao dos objetos segue a mesma sintaxe dos atributos: Nome do objeto somente. Nome da classe do objeto. Nome do objeto e nome da classe. A figura 10 mostra a notao empregada para representar os objetos no mtodo.

Figura 10

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

18

Relaes Entre Objetos As relaes entre objetos exprimem a maneira na qual os objetos so ligados uns aos outros. Essas relaes so instncias de associaes da mesma maneira que os objetos so instncias de classes. As relaes so permitidas unicamente entre objetos cujas classes possuem uma relao. Mensagens Uma mensagem um pedido de execuo de operao que um objeto cliente exprime a um objeto servidor. Em geral, o cliente conhece o servidor mas o servidor no conhece os clientes. As mensagens so apresentadas como decoraes das relaes entre os objetos. Uma flecha utilizada como smbolo de sincronizao para mostrar a direo das mensagens sequenciais, onde a semntica garantida por uma sequncia de controle. Uma sequncia de envio de mensagem, representa a operao pedida e a flecha indica a direo do envio da mensagem.

Diagrama de Mdulos Os diagramas de mdulos so utilizados para mostrar a alocao de classes e objetos nos mdulos do projeto de um sistema. Assim esses diagramas do uma viso da estrutura modular do sistema. Os elementos essenciais de um diagrama so os mdulos e suas dependncias.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

19

Mdulos O mtodo prope dois tipos de mdulos: O mdulo especificao representa os arquivos que contem as declaraes de classes do sistema. O mdulo corpo representa os arquivos que contem as definies das classes do sistema. O mtodo Booch permite a representao de dois tipos de mdulos em um s cone, denotando a declarao e a definio de um mdulo. Isso evita a duplicao e deixa os diagramas de mdulos mais visveis. O nome do mdulo geralmente o nome do arquivo que contm a declarao e/ou a definio de classes do sistema. Dependncias As dependncias so as relaes entre mdulos que descrevem uma dependncia de compilao. Em C++, por exemplo, as dependncias de compilao so descritas pelas diretiva #include. A notao utilizada para uma dependncia uma flecha que parte de um mdulo para um outro mdulo. A figura 11 mostra a notao para representar os mdulos. A flecha partindo do mdulo A para o mdulo B indica que A depende de B.

Figura 11

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

20

Diagramas de Processos usado para mostrar a alocao dos processos nos processadores no desenvolvimento fsico do sistema. Um diagrama de processos representa uma viso dentro da estruturao do sistema. Os elementos essenciais so processadores, dispositivos e suas conexes. A figura 12 mostra as figuras representativas de processadores e dispositivos. Processadores Um processador uma pedao de hardware capaz de executar programas. Cada processador deve ter um nome e uma lista de processos. Um processo pode ser o programa principal ou o nome de um objeto ativo. Dispositivo Um dispositivo um hardware incapaz de executar programas e da mesma forma como os processadores deve possuir um nome. Conexes Indica uma conexo entre um dispositivo e um processador, um dispositivo e um dispositivo ou um processador e um processador. Normalmente conexes so consideradas bidirecionais, mas se alguma for unidirecional indica-se a direo com uma seta. Cada conexo pode opcionalmente possuir um nome que a identifique.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

21

Processadores

Dispositivos

Nome

Nome

Processo1 Processo2

Figura 12 Diagrama de Transio de Estados O diagrama de transio de estados mostra os estados possveis para uma dada classe, os eventos que causam a transio de um estado para outro e as aes que resultam da transio de estado. Os diagrama de transio de estados representam a viso dinmica do sistema, os elementos essenciais so os estados e as transies. Estados O estado de um objeto representa o resultado cumulativo do seu comportamento. Em um dado momento o estado conjuga todas as suas propriedades juntamente com os valores de cada uma delas. Cada estado deve ter um nome nico no diagrama e se necessrio as aes associados a ele, a figura 13 mostra o cone representativo do estado.

Nome do Estado Aes

Figura 13

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

22

Transies de Estados Um evento alguma ocorrncia que pode causar uma mudana no estado do sistema. Cada transio conecta dois estados, um estado pode efetuar uma transio para o mesmo estado inicial ou para um estado diferente Diagrama de Interaes O diagrama de interaes usado para rastrear a execuo. Ele na verdade uma outra forma de representar um diagrama de objetos, contudo nele dado uma maior nfase na passagem de mensagens. Nenhum novo cone ou conceito includo. A figura 14 apresenta o diagrama de forma tabular, sendo as entidades escritas horizontalmente no topo do diagrama, uma linha pontilhada vertical desenhada abaixo de cada objeto e as mensagens so escritas horizontalmente e representadas por setas que vo do objeto enviante ao receptor.

Objeto1 Mens_a( )

Objeto2

Objeto3

Objeto4

Mens_b( )

Mens_c( ) Mens_d( )

Mens_e( )

Figura 14

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

23

3.3 Unified Modeling Language


Esta metodologia, como o prprio nome sugere, procura unificar as principais metodologias existentes: Booch, OMT e OOSE. A notao grfica utilizada a da OMT, por ser a mais conhecida dentre as metodologias. A UML[UML97] possui os seguintes diagramas:

Diagrama Use Case Diagrama de Classe Diagramas Comportamentais:

Diagrama de Estado Diagrama de Atividade Diagrama de Sequncia Diagrama de Colaborao Diagrama de Componente Diagrama de Disposio

Diagramas de Implementao:

Observa-se que a quantidade de diagramas aumentou consideravelmente em relao as outras metodologias estudadas. Isto se d pelo fato da UML querer abranger todos os recursos possveis para modelar sistemas cada vez mais complexos. Desta forma estes diagramas fornecem mltiplas vises do sistemas, ficando a cargo do analista utilizar todos eles ou somente um subconjunto suficiente para representar sua aplicao. Novos conceitos foram inclusos na UML, como:
1. 2. 3.

Threads e processos Distribuio e concorrncia Diagramas de atividades (indicado para processos de reengenharia de negcios)
Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

24

4. 5.

Separao clara entre tipo, classe e instncia Refinamento (possibilita vrios nveis de abstrao)

6. Interface e componenetes Estas novas facilidades permitem que o analista detalhe seu projeto at onde desejado e ainda possibilita que esta metodologia seja utilizada igualmente por aplicaes comerciais, cientficas e de misso crtica permitindo representar tcnicas atuais como threads, concorrncia e distribuio. Esta metodologia muito interessante e completa. Porm por ser bastante recente, sua verso inicial foi lanada em maro deste ano, ela no possui muito material disponvel. A nica documentao existente est em disposio na web. Uma vez que no existia muito material e exemplos, e que as novas facilidades no seriam aproveitadas no meu trabalho preferi usar uma metodologia mais simples porm mais difundida.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

25

4. Modelo para Gerncia de Configurao de Servios

Nesta seo ser mostrado o modelo desenvolvido para um gerenciador de configurao de servios utilizando a metodologia Booch. Este modelo foi concebido de forma genrica para que novos servios possam ser adicionados sob demanda somente pela instanciao das classes propostas. Juntamente com o desenvolvimento do modelo foram criadas polticas de incluso de um novo servio e regras para que seu gerenciamento possa ser feito de forma correta e eficiente de acordo com o modelo proposto. Os demais digramas fornecem uma viso mais baixo nvel do sistema, no sendo portanto discutidos aqui. Os diagramas apresentados fornecem uma abstrao de alto nvel, servindo como base para posterior implementao do sistema para quaisquer servios desejados.

4.1 Diagrama de Classes


Neste diagrama sero mostradas todas as classes que compem o domnio do problema, as suas regras, responsabilidades e comportamento. As classes apresentadas no diagrama no so limitadas para o uso de um servio especfico, mas para qualquer servio desejado. A figura 15 apresenta o diagrama de classes desenvolvido para o problema de administrao de servios em ambientes heterogneos.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

26

Figura 15 A classe Grupo contm descries dos grupos de servios existentes, um grupo composto por vrios servios (Ex.: Servio de compartilhamento de filesystems). Um exemplo de sua utilidade a existncia de verses diferentes do mesmo servio. Cada verso vista como um servio separado, e todas as verses de um mesmo servio pertencem a um mesmo grupo.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

27

A classe Servio contm as particularidades de cada servio gerenciado pelo sistema, dados como verso e arquiteturas compatveis ficam mantidos nesse classe (Ex.: NFS verso implementada pelo SunOS 4.1). Cada instncia da classe Parmetro representa um tipo de parmetro ou dado configurvel (Ex.: Tipo de acesso ao filesystem). Desta forma novos parmetros podem ser inclusos atravs da instanciao dessa classe. Cada instncia da classe Servio referencia uma ou mais instncias da classe Parmetro, representando assim os dados de configurao necessrio para a instalao de um determinado servio nos hosts da rede. Cada parmetro de configurao associado a um servio possui restries. Este fato caracteriza a heterogeneidade na configurao de servios, onde um mesmo servio possui implementaes diferentes para plataformas distintas. As restries esto capturadas pela classe Restries de Parmetro, onde cada parmetro ligado a algum servio e a uma arquitetura possui regras bem definidas para sua correta utilizao no processo de configurao (Ex.: o parmetro tipo de acesso ao filesystem s pode Ter o valor ro - read-only ou rw - read-write). A classe Valor Configurado contm o valor efetivamente configurado de cada um dos parmetros em um determinado host (Ex.: no host host1 o parmetro tipo de acesso ao filesystem possui o valor ro). A classe Host representa todas as mquinas existentes na rede gerenciada, cada instncia dessa classe indica uma mquina em particular (Ex.: host1). A classe Arquitetura captura o aspecto heterogneo de hardware e software bsico do modelo (ex.: Mquina IBM RS/6000 com sistema operacional AIX 4.1). Uma nova arquitetura pode ser adicionada simplesmente atravs da instanciao.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

28

Dicionrio de Classes A seguir ser apresentado o dicionrio de classes para descrever de forma esquemtica as particularidades de cada uma das classes existentes. Grupo Definio: Atributos: Operaes: Agrupamento de servios. Cada instncia representa um grupo de servios gerenciados. Nome do Grupo Descrio do Grupo 1- Cria um novo grupo 2- Remove um grupo. Um grupo s pode ser removido se no existirem servios desse grupo. Servio Definio: Atributos: Operaes: Define a existncia dos servio a serem gerenciados. Cada instncia representa um servio em particular. Servio e verso Lista de sistemas operacionais compatveis 1- Cria um novo servio. Para que um novo servio seja criado ele deve pertencer a um grupo existente 2- Remove um servio. Um servio s pode ser removido se nenhuma mquina o estiver utilizando Parmetro Definio: Esta classe representa Cada um conjunto referencia de n parmetros parmetros configurveis. servio

necessrios para sua instalao. Um novo parmetro pode ser adicionado pela instanciao dessa classe. Atributos: Operaes: Nome do parmetro 1- Cria um novo parmetro 2- Altera um parmetro 3- Remove um parmetro. Um parmetro s pode ser removido se no estiver em uso por nenhum servio

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

29

configurado. Restries de Parmetro Definio: nesta classe onde ficam armazenadas todas as restries dos parmetros de configurao. Cada instncia informa a restrio de um parmetro em relao a um servio e uma Atributos: Operaes: arquitetura. Descrio Especificao Formal 1- Cria uma nova restrio. Uma restrio s pode ser criada para um parmetro, servio e arquitetura existentes. 2- Altera uma restrio 3- Valida as restries 4- Traduz os valores de entrada em valores vlidos para cada plataforma 5- Remove uma restrio. Uma restrio s pode ser removida se no existirem servios configurados que o utilizem. Valores Configurado Definio: Esta classe armazena os valores de configurao dos parmetros em cada mquina da rede para cada servio configurado. Uma instncia dessa classe indica o valor de configurao de um parmetro para um servio em um determinado host. Atributos: Operaes: Valor configurado
1-

Insere um valor. Este valor deve pertencer a um host, servio, e parmetro existentes.

2- Altera valor

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

30

Host Definio: Atributos: A classe host possui informaes particulares sobre todas as mquinas da rede gerenciada. Nmero IP Nome Domnio Netmask Endereo ethernet Localizao fsica Lista de filesystems locais Operaes: Lista dos grupos que o Host pertence 1- Inclui um novo host. Um host s pode ser includo se pertencer a uma das plataformas existentes.
23-

Altera host. Remove host. Um host s pode ser removido se a sua remoo no causar nenhuma falha na rede (Ex.: um servidor de algum servio s pode ser removido se no houverem clientes dependendo dele).

Arquitetura Definio: Atributos: Operaes: A classe Arquitetura caracteriza as plataformas disponveis para configurao. Mquina Sistema Operacional 1- Inclui arquitetura.
2-

Remove arquitetura. Uma arquitetura s pode ser removida se no existirem hosts que perteam a ela.

4.2 O Processo de Implantao de um Novo Servio


Pode-se verificar que o processo de implantao requer somente a instanciao das classes existentes no modelo. O modelo desenvolvido proporciona fcil expanso e o

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

31

mximo de automatizao num processo que normalmente complexo e demorado. Com os passos descritos abaixo um novo servio pode ser facilmente incluso no sistema de gerenciamento de servios: (1) Verifica-se se o servio a ser includo encaixa-se em algum dos grupos existentes. Caso contrrio cria-se um novo grupo. (2) Uma nova instncia da classe servio deve ser criada para o novo servio gerenciado. (3) Deve-se verificar se todos os dados de configurao necessrios existem na Biblioteca de Parmetros. Caso contrrio novas instncias dessa classe devem ser criadas para cada dado ausente. (4) Para cada um dos parmetros de configurao devem ser criadas instncias da classe Restries de Parmetros. Cada parmetro deve possuir quantas instncias forem necessrias para representar suas restries e regras de validao em cada uma das arquiteturas existentes. (5) As operaes para checagens de consistncia, traduo dos dados de configurao para as plataformas existentes e scripts de configurao devem ser implementadas. Estas operaes, apesar de necessrias para todos os servios, devem ser implementadas diferentemente para cada um deles afim de capturar as suas necessidades particulares.

A figura a seguir mostra o diagrama de interaes para a incluso de um novo servio. O processo inicializado por uma interface entre o administrador e o banco de dados.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

32

Figura 16

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

33

4.3 O Processo de Configurao de um Servio num Host


(1) Primeiro escolhe-se o servio a ser instalado e o host alvo da configurao. A escolha do host e do servio j deve associar os parmetros de configurao e as restries deles em relao as arquiteturas. (2) Os valores informados na interface de configurao devem ser validados atravs das restries existentes. (3) Checagens de consistncia devem ser efetuadas para verificar se a configurao est sendo feita corretamente em relao aos outros hosts da rede. (4) Uma vez que a configurao desejada pode ser efetuada, os dados devem ser cadastrados como instncias da classe Valor Configurado. Neste ponto a configurao est feita mas ainda no ativa no host alvo. (5) A nova configurao deve ser propagada para o host alvo afim de ser devidamente ativada. A figura 17 mostra o diagrama de interaes para a configurao de um servio nos hosts da rede gerenciada. O processo novamente inicializado por uma interface que age entre o administrador e banco de dados para execuo das operaes definidas.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

34

Figura 17

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

35

5. Concluso

A finalidade deste trabalho, como dito no nicio, apresentar o processo de desenvolvimento de um modelo orientado a objetos para gerncia de configurao de servios em redes heterogneas. Para alcanar os objetivos desejados 3 passos foram necessrios: (1) Entendimento do problema.
(2) (3)

Escolha de uma metodologia orientada a objetos. Criao do modelo.

O entendimento do problema fundamental para que se possa analisar qual metodologia mais se adequa para a construo do modelo. O passo (2) foi o mais difcil, como eu no tinha nenhum conhecimento sobre metodologias OO, procurei estudar as mais utilizadas e as que teriam melhor aceitao. Depois muitas dvidas sobre qual seria a mais fcil e que oferecesse os recursos necessrios cheguei a concluso que alm de serem muito parecidas, todas elas resolveriam o meu problema. Como diz em [RBPEL91] "a semelhana entre as abordagens so mais fortes que as diferenas, e ambas se complementam". A melhor metodologia aquela que voc j conhece, caso voc no conhea nenhuma, este era o meu caso, o melhor utilizar aquela que tenha melhor documentao, que lhe oferea maior segurana e que seja capaz de representar todas as caractersticas desejadas do problema. O processo de criao de modelo o passo mais demorado de todos. Ele exige refinamentos sucessivos a medida que o problema torna-se melhor definido e que o conhecimento da metodologia aumenta. a caracterizao do desenvolvimento em espiral to conhecido da engenharia de software.
Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

36

Finalmente, para este trabalho era necessria uma metodologia que fornecesse um alto nvel de abstrao para que o modelo ficasse genrico, mas que tambm facilitasse a implementao do prottipo de validao. Como no conhecia a fundo modelagem e banco de dados orientados a objetos, precisava de uma metodologia que tivesse ampla documentao, ferramenta de construo e que outras pessoas a conhecessem, facilitando assim as discusses exaustivas sobre a melhor forma de representao. Seria ainda preciso, que fosse de fcil integrao j que este modelo apenas uma parte de um modelo maior desenvolvido pelo projeto FLASH[Flash97]. Neste cenrio a escolha da metodologia Booch foi bastante satisfatria em todos os aspectos. O modelo ficou no nvel desejado para minha dissertao de mestrado e no houve problemas com documentao, consultoria e integrao com outros trabalhos complementares ao meu.

Bancos de Dados Orientados a Objetos

Um Modelo OO para Gerncia de Configurao de Servios em Ambientes Heterogneos

37

Referncias Bibliogrficas

[Boo94] [RBPEL94]

Booch, Grady. Object-Oriented Analysis and Design With Applications, Second Edition. Addison-Wesley 1994. Rumbaugh, James; Blaha, Michael; Premerlani, William; Eddy, Frederick e Lorensen, William. Modelagem e Projeto de Sistemas Baseados em Objetos. Editora Campus, 1994. Behforooz, Ali e Hudson, J. Frederick. Software Engineering Fundamentals. Oxford University Press, 1996. Frisch, Aeelen. Essential System Administration. OReilly & Associates, Inc., 1995. Tercero, Cinthia e Snchez, Jos. Administrao e Configurao de Equipamentos. Workshop de Administrao de Sistema - UFPE 96. Anderson, Paul. Towards a High-Level Machine Configuration System. On Proceedings of LISA 94. Leite, Denise Caillot F. Metodologia de Anlise Orientada a Objetos. Apostila do curso oferecido pelo Insoft, 1997. Unified Modeling Language. URL://www.rational.com/UML Projeto Flash. URL://www.flash.org.br

[BH96] [Fri95a] [TS96] [And94] [Lei97] [UML97] [FLASH97]

Bancos de Dados Orientados a Objetos

Você também pode gostar