Tecnologias de distribuição Web e CORBA

 

Grupo D6:

Carlos Augusto Fernandes Dagnone R.A. 932034

Valmir Tadeu Fernandes R.A. 946211

Firmiano Ramos Perlingero R.A. 972407

Marcio Vieira Soares R.A. 984331

 

Introdução

As vantagens do CORBA/JAVA

As alterações propostas

Conclusões

Introdução

O CORBA "Common Object request Broker architecture" é um sistema composto por objetos distribuidos, que provê mecanismos através dos quais um objeto pode fazer pedidos e receber respostas de outros objetos dentro do mesmo ambiente. Esta arquitetura foi definida pela OMG (Object Management Group), um pool de mais de 150 empresas, para promover a utilização do modelo de programação orientada ao objeto, no desenvolvimento de software distribuido.

Como objeto de nossa reunião de 23/04, estudamos a utilização do Corba para implementação do ambiente "Curso sob medida" + "Prova virtual". As propostas até então aceitas pelo grupo eram relacionadas com o uso de servlets e applets Java, com finalidade de resolver problemas ligados à distribuição, uso de bancos de dados e outros problemas relativos à implementação do ambiente.

A entrada do CORBA, permitiu alterações na arquitetura inicialmente proposta.

As vantagens do CORBA/JAVA

O conjunto Java/Corba, em comparação com aplicações baseadas em CGI, tem uma série de vantagens como pode ser visto na tabela de comparações abaixo:

Item

CGI

Java/Corba

Flexibilidade

Agrupa interface do usuário e definições remotas em formulários HTML

Argumentos de operações remotas são necessáriamente strings, não se aceitam dados estruturados

Separa Interface e operações remotas

Aceita estruturação de dados

Manutensibilidade

Alterações do formulário HTML devem ser feitas manualmente no programa CGI

Mudanças no IDL podem ser automaticamente transmitidas ao cliente e servidor pela saída do compilador IDL

Configuração do Servidor

Formulários HTML são instalados no host WWW

Cada programa CGI é feito para manuseio de uma operação distinta

Cada chamada remota exige uma nova instância do programa CGI

Software applet cliente java é instalado no servidor.

Um objeto remoto pode ser criado para manuseio de muitas operações remotas

Um objeto remoto pode gerenciar várias chamadas remotas.

Intuitividade da interface do usuário

O desenvolvedor tem controle limitado sobre a interface com o usuário

Desenvolvedor limitado ao uso das tags HTML

Controle pleno da interface pelo desenvolvedor

Desenvolvedor pode criar novos componentes a partir de outros

Sensibilidade

Nova interface implica em nova carga da página HTML

Cada invocação remota é vagarosa pela carga do programa CGI e de seus recursos

Não suporta Multi-thread

A applet gerencia direto a nova interface

Uma invocação remota pode ser gerenciada por uma applet já sendo executada

O objeto servidor remoto pode já Ter carregado os recursos antes do pedido

Suporta Multi-thread

 

 

 

As alterações propostas

No documento anterior emitido pelo grupo, estabeleceu-se como ferramentas a programação utilizando, para cada funcionalidade um conjunto de ferramentas que deveriam facilitar a implementação. Na análise de cada funcionalidade tivemos:

  1. Compor as disciplinas através de material, exercícios, provas, aulas, de forma distribuída aplicando-se ou não técnicas de grupo, etc.: para esta funcionalidade do ambiente, era proposto o uso de servlets.
  2. Cadastrar atores com diferentes perfís e níveis de acesso (instrutor, monitor, alunos, grupos de estudo, etc.) : Para este caso, também era proposto o uso de servlet, com cuidados relativos aos bancos de dados.
  3. Estabelecer perfís para cada curso definindo diferentes visões: Também aqui seria utilizado servlets para separação dos alunos em diferentes níveis de conhecimento.
  4. Disponibilizar as disciplinas/aulas (relacionamento curso/aula/disciplina/tempo máximo): Novamente o uso de servlets para o acesso cliente/servidor de questões. Aqui também era proposto o uso de Castanet, para agilização do acesso dos dados.
  5. Acompanhar o andamento da disciplina: Aqui a proposta era o uso de applets Java,
  6. Fornecer o FeedBack para alunos e professores: a opção aqui poderia ser feita entre o servlet (preferido) ou até mesmo uma aplicação CGI.
  7. Aplicar provas, testes ou dissertativas: utilização de applets Java
  8. Corrigir e pontuar a prova pelo próprio sistema através de testes, instrutor "ad-hoc", autocorreção (disponibilizar gabaritos para auto-avaliação): utilização de applets Java.
  9. Disponibilizar os resultados para eventuais consultas: retorna o uso de servlets, devido ao trânsito de informações.

Esta distribuição então, poderíamos agrupar de acordo com a ferramenta utilizada:

Servlets: 1, 2, 3, 4, e 9

Servlets e Castanet: 6

Applets Java: 5, 7 e 8

O uso do CORBA vem facilitar a eliminação dos gargalos de operação no sistema, e, devido à sua própria arquitetura e perfeita integração com o Java, se torna muito interessante para substituir as propostas de uso de servlets e da Castanet das funcionalidades 1, 2, 3, 4, 6 e 9 da proposta anterior, com vantagens claras de rendimento do sistema.

Conclusão:

O CORBA, em conjunto com o Java, pode (e deve) ser o conjunto escolhido para a implementação do ambiente educacional proposto, principalmente devido à necessidade de rendimento exigida por uma aplicação com essa finalidade. No caso de se resolver pela iteração de grupos de estudo (de forma sincrona) ou no desenvolvimento do aplicativo, este uso será fundamental, principalmente levando em consideração controle de versões.

A eliminação do gargalo de processamento no sistema é um item importantíssimo nesta implementação. Outro aspecto fundamental é a necessidade de processamento distribuído, que o uso da dupla Java/CORBA permite e realiza com grande desenvolvoltura.

BIBLIOGRAFIA:

Evans, Eric and Rogers, Daniel "USING JAVA APPLETS AND CORBA FOR MULTI-USER DISTRIBUTED APPLICATIONS", - University of Texas at Austin, IEEE Internet Computing

May-June/ 1997

S.Baker, V.Cahill, P.Nixon," BRIDGING BOUNDARIES: CORBA IN PERSPECTIVE" ,

IEEE Internet Computing, setembro/outubro 1997 , pg 52-57

Siqueira, Frank; "CORBA - Common Object Request Broker Architecture" - apostila Universidade Federal de Santa Catarina

Dagnone et all, programação na Web.