XVIII JAI - Jornada de Atualização em Informática
(JAI'99)
XIX Congresso da Sociedade Brasileira de Computação
(SBC'99)
Rio de Janeiro - Julho de 1999
Alberto B. Raposo, Léo
P. Magalhães e Ivan
L. M. Ricarte
Depto. de Eng. da Computação e Automação
Industrial (DCA)
Fac. de Eng. Elétrica e de Computação (FEEC)
Universidade Estadual de Campinas (UNICAMP)
- Campinas, SP, Brazil
E-mails: alberto@dca.fee.unicamp.br,
leopini@dca.fee.unicamp.br
e ricarte@dca.fee.unicamp.br
Resumo: O objetivo do curso será mostrar que, apesar dos avanços que os applets Java trouxeram à Web, ainda existe um longo caminho para que a Web possa ser efetivamente utilizada como meio de interação entre seus usuários. O curso iniciará mostrando uma visão geral dos avanços que ocorreram no que diz respeito à interação com os usuários. Serão abordados temas como CGI (Common Gateway Interface), ECMAScript (antigo JavaScript) e, principalmente, os applets Java, que permitiram dar um certo grau de dinamismo às páginas Web. Após esta visão geral, serão abordadas algumas tendências que deverão ter papel essencial no futuro software para a Web. A primeira tendência está relacionada às aplicações multiusuário; serão discutidas as dificuldades adicionais na construção de interfaces para este tipo de aplicação. Serão também analisados resultados do campo de CSCW (Computer Supported Cooperative Work) e mostrados exemplos de software colaborativo para a Web. Outra tendência abordada serão as interfaces pós-WIMP (Windows, Icons, Menus, Pointing device), com ênfase na utilização da realidade virtual através da VRML (Virtual Reality Modeling Language). Finalmente, serão apresentados os CVEs (Collaborative Virtual Environments), que fazem a ligação entre estas duas tendências, permitindo a interação de vários usuários "imersos" em um ambiente de realidade virtual.
Perfil desejado para os alunos: alunos de graduação ou pós, com noções básicas sobre o funcionamento da Web.
Carga horaria: 6 h.
Estrutura prevista do texto:
1. Introdução
1.1. Interação Homem-Computador
(IHC)
1.2. A Web como meio de interação
2. Ferramentas
2.1. HTML (HyperText Markup Language)
2.2. CGI (Commom Gateway Interface)
2.3. ECMAScript
2.4. Java
2.4.1.
Introdução
2.4.2.
Applets
2.4.3.
Servlets
2.4.4.
Java Beans
2.4.5.
Java 2D e Java 3D
2.4.6.
JSDT (Java Shared Data Toolkit )
3. Aplicações colaborativas
3.1. Dificuldades de interfaces
multiusuário
3.2. CSCW (Computer Supported Cooperative
Work)
3.2.1.
Taxonomias
3.2.2.
Requisitos
3.3. Exemplos
4. Novos paradigmas
4.1. Interfaces Pós-WIMP
4.2. Realidade Virtual
4.2.1.
VRML (Virtual Reality Modeling Language)
4.2.2.
Ambientes Virtuais Colaborativos (CVEs)
4.2.3.
Tele-Imersão
5. Conclusão
Resumo das Seções:
1. Introdução
Este capitulo introduz a questão da interação
na Web.
1.1. Interação Homem-Computador (IHC)
Esta seção abordar alguns conceitos básicos de
IHC, tais como usabilidade, projeto centrado no usuario e UIL (User Interface
Language).
1.2. A Web como meio de interação
São explicadas as razões que têm levado os desenvolvedores
de software a se interessar por aplicações na Web. Também
são analisadas as limitações da Web como meio de interação,
dentre elas: lentidão de feedback e protocolo "stateless" (o HTTP
não tem o conceito de sessão).
2. Ferramentas
Este capitulo mostra como a Web evoluiu de um meio estático
(HTML puro) para um meio onde é possível a transmissão
de aplicações embutidas nas páginas (applets Java).
O objetivo é mostrar o estado atual da Web, enfatizando suas limitações
no que diz respeito à criação de interfaces com usuários.
2.1. HTML (HyperText Markup Language)
Nesta seção é mostrado que o HTML por si só
é bastante limitado para a criação de interfaces (mesmo
em sua versão mais recente e em seu eventual substituto, o XML),
pois é um meio estático que não permite a geração
de respostas dinâmicas em função das ações
do usuario nem o controle sobre a aparência da interface (esta decisão
fica a cargo dos browsers).
2.2. CGI (Common Gateway Interface)
O CGI representou um grande avanço no que diz respeito à
interação na Web, pois por meio dele é possível
interagir com um servidor de informações capaz de gerar páginas
dinamicamente como resposta às ações dos usuários.
No entanto, embora adequado para aplicações altamente dependentes
do servidor (consulta a base de dados, por exemplo), o CGI apresenta sérias
limitações para a construção de interfaces
(a lentidão de feedback é um exemplo, já que a interface
só é alterada após o contato com o servidor e a obtenção
do resultado do processamento realizado).
2.3. ECMAScript
O ECMAScript (antigo JavaScript) surgiu como complemento/alternativa
importante ao CGI, pois com ele é possivel realizar algum processamento
do lado do cliente Web. Isso favoreceu o desenvolvimento de interfaces
para aplicacões na Web, pois tornou possivel dar ao usuário
algum feedback sem necessariamente se conectar ao servidor. Esta seção
discute estes fatores e mostra alguns exemplos, concluindo que, apesar
de tudo, o ECMAScript é uma linguagem com funcionalidade limitada.
É comentado também que atualmente está em fase de
padronização o chamado DHTML (Dynamic HTML), um conjunto
de extensòes do HTML 4.0 que permitirá a criação
de páginas mais interativas, por exemplo, permitindo o encapsulamento
de scripts em componentes reutilizáveis.
2.4. Java
Esta seção discute a linguagem Java, que é o padrão
"de facto" para aplicações na Web. São mostradas algumas
funcionalidades desta linguagem, enfatizando aquelas diretamente relacionadas
ao desenvolvimento de interfaces com os usuários.
2.4.1. Introdução
Os conceitos básicos da linguagem Java são abordados:
orientação a objetos (de maneira mais simples que C++, sem
apontadores e outros elementos que normalmente causam dificuldades para
o programador), independencia de plataforma, Java Virtual Machine, dentre
outros.
2.4.2. Applets
Applets são programas embutidos em uma página Web e transferidos
para o cliente, onde são executados. Com os applets Java, é
possível construir interfaces para a Web utilizando toda a funcionalidade
de uma linguagem de programação abrangente. São mostrados
alguns exemplos de applets, ilustrando as funcionalidades desta tecnologia.
No entanto, também são enfatizadas algumas limitações
(e maneiras que têm sido usadas para superá-las): deficiências
para o desenvolvimento de interface gráficas, impossibilidade de
ler ou escrever dados no computador que executa o applet e impossibilidade
de se conectar com outra máquina que não a servidora do applet
(por questões de segurança).
2.4.3. Servlets
Esta seção apresenta o conceito de servlet, que é
uma API (Application Programming Interface) para a programação
de aplicacões Java no lado do servidor (ao contrário dos
applets, que são executados no cliente). Os servlets são
uma alternativa ao CGI, com a vantagem da portabilidade e segurança
da linguagem Java.
2.4.4. Java Beans
Aqui são estudados os Java Beans, que representam a implementação
Java do conceito de componentes de software. Além disso, é
também apresentado o Swing, um conjunto de componentes Java para
a construção de interfaces gráficas.
2.4.5. Java 2D e Java 3D
As bibliotecas Java 2D e Java 3D permitem a criação de
interfaces gráficas mais sofisticadas. A Java 2D contem classes
para a criação, manipulação e renderização
de primitivas bidimensionais, texto e imagens. A Java 3D tem funcionalidade
similar, tratando de geometrias tridimensionais. Estas duas bibliotecas
são apresentadas nesta seção.
2.4.6. Java Shared Data Toolkit (JSDT)
Esta é uma seção motivadora para o próximo
capitulo, introduzindo o JSDT, que implementa serviços de envio
de dados para vários receptores e mecanismos de sincronização,
ambos recursos importantes para aplicações colaborativas.
3. Aplicações colaborativas
Este capítulo trata das aplicações multiusuário,
enfatizando as ferramentas de groupware, que auxiliam a realização
de tarefas colaborativas. É mostrado que a Web, apesar de oferecer
a ilusão de ser uma grande base de informações compartilhadas,
ainda oferece barreiras significativas para a colaboração
efetiva entre os usuários.
3.1. Dificuldades de interfaces multiusuário
São discutidas as dificuldades adicionais inerentes às
aplicações multiusuário: percepção das
atividades dos outros usuários, feedthrough, visualização
(WYSIWIS), dentre outros aspectos que precisam ser tratados em interfaces
de aplicações colaborativas.
3.2. CSCW (Computer Supported Cooperative Work)
Esta seção introduz o conceito de CSCW, diferenciando-o
de termos afins, tais como groupware e group support systems. Tambem é
introduzido o conceito de trabalho de articulação, definido
como sendo o "conjunto de atividades necessárias para gerenciar
a natureza distribuida do trabalho cooperativo".
3.2.1. Taxonomias
São apresentadas duas taxonomias usadas para a classificação
de sistemas colaborativos. A primeira delas é a tradicional classificação
espaço-temporal (colaboracao síncrona ou assíncrona,
presencial ou não-presencial). A outra taxonomia divide a tecnologia
de CSCW em quatro categorias básicas, de acordo com o tipo de aplicação:
comunicação, espaço de trabalho compartilhado, espaço
de informações compartilhado e suporte à atividade
em grupo.
3.2.2. Requisitos
Aqui é apresentado um framework informal para a análise
de ferramentas de groupware, baseado em um apanhado geral de requisitos
encontrados na literatura. Dentre os requisitos estudados, destacam-se:
flexibilidade (técnica, social, funcional, etc), capacidade de comunicação
(formal e informal, direta e indireta), noção de contexto
compartilhado, possibilidade de privacidade e anonimato, e tipo de
implementação (centralizada, replicada, consciente da colaboração,
de colaboração transparente, etc).
3.3. Exemplos
Várias ferramentas de trabalho colaborativo desenvolvidas para
a Web são analisadas nesta seção, tomando por base
as taxonomias e o framework apresentados nas seções anteriores.
Dentre as ferramentas analisadas, destacam-se as seguintes: Groupweb, BSCW,
JETS, CBE e TeamWave.
4. Novos paradigmas
Esta seção estuda novos paradigmas para a construção
de interfaces na Web, enfocando principalmente o uso da Realidade Virtual.
4.1 Interfaces Pós-WIMP
É feito um breve histórico mostrando as várias
gerações de interfaces com usuários até se
chegar às interfaces WIMP (Windows, Icons, Menus, Pointing device),
o estágio atual de desenvolvimento. São analisadas as limitações
deste tipo de interface e apresentadas algumas tendências para as
futuras interfaces: reconhecimento de voz, uso da realidade virtual, reconhecimento
dos movimentos, uso do tato, dentre outras.
4.2 Realidade Virtual
Esta seção introduz os conceitos de realidade virtual
e mostra, através de exemplos, como ela tem se integrado à
Web através da VRML.
4.2.1 VRML (Virtual Reality Modeling Language)
Do ponto de vista da Web, a VRML pode ser vista como uma espécie
de HTML tridimensional, ou seja, uma linguagem independente de plataforma
para a publicação de páginas Web tridimensionais.
O "mini-tutorial" apresentado nesta seção mostra que a VRML
é muito mais que isso. Através de exemplos, os conceitos
básicos da VRML são apresentados: grafo hierárquico
da cena, nos geométricos, sensores, processamento de eventos, prototipação,
reuso, interpoladores e, principalmente, a integraçào de
uma cena com programas externos (em Java, por exemplo), o que abre inúmeras
possibilidades para novas aplicações, inclusive os ambientes
virtuais colaborativos, que serão vistos na próxima seção.
4.2.2 Ambientes Virtuais Colaborativos (CVEs)
Um CVE é uma simulação em tempo real de um mundo
real ou imaginário, onde usuários estão simultaneamente
presentes e podem navegar e interagir com objetos e outros usuários.
Os CVEs saem da metáfora de desktop da maioria das aplicações
atuais e propõem "sociedades virtuais", onde as interações
ssão modeladas a partir de interações do mundo real.
O objetivo desta seção é introduzir a tecnologia de
CVEs, apresentando e analisando algumas implementações existentes.
4.2.3 Tele-Imersão
Esta seção discute a tele-imersão, frequentemente
associada à realidade virtual, que tem como objetivo fazer com que
o usuário se sinta fisicamente presente em um ambiente remoto (virtual
ou não). Esta tecnologia é ideal para o controle de robôs
em ambientes hostis ou de difícil acesso para o homem (fundo do
mar, interior de vulcões, etc). A tele-imersão é uma
das aplicações alvo da Internet2, um projeto envolvendo mais
de cem universidades americanas que pretende aprimorar a infraestrutura
da Internet para atender às necessidades de uma série de
aplicações.
5. Conclusão
O curso conclui mostrando que, apesar dos recentes avanços nas
tecnologias para interaçào na Web, ainda existe um longo
caminho a ser percorrido até que a Web possa ser efetivamente usada
como meio de interação entre seus usuários, principalmente
em aplicações que exigem transmissão rápida
e confiável de uma quantidade elevada de mensagens ou dados (aplicações
colaborativas e de realidade virtual, por exemplo).
Curriculum Vitae dos Autores:
Alberto Barbosa Raposo: atualmente é aluno de doutorado no Depto. de Eng. de Computação e Automação Industrial (DCA) da Fac. de Eng. Elétrica e de Computação (FEEC) - UNICAMP. Em 1994 e 1996, respectivamente, concluiu a graduação e o mestrado nesta mesma faculdade. Seus interesses atuais são CSCW, ambientes virtuais colaborativos e realidade virtual. Membro da SBC, IEEE, IEEE Computer Society e AACE (Association for the Advancement of Computing in Education).
Leo Pini Magalhaes: Professor da Faculdade de Engenharia Elétrica e de Computação da Unicamp, Dr.-Ing. pela Technische Hochschule Darmstadt,Alemanha. Atua na área de pesquisa de animação, computação gráfica. É membro (senior) do IEEE, ACM, Eurographics e SBC.
Ivan Luiz Marques Ricarte:
Professor no Departamento de Engenharia de Computação e Automação
Industrial da Faculdade de Engenharia Elétrica e de Computação
da UNICAMP. Seus interesses correntes de pesquisa são sistemas de
informação hipermidia em ambientes distribuídos e
tecnologias educacionais. Recebeu um Ph.D. da Universidade de Maryland,
College Park (USA). É membro da SBC, IEEE, IEEE Computer Society,
IEEE Education Society, ACM e Association for the Advancement of Computing
in Education (AACE).
Link para o texto completo