Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRuy Lisboa Natal Alterado mais de 9 anos atrás
1
Value type-based smart proxies: a concept for adaptable distributed applications Markus Aleksy, Ralf Gitzel ACM International Conference Proceeding Series; Vol. 90 Proceedings of the 2004 international symposium on Information and communication technologies Apresentado por: Daniel Welfer Eduardo Machado
2
2 Sumário 1. Tema 2. Motivação e Estado da Arte 3. Problemas a resolver 4. Solução 5. Protótipo 6. Resultados e comparação 7. Conclusões
3
3 1. Tema Tornar uma aplicação distribuídas auto-ajustável; Realçar a performance de uma aplicação distribuída; Conceito de proxy; Utiliza CORBA como middleware; Explora o suporte de CORBA para “Value Type Objects”
4
4 2. Motivação Implementar a idéia do proxy design pattern para construir uma aplicação distribuída e tolerante a falhas. Contexto: “Um cliente precisa acessar o serviço de outro componente. Acesso direto é possível, mas pode não ser a melhor abordagem” Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. (1996): A System of Patterns – Pattern- Oriented Software Architecture, John Wiley & Sons, Chichester
5
5 2. Motivação Exemplo 2: Uma aplicação que administra palestrantes. Nela, os clientes lêem objetos do servidor freqüentemente, para fins de consulta; Atributos de palestrantes como título, data, hora, localização e outros raramente mudam. Obviamente, se uma modificação ocorrer o novo estado desse objeto precisa ser transferidos para os clientes. Aleksy, M. and Kuhlins, S. (2001): Using Value Types to Improve Access to CORBA Objects, 2nd International Conference on Software Engineering, Artificial Intelligence, Networking & Parallel/Distributed Computing. Nagoya, Japan.
6
6 2. Motivação Além do desempenho, o proxy precisa dinamicamente reagir em relação a alguma mudança no ambiente distribuído; Se o servidor que abriga os objetos for desligado ou esses objetos migrarem para outro computador-servidor a conexão entre cliente e objetos não pode ser perdida; Tudo precisa ser transparente para o cliente;
7
7 3. Problemas a resolver Implementar uma solução para que o acesso ao componente servidor seja: Eficiente em tempo de execução; Seguro; Transparente e simples de usar; Implementar uma solução independente de plataforma e linguagem de programação; Ex: Cliente desenvolvido em Java e objetos servidor em Objective-C
8
8 4. Solução Utilizar o middleware CORBA; Independência de plataforma via IDL; Independência de linguagem via IDL compilers; Explorar a idéia de “value type objects” para implementar smart proxies; Counter é um objeto CORBA CachedCounter é um “value type objects”
9
9 4. Solução Original implementa um serviço particular; AbstractOriginal é a interface implementada pelo Proxy e Original; Proxy oferece a mesma interface que Original além de garantir o acesso à ele.
10
10 4. Solução Acesso usual a um objeto CORBA remoto: Cenário 1 Modelo que se quer evitar; Problemas de desempenho; Não tolerante a qualquer mudança do servidor. Ex: Interoperable Object Reference (IOR) torna-se inválido.
11
11 4. Solução Modelo simple pull: Cenário 2 Comunicação direta entre cliente e servidor O value type object periodicamente verifica o estado do objeto CORBA básico.
12
12 4. Solução Modelo pull com um objeto auxiliar: Cenário 3 Desacopla cliente e servidor através de Event Service; Desvantagem: objeto extra no lado cliente.
13
13 4. Solução Modelo push com um objeto auxiliar: Cenário 4 Objeto CORBA do servidor informa os clientes quando seu estado muda.
14
14 5. Protótipo Foi usado: – VisiBroker Event Service version 3.2; – JavaORB version 2.2.6 Ambiente com 3 computadores conectados em uma rede Ethernet de 10 Mbps. 1. Workstation SunUltra-1 com Solaris 2.6 e JDK 1.2.2 (servidor) 2. PC Pentium III, Linux 2.2.10 e JDK 1.1.8 (cliente) 3. Sun SPARCstation 10 com Solaris 2.5 (abriga o Event Service)
15
15 5. Resultados e Comparações Cliente enviava 100.000 requisições para o servidor (1 a cada 50 milisegundos) 1. Acesso remoto aos objetos CORBA de maneira usual; 2. Simple pull model; 3. Pull model com um objeto auxiliar; 4. Push model com um objeto auxiliar.
16
16 6. Resultados e Comparação Cenário 3 e 4 o “event service” é usado para comunicação entre o “value type object” e o objeto corba do servidor; No cenário 2 essa comunicação é direta; Cenário 3 e 4 possuem exigem um terceiro computador que hospede o “event service”. Assim, a comunicação entre cliente e servidor por intermédio desse possui uma latência maior. Além disso o “event service” usa o tipo any e exige marshalling and unmarshalling. Conseqüentemente o tempo de acesso é pior. Mas não muito pior.
17
17 7. Conclusões I O acesso usual a um objeto CORBA é de fácil implementação, porém tem o pior desempenho; O uso de value type object sem um event service possui o melhor desempenho. Entretanto, sem o uso de event service a conexão com o servidor é perdida.
18
18 7. Conclusões II Com envent service o cliente pode descobrir outro servidor (uma réplica). Assim, o serviço não é afetado. Dificuldade de determinar a freqüência de pooling; Necessidade de um objeto CORBA auxiliar no push model.
19
19 Notas Paper 2: Aleksy, M. and Kuhlins, S. (2001): Using Value Types to Improve Access to CORBA Objects, 2nd International Conference on Software Engineering, Artificial Intelligence, Networking & Parallel/Distributed Computing. Nagoya, Japan. Paper 1: Aleksy, M. and Gitzel, R. (2001): Value Type-based smart Proxies – a Concept for Adaptable Distributed Applications, ACM International Conference Proceeding Series; Vol. 90 Proceedings of the 2004 international symposium on Information and communication technologies Paper 1Paper 2 Motivação/Estado da Arte55 Problemas a Resolver33 Protótipo resultados e comparação15 Redação e formatação35
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.