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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

RMI: Uma Visão Conceitual

RMI: Uma Visão Conceitual RMI: Uma Visão Conceitual Márcio Castro, Mateus Raeder e Thiago Nunes 11 de abril de 2007 Resumo Invocação de Método Remoto (Remote Method Invocation - RMI) trata-se de uma abordagem Java para disponibilizar

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

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

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

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

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

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

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

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

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

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

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

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

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

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

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

Modelos e Arquiteturas de Sistemas Computacionais

Modelos e Arquiteturas de Sistemas Computacionais Modelos e Arquiteturas de Sistemas Computacionais Prof. Ricardo J. Rabelo UFSC Universidade Federal de Santa Catarina DAS Departamento de Automação e Sistemas SUMÁRIO Importância da definição da Arquitetura

Leia mais

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais

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

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com)

ARQUITETURA DE SISTEMAS. Cleviton Monteiro (cleviton@gmail.com) ARQUITETURA DE SISTEMAS Cleviton Monteiro (cleviton@gmail.com) Roteiro Definição Documento de arquitetura Modelos de representação da arquitetura Estilos arquiteturais Arquitetura de sistemas web Arquitetura

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Virtualização - motivação Consolidação de servidores. Consolidação de aplicações. Sandboxing. Múltiplos ambientes de execução. Hardware virtual. Executar múltiplos

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

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

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 Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

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

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores

Aplicações. Sistema Operacional Hardware. Os sistemas de computadores são projetados com basicamente 3 componentes: Máquinas Virtuais e Emuladores Máquinas Virtuais e Emuladores Marcos Aurelio Pchek Laureano Sistemas de Computadores Os sistemas de computadores são projetados com basicamente 3 componentes: hardware sistema operacional aplicações Sistemas

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

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

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

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

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

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto

Introdução a computação móvel. Middlewares para Rede de Sensores sem Fio. Uma avaliação na ótica de Adaptação ao Contexto Introdução a computação móvel Monografia: Middlewares para Rede de Sensores sem Fio Uma avaliação na ótica de Adaptação ao Contexto Adriano Branco Agenda Objetivo do trabalho O que é uma WSN Middlewares

Leia mais

TECNOLOGIA WEB INTERNET PROTOCOLOS

TECNOLOGIA WEB INTERNET PROTOCOLOS INTERNET PROTOCOLOS 1 INTERNET Rede mundial de computadores. Também conhecida por Nuvem ou Teia. Uma rede que permite a comunicação de redes distintas entre os computadores conectados. Rede WAN Sistema

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

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

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

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

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

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

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

Tipos de Sistemas Distribuídos

Tipos de Sistemas Distribuídos (Sistemas de Informação Distribuída e Pervasivos) 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

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO 1 OBJETIVOS 1. O que é a nova infra-estrutura informação (TI) para empresas? Por que a conectividade é tão importante nessa infra-estrutura

Leia mais

Comunicação Sem Fio (Somente em Determinados Modelos)

Comunicação Sem Fio (Somente em Determinados Modelos) Comunicação Sem Fio (Somente em Determinados Modelos) Guia do Usuário Copyright 2007 Hewlett-Packard Development Company, L.P. Microsoft é uma marca registrada da Microsoft Corporation nos Estados Unidos.

Leia mais

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I Aula 01: Conceitos Iniciais / Sistema Operacional O conteúdo deste documento tem por objetivo apresentar uma visão geral

Leia mais

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

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

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

Universidade de Brasília

Universidade de Brasília Universidade de Brasília Introdução a Microinformática Turma H Redes e Internet Giordane Lima Porque ligar computadores em Rede? Compartilhamento de arquivos; Compartilhamento de periféricos; Mensagens

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

Gerenciamento de Redes

Gerenciamento de Redes Gerenciamento de Redes As redes de computadores atuais são compostas por uma grande variedade de dispositivos que devem se comunicar e compartilhar recursos. Na maioria dos casos, a eficiência dos serviços

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

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

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br

Leia mais

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

Arquiteturas para implantação de aplicações móveis wireless

Arquiteturas para implantação de aplicações móveis wireless Arquiteturas para implantação de aplicações móveis wireless Este tutorial apresenta uma visão geral da arquitetura para implantação de aplicações móveis wireless. Eduardo Tude Engenheiro de Teleco (IME

Leia mais