Servidores Multimédia Digitais



Documentos relacionados
Desenvolvimento Cliente-Servidor 1

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Cláusula 1.º Objecto. Cláusula 2.º Especificação da prestação

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos

Tecnologia PCI express. Introdução. Tecnologia PCI Express

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Profs. Deja e Andrei

Introdução. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006

UFG - Instituto de Informática

Prof. Marcelo Machado Cunha

Redes de Comunicações. Redes de Comunicações

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

ESTUDO DE CASO WINDOWS VISTA

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Soluções de Gestão de Clientes e Impressão Universal

Introdução a Banco de Dados Aula 03. Prof. Silvestri

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Introdução ao Modelos de Duas Camadas Cliente Servidor

Alta Disponibilidade na IPBRICK

Servidores Virtuais. Um servidor à medida da sua empresa, sem investimento nem custos de manutenção.

Um sistema SMS 1 simplificado

Introdução a Computação

Sistemas Operacionais Gerência de Dispositivos

DIRECÇÃO REGIONAL DE EDUCAÇÃO DO ALGARVE Escola Básica Doutor João Lúcio

Curso de Instalação e Gestão de Redes Informáticas

Figura 1 - O computador

Acronis Servidor de Licença. Manual do Utilizador

Pesquisa e organização de informação

Quadro de consulta (solicitação do mestre)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Conceito. As empresas como ecossistemas de relações dinâmicas

Introdução aos Sistemas Operativos

Subunidade 6: publicação

Programação de Sistemas

Programação de Sistemas

SISTEMAS DISTRIBUIDOS

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

ICORLI INSTALAÇÃO, CONFIGURAÇÃO E OPERAÇÃO EM REDES LOCAIS E INTERNET

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Programação de Sistemas

Tarefa Orientada 2 Criar uma base de dados

Noções de. Microsoft SQL Server. Microsoft SQL Server

PARANÁ GOVERNO DO ESTADO

PROJETO E IMPLANTAÇÃO DE INTRANETS

MODELO CLIENTE SERVIDOR

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

Escola Secundária de Emídio Navarro

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

WebSphere_Integration_Developer_D_Jan06 Script

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Suporte Técnico de Software HP

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Considerações no Projeto de Sistemas Cliente/Servidor

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

Redes - Internet. Sumário Aula 3,4 e 5 9º C } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System

Arquitetura de Banco de Dados

Redes de Computadores. Trabalho de Laboratório Nº7

Introdução. Arquitetura de Rede de Computadores. Prof. Pedro Neto


Enunciados dos Trabalhos de Laboratório. Instituto Superior Técnico / Introdução. 2 Configuração de Redes

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

GESTÃO DE SISTEMAS OPERACIONAIS II

Procedimento de Gestão PG 02 Controlo de Documentos e Registos

Escola Secundária Eça de Queiroz

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Serviços Web: Introdução

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Admistração de Redes de Computadores (ARC)

7. DIVULGAÇÃO DE VÍDEOS E SOM VIA REDE MÉTODO STREAMING

Vodafone ADSL Station Manual de Utilizador. Viva o momento

Gestão dos Níveis de Serviço

PHC dcontroldoc. O acesso a diversos tipos de ficheiros

Soluções de Gerenciamento de Clientes e de Impressão Universal

BlackBerry Mobile Voice System

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Redes de Computadores

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

1

ARQUIVO DIGITAL e Gestão de Documentos

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Disciplina: Tecnologias de Informação e Comunicação Ano Letivo 2014/2015

Transcrição:

Instituto de Engenharia de Sistemas e Computadores Relatório Servidores Multimédia Digitais Porto, 28 de Maio de 1997

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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