Link para o texto completo

INTERAÇÃO NA WEB  (Resumo das Seções)

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