A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Serviço de Nomes Serviço de nomes CORBA: mapeia nomes a objetos clientes devem saber exatamente qual objeto desejam.

Apresentações semelhantes


Apresentação em tema: "Serviço de Nomes Serviço de nomes CORBA: mapeia nomes a objetos clientes devem saber exatamente qual objeto desejam."— Transcrição da apresentação:

1 Serviço de Nomes Serviço de nomes CORBA: mapeia nomes a objetos clientes devem saber exatamente qual objeto desejam

2 Serviço de Negociação

3 Necesidades do usuário Serviço mais dinâmico de descoberta de objetos cliente possui dados imprecisos ou incompletos sobre o que deseja uma maior variedade de serviços com funções semelhantes

4 Serviço de negociação OMG Trading Service como o serviço de nomes, contém referências para objetos usuários utilizam o trader para obter informações sobre serviços que atendam a suas necessidades análogo às páginas amarelas

5 Funcionalidades armazena anúncios de serviços entidades anunciam um serviço(exporter) a referência do objeto anunciado é imutável. a descrição do serviço é feita pelas suas propriedades, que podem ser alteradas

6 Funcionalidades pode-se anunciar um objeto mais de uma vez, sob diferentes propriedades anúncios podem ser retirados do trader (withdraw) procura por serviços sob certas restrições de propriedades do serviço (import)

7 Tipos de Serviço são armazenados num banco de dados de tipos de serviço, o Repositório de Tipos de Serviço cada trader pode ter referência para somente 1 repositório Repos. de tiposTrader 1 *  uses

8 Tipos de Serviço são identificados por um nome único no repositório Possuem: uma identificação uma lista de definições de propriedades (pode ser vazia) uma lista de tipos de serviços pais (pode ser vazia) IncarnationNumber add_type( in CosTrading::ServiceTypeName name, in Identifier if_name, in PropStructSeq props, in ServiceTypeNameSeq super_types )

9 Tipos de Serviços Propriedades são definidas por: um nome um código que determina o tipo do valor da propriedade o tipo normal somente para leitura obrigatória obrigatória e somente para leitura dinâmicas ou estáticas

10 Módulos do trader - IDL CosTrading TraderComponents : atributos para as componentes do trader Register: operações para criação novas ofertas de serviços (exporters) Lookup : operações para pesquisa de serviços (importers) Admin : atributos para administração de políticas Link : operações para conexão entre traders (federação) Proxy : operações para proxies - objetos que não são implementações

11 Módulos do trader - IDL CosTradingRepos ServiceTypeRepository: operações para manipular tipos de serviço CosTradingDynamic DynamicPropEval: para obter valores de propriedades dinâmicas

12 Interação com o trader 3 estágios principais: definição do tipo no repositório de tipos registro do serviço pesquisa de serviço

13 Registrando um tipo de serviço

14 CosTradingRepos Definição, consulta e remoção de tipos de serviços module CosTradingRepos { interface ServiceTypeRepository { IncarnationNumber add_type( in CosTrading::ServiceTypeName name, in Identifier if_name, in PropStructSeq props, in ServiceTypeNameSeq super_types) void remove_type(in CosTrading::ServiceTypeName name) };

15 Oferta de serviço é a descrição de um serviço Exemplo Printer name: string floor: short language: string color: string ppm: short Propriedades

16 Oferta de serviço é a descrição de um serviço IncarnationNumber add_type( in CosTrading::ServiceTypeName name, in Identifier if_name, in PropStructSeq props, in ServiceTypeNameSeq super_types ) IDL:printer:1.0 IDL:printer_if:1.0 name: string floor: short language: string color: string ppm: short Propriedades

17 Registrando um serviço

18 Interface Register registro de uma oferta de serviço OfferId export(in Object reference, in ServiceTypeName type, in PropertySeq properties) modificação de um serviço remoção um serviço já existente void modify(in OfferId id, in PropertyNameSeq del_list, in PropertySeq modify_list) void withdraw(in OfferId id)

19 interface Register { OfferId export( in Object reference, in ServiceTypeName type, in PropertySeq properties ); }; : Printer name = hp5000 floor = 4 language = ps color = 256 ppm = 12 Propriedades struct Property { PropertyName name; PropertyValue value; }; IDL:printer:1.0

20 Pesquisa de serviço

21 Interface Lookup oferece meios de pesquisa: por um serviço específico que atende determinadas restrições por ordem de preferência void query( in ServiceTypeName type, in Constraint constr, in Preference pref, in PolicySeq policies, in SpecifiedProps desired_props, in unsigned long how_many, out OfferSeq offers, out OfferIterator offer_itr, out PolicyNameSeq limits_applied)

22 Expressões de busca (usadas como preferência) Literais ‘a’ ‘string’ Comparação == != = Operadores aritméticos + - * / operadores booleanos and or not pertinência ‘elemento’ in Conjunto Substrings ‘de’ ~ ‘abcdefg’ existência (de prop.) exist Propriedade

23 Políticas para consultas search_card, match_card, return_card : número máximo de serviços para serem procurados, ordenados e retornados, respectivamente max_list : número máximo a ser retornado. Para o restante, usa-se next_n() support_dynamic_properties : busca considera serviços com propriedades dinâmicas support_modifiable_properties : busca não considera propriedades somente-para-leitura outras (federação)...

24 Exemplo de busca Serviços disponíveis Name Floor Language ColorPPM mtl-all 3 postscript black24 rle2 text black40 hpps2 postscript black24 blue2 postscript 25612 colorPS3 postscript color12 Restrição: ((color == 'black') and (language == 'postscript')) Preferências: min(floor)

25 Resultado da busca name = rle color = black floor = 2 language = postscript ppm = 40 IOR:00000000002449444c3a6f6d672e6f72672f436... Oferta 1 name = hpps color = black floor = 3 language = postscript ppm = 24 IOR:000000d49444c3a6fd672e6f72672f436f73547... Oferta 2

26 Federação de traders

27 agrupa recursos compartilhamento de carga replicação melhor gereciamento das ofertas de serviços e das requisições destina-se somente a consultas, não a registro de serviços

28 D A C F B E

29 Interface Link criação de um vínculo void add_link(in LinkName name, in Lookup target, in FollowOption def_pass_on_follow_rule, in FollowOption limiting_follow_rule) modificação de um vínculo remoção de vínculos void modify_link(in LinkName name, in FollowOption def_pass_on_follow_rule, in FollowOption limiting_follow_rule void remove_link(in LinkName name) enum FollowOption { // pesquisa local somente local_only, // passa para outros, se não encontrar localmente if_no_local, // sempre encaminha para outros always };

30 Políticas para consultas follow_rule local_only : pesquisa local somente if_no_local : encaminha para outros, se não encontrar localmente always : sempre encaminha starting_trader : consulta é encaminhada para todos os traders e inicia no último hop_count : número máximo de traders que uma consulta pode percorrer

31 Administração

32 interface Admin : TraderComponents, SupportAttributes, ImportAttributes,LinkAttributes { readonly attribute OctetSeq request_id_stem; unsigned long set_def_search_card (in unsigned long value); unsigned long set_max_search_card (in unsigned long value); unsigned long set_def_match_card (in unsigned long value); unsigned long set_max_match_card (in unsigned long value); unsigned long set_def_return_card (in unsigned long value); unsigned long set_max_return_card (in unsigned long value); unsigned long set_max_list (in unsigned long value); boolean set_supports_modifiable_properties (in boolean value); boolean set_supports_dynamic_properties (in boolean value); boolean set_supports_proxy_offers (in boolean value); unsigned long set_def_hop_count (in unsigned long value); unsigned long set_max_hop_count (in unsigned long value); FollowOption set_def_follow_policy (in FollowOption policy); FollowOption set_max_follow_policy (in FollowOption policy); FollowOption set_max_link_follow_policy (in FollowOption policy); TypeRepository set_type_repos (in TypeRepository repository); };


Carregar ppt "Serviço de Nomes Serviço de nomes CORBA: mapeia nomes a objetos clientes devem saber exatamente qual objeto desejam."

Apresentações semelhantes


Anúncios Google