CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO CEARÁ CEFET/CE CURSO DE ESPECIALIZAÇÃO EM TELEMÁTICA REDES DE COMPUTADORES

Tamanho: px
Começar a partir da página:

Download "CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO CEARÁ CEFET/CE CURSO DE ESPECIALIZAÇÃO EM TELEMÁTICA REDES DE COMPUTADORES"

Transcrição

1 CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO CEARÁ CEFET/CE CURSO DE ESPECIALIZAÇÃO EM TELEMÁTICA REDES DE COMPUTADORES MIDDLEWARES PARA APLICAÇÕES MÓVEIS ELIAS TEODORO DA SILVA JÚNIOR DEZEMBRO 2003

2 ii ELIAS TEODORO DA SILVA JÚNIOR MIDDLEWARES PARA APLICAÇÕES MÓVEIS MONOGRAFIA APRESENTADA AO CURSO DE ESPECIALIZAÇÃO EM TELEMÁTICA REDES DE COMPUTADORES, DO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO CEARÁ FORTALEZA, DEZEMBRO DE 2003

3 iii

4 iv RESUMO No desenvolvimento de aplicações distribuídas, os projetistas não devem se preocupar diretamente com os problemas relativos à distribuição, como heterogeneidade, escalabilidade, compartilhamento de recursos e a própria estrutura de comunicação. O middleware é construído sobre uma estrutura de sistema operacional de rede e coloca o projetista de aplicações em um nível de abstração que esconde a complexidade introduzida pela distribuição. A crescente disponibilidade de dispositivos computacionais móveis, como laptops, assistentes digitais pessoais (PDA), telefones celulares de terceira geração, smartcards e outros estimula a demanda por aplicações distribuídas, as quais trazem seus desafios específicos. Os requisitos para um sistema distribuído móvel incluem: adaptabilidade a mudanças na capacidade de execução e de comunicação, uso eficiente dos recursos de comunicação disponíveis e configuração dinâmica do sistema do usuário final, além de robustez, alta disponibilidade e de tolerância a falhas. Embora exista uma linha de middlewares desenvolvidos para os sistemas distribuídos tradicionais (CORBA, DCE, DCOM, J2EE), eles apresentam várias limitações quando o problema é a mobilidade. Esta realidade fez surgir uma série de outros middlewares especializados em computação móvel. Este trabalho apresenta o estado da arte em middlewares voltados para aplicações móveis, destacando os aspectos que distinguem as diversas soluções atualmente em desenvolvimento.

5 v ABSTRACT When developing distributed applications, designer shouldn t be directly worried about distribution problems, like heterogeneity, scalability, resource share and the communication structure itself. Middleware is implemented over network operating system structure and places the application developer at an abstraction level which hides the complexity caused by the distribution. The growing availability of mobile computational devices, like Laptops, Personal Digital Assistants (PDAs), third generation mobile phones, smartcards and others, encourages the demand for distributed applications, which bring their specific challenges. Mobile and distributed system requirements include: adaptability to changes in the execution and communicating capability, efficient use of available communication resources and dynamic configuration of the end user s system, besides robustness, dependability and fault tolerance. Although there is a set of middlewares developed for traditional distributed systems (CORBA, DCE, DCOM, J2EE), they have several limitations when the matter is mobility. This reality arose a series of other middlewares specialized in mobile computation. This work shows the state of the art in middlewares aimed at mobile applications, emphasizing the aspects that distinguish the various solutions under development nowadays.

6 vi SUMÁRIO INTRODUÇÃO... 1 CAPÍTULO 1. POR QUE E PARA QUE MIDDLEWARES? SISTEMAS DISTRIBUÍDOS O QUE SÃO MIDDLEWARES DCE CORBA DCOM JAVA (J2EE/J2ME) ALGUMAS APLICAÇÕES DO MIDDLEWARE...24 CAPÍTULO 2. MOBILIDADE TIPOS DE MOBILIDADE SISTEMA DE INFORMAÇÃO DISTRIBUÍDO E SEM FIO RESTRIÇÕES DA MOBILIDADE ADAPTABILIDADE...33 CAPÍTULO 3. MIDDLEWARES PARA COMPUTAÇÃO MÓVEL COMPUTAÇÃO MÓVEL AS IMPLEMENTAÇÕES JÁ DESENVOLVIDAS E SUAS CARACTERÍSTICAS CORBA, DCE, Java RMI e DCOM ISAM LIME MA Middleware Middlewares Reflexivos ALICE XMIDDLE RCSM...55 CONSIDERAÇÕES FINAIS BIBLIOGRAFIA... 62

7 vii LISTA DE FIGURAS E TABELAS Fig 1.1: Esquema da arquitetura cliente-servidor... 4 Fig 1.2: Esquema da arquitetura dois níveis... 5 Fig 1.3: Esquema da arquitetura três níveis... 5 Fig 1.4: Esquema de um sistema distribuído baseado em middleware... 6 Fig 1.5: O middleware e suas interfaces em um ambiente de aplicações distribuídas... 7 Fig 1.6: Modelo de referência ISO/OSI Fig 1.7: Arquitetura do DCE Fig 1.8: Uma requisição feita pelo cliente à implementação do objeto Fig 1.9: Estrutura do CORBA e suas interfaces Fig 1.10: Cliente acessando um objeto COM através de um ponteiro de interface (interface pointer) Fig 1.11: Três maneiras de acessar objetos COM Fig 1.12: Mecanismo COM de comunicação entre processos Fig 1.13: Aplicações JAVA multi-nível Fig 1.14: Comunicações com o servidor J2EE Fig 1.15: Nível Web e aplicações J2EE Fig 1.16: Níveis de negócios e EIS do J2EE Fig 2.1: Pesquisas em sistemas de computação distribuídos Fig 3.1: Arquitetura do ISAM Fig 3.2: Escopo de utilização do ISAM Fig 3.3: Espaço de tuplas compartilhado dá suporte a mobilidade física e lógica Fig 3.4: Arquitetura do middleware para mobilidade sobre a plataforma SOMA Fig 3.5: Abstrações de localidade adotadas no SOMA Fig 3.6: Estrutura de um perfil de aplicação... 50

8 viii Fig 3.7: Comunicações no ambiente ALICE Fig 3.8: Arquitetura de software do ALICE Fig 3.9: Pilha de protocolos para ambientes móveis usando o XMIDDLE Fig 3.10: Arquitetura do XMIDDLE Fig 3.11: Esquema geral da geração de um objeto sensível ao contexto no RCSM Fig 3.12: Componentes do RCSM Fig 3.13: Software-Hardware codesign do R-ORB Tabela 1.1: Aplicações Java multi-nível... 21

9 ix LISTA DE ABREVIATURAS API Application Programming Interface CLDC Connected Limited Device Configuration COM Component Object Model CORBA Common Object Request Broker Architecture DCE Distributed Computing Environment DCOM Distributed Component Object Model DOM Document Object Model EIS Enterprise Information System EJB Enterprise JavaBeans ERP Enterprise Resource Planning FPGA Field-Programmable Gate Array GNU General Public License GSM Global System for Mobile Communications HTML HyperText Markup Language HTTP HyperText Transfer Protocol IDL Interface Definition Language IP Internet Protocol J2EE Java 2 Enterprise Edition J2ME Java 2 Micro Edition

10 x J2SE Java 2 Standard Edition JSP JavaServer Pages JVM Java Virtual Machine LAN Local Area Network OLE Object Linking and Embedding OMA Object Management Architecture OMG Object Management Goup ORB Object Request Brokers OSF Open Systems Foundation PDA Personal Digital assistant QoS Quality of Service RMI Remote method Invocation RPC Remote Procedure Call SGBD Sistema de Gerenciamento de Banco de Dados SQL Structured Query Language TCP Transmission Control Protocol UDP User Datagram Protocol XML extensible Markup Language

11 1 INTRODUÇÃO Em um sistema distribuído, a complexidade introduzida pela distribuição de recursos se torna transparente para o programador das aplicações através do uso das tecnologias middleware. Assim, o que está abaixo da camada de aplicação é visto pelo desenvolvedor como uma caixa preta. As plataformas middleware (DCE [OSF 96], CORBA [OMG 01], DCOM [DCOM 97] e J2EE [Sun 03]), disponíveis já há um bom tempo, procuram ocultar do desenvolvedor de aplicações as características do sistema, tornando o desenvolvimento e a manutenção de aplicações distribuídas mais rápido e barato. Entretanto, estas plataformas foram originalmente desenvolvidas para uma rede fixa de comunicação, que pressupõe conexões permanentes e estações sem muitas limitações de recursos (memória, processador e outros). Nos dias de hoje tem aumentado significativamente a diversidade e a disponibilidade de dispositivos móveis como: laptops, assistentes digitais pessoais (PDA), telefones celulares de terceira geração, smartcards e outros. Tecnologias como WaveLAN (IEEE ), IrDA e Bluetooth [Bluetooth 99] estão disponíveis nos mais diversos dispositivos, facilitando a integração entre estes dispositivos e deles com uma rede fixa. Os preços dos dispositivos móveis têm se reduzido e a sua capacidade computacional tem se elevado. Estas facilidades vêm estimulando o desenvolvimento de aplicações para estes dispositivos, em especial aquelas que levam à integração destes dispositivos a redes que ofereçam serviços de troca de informações e compartilhamento de recursos. Estes mesmos dispositivos impõem alguns desafios/limitações para o desenvolvimento de aplicações. Em especial a memória disponível, a velocidade do processador e a potência da bateria são recursos limitados e devem ser usados eficientemente. E ainda, a conexão com a rede pode ser perdida eventualmente, além da largura de banda ser bem mais reduzida que em uma rede fixa. As propriedade dos sistemas móveis requerem do sistema distribuído um comportamento diferenciado em relação ao tradicional. Em um sistema móvel a desconexão é

12 2 a hipótese mais provável. Também não é raro que o cliente e o servidor não estejam conectados simultaneamente, ou seja, uma comunicação síncrona não é possível em muitas situações. Como a localização dos dispositivos varia continuamente e as condições do canal de comunicação são instáveis o serviço de localização dos elementos/estações do sistema se torna mais importante. Além disso, pode ser importante para a aplicação saber onde está a estação que a executa. Para prover os desenvolvedores de aplicações com uma plataforma middleware adequada às propriedades dos sistema móveis, uma boa variedade de projetos está em andamento em todo o mundo. Basicamente eles visam a atender dois tipos de sistemas móveis. Um grupo é chamado nômade e o outro ad hoc, sendo que este último não possui uma estrutura fixa à qual as estações se conectam. Esta monografia apresenta o estado da arte em middlewares voltados para aplicações móveis, destacando os aspectos que distinguem as diversas soluções atualmente em desenvolvimento. A intenção é ajudar aqueles interessados no estudo de middlewares a comparar e avaliar as vantagens e limitações de cada abordagem adotada na solução deste problema. O restante deste trabalho esta estruturado da seguinte forma: O capítulo 1 apresenta os sistemas distribuídos e descreve a função do middleware. Para exemplificar são mostradas as principais plataformas middleware para redes fixas. O capítulo 2 discute a computação móvel e suas propriedades. Nesta área pelo menos três termos vêem sendo usados com freqüência: computação nômade, computação ubíqua e computação pervasiva. As diferenças entre as três são apresentadas neste capítulo, bem como o seu impacto sobre o sistema distribuído. O capítulo 3 trás os principais middlewares para sistemas móveis em desenvolvimento em vários centros de pesquisa no mundo. As suas propriedades são discutidas e são feitas algumas comparações entre eles. Finalmente, algumas considerações finais são feitas em relação ao estado de desenvolvimento da área e as possibilidades de trabalhos futuros.

13 3 CAPÍTULO 1. POR QUE E PARA QUE MIDDLEWARES? 1.1. SISTEMAS DISTRIBUÍDOS O termo middleware é usado no contexto de desenvolvimento de aplicações distribuídas, ou sistemas distribuídos. Antes de se definir middleware deve-se entender o contexto de sistemas distribuídos. Em [Kirner 88] são apresentadas várias definições do conceito de sistemas distribuídos, processamento distribuído, computação distribuída e ainda processamento de dados distribuído. No final da década de 70 chegou-se a um entendimento que vários elementos de um sistema poderiam ser distribuídos (programas, dados, processadores e sistema operacional), mas que a descentralização do controle seria o principal diferencial em relação aos sistemas clássicos. É fundamental observar o software para que se identifique um sistema distribuído [Pardo 79]. A diferença básica entre uma rede de computadores e um sistema distribuído é o software. Em uma rede, a cooperação entre sistemas remotos limita-se aos serviços usuais já padronizados (transferência de arquivos, correio etc). Em um sistema distribuído, a cooperação entre sistemas remotos é bastante elaborada, uma vez que envolve a implementação de compartilhamento implícito de múltiplos recursos remotos. Diz-se que um compartilhamento é implícito se o acesso aos recursos remotos é feito automaticamente pelo sistema de forma transparente para o usuário. Sloman caracteriza um sistema de processamento distribuído como sendo aquele no qual alguns processadores autônomos, executando processos que suportam armazenamento de dados ou bases de dados, cooperam para atingir um objetivo comum [Sloman 87]. Os processos coordenam suas atividades e trocam informações através de uma rede de comunicações. Os seguintes atributos são requeridos de um sistema distribuído: número arbitrário de sub-sistemas e aplicações, arquitetura física modular, comunicação por passagem

14 4 de mensagens usando um sistema de comunicação compartilhado e algum controle que abranja todo o sistema. Uma aplicação distribuída [Albuquerque 00] pode fornecer melhor desempenho, confiabilidade (pelo menos algumas partes da aplicação podem ficar operando), segurança (camadas diferentes em máquinas diferentes) e escalabilidade (atualizações podem ser feitas por partes). Em contrapartida esta tecnologia apresenta maiores dificuldades no desenvolvimento de aplicações. Na área de aplicações distribuídas destaca-se atualmente a arquitetura cliente-servidor [Sadoski 97]. Este termo começou a ser usado na década de 80 em referência a uma rede de computadores pessoais. A seguir são apresentadas as tecnologias cliente-servidor mais comuns. As tecnologias precursoras, Mainframe e compartilhamento de arquivos, não são propriamente cliente-servidor. Fig 1.1: Esquema da arquitetura cliente-servidor A arquitetura cliente-servidor surge para superar as limitações da arquitetura de compartilhamento de arquivos. Usando um banco de dados relacional, as perguntas dos usuários podem ser respondidas diretamente. Ao invés de todo o arquivo ser transportado pela rede, somente a informação necessária é enviada. Desta forma, a arquitetura cliente-servidor reduz o tráfego na rede, já que utiliza o mecanismo de perguntas e respostas ao invés de transferir o arquivo inteiro. Na comunicação cliente-servidor é comum se usar uma linguagem

15 5 de consulta (SQL) ou chamada a processos remotos (RPC). A figura 1.1 apresenta um esquema desta comunicação indicando os níveis envolvidos e o sentido do fluxo de informações. Fig 1.2: Esquema da arquitetura dois níveis Fig 1.3: Esquema da arquitetura três níveis A arquitetura em dois níveis oferece bons resultados para um número reduzido de usuários (100, tipicamente). Conforme se vê na figura 1.2, uma camada (ou nível) é a interface com o usuário e a outra é o Sistema de Gerenciamento de Banco de Dados (SGBD). Além da limitação de clientes, a arquitetura em dois níveis tem problemas com a divisão da base de dados em mais de um servidor e com a escalabilidade da aplicação e dos dados.

16 6 Também tem problemas de dependência de determinado SGBD para o qual a aplicação foi desenvolvida. Para superar estas limitações surge a arquitetura 3-níveis (3-tier), ou multi-nível, apresentado na figura 1.3. Neste caso um nível intermediário é colocado entre a camada de interface com o usuário e o ambiente do servidor de banco de dados. Desta forma se consegue maior flexibilidade, transparência, escalabilidade e segurança no acesso aos dados. Esta camada intermediária é o que se costuma denominar de middleware. Fig 1.4: Esquema de um sistema distribuído baseado em middleware Middleware é um software de conectividade composto de um conjunto de serviços que permitem que múltiplos processos, sendo executados em um ou mais processadores, possam interagir através da rede [Bray 97]. Ele é um conjunto de softwares localizado entre as aplicações e o Sistema Operacional e a infra-estrutura de rede. As figuras 1.4 e 1.5 ilustram esta idéia. O papel do middleware é criar a ilusão de que todos os serviços aos quais a aplicação tem acesso estão em uma só máquina [Bernstein 93] [Orfali 96]. Do ponto de vista da aplicação, ele é visto como um conjunto de APIs (Application Programming Interface). Do ponto do vista do sistema operacional de redes ele é um solicitante de serviços. O middleware

17 7 deve apresentar as seguintes características: localização transparente através da rede, confiabilidade e disponibilidade, independência dos serviços da rede e escalabilidade sem perda de funções. A figura 1.4 apresenta um esquema geral de um sistema distribuído que ilustra bem a idéia do middleware como intermediário entre aplicações e infra-estrutura de comunicação. Embora a interação entre os componentes nas diversas estações pudesse ser feita diretamente através das primitivas do sistema operacional de rede, isto seria complexo para a maioria dos desenvolvedores de aplicações. Ao invés disto o middleware é colocado entre os componentes do sistema distribuído e os componentes do sistema operacional de rede. Sua missão é facilitar a interação entre os componentes das aplicações. O termo middleware é usado para descrever produtos separados que servem como cola entre duas aplicações, ou duas partes de uma aplicação. Entretanto, não é a mesma coisa que importar e/ou exportar dados. Fig 1.5: O middleware e suas interfaces em um ambiente de aplicações distribuídas tecnologias: Desde que foi criado, o middleware vem sendo implementado usando várias

18 8 Monitor de TP (Transaction Processing) - Trata os pedidos, define prioridades, chama múltiplos servidores. É usado em balanço de carga de servidores e no atendimento de grande número de cliente (milhares). Servidor de mensagens - MOM (Message-Oriented Middleware) - A diferença para o monitor de TP é que a inteligência é deslocada para os clientes ao invés de ser centralizada no nível intermediário. Servidor de aplicações - Procura colocar a maior parte da aplicação nos recursos compartilhados do sistema. Oferece maior escalabilidade. Utiliza RPC (Remote Procedure Call). Arquitetura ORB (Object Request Brokers) ou orientada a objetos - Para o desenvolvedor da aplicação no cliente, o ORB [Wallnau 97] é basicamente um conjunto de classes que está disponível. Estas classes implementam as ações de localização, ativação e estabelecimento da conexão com o objeto remoto (em outro processador ou em outra estação) como se este estivesse disponível localmente para o cliente. Mas o ORB também pode ser um processo rodando à parte ou ainda estar contido no Kernel do Sistema Operacional. CORBA e DCOM são as tecnologias em maior evidência. Empreendimento Colaborativo Distribuído (Distributed/Collaborative Enterprise Architecture) - é baseado em ORB, mas é diferente de CORBA (ver detalhes sobre CORBA na seção 1.2.2). Estas tecnologias de middleware foram construídas para esconder a distribuição tanto quanto possível, de maneira que o sistema se mostre como sendo um único recurso computacional integrado. Em outras palavras, que a distribuição se torne transparente. Os sistemas distribuídos tradicionais (fixos) foram a primeira forma de implementar aplicações distribuídas. As investigações em torno desta tecnologia começaram há aproximadamente 20 anos e muitos esforços e pesquisas foram empreendidos na solução de seus problemas. Neste tempo, várias plataformas middleware bem sucedidas foram projetadas e utilizadas. Embora o propósito do middleware seja prover conectividade entre aplicações, existem alguns problemas de interoperabilidade. Algumas implementações são proprietárias e, além disso, o desenvolvedor deve decidir qual parte da aplicação colocar no cliente ou no

19 9 servidor. Na sessão seguinte serão mostradas as plataformas middleware mais conhecidas e as suas características principais O QUE SÃO MIDDLEWARES Segundo [Raatikainen 01], middleware é uma das soluções propostas para melhorar o desempenho de sistemas distribuídos. Embora, o termo middleware seja largamente utilizado para representar uma camada de serviços localizada entre as aplicações distribuídas e a infraestrutura da rede de comunicação juntamente com o próprio sistema operacional, não há consenso na definição da linha divisória entre estes elementos [RFC2768]. Também não há consenso sobre o conjunto básico de serviços que todas as aplicações requerem do middleware. Aliás, a abordagem por camadas não é a ideal e por vezes produz mais confusão que compreensão. O melhor seria considerar o middleware como sendo uma coleção não estruturada de componentes (recursos e serviços) que poderiam ser utilizados individualmente ou em vários sub-conjuntos. A resposta à pergunta o que é Middleware? vai depender de quem a responde, de sua visão sobre o sistema no qual o middleware está inserido. Por exemplo, os desenvolvedores de aplicações vêem tudo que está abaixo da API como sendo middleware. Alguns profissionais de infra-estrutura de redes vêem o middleware como sendo tudo acima do IP. Já outros classificam os middlewares em upper middleware (específicos de algumas aplicações), middle middleware (genéricos) e lower middlewares (específicos para alguns recursos). Para a NGI (Next Generation Internet) Middleware pode ser visto como um conjunto de serviços e funções (reutilizáveis e expansíveis) que são comumente necessários a muitas aplicações para o bom funcionamento em um ambiente de rede. [Smith 97] Segundo Mascolo o middleware é desenvolvido sobre uma estrutura de sistema operacional de rede e coloca o projetista de aplicações em um nível de abstração que esconde a complexidade introduzida pela distribuição [Mascolo 02]. O middleware implementa as camadas de apresentação e de sessão do modelo de referência ISO/OSI, conforme ilustrado na figura 1.6. Sua função principal é habilitar a comunicação entre os componentes do sistema distribuído.

20 10 Em [Murphy 01] temos que o middleware surgiu como uma nova ferramenta de desenvolvimento que pode suprir os programadores com os benefícios de uma poderosa máquina virtual especializada e otimizada para tarefas comuns em um conjunto particular de aplicações, sem os grandes investimentos associados ao desenvolvimento e usando linguagens de sistemas específicos da aplicação. Fig 1.6: Modelo de referência ISO/OSI. Em resumo, existem muitas visões do que seja middleware. A maioria dos grupos atuantes nesta área prefere definir um conjunto de serviços para o seu middleware, ao invés de buscar uma definição completa do termo. Alguns dos middlewares mais conhecidos são o DCE, da OSF, o CORBA, da OMG, o DCOM da Microsoft e o J2EE da SUN. Os itens a seguir fornecem uma breve descrição de cada uma destes middlewares. Trata-se de plataformas de uso geral não orientadas a nenhum tipo de aplicação em particular. Aqui será dada uma visão geral de cada uma delas. As questões relacionadas ao emprego destas plataformas middleware em aplicações móveis serão discutidas no capítulo DCE DCE (Distributed Computing Environment) foi desenvolvido e mantido pela OSF (Open Systems Foundation) [OSF 96]. A OSF fornece uma implementação de referência

21 11 (código fonte) que é incorporada pelos fornecedores em seus produtos e na qual todos os produtos DCE estão baseados. Assim, os usuários finais compram o DCE já dentro do sistema de aplicação distribuída. É uma plataforma para construção de soluções que funciona independentemente do sistema operacional ou da infra-estrutura de rede. A arquitetura do DCE pode ser visualizada na figura 1.7 e seus serviços estão divididos em duas categorias [Vondrak 97]: Serviços distribuídos fundamentais Fornece as ferramentas para que os desenvolvedores possam criar os serviços para os usuários finais. Inclui RPC e serviços de diretório, tempo, segurança e Threads. Serviços de compartilhamento de dados Este serviço não requer programação por parte do usuário final e facilita um melhor uso da informação. Inclui sistema de arquivos distribuídos e suporte a diskless. DCE utiliza uma estrutura de células, compostas de nós, cada uma sendo gerenciada por uma autoridade. As comunicações dentro de uma célula são relativamente seguras e transparentes. Comunicações entre células diferentes, entretanto, são uma pouco mais complicadas. Fig 1.7: Arquitetura do DCE

22 12 O DCE foi escolhido para ser utilizado em uma série de aplicações científicas e de defesa americanas de grande porte. Isto pode indicar que terá uma boa base de apoio. A versão DCE 1.2.1, de março de 1996 (atualmente está disponível a versão 1.2.2), oferece suporte IDL para C++ e adaptação ao conceito de objetos, dentre outros recursos. O DCE ainda atende aos requisitos para uso da especificação CORBA através de um protocolo interorb específico, que está disponível, testado e em uso, diferente de um protocolo inter-orb geral. O grupo DCE (open group) também fornece uma especificação para desenvolvedores e um conjunto de testes usados para validar a conformidade com o padrão DCE. Muitos fornecedores oferecem as funções básicas do DCE junto com os recursos do sistema operacional. Para a segurança o DCE utiliza a tecnologia Kerberos, considerada de alta confiabilidade, além de ser um meio bastante conhecido de proteger a rede. Como limitações do DCE temos que ele não foi construído para ser completamente orientado a objetos. Também o padrão de interfaces usado pelo DCE é compatível somente com a linguagem C. Para aplicações que usem linguagem de programação orientada a objeto, como C++, o trabalho pode ser mais complexo, pouco produtivo e de difícil manutenção. Um grupo de grandes da informática (IBM, HP, Digital e outros) desenvolveu um projeto de DCE na Web para demonstrar a força dele em segurança e distribuição de nomes. A idéia é expandir as capacidades das tecnologias Web existentes. Mas o fato é que o DCE foi desenvolvido antes que a Internet ganhasse a importância que tem hoje. Em vista disto, não é fácil encontrar produtos que usem esta tecnologia em aplicações integradas à Web. Embora ele possa funcionar sobre o TCP/IP ele não tem suporte ao protocolo HTTP, principal protocolo de aplicação em uso na Internet. Finalmente, o DCE não está mais em desenvolvimento. Não está sendo aprimorado para atender a novas necessidades, nem está sendo mantido e nem existe suporte formal para algum sistema operacional. As principais referências ao DCE foram produzidas em torno de Algumas outras obras escritas no final dos anos 90 apontam estratégias de migração para outras tecnologias, como é o caso de [Jensen 01].

23 CORBA O CORBA (Common Object Request Broker Architecture) [OMG 01] é um padrão que foi definido pela OMG Object Management Goup, uma organização que reúne cerca de 800 empresas do mundo todo, como IBM, Digital, Oracle, Sun e Sybase. O padrão CORBA é um sistema que permite que aplicações distribuídas em uma rede (local ou mesmo na Internet) comuniquem-se entre si e troquem informações. Do ponto de vista da especificação CORBA, estas aplicações podem estar sendo executadas em diferentes plataformas de hardware (Intel, Sun, etc) e sistemas operacionais (Windows, Linux, Unix, etc) e podem ter sido construídas em diferentes linguagens de programação. Utilizando o padrão CORBA é possível ter aplicações completamente distribuídas, potencialmente com cada pedaço de software sendo executado em qualquer parte da rede e em qualquer plataforma, sem que o usuário perceba que isto está acontecendo e sem que o desenvolvedor precise se preocupar em criar soluções que resolvam os problemas de interoperabilidade entre os diferentes pedaços da aplicação. Atualmente, diversas ferramentas já suportam o padrão CORBA, como Delphi 4, JBuilder 2, Oracle 8i, Cold Fusion e C++ Builder. Uma grande vantagem de CORBA é ser um padrão que tem um bom suporte por empresas em todo o mundo e com dezenas de implementações disponíveis, incluindo algumas gratuitas. Teoricamente, essa padronização significa que o usuário não precisa ficar preso a determinados fornecedores, plataformas ou produtos, como acontece quando são escolhidas soluções proprietárias. Na prática, a interoperabilidade entre sistemas de diversos fornecedores ainda é uma coisa difícil de viabilizar. Cada fabricante tem liberdade para fazer implementações diferentes das demais em muitos detalhes, além de poder acrescentar recursos próprios. Existem várias implementações do padrão CORBA, como: ORBIX da IONA Technology, NEO da SunSoft, VisiBroker da VisiGenic, PowerBroker da Expersoft, SmallTalkBroker da DNS Technologies, Object Director da Fujitsu, DSOM da IBM, DAIS da ICL, SORBET da Siemens Nixdorf, and NonStop DOM da Tandem. Para cada sistema da rede, o CORBA permite definir uma interface neutra (independente de linguagem) chamada IDL, que descreve os serviços que estão sendo fornecidos. Assim, qualquer aplicação cliente é capaz de entender e acessar esses serviços, mesmo que cada sistema tenha sido implementado em uma linguagem e hardware diferentes.

24 14 Como o CORBA faz todo o trabalho de tradução, para a aplicação cliente não importa qual o tipo de servidor está sendo acessado (e vice-versa), nem faz diferença em qual linguagem cada um foi desenvolvido. IDL especifica a interface entre clientes e objetos. Os demais detalhes, como o comportamento de ambos, ficam transparentes. A figura 1.8 mostra como os stubs e skeletons servem como procuradores (proxies) para cliente e servidor respectivamente. Mas existe uma limitação: IDL é apenas uma espécie de denominador comum, não podendo explorar as potencialidades da linguagem para a qual está sendo mapeado, principalmente quanto a tipos abstratos de dados. Fig 1.8: Uma requisição feita pelo cliente à implementação do objeto. Além da IDL, o CORBA inclui também uma infra-estrutura de execução, fornecendo diversas funcionalidades básicas importantes como localização e ativação automática de serviços, comunicação, controle de transações e segurança. A principal revisão é a versão 2.0 de CORBA está inserido em um contexto mais amplo chamado OMA (Object Management Architecture), que é um conjunto maior de objetos de aplicação, o próprio ORB e os serviços e recursos CORBA. A figura 1.9 mostra os Componentes da especificação CORBA [Wallnau 97], que são: Núcleo do ORB - Sua interface não faz parte da especificação CORBA.

Componentes para Computação Distribuída

Componentes para Computação Distribuída Componentes para Computação Distribuída Conceitos Foi a partir do fenômeno da Internet (WWW), no início dos anos noventa, que a computação distribuída passou a ter relevância definitiva, a ponto de a Internet

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

CAPÍTULO 3 MIDDLEWARE. Para entender-se o aparecimento da tecnologia middleware é descrita a seguir, e, brevemente, a sua evolução.

CAPÍTULO 3 MIDDLEWARE. Para entender-se o aparecimento da tecnologia middleware é descrita a seguir, e, brevemente, a sua evolução. CAPÍTULO 3 MIDDLEWARE Para entender-se o aparecimento da tecnologia middleware é descrita a seguir, e, brevemente, a sua evolução. 3.1 ARQUITETURA CLIENTE/SERVIDOR Primeiramente, surgiu a arquitetura centralizada

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

Leia mais

Cliente/Servidor. Objetos Distribuídos. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Objetos Distribuídos. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Objetos Distribuídos Graça Bressan Graça Bressan/LARC 2000 1 Objetos São entidades de software que encapsulam dados, ou atributos, e código e que são acessados através de funções ou métodos.

Leia mais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Caracterização de Sistemas Distribuídos Coulouris, Dollimore and Kindberg. Distributed Systems: Concepts and

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

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

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware. Camadas de Software - o Middleware Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas Modelos de Arquitecturas para sistemas distribuidos Interfaces e Objectos Requerimentos para Arquitecturas Distribuídas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SIGLAS E ABREVIATURAS Pág. CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 2.1 A tecnologia de orientação a objetos 25 2.1.1 Projeto de software

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Definições Características Desafios Vantagens Desvantagens 2 Definições DEFINIÇÕES Um sistema distribuído é uma coleção

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Exemplos de SD Quais podem ser? Ex. de SD: Internet Internet é um conjunto de redes de computadores, de muitos tipos diferentes,

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

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

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Arquiteturas de Aplicações Distribuídas

Arquiteturas de Aplicações Distribuídas Arquiteturas de Aplicações Distribuídas Fernando Albuquerque 061-2733589 fernando@cic.unb.br www.cic.unb.br/docentes/fernando Tópicos Introdução. HTTP / CGI. API sockets. JDBC. Remote Method Invocation.

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos CORBA Common Object Request Broker Architecture Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos Introdução OMG (Object Management Group): uma organização formada por empresas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

Distributed Systems Concepts and Design

Distributed Systems Concepts and Design Distributed Systems, Cap 2, Coulouris Pag. 1 de 1 Distributed Systems Concepts and Design 2 Modelos de Sistemas Modelos de arquitetura de sistemas distribuídos, estão relacionado com o local onde estão

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO... 27 CAPÍTULO 2 - SISTEMAS DISTRIBUÍDOS BASEADOS EM OBJETOS... 33

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO... 27 CAPÍTULO 2 - SISTEMAS DISTRIBUÍDOS BASEADOS EM OBJETOS... 33 SUMÁRIO Pág. LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SÍMBOLOS CAPÍTULO 1 - INTRODUÇÃO... 27 CAPÍTULO 2 - SISTEMAS DISTRIBUÍDOS BASEADOS EM OBJETOS... 33 CAPÍTULO 3 - SUPORTE PARA A IMPLEMENTAÇÃO DE

Leia mais

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores Camadas de Serviço de Hardware e Software em Sistemas Distribuídos Arquiteutra de Sistemas Distribuídos Introdução Applications, services Adaptação do conjunto de slides do livro Distributed Systems, Tanembaum,

Leia mais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Abertos Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Caracterização de Sistemas Distribuídos Coulouris, Dollimore and Kindberg. Distributed Systems: Concepts and

Leia mais

Usando Borland DELPHI para implementar aplicações CORBA

Usando Borland DELPHI para implementar aplicações CORBA Página 1 de 10 USANDO BORLAND DELPHI PARA IMPLEMENTAR APLICAÇÕES CORBA por Simone Vey Dutra e César Bridi Introdução A Arquitetura CORBA Criando uma Aplicação CORBA em Delphi Criando um Servidor CORBA

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

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

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

Introdução. O que é Serviços de Terminal

Introdução. O que é Serviços de Terminal Introdução Microsoft Terminal Services e Citrix MetaFrame tornaram-se a indústria padrões para fornecer acesso de cliente thin para rede de área local (LAN), com base aplicações. Com o lançamento do MAS

Leia mais

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos Middleware Camada Intermediária de Suporte a Sistemas Distribuídos Alternativas de comunicação entre processos (IPC) Mecanismos de IPC tradicionais (ou de baixo nível) Memória compartilhada, filas de mensagens,

Leia mais

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite andreza.lba@gmail.com Projeto de Sistemas Distribuídos Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Exemplos de Sistemas Distribuídos Compartilhamento de Recursos e a Web Principais Desafios para a Implementação

Leia mais

A utilização do JSWDP para construção de Web Services

A utilização do JSWDP para construção de Web Services A utilização do JSWDP para construção de Web Services Fabiana Ferreira Cardoso 1, Francisco A. S. Júnior 1, Madianita Bogo 1 1 Centro de Tecnologia da Informação Centro Universitário Luterano de Palmas

Leia mais

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso Universidade Federal de Santa Catarina Departamento de Informática e Estatística Curso de Bacharelado em Ciências da Computação Marcus Vinicius Cruz Xavier Rascunho do trabalho de conclusão de curso Título

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

INE5380 - Sistemas Distribuídos

INE5380 - Sistemas Distribuídos INE5380 - Sistemas Distribuídos Object Request Broker e CORBA Por: Léo Willian Kölln - 0513227-4 Novembro de 2006 ORB Object Request Broker ORB aqui será tratado como um Middleware que permite a construção

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

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

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Estudo comparativo entre tecnologias Java: Applet e JWS.

Estudo comparativo entre tecnologias Java: Applet e JWS. Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)

Leia mais

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior Arquitetura de SGBD Prof. Antonio Almeida de Barros Junior Agenda Caracterização de SGBDs SGBDs Centralizados SGBDs Cliente-Servidor SGBDs Distribuídos Homogêneos Multi-SGBDs Heterogêneos SGBDs Paralelos

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

Capítulo II Modelos de Programação Distribuída (parte 2)

Capítulo II Modelos de Programação Distribuída (parte 2) Capítulo II Modelos de Programação Distribuída (parte 2) From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley From: Cardoso, Jorge, Programação de

Leia mais

Sistemas Distribuídos. Introdução

Sistemas Distribuídos. Introdução Sistemas Distribuídos Introdução Definição Processos Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software distribuído. Executados

Leia mais

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho Banco de Dados de Músicas Andre Lima Rocha Campos Osório Pereira Carvalho Definição Aplicação Web que oferece ao usuário um serviço de busca de músicas e informações relacionadas, como compositor, interprete,

Leia mais

Alternativas de aplicação do serviço GPRS da rede celular GSM em telemetria pela Internet

Alternativas de aplicação do serviço GPRS da rede celular GSM em telemetria pela Internet Alternativas de aplicação do serviço GPRS da rede celular GSM em telemetria pela Internet Marcos R. Dillenburg Gerente de P&D da Novus Produtos Eletrônicos Ltda. (dillen@novus.com.br) As aplicações de

Leia mais

J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS

J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS Ana Paula Carrion 1, Késsia Rita da Costa Marchi 1, Jaime Willian Dias 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil anapaulacarrion@hotmail.com,

Leia mais

UTFPR - Sistemas Distribuídos Prof. Cesar Augusto Tacla. Anotações. Copyright Cesar Augusto Tacla 2008 - 1 -

UTFPR - Sistemas Distribuídos Prof. Cesar Augusto Tacla. Anotações. Copyright Cesar Augusto Tacla 2008 - 1 - - 1 - - 2 - - 3 - Segundo (Garg, 2004), são sistemas compostos por múltiplos processadores conectados por uma rede de comunicação, sendo a rede de comunicação uma LAN (Ethernet) ou WAN (Internet). - 4

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

O modelo de arquitetura CORBA e suas aplicações

O modelo de arquitetura CORBA e suas aplicações ABR. MAI. JUN. 2004 ANO X, N º 37 157-163 INTEGRAÇÃO 157 O modelo de arquitetura CORBA e suas aplicações ANA PAULA GONÇALVES SERRA* Resumo Nos últimos anos, os sistemas de informação nas empresas têm evoluído

Leia mais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais

Introdução. Nível do Sistema Operacional. Introdução. Um Sistema Operacional... Introdução a Sistemas Operacionais Introdução Nível do Sistema Operacional (Aula 14) Introdução a Sistemas Operacionais Hardware Provê os recursos básicos de computação (CPU, memória, E/S,etc.) Programas (aplicações) Definem as maneiras

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES Hugo Henrique Rodrigues Correa¹, Jaime Willian Dias 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil hugohrcorrea@gmail.com, jaime@unipar.br Resumo.

Leia mais

Atividade Capitulo 6 - GABARITO

Atividade Capitulo 6 - GABARITO Atividade Capitulo 6 - GABARITO 1. A Internet é uma força motriz subjacente aos progressos em telecomunicações, redes e outras tecnologias da informação. Você concorda ou discorda? Por quê? Por todos os

Leia mais

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões FACSENAC ECOFROTA Documento de Projeto Lógico de Rede Versão:1.5 Data: 21/11/2013 Identificador do documento: Projeto Lógico de Redes Versão do Template Utilizada na Confecção: 1.0 Localização: FacSenac

Leia mais

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo Programação para Dispositivos Móveis Prof. Wallace Borges Cristo Acesso a informação Notícias, Ringtones, Vídeos Messenger/Chat Jogos Acesso a instituições financeiras M-commerce (Mobile Commerce) Aplicações

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Aspectos Estratégicos da Computação Distribuída Aula 2

Aspectos Estratégicos da Computação Distribuída Aula 2 Aspectos Estratégicos da Aula 2 Mudanças no Ambiente de Negócios Reengenharia Padrões e Sistemas Abertos Framework para Discussão Processos e Ambientes de Negócios Padronização Introdução à Infra-Estrutura

Leia mais

J2EE TM Java 2 Plataform, Enterprise Edition

J2EE TM Java 2 Plataform, Enterprise Edition CURSO DE GRADUAÇÃO J2EE TM Java 2 Plataform, Enterprise Edition Antonio Benedito Coimbra Sampaio Junior abc@unama.br OBJETIVOS DO CURSO Capacitar os alunos no desenvolvimento de aplicações para a WEB com

Leia mais

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Professora: Sheila Cáceres Computador Dispositivo eletrônico usado para processar guardar e tornar acessível informação. Tópicos de Ambiente

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Comunicação em Sistemas Distribuídos

Comunicação em Sistemas Distribuídos Comunicação em Sistemas Distribuídos Sockets Aplicações Protocolo de Aplicação FTP, SMTP, HTTP, Telnet, SNMP, etc. sockets TCP, UDP IP Data Link Ethernet, Token Ring, FDDI, etc Física Conjunto de APIs

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

Thin Clients : aumentando o potencial dos sistemas SCADA

Thin Clients : aumentando o potencial dos sistemas SCADA Artigos Técnicos Thin Clients : aumentando o potencial dos sistemas SCADA Tarcísio Romero de Oliveira, Engenheiro de Vendas e Aplicações da Intellution/Aquarius Automação Industrial Ltda. Um diagnóstico

Leia mais

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Arquiteturas e Modelos de sistemas Arquitetura Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Localização dos componentes e relação entre eles Objetivo: garantir que

Leia mais

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Aula 2 Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Sistema Operacional de Rede Definição: Conjunto de módulos que ampliam as tarefas dos sistemas operacionais locais, complementando-os

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com Modelos de Arquiteturas Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Arquitetura de Sistemas Distribuídos Clientes e Servidores Peer-to-Peer Variações Vários Servidores Proxy Código Móvel

Leia mais

CA Nimsoft Monitor para servidores

CA Nimsoft Monitor para servidores DOCUMENTAÇÃO TÉCNICA Setembro de 2012 CA Nimsoft Monitor para servidores agility made possible CA Nimsoft para monitoramento de servidores sumário CA Nimsoft Monitor para servidores 3 visão geral da solução

Leia mais

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Uma Introdução ao J2ME Computação Móvel (MAC5743/MAC330) DCC-IME-USP Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Visão Geral do Java 2 (1) A plataforma Java 2 engloba três elementos:

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds MSc2006 Aula

Leia mais

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

ARQUITETURA TRADICIONAL

ARQUITETURA TRADICIONAL INTRODUÇÃO Atualmente no universo corporativo, a necessidade constante de gestores de tomar decisões cruciais para os bons negócios das empresas, faz da informação seu bem mais precioso. Nos dias de hoje,

Leia mais

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados SISTEMA DE BANCO DE DADOS Banco e Modelagem de dados Sumário Conceitos/Autores chave... 3 1. Introdução... 4 2. Arquiteturas de um Sistema Gerenciador... 5 3. Componentes de um Sistema... 8 4. Vantagens

Leia mais

Documento de Requisitos de Rede (DRP)

Documento de Requisitos de Rede (DRP) Documento de Requisitos de Rede (DRP) Versão 1.2 SysTrack - Grupo 1 1 Histórico de revisões do modelo Versão Data Autor Descrição 1.0 30/04/2011 João Ricardo Versão inicial 1.1 1/05/2011 André Ricardo

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

1.264 Lição 16. Legado Middleware

1.264 Lição 16. Legado Middleware 1.264 Lição 16 Legado Middleware O que é o legado middleware? Cliente (interface do usuário, aplicativo local). Cliente (interface do usuário, aplicativo local). Como conectamos clientes e servidores?

Leia mais

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Padrões Arquiteturais. Sistemas Distribuídos: Broker Padrões Arquiteturais Sistemas Distribuídos: Broker Sistemas Distribuídos Tendências: Sistemas Comp. com múltiplas CPUs Redes locais com centenas de hospedeiros Benefícios Economia Desempenho e escalabilidade

Leia mais