Texto Completo
Transcrição
Texto Completo
INESC Instituto de Engenharia de Sistemas e Computadores Relatório Servidores Multimédia Digitais Porto, 28 de Maio de 1997 INESC Servidores Multimédia Digitais Índice ÍNDICE ......................................................................................................................................................................2 INTRODUÇÃO..........................................................................................................................................................4 CAPÍTULO 1 - SERVIDORES DE INFORMAÇÃO...............................................................................................5 1.1 ARQUITECTURA DOS SERVIDORES MULTIMÉDIA .....................................................................................................5 1.1.1 O computador servidor................................................................................................................................6 1.1.2 O sistema operativo.....................................................................................................................................6 1.1.3 Os sistemas de armazenamento RAID..........................................................................................................9 1.1.4 A interface entre o sistema de armazenamento e o servidor.........................................................................9 1.1.5 Conclusão ................................................................................................................................................. 10 1.2 COMUNICAÇÃO E GESTÃO DISTRIBUÍDA............................................................................................................... 11 1.2.1 Panorâmica da programação distribuída com o Orbix .............................................................................. 12 1.2.1.1 Os clientes e os servidores....................................................................................................................................13 1.2.1.2 Definição de interfaces .........................................................................................................................................14 1.2.2 Panorâmica da tecnologia COM ............................................................................................................... 14 1.2.2.1 A automação OLE ................................................................................................................................................15 1.2.2.2 Os controlos OLE e a tecnologia ActiveX .............................................................................................................15 1.2.3 A integração CORBA/COM....................................................................................................................... 16 1.2.4 O acesso às Bases de Dados...................................................................................................................... 16 1.3 AUTENTICAÇÃO E ENCRIPTAÇÃO DE INFORMAÇÃO ............................................................................................... 17 1.3.1 A segurança do correio-electrónico........................................................................................................... 18 1.3.2 Os aspectos de segurança no servidor ....................................................................................................... 19 1.3.2.1 Os métodos básicos ..............................................................................................................................................20 1.3.2.2 Os métodos normalizados .....................................................................................................................................20 1.3.2.3 Os sistemas proprietários......................................................................................................................................21 CAPÍTULO 2 - ARQUIVO DE INFORMAÇÃO ................................................................................................... 22 2.1 GESTÃO DA BASE DE DADOS .............................................................................................................................. 22 2.1.1 Requisitos do arquivo de informação......................................................................................................... 23 2.1.2 Soluções Tecnológicas............................................................................................................................... 24 2.1.3 Soluções Comerciais ................................................................................................................................. 26 2.1.3.1 Informix Universal Server ....................................................................................................................................26 2.1.3.2 Oracle Universal Server........................................................................................................................................26 2.1.3.3 IBM DB2 Universal Database ..............................................................................................................................27 2.2 PESQUISA INTELIGENTE DE INFORMAÇÃO ATRAVÉS DE AGENTES DE INTERFACE ..................................................... 28 2.2.1 Introdução................................................................................................................................................. 28 2.2.2 Conceitos Gerais e Definições................................................................................................................... 29 2.2.3 Metodologia de funcionamento.................................................................................................................. 30 2.2.4 Infra-estruturas necessárias ...................................................................................................................... 31 2.2.5 Aplicações existentes................................................................................................................................. 33 2.3 MPEG7 ............................................................................................................................................................ 34 2.3.1 Contexto e objectivos ................................................................................................................................ 34 2.3.2 Áreas de Interesse ..................................................................................................................................... 36 2.3.3 Plano de trabalhos .................................................................................................................................... 36 CAPÍTULO 3 - INFRA-ESTRUTURAS E GESTÃO DOS SISTEMAS DE INFORMAÇÃO ............................. 38 3.1 REDES E PROTOCOLOS DE COMUNICAÇÃO ........................................................................................................... 38 3.2 CATALOGAÇÃO DA INFORMAÇÃO E GESTÃO DO ARQUIVO..................................................................................... 44 3.2.1 Regras de catalogação .............................................................................................................................. 44 3.2.2 Sistema de armazenamento de informação RAID....................................................................................... 47 3.3 PROGRAMAÇÃO E SCRIPTING DO SERVIDOR ......................................................................................................... 49 2 INESC Servidores Multimédia Digitais 3.3.1 Tecnologias............................................................................................................................................... 49 3.3.1.1 Flexibilidade e potencial ......................................................................................................................................50 3.3.1.2 Conhecimentos necessários para o desenvolvimento..............................................................................................50 3.3.1.3 Ciclo de desenvolvimento e teste ..........................................................................................................................50 3.3.1.4 Capacidade de adaptação a alterações...................................................................................................................51 3.3.1.5 Custos ..................................................................................................................................................................51 3.3.1.6 Risco Operacional ................................................................................................................................................52 3.3.1.7 Overhead gerado no CPU .....................................................................................................................................52 3.3.2 Soluções comerciais .................................................................................................................................. 53 3.3.2.1 Active Server Pages (ASP) da Microsoft ...............................................................................................................53 3.3.2.2 LiveWire da Netscape ..........................................................................................................................................54 3.3.2.3 WebServer 3.0 da Oracle......................................................................................................................................55 3.4 COMÉRCIO ELECTRÓNICO .................................................................................................................................. 56 3.4.1 Comércio electrónico orientado para os consumidores (consumer-to-business)......................................... 57 3.4.2 Comércio electrónico Business-to-business ............................................................................................... 60 3.4.3 Soluções comerciais .................................................................................................................................. 61 3.5. TECNOLOGIAS WEB TV E WEBCASTING............................................................................................................. 63 3.5.1 Introdução................................................................................................................................................. 63 3.5.2 A tecnologia Streamed Web Video on-demand........................................................................................... 63 3.5.2.1 VDONet...............................................................................................................................................................65 3.5.2.2 VXtreme ..............................................................................................................................................................65 3.5.2.3 Vivo Software ......................................................................................................................................................66 3.5.2.4 Vosaic..................................................................................................................................................................66 3.5.2.5 Xing.....................................................................................................................................................................66 3.5.2.6 Progressive Networks ...........................................................................................................................................66 3.5.3 A Tecnologia Server Push ......................................................................................................................... 67 3.5.3.1 Pointcast Network ................................................................................................................................................68 3.5.3.2 Marimba ..............................................................................................................................................................69 CONCLUSÃO.......................................................................................................................................................... 71 BIBLIOGRAFIA ..................................................................................................................................................... 75 3 INESC Introdução Introdução A Associação PortucaleXXI é a promotora do Projecto 424C aprovado pelo subprograma C, acção 1.2 do PRONORTE - Apoio à Cooperação e Promoção. Este projecto pretende especificar e definir o plano de acção para a implementação de infra-estruturas de servidores de informação multimédia e audiovisual digital, com transmissão remota de informação em alto débito (Mediateca), e de um centro de Artes e Tecnologias (Artec) dedicado à formação, divulgação cultural e lúdica. É nesta linha de acção que se enquadra o presente relatório, cujo âmbito será essencialmente tecnológico e operacional. O sistema de informação multimédia audiovisual de suporte da Mediateca e Artec envolverá a utilização de servidores de informação com elevada capacidade de armazenamento e dotados de capacidades de interface com redes de comunicação de alto débito. Sendo assim, sistematizamos os requisitos a que este sistema deve responder do seguinte modo: • • • • • Número elevado de clientes; Sistema de armazenamento escalável e com elevada capacidade de armazenamento; Larguras de banda elevadas associadas à rede de comunicação e ao sistema de armazenamento; Serviço em tempo real; Viabilidade económica da arquitectura escolhida. Este relatório está organizado em três capítulos e uma conclusão que refere de forma concisa os aspectos mais importantes abordados no relatório e que são relativos às soluções tecnológicas e às estruturas da implementação de um sistema de informação multimédia audiovisual. O corpo do relatório está estruturado em três capítulos principais que abordam as três vertentes que julgamos essenciais: as tecnologias dos servidores de informação, as tecnologias de arquivo de informação e, finalmente, as infra-estruturas de suporte e gestão dos sistemas de informação. Cada um deste capítulos está subdividido em itens específicos relacionados com cada uma das tecnologias em estudo. Sempre que oportuno, são referidas implementações específicas ou soluções comerciais existentes no mercado. Este relatório final contem também uma referência a cada uma das fontes bibliográficas específicas consultadas. 4 INESC Tecnologia dos servidores de informação Capítulo 1 Servidores de Informação Este capítulo tem como objectivo principal analisar as várias questões envolvidas na a ter em atenção na escolha e definição de uma arquitectura para servidores de informação, que satisfaça, entre outros, os requisitos de uma largura de banda elevada, da disponibilização de serviços em tempo real e de elevada fiabilidade. Os servidores serão acedidos via rede por vários utilizadores ou outros sistemas clientes. Na óptica dos servidores de informação irão ser abordadas algumas das questões relacionadas com a arquitectura do servidor e dos nós de armazenamento distribuídos, assim como da gestão e segurança da comunicação com os clientes. 1.1 Arquitectura dos servidores multimédia Os serviços multimédia personalizados estão a evoluir rapidamente para uma simbiose entre o armazenamento em larga escala, a transmissão em redes rápidas e o fornecimento de serviços de pesquisa assistida [3]. A maior dificuldade para a realização prática destes sistemas está nos elevados custos de armazenamento e transmissão de informação multimédia. Os avanços no hardware e no software estão a computadorizar o processo de aquisição, autoria, composição e publicação de informação. Os discos de elevada capacidade de armazenamento e as redes de fibra óptica, com elevadas taxas de transmissão, permitem a integração de diversos dados multimédia, tanto no armazenamento digital como na distribuição através de servidores assentes em redes de banda larga. Estes servidores, designados por Servidores Multimédia (Media Servers), armazenam ficheiros com streams de áudio e vídeo, fundamentalmente no formato MPEG2, que resultam da digitalização das fontes de áudio e de vídeo que vêm do estúdio e que passam pelos conversores de formatos, gerando enormes quantidades de informação. Estes servidores ficarão sujeitos a vários pedidos simultâneos de acesso aos dados provenientes de diferentes utilizadores, através de uma rede rápida (e.g. ATM). Quer isto dizer que o servidor deverá permitir operações rápidas de leitura e escrita; deverá além disso possuir uma elevada capacidade de armazenamento para que possa albergar/servir grandes quantidades de streams de dados [13]. As soluções arquitectónicas e as técnicas de caching poderão ser utilizadas para minimizar custos de entrega de dados multimédia através de WANs. Actualmente, as soluções para um sistema deste tipo podem passar por um servidor comercial completo ou por um sistema RAID ligado a um computador (e.g. PC) com um sistema operativo apropriado ou simplesmente pela utilização de um Array de discos ligados a um computador com um sistema operativo apropriado. A escolha da solução mais viável para o servidor envolve a escolha de um sistema com elevadas capacidades de armazenamento; com elevadas taxas de transferência de dados; com uma interface rápida entre o sistema de armazenamento e o sistema computadorizado capaz de transferir dados entre eles sem atrasos; com um sistema operativo com capacidades de interligação rápida à rede. 5 INESC Tecnologia dos servidores de informação 1.1.1 O computador servidor Numa visão computacional distribuída os servidores devem fornecer capacidades computacionais multimédia que abarquem o armazenamento, manipulação, construção, distribuição e sincronização dos média. Os servidores multiprocessador, num ambiente cliente-servidor, necessitam não só de armazenar informação multimédia mas também de manipular informação apresentada sob formas não textuais. A manipulação de informação não textual abre um mundo novo de diferentes operações no domínio do processamento e análise de imagem. Os servidores devem estar equipados com processadores para a compressão de vídeo, processadores de imagem e processadores de média que transformem informação de um tipo de média para outro tipo. As futuras aplicações irão requerer capacidades de computação multimédia por parte dos processadores. A este nível começam já a surgir os primeiros processadores com capacidades multimédia integradas, como é o caso do MMX da Intel. O sistema hospedeiro necessita de uma interface rápida para se ligar ao sistema de armazenamento RAID e necessita também de uma placa adaptadora ATM para transmitir os dados a todos os clientes (e.g. estúdios) pendurados na rede. O sistema operativo escolhido não deve introduzir estrangulamentos no desempenho da interface com os outros sistemas, de modo a assegurar a utilização eficiente de todas as capacidades dos sistemas. O sistema operativo não possui normalmente o software necessário para gerir o sistema RAID, mas as soluções comerciais para estes sistemas incluem normalmente esse software. 1.1.2 O sistema operativo A arquitectura de um sistema operativo multimédia deverá possuir característica particulares tanto ao nível da gestão de recursos e da gestão do sistema de ficheiros como também no escalonamento de tarefas [14]. Os sistemas operativos multimédia devem preocupar-se não só com a gestão e fornecimento de dados “contínuos” sem atrasos mas também com o armazenar de dados “discretos”. Estes problemas reflectem-se na forma como o sistema gere os processos, os recursos, os ficheiros e a memória. Os conceitos utilizados pelos sistemas operativos multimédia foram inicialmente desenvolvidos para sistemas de tempo-real e são adaptados aos requisitos necessários para o tratamento de dados multimédia. Os actuais sistemas operativos multimédia incorporam estas funcionalidades através de device drivers ou através de extensões ao sistema de gestão de ficheiros e de escalonamento dos actuais sistemas operativos. O próximo passo irá levar-nos à integração do processamento em tempo-real no kernel nativo destes sistemas. Alguns fabricantes de software são da opinião que o Windows NT ocupará os mercados dominados até hoje pelo sistema operativo Unix em geral e pelo Solaris em particular; as estações de trabalho NT poderão vir a substituir gradualmente e totalmente as estações Unix, e os servidores NT com multiprocessadores poderão substituir aos poucos os servidores Unix [15]. Há contudo opiniões que dizem ser esta situação extremamente complexa e certamente muito mais ampla do que uma simples sucessão de um sistema operativo por outro. No mercado dos servidores, ambas as soluções têm o seu lugar. Ao nível das estações de trabalho as estações NT são um rival muito forte das estações Sun. 6 INESC Tecnologia dos servidores de informação Muitos são no entanto da opinião que o Windows NT não desafiará tão cedo o Unix no mercado dos servidores de larga escala. Consideram estes que o NT é um óptimo servidor LAN, um grande servidor de aplicações e um bom sistema operativo para as estações de trabalho, mas que não veremos tão cedo grandes NT data warehouse [15]. As razões técnicas apontadas referem-se ao facto deste sistema operativo não suportar suficientemente bem as grandes bases de dados e que não é possível, do dia para a noite, igualar um sistema como o Unix que possui 30 anos de investigação e desenvolvimento. Segundo estes, o Windows NT possui falta de escalabilidade (scalability): • o suporte para múltiplos processadores é escasso: há no mercado algumas workstations NT dual-processor; ouve-se falar de servidores three-processor, mas na prática quase ninguém vende um solução NT four-processor. A Data General está a introduzir aquilo a que se chama Standard High Volume Servers, que são produtos que combinam mother-boards Pentium Pro com tecnologia de clustering da própria companhia. Esta empresa acredita que estes dispositivos, correndo o Windows NT ou o Unix, acabarão gradualmente por entrar na corrente principal da computação comercial; • o suporte para múltiplas plataformas: o Windows NT está disponível numa grande variedade de sistemas e processadores mas o seu desempenho com outros CPUs, que não da Intel é ainda uma incógnita. Alguns produtos e linguagens mais populares da Microsoft nunca chegaram a estar disponíveis para o NT RISC; • o suporte de um grande número de utilizadores: o sistema operativo Windows NT não funciona bem com milhares de utilizadores; • o suporte de um grande volume de dados: quanto à quantidade de dados que podemos armazenar e servir, o Solaris encontra-se aqui também em vantagem. Ainda segundo estas opiniões, a Internet está largamente centrada em Unix, ou seja, os servidores da Internet são na sua maioria Unix, o que lhe confere uma grande vantagem competitiva. Por outro lado, o Windows NT está a ter grande sucesso como servidor de estações de trabalho, tomando o lugar do Novel Netware. O futuro reserva-nos uma mistura do Windows NT e do Unix. Devido ao suporte nativo de TCP/IP que o NT possui, é ao nível de pequenos servidores baseados em redes de PCs, que comunicam com servidores Unix, que o NT parece destinado a reinar. O NT consegue uma ligação eficaz entre os PCs e os sistemas Unix, ou seja, parece ser a interface óptima que permite aos dois sistema coexistirem. Como está a reagir o mercado aos dois sistemas operativos? Genericamente os utilizadores estão a tentar tirar o melhor partido destas duas plataformas, permitindo a sua coexistência na mesma rede. Podem assim obter um elevado desempenho dos servidores Sun, como espinha dorsal da rede, que podem correr Sybase e Oracle, e introduzir os servidores de grupo NT eliminando assim os servidores Novel. Em muitas empresas utilizam-se as estações de trabalho para o design, dado existirem pacotes de software muito mais baratos, e utilizam os sistemas Solaris como servidores de página e servidores de bases de dados, obtendo assim o melhor dos dois mundos. O Windows NT e o Solaris podem coexistir, o NT como interface para o interior das instituições com um ambiente gráfico fácil de utilizar; e o Solaris como estrutura base para os seus computadores mais técnicos, mais abertos e flexíveis. Em alguns ambientes, as estações NT de baixo custo e relativamente poderosas, a correr em processadores Pentium/RISC, são alternativas atractivas aos tradicionais desktops Unix (e.g. em CAD/CAM). Nos escritórios há uma grande necessidade de aplicações produtivas para as estações 7 INESC Tecnologia dos servidores de informação de trabalho, e é aí que o NT poderá ser uma solução mais barata. Por outro lado a Sun e as suas estações Silicon Graphics possuem a força da sua história e são uma solução mais cara mas supostamente com melhor desempenho. Ao nível do software, a Digital Equipment Corp. lançou o Affinity que surge com uma família de produtos e serviços que facilitam a integração dos sistemas operativos OpenVMS (desenvolvido pela Digital) e Windows NT (desenvolvido pela Microsoft). O sistema operativo Open VMS permite a computação gráfica a 64-bit em toda a linha Alpha (desde servidores desktop até sistemas de multiprocessamento simétrico high-end); vem enriquecido com tolerância a falhas; permite threads no kernel para aumentar o desempenho de multiprocessamento simétrico; possui um sistema de ficheiros de 64-bit log-structured, designado por Spiralog e concebido para configurações 10TB; permite clusters SCSI-based; possui VLM (Very Large Memory) o que permite às bases de dados serem até 200 vezes mais rápidas do que as BDs convencionais de 32-bit (nota: o Oracle é uma implementação de 64-bit VLM). O sistema operativo NT possui uma aplicação nativa que suporta todas as aplicações de 16 e 32 bit (DOS e Windows), num ambiente multi-tarefa interrompível; possui segurança de nível C2; um sistema de ficheiros NTFS; a tecnologia OLE (Object Linking and Embeding) da Microsoft; APIs OpenGL; corre em Intel x86 e Pentium, Alpha AXP, MIPS technologies R4X00 e plataformas PowerPC. A ponte destes dois sistemas operativos é conseguido através de middleware de integração do OpenVMS. O suporte nativo da API ODBC em OpenVMS permitirá aos servidores OpenVMS responder transparentemente a queries SQL vindas de aplicações Windows (off-the-shelf). O suporte MiddleWare Integratiom inclui: o DCE (Distributed Computing Environment) da OSF (Open Software Foundation); o DECMessageQ que permite enviar mensagens entre aplicações; o ObjectBroker que fornece uma infra-estrutura baseada em objectos e uma interoperacionalidade similar baseada no CORBA (Common Object Request Broker Architecture) do grupo OMG (Object Managment Group) e OLE; o RTR (Reliable Transaction Router) que fornece encaminhamento de mensagens e software com tolerância a falhas, para aplicações distribuídas; o ACM Sxp que constitui um ambiente de desenvolvimento e run-time para aplicações OLPT; o BDIntegrator que fornece acesso transparente a dados de múltiplas fontes. O Affinity está a ser difundido como a mais recente arquitectura cliente/servidor com servidores VMS de elevado desempenho na missão crítica de back-end; os sistemas Windows NT a correr middleware ficarão no middle-end; os clientes GUI do Windows NT ou Windows 95 serão o frontend. Com o VMS a tratar da gestão em back-end, os clientes ganham em escalabilidade, disponibilidade e segurança já provadas de um sistema operativo maduro. O Windows NT será útil no Alpha ou em arquitecturas comparáveis, oferecendo LANs e serviços de aplicação no middleware; oferece aos clientes uma solução industrialmente aceite, centrada em PCs e de elevado desempenho para a lógica computacional. No front-end, o Windows oferece ao cliente uma incomparável solução GUI de base para as aplicações e aceite pela indústria e pelos utilizadores. O programa Affinity expande a visão do mundo Microsoft para abarcar a arena dos grandes servidores, de grande disponibilidade e tolerantes a falhas no espaço das empresas. 8 INESC Tecnologia dos servidores de informação 1.1.3 Os sistemas de armazenamento RAID É vulgar vermos hoje em dia os fabricantes de servidores de vídeo utilizarem sistemas de armazenamento de informação com tecnologia RAID (Redundant Array of Independent Disks). Esta tecnologia é vulgarmente utilizada para aplicações de VoD (Video on Demand) e WWW (World Wide Web), entre outras [16]. Os sistemas RAID são classificados em vários níveis de implementação, que diferem normalmente quanto à maneira como os dados são armazenados nos discos: • • • • • Nível 0 (Stripping): os dados são divididos em blocos e repartidos equitativamente pelos n discos do array. O primeiro bloco vai para o primeiro disco, o segundo bloco vai para o segundo disco e assim sucessivamente. Há quem não considere ente sistema um verdadeiro nível RAID porque não oferece redundância e todo o sistema fica bloqueado se um dos drives falhar; Nível 1 (Mirroring): todos os dados são repartidos pelos drives tal como no RAID 0 mas todos os discos são duplicados. Esta é uma solução segura mas muito cara porque existe um overhead de 50% resultante dos 2*n drives; Nível 3 (Parity Check): os sistemas de nível 3 utilizam n+1 drives, n discos para armazenar e um disco para paridade. Os primeiros n byte são armazenados nos primeiros n discos de dados e um byte de paridade é colocado no disco de paridade. Este método parece eficiente e de baixo custo mas devido à sua organização física não funciona bem com serviços de acesso I/O aleatórios; Nível 4 (Independent Access): este nível é uma variante ao RAID3, cuja única diferença se situa ao nível do tamanho dos blocos. No nível 3 o tamanho dos blocos é tipicamente de 1 byte enquanto que no nível 4 o tamanho dos blocos é de um sector; isto permite que os pequenos pedidos de I/O de dados possam ser efectuados pelo acesso a um único disco; Nível 5 (Rotate Parity): este nível é semelhante ao nível 4 mas distribui os blocos de paridade por todos o drives. Este método acelera as operações de escrita de dados em sistemas de multiprocessamento uma vez que o disco de paridade deixa de ser um ponto de estrangulamento. Nas leituras os blocos de paridade têm que ser verificados em cada drive, penalizando um pouco estas operações. 1.1.4 A interface entre o sistema de armazenamento e o servidor Existem actualmente no mercado três importantes interfaces, entre o sistema de armazenamento e o computador hospedeiro, a considerar para o armazenamento em larga escala: • • SCSI (Small Computer Interface): esta é no momento a interface dominante. As normas SCSI I, II e III definem interfaces paralelas de dados para a transferência de dados entre pares de dispositivos a taxas de 20 MB/s (F/W SCSI II). A última implementação SCSI II, designada por ULTRA-SCSI, pode atingir taxas de 40 MB/s. Esta interface permite no máximo 16 discos no barramento SCSI; Fibre Channel: a FC-AL (Fibre Channel Arbitrated Loop) é a única implementação Fibre Channel apropriada para dispositivos de armazenamento. A implementação FC-AL consiste num anel (loop) cujo modo de operação é muito semelhante a uma rede Token Ring; este anel pode suportar taxas de transferência até 100 MB/s e permite a interligação de 126 dispositivos. Existem implementações FC-AL com dois anéis que fornecem a redundância necessária em caso de falha; 9 INESC • Tecnologia dos servidores de informação SSA (Serial Storage Architecture): nesta arquitectura de armazenamento série todas as ligações são ponto-a-ponto. Esta arquitectura permite a ligação de 127 dispositivos dual-ported, ou seja, permite que cada dispositivo se ligue a dois outros dispositivos à esquerda e à direita. Cada dispositivo passa os dados ao dispositivo mais próximo. Este conceito conhecido por reutilização espacial (spacial reuse) oferece uma elevada largura de banda efectiva devido ao uso independente de cada ligação. As ligações são full-duplex, daí que os dados possam fluir em ambas as direcções. Os dispositivos operam a 20 MB/s e, uma vez que as portas em cada drive são full-duplex em ambas as direcções, permitem ter uma largura de banda efectiva de 80MB/s. A interface SCSI é uma solução tecnológica muito divulgada e largamente utilizada devido ao seu baixo custo, comparativamente com as outras duas tecnologias. A maior parte das soluções RAID disponíveis no mercado utilizam drives SCSI e possuem já o software necessário para controlar o sistema. 1.1.5 Conclusão As soluções possíveis para a implementação de um servidor podem passar, como já foi referido, por: um sistema comercial completo; por um sistema RAID acoplado a um sistema computadorizado; ou simplesmente um array de discos acoplado a um servidor simples. Como exemplos de soluções comerciais podemos referir: o Philips Media Server; o HP MediaStream Server; o Alex Libra Media Server; o Sun MediaCenter. Todos os sistemas referidos obedecem à norma MPEG-2 e suportam a ligação a redes ATM. Esta primeira alternativa de implementação é no entanto a mais dispendiosa e a menos flexível. O servidor Alex Libra é Davic compliant e suporta o protocolo DSM-CC utilizando o CORBA como mecanismo de RPC; este sistema proporciona uma solução RAID de 20GB numa arquitectura paralela de base baseada num Pentium e com um sistema operativo Windows NT; o seu custo ronda os $45,000USD. O servidor HP MediaStream custa aproximadamente $100,000USD na sua configuração de base e oferece um sistema RAID com 45GB e um sistema operativo de tempo real da HP (HP Real-Time Operating System). O servidor MediaCenter da Sun, com o sistema operativo Solaris, possui um sistema RAID com 8GB de espaço de armazenamento e custa aproximadamente $37,500USD. Como implementação alternativa, mais barata e mais flexível, podemos optar por um sistema RAID comercial ligado a um PC. Esta solução liberta-nos quanto à escolha do sistema operativo que pode ser um qualquer desde que permita o desenvolvimento de aplicações que controlem a comunicação entre o servidor e os seus clientes à medida das necessidades. Existe um conjunto de companhias que produzem este tipo de sistemas, como por exemplo a Xyratex, ProMax e a RAID-Data. O sistema ProMax com uma solução RAID SCSI de 16GB permite uma taxa de transferência de 24MB/s com tempos de acesso de 4,25ms; este sistema custa aproximadamente $8,500USD. A solução mais cara da ProMax possui um sistema RAID SCSI de 69GB que permite uma taxa de transferência de 62MB/s, com tempos de acesso de 62ms e custa aproximadamente $20,000USD. Como última alternativa para o servidor multimédia, menos dispendiosa e mais flexível, podemos testar um PC rápido com drives SCSI rápidos e verificar se o desempenho é suficiente para os objectivos em causa. 10 INESC Tecnologia dos servidores de informação 1.2 Comunicação e gestão distribuída O servidor de informação multimédia deverá suportar o acesso concorrente de um grande número de clientes. Cada cliente colocará pedidos distintos e dará origem a vários fluxos multimédia activos que acedem independentemente ao mesmo ou a diferentes conjuntos de dados. Por outro lado, a informação residirá em vários nós de armazenamento distribuídos (Mediateca distribuída) que serão geridos por uma servidor central e serão interligados por intermédio de uma rede rápida (e.g. uma rede ATM). Esta configuração levanta várias questões no que diz respeito à gestão de dados distribuídos, à comunicação entre o servidor e os clientes e ao controlo dos vários nós de armazenamento. Os sistemas distribuídos têm surgido nesta década como a solução capaz de dar resposta à partilha de recursos disponibilizados através de uma rede e à interligação transparente entre máquinas com diferentes arquitecturas. É sobre estas arquitecturas distribuídas que surge a possibilidade de criação de serviços de telecomunicações multimédia, que contribuem assim para uma maior e melhor democratização no acesso à informação. A norma ISO que define o modelo de computação distribuída tem o nome ODP (Open Distributed Processing). O modelo de referência desta norma apresenta os objectivos de um sistema aberto e introduz os conceitos relevantes para a definição das funcionalidades necessárias a estes sistemas. Este modelo considera ainda vários níveis de abstracção que expressam diferentes perspectivas na especificação do sistema distribuído. Numa perspectiva computacional, podemos descrever o sistema como um conjunto de objectos inter-operantes sobre uma infra-estrutura de suporte, baseada num protocolo de chamadas remotas de processamentos (RPC) e em programação concorrente (threads). Este modelo de comunicação permite abranger algumas arquitecturas para sistemas distribuídos orientadas para objectos, como por exemplo a especificação do grupo OMG (Object Management Group) designada por CORBA (Common Object Request Broker Architecture), que define os serviços de suporte que uma arquitectura distribuída deverá suportar (http://www.omg.org/). Estas arquitecturas têm como objectivo a interoperacionalidade entre diferentes sistemas orientados a objectos, de modo a permitirem a interligação transparente entre aplicações que correm num ambiente distribuído e heterogéneo. Numa perspectiva tecnológica encontramos actualmente várias plataformas de arquitecturas de processamento distribuído aberto (e.g. Orbix), para as quais existem já no mercado várias ferramentas que apoiam o desenvolvimento de aplicações distribuídas, ou seja, que fornecem um ambiente de programação com uma linguagem de especificação de interfaces (IDL) e serviços que suportam mecanismos transparentes de localização, de acesso e de utilização. A integração de diferentes plataformas e aplicações é actualmente um ponto chave no desenvolvimento de software. A possibilidade de criarmos aplicações a partir de diversos componentes de software, implementados em variadas formas, pode ajudar os programadores nas tarefas de projecto, implementação e manutenção, encurtando assim o ciclo de desenvolvimento de software. A integração é no entanto uma tarefa difícil e requeria até há pouco tempo o domínio de técnicas de programação em rede mais ou menos complexas e envolvia normalmente a utilização de sistemas proprietários que vinculavam o programador a uma solução rígida com opções tecnológicas por vezes restritas. O Orbix, desenvolvido pela IONA Technologies, é um produto baseado na norma CORBA para o desenvolvimento e integração de aplicações distribuídas; esta solução permite a definição das interfaces de software através de uma linguagem normalizada, que depois serão acedidas a partir de 11 INESC Tecnologia dos servidores de informação qualquer ponto do sistema distribuído (http://www.irl.iona.com/). O Orbix é uma implementação completa da norma CORBA. Este produto está conforme a norma CORBA 2.0 e suporta as normas de mapeamento de IDL (Interface Definition Language) para C++ definidas pelo grupo OMG. O Orbix, para Windows e Unix, trouxe robustez, facilidade de utilização e integração de aplicações distribuídas baseadas numa norma internacionalmente aceite. O Orbix integra as tecnologias Microsoft OLE e ActiveX com a norma CORBA, ou seja, fornece a interligação entre o modelo COM (Component Object Model) e a norma CORBA. 1.2.1 Panorâmica da programação distribuída com o Orbix Um sistema de computação distribuído é um conjunto de componentes de software cooperantes que correm em vários computadores interligados por uma rede. Estes componentes podem ser normalizados e normalmente partilhados por aplicações que podem por sua vez incluir um conjunto de componentes específicos. Um caso simples pode consistir num simples processo que interage com um certo número de componentes partilhados. Os utilizadores finais interagem com aplicações que, por sua vez, podem interagir ou utilizar componentes de software disponíveis através da rede de comunicações. Cada componente pode utilizar também outros componentes de software para desempenhar as suas funções. As vantagens de um sistemas deste género são claras: em termos de eficiência, a reutilização de componentes em várias aplicações acelera o ciclo de desenvolvimento de software e aumenta em larga escala a flexibilidade dos sistemas. Sendo as aplicações construídas a partir de componentes distintos, a manutenção e a adaptação é simplificada. Utilizando o Orbix, o programadores podem tirar partido da integração destes componentes no ambiente de trabalho e evitar preocuparem-se com os aspectos técnicos de programação em rede. Em Orbix, os componentes de programação distribuídos são objectos com interfaces bem definidas e independentes de detalhes de implementação específicos, e que podem comunicar entre os vários nós do sistema distribuído. Cada objecto está associado com um servidor, que gere um conjunto de objectos com a mesma ou diferentes interfaces. Cada objecto Orbix possui internamente um identificador único global, que pode ser utilizado para o localizar no sistema distribuído. Cada servidor pode ter um qualquer número de clientes que comunicam com os seus objectos. Sendo o Orbix um sistema orientado aos objectos, são estes os componentes utilizados para a distribuição. Em sistemas deste tipo, uma aplicação é construída através da especificação de tipos (definições de interface), implementação e criação de objectos destes tipos. Um servidor CORBA é um elemento do sistema, frequentemente um processo, onde os objectos Orbix são executados. O cliente e o servidor podem correr em diferentes máquinas do sistema distribuído; ou em diferentes espaços de endereçamento da mesma máquina; ou até no mesmo espaço de endereçamento. Os passos normalmente seguidos para a programação em C++ de um sistema distribuído Cliente/Servidor são: • Definir as interfaces, utilizando a linguagem IDL; • Implementar estas interfaces com classes C++; • Escrever um servidor mainline que crie as instâncias das classes e informe o Orbix quando a inicialização já estiver concluída e o servidor estiver pronto para receber pedidos; • Registar o servidor; • Escrever um cliente mainline para se ligar e utilizar os objectos do servidor. 12 INESC Tecnologia dos servidores de informação O Orbix permite que as suas aplicações criem objectos CORBA disponíveis para aplicações baseadas em OLE e vice-versa. Esta integração fornece um elevado nível de transparência de modo a que um cliente que esteja a trabalhar com o modelo de objectos COM possa ver os objectos CORBA como se de Objectos COM se tratassem; e um cliente a trabalhar com o modelo de objectos CORBA possa ver os objectos COM como se fossem objectos CORBA. O primeiro benefício resulta da integração que o Orbix permite ao interligar aplicações executadas em vários sistemas operativos (desde o Windows NT e Windows 95 até várias plataformas Unix) e desenvolvidas em diferentes linguagens de programação. O Orbix pode também ser visto como uma plataforma para o processamento distribuído entre clientes e servidores (e.g. OLE, Java). Com o Orbix, os clientes e os servidores OLE Automation são também clientes e servidores CORBA, permitindo que os objectos CORBA sejam criados e controlados a partir de Automation controllers (e.g. Visual Basic). Os programas clientes e servidores podem ser feitos em qualquer linguagem que consiga comunicar com os mecanismos OLE (e.g. Visual Basic, Excel, C++, PowerBuilder). Os programas desenvolvidos em Orbix para o ambiente Windows podem aceder a servidores CORBA a correr em máquinas Unix, Windows NT, Windows 95 ou em outras plataformas onde o Orbix ou outro ORB-CORBA corra de forma idêntica. O Orbix permite fazer a ponte entre Java e ActiveX Nos finais de 1996 a empresa IONA demonstrou a primeira ligação distribuída entre o Java e os ActiveX através do OrbixWeb e do Orbix para Windows. A solução Orbix baseada na norma aberta CORBA e no protocolo de rede IIOP (Internet InterORB Protocol) foi a primeira a estabelecer a interoperacionalidade entre Java e ActiveX. Utilizando a IDL do CORBA, é possível especificar os meios de comunicação entre os vários componentes. Esta camada de abstracção permite que um componente seja escrito em qualquer linguagem (e.g. Java) e possa ser implementado em qualquer modelo de objectos que possua uma interface CORBA já definida, como por exemplo a especificação que a OMG definiu do CORBA para ActiveX. O Orbix oferece uma ligação total e bidireccional entre estas duas tecnologias. Os programadores podem desenvolver um cliente ActiveX que invoca um servidor Java e vice-versa; estes componentes podem também invocar qualquer outro tipo de tecnologia baseada no CORBA. O CORBA, juntamente com o protocolo de rede IIOP, está a tornar-se na principal tecnologia de integração de diferentes plataformas. A tecnologia CORBA 2.0 permite o mapeamento de C++ e IIOP, na ligação entre clientes desktop e servidores CORBA utilizando VisualBasic, ActiveX e Java. É possível implementar sobre a camada CORBA um conjunto de serviços, tais como a gestão de nomes, transações, segurança e programação orientada aos eventos. Esta tecnologia permite a integração e interoperacionalidade entre a diversidade de sistemas existentes. Permite a construção de aplicações distribuídas em diferentes plataformas. A utilização do protocolo IIOP permite a conectividade entre diversos ambientes desde um browser Web até MVS. A troca de mensagens através do CORBA assenta no paradigma de mensagens orientadas aos eventos. 1.2.1.1 Os clientes e os servidores Um sistema distribuído consiste num conjunto de objectos a correr nos clientes e nos servidores. Os servidores fornecem os objectos que são utilizados pelos clientes e por outros servidores. Quando 13 INESC Tecnologia dos servidores de informação um objecto invoca uma operação noutro objecto, designamos o primeiro por cliente e o segundo por servidor. O objecto que invoca a operação pode no entanto estar no servidor, ou seja, o servidor pode invocar operações/métodos e funcionar como cliente enquanto durar o processo que invocou. Um servidor é activado (launched) quando está inactivo (dormant) e um dos seus objectos é utilizado. Para facilitar este procedimento, todos os servidores devem ser registados no Orbix. Um cliente pode conter objectos, e estes objectos podem ser dados a conhecer aos outros clientes e servidores, que os poderão utilizar. Esta situação pode acontecer porque na invocação prévia de uma operação o cliente pode passar ao servidor a referência para um dos seus objectos. A diferença reside no facto do cliente ter já que estar a correr, uma vez que não existe o lançamento automático de clientes. Os clientes não podem ser registados no Orbix. 1.2.1.2 Definição de interfaces Num programa distribuído, construído utilizando o Orbix, é possível implementar objectos diferentes em diferentes linguagens de programação. Para suportar a interacção entre estes objectos, é necessário abstrair a funcionalidade fornecida por cada objecto através de uma definição clara da sua interface. A linguagem IDL (Interface Definition Language) é uma linguagem normalizada, definida pelo grupo OMG, para a definição destas interfaces. Depois de definida a interface de um objecto em IDL, o programador pode implementar livremente esse objecto, utilizando uma linguagem de programação apropriada. Um programador, que deseje utilizar esse objecto, pode utilizar qualquer linguagem de programação para invocar remotamente o objecto. Em Windows podemos por exemplo utilizar o VB para implementar um cliente que utiliza objectos implementados em diferentes linguagens (e.g. C++, Java, Ada, Smalltalk, VB). Os objectos em Orbix para servidores Windows, podem ser implementados em VB, Excel, PowerBuilder ou qualquer outra linguagem de programação compatível com OLE Automation ou ActiveX. O Orbix para Windows, permite aos programas clientes (incluindo aqueles localizados em máquinas remotas) podem fazer pedidos a estes objectos (do servidor) a partir de um programa escrito na mesma linguagem do cliente ou noutra linguagem de programação. É da responsabilidade do Orbix transmitir o pedido do cliente para o objecto no servidor. 1.2.2 Panorâmica da tecnologia COM O modelo de objectos da Microsoft - COM (Component Object Model) - é análogo ao CORBA, na medida em que permite às aplicações de software (componentes) interagirem umas com as outras, mesmo que os seus componentes sejam desenvolvidos independentemente, recorrendo a diferentes linguagens de programação. O modelo COM difere do CORBA na medida em que foi concebido para um ambiente centralizado numa única máquina e lida apenas com objectos COM (objectos OLE ou objectos Windows) (http://www.microsoft.com/). O modelo COM define as interfaces dos seus objectos através de uma interface designada por MIDL (Microsoft's Interface Definition Language). Uma interface COM é um conjunto de funções 14 INESC Tecnologia dos servidores de informação relacionadas. Um objecto COM é uma instância de uma classe que implementa uma ou mais interfaces e é identificada por um identificador único da classe (Class ID - CLSID). Ao contrário do CORBA, o modelo COM não suporta a identidade de objectos; uma interface COM não pode, por esse facto, ser instanciada para criar um objecto que possua um identificador único. Um cliente COM pode no entanto comunicar com um objecto através de um apontador para uma interface que lhe permite aceder às funções definidas nessa interface. Um cliente COM não pode voltar a ligar-se exactamente à mesma instância do objecto com a mesma informação de estado; pode apenas voltar a ligar-se a um apontador de interface da mesma classe. Através de um apontador para uma dada interface, um cliente pode perguntar, através da função QueryInterface() (definida na interface Iunknown que todos os objectos COM suportam), que outras interfaces um objecto pode suportar. 1.2.2.1 A automação OLE O modelo de automação OLE (OLE Automation) foi definido como uma extensão ao modelo COM. As interfaces compatíveis com a automação OLE podem ser descritas na linguagem ODL (Object Definition Language) que é uma extensão da MIDL. As interfaces de automação OLE podem opcionalmente ser registadas numa biblioteca de tipos (Automation's Type Library) que fornece, em run-time, informação sobre os métodos e as propriedades que a interface OLE Automation possui. Neste aspecto, o CORBA fornece um repositório de interfaces (Interface Repository) que desempenha um papel semelhante à biblioteca de tipos. Ao desenvolvermos aplicações, utilizando a automação OLE, podemos publicar os seus objectos (Automation Objects) para serem utilizados nas ferramentas de scripting e nas linguagens macro. Estes objectos são conhecidos por Automation Servers. As ferramentas e os programas dos clientes que acedem a estes servidores designam-se por controladores (Automation Controllers). Se o servidor (Automation Server) suportar uma interface especial designada por IDispatch, as interfaces OLE Automation publicadas podem ser invocadas dinamicamente por um cliente que não conheça as interfaces, durante a sua compilação. A verificação dos tipos é permitida, em run-time, através da biblioteca de tipos. 1.2.2.2 Os controlos OLE e a tecnologia ActiveX Os controlos OLE (OCX) são outra extensão ao modelo COM. Um controlo OLE é um servidor que pode comunicar com várias aplicações, utilizando propriedades, métodos e eventos. Um evento é uma notificação desencadeada por um controlo OLE como resposta a uma acção do utilizador (e.g. acção do rato que modifique o controlo). Um evento corresponde a uma invocação de um método; um controlo não fornece uma implementação para um evento, simplesmente expõe o evento e invoca uma implementação fornecida por outra aplicação quando esse evento é despoletado. Um conjunto de eventos de um controlo OLE é definido como um conjunto de interfaces em ODL. Mais recentemente a Microsoft introduziu outra extensão aos controlos OLE, designada por ActiveX. Esta solução possui um conjunto de tecnologias baseadas em controlos OLE que facilitam o desenvolvimento de aplicações para a Internet. Uma aplicação que é um controlo ActiveX pode 15 INESC Tecnologia dos servidores de informação ser embebida nas páginas Web ou em qualquer outro contentor de controlos ActiveX (e.g. VB, Visual C++, MS Access). 1.2.3 A integração CORBA/COM A integração entre o CORBA e COM é possível, de modo a que um cliente COM possa invocar métodos de um objecto num servidor CORBA, e vice-versa. O servidor CORBA contém um objecto Orbix para o qual o controlador OLE (Automation Controller) possui uma referência. Uma vez que a referência é para um objecto remoto (num espaço de endereçamento diferente - no mesmo nó ou num nó diferente), aponta para esse objecto através de um objecto proxy. Um proxy é um representante ou um substituto local de um objecto remoto; está contido num servidor OLE que é responsável por encaminhar o pedido para o objecto que é alvo da chamada remota (através de um processo ou fronteira da rede). O servidor OLE que executa esta função designa-se por OLE Broker porque é o intermediário entre o cliente e o objecto no servidor. Um OLE Broker pode ser um servidor OLE normal, um controlo OLE ou simplesmente um controlo ActiveX. O objecto proxy no broker fornece a mesma interface do objecto alvo. Sendo o proxy um objecto local, o cliente pode invocar métodos neste objecto local utilizando a sintaxe normal do Automation Control. O objecto proxy do OLE Broker é responsável por conduzir os pedidos ao objecto remoto. 1.2.4 O acesso às Bases de Dados É do conhecimento geral que os componentes de software reutilizáveis reduzem o tempo e os custos de desenvolvimento. A IONA Technologies e a I-Kinetics desenvolveram componentes de software reutilizáveis, que fornecem plug-ins para a ligação aos SGBDs Oracle e Sybase. Estes componentes de bases de dados foram concebido para clientes Windows ou Unix que pretendem aceder às bases de dados Unix. Estes componentes são um exemplo do modo como o CORBA torna possível, aos produtores de middleware independentes, criarem objectos de software off-the-shelf - designados por ComponentWare - que podem ser reutilizados no desenvolvimento de soluções de software para problemas que surgem diariamente aos programadores de sistemas de informação. Esta reutilização reduz a necessidade de rescrever grandes porções do código sempre que se inicia algum projecto, contribuindo assim para uma diminuição significativa do tempo e dos custos de desenvolvimento dos projectos. Através da interface C++ do Unix, os programadores em CORBA podem utilizar este componente de bases de dados como um bloco de construção para criar objectos com fins comerciais específicos. O esforço e tempo necessários para desenvolver objectos CORBA específicos são drasticamente reduzidos. Para os programadores em VisualBasic, o componente de base de dados fornece um objecto de base de dados remoto disponível através da automação OLE. O componente fornece acesso a múltiplas bases de dados e o ORB substitui todos os drivers e o middleware de base de dados específicos. A utilização deste componente é imediata e não requer configurações especiais. Uma vez instalado o componente de base de dados, podemos começar a criar as aplicações clientes tanto na plataforma Windows como em Unix. 16 INESC Tecnologia dos servidores de informação 1.3 Autenticação e encriptação de informação As questões levantadas pela segurança da informação armazenada num sistema multimédia distribuído tornaram-se num dos aspectos mais importantes na organização e gestão destes sistemas, tanto ao nível da integridade da informação como da autenticação e controlo de acesso ao sistema [25]. Estes problemas de segurança põem-se não só ao nível dos servidores de informação mas também ao nível da rede a que se ligam estes servidores. Pretende-se aqui identificar um conjunto de serviços de segurança informáticos (e.g. confidencialidade, autenticação, integridade, controlo de acesso, entre outros) que devem estar disponibilizados neste sistema. A segurança de um sistema informático passa também pelos mecanismos de protecção contra vírus, métodos de escolha de chaves de acesso pessoais (passwords), sistemas tecnologicamente confiáveis (que possuem vários níveis de segurança para diferentes utilizadores) e serviços de autenticação para o controlo de acessos remotos (e.g. acesso restrito, firewall, identificação por call-id e call-back). Nenhum sistema se pode considerar inviolável mas podem implementar-se diferentes níveis de segurança que garantam um elevado nível de eficácia na protecção do sistema. A segurança da informação no interior de uma organização ganhou particular relevo nas últimas décadas. A utilização de equipamento informático de processamento de dados mudou drasticamente o cenário existente até então, em que a segurança era atingida essencialmente por meios físicos ou administrativos. Com a introdução do computador no processo produtivo diário de milhares de organizações, tornouse evidente a necessidade de se dispor de ferramentas automáticas de protecção da informação. Os sistemas multi-utilizador tornaram ainda mais óbvia essa necessidade e, actualmente, os sistemas que podem ser acedidos através de redes públicas de dados ou telefones têm ainda requisitos mais exigentes. Hoje em dia a segurança deve não só cobrir a área do sistema propriamente dito como também a das redes a que este está ligado. No entanto, deve estar-se consciente de que qualquer política de segurança deve ser encarada numa perspectiva global, isto é, mesmo existindo mecanismos de segurança ao nível informático, estes só resultarão se houver também segurança ao nível da organização. Os tipos de ataques à segurança de um sistema informático ou das redes a que este se encontra ligado dividem-se normalmente em 4 categorias: • Interrupção: parte do sistema fica inoperacional devido a causas como destruição de um disco, de uma linha de comunicação ou do sistema de ficheiros do sistema; • Intercepção: um elemento não autorizado (e.g. uma pessoa, programa ou outro computador) consegue acesso ao sistema e consulta informação que pode ser confidencial; • Modificação: um elemento não autorizado ganha não só acesso ao sistema como modifica a informação nele contida (e.g. um ficheiro de dados; mensagens a serem transmitidas para a rede); • Fabricação: um elemento não autorizado insere novos objectos no sistema que não são autênticos, tais como mensagens espúrias ou mais uns registos num ficheiro. Destes tipos de ataque à segurança apenas o segundo pode ser considerado como um ataque passivo em que o objectivo principal é a obtenção de informação. Este tipo de ataque é de difícil detecção e a melhor medida a tomar é a de prevenção. Todos os outros tipos são ataques activos que apresentam as características opostas às dos ataques passivos; a estratégia será detectá-los e tentar recuperar 17 INESC Tecnologia dos servidores de informação qualquer disfunção ou atraso provocados por eles. Os serviços de segurança informáticos que habitualmente são identificados como sendo necessários são: • Confidencialidade: o acesso deve ser feito apenas por elementos autorizados. O acesso inclui visualização, impressão, etc. • Autenticação: requer que a origem das mensagens seja correctamente identificada. • Integridade: a transmissão ou modificação da informação deve ser feita apenas pelas partes autorizadas. • Não Repúdio: nem o emissor nem o receptor devem poder negar a transmissão. • Controlo de Acesso: requer que o acesso à informação possa ser controlado no sistema destinatário. • Disponibilidade: as especificações de gestão do sistema devem estar disponíveis a partes autorizadas quando necessário. Não existe um mecanismo único que forneça todos os serviços anteriormente descritos; podemos no entanto mencionar a criptografia como um dos elementos chave comum à maioria dos mecanismos de segurança. Todas as técnicas de segurança apresentam duas componentes: • uma transformação da informação a ser enviada por razões de segurança (por exemplo encriptação da mensagem e adição de códigos baseados no conteúdo da mensagem de forma a permitir a verificação da identidade do emissor); • alguma informação secreta partilhada por ambas as partes (por exemplo uma chave de encriptação). 1.3.1 A segurança do correio-electrónico Em ambientes virtualmente distribuídos, o correio electrónico é a aplicação de comunicação mais utilizada. À medida que foi sendo cada vez mais utilizado foi aumentando também a necessidade de ver incluídos na aplicação serviços de autenticação e confidencialidade. Dois esquemas apareceram como bastante satisfatórios a ponto de provavelmente se virem a tornar normas de facto: o PGP e o PEM. O PGP (Pretty Good Privacy) é um dos serviços segurança de informação mais utilizado, devido a quatro razões fundamentais: • está disponível em todo o mundo em versões públicas (grátis) para plataformas que incluem DOS, Windows, Unix, Macintosh; existe também uma versão comercial que satisfaz os utilizadores que pretendam produtos com suporte de venda; • é baseado em algoritmos que sobreviveram a revisões públicas por longos períodos e são considerados extremamente seguros; • é utilizado quer por grandes companhias quer por utilizadores individuais que pretendem conversar de forma segura na Internet; • não foi desenvolvido nem é controlado por qualquer governo, comité de normalização ou fabricante. 18 INESC Tecnologia dos servidores de informação As versões actuais do PGP fornecem cinco serviços: • Autenticação: recorre a uma assinatura digital que recorre ao conceito de chave pública e chave privada (que em conjunto geram uma sequência que só poderia ter sido produzida pelo emissor); • Confidencialidade: garantida pela encriptação das mensagens que se pretendem transmitir ou armazenar localmente; • Compressão: o PGP comprime uma mensagem após a criação da assinatura digital e antes da encriptação, utilizando o vulgar algoritmo de compressão ZIP, tornando qualquer tentativa de análise de criptografia mais difícil já que a mensagem comprimida tem menos redundância que a original; • Compatibilidade: converte as sequências de octetos em caracteres ASCII, factor exigido por alguns sistemas de correio electrónico, garantindo assim a compatibilidade com outras normas de e-mail; • Segmentação e Reempacotamento: existem por vezes restrições impostas pelos sistemas de correio electrónico ao tamanho máximo das mensagens. Se uma mensagem for maior do que o estabelecido haverá lugar a uma subdivisão em segmentos suficientemente pequenos para serem enviados por e-mail e o correspondente reagrupamento na recepção. • PEM (Privacy Enhanced Mail) é uma norma utilizada na Internet para os serviços de segurança em aplicações de correio electrónico. É muito utilizado em conjunto com outras normas Internet, como por exemplo o SMTP (Simple Mail Transfer Protocol), mas também pode ser utilizado com outros protocolos incluindo o X.400. Um requisito fundamental no projecto do PEM foi o de apresentar a capacidade de lidar com o conjunto mais crítico de riscos de segurança em vez de tentar cobrir todos eles; a intenção foi a de maximizar o valor acrescentado em termos de segurança com um esforço mínimo. O PEM apresenta as seguintes características: • • • • Protecção contra interrupção; Autenticação da origem; Integridade das mensagens; Não repúdio da origem da mensagem. 1.3.2 Os aspectos de segurança no servidor Qualquer empresa ou instituição que adira à Internet ou que esteja ligada a uma rede externa deve proteger o seu sistema de informação. As redes que não possuam uma ligação segura à Internet ou a redes de outras instituições, ficam vulneráveis a ataques externos (hackers). Ao proporcionar uma “porta” de entrada através de uma rede pública (e.g. RDIS) a um servidor ou a uma rede local privada aumentam as probabilidades da mesma ser violada por intermédio de acessos não autorizados. Existem já algumas técnicas que visam impedir tais quebras de segurança e que se apresentam a seguir. 19 INESC Tecnologia dos servidores de informação 1.3.2.1 Os métodos básicos Actualmente, os sistemas Firewall são um dos métodos de protecção mais eficientes contra ataques externos. Existem contudo quatro métodos básicos para melhorar a segurança dos sistemas de acesso remoto, e para os quais assumimos a utilização de usernames e passwords, que são: o acesso restrito, firewall, identificação por call-id e identificação call-back. • Acesso Restrito: todos os nós de uma rede têm um endereço bem definido. O acesso restrito proporciona uma primeira linha de defesa pois só se atendem chamadas provenientes de um endereço conhecido. Este método é eficiente mesmo em situações onde existem ligações multi-utilizador (e.g. ligações a partir da Internet); • Firewall: este método estabelece uma barreira, que só permite a passagem do trafego autorizado, entre a rede interna de uma organização e as redes externas a que está ligada (e.g. Internet); existem dois tipos principais de firewalls: os filtros de pacotes (packet filters) implementados normalmente recorrendo ao hardware dos routers que consideram um conjunto de regras para a verificação da informação dos pacotes (e.g. endereço de destino; endereço da fonte) e do serviço de rede a que o pacote está ligado (e.g. FTP; Email); e os servidores proxy (proxy server firewalls) que processam separadamente diferentes tipos de serviços de rede, utilizando aplicações designadas por proxies (e.g. um proxy FTP para controlar o tráfego FTP; um proxy Email para controlar o correio electrónico que chega e que parte); • Call-Id: este método baseia-se na identificação do número do processo do cliente (e.g. um serviço RDIS), confrontando-o com uma lista de acessos autorizados; • Call-Back: quando um utilizador se apresenta ao sistema, identifica-se por um username, pela respectiva password e pelo número do cliente. O Servidor recebe a identificação do cliente, valida o seu acesso e desliga a chamada. Em seguida estabelece uma ligação para esse utilizador que fica assim localizado e identificado. 1.3.2.2 Os métodos normalizados Existem fundamentalmente dois sistemas normalizados de segurança em cenários de acesso a um servidor: o PAP e o CHAP. • PAP (Password Authentication Protocol): este protocolo é utilizado conjuntamente com o PPP e permite efectuar alguma validação do acesso remoto para o posto central. O posto remoto fornece um username e uma password não encriptadas, as quais são validadas pelo equipamento no posto central. A base de dados do posto central, onde se encontram as tabelas de validação, está encriptada. • CHAP (Challenge Handshake Authorisation Protocol): trata-se de um sistema que permite validar o acesso remoto a um posto central, utilizando um protocolo sofisticado que procede a verificações periódicas durante o decurso de uma sessão. Após uma primeira autenticação, semelhante à do PAP, é definido um ritmo de validações posteriores. Nelas, o utilizador é confrontado com novas solicitações da senha privada. Toda a informação transmitida neste protocolo é encriptada. 20 INESC Tecnologia dos servidores de informação 1.3.2.3 Os sistemas proprietários Alguns fornecedores de equipamento desenvolveram outros sistemas de segurança baseados em passwords dinâmicas. Estes sistemas são semelhantes ao CHAP, com a diferença substancial de que não existe uma password única. Existem geradores de senhas por software e/ou hardware que os utilizadores transportam consigo. Estes geradores de passwords funcionam com base em dois factores: exigem que o utilizador forneça algo que conheça e algo que possua (é um processo semelhante ao das máquina multibanco onde é necessário fornecer um cartão e um PIN). Existem ainda dois modos de funcionamento: temporais e de desafio. No primeiro caso, o sistema central solicita ao gerador de passwords do utilizador uma dada password, a qual só é válida durante um curto espaço de tempo. No segundo é gerada uma password que só será válida para essa sessão. A Sun lançou um produto, designado por SKIP (Simple Key Management for Internet Protocol), baseado na tecnologia de encriptação de 1024 bits, que funciona ao nível da camada de rede e que permite a encriptação eficiente e transparente de qualquer protocolo ao nível do TCP/IP (http://skip.incog.com). Esta solução fornece privacidade e autenticação às aplicações de rede sem que seja necessário qualquer modificação ou recompilação. O SKIP é um sistema de gestão de chaves em evolução, que prevê melhoramentos, como por exemplo: no suporte de autenticação e autenticação+encriptação; adição de um contador que será utilizado para prevenir certos ataques (e.g. key attacks, playback attacks); suporte para a identificação de um nó de destino para permitir que as gateways façam tunneling e forwarding de pacotes. O SKIP permite a encriptação com vários algoritmos conhecidos (e.g. DES em modo CBC (56 bit); RC2 em modo CBC (40 bit); RC4 (40 bit); RC4 (128 bit); Key Triple DES (128 bit) (EDE); 3 Key Triple DES (192 bit) (EDE); IDEA (128 bit); Simple Crypt) mas poderão também ser adicionados outros algoritmos. A segurança de um sistema informático envolve ainda múltiplos aspectos não referidos. Entre eles incluem-se, por exemplo: os mecanismos contra vírus informáticos; os métodos de escolha de chaves de acesso pessoais (passwords); os sistemas ditos “tecnologicamente confiáveis” que possuem vários níveis de segurança e que verificam a autorização de cada utilizador para realizar cada operação específica; a utilização ou não de serviços de autenticação no controlo de acessos remotos (e.g. o Kerberos ou a norma X.509 para o serviço de directórios X.500), entre outros. 21 INESC Tecnologia do arquivo de informação Capítulo 2 Arquivo de Informação O sistema de informação multimédia audiovisual de suporte da Mediateca e da Artec necessita, para além do servidor de informação, de um SGBD (Sistema de Gestão de Bases de Dados) com capacidade de gestão das vastas quantidades de informação armazenadas na base de dados sob a forma de streams de áudio e vídeo. Igualmente importante neste contexto é a pesquisa eficiente de informação, utilizando técnicas tais como a pesquisa baseada no conteúdo (content based search) e tecnologia para a consulta eficiente de dados multimédia (multimedia browsing). A primeira secção deste capítulo aborda as questões relacionadas com a gestão do arquivo: especifica os requisitos do SGBD, indica as várias alternativas tecnológicas existentes e aponta algumas soluções comerciais para um sistema deste género. A segunda secção descreve os aspectos relacionados com a pesquisa inteligente de informação através da utilização de agentes de interface. 2.1 Gestão da Base de Dados Têm ocorrido mudanças importantes na forma como as bases de dados são estruturadas e utilizadas. A aproximação relacional encontra-se, hoje em dia, perfeitamente implantada. As bases de dados relacionais são utilizadas em todo o tipo de aplicações, desde aplicações correndo sobre arquitecturas paralelas de grandes dimensões até aplicações correndo sobre PCs. Por outro lado, as arquitecturas cliente-servidor migraram de sistemas de ficheiros para sistemas de bases de dados, e têm surgido, cada vez com mais frequência, servidores de bases de dados acessíveis a partir de pontos remotos através de redes de comunicação [1]. Em terceiro lugar, aos tradicionais registos das bases de dados relacionais têm-se juntado vários tipos de dados multimédia. Esta tendência alimenta o sucesso das bases de dados relacionais orientadas aos objectos (ORDBs) e tem provocado um aumento da eficiência dos motores relacionais no que diz respeito a modelos de dados mais ricos. Actualmente, observam-se combinações interessantes das melhores características das bases de dados relacionais (RDBMS) - o acesso SQL a tipos de dados simples, com as melhores características das bases de dados orientadas a objectos (OODBs) - a modelização de dados complexos. Esta combinação resulta em novos sistemas com capacidades que vão bastante mais além do que os sistemas tradicionais, de que são exemplo os sistemas de bases de dados relacionais orientados aos objectos (ORDBs) e os sistemas de bases de dados dedutivos orientados aos objectos (DOODs) [2]. 22 INESC Tecnologia do arquivo de informação 2.1.1 Requisitos do arquivo de informação Os requisitos para a base de dados que suportará o arquivo de informação audiovisual digital da Mediateca e da Artec incluem: • a existência de modelos para o armazenamento de informação multimédia, em particular para dados de vídeo, áudio e imagem. Estes modelos devem ser ricos em termos das capacidades que oferecem para a abstracção de informação multimédia, devem estar aptos a fornecer mecanismos de representação para imagens complexas, cenas e eventos em termos de objectos e do seu comportamento espácio-temporal; • a existência de métodos de indexação, pesquisa, acesso e organização especialmente vocacionados para dados multimédia. A pesquisa em bases de dados multimédia pode ser bastante intensiva em termos computacionais e em termos de operações de I/O, em particular nos casos em que se pretende um mecanismo de obtenção baseada no conteúdo (content-based retrieval) para dados de vídeo e imagem comprimidos ou descomprimidos. Ocasionalmente, a pesquisa pode ainda ser baseada em informação incompleta (fuzzy); • a existência de uma linguagem de queries multimédia eficiente que seja capaz de expressar conceitos espácio-temporais complexos e deve permitir lidar com várias funções de manipulação de objectos multimédia. Necessitamos pois de um servidor de bases de dados que forneça várias funcionalidades ao nível da procura e indexação de informação audiovisual armazenada na base de dados, empregando, se possível, técnicas de inteligência artificial e modelização que permitam realizar pesquisa de imagens por semelhança a outras imagens ou padrões. Do ponto de vista da integração, as técnicas convencionais de modelização de dados tornam-se insuficientes já que lhes falta a capacidade de gerir a composição de objectos multimédia num ambiente de bases de dados heterogéneo [4]. A integração semântica de vários tipos de dados é uma exigência colocada por grande parte das aplicações multimédia. Sendo assim, o modelo relacional apresenta a desvantagem de perder a semântica, o que pode causar uma interpretação errónea dos dados multimédia. Por outro lado, as tecnologias orientadas aos objectos proporcionam um paradigma que vai de encontro aos requisitos impostos pelas modelização semântica e composição multimédia. As características de encapsulamento de dados e procedimentos constituem uma solução elegante para a modelização a vários níveis de granularidade de informação em sistemas de bases de dados multimédia. As limitações do modelo relacional são também óbvias quando se pretende lidar com a modelização semântica dos dados multimédia temporais (áudio e vídeo). As características destes tipos de dados incluem a semântica espácio-temporal, o que os distingue dos tipos discretos tais como texto, gráficos e imagens. O utilizador de bases de dados de áudio e vídeo pode gerar queries contendo conceitos espaciais e temporais em simultâneo. 23 INESC Tecnologia do arquivo de informação Em suma, os Sistemas de gestão de Bases de Dados Relacionais tradicionais encontram-se actualmente sob uma pressão tecnológica considerável. Estes SGBDs apenas suportam tipos de dados simples e limitados (tais como inteiros, números com vírgula flutuante, strings de caracteres e ainda datas e horas), não possuindo qualquer mecanismo que entenda séries temporais, dados multimédia, e novos tipos de dados complexos. 2.1.2 Soluções Tecnológicas Para responder às limitações das soluções estritamente relacionais, começa a surgir um novo tipo de SGBDR, designado por Universal Server. Estes novos servidores possuem extensões que lhes permitem lidar com dados e funções complexas, e ainda novas técnicas de acesso [2]. Estas novas características tornam o SGBDR Universal Server mais extensível, flexível e escalável para dados complexos, e permitem uma melhor integração do Universal Server com novas tecnologias, tais como as que se mencionam a seguir: a) tecnologias para Análise de Dados tais como a Data Warehouse, o OLAP (Online Analytical Processing) e o OLTP (Online Transaction Processing), e as Data Mining e Data Visualization; b) tecnologias para Formatos de dados complexos tais como os Sistemas de Gestão de Dados orientados aos Objectos (ODMS); c) tecnologias tais como as Intranets e novos conjuntos de ferramentas de desenvolvimento, designados por toolsets. A Data Warehouse é uma colecção de dados não-volátil, integrada e variável no tempo. Estas colecções de dados destinam-se sobretudo a apoiar o processo de tomada de decisão por parte dos gestores das empresas. A data warehouse constitui sempre um armazenamento físico separado que é carregado com dados provenientes do ambiente operacional. No entanto, difere da bases de dados operacional já que é concebida em torno da empresa, é integrada, exclui os dados que não são utilizados no processo de tomada de decisão e os seus dados cobrem um espectro temporal alargado. Por isso, as data warehouses constituem um dos melhores exemplos da tecnologia de bases de dados temporais. Os sistemas OLAP permitem a manipulação de dados de uma forma intuitiva, rápida e flexível, através da utilização de termos familiares na pesquisa de um contexto analítico. Estes sistemas apoiam as análises de requisitos complexas ao proporcionarem mecanismos para a análise de dados provenientes de vários contextos e suporte para análises complexas de conjuntos de dados de entrada muito vastos. Neste contexto, aplica-se ainda a noção da consolidação de dados. Existem duas arquitecturas principais para os sistemas OLAP: a arquitectura multidimensional e a relacional. A primeira utiliza uma base de dados multidimensional para proporcionar a análise, enquanto que a segunda proporciona o acesso aos dados directamente, a partir de bases de dados relacionais. O Data Mining é igualmente um processo de apoio à decisão que permite a pesquisa de padrões de informação existentes nas bases de dados. As ferramentas de data mining são especialmente concebidas para identificar associações significativas entre variáveis em bases de dados de elevada dimensão. 24 INESC Tecnologia do arquivo de informação Os formatos de dados complexos, tais como gráficos, texto e hipertexto, imagens, áudio e vídeo e documentos multimédia são contemplados pelas tecnologias designadas por ODMS (Object Data Management Systems). Estas tecnologias de gestão orientada aos objectos assentam nas noções familiares nas diversas linguagens de programação object-oriented, tais como o encapsulamento proporcionado pelos tipos de dados abstractos. Neste campo, a I&D orienta-se de acordo com duas direcções fundamentais: a primeira inclui uma variedade de tentativas de ampliação dos sistemas de gestão de bases de dados existentes, por forma a fornecer funcionalidades adicionais através de novas linguagens de interrogação (query) que incorporem procedimentos e outras características orientadas aos objectos. Esta aproximação envolve dois ambientes separados: a linguagem de programação da aplicação e a linguagem de interrogação estendida. Ambas possuem os seus próprios tipos de dados (necessariamente diferentes) e os seus próprios ambientes de execução. A segunda direcção da I&D aponta no sentido de ampliar as linguagens de programação Object Oriented existentes com características da gestão de bases de dados, tais como a persistência (armazenamento permanente) e o controlo de concorrência, entre outras. Estes sistemas proporcionam ainda uma linguagem de query que é compatível com a linguagem de programação e corre no mesmo ambiente da aplicação, partilhando os mesmos tipos de dados. O Universal Server é um SGBDR existente ao qual se adicionam funcionalidade para lidar com tipos de dados complexos. Por outras palavras, o Universal Server funciona como uma série de extensões (ao SGBDR) integradas e compatíveis. Do ponto de vista da manipulação de tipos de dados multimédia, o Universal Server oferece aos utilizadores várias capacidades: • a capacidade de lidar de uma forma eficiente com tipos de dados complexos (tais como áudio e vídeo), através de operações específicas (tais como a pesquisa de um padrão visual num arquivo de vídeo), e a capacidade de armazenamento de novos tipos de dados (tais como dados multidimensionais, texto, dados multimédia e dados espaciais); • maior suporte para a realização de operações complexas sobre tipos de dados simples e complexos através das extensões; • maior eficiência no acesso aos dados e na realização de cálculos baseados nos mesmos; • maior integração com as ferramentas de desenvolvimento actuais, com os processos de desenvolvimento e com as interfaces gráficas baseadas em objectos; • melhor integração com arquitecturas Internet/Intranet; • suporte para ROLAP (Relational OnLine Analytical Processing). Muito recentemente, os fabricantes de SGBDs começaram a despertar para as possibilidades de abrir as suas aplicações à World Wide Web, surgindo os servidores Web/SGBDs dinâmicos [5]. Esta integração de um SGBD com um servidor Web permite disponibilizar a informação pretendida pelos utilizadores sem necessidade de se recorrer à conversão para HTML da informação armazenada na base de dados: passa a estar disponível a possibilidade de se disponibilizar toda a informação a partir da base de dados, utilizando a Web como interface. A vantagem desta aproximação reside na possibilidade de utilização dos motores de pesquisa das bases de dados, aproveitando a sua flexibilidade e rapidez na pesquisa de informação. 25 INESC Tecnologia do arquivo de informação Os servidores SGBD Web-enabled possuem vantagens face à utilização dos scripts CGI já que se evita, por um lado, a necessidade de ter uma multiplicidade de scripts para cobrir os vários mecanismos de interrogação à base de dados e a consequente gestão e, por outro, facilitam a manutenção de sites Web, visto que os ficheiros passam a existir na base de dados, desaparecendo a existência de duas fontes de informação: ficheiros HTML e ficheiros na bases de dados. 2.1.3 Soluções Comerciais A gestão do acesso ao arquivo da Mediateca e da Artec passará pois pela utilização de um SGBD com extensões multimédia que proporcione acesso à informação via uma rede de comunicação de dados. As soluções propostas pelos maiores fabricantes de SGBDs na actualidade, Informix, Oracle, e IBM passam pela inclusão de toda a informação na própria base de dados, incluindo os ficheiros HTML que aí estão armazenados e aí são geridos [2]. Elimina-se, deste modo, a necessidade dos scripts CGI (para se alterar uma página rapidamente basta aceder à base de dados e alterar as partes pretendidas) e passamos a dispor de um sistema de gestão de bases de dados que integra as novas soluções tecnológicas num ambiente cliente/servidor, incluindo o acesso à Internet (WWW). 2.1.3.1 Informix Universal Server A nova tecnologia da Informix (www.informix.com), o Universal Server, baseado na tecnologia DSA (Dynamic Scalable Architecture), vem resolver estas necessidades: armazenar todo o tipo de dados multimédia, tais como áudio e vídeo, e fazer a sua gestão e administração dentro do próprio motor da base de dados. O Universal Server é um motor object relational que permite, através do Web DataBlade, que as páginas HTML estejam embebidas dentro da base de dados. A gestão das páginas HTML realiza-se por intermédio do mecanismo Application Pages. Os DataBlades são conjuntos de rotinas que permitem definir novos tipos de dados, métodos de acesso a esses dados e dar-lhes um contexto, isto é, saber como interagem com outros dados e com outras aplicações. Os DataBlades permitem, pois, armazenar informação dos seguintes tipos: texto, imagem, vídeo, áudio, páginas web e tipos de dados personalizados. O modo de funcionamento é relativamente simples: em vez de se colocar directamente nas páginas HTML a informação que se pretende disponibilizar, são embebidos tags SQL de terceira geração. Quando se acede a essa página, dá-se uma “explosão” desses tags, isto é, executa-se o comando que lá existe e insere-se informação nesse ponto (função WebExplode) 2.1.3.2 Oracle Universal Server A Oracle (www.oracle.com), em virtude das limitações dos scripts CGI, avançou com a proposta de implementação de um servidor Web baseado numa linguagem tradicional do ambiente Oracle: o PL/SQL, que permite escrever os procedimentos que constróem páginas HTML dinamicamente. A solução Oracle baseia-se no WebServer 3.0 e em módulos designados por cartridges. Estes módulos assentam sobre uma camada intermédia, designada por layer ICX, e não no próprio motor da bases de dados. A perspectiva da Oracle é a de um sistema onde existe, por um lado, o cliente, no meio um servidor aplicacional e, no outro lado, uma base de dados. Mantendo este modelo, a Oracle colocou um layer ICX acima, e, neste, inseriu os componentes (cartridges) que podem ser browsers, aplicações, etc. 26 INESC Tecnologia do arquivo de informação A tecnologia da Oracle designa-se por Oracle Universal Server (Oracle 7 Release 7.3) e é constituída pelos seguintes componentes: o Oracle ConText Option, o Oracle Messaging Option, o Oracle OLAP Option, o Oracle Spatial Data Option, o Oracle Video Option e, claro, o Oracle WebServer 3.0. O Oracle Universal Server permite o armazenamento, a manipulação, a obtenção e a partilha de quaisquer tipos de dados (desde registos comerciais, documentos, mensagens, imagens, áudio e vídeo), em qualquer tipo de aplicação (desde processamento de transacções, data warehouses até ao comércio electrónico). Este sistema permite ainda a disponibilização segura e fiável destas aplicações aos utilizadores finais através de qualquer tipo de rede de comunicações. No contexto deste relatório, será significativo analisar o componente Video Option. O Oracle Video Option suporta o armazenamento e o acesso a informação áudio e vídeo, bem como a sua integração em ferramentas de desenvolvimento da Oracle. O Video Option constitui uma solução que permite o armazenamento, gestão e disponibilização de vídeo full-screen e áudio de alta-fidelidade aos utilizadores através de uma rede de comunicações. Esta solução permite a inclusão de vídeo digital em aplicações de bases de dados existentes e em novas aplicações. O desenvolvimento de aplicações utiliza o Oracle Video Client (um componente do Oracle Video Option) que suporta o Oracle Media Objects, o Oracle Power Objects, o Oracle Forms e o Visual Basic da Microsoft. O Video Option inclui ainda Oracle Media Net, um componente de software que permite a comunicação clientes-servidores sobre um ambiente de computação distribuído. Fugindo momentaneamente ao contexto da Oracle, será talvez interessante referir o Active Media Object Stores (AMOS), dada as suas semelhanças ao nível de funcionalidades com o Video Option da Oracle. O AMOS baseia-se num OOSGBD (no VODAK) e endereça mais especificamente as questões relacionadas com a modelização e sincronização de apresentações, acessos em tempo real e interfaces com redes de comunicação. Comparando as duas aproximações (Informix versus Oracle), podemos dizer o seguinte: na solução da Informix, o browser comunica com o servidor Web, e este com o motor da base de dados através do Web DataBlade. O interface entre o utilizador e esta tecnologia baseia-se num menu (uma página HTML) no qual é possível colocar interrogações. A partir deste momento, são desencadeados todos os mecanismos que podem conduzir até uma query à base de dados com a devolução da informação pretendida. A diferença da solução Oracle, em relação à solução Informix, é que os DataBlades da Informix permitem ampliar o leque de tipos de dados que podem ser reconhecidos pelo SGBD, bem como os respectivos procedimentos, a nível do núcleo (kernel) da bases de dados. No caso da Oracle, os cartridges trabalham num nível acima e estão, por isso, isolados do kernel, garantindo uma maior protecção a nível de segurança, integridade referencial e integridade transaccional. 2.1.3.3 IBM DB2 Universal Database O DB2 Universal Database da IBM é uma bases de dados escalável, multimédia e Web Enabled que permite lidar com tarefas desde warehousing de dados multimédia distribuídos, queries complexas e processamento de transacções. O DB2 Universal Database inclui ferramentas de bases de dados, conectividade WWW e suporte para multimédia object-relational. O DB2 apresenta-se como uma solução possível para o comércio electrónico, colaboração e gestão de conteúdos visto que combina o desempenho OLTP, extensibilidade object-relational e funcionalidades relacionais, com o processamento paralelo e clustering, um elevado desempenho ao nível de queries e suporte para 27 INESC Tecnologia do arquivo de informação bases de dados de grande dimensão. Possui ainda suporte adicional para OLAP e para tarefas de decisão e uma maior integração com a Internet. O suporte para tipos de dados object-relational (tais como imagem, áudio, vídeo e texto) encontrase intimamente integrado na base de dados através de funções definidas pelo utilizador e tipos de dados definidos pelo utilizador. O DB2 inclui ainda motores de pesquisa de conteúdos específicos e, mediante a utilização de UDFs (User Defined Functions) e UDTs (User Defined Types), os utilizadores podem definir os seus próprios ambientes de dados, simplificando o desenvolvimento de aplicações. O DB2 Universal Database também proporciona ferramentas para monitorização, ajustamento do desempenho e administração e replicação bidireccional de dados. O acesso a dados heterogéneos (provenientes de fontes distintas) é um processo transparente graças à tecnologia DataJoiner. Em relação à Internet, o DB2 suporta procedimentos JAVA e UDFs, e também suporta conectividade Java específica (designada por JDBC) em simultâneo com TCP/IP. O produto Net.Data da IBM proporciona o acesso a dados na Internet e facilita as ligações entre o DB2 e os browsers Web, correndo numa variedade de plataformas (tais como OS/2, Windows NT, Windows95, Unix, entre outras). Estas características permitem a utilização da Internet ou das Intranets não só para a publicação de informação, mas também para o comércio. 2.2 Pesquisa inteligente de informação através de agentes de interface “No futuro, a tecnologia dos agentes inteligentes será a única forma para realizar pesquisas de informação, em particular na Internet, porque, independentemente de todos os esforços para a boa organização da informação, nenhuma tecnologia conseguirá acompanhar o seu crescimento exponencial...” Bob Johnson (Dataquest, Inc.) 2.2.1 Introdução Esta afirmação tem tanto de profético quanto de real. De facto, assistimos actualmente a um crescimento exponencial da informação, quer na Internet e na WWW, quer nas bases de dados, cujo conteúdo engloba cada vez mais tipos de informação complexos constituídos por conteúdos multimédia. O ritmo deste crescimento deve ser acompanhado por ferramentas que permitam aos utilizadores o acesso rápido e directo à informação que desejam. O crescimento fenomenal das fontes de informação na Internet/WWW e da quantidade de informação armazenada nas bases de dados inunda o utilizador com quantidades excessivas de dados, isto é, mais informação do que a necessária. Este excesso de informação gerou uma procura imediata pela tecnologia dos agentes inteligentes, com o objectivo de aliviar a sobrecarga gerada por quantidades muito vastas de informação. Os utilizadores vêem o potencial contido nos agentes inteligentes para o desempenho de muitas tarefas: desde as rotineiras e serviçais até às mais complexas [6]. Tal como sucedeu com as interfaces gráficas do utilizador (GUI) e as aplicações orientadas aos objectos, os agentes inteligentes representam o próximo passo na evolução e refinamento da experiência do utilizador com o software em geral e com a WWW em particular. A teoria dos agentes inteligentes evoluiu a partir de paradigmas da experiência de agentes humanos. O objectivo 28 INESC Tecnologia do arquivo de informação principal é fornecer ao agente inteligente uma missão específica que ele deve executar autonomamente, tendo em mente os desejos e preferências do utilizador (exactamente o tipo de comportamento que esperamos de um agente de viagens, de um advogado ou de um agente de vendas de imóveis). Com o crescimento explosivo da informação disponível através da Internet e nas novas bases de dados, os utilizadores têm sido seduzidos a tentar realizar as tarefas para as quais tradicionalmente se contratam estes ou outros tipos de agentes. Sem a existência de agentes de software, estas tarefas tornam-se tão assustadoras quanto as suas correspondentes do mundo físico. No entanto, mantém-se de pé a crença na possibilidade de criação de um mundo virtual onde os agentes actuem, virtuosa e virtualmente, como nossos fiéis representantes, simplificando a nossa vida profissional e pessoal. É esta visão que reclama a actuação inteligente enquanto atacamos o problema de manobrar num vasto (e em crescimento) mar de informação que já existe à nossa disposição. 2.2.2 Conceitos Gerais e Definições O Agente define-se como alguém ou algo que age como representante de uma terceira entidade, com o objectivo expresso de desempenhar acções específicas que são vistas como benéficas para a entidade representada. O Agente de Software (que já existe há aproximadamente vinte e cinco anos) é um programa de computador que executa tarefas para o seu utilizador dentro de um ambiente computacional. Na prática, a maior parte das aplicações de quarta geração podiam ser classificadas como agentes. No entanto, existem certos aspectos que caracterizam um agente de software e que os diferenciam de outras aplicações: mobilidade, autonomia, a capacidade de interagir de uma forma independente do seu utilizador, a capacidade de raciocínio adaptável, isto é, a capacidade de processar informação de ambientes externos (tais como bases de dados, redes ou mesmo a Internet) dado um conjunto de conhecimentos, atitudes e crenças do utilizador que são compreendidos pelo agente [6]. Os seis atributos principais dos agentes de software inteligentes são os seguintes: 1. Autonomia - a capacidade de agir com a intenção de completar alguma ou algumas tarefas ou objectivos sem necessidade de activação por parte do utilizador: aceita sugestões, interesses, e desejos do utilizador como entrada e, de seguida, age de uma forma independente para executar as tarefas esperadas; 2. Capacidade de comunicação - Os agentes inteligentes, para atingirem os objectivos pretendidos, devem aceder a informação existente em fontes externas e, especificamente, informação sobre o estado do ambiente externo. Isto exige a capacidade de comunicar com os repositórios desta informação. Estes podem ser outros agentes ou fornecedores de acesso a armazéns de informação. A comunicação pode assumir a forma de pedidos simples complementados por um conjunto pequeno de respostas possíveis ou pode ser uma comunicação complexa envolvendo respostas variáveis (a comunicação pode realizar-se a um nível mais elevado, envolvendo um diálogo verdadeiro, em vez de trocas de afirmações suportadas por um protocolo). 29 INESC Tecnologia do arquivo de informação 3. Capacidade de Cooperação - A extensão natural do atributo “comunicação” é a cooperação. Os agentes inteligentes devem possuir um “espírito” de colaboração para poderem coexistir e ser bem sucedidos em sistemas orientados aos agentes. A ideia é ter agentes inteligentes a trabalhar em conjunto na realização de tarefas complexas mas mutuamente vantajosas. Este é um campo em que a actividade inteligente se cruza com a inteligência artificial distribuída. 4. Capacidade de Raciocínio - A capacidade raciocinar é um dos aspectos mais importantes da inteligência que distingue os agentes inteligentes de outros agentes mais robóticos. O raciocínio implica que um agente possua a capacidade de inferir e extrapolar com base em conhecimentos que possui e experiências que realizou, isto é, de uma forma racional e reproduzível. Existem três cenário possíveis: o raciocínio avaliador baseado em regras (rule-based reasoning), o raciocínio dedutivo baseado em conhecimento (knowledge based) e o raciocínio artificial baseado em evoluções (os agentes geram novas gerações de agentes que desempenham tarefas mais elevadas e com requisitos de raciocínio mais elevados). 5. Comportamento Adaptável - Para manter as capacidades de autonomia e de raciocínio, os agentes inteligentes devem possuir mecanismos de consulta do estado actual do seu ambiente externo (a extensão de ambiente que se encontra ao alcance do agente) e incorporar esta informação nas suas “decisões” em acções futuras. Os agentes devem ser capazes de examinar o ambiente externo (e.g. a Web) e o sucesso de acções prévias executadas sob as mesmas condições, e adaptar as suas acções para aumentar a probabilidade de serem bem sucedidos ao tentar cumprir os objectivos. 6. Credibilidade - Este aspecto é essencial para a aceitação da actividade inteligente - a confiança na capacidade do agente representar fielmente o utilizador, isto é, o seu cliente. Os agentes inteligentes devem demonstrar “veracidade” e “benevolência”, ou por outras palavras, os utilizadores devem acreditar que os seus agentes agirão e responderão verdadeiramente e agirão segundo os interesses do utilizador. 2.2.3 Metodologia de funcionamento O modelo básico de funcionamento dos agentes inteligentes envolve, em primeiro lugar, um utilizador que possui uma tarefa para executar. O utilizador usa uma interface gráfica (GUI) que acede uma aplicação de software inteligente [38]. A aplicação de software que implementa o agente inteligente viaja pela Internet (ou por outra infra-estrutura de rede) tentando alcançar as portas de fornecimento (supplier gateways), podendo ser ajudado por serviços de directórios. Finalmente, o agente encontra-se em posição de aceder às fontes de informação existentes em bases de dados ou outros meios de armazenamento, encontrar a informação pedida pelo utilizador (ou ainda produtos ou serviços), completar quaisquer transacções necessárias e retornar uma resposta ao utilizador. Inicialmente, este processo baseava-se em RPCs (Remote Procedure Calls), mas os progressos realizados entretanto apontaram numa direcção alternativa designada por Programação Remota (RP ou remote programming). A programação remota apresenta-se como a tecnologia que possibilita a existência dos agentes inteligentes. Cada mensagem transportada pela rede consiste de um procedimento e dos seus argumentos (dados). Este procedimento pode ter sido iniciado pelo computador que o envia, mas também pode ser uma continuação da sua execução. O computador que o recebe deve, pois, continuar a sua execução. Este modelo implica que dois computadores que 30 INESC Tecnologia do arquivo de informação sigam o paradigma RP concordem antecipadamente sobre as instruções permitidas num procedimento e sobre os tipos de dados que são permitidos no seu estado. Este acordo constitui uma linguagem que inclui instruções que permitem ao procedimento decidir, examinar e modificar o seu estado e, ainda, chamar outros procedimentos fornecidos pelo computador receptor. Estas chamadas são locais e não remotas. O procedimento e o seu estado designam-se por agente móvel, para enfatizar que representam o computador emissor mesmo enquanto residem no computador receptor. O aspecto mais importante da programação remota é que o computador cliente e o servidor podem interagir sem utilizarem a rede logo que o agente tiver sido transportado entre eles. Por conseguinte, a interacção permanente não exige comunicação permanente. As implicações deste facto atingem os agentes inteligentes visto que esta característica é o suporte fundamental da tecnologia dos agentes inteligentes. As duas vantagens principais da programação remota envolvem o desempenho (o agente enviado pelo cliente ao servidor trabalha localmente e não à base de comandos enviados remotamente) e a personalização (os agentes permitem que os fabricantes do software cliente ampliem as funcionalidades fornecidas pelos fabricantes do software servidor). Ao contrário das aplicações standalone tradicionais, as aplicações comunicantes que emergem para a Internet possuem componentes que devem residir nos servidores. Os componentes do servidor de uma aplicação baseada em RPCs devem ser instalados pelo utilizador[7]. Os componentes do servidor de uma aplicação baseada em RP são instalados dinamicamente pela própria aplicação e cada um deles constitui um agente. A vantagem da programação remota é muito significativa numa rede empresarial, mas é muito mais profunda numa rede pública onde os servidores pertencem e são operados pela multiplicidade de fornecedores de serviços públicos na WWW. A programação remota transforma uma rede pública numa plataforma autêntica [39]. 2.2.4 Infra-estruturas necessárias O modelo das transacções realizadas por agentes envolve uma infra-estrutura de comunicações que deve fornecer suporte para as seguintes funcionalidades: • • • • • execução, comunicação, transporte, empacotamento, segurança integrada. A funcionalidade de execução é o ambiente run-time do agente. Este ambiente é o componente mais visível de todos os que constituem os agentes. Esta consiste do hardware e do software necessários à execução do programa do agente no seu ambiente. Devido à proliferação dos compiladores de linguagens de programação de agentes para diversas plataformas de hardware, o hardware específico não constitui uma restrição. No entanto, a linguagem de programação do software do agente determina a classe de funcionalidades possibilitadas pela aplicação do agente. 31 INESC Tecnologia do arquivo de informação As opções disponíveis para a programação caem em três categorias: • General Purpose Programming and Scripting Languages (tais como C/C++, Lisp, SQL e Perl), • General Purpose Mobile Code Languages (tais como Java, ScriptX, scheme48 e Phantom entre outras), • Mobile Code Languages for Intelligent Agent Applications (tais como o AGENT0 derivada do conceito de AOP - Agent Oriented Programming e a mais divulgada Telescript da General Magic e implementada pelo serviço PersonaLink da AT&T) As linguagens General Purpose Mobile Code, da segunda categoria, adicionam flexibilidade na medida em que são concebidas para serem transmitidas ao longo da rede e serem executadas do outro lado. Deste modo, estas linguagens adicionam a funcionalidade da programação Remota exigida pelo modelo dos agentes inteligentes. A funcionalidade de comunicação lida com aquilo que o agente comunica (contexto e conteúdo). A comunicação é o processo pelo qual a informação é trocada numa transacção do agente. As mensagens comunicadas possuem contexto e conteúdo: o conteúdo refere-se aos dados codificados na mensagem, ao passo que o contexto é o que realiza a transformação de dados para informação. A funcionalidade de comunicação deve pois suportar comunicações síncronas e assíncronas e deve possibilitar a comunicação simultânea com vários agentes distintos. Até à data não surgiu qualquer norma para esta funcionalidade, existindo apenas uma proposta de uma arquitectura, designada por Unified Agent Architecture e proposta pela universidade McGill de Montreal, que define a funcionalidade de comunicação como um conjunto normalizado de protocolos que facilitam a ocorrência deste tipo de comunicação. A funcionalidade de transporte lida com a forma como o agente comunica. Esta funcionalidade permite a movimentação de um agente a partir de um ambiente de execução para outro, por forma a cumprir a tarefa que lhe foi destinada. Para além disso, facilita a distribuição de agentes nãoinicializados. Esta funcionalidade suporta protocolos de transmissão normalizados tais como o HTTP, o SMTP e o TCP/IP. A funcionalidade de empacotamento proporciona um método de envolvimento dos agentes e da informação que lhes está associada. Independentemente da sua estrutura interna, todos os agentes devem encapsular a sua informação de estado, de autenticação, objectivos e capacidades. A funcionalidade de segurança integrada engloba a identificação individual de cada agente. A identificação dos agentes é um atributo intrínseco da infra-estrutura das arquitecturas dos agentes. A segurança é uma característica que se aplica a todos os componentes do agente. Por este motivo, a infra-estrutura dos agentes deve proporcionar um método seguro para determinar o dono do agente e o seu local de origem. Na maior parte das aplicações, cada agente possui um passaporte que codifica esta informação. Os métodos de segurança utilizados na infra-estrutura dos agentes também devem considerar a protecção de recursos (evitando o abuso de computadores servidores ou de redes), a privacidade da informação, as regras e procedimentos que permitem terminar a execução de um agente e ainda a não-repudiação, isto é, a reclamação de um serviço que não foi recebido ou não foi pago quando na realidade o foi. Geralmente, cada agente inteligente aplica os seus próprios protocolos de segurança para lidar com os requisitos específicos da aplicação. 32 INESC Tecnologia do arquivo de informação 2.2.5 Aplicações existentes Esta secção descreve a utilização actual do termo “agentes inteligentes” na Internet. A análise foi dividida em grupos que reflectem várias características distintas dos agentes inteligentes. Os grupos de agentes inteligentes que foram identificados são os seguintes: 1. Agentes Observadores (watcher agents), 2. Agentes Aprendizes (learning agents), 3. Agentes de Compras (shopping agents), 4. Agentes de Recuperação de Informação (information retrieval agents), 5. Agentes de Ajuda (helper agents) Os agentes observadores operam autonomamente em busca de informação ou eventos específicos. Quando encontram informação relevante para o utilizador o agente pode notificar o utilizador directamente (e.g. com um flash noticioso) ou armazenar a informação para acesso futuro (p. ex. para um jornal personalizado). Existem vários jornais electrónicos na Internet que poderiam produzir versões personalizadas do jornal de acordo com os interesses específicos do utilizador - alguns deles têm a capacidade de alertar os assinantes com flashes noticiosos quando detectam uma notícia de interesse. O exemplo mais interessante de um jornal inteligente é o Fishwrap do MIT. Este jornal colecciona notícias a partir de um variado número de fontes e, de seguida, gera automaticamente uma versão personalizada do jornal. O jornal possibilita aos utilizadores/leitores a atribuição de classificações (valores/pontuações) às notícias e, de seguida, posiciona as notícias no jornal de acordo com a sua popularidade. O melhor exemplo de um jornal que notifica os seus utilizadores quando surge uma história de interesse é o Mercury Center’s NewsHound. Os utilizadores definem um perfil (profile) detalhando áreas de interesse e depois submetem-no ao jornal por correio electrónico. As notícias existentes em vários serviços por cabo são analisadas de 60 em 60 minutos e as notícias que correspondam ao perfil definido pelo utilizador são imediatamente enviadas por correio electrónico. O agente aprendiz é capaz de ajustar o seu desempenho às preferências individuais de um utilizador através da aprendizagem realizada a partir do comportamento do utilizador no passado. Existem várias aplicações na Internet que reclamam a capacidade de aprendizagem. O exemplo mais conhecido é o sistema de recomendação musical Firefly. Este sistema pede aos utilizadores para classificarem vários artistas e bandas musicais e, de seguida, faz recomendações sobre outros tipos de música que o utilizador possa gostar. O efeito de aprendizagem está patente na crescente precisão das previsões realizadas. No entanto, este efeito é obtido mediante a introdução de informação pessoal sobre o utilizador. A previsão baseia-se em correlações com aquilo que as outras pessoas dizem gostar de ouvir e não em técnicas de inteligência artificial. Existem outros sistemas e aplicações, tais como o InterAp e o Open Sesame que automatizam tarefas repetitivas tais como a leitura de correio electrónico e a pesquisa de informação na Internet. Finalmente, o NewsWeeder utiliza técnicas de aprendizagem para encontrar páginas WWW interessantes e artigos relevantes na Usenet. De igual modo, estas aplicações assentam sobre informação fornecida pelos utilizadores que especificam o tipo de informação de interesse. 33 INESC Tecnologia do arquivo de informação Os agentes de compras possuem a capacidade de fazer comparações entre produtos e encontrar o melhor preço para um dado item. Contudo, os revendedores podem proteger-se de tal tipo de competição atribuindo nomes únicos aos seus produtos. O melhor agente de compras existente actualmente é o Bargain Finder da Andersen Consulting. Este agente faz comparações de preços para discos compactos de áudio (CDs) e exibe algumas características de agente inteligente na medida em que envolve várias fontes de informação distintas, a operação é remota e a informação é bastante difícil de encontrar. Os agentes de recuperação de informação são capazes de pesquisar informação de uma forma inteligente. O exemplo mais óbvio é o agente de pesquisa na Internet que consegue realizar pesquisas complexas através da interpretação dos critérios de pesquisa introduzidos pelo utilizador, tais como as acções realizadas pelo Alta Vista da Digital ou pelo Excite da Architext. Estes agentes são capazes de encontrar documentos mesmo quando eles não contêm nenhuma das palavras chave contidas nos critérios de pesquisa. Apesar de poderem ser classificados como inteligentes, estes agentes não possuem muita autonomia. A tecnologia ConText da Oracle é uma solução de processamento de linguagem natural que é capaz de comprimir e resumir documentos. Esta tecnologia pode ser integrada em agentes inteligentes que filtram dados destinados ao utilizador. A forma como os dados são comprimidos pode depender dos gostos pessoais: tipos de dados, dia da semana, etc. A inteligência pode ainda ser exigida na determinação da forma de apresentação destes tipos de dados. Os agentes de ajuda realizam tarefas autonomamente sem a intervenção humana. A maioria destes tipos de agentes são utilizados na gestão de redes. O agente pode determinar que a razão pela qual um utilizador não recebeu uma mensagem de correio electrónico foi o facto de ter a sua caixa de correio cheia. O agente poderá então diagnosticar e superar o problema automaticamente. Outros agentes realizam funções de manutenção normalizadas. No entanto, estes últimos são menos susceptíveis da designação de agentes inteligentes. 2.3 MPEG7 2.3.1 Contexto e objectivos A informação audiovisual é actualmente disponibilizada cada vez mais sob a forma digital e vários locais dispersos pelo planeta. Juntamente com a informação surgem as pessoas que a pretendem utilizar. Contudo, para ser utilizada a informação deve ser antes de mais localizada. Em simultâneo, a disponibilidade de materiais potencialmente interessantes também aumentou. As soluções existentes na actualidade facilitam a pesquisa de informação textual, como o comprovam os vários motores de pesquisa existentes na Web. Realmente, estes sites são os mais visitados da Web, o que indica um acréscimo no interesse das pessoas por tais potencialidades [32]. No entanto, a pesquisa de informação ainda não permite a pesquisa baseada em conteúdos audiovisuais, já que não existe uma descrição geral reconhecida para tais materiais. De uma forma geral, não é possível realizar uma pesquisa eficiente para uma imagem em particular. Se bem que existam soluções para casos muito específicos, tais como o caso das bases de dados multimédia que permitem a pesquisa de imagens utilizando características como a cor, a textura e informação sobre a forma dos objectos contidos na imagem, não existe uma solução genérica e abrangente. 34 INESC Tecnologia do arquivo de informação O MPEG iniciou um novo item de trabalho para solucionar o tipo de problemas descritos. O novo membro da família MPEG, designado por Interface de Descrição de Conteúdos Multimédia (Multimedia Content Description Interface) ou MPEG-7, pretende ampliar as capacidades limitadas de pesquisa existentes por forma a incluir mais tipos de informação, isto é, especificará uma descrição normalizada dos vários tipos de informação multimédia. Esta descrição deverá estar associada com o conteúdo em si, por forma a facilitar a pesquisa e obtenção rápida e eficiente do material pretendido pelo utilizador. O material referido inclui: imagens, gráficos, áudio, vídeo e informação sobre a forma como estes elementos se combinam numa apresentação multimédia (cenários e informação de composição). Os casos particulares destes formatos gerais incluem a expressão facial e as características pessoais. A descrição pode ser adicionada a qualquer tipo de material multimédia, independentemente do formato de representação em que se encontrar. O material armazenado que possua esta informação adicional pode então ser indexado e pesquisado. Apesar da independência entre a descrição MPEG7 e a representação codificada do material, a norma MPEG-7 assenta sobre a norma MPEG-4, que fornece os meios para a codificação de material audiovisual sob a forma de objectos que possuem relações temporais (sincronização) e espaciais (no écran). A descrição normalizada dos vários tipos de informação pode existir em vários níveis semânticos. Se tomarmos como exemplo o material visual, um nível de abstracção mais baixo poderia consistir na descrição da forma, dimensões, textura, cor e composição (onde se pode encontrar o objecto na cena). O nível de abstracção mais elevado fornece informação semântica codificada de uma forma eficiente, tal como: "esta é a cena onde surge um cão castanho à esquerda e em que existe uma bola azul que cai do lado direito". Os níveis intermédios podem conter váris descrições diferentes ajustadas à área de aplicação particular. Para além da descrição do conteúdo, pode ser necessário incluir outras formas de informação sobre os dados multimédia tais como: 1. A forma - o esquema de codificação utilizado (e.g. JPEG) ou a dimensão. Esta informação ajuda a determinar se o material pode ser "lido" pelo utilizador. 2. As condições para o acesso ao material - o preço e informação de copyright. 3. Links para outros materiais relevantes. Segue-se que, para explorar a fundo as potencialidades de tal descrição, deve existir uma extracção automática de características (ou descriptores). Tal algoritmo de extracção deverá, contudo, encontrar-se para além do âmbito da norma MPEG-7. De igual modo, os motores de pesquisa não serão especificados no âmbito do MPEG-7. Por fim, para permitir um julgamento rápido sobre o eventual interesse da informação, a descrição associada ao material multimédia deverá encontrar-se estruturada duma forma hierárquica ou associativa. 35 INESC Tecnologia do arquivo de informação 2.3.2 Áreas de Interesse Existem muitas aplicações e domínios de aplicação que beneficiarão com esta norma. Identificam-se as seguintes aplicações: • • • • Bibliotecas Digitais - catalogação de imagem, dicionários musicais; Serviços de directórios multimédia tais como as páginas amarelas; Selecção de estações de difusão de media - canais de rádio ou canais de televisão; Edição multimédia - serviços electrónicos noticiosos personalizados, autoria multimédia. As aplicações potenciais abrangem os seguintes domínios: • • • • • • • • • • • Educação; Jornalismo - pesquisa de artigos ou discursos; Informação turística; Entretenimento - pesquisa de jogos, Karaoke; Serviços de investigação - reconhecimento de características humanas; Sistemas de Informação Geográfica (GIS); Aplicações médicas; Comércio electrónico - pesquisa de produtos para compra; Arquitectura; Serviços sociais tais como a marcação de blind dates; Arquivos de filmes, vídeo e programas de rádio. Se falarmos em termos de aplicações musicais, podemos por exemplo tocar algumas notas no teclado e obter como resposta uma lista de peças musicais contendo (ou semelhantes) à melodia pretendida. No campo da pesquisa gráfica, será possível desenhar algumas linhas no écran e obter como resposta um conjunto de imagens contendo gráficos ou logotipos semelhantes. Na área de imagem, poder-se-á definir objectos incluindo cor e texturas e obter exemplos a partir dos quais se pode seleccionar um conjunto de objectos interessantes para a composição de uma imagem. Na área da animação será possível descrever movimentos e relações entre os objectos pertencentes a um dado conjunto e obter uma lista de tais animações. Finalmente, na área da autoria multimédia, será possível descrever acções sobre um dado conteúdo e obter uma lista de cenários conducentes a tais acções. 2.3.3 Plano de trabalhos O MPEG-7 especificará pois uma descrição normalizada dos vários tipos de informação multimédia. Esta descrição estará associada com o próprio conteúdo por forma a permitir uma pesquisa rápida e eficiente de material interessante do ponto de vista do utilizador. O MPEG-7 concentrar-se-á sobre a normalização de representações que podem ser utilizadas para classificar a informação multimédia. O desenvolvimento de ferramentas de reconhecimento de conteúdos audiovisuais está fora do âmbito do MPEG-7 e será realizado pelas indústrias que construirão e venderão produtos compatíveis com o MPEG-7 e incluindo as funcionalidades especificadas na futura norma internacional. 36 INESC Tecnologia do arquivo de informação O MPEG-7 também não pretende normalizar as ferramentas que utilizarão a descrição normalizada, isto é, as ferramentas de obtenção de conteúdos de áudio ou vídeo (audio or video content retrieval). O método de desenvolvimento do MPEG-7 é comparável aos métodos utilizados no desenvolvimento das normas MPEG anteriores. Após a definição dos requesitos, será lançado um pedido aberto de propostas (Call of Proposals). Este pedido endereçará as tecnologias relevantes que preencham aos requesitos. Após a avaliação da tecnologia proceder-se-á a uma escolha e o desenvolvimento prosseguirá com as propostas mais promissoras. No curso do desenvolvimento da norma serão lançados pedidos específicos sempre que não exista tecnologia suficiente para ir de encontro aos requesitos. O plano de trabalhos preliminar prevê o lançamento de uma nova norma internacional no ano 2000. O pedido de propostas ocorrerá em Novembro de 1998 e o primeiro Working Draft está previsto para Julho de 1999. O Committe Draft que se segue sairá em Março de 2000 e passará a Draft International Standard em Julho de 2000. A norma internacional MPEG-7 será uma realidade em Novembro de 2000. As pessoas envolvidas actualmente no desenvolvimento do MPEG-7 representam fabricantes de equipamento, broadcasters, gestores e criativos de conteúdos digitais, fornecedores de transmissões, gestores dos direitos de propriedade intelectual e editoras e investigadores universitários. O MPEG-7 surge na sequência do MPEG-4 (o MPEG-5 e o MPEG-6 não estão definidos) e não tenciona substituir os MPEG-1, 2 e 4, mas sim fornecer funcionalidades complementares às outras normas MPEG: a representação de informação sobre o conteúdo e não o conteúdo em si (os bits sobre os bits). Esta funcionalidade é a normalização das descrições do conteúdo multimédia. 37 INESC Capítulo 3 Infra-estruturas e gestão dos sistemas de informação Infra-estruturas e gestão dos sistemas de informação Os esforços de desenvolvimento dos sistemas multimédia actuais focam-se em particular no espaço de armazenamento, na sincronização temporal dos média, nos modelos de objectos e nos serviços de telecomunicações [10]. É opinião geral que os grandes servidores de informação multimédia farão parte das emergentes infra-estruturas na área da computação distribuída. Existe contudo uma necessidade de inovação na arquitectura destes sistemas, tanto ao nível do armazenamento e taxas de transferência, como na arquitectura dos servidores de modo a responder à necessidade sempre crescente das aplicações multimédia. As técnicas, cada vez mais utilizadas, de entradas/saídas (I/O) de dados paralelas (e.g. RAID) e a inter-conectividade baseada em ATM (Asynchronous Transfer Mode), como por exemplo na arquitectura escalável que interliga de forma transparente os dispositivos de armazenamento à rede ATM de banda larga, pretendem contribuir para uma arquitectura que garanta um grande número de acessos concorrentes ao servidor. Para além das funcionalidades exigidas ao servidor multimédia ao nível do sistema operativo, do sistema informático de armazenamento e pesquisa de informação, dos sistemas de protecção e das ferramentas de software que possibilitem um interface inteligente e transparente na distribuição de informação, existe ainda um conjunto vasto de problemas que devem ser abordados neste relatório, tanto ao nível das telecomunicações e dos protocolos utilizados como ao nível do comércio electrónico e das ferramentas disponíveis no mercado que permitem o controlo da admissão de pedidos e o escalonamento em tempo real de funções de escrita e leitura para os vários fluxos de dados gerados. 3.1 Redes e Protocolos de Comunicação As aplicações multimédia necessitam de enorme poder computacional, grandes volumes de armazenamento de dados e uma elevada largura de banda das redes de transmissão. Os rápidos avanços nas comunicações ópticas, a comutação de pacotes de alto débito, as técnicas de codificação e compressão de dados, a concepção de novos processadores e de memórias cada vez mais rápidos e mais baratos, serão os principais efeitos conjunturais nas futuras infra-estruturas de computação multimédia distribuída. Há vários factores que influenciam a arquitectura da próxima geração de computadores: a rápida evolução do paradigma cliente-servidor; o suporte de redes rápidas e operações rápidas de I/O para os discos; os avanços nas tecnologias dos ICs (Circuitos Integrados) e nas arquitecturas multiprocessador; as vantagens na utilização das redes ATM para interligar servidores multimédia. Neste sub-capítulo serão analisadas as redes e os protocolos de comunicação existentes que apoiarão neste contexto os servidores de informação multimédia. O modelo cliente-servidor está a evoluir em duas dimensões: ao nível das redes ATM e do suporte multimédia. Os serviços que utilizam ATM organizam os servidores multiprocessador numa teia interoperacional de recursos computacionais, disponibilizando todo o seu poder computacional aos utilizadores [13]. A conectividade tradicional entre LAN-WAN-LAN é fornecida através de bridges, routers e gateways associadas às LANs. Estes meios de ligação diferem drasticamente uns dos outros, tendo cada um diferentes protocolos e pacotes. O resultado é uma vasta gama de conversões 38 INESC Infra-estruturas e gestão dos sistemas de informação de pacotes e protocolos à medida que os dados viajam da fonte para o destino. Estas conversões afectam o tempo de resposta global e não são apropriadas para as aplicações multimédia que requerem tempos de resposta críticos. Os serviços on-demand irão evoluir para serviços personalizados que combinam a selectividade e flexibilidade destes serviços com a versatilidade e capacidade de programação dos computadores. Estes serviços prometem a utilização de agentes de serviço pessoal que actuam em nome dos clientes, procurando e localizando informação que interessa ao cliente e escalonando as apresentações de acordo com as disponibilidades deste. As larguras de banda necessárias para suportar simultaneamente diferentes pedidos multimédia de vários utilizadores, de forma personalizada, são proibitivas. Existem contudo técnicas/estratégias de caching inteligentes que prevêem o armazenamento de informação multimédia em localizações estratégicas de rede para assim reduzir a utilização da rede por utilizadores com preferências similares. As empresas fornecedoras de serviços de telecomunicações são responsáveis pela transmissão de dados entre os servidores, que armazenam a informação, e os clientes, que visualizam a informação. Tanto as redes locais como as redes de maior dimensão estão a evoluir para a tecnologia ATM. Nestas redes, as unidades de dados são empacotadas, transmitidas pelo servidor e encaminhadas pelos comutadores (switches) para os sites dos clientes. O áudio e o vídeo, sendo media “contínuos”, requerem garantias mínimas de largura de banda e garantias máximas de atraso (delay), variação de atraso (jitter) e perdas. Para a transmissão de vídeo com boa qualidade, a largura de banda mínima requerida é de 4 Mbit/s e os limites aceitáveis no atraso end-to-end, jitter e perda fraccional é respectivamente de 200ms, 5ms e 0,1. Estes requisitos são em geral específicos dos dados e do modo de codificação utilizado. Por exemplo, a codificação PCM de áudio é mais susceptível ao jitter e a perdas do que o vídeo MPEG. Para suportar estes requisitos, os fornecedores de serviços de rede reservam largura de banda suficiente em todas as ligações e espaço de armazenamento (buffer) nos comutadores existentes entre os servidores e os clientes. Os fornecedores de rede devem também suportar transmissões non-real-time. Os servidores vizinhos podem armazenar (cache) informação multimédia do servidor e no momento de armazenamento deve preservar-se a integridade dos dados para os quais o fornecedor de serviços pode negociar o atraso e o jitter permitidos. As redes ATM são ideais para o tráfego multimédia porque permitem grande flexibilidade na alocação de largura de banda através da transmissão de pacotes com comprimento fixo (cells) para o estabelecimento de ligações virtuais. As redes ATM podem também aumentar a eficiência da utilização da largura de banda através de técnicas de buffering e multiplexagem estatística do tráfego instantâneo (bursty), à custa de possíveis atrasos e perdas de células. O problema relacionado com a rede de telecomunicações está na adopção de soluções tecnologicamente adequadas, fiáveis, e de custo razoável para o sistema. A rede de comunicação deverá possuir dois requisitos: ser uma rede de banda larga e possuir mecanismos de segurança no controlo de acessos. Esta rede deverá permitir a troca de informação rápida entre sites que estão geograficamente dispersos e possivelmente com níveis tecnológicos completamente distintos (e.g. redes locais internas). Começam já a surgir redes locais ATM, e também as primeiras infra-estruturas que apoiarão os serviços públicos ATM. 39 INESC Infra-estruturas e gestão dos sistemas de informação DAVIC O Digital Audio-Video Council (DAVIC) é uma associação sem fins lucrativos registada em Genebra. Esta associação tem por objectivo promover o sucesso das emergentes aplicações e serviços digitais audiovisuais. Numa primeira instância promoverá os tipos de aplicações/serviços de difusão (e.g. HDTV) e interacção (e.g. Web), através de especificações internacionais de interfaces abertas e protocolos que maximizam a interoperacionalidade entre países e aplicações/serviços. O conceito de serviços e aplicações audiovisuais digitais inclui todos os serviços e aplicações que possuam uma componente significativa de áudio e vídeo. O objectivo do DAVIC é identificar, seleccionar, aumentar, desenvolver e obter apoios através de normalizações formais de especificações de interfaces, protocolos e arquitecturas para aplicações e serviços audiovisuais digitais. Estes objectivos são perseguidos através de uma colaboração internacional aberta entre todos os elementos activos neste contexto. As especificações do DAVIC podem abarcar qualquer tipo de subsistema que se enquadre na definição genérica de um sistema com 5 entidades: o sistema fornecedor de conteúdos (Content Provider System), o sistema fornecedor de serviços (Service Provider System), o sistema utilizador de serviços (Service User System), e dois sistemas de entrega (Delivery Systems) que interligam o sistema fornecedor de conteúdos ao sistema fornecedor de serviços e este último ao sistema cliente. Aplicação Sistema Fornecedor Conteúdos (Content Provider System) Sistema Entrega (Delivery System) Aplicação Sistema Fornecedor Serviços (Service Provider System) Sessão Transporte Rede Físico A11 A10 Sessão Transporte Rede Sistema Entrega (Delivery System) Sistema Utilizador Serviços (Service User System) Físico A9 A1 Figura 1: Arquitectura genérica de uma rede de comunicações multimédia. O grupo DAVIC propõe vários modelos de camadas de protocolos para os vários pontos de referência e fluxos de informação, definidos no esquema geral da arquitectura de uma rede multimédia. Os pontos de referência (e.g. A11, A10, A9 e A1) são pontos de particular interesse, identificados na arquitectura do sistema e que possuem um valor normativo se forem acessíveis para o exterior. Um subsistema digital audiovisual estará em conformidade com as especificações DAVIC se os seus pontos de referência o estiverem. Quer isto dizer que um subsistema pode ser considerado como um caixa preta e a conformidade com as especificações DAVIC só estará disponível nos pontos de referência externos. Por regra, as especificações DAVIC contêm partes normativas, que regem a implementação dos sistemas de modo a podermos considerá-los conformes com as especificações DAVIC, e partes informativas, que são incluídas para clarificar as partes normativas das especificações e para fornecerem assistência aos que implementam as especificações. 40 INESC Infra-estruturas e gestão dos sistemas de informação O DAVIC define a utilização de ferramentas (e.g. protocolos, algoritmos) que permitem obter um conjunto de funcionalidades requeridas pelos sistemas DAVIC e pelas aplicações que os utilizam. Estas ferramentas são normalmente associadas com graus que determinam o nível de desempenho de uma determinada ferramenta (e.g. áudio mono/estéreo multi-canal; HDTV; largura de um canal de retorno). Foi necessário, para evitar incompatibilidades, agrupar as ferramentas de acordo com vários graus relacionados com os domínios de aplicação. Este processo, designado por definição de perfis, serve como guia aos fabricantes a fornecedores de aplicações e possui valor normativo. As especificações DAVIC aconselham a utilização de uma combinação das melhores tecnologias existentes. Essa utilização é, tanto quanto possível, validada por testes de interoperacionalidade. Como regra, as especificações DAVIC são acompanhadas por documentos que especificam os métodos de teste da conformidade dos pontos de referência. As especificações DAVIC são emitidas em versões (e.g. DAVIC 1.0, DAVIC 1.1, DAVIC 1.2, DAVIC 1.3). A versão DAVIC 1.0 define um primeiro conjunto de ferramentas que permitem o desenvolvimento de sistemas que suportam as aplicações iniciais (e.g. distribuição de TV; NVoD; VoD; algumas formas básicas de tele-compra). As versões seguinte especificam níveis diferentes para as ferramentas já definidas e novas ferramentas que melhoram e complementam as anteriores. DAVIC 1.0 O DAVIC 1.0 está organizado em 11 partes, classificadas em 3 grupos. As partes pertencentes ao grupo 1 pretendem identificar todas as ferramentas que são necessárias para construir os sistemas conformes com o DAVIC. As partes do grupo 2 descrevem o modo como os três subsistemas principais DAVIC podem ser montados utilizando as ferramentas identificadas no grupo 1. As partes do grupo 3 preocupam-se com as questões mais latas dos sistemas maiores. Parte Número Grupo 1 7 8 9 10 11 Grupo 2 3 4 5 Grupo 3 1 2 12 Título Ferramentas DAVIC Protocolos das camadas-altas e camadas-médias Protocolos das camadas-baixas e interfaces físicas Representação da informação Segurança Protocolos de utilização de informação Subsistemas DAVIC Arquitectura e interfaces do sistema fornecedor de serviços Arquitectura e interfaces do sistema de entrega de serviços Arquitectura e interfaces do sistema de utilizador de serviços Temas do Sistemas em Geral Descrição das funções do sistema DAVIC Modelos de referência e cenários do sistema DAVIC Dinâmica, pontos de referência e interfaces Tabela 1. classificação das partes em que se divide o DAVIC 1.0 41 INESC Infra-estruturas e gestão dos sistemas de informação As partes 7 e 8 do grupo 1 especificam a utilização, para as diferentes camadas (layers) do sistema de comunicação, um conjunto de protocolos e normas internacionais já publicadas e implantadas. Algumas dessas ferramentas ou protocolos que as especificações DAVIC recomendam, são: • MHEG: o grupo de trabalho SC29WG12 do JTC1, mais conhecido por Grupo MHEG (Multimedia and Hypermedia Expert Group) começou em 1989, sobre a tutela de Francis Kretz, a trabalhar numa representação codificada de Objectos Multimédia e Hipermédia que se destinam a ser trocados entre aplicações e/ou serviços através de quaisquer meios de comunicação, como por exemplo os meios de armazenamento (e.g. discos ópticos) e as redes de telecomunicações (e.g. LANs, WANs) [ISO13522 93]. A parte 1 da norma MHEG propõe uma descrição orientada aos objectos e uma notação ASN.1 especialmente dedicada às aplicações telemáticas. A parte 2 da norma propõe uma notação SGML isomórfica e alternativa à Parte 1, para outras classes de aplicações. Os objectos MHEG permitirão que diferentes aplicações possam partilhar as mesmas fontes básicas de informação. Os objectos são uma forma de encapsular toda a informação definida nas aplicações para que possa ser trocada entre dois sistemas eventualmente distintos. O grupo MHEG apresentou uma lista de domínios de aplicação típicos dos objectos MHEG, prevendo a sua utilização em aplicações multimédia que se destinam, por exemplo a: treino e educação; simulação; jogos; vendas e publicidade; sistemas de informação para escritórios; informação pública; trabalho cooperativo apoiado por computador. A norma MHEG possibilita a representação de informação relativa a apresentações multimédia através da definição de um conjunto de objectos, de composição e de interacção (e.g. botões, sliders, etc), independentemente das plataformas de implementação. O aspecto e formas de actuação (look and feel) dos objectos de interacção dos utilizadores com a aplicação são controlados pelo ambiente da plataforma de apresentação. A norma MHEG inclui primitivas de composição tanto para objectos relacionados no espaço como para objectos relacionados no tempo. A norma permite ainda dois tipos de relações temporais: relações em série e relações em paralelo. • MPEG: em 1988 a ISO criou o grupo de trabalho MPEG (Moving Pictures Experts Group) com o objectivo de identificar os novos requisitos a introduzir nas técnicas de compressão de vídeo para o novo campo das aplicações interactivas. Em 1990 o trabalho do grupo MPEG foi publicado num documento Committee Draft que descreve o algoritmo de compressão de imagens móveis para aplicações interactivas e para o armazenamento em meios digitais (MPEG1), mas as normas MPEG2, para imagens de alta definição, e MPEG4, para imagens de baixas cadências estão já publicadas. A norma envolve ainda, para além da codificação de vídeo, a codificação de sinais de áudio, a sincronização e a multiplexagem dos diferentes fluxos de informação comprimida (multiplexagem de sistema). Cada sequência MPEG possui um cabeçalho que inclui uma série de parâmetros (número de pixeis por linha, número de linhas por imagem, relação entre altura/largura da imagem, taxa de repetição de imagens, débito binário, profundidade do buffer de recepção), cujos valores podem ser manipulados dentro de certos limites e que conferem à norma uma grande flexibilidade. Foi definido um subconjunto de valores para esses parâmetros designado por constrained parameter set e que qualquer descodificador MPEG deverá ser capaz de conseguir satisfazer. • DSM-CC: uma das ferrramentas que o DAVIC propõe para o nível de controlo é a norma DSMCC (Digital Storage Media Command and Control). As especificações DSM-CC constituem um conjunto de protocolos que fornecem as funções de controlo e operações específicas para a gestão das sequências (bitstreams) MPEG-1 (ISO/IEC11172) e MPEG-2 (ISO/IEC 13818). Os conceitos e protocolos DSM-CC podem contudo ter uma aplicação mais geral, como por exemplo o acesso a bases de dados e o acesso a sistemas de ficheiros. O modelo DSM-CC baseia- 42 INESC Infra-estruturas e gestão dos sistemas de informação se na transmissão de uma stream fornecida por um servidor a um cliente, através de uma rede DSM-CC. Tanto o servidor como o cliente são subsistemas lógicos e não necessitam de ser dispositivos computadorizados (e.g. um codificador MPEG em tempo real pode ser o subsistema servidor). O DSM-CC suporta várias topologias de rede: multi-servidor (permite aos clientes pedirem o serviço a vários servidores que podem comunicar entre si); multi-cliente (um bloco de informação pode ser acedido por um ou mais clientes de forma sequencial ou concorrente); multisessão (os clientes podem efectuar simultaneamente múltiplas chamadas); multi-protocolo (os pedidos efectuados pelos clientes a vários servidores podem atravessar protocolos de rede distintos). O DSM-CC suporta os seguintes tipos de conectividade: ponto-a-ponto e pontomultiponto ou difusão (broadcast). O DSM-CC especifica um conjunto de primitivas que permitem às aplicações estabelecerem e terminarem as ligações à rede (primitivas UtilizadorRede) e permitem a comunicação entre o cliente e o servidor sobre uma rede (primitivas Utilizador-Utilizador). As primitivas dos protocolos U-R e U-U podem ser definidas em IDL (Interface Definition Language) e podem utilizar um protocolo RPC (Remote Procedure Call), que permite a implementação do modelo cliente-servidor baseado em Stubs. O compilador RPC converte as funções invocadas remotamente num processo (client stub), que aceita argumentos, empacota-os, envia-os para o servidor e recebe os pacotes de resposta do servidor. De forma semelhante, no servidor existe um processo (server stub) que recebe os pacotes do cliente, invoca as funções a executar e envia as resposta empacotada ao cliente. Os sutbs cliente e servidor são produzidos a partir das primitivas definidas em IDL; além dos sutbs é produzido um ficheiro (header file) que é utilizado na compilação das aplicações cliente e servidor. DAVIC 1.1 O DAVIC 1.1. está dividido em 13 partes que especificam ferramentas em várias áreas de aplicação. Os pontos de trabalho mais importantes, endereçados pelo DAVIC 1.1. são: as funções não abordadas no DAVIC 1.0; o modelo de referência para sistemas distribuídos; a API A10 (e.g. dados relacionados com o conteúdo, ferramentas de navegação, código executável); o modelo de referência STU (Set-Top Unit) do descodificador e o acesso Internet; o servidor MIB; gestão do servidor+DS+STU; camadas protocolares para os canais de retorno (em tempo-real e não-temporeal); protocolos para alocação dinâmica de canais num sistema de cabo multi-acesso; tecnologias para a camada física e protocolos da camada-baixa para o canal de retorno dos satélites; tecnologias de transmissão para a interface A1 através do MMDS (Multichannel Multipoint Distribution System); métodos e tecnologias para a transmissão de informação digital upstream em sistemas TV cabo trabalhando em modo multi-acesso e com capacidade de servir as necessidades de múltiplos serviços de duas vias; conectores para A0 e A1; portas de dados STU e conectores; serviços de informações adicionais e tecnologias associadas que permitem aos nós de comutação intermédios serem capazes de encaminhar (routing) correctamente os fluxos multi-programa; definição de interfaces e protocolos necessários para reduzir a possibilidade de existirem cópias não autorizadas, permitir a localização/identificação de quem copia ilegalmente e ainda permitir identificar e atribuir os direitos IP sobre determinados recursos; especificação total de um sistema de segurança DAVIC, que inclui as tecnologias para os algoritmos de scrambling, gestão de chaves, autenticação, dispositivos de segurança e em particular de graus de tecnologias suficientemente fortes para assegurarem as transações comerciais; completar o protocolo de dados do utilizador; detalhar o ponto de acesso A4; definir outros níveis ou perfis; documentar a compatibilidade com as especificações anteriores (1.0); especificar cenários para ambientes distribuídos; desenvolver ferramentas para os testes de conformidade. 43 INESC Infra-estruturas e gestão dos sistemas de informação DAVIC 1.2 Os itens de trabalho mais importantes, endereçados pelo DAVIC 1.2. são: a API de comunicação para o acesso à Internet; os protocolos de gestão do acesso para servidores, DS e STU; mapeamento entre ADSL (Asymmetrical Digital Subscriver Line) e ATM; a segurança básica para sistemas DAVIC 1.0; a protecção Copyright e Watermarking; o áudio sintético; áudio e vídeo de maior qualidade; perfil de áudio (audio-only); guias para o acesso à Internet; áudio e vídeo escalável; codificação de informação de gráficos 3D e realidade virtual; múltiplos STU em casa; protocolos e interfaces para os periféricos clientes do DAVIC. DAVIC 1.3 Os itens de trabalho mais importantes, abordados pelo DAVIC 1.3, são: serviços de comunicação (e.g. telefonia, conferência e jogos com múltiplos jogadores); redes particulares (home networks); sistema de gestão DAVIC; controlo relacionado com a rede; múltiplos servidores e serviços; mobilidade; tecnologias multicast; unidade de internetworking; descarregamento de funcionalidades para o cliente; extensão da funcionalidade do Java; API de controlo da visualização de imagens paradas para o STU; considerações sobre os cenários mais pessimistas dos sistemas DAVIC1.0. 3.2 Catalogação da informação e Gestão do arquivo Para a gestão do arquivo de informação existem normas de catalogação internacionais já utilizadas para a gestão de arquivos de livros, ficheiros e outros materiais; mas com o advento das telecomunicações e das redes de informação multimédia têm surgido dificuldades na definição de regras e modelos de catalogação que alguns grupos de trabalho por todo o mundo procuram ultrapassar com experiências relativamente isoladas. Nesta secção serão feitas referências não só aos métodos de catalogação mas também aos sistemas de armazenamento de dados, que permitem contornar algumas falhas do sistema e impedir a paralisação total do servidor. 3.2.1 Regras de catalogação A necessidade de catalogar a informação acompanhou o impulso do Homem de armazenar, partilhar e perpetuar as suas ideias, informações e criações artísticas em documentos. Já nos finais do século XIX algumas bibliotecas catalogavam os artigos individuais publicados em série, mas a necessidade de um controlo total sobre todos os artigos publicados periodicamente cedo se tornou num imperativo difícil de atingir [11]. Nos Estados Unidos, a American Library Association (ALA) estabeleceu grupos de trabalho conjuntos entre bibliotecas e empresas de publicação, com o objectivo de estabelecerem a catalogação dos artigos publicados em série (indexing). Esta iniciativa foi abandonada pelos editores, devido à sua fraca rentabilidade económica, e só mais tarde surgiram, no sector comercial, os primeiros índices periódicos de catalogação com os H.W. Wilson's periodical indexes. Este trabalho iniciou uma tradição na partilha de tarefa de fornecer um controlo sobre o universo de informação bibliográfica existente. Neste século têm contudo proliferado vários tipos de meios que preservam imagens, música, som e movimento em vídeo, tal como os livros preservam texto e ilustrações em meios de impressão. 44 INESC Infra-estruturas e gestão dos sistemas de informação Actualmente todos estes meios de armazenamento de informação (e.g. manuscritos, texto impresso, gravações de som, imagens, fotografias, filmes) podem ser digitalizados e disponibilizados globalmente através de serviços on-line por intermédio das redes de computadores. Esta facilidade de acesso aos materiais, e o facto das formas digitalizadas poderem ser rapidamente e economicamente produzidas e alteradas, por um universo cada vez maior de consumidores, provocaram uma enorme discussão quanto aos conceitos fundamentais de direitos intelectuais de propriedade, autoria, publicação e controlo bibliográfico. Uma vez que as edições digitais podem facilmente ser reeditadas, corrigidas e actualizadas, é necessário encontrar novas e melhores formas de identificação das versões dos trabalhos produzidos, que os catalogadores quererão descrever e os livreiros quererão armazenar. As regras de catalogação existentes foram concebidas para a construção de catálogos ou listas, em geral utilizadas nas bibliotecas. Estas regras não foram concebidas especificamente para especialistas nem a sua especificidade se reduz às bibliotecas de arquivos: podem ser utilizadas como regras básicas de catalogação e podem também ser estendidas conforme as necessidades. Estas regras cobrem a descrição de cada item que se pretende catalogar e a forma de expor e referenciar essa descrição nos catálogos fornecidos aos utilizadores. Quanto à descrição dos itens a catalogar, existe um conjunto de regras gerais, que caracterizam genericamente os itens, e um conjunto de regras específicas relacionadas normalmente com: o meio físico do item a ser catalogado, o nível de detalhe necessário para cada elemento da descrição e a análise de itens que são constituídos por vários elementos diferenciados. Estas regras definem as instruções utilizadas na formulação das descrições dos materiais catalogados nas bibliotecas. As regras baseiam-se na ferramenta genérica de descrição dos materiais das bibliotecas, designada por ISBD(G) - General International Standard Bibliographic Description, que foi acordada entre a International Federation of Library Associations (IFLA) e o grupo conjunto que conduz a revisão das Anglo-American Cataloguing Rules (AACR) [8]. Ficou acordado que não é necessário que os códigos das regras sigam a terminologia exacta do ISBD(G). A IFLA, por exemplo, publicou em 1987 a ISBD(NBM) que é baseada no ISBD(G) mas especializada para material não livro (Non Bibliographic Material). Depois de estabelecida uma descrição normalizada, de acordo com as regras anteriores, o próximo passo será seleccionar os cabeçalhos e/ou os títulos da descrição para criar entradas que permitam expor e referenciar os itens nos catálogos. Quanto à forma de expor e referenciar a informação, a parte II do AACR(2) define um conjunto de regras que lidam com a escolha de pontos de acesso para as entradas principais, entradas adicionais e referências dos catálogos, sob a forma de cabeçalhos e títulos uniformes. No contexto da Mediateca seria de particular interesse a definição de regras específicas para a catalogação de materiais multimédia, uma vez que se trata de um servidor que irá servir de repositório de dados multimédia. As AACR(2) prevêem regras específicas para a descrição de materiais cartográficos, música, registos sonoros, filmes e registos de vídeo, materiais gráficos e produtos de computador, entre outros. Os materiais cartográficos, a música e aos ficheiros de computador possuem descrições bibliográficas internacionais normalizadas especializadas, respectivamente a ISBD(CM), a ISBD(PM) e a ISBD(CF). As regras gerais ACCR(2) para a descrição dos itens a catalogar relacionam-se com as fontes de informação, com a organização da descrição, com a pontuação utilizada na descrição, com os níveis de detalhe da descrição, com a linguagem utilizada na descrição e com as inexactidões que possam surgir. Estas regras definem várias áreas de catalogação que possuem uma especificidade particular de acordo com o item a ser 45 INESC Infra-estruturas e gestão dos sistemas de informação catalogado: área de responsabilidade, área de edição, área de detalhes específicos, área de publicação e distribuição, área de descrição física, área de séries, área de notas, área de numeração normalizada e de termos de disponibilidade, área de itens suplementares e área de itens constituídos por vários tipos de materiais. Mas como é que se pode acomodar toda a informação electrónica disponível na rede, quando se sabe que as regras de catalogação disponíveis foram concebidas para uma descrição física de itens pertencentes e residentes em bibliotecas? Como se pode fornecer acesso a essa informação? É opinião geral que as regras e as práticas devem mudar, mas a dificuldade está na convergência de opiniões quanto ao estabelecimento de novas regras e práticas. A ALA formou um comité de aconselhamento da biblioteca do congresso dos EUA, para alterações e melhoramentos ao formato USMARC. Este comité lida, entre outras, com questões relacionadas por exemplo com o local exacto de armazenamento do ISMN (International Standard Music Number) e se se deve adicionar aos campos físicos de descrição fixos os valores codificados para as cassetes de vídeo Betacam. Surgiram então novas propostas que recomendavam alterações ao formato bibliográfico por forma a acomodar dados de recursos electrónicos (e.g. jornal electrónico e outros documentos disponíveis na Internet). Parece óbvio, que o acesso remoto é o elemento unificador que poderá qualificar este tipo de materiais devido ao facto destes não poderem estar disponíveis numa prateleira nem poderem ser fisicamente descritos. Propuseram então que o universo das entidades acessíveis remotamente seja dividido em duas categorias: os recursos de dados (e.g. software, ficheiros de dados, bases de dados bibliográficas) e os recursos de sistemas (e.g. sistemas de informação, sistemas de catalogação de bibliotecas, bulletin boards). Numa metáfora simples, pode-se dizer que os recurso de dados são aqueles que se podem aceder por FTP e os de sistema são os que podem ser acedidos por Telnet. Existem já projectos de investigação nos EUA (e.g. OCLC Internet Resources Project), que se concentram nos recursos de dados e que coligiram e categorizaram mais de 1500 ficheiros. Um grupo conjunto (OCLC Internet Resources Project, MARBI, Library of Congress, e The Online Audiovisual Catalogers) começou uma experiência de catalogação de recursos de dados electrónicos que inicialmente se deteve na possibilidade do formato de ficheiros de computador USMARC, puder ser utilizado, sem modificações, para a catalogação de recursos de dados remotos [9]. Este processo parecia ser simples, mas por razões históricas o formato USMACS é surpreendentemente limitado na possibilidade de descrição de ficheiros de computador, porque foi originalmente concebido apenas com um tipo de ficheiro em mente (conjuntos de dados estatísticos). Mais tarde foi estendido para lidar com o software dos micro-computadores que começava a ser armazenado nas bibliotecas, mas continuou a ser muito limitativo. Outras vertentes de investigação têm surgido na última década, tentando aplicar os modelos conceptuais ER (Entity-Relationship) e OO (Object-Oriented) na catalogação de materiais em bibliotecas de vários países [17]. Outra iniciativa de modelização surgiu no início da década de 90, sob aos auspícios de um grupo de estudo da IFLA, na análise de requisitos funcionais (Functional Requirements) para registos bibliográficos. Todas estas iniciativas utilizaram o modelo ER para identificar as entidades, os atributos e as relações mais importantes para os utilizadores de informação bibliográfica. 46 INESC Infra-estruturas e gestão dos sistemas de informação 3.2.2 Sistema de armazenamento de informação RAID Actualmente os sistemas RAID (Redundant Array of Independent Disks) apresentam-se como uma solução de armazenamento de informação em larga escala, que utiliza estratégias de redundância. Estas estratégias conferem-lhe uma grande vantagem competitiva porque permitem um certo nível de tolerância a falhas (Fault-Tolerant). Dentro de cada subsistema RAID, designado por array, existem vários drives e componentes de suporte (e.g. controladores, fontes de alimentação, ventiladores) que são ligados em conjunto, obtendo assim uma redundância nos pontos onde poderiam ocorrer as falhas de funcionamento e que poderiam paralisar todo o sistema de armazenamento. Duplicando cada subsistema dentro do array, o sistema RAID assegura a operação contínua do sistema mesmo que qualquer um dos componentes falhe. Se surgir uma falha nalgum dos subsistemas, ocorre uma comutação automática para os componentes secundários, sem interrupção das operações do sistema. Qualquer perda ou destruição de dados é automaticamente reconstruída no meio restante (nos restantes discos). Outra vantagem resulta do facto destes sistemas utilizarem um meio de armazenamento constituído por discos magnéticos que fornece tempos de acesso aos dados armazenados bastante rápidos, comparativamente com os sistemas ópticos ou unidades de armazenamento do tipo Tape. Por outro lado, diz-se que o sistema RAID é escalável (scalable), fornecendo tipicamente acesso on-line a dados armazenados desde 2GB até 1TB. Esta característica torna o sistema RAID numa escolha perfeita para aplicações de armazenamento crítico e em larga escala (e.g. o processamento de transações, operações de bases de dados e aplicações multimédia). Existem várias metodologias de armazenamento utilizadas nos dispositivos RAID, designados por níveis. Estes níveis não denotam características de performance, mas referem-se ao método utilizado para armazenar os dados em meio magnéticos. Por exemplo, o nível RAID1 fornece uma performance equivalente ao nível RAID5; e o nível que melhor desempenho apresenta depende da aplicação visada e do tipo de protecção que o utilizador necessita. Existem 5 níveis RAID reconhecidos pela indústria RAID Advisory Board, mas alguns fabricantes reclamam possuir sistemas com níveis adicionais que resultam da combinação dos 5 níveis base. Os níveis mais comuns e mais práticos para aplicações comerciais são o RAID1, RAID3 e RAID5. O nível RAID1 conhecido por Mirroring, faz uma duplicação dos ficheiros de dados. Estes sistemas gravam uma cópia redundante de todos os dados num segundo disco. Se o drive primário falhar é activado automaticamente o drive secundário, que passa a fornecer os dados. Qualquer falha de funcionamento é transparente para o utilizador e o processamento não é afectado. Os sistemas RAID1 duplicam todos os dados, garantindo assim a sua disponibilidade e visando um rápido desempenho durante operações de leitura, comparativamente com outros sistemas RAID. Este nível necessita no entanto de um mínimo de 2 drives (o drive activo e o drive espelhado), daí que apenas metade da capacidade de armazenamento do sistema seja utilizada, tornando estes sistemas nas implementações mais caras dos níveis RAID. O nível RAID3 armazena dados, distribuindo-os (stripping) por um mínimo de dois drives enquanto utiliza um terceiro drive para armazenar o bit de paridade de cada byte. Na eventualidade de um drive falhar, os dados perdidos podem ser recriados a partir da informação dos dois drives que funcionam. A implementação do RAID3 não é tão dispendiosa como o RAID1 porque disponibiliza uma maior percentagem da capacidade de armazenamento total dos subsistemas (2/3 versus 1/2). Se 47 INESC Infra-estruturas e gestão dos sistemas de informação se pretender transferir grandes quantidades de dados, podemos utilizar os sistemas RAID3 pois estes comportam-se de modo bastante eficiente. O nível RAID5 é similar ao nível RAID3, na medida em que também distribui os dados através de um mínimo de 3 drives. Contudo, nos dispositivos de armazenamento RAID5, todos os drives são utilizados para o armazenamento de dados e a gravação dos bits de paridade é distribuída por todos os drives do array. Num sistema com 3 drives, dois terços (2/3 ) da capacidade total do meio está disponível para os dados. Um sistema RAID5 é capaz de efectuar simultaneamente operações de leitura/escrita, enquanto que sistemas RAID1 e RAID3 podem gerir apenas uma transferência de dados por array (i.e. leitura ou escrita). As implementações RAID5 fornecem a melhor combinação entre a disponibilidade sobre a totalidade dos dados e a protecção que confere tolerânica a falhas. Para aplicações que façam leituras contínuas de dados os sistemas RAID3 apresentam uma boa performance. Qual o nível RAID a utilizar? Numa rede com vários servidores e estações de trabalho o sistema RAID1 é muito utilizado porque é uma solução familiar, simples e que oferece grande funcionalidade e muito mais flexível do que as soluções que se obteriam com esquemas de espelhamento de discos oferecidos por alguns fabricantes. Com sistemas RAID obtemos melhor “hot-swapping” e melhor “troughput” do que com as técnicas de “disk mirroring”. Quando seleccionamos um sistema “disk mirroring” construído sobre um determinado sistema operativo, ficamos presos a esse sistema operativo que não funcionará numa rede heterogénea (com diferentes sistemas operativos). A escolha de um sistema RAID pode tornar-se complexa na medida em que é necessário decidir se se quer um sistema RAID baseado em software ou um sistema RAID baseado em hardware, porque a tecnologia RAID está disponível tanto em implementações de hardware como de software. A complexidade dos sistemas RAID requer software para gerir e controlar as suas funções de armazenamento; esse software pode ser embebido no hardware ou pode ser distribuído em programas que correm sobre o sistema operativo. Os sistemas Hardware RAID são assim designados porque contêm os pacotes de software necessários à gestão do sistema incluídos no firmware do controlador do sistema de armazenamento, o que fornece um controlo RAID efectivo sem afectar o sistema computadorizado do computador hospedeiro. Os sistemas Hardware RAID normalmente possuem uma performance I/O mais rápida do que os Software RAID. Os sistemas Software RAID utilizam os recursos do sistema computadorizado hospedeiro para armazenar e executar os seus pacotes de software. Com os sistemas Software RAID podemos utilizar dispositivos de armazenamento já existentes para formar o array RAID. Quer isto dizer que se pode atingir enorme protecção sobre os dados porque os discos membros do array RAID podem dividirse por múltiplos dispositivos de armazenamento ou por múltiplos computadores hospedeiros. Esta utilização de recursos já existentes é mais económica do que uma solução Hardware RAID mas pode afectar as características de desempenho do sistema. 48 INESC Infra-estruturas e gestão dos sistemas de informação 3.3 Programação e scripting do servidor Tem-se assistido nestes últimos meses a uma tremenda explosão nas tecnologias de suporte da WWW. O desenvolvimento mais significativo terá sido a capacidade de ampliar as capacidades de um servidor Web através de scripts e programas específicos. Estas extensões proporcionam aos utilizadores da Web a consulta de dados de empresas, fazer encomendas e obter informação sobre o seu estado e outras operações que a Web por si só não permite. Quer isto dizer que para além de servir documentos, o servidor Web possui capacidades para processar os documentos que serve, e para executar comandos contidos em documentos enquanto os envia para o browser. Isto pode envolver a chamada a um script, a inclusão de um ficheiro, a inserção de uma data ou outra string de formatação ou a execução de um programa, a partir de qualquer ponto de um ficheiro HTML. O servidor torna-se num intermediário entre o browser e o script de extensão. Este script processa as consultas do utilizador e gera resultados, que são posteriormente enviados para o browser pelo servidor Web. Desta forma, o site Web consegue produzir dados dinâmicos ao mesmo tempo que serve os tradicionais documentos estáticos. 3.3.1 Tecnologias Actualmente existem quatro tipos de tecnologias para ampliar os servidores Web com funcionalidades dinâmicas: • SSI (Server-Side Includes) e a mais recente SSI+: o documento contem marcas especiais e o servidor substitui as marcas com dados dinâmicos à medida que o documento é enviado para o browser. A tecnologia SSI fornece directivas que podem ser introduzidas em documentos HTML por forma a executar outros programas ou produzir saídas de dados tais como variáveis de ambiente ou estatísticas. Quando o cliente pede um documento a um servidor SSI, este servidor realiza o parsing do documento especificado e retorna-o. • SSS (Server-Side Scripting): Uma nova variação do SSI em que o documento contém um script embebido que é executado pelo servidor, sendo os resultados inseridos no documento à medida que este é enviado para o browser. • CGI (Common Gateway Interface): O servidor executa um programa externo que gera o documento completo, que é posteriormente enviado para o browser. Os scripts CGI também são capazes de processar formulários de dados enviados pelo browser para o servidor. • API (Application Programming Interface): O código é carregado e fica residente juntamente com o servidor de modo a ampliar as suas capacidades. As extensões API possuem mais capacidades do que os scripts CGI. Cada uma destas tecnologias possui os seus pontos fortes e as suas fraquezas. Por isso, cada uma será mais adequada para criar certos tipos de extensões ao servidor Web. Se definirmos um conjunto de características comuns às quatro tecnologias, podemos comparar as várias técnicas e concluir sobre a sua utilidade e domínio de aplicação. 49 INESC Infra-estruturas e gestão dos sistemas de informação As características definidas no âmbito deste relatório para a comparação das quatro tecnologias mencionadas foram as seguintes: • • • • • • • Flexibilidade e potencial, Conhecimentos necessários para o desenvolvimento, Ciclo de desenvolvimento e teste, Capacidade de adaptação a alterações, Custos, Risco operacional, Overhead gerado no CPU. 3.3.1.1 Flexibilidade e potencial Dado que o SSI é um mecanismo de substituição em que o texto é inserido num documento em locais específicos, esta técnica possui a flexibilidade mais baixa de todas as tecnologias. Algumas implementações do SSI possuem algumas capacidades de decisão lógica, mas nenhuma delas consegue atingir o potencial oferecido pelas linguagens de programação. O SSS amplia o conceito do SSI ao permitir que os scripts sejam inseridos no documento. No entanto, as linguagens de script são necessariamente limitadas em termos de flexibilidade pois são interpretadas e operam no contexto de um documento. Estas limitações estão patentes nas diferenças entre o VBScript e o VB (Visual Basic) da Microsoft ou entre o JavaScript da Netscape e a linguagem Java. Portanto, podemos concluir que atendendo a que tanto os scripts CGI como as API são implementadas com linguagens de programação, ambas fornecem o maior grau de flexibilidade e um vasto potencial. 3.3.1.2 Conhecimentos necessários para o desenvolvimento Em relação ao nível de conhecimentos técnicos exigido, o SSI é aquele que requer o menor nível além do necessário para escrever páginas HTML. O SSS exige que o programador saiba programar com linguagens de script. Como estas linguagens são limitadas em termos de potencial e âmbito de aplicação, o nível de conhecimentos exigido não é muito elevado. A programação CGI pode ser realizada por intermédio de um grande conjunto de ferramentas bem conhecidas tais como Visual Basic, Delphi, C ou C++ e Perl. Por isso, os conhecimentos exigidos aos programadores para o desenvolvimento SSS ou CGI situam-se ao nível das ferramentas de programação actuais. O desenvolvimento API já exige um nível de conhecimentos de programação que envolvem a familiaridade com técnicas de programação avançadas tais como o multithreading, a sincronização de concorrência, a programação de protocolos de rede e o processamento estruturado de excepções. Por isso, este tipo de programação envolve programadores especializados, e as rotinas de extensão ao servidor só podem ser alteradas e mantidas por eles mesmos. Os custos desta solução são portanto maiores. 3.3.1.3 Ciclo de desenvolvimento e teste O SSI é aquela tecnologia que envolve o menor tempo de desenvolvimento e teste. Este desenvolvimento consiste da inserção de marcas em documentos HTML que posteriormente são 50 INESC Infra-estruturas e gestão dos sistemas de informação preenchidas pelo servidor com dados provenientes de outras fontes. O desenvolvimento SSS e CGI pode variar dependendo da complexidade da tarefa a ser executada. Os scripts SSS tendem a ser relativamente pequenos em dimensão, mas não podem ser testados off-line, o que aumenta a duração da fase de teste e acrescenta complexidade aos testes necessários. Os programas CGI tendem a ser mais complexos, mas podem ser testados off-line, de uma forma totalmente independente do servidor. Os testes CGI podem, por isso, ser realizados com rapidez. As extensões SSS e CGI são programas separados e, por isso, não afectam o funcionamento normal do servidor, ou seja, a falha de um script SSS ou CGI não é maligna do ponto de vista do servidor. As extensões API exigem um processo de teste mais rigoroso já que são mapeadas no espaço de memória do servidor e podem corromper os dados internos do servidor. Antes de se instalar uma extensão API num servidor deve-se pois testá-la com todo o pormenor para assegurar que não criará crashes no servidor. Portanto, podemos concluir que as extensões API são aquelas que exigem o maior intervalo de tempo quer em termos de desenvolvimento quer de teste. 3.3.1.4 Capacidade de adaptação a alterações A maioria das extensões Web comerciais são desenvolvidas por forma a melhorar um negócio e implementam regras de negócio. A capacidade de adaptação a alterações nas condições negociais é um aspecto muito importante. Neste contexto, as extensões SSI são, pela sua própria natureza, fáceis de ajustar à medida que as condições se alteram. Os scripts SSS e as extensões CGI podem ser desenvolvidos utilizando os mesmos sistemas de programação que são utilizados para desenvolver outras aplicações usadas nas empresas. Por isso, ambos facilitam o processo de manutenção e alteração das extensões Web de modo a ajustar as existentes a novas condições. As extensões API exigem geralmente a contratação de programadores especializados. Quando acaba o contrato, os programadores deixam a aplicação "congelada" até que voltem e podem não estar disponíveis sempre que necessário. De igual modo, este tipo de pessoas não conhece as operações realizadas numa empresa particular, nem as áreas em que a empresa deseja ganhar vantagem competitiva. Por fim, o ciclo de desenvolvimento e teste é mais longo, já que as extensões alteradas devem ser novamente validadas. Por tudo isto, podemos concluir que as extensões API são as menos adaptáveis a alterações nas condições de funcionamento. 3.3.1.5 Custos As extensões SSI possuem os menores custos já que exigem pouca programação, o índice mais baixo de conhecimentos e ajustam-se com maior facilidade a alterações nas condições de funcionamento. A seguir, os scripts SSS e as extensões CGI podem ser eficientes em termos de custos caso sejam desenvolvidas num curto espaço de tempo e por pessoas com conhecimentos sobre o modus operandi da empresa alvo. Como estas duas tecnologias não colocam em risco a operação do servidor Web, não necessitam de testes à segurança de operação do servidor. As extensões API possuem os custos mais elevados pois exigem programadores especializados (e caros), ao mesmo tempo que consomem um intervalo de tempo alargado para alterações de manutenção e exigem muitas iterações antes de se encontrarem em funcionamento normal. 51 INESC Infra-estruturas e gestão dos sistemas de informação 3.3.1.6 Risco Operacional As extensões SSI e CGI possuem o menor risco operacional. No caso das extensões SSI apenas se coloca o problema de funcionarem ou não. No caso das extensões SSS e CGI, podem existir bugs de programação que evitem o seu funcionamento. Para além disso, os scripts SSS já constituem uma tecnologia muito recente e, por vezes, dependem de novas funções introduzidas no sistema operativo, pelo que possuem o risco adicional de ocorrência de falhas. Se o motor SSS (SSS engine) operar como uma extensão API, uma falha deste motor pode deixar em baixo todo o servidor. Tal como foi dito, as extensões API podem falhar de um modo que causa um crash em todo o servidor. Contudo, algumas APIs possuem um mecanismo de segurança que protege o servidor contra certos tipos de falhas. No entanto, se a extensão API tentar escrever no espaço de dados privado do servidor (o que pode acontecer naturalmente), causará com toda a certeza um crash fatal no servidor. 3.3.1.7 Overhead gerado no CPU Por ovehead gerado no CPU entende-se o overhead associado com o mecanismo de extensão, e não o overhead associado com a execução da tarefa, já que este último pode variar consideravelmente. A tecnologia SSI é aquela que coloca o menor overhead no CPU, apesar deste ser moderado, já que é necessário pesquisar todo o documento HTML, procurando marcas de inserção e inserindo os dados dinâmicos em cada um destes pontos. Se o servidor não guardar o fluxo de dados final num buffer intermédio, o overhead pode ser bastante elevado e a eficiência de transmissão na rede pode ser muito baixa. Os scripts SSS são, como vimos, interpretados e não compilados. Por isso, se os compararmos com um programa compilado, o overhead é mais elevado. De igual modo, o motor de scripting deve ser inicializado antes do processo de interpretação se iniciar. Por exemplo, no caso do servidor Active X Server da Microsoft, os motores são objectos COM (Component Object Model) que devem ser instanciados utilizando o mecanismo de OLE (Object Linking and Embedding). O desempenho de tais motores de scripting depende da quantidade de memória RAM existente no sistema, que deve ser de forma a evitar um excesso de page faulting. O overhead de arranque das extensões SSS pode não ser tão elevado como o verificado para os scripts CGI, mas o overhead associado à execução é mais elevado do que aquele que está associado aos programas compilados. Por estes motivos, podemos concluir que o overhead associado às extensões SSS é elevado. Por outro lado, a tecnologia CGI possui um overhead que é relativamente elevado, já que o programa deve ser executado sempre que se recebe um pedido CGI. No entanto, este overhead não é tão elevado quanto possa parecer, diminuindo se o programa for acedido com frequência e o seu código existir na memória cache do disco. Tal como no caso dos scripts SSS, este nível de desempenho depende da quantidade de memória RAM existente no sistema. As extensões API são aquelas que apresentam o menor overhead pois são executadas no mesmo contexto do servidor. No entanto, o desempenho está, de novo, dependente da existência de uma quantidade suficiente de memória RAM no sistema. Se tal não acontecer, as extensões API (tal como o próprio servidor e todas as aplicações que estejam a ser executadas) irão disputar os recursos físicos de memória até ao último bit disponível. Atendendo a que uma extensão API é ligeiramente 52 INESC Infra-estruturas e gestão dos sistemas de informação mais pequena em termos de dimensão e espaço ocupado em memória do que um script CGI equivalente, podemos concluir que a tecnologia API é menos intensiva em termos de memória RAM. 3.3.2 Soluções comerciais As metodologias utilizadas actualmente pelos grandes fornecedores de soluções para a WWW diferem pouco entre si, mas contêm aspectos que devem ser analisados e ponderados antes de se proceder a uma escolha de tecnologias para os futuros servidores de vídeo da Mediateca. Assim, analisamos neste relatório as metodologias alternativas utilizadas nas soluções propostas pelas Microsoft, Netscape e Oracle para o scripting do servidor. 3.3.2.1 Active Server Pages (ASP) da Microsoft A tecnologia ASP (Active Server Pages), introduzida no IIS (Internet Information Server) da Microsoft permite combinar Active X Scripts com Active X Server Components, facilitando a criação de conteúdos dinâmicos e de novas aplicações baseadas na WWW. A tecnologia ASP possibilita o desenvolvimento de páginas e aplicações Web baseadas em componentes utilizando várias linguagens de programação, incluindo o JScript e o VBScript, e proporciona um ambiente aberto para o desenvolvimento, ao mesmo tempo que permite a construção de soluções Web independentes do tipo de browser. Esta tecnologia destina-se ao desenvolvimento de soluções para Intranets e para a Internet, e baseia-se numa plataforma constituída pelo IIS 3.0 que corre sobre um servidor Windows NT 4.0 e que tira partido da API do Microsoft Internet Server (ISAPI). A tecnologia ASP possibilita o desenvolvimento de páginas HTML contendo scripts embebidos. Estes scripts podem referenciar componentes que correm num servidor local, através do modelo COM (Component Object Model), ou num qualquer servidor, através do modelo DCOM (Distributed Component Object Model). Por sua vez, estes componentes facilitam o acesso a bases de dados, permitem executar aplicações ou processam informação. Quando o browser pede um ficheiro ASP, este é processado pelo servidor e a página resultante é retornada ao cliente sob a forma de uma página HTML. Uma característica importante da tecnologia ASP é a facilidade de criação de aplicações Web utilizando qualquer linguagem de script. Esta tecnologia é compatível com qualquer linguagem de script Active X e inclui suporte nativo para VBScript (Visual Basic Scripting Language) e JScript (Java Script Language). O VB Script é um subconjunto da linguagem Visual Basic da Microsoft. O JScript é a versão Microsoft do JavaScript desenvolvido pela Netscape e apresenta poucas diferenças em relação a esta. Ambas as linguagens de script se orientam especificamente para a Internet. Como tal, são implementadas sob a forma de um interpretador rápido, portável e leve que é utilizado nos browsers Web ou noutras aplicações que utilizem controlos Active X, servidores de automação OLE e applets Java. Este interpretador processa código fonte embebido directamente em documentos HTML. No entanto, nem o JScript nem o VBScript produzem applets stand-alone, mas utilizam-se sobretudo para adicionar interactividade e “inteligência” a documentos HTML. 53 INESC Infra-estruturas e gestão dos sistemas de informação O suporte ASP para outras linguagens, tais como REXX, Perl ou Tcl, é fornecido por intermédio de plug-ins desenvolvidos por terceiros. É ainda possível a utilização de várias linguagens de script no mesmo ficheiro ASP. Os componentes activos do servidor (Active X Server Componentes) podem ser criados com qualquer linguagem de programação, desde Java, VB, ou C++, até ao COBOL e outras. A tecnologia ASP possibilita a activação de páginas Web HTML no servidor, facilitando o desenvolvimento de páginas específicas (custom) e de aplicações simples. As páginas ASP podem ser utilizadas para gerar conteúdos Web personalizados ou específicos para cada utilizador, sem ser necessário recorrer à escrita de scripts CGI em linguagens como Perl ou C. A utilização combinada de scripts e componentes permite separar a programação necessária para aceder a dados contidos em bases de dados ou aplicações, do design e de outros conteúdos de uma página Web. Esta separação entre o conteúdo, a lógica e a apresentação permite o desenvolvimento separado de componentes e layouts HTML, acelerando o processo de criação de páginas e aplicações. Os ficheiros ASP são recompilados dinamicamente sempre que são pedidos e são carregados na memória cache do servidor, o que permite reflectir imediatamente nas páginas enviadas ao browser as alterações entretanto efectuadas. Por fim, visto que a lógica necessária para criar o conteúdo dinâmico pode ser executada no servidor, não é necessário desenvolver especificamente para um dado browser, já que estes “vêm” o conteúdo de um ficheiro ASP como uma página HTML normal. Do ponto de vista da criação e execução de aplicações Web dinâmicas e interactivas, a tecnologia ASP fornece um ambiente de Server Side Scripting (SSS) que permite ao servidor Web a realização do trabalho envolvido na geração de páginas HTML personalizadas. É possível desenvolver várias vistas sobre a mesma informação baseadas na identidade do utilizador, no tipo de browser que está utilizar, os locais que já visitou ou as compras que já efectuou. A tecnologia ASP suporta a utilização da linguagem de script Active X Scripting através dos motores de script. Estes motores são os objectos COM que processam os scripts. A utilização de outras linguagens é possível se atendermos ao facto de os scripts desenvolvidos serem sempre executados do lado do servidor e nunca do lado do cliente. A utilização simultânea na mesma página HTML de vários scripts escritos em várias linguagens diferentes faz-se identificando as diferentes sequências por meio de um tag que designa a linguagem utilizada para a sequência que se segue. 3.3.2.2 LiveWire da Netscape A proposta da Netscape baseia-se na sua linguagem de script baseada em objectos JavaScript destinada a aplicações cliente e servidor. Existem dois tipos de JavaScript: o Navigator JavaScript (client-side JavaScript) e o LiveWire JavaScript (server-side JavaScript). No contexto deste relatório, estamos interessados em analisar este segundo tipo, já que é o que permite a criação de aplicações baseadas no servidor. O LiveWire é um ambiente de desenvolvimento de aplicações que utiliza o JavaScript para a criação de aplicações residentes no servidor semelhantes aos programas CGI. Ao contrário das aplicações Navigator JavaScript, as aplicações LiveWire JavaScript são compiladas em ficheiros binários executáveis. Estes executáveis são executados por um servidor Netscape que possui extensões LiveWire. Estas extensões geram documentos HTML dinamicamente que são enviados pelo servidor ao browser cliente, onde os resultados são apresentados. O LiveWire JavaScript é integrado directamente nas páginas HTML, ao contrário dos programas CGI, o que facilita e acelera o desenvolvimento e a manutenção. Para além disso, o LiveWire JavaScript contém uma infra- 54 INESC Infra-estruturas e gestão dos sistemas de informação estrutura de objectos que pode ser utilizada para manter dados e fornece ainda objectos e métodos para o acesso a bases de dados que funcionam como interfaces para os servidores de bases de dados SQL. O LiveWire, que também existe em versão Pro, é uma ferramenta visual que foi concebida para a gestão de sites Web e para a criação de aplicações dinâmicas, destina-se ao Windows NT e ao Windows 95 e inclui os seguintes componentes: • o Netscape Navigator Gold - o browser ou cliente Web que permite, para além da navegação, a criação e a edição de documentos HTML, applets Java, e scripts JavaScript; • o LiveWire Site Manager - uma ferramenta visual para a criação e manutenção de sites Web; • o LiveWire JavaScript Compiler - um compilador para o desenvolvimento rápido de aplicações client-side e, sobretudo, server-side utilizando a linguagem JavaScript. Estas aplicações podem ser compiladas e executadas por servidores Web tais como o Netscape Fast Track, o Enterprise e o mais novo SuiteSpot cujas capacidades para executar código Java Script compilado facilitam a criação de páginas HTML dinâmicas; • a LiveWire Database Conectivity Library - uma biblioteca que permite aos browsers Web terem capacidades de pesquisa, consulta e actualização de bases de dados relacionais sobre a Internet (ou numa Intranet). Esta biblioteca permite o estabelecimento de ligações directas SQL a bases de dados Oracle, Sybase, Informix e Illustra, fornecendo suporte nativo para ligações cliente-servidor a estas bases de dados, para além de facilitar ligações ODBC a outras bases de dados (tais como o Microsoft Access, o Borland Paradox e o IBM DB2) através de drivers ODBC; 3.3.2.3 WebServer 3.0 da Oracle O WebServer 3.0 da Oracle apoia-se na infraestrutura da arquitectura NCA (Network Computing Architecture) e proporciona um servidor de aplicações que estabelece e aplica as bases de uma arquitectura aberta e escalável que suporta várias aplicações e normas tais como o Java, o CORBA e o X/Open. Para além disso, é uma arquitectura que unifica o paradigma cliente/servidor com a Web, estabelece uma ponte entre várias arquitecturas de objectos e unifica várias APIs para servidores Web. O Oracle WebServer 3.0 inclui o Web Request Broker (WRB) que suporta cartridges para programas baseados em HTTP/HTML. Para além disso, fornece os serviços de um ORB (Object Request Broker), que obedece aos princípios fundamentais do CORBA, a cartridges Web, com o objectivo da integração entre as aplicações baseadas na Web e baseadas em objectos. O WebServer inclui um servidor HTTP robusto, mas o coração do produto é o WRB, um mecanismo rápido para despachar, balancear e adicionar extensões ao servidor. O WRB foi construído sobre uma arquitectura multithreaded e multiprocesso por forma a executar todas as extensões sob a forma de processos individuais fornecendo um maior grau de independência entre processos assíncronos. Por outro lado, a arquitectura baseada em cartridges proporciona a subdivisão de aplicações, o balanceamento da carga do servidor e a separação entre processos. As cartridges podem ser executadas ou terminadas dependendo da carga do servidor e das necessidades das aplicações. 55 INESC Infra-estruturas e gestão dos sistemas de informação Os serviços fornecidos pelas cartridges dividem-se pelas seguintes categorias: • a cartridge Java, um motor Java completamente integrado no servidor que inclui classes para procedimentos PL/SQL e fornece acesso nativo ao Oracle7; • a cartridge PL/SQL, a implementação Oracle da linguagem SQL que permite o desenvolvimento de páginas dinâmicas. Os procedimentos PL/SQL da bases de dados possuem capacidades para gerar páginas Web dinâmicas através do PL/SQL toolkit que mapeia os tags HTML em funções PL/SQL; • a cartridge LiveHTML, que é a implementação Oracle do SSI (Server Side Includes) e proporciona um método para a inserção ou inclusão de documentos externos ou resultados de programas numa página HTML estática. Esta cartridge suporta a funcionalidade InterCartridge Exchange que permite a inclusão de resultados produzidos por várias cartridges (e.g. Java, SQL, PL/SQL e Perl) em páginas HTML estáticas; • a cartridge ODBC, que facilita o acesso a outras bases de dados através do ODBC (Open DataBase Connectivity), o que permite a inclusão de dados locais e remotos numa aplicação através da invocação da cartridge ODBC; • a cartridge Perl, que permite a utilização de código Perl na arquitectura WRB. 3.4 Comércio Electrónico O comércio electrónico é uma nova metodologia para o negócio que contempla as necessidades de organizações, empresas, comerciantes e consumidores em termos de redução de custos e de melhoria da qualidade de produtos e serviços e aumentando a rapidez de entrega. Esta noção também se aplica à utilização de redes de comunicações para a realização de pesquisas e obtenção de informação de apoio à decisão. De acordo com esta noção, o comércio electrónico abrange não só as transacções comerciais com troca de fundos como a obtenção de informação crítica e utiliza tecnologias tão variadas como redes de comunicações e vários dispositivos e infra-estruturas tais como os PCs, os quiosques multimédia, a Internet e a WWW e ainda o Video On Demand. O comércio electrónico tem-se generalizado bastante nos últimos anos. Passou-se de uma situação em que as transacções se baseavam na presença física para as transacções virtuais, sem a intervenção humana. Este tipo de comércio baseia-se em redes on-line e surge com a explosão dos serviços online, que tem conduzido a que um número crescente de empresas disponibilizem os seus serviços e produtos, aproveitando assim as potencialidades fornecidas pela Internet. Passou a ser possível a criação de verdadeiros centros comerciais virtuais (cybermall), a prestação de serviços pagos por assinatura e ainda de pagamentos no acto da compra [35]. 56 INESC Infra-estruturas e gestão dos sistemas de informação Os objectivos principais do comércio electrónico incluem: • o crescimento de oportunidades de negócio devido à exposição a um maior número de clientes, • a redução dos custos, • a rapidez na resposta, • o melhoramento da qualidade dos serviços fornecidos. 3.4.1 Comércio electrónico orientado para os consumidores (consumer-to-business) Neste contexto, a grande questão que se coloca está relacionada com os meios de pagamento. No caso da Internet, o pagamento com cartão de crédito exige um grau de confidencialidade (ou segurança) acrescido, uma vez que existem potencialmente mais pessoas susceptíveis de interceptar uma transacção efectuada via rede. Para resolver este problema, têm surgido ultimamente vários esforços com o objectivo de definir uma norma de pagamento seguro na Internet. O volume de transacções na Internet deverá atingir os 165 biliões de dólares em finais do século, e é na Internet que assistimos à implementação de grandes projectos de pagamento dotados de segurança. No entanto, o comércio electrónico começou a despontar com o surgimento da World Wide Web. Com efeito, é tentador associar às apresentações interessantes de produtos e serviços realizadas através de páginas WWW a possibilidade de os adquirir. A WWW transformou-se assim num suporte, tal como o é o papel para os catálogos de vendas por correspondência. Torna-se então necessário definir um meio seguro de transmitir ao vendedor o número do cartão de crédito. As tecnologias SSL (Secure Socket Layer) e S-HTTP (secure hypertext transfer protocol) foram as primeiras a surgir com o objectivo de tornar seguras as trocas de informação, isto é, as transacções realizadas com base na Web. O SSL é um protocolo aberto, definido pela Netscape, que foi proposto ao W3C (World Wide Web Consortium) para que fosse adoptado como norma. Obteve uma resposta favorável da maior parte das empresas que desenvolvem servidores Web e a Microsoft integrou-o no seu Internet Information Server. O princípio de funcionamento do SLL baseia-se no algoritmo RSA (Rivest Shamir Adleman) com chave pública, que constitui actualmente um dos processos mais seguros. No entanto, dado que a legislação norte-americana não autoriza a exportação de produtos que utilizem os recentes avanços em tecnologias e algoritmos de encriptação (ou cifra), as versões encontradas fora dos estados Unidos são muito menos resistentes a ataques de hackers visto que se encontram limitadas a uma chave RC4 de 40 bits (em vez dos mais recentes 128 bits). O SSL permite encriptar o conteúdo de um formulário por forma a possibilitar a transmissão de um número de cartão de crédito com toda a segurança. Todavia, é necessário confiar numa chave mais antiga e potencialmente menos segura. Contudo, na realidade, a capacidade de cálculo necessária para quebrar mesmo esta chave menos segura é superior ao ganho que se poderia esperar com a intercepção de alguns números de cartões de crédito. O S-HTTP baseia-se exactamente no mesmo princípio, isto é, permite transmitir formulários de forma segura através da WWW e, por conseguinte, efectuar pagamentos por meio de cartões de 57 INESC Infra-estruturas e gestão dos sistemas de informação crédito. Este protocolo foi desenvolvido pela EIT (Enterprise Integration Technologies) e é semelhante, em essência, ao SSL. O S-HTTP também se baseia no algoritmo RSA e foi igualmente proposto como norma junto do W3C. É possível que, a prazo, alguma destas tecnologias se imponha ou mesmo que se consiga um compromisso entre ambas. No entanto, ambas se contentam com tornar segura a transferência de um número de cartão de crédito, sem contemplarem qualquer outra forma de procedimento. Por este motivo, nenhuma das duas se presta ao comércio electrónico quando pensamos em soluções susceptíveis de garantir o bom desenrolar de uma transacção. A primeira iniciativa neste sentido surgiu por parte da VISA e da Mastercard, que se associaram com a finalidade de definir um protocolo normalizado - o SET (Secure Electronic Transaction). O objectivo principal do SET é permitir a utilização de cartões de crédito na Internet. Para isso, assegura, entre outro, os seguintes aspectos relacionados com a transacção: • a confidencialidade da informação, • a integridade dos dados transmitidos, • a autenticação da conta do portador do cartão, • a autenticação do comerciante, • a interoperabilidade entre diferentes plataformas. Esta norma vai, portanto, mais além do que o SSL e do S-HTTP, pois permite não só a segurança de transacções através de um cartão de crédito VISA ou Mastercard, mas também garante a validação do cartão junto do comerciante. Esta norma conta com a participação da IBM, da Microsoft, da Netscape, da Terisa Systems e da GTE, entre outras, no seu desenvolvimento. Existe actualmente uma outra tecnologia que envolve um tipo de abordagem distinta destas tecnologias analisadas até ao momento: a tecnologia Virtual PIN desenvolvida pela First Virtual e disponível desde março de 1994. O seu princípio de funcionamento é bastante simples e possui o mérito de ser bastante segura. De acordo com esta técnica, o número do cartão de crédito nunca é transmitido através da rede, e apenas surge uma vez quando a conta é aberta pelo utilizador. Em troca, o cliente recebe um Virtual PIN (equivalente ao PIN do cartão bancário) que lhe permite fazer compras na Internet. Este tipo de transacções deve obrigatoriamente ser confirmado por correio e o pagamento é posteriormente realizado com base nas redes tradicionais de cartões bancários. Uma outra forma ainda de comércio electrónico on-line apresenta-nos o conceito inovador do portamoedas electrónico. Neste domínio, o consórcio Commerce Net (um consórcio industrial de empresas e organizações surgido em Abril de 1994 com o objectivo de acelerar o crescimento do comércio electrónico na Internet e criar oportunidades de negócio para os seus membros, abarcando já quinhentas empresas das mais diversas áreas, e em crescimento contínuo) adoptou duas tecnologias com o objectivo de definir uma norma: as soluções da Cybercash e da GC Tech. O sistema Globe ID da empresa francesa GC Tech foi adoptado pelo centro de comércio Globe Online que propôs a possibilidade de compra on-line de produtos e jornais, nomeadamente o Libération e o La Tribune. O princípio de funcionamento também é, essencialmente, bastante simples: o utilizador deve apenas abrir uma conta num banco que disponibilize esta solução e 58 INESC Infra-estruturas e gestão dos sistemas de informação telecarregar o software do porta-moedas electrónico. A partir deste ponto, poderá retirar dinheiro da sua conta existente nesse banco para pagar um serviço ou um produto disponível num servidor que aceite este tipo de transacção. A segurança desta transacção é assegurada por meio de um algoritmo de encriptação e a autenticação é assegurada por um servidor que serve de intermediário e que controla os seguintes aspectos: • a validade da transacção, • a identidade do portador do porta-moedas e • a identidade do comerciante. A Cybercash é, por enquanto, a única empresa a ter obtido uma autorização de exploração de um produto de encriptação norte-americano que utiliza chaves RSA de 1024 bits (sistema de chave pública) e DES de 56 bits (sistema de criptografia de chave secreta), assegurando assim uma solução extremamente robusta [33]. Tal como no caso anterior, esta chave utiliza-se juntamente com uma aplicação de software independente que funciona como porta-moedas: o Cybercash Wallet. A oferta da Cybercash está disponível em três versões: • o Secure Card Transport para o débito e crédito de cartões bancários, • o Secure Money Messaging para o pagamento de somas elevadas e • o Secure Micropayments para pequenas somas (designadas por micropagamentos). O primeiro destes produtos encontra-se já em funcionamento e permite realizar pagamentos com um cartão bancário através da rede. O segundo, designado por dinheiro electrónico, ainda não foi passado à realidade. O último aspecto é particularmente importante, uma vez que representa um dos principais trunfos do porta-moedas electrónico na perspectiva das instituições bancárias. Com efeito, o pagamento através de cartões bancários de pequenas somas é uma operação que pode custar mais do que o montante que envolve. Com o surgimento do comércio electrónico passa a ser possível facturar um artigo ou uma pesquisa de informação na Internet por somas irrisórias, algo que seria impensável concretizar até ao presente. Esta solução da Cybercash foi adoptada pela Digital para ser integrada na sua gama de produtos Internet. Uma terceira oferta na área dos porta-moedas electrónicos é o produto da Digicash, que propõe um sistema muito próximo das soluções da GC Tech e da Cybercash. A grande diferença provém do facto de que, uma vez efectuado o levantamento de ciberquantias de um banco electrónico, estas comportam-se exactamente como verdadeiras notas. Por outras palavras, não existe qualquer referência quanto ao proprietário desse dinheiro virtual (também designado por Digital Cash - uma implementação de Electronic Tokens, Electronic Money ou ainda Electronic Cash). É possível, portanto, realizar qualquer tipo de transacção de forma totalmente anónima. No entanto, este aspecto coloca um problema, já que equivale a uma criação de dinheiro, pelo que, se este processo for adoptado em larga escala, poderá conduzir a uma verdadeira economia paralela com base na Internet, algo de que nunca ninguém ouviu ainda falar. Daí a vontade de alguns actores em chegar muito rapidamente a um consenso em torno das tecnologias da GC Tech e da Cybercash. Do que ficou dito até aqui, pode concluir-se que o comércio electrónico e a comunicação sobre a Internet oferecem um grande potencial de mercado para realizar negócios na actualidade. Muito 59 INESC Infra-estruturas e gestão dos sistemas de informação embora a maior parte do comércio electrónico realizado seja actualmente orientado para o consumidor (consumer oriented), uma grande parte deste mercado envolverá transacções businessto-business. A Internet é, portanto, o meio ideal para o comércio electrónico, oferecendo uma forma barata, flexível e eficiente para negociar e comunicar. Até este ponto analisamos o comércio electrónico do tipo consumer-to-business, mas o maior mercado potencial reside nas transacções business-to-business. A segunda parte desta secção analisa as questões envolvidas neste tipo de comércio electrónico. 3.4.2 Comércio electrónico Business-to-business As transacções business-to-business, que podem envolver milhões de dólares e conter dados extremamente sensíveis, exigem uma infraestrutura de segurança de maior dimensão do que a necessária para transacções com cartões de crédito. Uma das soluções que se colocam neste campo é a constituída pelas VANs (Value-Added Networks), isto é, as redes de valor acrescentado. Este tipo de redes fornece várias vantagens que incluem a transferência rápida de grandes quantidades de dados sobre uma rede segura. No entanto, as VANs são limitadas sob alguns aspectos. Em primeiro lugar, são soluções proprietárias que restringem os utilizadores a plataformas de hardware e software específicas. Por outro lado, necessitam de ligações dial-up ou de linhas de telefone dedicadas, o que pode tornar-se rapidamente numa solução muito onerosa. Por fim, as empresas que precisarem de realizar transacções têm que pertencer à mesma VAN. Estes aspectos, entre outros, levam-nos a concluir que as VANs, embora proporcionando uma plataforma segura para o comércio electrónico, podem limitar bastante as empresas em termos de escolha de parceiros comerciais e da forma como podem realizar transacções comerciais. Quando comparada com as VANs, uma solução baseada na Internet apresenta, à partida, várias vantagens: • acesso mais barato a informação de empresas, • constitui uma solução mais flexível e extensível (encoraja o aumento do número de parceiros comerciais), • o fluxo de informação é aberto, isto é, um sistema baseado na Internet é aberto e baseia-se em normas, pelo que a informação é acessível a um grande número de aplicações diferentes. As questões que se colocam situam-se, mais uma vez, ao nível da segurança. Como a Internet foi concebida para promover a abertura e ignorar a segurança (ou pelo menos ignorar a importância da segurança), este problema tem que ser resolvido pela própria aplicação que utiliza a Internet. Assim, a solução para a segurança do comércio electrónico business-to-business baseia-se em vários componentes de hardware e software [36]. 60 INESC Infra-estruturas e gestão dos sistemas de informação Os mecanismos específicos de cada tecnologia podem variar, mas um sistema seguro deve, no mínimo, satisfazer cinco requisitos fundamentais: • Privacidade - possibilidade de encriptar mensagens, • Controlo de acesso - determinando quem possui acesso a um dado sistema ou rede, bem como que tipo e quantidade de informação pode obter, • Autenticação - verificação das identidades dos dois parceiros envolvidos numa transacção, • Integridade - assegurar que os ficheiros ou mensagens não foram alterados enquanto se encontravam em trânsito, • Não repudiação - evitar que um parceiro negue o envio ou a recepção de um ficheiro ou mensagem. 3.4.3 Soluções comerciais As soluções comerciais existentes actualmente incluem o Merchant Server da Microsoft, pertencendo à família de produtos Normandy, o Payment Server da Oracle e as soluções da Cybercash e da GC Tech, mais orientadas para as transacções baseadas em porta-moedas electrónicos. A solução Merchant Server incluída na família de produtos Normandy da Microsoft apresenta um servidor integrado e dedicado ao estabelecimento de transacções comerciais na Internet [34]. Este servidor foi concebido por forma a suportar acessos provenientes dos vários browsers WWW existentes actualmente, e funciona sobre quaisquer plataformas Windows, Macintosh, UNIX, ou outras. As principais características deste servidor incluem: • O Merchant Server foi concebido por forma a suportar várias transacções, clientes e comerciantes. Por este motivo, pode suportar Internet malls (centros comerciais virtuais) e fornecedores de serviços comerciais na Internet, isto é, pode suportar vários Web sites num único servidor. Esta característica contribui para optimizar o investimento em hardware e simplificar a gestão de sistemas sem comprometer a segurança; • O Merchant Server proporciona um grau de independência elevado em relação à plataforma de bases de dados através do ODBC, o que permite aos utilizadores o uso dos seus próprios SGBDs; • As ferramentas incluídas no servidor permitem a gestão automática de informações sobre produtos, a revisão imediata de informações sobre compras e tráfego, a localização de utilizadores e a análise de promoções; • O gerador dinâmico de páginas WWW simplifica e reduz os custos de implementação já que permite criar páginas HTML instantaneamente, incluindo dados provenientes de bases de dados relacionais; 61 INESC Infra-estruturas e gestão dos sistemas de informação • A gestão de promoções permite aos comerciantes a criação rápida de promoções de produtos e a análise dos resultados de promoções realizadas; • Este servidor dispõe ainda de um mecanismo de pesquisa de produtos que facilita a criação rápida de queries ao SQL Server; • O Merchant Server permite aos utilizadores fazerem o download de controlos ActiveX que simplificam e melhoram o processo de compra: a Microsoft Wallet e o Shopping Basket permitem aos utilizadores fazer compras em vários comerciantes e rever as suas compras offline antes de consumarem a transacção. A solução da Oracle pretende fornecer uma tecnologia integrada para o comércio electrónico, incluindo bases de dados, ferramentas e aplicações, e assenta sobre as arquitecturas, plataformas, serviços e aplicações tradicionais da Oracle. A orientação da Oracle, no que diz respeito à Internet em geral, e ao comércio electrónico em particular, tem vindo a definir-se no sentido da Arquitectura de Computação em Rede (Network Computing Architecture). O objectivo principal é suportar a evolução sofrida pela Internet, desde uma biblioteca de documentos até à actual plataforma electrónica de negócio capaz de assegurar a realização de transacções com segurança. Uma das preocupações da Oracle neste domínio é preservar os grandes investimentos já realizados nas plataformas e tecnologias cliente/servidor. A arquitectura de computação distribuída assume-se, segundo a Oracle, como a única infraestrutura cross-platform para o desenvolvimento de aplicações baseadas em objectos e centradas em rede. Por este motivo, constitui a plataforma de software para todos os produtos futuros da Oracle e combina: • os serviços fiáveis do mundo cliente/servidor (segurança dos dados, integridade e suporte para transacções distribuídas), e • a robustez aliada à extensibilidade e possibilidade de reutilização do mundo dos objectos, • com a facilidade de utilização e presença da WWW. A plataforma Oracle para o comércio electrónico assenta pois na infraestrutura constituída pela Arquitectura de Computação Distribuída e engloba o Oracle WebServer, o Web Request Broker (WRB) e o Oracle Universal Server [37]. Tendo como base esta plataforma, a Oracle, juntamente com os seus parceiros, tem desenvolvido implementações de transacções baseadas em cartridges que satisfazem as necessidades do comércio electrónico. O Oracle Payment Server é um exemplo de tais implementações e assenta sobre o Oracle WebServer, que, por sua vez, estabelece a comunicação entre o browser cliente, e o Oracle Universal Server, que fornece serviços de bases de dados às aplicações Web para comércio electrónico da Oracle: o Oracle Web Suppliers e o Oracle Web Customers. O Oracle Payment Server facilita o comércio na Internet através do processamento de transacções monetárias realizadas na Internet. Constitui assim uma plataforma de pagamento para o comércio electrónico que suporta cartões de crédito, cheques electrónicos e micropagamentos, e integra-se completamente com as aplicações cliente/servidor existentes. Duma perspectiva arquitectural, o Payment Server é uma combinação do Oracle WebServer com cartridges específicas que implementam funções de pagamento. Esta aproximação permite-lhe 62 INESC Infra-estruturas e gestão dos sistemas de informação suportar vários mecanismos de pagamento concorrentes (tais como o CyberCash e o VeriFone) e fornece um ambiente aberto de desenvolvimento de aplicações. A versão inicial do Payment Server funciona como um componente fundamental do Project Apollo. O Projecto Apollo é um outro exemplo de uma implementação Oracle baseada em cartridges para o comércio electrónico, nomeadamente o Merchant Server da Oracle para o comércio business-to-consumer na Internet. 3.5. Tecnologias Web TV e Webcasting 3.5.1 Introdução O Internet TV é um serviço Internet para utilização doméstica de televisão. Este serviço utiliza equipamento designado por set-top boxes que faz a ligação do televisor ao serviço através de um modem e de uma linha telefónica. Este serviço proporciona uma interface para o utilizador e utiliza sinais destinados a um televisor. O WebTV foi o primeiro serviço Internet TV que alcançou uma distribuição alargada. O equipamento set-top boxes é constituído por um controlo remoto, um teclado e um modem que permite estabelecer a ligação à home page do WebTV. O Webcasting designa dois tipos de tecnologias emergentes para a transmissão de áudio e vídeo na Internet, baseadas na Web: 1. O primeiro tipo de tecnologia permite enviar programas de rádio e de televisão ou sequências de áudio e vídeo para vários utilizadores Internet em simultâneo e designa-se por Streamed Web Video. 2. O segundo tipo de tecnologia permite enviar informação seleccionada a utilizadores Internet com base em requisitos individuais e obedece ao modelo Server Push. Os parágrafos que se seguem pretendem caracterizar o estado da arte no que diz respeito às tecnologias existentes para o Webcasting, quer em termos de soluções para o streaming quer de soluções para o push de informação audiovisual. 3.5.2 A tecnologia Streamed Web Video on-demand O conceito de Streaming Video designa o processo pelo qual os dados de áudio e vídeo são obtidos em tempo real. Quer isto dizer que a reprodução de sequências de áudio e vídeo inicia-se alguns segundos após o início da recepção dos dados pelo computador cliente, ou seja, deixa de ser necessário aguardar até ao final do processo de download das respectivas sequências de áudio e vídeo. A rapidez com que o processo de reprodução se inicia depende da qualidade da ligação Internet, do tráfego existente e da dimensão do ficheiro que contém a sequência ou fluxo de vídeo seleccionado [30]. 63 INESC Infra-estruturas e gestão dos sistemas de informação As novas tecnologias de streaming video para a Web proporcionam experiências de difusão de áudio e vídeo em tempo real para utilizadores da Internet e de Intranets. Apesar das restrições impostas à largura de banda, das suas limitações e imprevisibilidade, o processo de streaming é viável e está já amplamente divulgado entre os principais fornecedores de conteúdos e Web e junto dos utilizadores da WWW. Em relação aos fornecedores destas tecnologias, a competição entre eles encontra-se no auge e dificulta o processo de escolha e decisão em relação a qualquer um deles. No entanto, é possível apontar um conjunto de critérios de base que facilitem a escolha entre a multiplicidade de soluções existentes e emergentes. Sendo assim, e dependendo das necessidades, seja em termos de visualização ou de criação de vídeo digital, pode-se basear a escolha em três critérios: 1. Facilidade de utilização, 2. Qualidade, 3. Extensibilidade. A Facilidade de utilização está relacionada com a simplicidade de utilização quer em termos de recepção quer em termos de envio dos conteúdos de vídeo. O grau de facilidade da solução de streaming video pode ser avaliado por intermédio de vários factores: • Qual a facilidade de instalação e utilização do software? • Até que ponto é compatível com os formatos normalizados ou mais divulgados de vídeo e protocolos, tais como o RTP (Real Time Protocol) ou o ActiveMovie da Microsoft? • Qual a rapidez do processo de compressão de ficheiros e quais as suas dimensões após a compressão? A Qualidade é um critério subjectivo mas deveras importante. Neste contexto, estamos interessados em avaliar quão aproximada é a qualidade da experiência de áudio e video (streamed) da qualidade de difusão, e, já agora, das necessidades reais. Outro aspecto a ter em conta é a existência de sincronismo entre as pistas de áudio e vídeo. A Extensibilidade é o último critério e está directamente relacionado com o futuro da solução que se pretende escolher: Que serviços adicionais são fornecidos pelo vendedor de uma solução e quais os seus projectos a longo prazo? Quem são os seus parceiros? Estará a empresa bem posicionada para suportar aplicações interactivas avançadas tais como o comércio electrónico, a difusão personalizada e a cooperação? Em qualquer dos casos, o objectivo principal é sempre o de fornecer vídeo com qualidade utilizando larguras de banda muito baixas. Se atendermos a que o vídeo possui dois componentes que afectam o resultado final: a qualidade das tramas individuais e a taxa de apresentação (display rate) dada em fps (frames per second), o desenvolvimento de esquemas de compressão e codificação para a transmissão de vídeo sobre ligações de baixo débito apenas pode contemplar um daqueles dois componentes, já que não é possível enviar tramas de elevada qualidade com uma taxa de apresentação elevada em simultâneo. As soluções apresentadas beneficiam um destes componentes em detrimento do outro. 64 INESC Infra-estruturas e gestão dos sistemas de informação Actualmente, existem vários vendedores de soluções comerciais streaming video dos quais se destacam a VDONet, a VXtreme, a Vivo, a Vosaic, a Progressive Networks e a Xing. No entanto, tal como já se referiu, este é um mercado em evolução e novas soluções emergem e vão substituindo soluções menos capazes. Os parágrafos que se seguem pretendem resumir os aspectos mais importantes de cada solução tecnológica proposta por vários fabricantes, os seus princípios gerais de funcionamento e a sua evolução. 3.5.2.1 VDONet A VDOnet Corporation (www.vdo.net) tem a sua tecnologia implementada em mais de cento e cinquenta (150) sites Web e assume-se como um dos principais fornecedores de soluções interessantes na arena do streaming video para a Web, mantendo relações constantes com a Microsoft.. A título de exemplo, pode referir-se que a norte-americana CBS tem utilizado esta tecnologia no seu site “Up to the minute”. A oferta principal da VDOnet é o VDOLive 2.0, um pacote de produtos cliente-servidor que inclui servidores de vídeo para uma gama alargada de utilizações, desde a captura, digitalização, compressão, distribuição e visualização de vídeo sobre a Internet e Intranets [31]. As tecnologias VDOnet ajustam-se automaticamente à largura de banda disponível (escaláveis) e protegem a integridade do vídeo à medida que este vai sendo transmitido. O VDOLive apenas armazena uma cópia de cada sequência de vídeo que pode ser reproduzida a velocidades variáveis, por forma a contemplar não só os utilizadores que possuem ligações baseadas em modems, como os utilizadores que possuem ligações mais rápidas, maximizando a qualidade do vídeo para cada tipo de ligação. A aproximação da VDONet opta portanto por vídeo full-motion em prejuízo da qualidade das tramas enviadas. 3.5.2.2 VXtreme A VXtreme Inc.(www.vxtreme.com) é outra empresa que mantém relações com a Microsoft, com a Cisco Systems e com a Informix Software por forma a disponibilizar soluções completas de transmissão e gestão de conteúdos para a Web. A oferta da VXtreme designa-se por Web Theater, um pacote de três produtos de software que incluem: o Web Theater Server, o Web Theater Client e o Web Theater Producer. A tecnologia de compressão da VXtreme foi desenvolvida por forma a possibilitar a disponibilização de conteúdos vídeo de elevada qualidade sobre redes de computadores existentes, contemplando a variedade de larguras de banda existentes nestes tipos de redes. Atendendo a que a compressão e a consequente descompressão são processos realizados integralmente por software, não é necessário proceder à actualização (upgrade) de equipamentos existentes. A tecnologia de compressão utilizada baseia-se no protocolo RTP e é igualmente escalável, isto é, adapta-se automaticamente à largura de banda de rede disponível, preservando ao máximo a qualidade das sequências de vídeo. Em termos de evolução, a VXtreme está a ultrapassar rapidamente as meras capacidades de streaming e fornece soluções completas tais como a sua infraestrutura de vídeo LiveScreen que despoleta a reprodução de sequências de vídeo a partir de outras aplicações. Paralelamente, a VXtreme fornece também ferramentas para a gestão de conteúdos, em particular com o suporte para a autoria de vídeo destinada à plataforma NetShow. Esta ferramenta permite aos construtores de 65 INESC Infra-estruturas e gestão dos sistemas de informação aplicações e conteúdos a integração de vídeo com HTML, applets Java e qualquer outra aplicação, através de controlos ActiveX e a partir do ambiente NetShow. Para além disso, esta ferramenta tem capacidades que permitem a produção de vídeo comprimido para disponibilização num servidor NetShow. 3.5.2.3 Vivo Software A Vivo Software (www.vivo.com) propõe o VivoActive, um pacote de software que fornece a flexibilidade do software independente do servidor. A aplicação Vivo Active Producer permite aos administradores Web a adição de conteúdos comprimidos (.viv) através da compressão de formatos amplamente divulgados como o AVI e o MOV e posterior conversão para VIV. O VivoActive utiliza normas de videoconferência tais como a H.623 e a G.723 para compressão de áudio. Mal o ficheiro AVI original se encontre convertido para o formato VIV, o administrador Web apenas necessita de utilizar uma tag HTML < EMBED> para embeber o ficheiro VIVO na página Web fa mesma forma que procederia para embeber um ficheiro GIF ou JPG. Esta capacidade permite ao Vivo Producer um comportamente independente do servidor. 3.5.2.4 Vosaic O Vosaic (que significa Video Mosaic) foi concebido para realizar o streaming de áudio e vídeo de uma forma eficiente sobre redes IP através da implementação de um sistema de processamento de sinal designado por VDP (Video Datagram Protocol). O servidor VOSAIC AV Server utiliza o VDP e é capaz de realizar o streaming de áudio e vídeo full-motion e full-screen em tempo real ao longo da Internet e de Intranets utilizando tecnologia baseada em normas tais como o MPEG1 e 2, o MJPEG, o H.263 para o vídeo e os G.723, GSM, MP2 e MP3 para o áudio. O Vosaic suporta a inclusão de hotspots (ou hot links) sobre o vídeo e inclui um plug-in para o Netscape e um controlo ActiveX para o Internet Explorer. A capacidade de estabelecer hiperligações a partir das sequências de vídeo afasta o Vosaic da concorrência e amplia o alcance dos controlos de vídeo disponíveis na Web para além dos simples play e rewind. 3.5.2.5 Xing O produto StreamWorks da Xing (www.xingtech.com) utiliza vídeo de elevada qualidade com baixos frame rates. Este produto baseia-se no algoritmo de compressão MPEG-1 e permite a criação de sequências de áudio e vídeo com larguras de banda que variam desde 28.8 até 150 Kbps [31]. 3.5.2.6 Progressive Networks O RealVideo da Progressive Networks (www.real.com) é uma solução de vídeo inter-plataforma suportada por vários fabricantes de ferramentas e fornecedores de conteúdos que assenta sobre o protocolo normalizado RTSP para streamed media e permite realizar o streaming de vídeo em Intranets ou na Internet [29]. A qualidade visual e auditiva é mantida pelas tecnologias de compressão para áudio e vídeo utilizadas. Os codecs fmv (full motion video) são escaláveis para todos os bit rates e foram optimizados para as velocidades de ligação prevalecentes actualmente 66 INESC Infra-estruturas e gestão dos sistemas de informação (28.8 e 56 Kbps). A qualidade sonora foi melhorada com a introdução da tecnologia de compressão RealAudio 3.0, e adicionaram-se três novos codecs para bitrates baixos destinados a voz e a música. O RealVideo permite a introdução de interactividade através de inovações tais como mapas de vídeo seleccionáveis (“clicáveis”), sincronização multimédia e plug-ins utilizados por intermédio de scripts. O cliente RealPlayer e o servidor RealVideo proporcionam em conjunto um nível de flexibilidade e fiabilidade elevado. Para tal, utilizam técnicas tais como a negociação de largura de banda, a gestão dinâmica da ligação, a correcção sofisticada de erros e reprodução baseada na criação e manutenção de buffers de memória, o que permite assegurar que o vídeo mantém a qualidade esperada. Em relação à escalabilidade desta tecnologia, observa-se que a sua arquitectura é capaz de servir grandes audiências já que o sevidor RealVideo suporta com eficiência entre 500 a 1000 streams (fluxos de vídeo) em simultâneo. As tecnologias escaláveis que utiliza incluem o protocolo IPMulticasting para evitar o desperdício de largura de banda, os Splitters que permitem criar distribuições hierárquicas de conteúdos transmitidos em tempo real e ainda o Clustering que permite balancear a carga e maximizar o desempenho. A tabela que se apresenta a seguir resume o estado-da-arte em termos das ofertas tecnológicas existentes actualmente e inclui uma referência às páginas Web dos fabricantes destas tecnologias, permitindo um exame mais aprofundado das características particulares fornecidas por cada tecnologia estudada. Empresa VXtreme Vivo Vosaic VDONet OliVR Iterated Systems Xing GeoInteractive InterVu Microsoft Progressive Networks Macromedia URL www.vxtreme.com www.vivo.com www.vosaic.com www.vdo.net www.olivr.com www.iterated.com www.xingtech.com www.emblaze.com www.intervu.com www.microsoft.com/netshow www.real.com www.macromedia.com Produto VXtreme VivoActive VDP VDOLive OliVR ClearVideo StreamWorks Emblaze InterVU ActiveMovie RealAudio e RealVideo Shockwave for Director 3.5.3 A Tecnologia Server Push A maioria dos utilizadores da WWW, visita os sites, lê a sua informação e se estiver interessado faz o download daquilo que quer (Pull). A tecnologia Push faz exactamente o contrário pois baseia-se num sistema, que a pedido dos utilizadores entrega periodicamente informação seleccionada, directamente a um programa cliente, residente no computador do utilizador. Esta tecnologia é o sonho dos publicitários, pois elimina a angústia da espera que os utilizadores visitem os seus sites e possibilita uma atitude mais agressiva na qual a sua informação é distribuída pelos sites dos utilizadores. A tecnologia Push utiliza servidores que entregam a informação, dos fornecedores de 67 INESC Infra-estruturas e gestão dos sistemas de informação conteúdos, directamente aos utilizadores. Este processo de distribuição de informação diminui ou elimina a necessidade de navegar pelos sites da Web à procura dos fornecedores de conteúdos (Pull) e de gerir os bookmarks para os sites desses fornecedores. Esta nova tecnologia Push, para a recolha, selecção e envio de informação através da Internet surgiu no EUA e rapidamente ganhou adeptos, principalmente ao nível da publicidade através da Net. A grande novidade desta tecnologia está na forma como os utilizadores obtêm informação da Web, porque lhes permite recolher a informação sem ter que a procurar de site em site. Os sistemas push permitem a recolha constante de informação sobre temas seleccionados pelo utilizador. Esta informação, criteriosamente seleccionada, é depois passada ao utilizador à medida das suas necessidades. 3.5.3.1 Pointcast Network Actualmente, entre os sistemas Push, destaca-se o Pointcast Network, que consiste num sistema de entrega de informação ao domicílio através da Internet (http://www.pointcast.com/). O processo de recolha de informação passa pela utilização de um programa cliente, que em intervalos regulares comunica com os fornecedores de informação (sobre múltiplos assuntos) e faz download dos conteúdos, que estes disponibilizam. Este serviço é grátis porque a aplicação cliente passa publicidade dos anunciantes que suportam os custos deste serviço. Os fornecedores de informação da Pointcast Network, são sem dúvida de grande qualidade (e.g. CNN, Reuters, Time Magazine, People, Money, Wired, NY Times), o que lhe garante um maior destaque neste tipo de serviço. O PointCast possui, para além das notícias, índices das principais bolsas mundiais, previsões meteorológicas, resultados de lotaria, entre outros. Estes temas são organizados no écran de acordo com as fontes de informação e com os temas abordados. O serviço Pointcast é configurável, na medida em que se podem seleccionar os assuntos sobre os quais pretendemos receber informação e dentro desse assunto podemos seleccionar só os tópicos do interesse do utilizador; por outras palavras, não ficamos obrigados a receber toda a informação (download) sobre um dado tema, porque podemos seleccionar apenas partes da informação sobre esse tema (e.g. podemos seleccionar apenas os índices da bolsa para determinadas empresas e não de todas). O acesso ao serviço é conseguido através de uma aplicação freeware, que é disponibilizada pela Pointcast, e que se assemelha a um browser muito simples. Um serviço deste tipo parece ser muito simples e muito útil, e o domínio de divulgação parece ter tendência a crescer exponencialmente. A principal crítica apontada pelos utilizadores da Pointcast refere-se à falta de informação local, ou seja, à falta de informação local para utilizadores de outros países. Contudo, a Pointcast desenvolveu já uma versão para o mercado Canadiano e prepara outras versões do serviço para novos mercados. Para a Europa foram já desenvolvidos contactos entre os grandes editores Europeus e a Pointcast para o fornecimento deste tipo de serviço, inicialmente previsto para o Reino Unido. Estes serviços começam a incluir também informação proveniente de jornais e fontes de informação locais, para colmatar a falta de informação de contexto puramente local. 68 INESC Infra-estruturas e gestão dos sistemas de informação 3.5.3.2 Marimba Outro sistema que actualmente utiliza a tecnologia Push é o CastaNet (http://www.marimba.com/), que é propriedade da Marimba. Marimba é a marca registada de uma empresa que surgiu no início de 1996. Esta empresa foi fundada por quatro membros da equipa original do Java e pretende desenvolver ferramentas de software e infra-estruturas para a criação de novas aplicações de rede. A CastaNet é a sua nova tecnologia para a distribuição de canais através da Internet e Intranets. Cada canal pode ser uma aplicação Java isolada, uma applet Java ou um site Web. Estes canais são armazenados localmente e podem ser utilizados repetidamente sem que seja necessário recarregá-los sempre que os queremos utilizar. Com o CastaNet Tuner os utilizadores podem subscrever, obter (download) e actualizar os canais de forma eficiente. Uma vez subscritos os canais, estes são actualizados automaticamente (a informação enviada) e podem ser utilizados mesmo quando não estamos ligados a eles (on-line). O CastaNet utiliza um novo protocolo para distribuir e actualizar canais de forma escalável. Com este protocolo é possível distribuir grande quantidade de informação e aplicações multimédia dinâmicas, mesmo sobre ligações lentas. O sucesso e o crescimento explosivo da Internet foi suportado em grande parte pelo correio electrónico (email), que permitiu a permuta de mensagens entre milhões de utilizadores geograficamente dispersos, e pela World Wide Web, que quebrou as barreiras geográficas e permitiu a comunicação global de informação multimédia, de forma relativamente rápida e eficiente. A terceira revolução surge rapidamente com as inovações tecnológicas que utilizam a Internet como plataforma para o desenvolvimento, apresentação e manutenção de aplicações interactivas e conteúdos. É neste conjunto de novas aplicações que se enquadra a família de produtos da Marimba, CastaNet. Estes produtos podem ajudar o utilizador a rentabilizar a Internet como plataforma para as novas aplicações de rede. A CastaNet distribui e mantém aplicações de software e conteúdos dentro de uma organização (Intranet) ou através da Internet, assegurando que os subscritores recebam de forma automática toda a informação mais actualizada. A família de produtos CastaNet inclui 3 componentes principais: • CastaNet Transmitter: é uma aplicação que corre num servidor da rede e que gere a distribuição e manutenção dos canais; • CastaNet Channel: um canal é uma qualquer aplicação (e.g. Aplicações Java, Applets, HTML) ou conteúdo que é distribuído através da Internet ou de uma Intranet pelos CastaNet Transmitters; • CastaNet Tuner: é uma aplicação executada no computador dos clientes e que monitoria, recebe e gere os canais seleccionados pelos subscritores dos canais. A CastaNet suporta todos os passos do ciclo de uma aplicação Internet. Utilizando o CastaNet podemos criar, distribuir e instalar um canal, e depois manter e actualizar esse canal, obter feedback do subscritor do canal e permitir a personalização do canal baseado no tipo de subscritor. Depois de 69 INESC Infra-estruturas e gestão dos sistemas de informação ser criado, o canal é publicado num CastNet Transmitter que é executado num servidor da rede. O Transmitter transmite depois o canal para os Tuners e automaticamente mantém e actualiza a distribuição do conteúdo do canal através da rede. Os criadores dos canais actualizam os canais num local do Transmitter e essas alterações reflectem-se/distribuem-se automaticamente em todos os subscritores dos canais. Os Tuners, que são executados nos PC’s dos clientes, subscrevem um canal da mesma forma que se subscreve uma revista. Quando se pretende subscrever um canal pela primeira vez, o Transmitter envia os ficheiros (aplicações e conteúdos) do canal para o Tuner que automaticamente instala o canal no disco duro local. Os canais podem ser configurados para armazenar informação acerca das preferências do subscritor ou acerca das características dos canais que são mais utilizadas pelos subscritores, e depois essa informação pode ser enviada como feedback dos subscritores para o Transmitter. 70 INESC Conclusão Conclusão Pretendeu-se com este relatório construir somente um estudo actualizado sobre as soluções tecnológicas e arquitecturas possíveis para a implementação de servidores de informação multimédia audiovisual. Na elaboração do relatório pretendeu-se não só fazer uma introdução teórica às tecnologias e soluções técnicas existentes mas também abordar as tendências do mercado quanto às tecnologias emergentes e às implementações concretas já existentes. Sempre que possível foram referidos os produtos comercializados e apontadas as suas vantagens e as suas desvantagens para o tipo de sistema pretendido. Os factores envolvidos na implementação de um servidor multimédia abrange múltiplas áreas tecnológicas, nomeadamente as recentes evoluções do paradigma cliente-servidor, o crescente apoio para redes de alto débito e os avanços tecnológicos verificados nos sistemas magnéticos e ópticos de armazenamento de informação. As soluções actuais apontam para uma arquitectura modular e funcional distribuída dos servidores multimédia, incluindo subsistemas especializados nos domínios do armazenamento, comunicação e gestão de informação. A evolução tecnológica generalizada, actualmente existente nas áreas das telecomunicações e das tecnologias de informação, contribui em muito para a popularização e democratização da comunicação audiovisual. Os desenvolvimentos recentes, tanto ao nível da WWW como dos sistemas multimédia digitais, apontam no sentido crescente da utilização de computadores para processar, combinar e divulgar/publicar informação multimédia. É cada vez maior a utilização de diversos tipos de informação em novas aplicações, tanto por indivíduos isolados como por empresas. A utilização e divulgação destas tecnologias traduz-se normalmente num aumento de produtividade e de competitividade, tanto pela flexibilização dos processos de produção e divulgação como pela diminuição dos tempos de resposta necessários para a obtenção e divulgação de um produto. As soluções possíveis para a implementação de um servidor com as características pretendidas podem passar, como já foi referido no sub-capítulo 1.1, por um sistema comercial completo, por um sistema RAID acoplado a um sistema computadorizado, ou simplesmente por um array de discos acoplado a um servidor simples. Estas soluções diferem fundamentalmente quanto ao preço, à flexibilidade e escalabilidade permitidas, e quanto à fiabilidade pretendida para o sistema. Relativamente aos sistemas de armazenamento de informação, a utilização dos sistemas RAID está a crescer à medida que os administradores aprendem a tecnologia e os seus benefícios. Com redes cada vez maiores, requerendo maiores espaço de armazenamento, com sistemas de armazenamento cada vez com melhores performances, com armazenamento transparente de dados em sistemas distribuídos e novas aplicações multimédia sedentas de memória, estes sistemas RAID vulgarizam-se como soluções de armazenamento. Para sistemas em que é necessária uma disponibilidade total durante 24 horas por dia, 7 dias por semana, a integridade dos dados e a disponibilidade dos mesmos é crucial. Uma solução fiável para o armazenamento poderia basear-se na utilização de um sistema que acoplasse uma solução RAID a um sistema informático Oracle7 + Veritas VxVM (Volume Manager) + VxFS (File System) que permitiria o acesso, pesquisa e leitura de informação em vários volumes de dados, a vários consumidores, com 100% de fiabilidade. As questões que se levantam sempre são: qual o sistema RAID e que nível RAID devemos utilizar? como faço funcionar um sistema RAID com a rede que possuo? A solução que melhor encaixa nas nossas necessidades está certamente na contratação de um expert que analise e melhor integre o nosso sistema e não na compra de caixas de soluções com sistemas fechados e muitas vezes inadaptados ao nosso sistema. 71 INESC Conclusão O RAID0 é outra metodologia de armazenamento com arrays de discos não tolerante a falhas. Estes sistemas utilizam um método mais barato para melhorar a performance de leitura/escrita porque também divide os dados entre múltiplos discos. Este método acelera a transferência da dados em redes com grande número de PCs. Em alguns sistemas começa-se a utilizar uma combinação RAID0+1 que divide os dados utilizando pares espelhados (mirrored) que garante a velocidade necessária para aplicações multimédia tolerante a falhas. Ninguém pode negar que os objectos distribuídos farão parte do futuro. Esta evidência é suportada pelo facto do desenvolvimento de software possuir uma boa parte do seu tempo investido na criação de objectos como parte integral de qualquer solução. Têm surgido várias empresas, na corrida à liderança e promoção das soluções tecnológicas orientadas aos objectos. Actualmente a tecnologia OLE está a crescer, enquanto que as tecnologias SOM, DSOM e OpenDoc estão a tentar penetrar no mercado global. Crê-se que a única solução real capaz de conciliar esta panóplia de tecnologias é fornecida pela norma CORBA (Common Object Request Broker Architecture) do grupo OMG (Object Management Group). Esta norma é uma proposta baseada num consórcio para a interoperacionalidade entre sistemas e baseada num ORB (Object Request Broker) que comunica com muitos tipos de objectos. O Orbix, desenvolvido pela IONA, é a primeira solução a disponibilizar um ORB que suporta completamente a norma CORBA e que corre rapidamente em várias plataformas. O Orbix interopera com OLE2.0, SunSoft DOE e com o SGBD ObjectStore da Object Design. O Orbix corre também em ambientes de tempo-real. A empresa IONA fornece também tecnologia para o desenvolvimento de software que permite o mapeamento de C++ para pedidos ORB. O Orbix corre actualmente em cerca de 20 sistemas operativos a partir de uma única base de código (e.g. em sistemas operativos convencionais: Windows 3.1x, Windows NT, OS/2, Macintosh 7.5, Unix, OpenVMS; e em sistemas operativos de tempo-real: VxWorks, QNX e LynxOS). O Orbix para Windows NT inclui uma poderosa integração, permitindo que as aplicações OLE-enabled invoquem de forma transparente objectos CORBA locais e remotos. A IONA, que é parcialmente comparticipada pela SunSoft Inc, integrou também o Orbix com outros sistemas: o SGBD orientado aos objectos ObjectStore da ODI; a tecnologia de computação distribuída da Isis Distributed Systems e o sistema de processamento de transações on-line da Novel, Tuxedo. Relativamente à segurança de, as aplicações mais recentes na área da segurança informática envolvem novas estratégias de codificação e encriptação: o conceito de firewall, a utilização de processos biométricos em alternativa à password convencional (e.g. avaliação das impressões digitais ou dos perfis faciais dos utilizadores), o recurso à tecnologia de cartões magnéticos multifunções. Aceitando desde já que nenhum sistema informático é completamente seguro, a implementação de níveis de segurança superiores num servidor multimédia será sempre possível e desejável. Em relação ao scripting no servidor e considerando os factores discutidos no sub-capítulo 3.3, podemos então concluir que a única vantagem das extensões API se coloca em termos do overhead do CPU. Em todos os outros aspectos, podemos concluir que as tecnologias SSI, SSS e CGI se adaptam melhor às necessidades actuais dos servidores Web. Por outro lado, as tecnologias SSS são muito recentes e existem novas linguagens de script destinadas à utilização quer do lado do servidor (Server-Side Scripting) quer do cliente (Client-Side Scripting): o JavaScript da Netscape, o JScript e o VBScript da Microsoft, entre outras. Estas três linguagens são todas interpretadas e permitem o scripting dentro de documentos HTML. O JavaScript e o JScript são duas linguagens de programação virtualmente idênticas. Na realidade, o JScript da Microsoft é um clone do JavaScript da Netscape. Ambas as linguagens possuem um sabor a Java, se bem que nenhuma delas é de 72 INESC Conclusão nenhum modo baseada em Java. Ambas são interpretadas directamente a partir do código fonte e permitem o scripting dentro de documentos HTML. Os scripts podem ser executados no browser, isto é, no cliente (situação mais comum), mas também podem ser executados no servidor, antes do documento ser enviado para o browser. A gestão do acesso ao arquivo da Mediateca e da Artec passará pois pela utilização de um SGBD com extensões multimédia. Este sistema deverá proporcionar o acesso à informação através uma rede de comunicação de dados. As soluções propostas pelos maiores fabricantes de SGBDs na actualidade, nomeadamente o Informix Universal Server, o Oracle Universal Server, e o IBM Universal Database, passam pela inclusão de toda a informação na própria base de dados, incluindo os ficheiros HTML que aí estão armazenados e aí são geridos. Esta solução arquitectónica elimina a necessidade de utilização de scripts CGI (para se alterar uma página rapidamente basta aceder à base de dados e alterar as partes pretendidas) e passamos a dispor de um sistema de gestão de bases de dados que integra as novas soluções tecnológicas num ambiente cliente/servidor, incluindo o acesso à Internet (WWW). Relativamente à catalogação de informação, os rápidos avanços das tecnologias estão a ter uma enorme repercussão nos tipos de materiais catalogáveis. Estamos pois num ponto de viragem onde é necessário reexaminar os princípios básicos em que se baseiam as AACR. Está prevista uma conferência em 1997, organizada pelo grupo de revisão conjunto das AACR, para a revisão ou reafirmação dos princípios que estão por detrás das regras de catalogação. Têm surgido opiniões que apontam os modelos conceptuais como uma das ferramentas fundamentais para a revisão das AACR. As novas tecnologias dos Agentes de Interface constituem actualmente uma área de investigação muito activa. A necessidade de uma Arquitectura Unificada para os Agentes está em vias de ser preenchida pela tecnologia Telescript da General Magic. No entanto, a utilização de agentes inteligentes só se generalizará quando os sistemas de pagamento electrónico forem aceites pela comunidade da Internet e quando um número suficiente de utilizadores fizer parte da WWW. Os agentes inteligentes serão utilizados principalmente para a obtenção de informação, e aqui a chave é a aceitação dos utilizadores - é pouco provável que os utilizadores confiem aos seus agentes as suas compras e os seus pagamentos. Em vez disso, os utilizadores recorrerão aos agentes para gerir a informação que facilita a decisão e a compra, pagando por este serviço. Os agentes inteligentes alterarão as formas de trabalho das pessoas mas não a estrutura industrial existente. No contexto deste relatório, os agentes de recuperação de informação (information retrieval agents) surgem com maior relevância na medida em que fornecem ferramentas essenciais aos fornecedores de informação já que, por um lado, facilitam a navegação interactiva sofisticada pelo universo de informação disponibilizado (interactive browsing) e, por outro, permitem a pesquisa e a obtenção inteligentes de informação baseadas em conceitos (intelligent concept-based retrieval). No entanto, a utilização de outros tipos de agentes inteligentes contribuirá para melhorar o serviço a disponibilizar pelos servidores de vídeo. As novas tecnologias de Webcast introduzem na Internet uma evolução rápida no sentido de um meio de comunicação de massa (mass medium). O crescimento explosivo de utilizadores domésticos e empresariais só se equipara ao crescimento da quantidade de conteúdos disponibilizados. Este processo foi possibilitado pela rapidez da evolução técnica que possibilitou a criação de sites mais envolventes e evoluídos. Neste contexto, os streamed media surgem como uma parte importante deste novo meio, acompanhados pela crescente disponibilização de formatos e tecnologias para o streaming de áudio (inicialmente) e vídeo (actualmente) sobre a Web. 73 INESC Conclusão Até há pouco tempo, os formatos para o vídeo existente na Internet cingiam-se aos tradicionais formatos para a disponibilização de vídeo em CD-ROM (e.g. AVI e QuickTime). No entanto, estes formatos não foram concebidos para as larguras de banda da Internet pelo que o processo de obtenção (download) envolve durações em média 10 vezes superiores à dimensão real dos clips, e os clips em si deviam ser bastante curtos (em média entre 20 a 30 segundos). Os novos formatos de disponibilização de vídeo sobre a Internet/Web solucionam estes problemas e acrescentam funcionalidades tais como a possibilidade de criação de conteúdos envolventes e de elevada qualidade respeitando os níveis de largura de banda existentes, a escalabilidade da tecnologia envolvida e uma arquitectura que permite atingir a audiência desejada em condições reais. Os codecs existentes actualmente encontram-se num nível de sofisticação que permite fornecer ao utilizador todas estas características. Em relação às tecnologias Server Push, o PointCast, da I-Server, é a rede de notícias da Internet que difunde informação, nacional e internacional, directamente para o écran dos utilizadores (e.g. cotação das acções da bolsa, produtos industriais, boletins meteorológicos, resultados desportivos, notícias das agências noticiosas). Embora baseados na mesma ideia, mas utilizando paradigmas de distribuição diferentes, surgiram outros difusores Web: o InterMind, o Astound, o BackWeb, o Diffusion, e o CastaNet da Marimba. Deste modelos o mais promissor é o CastaNet da Marimba, mas a Microsoft e a Netscape possuem também planos para o futuro desta tecnologia. O Microsoft Internet Explorer 4.0, previsto para meados de 1997, incluirá já algumas características no componente designado por Active Desktop (AD), que (segundo as descrições) permitirá aos computadores ligados à rede, receber informação enviada para o nosso computador sem que haja necessidade de novo software (http://microsoft.com.ie40.content.webcast.htm). O Problema de todos os serviços Push existentes actualmente resulta da necessidade de software proprietário para aceder a cada serviço em particular. A Microsoft pretende integrar a WWW no próprio sistema operativo Windows95. A Netscape anunciou também o Constelation, que é um produto baseado em Java e que fará parte da futura versão do bowser da Netscape (http://home.netscape.com/newsref/pr/newsrelease294.htm), no próximo verão de 97. A Netscape licenciou o componente que implementa um cliente CastaNet (o Tuner) para o utilizar no Constelation, que permitirá recolher e organizar informação difundida pela rede e permitirá ainda actualizar os dados de sites e emails. O mercado está ainda um pouco confuso e espera-se que a tecnologia da Microsoft ou da Netscape façam crescer estes serviços e normalizem o modelo utilizado. Os utilizadores esperam que estes serviços sejam suportados pela publicidade neles embebidos (como é o caso do PointCast) mas provavelmente não se importarão de pagar pequenas quantias de subscrição por serviços (canais) mais personalizados e orientados a determinadas necessidades específicas dos utilizadores. Relativamente aos recursos humanos necessários para a implementação e futura gestão do funcionamento do sistema de informação multimédia audiovisual, deverá ser levada em linha de conta a complexidade e a constante mutação e evolução das tecnologias utilizadas. Deverão, por estes motivos, ser utilizados quadros superiores especializados em tecnologias multimédia e telecomunicações para gestão, implementação, manutenção e actualização tecnológica. O número de quadros depende em certa medida da dimensão do sistema e do número de serviços que se pretendem disponibilizar e também da quantidade de informação que se pretende publicar e gerir. 74 INESC Bibliografia Bibliografia [1] Jim Gray, Evolution of Data management, IEEE Computer, pp. 38 - 46, October 1996, Vol.29, Nº10 [2] Hot New Database technologies, Datamation, September 1996, Special Report on Database Technologies [3] William. I. Grosky, Multimedia Information Systems, IEEE Multimedia, pp 12 - 24, Spring 1994, Vol.1, Nº1 [4] A. Yoshitaka, S. Kishida, M. Hirakawa, T. Ichikawa, Knowledge Assisted Content-Based Retrieval for Multimedia Databases, IEEE Multimedia, pp.12 - 21, Winter 1994, Vol.1, Nº4 [5] Integração Servidores Web/SGBDs: uma realidade mais próxima da perfeição, Redes, Nº21, Janeiro 1997 [6] Franklin S., Graesser A., Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents, Proceedings of 3ª Workshop on Agent Theories, Archirectures and Languages, Springer-Verlag 96 [7] Horberg J., Talk to my Agent: Software agents in virtual reality, Computer-Mediated Communications Magazine, Vol 2., Number 2, Feb. 1995 [8] Anglo-American Cataloguing Rules 2nd Edition, 1988 Revision. Ottawa: Canadian Library Association; London: Library Association; Chicago: American Library Association, cop.1988. [9] Caplan, Priscilla - Cataloging Internet Resources. The Public-Access Computer Systems Review 4, no. 2 (1993) [10] Milind M. Buddhikot, Guru M. Parulkar, Jerome R. Cox, Jr, “Design of Large Scale Multimedia Storage Server” Journal of Computer Networks & ISDN Systems, [11] Lemos, Laura; Veloso, Lúcia; Paiva, Margarida; Pericão, da Graça Material não livro: uma abordagem da sua problemática. IV Congresso Nacional de Bibliotecários Arquivistas e Documentalistas, Braga 4-6 Março 1992 [12] Architectures for personalized multimedia IEEE Multimedia/Spring 1994/vol.1, nº1 [13] ATM-based multimedia servers IEEE Multimedia/Spring 1995/vol. 2, nº1 [14] Analysing the multimedia Operating System IEEE Multimedia/Spring 1995/vol. 2, nº1 75 INESC Bibliografia [15] Michael Jay Tucker, Windows NT Versus Unix, SunExpert Magazine, May 1996, vol. 7, nº 5 [16] RAID: wasted days, wasted night (Redundant Arrays of Inexpensive Disks) SunExpert, March 1996, Vol. 7 nº3 [17] Tillett, Barbara B., Cataloguing Rules and Conceptual Models. January 1996 [18] James Gemmell, Harrick M. Vin, Dilip D. Kandlur, P. Venkat Rangan, “Multimedia Storage Servers: A Tutorial and Survey” IEEE Computer, 1995 [19] P. Hulme, “Mass Storage: The Options” Xyratex, UK [20] L. Li, “The Future of Media Servers In Broadcasting” A. Hewlett Packard, USA [20] T. Roth, “The Transition to an Integrated Digital Broadcast Environment” ASC Audio Video Corporation, USA [21] B. Goldsmith, R. Adams, “Digital Video Distribution and Transmission” Drake Automation Ltd, England [22] N. Rouse, T. Totsuka, Y. Kato, “FARAD - A Storage System for Random Real-Tie Data” Sony Broadcast & Professional Europe, UK Sony Corporation, Japan [23] A. Schmidt, “Video Disk Recorder and its Applications” Philips BTS, Germany [24] David J. Bancroft, “Standards for Interconnecting Video Servers - Proliferation or Unification” Philips Broadcast Television Systems Ltd, UK [25] William Stallings, “Network and Internetwork Security - Principles and Practice”, IEEE Press [26] Pete Loshin, Tune In, Turn On the Web, Byte, February 1997 76 INESC Bibliografia [27] Amy Cortese, “A Way Out of The Web Maze”, BusinessWeek, February 1997 (http://businessweek.com) [28] David Strom, “The Best of Push”, Web Review, April 1997 (http://webreview.com) [29] Pacific Bell Network, “Real Video Technical White Paper”, March 1997 (http://www.real.com/products/realvideo/overview/index.html) [30] Chris Okon, “Those Streaming Web Video Vendors”, Advanced Imaging, February 1997 [31] Jan Ozer, “Web TV Tunes In”, PC Magazine, March 26, 1997 (http://www8.zdnet.com/pcmag/issues/1506/pcmg0045.htm) [32] ISO/IEC JTC1/SC29/WG11 N1678, “MPEG 7: Contexts and Objectives (v.3)”, Bristol, April 1997 (http://drogo.cselt.stet.it/mpeg/mpeg7.html) [33] Cybercash “Acquiring Internet Transactions”, Financial Services Whitepaper, April 1997 (http://www.cybercash.com/cybercash/wp/bankwp.html) [34] Microsoft “Normandy Merchant Server White Paper”, March 1997 (http://www.microsoft.com/internet/nomrandy_white_paper/paper_merchant.htm) [35] Ludovic Valois “Como pagar as suas compras on-line”, Redes, nº 17, Setembro 1996 [36] Alexander Cavalli “Electronic Commerce over the Internet and the Increasing need for security”, Trade Wave Corporation, December, 1996 (http://andromeda.einet.net/tradewave/products/vpiwp.html) [37] Oracle “Oracle Electronic Commerce Strategy”, March, 1997 (http://www.oracle.com/initiatives/ecommerce/html/ecommerce_wp.html) [38] Michael R. Gensereth “Software Agents”, Stanford University 1994 [39] Charles Rich et al. “An animated on-line community with artificial agents”, IEEE Multimedia, Winter 94 [40] M. Williams et al. “Database systems” (http://www.cee.hw.ac.uk/research/database.html) 77