CORBA/WEB - A6

     Subject: CORBA/WEB - A6
        Date: 27 Apr 1998 18:57:10 GMT
        From: "Silvio" 
Organization: Faculdade de Engenharia Eletrica e da Computacao - UNICAMP
  Newsgroups: feec.posgrad.IA368F


Tecnologias de Distribuição: Web e CORBA

Integrantes do Grupo A6:

Adriana Delfino         - RA: 958105
Armando Delgado         - RA: 845253
Marcos Chaim            - RA: 876091
Luis Gonzaga            - RA: 935398 
Silvio Evangelista      - RA: 875647 (Relator)


1. Introdução:


Atualmente, as aplicações existentes na WEB empregam a combinação de "Hypertext
Markup Language" (HTML) , "Common Gateway Interface (CGI) e "applets" Java.  O
HTML é basicamente uma linguagem de formatação que descreve como o conteúdo de
um documento WWW deve ser mostrado. O CGI é o mecanismo que permite a um
servidor WWW atender às requisições específicas de seus clientes [1]. E os
"applets" Java [2] são programas independentes de máquina, automaticamente
carregados a partir do servidor WWW para a máquina cliente, quando uma página
HTML, que incorpora "applets", é descarregada para o cliente.

Estes mecanismos permitem um certo grau de interatividade na
máquina-cliente. Por outro lado, eles somente adicionam uma simples interação do
cliente com o servidor. Com o avanço da utilização da WWW, verifica-se ser cada
vez mais necessário o uso de aplicações integradas e interoperáveis, em
contradição com os atuais formulários disjuntos.

A junção CORBA/WEB parece ser um caminho natural para fornecer integração e
interoperabilidade às aplicações WWW [3].  CORBA (Common Object Request Broker
Arquitecture) é um padrão que descreve como as aplicações clientes podem invocar
operações no servidor de objetos com a utilização dos serviços do ORB ("Object
Request Broker") [4,5].  O ORB é o componente central da arquitetura CORBA, isto
é, ele funciona como a infra-estrutura de comunicação que permite a interação
dos objetos de software distribuído com os clientes. Com o ORB, os objetos e
seus clientes podem residir em um mesmo processo ou em diferentes hospedeiros
conectados via rede [4].



2. Curso sob Medida e Prova Virtual:

A arquitetura de software necessária à montagem de um curso sob medida e prova
virtual será descrita com a utilização de objetos distribuídos com CORBA. Em
primeiro lugar, supõe-se a existência de um servidor WEB que possa atender às
requisições HTTP e CORBA. Este servidor interage com os clientes via JAVA/CORBA
ou HTTP/CGI.


2.1 Composição da disciplina (exercícios, provas, aulas) e estabelecimento do perfil do
curso:

Cada disciplina será composta por um ou mais módulos (material didático,
exercícios e exames) e cada módulo possuirá várias instâncias de informação.
Pode-se citar, como exemplo, as seguintes instâncias de informação para cada um
dos módulos:

- Material Didático: o material didático pode ser composto por um módulo
      básico (obrigatório), pelo módulo F1H1 (para alunos com histórico H1
      e formação F1), pelo módulo F2H2 (para alunos com histórico H2 e formação
      F1), etc.

- Exame: o exame possuirá questões obrigatórias, questões específicas para
      F1H1 (alunos com histórico  H1 e formação F1, etc.

- Exercícios: os exercícios podem ser compostos por um série de questões básicas
     e outras questões específicas para o tipo de formação e/ou histórico do
     aluno.

O processo de composição das disciplinas é uma tarefa cooperativa, podendo cada
instrutor estar preparando um determinado módulo ou instância de informação,
cujo resultado final é um conjunto de informações organizadas em forma de
árvore. Esta árvore abrange todo o assunto com diversos níveis de profundidade,
destinado a diferentes perfis.

A junção CORBA/WEB permite que se crie verdadeiros ambientes de cooperação, pois
facilita o controle de concorrência do material em composição e possibilita o
controle do espaço de trabalho compartilhado. Desta forma, cada instrutor
poderia trabalhar em sua estação de trabalho, visualizando o mesmo espaço de
trabalho e produzindo sua parte do curso.

Observa-se que o material do curso ficaria armazenado no servidor e as
ferramentas para cooperação seriam escritas em Java e distribuídas aos
instrutores.

O curso em composição, por sua vez, seria uma página HTML, incorporando
"applets" Java.  Estes "applets" invocariam o servidor de objetos CORBA e
trariam os objetos relativos à parte do curso de responsabilidade de um
determinado professor. O professor trabalharia com estes objetos e armazenaria o
trabalho no servidor. A conexão entre as ferramentas de cooperação (Java) e o
servidor de objetos persiste até que os dois lados decidam se desconectar.  Esta
persistência facilitaria o controle de concorrência entre os vários professores
que estão montando o curso e o gerenciamento da área de trabalho comum. Ademais,
os objetos que compõem um determinado curso podem estar distribuídos entre
vários servidores, sem que os clientes tomem conhecimento deste fato.

O material do curso seria preparado com os recursos da linguagem Java,
utilizando ambientes visuais para a confecção. A utilização de Java/CORBA
possibilitaria a construção de interfaces mais ricas e amigáveis.


2.2 Cadastro de atores com diferentes perfis e nível de acesso

O cadastramento de atores pode ser feito com uma interface gerada localmente,
via "applet" Java, e enviado para o servidor para armazenamento. Este
cadastramento pode ser realizado com muito mais eficiência com a utilização de
Java/Corba, pois as interfaces para inscrição podem ser muito mais amigáveis e a
consistência dos dados digitados pode ser feita localmente, deixando para o
servidor apenas a tarefa de armazenamento.


2.3. Disponibilização e acompanhamento da disciplina/aula:

A disponibilização da disciplina depende do perfil do aluno, que é recuperado
quando se realiza um acesso ao servidor.  Desta maneira, a página principal do
curso conterá vários "applets" Java que seriam responsáveis pela invocação do
servidor de objetos CORBA. Estas invocações disparam programas que seriam
responsáveis pela recuperação dos objetos em função do perfil do aluno.
Observa-se que o curso é basicamente uma estrutura composta por partes que podem
estar distribuídas em diversos servidores.  A manutenção do estado da aplicação
durante o acesso por parte do aluno é facilitada pela possibilidade de
manutenção da conexão entre o cliente e o servidor. Cabe destacar que vários
alunos podem acessar o curso ao mesmo tempo, sobrecarregando o servidor. Neste
caso, a utilização de "multi-threads" otimizaria o tempo de resposta do
servidor.

O instrutor acompanha o aluno através de seu histórico (dinamicamente alimentado
pelos acessos do aluno ao material). Este histórico é armazenado no servidor e
pode ser recuperado através deaplicações locais (no servidor) quando o aluno
estiver em "aula". Esta recuperação é realizada através dos mesmos mecanismos de
recuperação do perfil do aluno, importando apenas seus aspectos
históricos. Desta forma, o armazenamento/recuperação do histórico pode ser
implementado via "applet" Java/CORBA.


2.4. "Feedback" para alunos e professores

Os professores recebem o "feedback" através do próprio histórico do aluno e dos
resultados dos exames. Isto significa que o professor poderá acompanhar o aluno
pelas informações contidas em seu histórico e por suas notas. Estas informações,
como descrito anteriormente, estão armazenadas no servidor e podem ser
recuperadas a partir de interfaces montadas, especialmente para este fim, com
Java/CORBA.

Os alunos recebem o "feedback" através de consultas aos resultados obtidos nos
exames (descrito no item posterior), disponibilizados por páginas geradas
através de HTTP/CGI, a partir dos resultados gravados na base de dados da
disciplina. Este processo pode ser efetivado via CGI, devido à pequena
quantidade de informação disponibilizada e ao baixo número de acessos a esta
informação, uma vez que as notas somente estarão disponíveis após a aplicação e
a correção de cada exame.


2.5. Aplicação e correção de provas e disponibilização de resultados

A aplicação de prova, assim como a disponibilização do material, está fortemente
relacionada ao perfil do aluno para uma determinada disciplina.  Neste sentido,
os mecanismos para aplicação de provas são os mesmos da disponibilização do
material. "Applets" são utilizados na elaboração das questões da prova, que
devem contemplar:

        (1) campos de textos - questões dissertativas
        (2) lista de itens - questões de múltipla escolha
        (3) processo de aferição de tempo de prova

Observe que a utilização de "applets" permite uma maior flexibilidade da
interface do exame e a consistência dos dados de entrada na máquina
cliente. CORBA poderia ser utilizado para facilitar a conexão com o servidor,
dado que esta se manteria pelo período que fosse necessário.  Esta flexibilidade
permite que o instrutor construa vários tipos diferentes de provas. Por exemplo,
a prova pode ser totalmente respondida na máquina cliente, sem necessidade de se
manter a conexão aberta, ou pode ser respondida com a conexão sendo mantida. O
tipo de conexão dependerá do objetivo do teste.

As questões de múltipla escolha serão corrigidas automaticamente pelo "applet" e a
pontuação enviada para armazenamento. Por outro lado, as questões dissertativas serão
armazenadas em um repositório para posterior correção.  A nota, juntamente com o gabarito
de resultados, estará disponível para consulta quando todas as questões estiverem sido
corrigidas.



3. Considerações Finais:

CORBA é uma ferramenta que resolve o problema da distribuição e da
interoperabilidade de aplicações. A junção CORBA/WEB permite que a INTERNET
fique mais próxima de um computador global. Esta facilidade proporciona novos
horizontes às aplicações desenvolvidas na INTERNET.  Nesta direção, a utilização
de CORBA nas atividades relacionadas a um curso sob medida e prova virtual é
muito adequada, uma vez que facilita a distribuição transparente dos objetos que
compõem o curso, bem como permite a construção de um ambiente realmente
cooperativo para composição de um curso. Ademais, possibilita que conexões entre
o cliente e o servidor permaneçam abertas, otimizando o tempo necessário para
realização das tarefas e auxiliando a manutenção do estado de uma aplicação.

Portanto, quase todas as atividades descritas no item 2 deste texto podem ser
implementadas com JAVA/CORBA, que proporciona uma uniformidade de conceitos,
pois todas as atividades são desenvolvidas com ferramentas de programação
destinadas a ambientes cliente/servidor.





4. Bibliografia

1. Prelude to CGI, in Introdution to CGI/PERL, Chapter 1
   Steven E. Brenner, Edwin Aoki
   M&T Books, 1996.
2. Overview of Applets in The Java Tutorial
   Objetc-Oriented Programming for Internet, 2nd Ed.
   Mary Campione, Kathy Walrath
   http://java.soft.com, march 1998.
3. Using Java Applets and CORBA for Multi-user Distributed Applications
   Eric Evans, Daniel Rogers
   IEEE Internet Computing, June 1997.
4. Bridging Boundaried: CORBA in Perspective
   Sean Baker, Vinny Cahill e Paddy Nixon
   IEEE Internet Computing, Set. 1997.



ricarte@dca.fee.unicamp.br

Last modified: Tue Apr 28 10:32:12 BRA 1998