Sistemas Operacionais

34
Michele Alves de Freitas Batista Michele Alves de Freitas Batista Prof. José Carlos Becceneri Prof. José Carlos Becceneri São José dos Campos, 2004 Pós-Graduação em Computação Aplicada

description

Pós-Graduação em Computação Aplicada. Sistemas Operacionais. Michele Alves de Freitas Batista Prof. José Carlos Becceneri. São José dos Campos, 2004. Processamento de Dados Distribuído (Distributed Data Processing – DDP). Por que construir sistemas distribuídos? - PowerPoint PPT Presentation

Transcript of Sistemas Operacionais

Page 1: Sistemas Operacionais

Michele Alves de Freitas BatistaMichele Alves de Freitas BatistaProf. José Carlos BecceneriProf. José Carlos Becceneri

São José dos Campos, 2004

Pós-Graduação em Computação Aplicada

Page 2: Sistemas Operacionais

Por que construir sistemas distribuídos?Por que construir sistemas distribuídos?Pessoas são distribuídas, informações são distribuídasPessoas são distribuídas, informações são distribuídas

Page 3: Sistemas Operacionais

Fatores que contribuíram para o aumento do DDPFatores que contribuíram para o aumento do DDP

aumento do número de computadores pessoaisaumento do número de computadores pessoais baratos e poderososbaratos e poderosos

aumento do número de usuáriosaumento do número de usuários

Onde processadores, dados e outros aspectos de um Onde processadores, dados e outros aspectos de um sistema de processamento de dados são importantes sistema de processamento de dados são importantes dentro de uma organização.dentro de uma organização.

Page 4: Sistemas Operacionais

Distributed Data Processing (DDP)Distributed Data Processing (DDP)

Um sistema DDP envolve uma divisão de funções no sistema e Um sistema DDP envolve uma divisão de funções no sistema e pode envolver uma organização distribuída das bases de pode envolver uma organização distribuída das bases de dados, do controle de dispositivo e da rede.dados, do controle de dispositivo e da rede.

Os computadores pessoais são usados para suportar uma Os computadores pessoais são usados para suportar uma variedade de aplicações, abrigando:variedade de aplicações, abrigando:

base de dadosbase de dados gerenciador da base de dadosgerenciador da base de dados sistemas operacionaissistemas operacionais

Page 5: Sistemas Operacionais

DDP - CapacidadesDDP - Capacidades

Arquitetura de comunicaçõesArquitetura de comunicações

Sistema operacional de rede Sistema operacional de rede

Sistema operacional distribuídoSistema operacional distribuído

O desenvolvimento do sistema operacional distribuído O desenvolvimento do sistema operacional distribuído deu-se pela evolução de suas capacidades:deu-se pela evolução de suas capacidades:

Page 6: Sistemas Operacionais

DDP - CapacidadesDDP - Capacidades

Software que suporta uma rede de computadores Software que suporta uma rede de computadores independentes.independentes.

Fornece a sustentação para aplicações distribuídas, tais como Fornece a sustentação para aplicações distribuídas, tais como correio eletrônico, transferência de arquivo e acesso ao correio eletrônico, transferência de arquivo e acesso ao terminal remoto.terminal remoto.

Cada computador tem seu próprio sistema operacional Cada computador tem seu próprio sistema operacional separado, e uma mistura heterogênea de computadores e de separado, e uma mistura heterogênea de computadores e de sistemas operacionais é possível, já que todas as máquinas sistemas operacionais é possível, já que todas as máquinas suportam a mesma arquitetura de comunicações. suportam a mesma arquitetura de comunicações.

Arquitetura de comunicaçõesArquitetura de comunicações

Page 7: Sistemas Operacionais

DDP - CapacidadesDDP - Capacidades

Sistema operacional de redeSistema operacional de rede

Esta é uma configuração em que há um aplicativo de rede, estações de Esta é uma configuração em que há um aplicativo de rede, estações de trabalho e um ou mais servidores.trabalho e um ou mais servidores.

Os servidores fornecem serviços em rede ou aplicativos, tais como o Os servidores fornecem serviços em rede ou aplicativos, tais como o armazenamento de arquivo e o gerenciamento da impressora.armazenamento de arquivo e o gerenciamento da impressora.

Cada computador tem seu próprio sistema operacional privado.Cada computador tem seu próprio sistema operacional privado.

A função do sistema operacional da rede é permitir que as estações de A função do sistema operacional da rede é permitir que as estações de trabalho interajam com o servidor.trabalho interajam com o servidor.

O usuário está ciente que há múltiplos computadores independentes e O usuário está ciente que há múltiplos computadores independentes e deve tratá-los explicitamente.deve tratá-los explicitamente.

Tipicamente, uma arquitetura comum de comunicações é usada para Tipicamente, uma arquitetura comum de comunicações é usada para suportar estas aplicações da rede. suportar estas aplicações da rede.

Page 8: Sistemas Operacionais

DDP - CapacidadesDDP - Capacidades

Sistema operacional distribuídoSistema operacional distribuído

É um sistema operacional comum compartilhado por uma É um sistema operacional comum compartilhado por uma rede dos computadores.rede dos computadores.

Enxerga seus usuários como um sistema operacional Enxerga seus usuários como um sistema operacional centralizado, mas fornece ao usuário o acesso transparente centralizado, mas fornece ao usuário o acesso transparente aos recursos de um número de máquinas.aos recursos de um número de máquinas.

Um sistema operacional distribuído pode confiar em uma Um sistema operacional distribuído pode confiar em uma arquitetura de comunicações para funções básicas de arquitetura de comunicações para funções básicas de comunicação. comunicação.

Page 9: Sistemas Operacionais

Sistemas Cliente/ServidorSistemas Cliente/Servidor

Termos utilizadosTermos utilizados

Applications Programming Interface (API)Applications Programming Interface (API)Aplicativos que permitem que os clientes e servidores se Aplicativos que permitem que os clientes e servidores se comuniquem.comuniquem.

ClienteClienteUm solicitante de informação da rede, geralmente um PC ou uma Um solicitante de informação da rede, geralmente um PC ou uma estação de trabalho, que possa perguntar a base de dados e/ou estação de trabalho, que possa perguntar a base de dados e/ou outra informação de um servidor.outra informação de um servidor.

MiddlewareMiddlewareUm conjunto de drivers, APIs, ou outro software que melhora a Um conjunto de drivers, APIs, ou outro software que melhora a conectividade entre uma aplicação do cliente e um servidor.conectividade entre uma aplicação do cliente e um servidor.

Page 10: Sistemas Operacionais

Sistemas Cliente/ServidorSistemas Cliente/Servidor

Termos utilizadosTermos utilizados

Base de dados relacionalBase de dados relacionalUma base de dados em que o acesso de informação é limitado à Uma base de dados em que o acesso de informação é limitado à seleção das fileiras que satisfazem a todos os critérios da buscaseleção das fileiras que satisfazem a todos os critérios da busca

ServidorServidorUm computador, geralmente uma estação de trabalho potente, um Um computador, geralmente uma estação de trabalho potente, um minicomputador ou um mainframe, que abriga informação para minicomputador ou um mainframe, que abriga informação para manipulação dos clientes na rede.manipulação dos clientes na rede.

Structured Query Language (SQL)Structured Query Language (SQL)Uma linguagem desenvolvida pela IBM para criar, atualizar ou Uma linguagem desenvolvida pela IBM para criar, atualizar ou consultar bases de dados relacionais.consultar bases de dados relacionais.

Page 11: Sistemas Operacionais

LAN ou WAN ouLAN ou WAN ouInternetInternet

Como o termo sugere, um Como o termo sugere, um ambiente cliente/servidor ambiente cliente/servidor está povoado por clientes e está povoado por clientes e por servidores.por servidores.

As máquinas do cliente são As máquinas do cliente são geralmente PCs ou estações geralmente PCs ou estações de trabalho que fornecem de trabalho que fornecem uma relação user-friendly uma relação user-friendly ao usuário.ao usuário.

A estação de trabalho A estação de trabalho apresenta geralmente o tipo apresenta geralmente o tipo de relação gráfica que é a de relação gráfica que é a mais confortável aos mais confortável aos usuários, incluindo o uso de usuários, incluindo o uso de janelas e mouse.janelas e mouse.

Ambiente Genérico do Cliente/ServidorAmbiente Genérico do Cliente/Servidor

Workstation (client)

Server

Sistemas Cliente/ServidorSistemas Cliente/Servidor

Page 12: Sistemas Operacionais

Sistemas Cliente/ServidorSistemas Cliente/Servidor

Cada servidor no ambiente cliente/servidor fornece um Cada servidor no ambiente cliente/servidor fornece um conjunto de serviços compartilhados aos clientes. conjunto de serviços compartilhados aos clientes.

Atualmente, o tipo mais comum de servidor é o servidor Atualmente, o tipo mais comum de servidor é o servidor de base de dados, controlando geralmente uma base de de base de dados, controlando geralmente uma base de dados relacional. dados relacional.

O servidor permite:O servidor permite:

que muitos clientes compartilhem a mesma base de que muitos clientes compartilhem a mesma base de dados;dados; que um sistema de alto desempenho controle a baseque um sistema de alto desempenho controle a base de dados.de dados.

Page 13: Sistemas Operacionais

Sistemas Cliente/ServidorSistemas Cliente/Servidor

Além dos clientes e dos usuários, o terceiro ingrediente Além dos clientes e dos usuários, o terceiro ingrediente essencial do ambiente cliente/servidor é a REDE. essencial do ambiente cliente/servidor é a REDE. Sistemas cliente/servidor são sistemas distribuídos. Os Sistemas cliente/servidor são sistemas distribuídos. Os usuários, as aplicações e os recursos são distribuídos em usuários, as aplicações e os recursos são distribuídos em resposta às exigências do negócio e ligados por um único resposta às exigências do negócio e ligados por um único LAN ou WAN ou por redes de Internet.LAN ou WAN ou por redes de Internet.

Page 14: Sistemas Operacionais

Sistemas Cliente/Servidor - CaracterísticasSistemas Cliente/Servidor - Características

Características que diferem uma configuração Características que diferem uma configuração cliente/servidor de outras soluções de processamento cliente/servidor de outras soluções de processamento distribuído:distribuído:

Há um esforço em trazer aplicações user-friendly aoHá um esforço em trazer aplicações user-friendly ao usuário. Isto dá ao usuário o controle sobre o sincronismousuário. Isto dá ao usuário o controle sobre o sincronismo e o estilo do uso de computador e dá aos gerenciadores ae o estilo do uso de computador e dá aos gerenciadores a responsabilidade de suas necessidades locais. O usuário responsabilidade de suas necessidades locais. O usuário não possui a consciência de que está em um ambiente de não possui a consciência de que está em um ambiente de rede.rede.

O usuário tem acesso a múltiplos servidores.O usuário tem acesso a múltiplos servidores.

Page 15: Sistemas Operacionais

Sistemas Cliente/Servidor - CaracterísticasSistemas Cliente/Servidor - Características

Embora as aplicações sejam dispersadas, há umaEmbora as aplicações sejam dispersadas, há uma ênfase em centralizar as bases de dados e oênfase em centralizar as bases de dados e o gerenciamento da rede. Isto permite ao gerenciadorgerenciamento da rede. Isto permite ao gerenciador manter o controle total em sistemas de computação manter o controle total em sistemas de computação e de fornecer a interoperabilidade de modo que os e de fornecer a interoperabilidade de modo que os sistemas sejam amarrados junto.sistemas sejam amarrados junto.

O networking é fundamental à operação. Assim, aO networking é fundamental à operação. Assim, a gerência e a segurança de rede têm uma prioridadegerência e a segurança de rede têm uma prioridade elevada em sistemas operacionais.elevada em sistemas operacionais.

Page 16: Sistemas Operacionais

A característica central de uma arquitetura A característica central de uma arquitetura cliente/servidor é o alocamento de tarefas entre clientes e cliente/servidor é o alocamento de tarefas entre clientes e servidores. servidores.

No cliente e no servidor, o software básico é um sistema No cliente e no servidor, o software básico é um sistema operacional rodando numa plataforma de hardware.operacional rodando numa plataforma de hardware.

A plataforma e o sistema operacional do cliente e do A plataforma e o sistema operacional do cliente e do servidor podem diferir.servidor podem diferir.

Aplicações Cliente/ServidorAplicações Cliente/Servidor

Page 17: Sistemas Operacionais

Presentation services

Application logic(client portion)

Application logic(server portion)

Communicationssoftware

Communicationssoftware

Clientoperating system

Serveroperating system

Hardware platform Hardware platform

Arquitetura Genérica do Cliente/ServidorArquitetura Genérica do Cliente/Servidor

Client Workstation

Server

Request

Response

Protocolinteraction

Assim, se um Assim, se um cliente e um cliente e um servidor servidor compartilham compartilham os mesmos os mesmos protocolos de protocolos de comunicação e comunicação e suporta as suporta as mesmas mesmas aplicações, aplicações, estas diferenças estas diferenças lower-level são lower-level são irrelevantes.irrelevantes.

Aplicações Cliente/ServidorAplicações Cliente/Servidor

Page 18: Sistemas Operacionais

Aplicações Cliente/ServidorAplicações Cliente/Servidor

É o software de comunicação que permite a É o software de comunicação que permite a interoperabilidade entre o cliente e o servidor.interoperabilidade entre o cliente e o servidor.

O principal deste software de sustentação (sistema O principal deste software de sustentação (sistema operacionais e de comunicações) é fornecer uma base operacionais e de comunicações) é fornecer uma base para aplicações distribuídas.para aplicações distribuídas.

Idealmente, as atividades executadas pela aplicação Idealmente, as atividades executadas pela aplicação podem ser divididas entre o cliente e o servidor de uma podem ser divididas entre o cliente e o servidor de uma maneira que otimize recursos da plataforma e da rede e maneira que otimize recursos da plataforma e da rede e que otimize a habilidade dos usuários de executar várias que otimize a habilidade dos usuários de executar várias tarefas e usar recursos compartilhados. tarefas e usar recursos compartilhados.

Page 19: Sistemas Operacionais

Aplicações Cliente/ServidorAplicações Cliente/Servidor

Um fator essencial no sucesso de um ambiente Um fator essencial no sucesso de um ambiente cliente/servidor é a maneira em que o usuário interage cliente/servidor é a maneira em que o usuário interage com o sistema como um todo. Na maioria de sistemas com o sistema como um todo. Na maioria de sistemas cliente/servidor, há uma ênfase em fornecer uma interface cliente/servidor, há uma ênfase em fornecer uma interface de usuário gráfica (GUI) que seja fácil de se usar, fácil de de usuário gráfica (GUI) que seja fácil de se usar, fácil de aprender, contudo poderoso e flexível. aprender, contudo poderoso e flexível.

Assim, nós podemos pensar em um módulo de serviços da Assim, nós podemos pensar em um módulo de serviços da apresentação na estação de trabalho do cliente apresentação na estação de trabalho do cliente responsável por fornecer uma interface user-friendly às responsável por fornecer uma interface user-friendly às aplicações distribuídas disponíveis no ambiente. aplicações distribuídas disponíveis no ambiente.

Page 20: Sistemas Operacionais

Aplicações DatabaseAplicações Database

Neste ambiente, o servidor é essencialmente um Neste ambiente, o servidor é essencialmente um servidor da base de dados.servidor da base de dados.

A interação entre o cliente e o servidor está nas A interação entre o cliente e o servidor está nas transações em que o cliente faz um pedido à transações em que o cliente faz um pedido à base de dados e recebe uma resposta. base de dados e recebe uma resposta.

Page 21: Sistemas Operacionais

Aplicações DatabaseAplicações Database

Presentation services

Application logic

Communicationssoftware

Clientoperating system

Client Workstation

Request

Response

Protocolinteraction

Database logic

Hardware platform

Database logic

Communicationssoftware

DB managementsystem

Server operating system

Hardware platform

Server

Arquitetura de Cliente/Servidor para Aplicações DatabaseArquitetura de Cliente/Servidor para Aplicações Database

A ligação entre o cliente e o servidor é o software que permite ao A ligação entre o cliente e o servidor é o software que permite ao cliente fazer pedidos para o acesso à base de dados do servidor. cliente fazer pedidos para o acesso à base de dados do servidor. Um exemplo popular de tal lógica é o SQL.Um exemplo popular de tal lógica é o SQL.

Page 22: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

Em uma estrutura cliente/servidor, há implementações Em uma estrutura cliente/servidor, há implementações que dividem o trabalho entre o cliente e o servidor que dividem o trabalho entre o cliente e o servidor diferentemente. As principais opções para aplicações diferentemente. As principais opções para aplicações database são:database são:

Host-based processingHost-based processing

Server-based processingServer-based processing

Client-based processingClient-based processing

Cooperative processingCooperative processing

Page 23: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

Host-based processingHost-based processing

Refere-se ao ambiente de mainframe tradicional em que Refere-se ao ambiente de mainframe tradicional em que todo ou virtualmente todo o processamento é feito num host todo ou virtualmente todo o processamento é feito num host central. Freqüentemente, a interface do servidor é através central. Freqüentemente, a interface do servidor é através de um terminal mudo. Mesmo se o usuário estiver usando de um terminal mudo. Mesmo se o usuário estiver usando um microcomputador, a estação do usuário é geralmente um microcomputador, a estação do usuário é geralmente limitada ao papel de um terminal emulador. limitada ao papel de um terminal emulador.

Presentation logic

Application logic

Database logic

DBMS

Client Server

(a)(a)

Page 24: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

Server-based processingServer-based processing

O cliente é o principal responsável por fornecer uma interface gráfica O cliente é o principal responsável por fornecer uma interface gráfica ao usuário, enquanto virtualmente todo o processamento é feito no ao usuário, enquanto virtualmente todo o processamento é feito no servidor. A estação de trabalho do usuário fornece uma interface user-servidor. A estação de trabalho do usuário fornece uma interface user-friendly e as bases de dados e as aplicações podem fàcilmente ser friendly e as bases de dados e as aplicações podem fàcilmente ser mantidas em sistemas centrais. Embora o usuário ganhe a vantagem de mantidas em sistemas centrais. Embora o usuário ganhe a vantagem de uma interface melhor, este tipo de configuração não representa uma interface melhor, este tipo de configuração não representa nenhum ganho significativo na produtividade. nenhum ganho significativo na produtividade.

Presentation logic

Application logic

Database logic

DBMS

Client Server

(b)(b)

Page 25: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

Client-based processingClient-based processing

No outro extremo, virtualmente todo o processamento da No outro extremo, virtualmente todo o processamento da aplicação pode ser feito no cliente, com exceção das rotinas aplicação pode ser feito no cliente, com exceção das rotinas de validação de dados e de outras funções lógicas da base de de validação de dados e de outras funções lógicas da base de dados que são executadas no servidor. dados que são executadas no servidor.

Presentation logic

Application logic

Database logic

DBMS

Client Server

Application logic(c)(c)

Page 26: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

Cooperative processingCooperative processing

O processamento da aplicação é executado de uma forma O processamento da aplicação é executado de uma forma otimizada, extraindo vantagem do desempenho de máquinas otimizada, extraindo vantagem do desempenho de máquinas do cliente e do servidor e da distribuição dos dados. Tal do cliente e do servidor e da distribuição dos dados. Tal configuração é mais complexa, mas a longo prazo este tipo configuração é mais complexa, mas a longo prazo este tipo de configuração pode oferecer ganhos maiores da de configuração pode oferecer ganhos maiores da produtividade do usuário e uma eficiência maior da rede.produtividade do usuário e uma eficiência maior da rede.

Presentation logic

Application logic

Database logic

DBMS

Client Server

Database logic

(d)(d)

Page 27: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

As figuras (c) e (d) correspondem às configurações em As figuras (c) e (d) correspondem às configurações em que uma fração considerável da carga está no cliente. É que uma fração considerável da carga está no cliente. É chamado de modelo cliente gordo.chamado de modelo cliente gordo.

Traz como principal benefício a vantagem do Traz como principal benefício a vantagem do processamento de aplicação offloading nos servidores, processamento de aplicação offloading nos servidores, aumentando a eficiência e diminuindo prováveis aumentando a eficiência e diminuindo prováveis engarrafamentos. Porém o aumento de funções engarrafamentos. Porém o aumento de funções sobrecarrega rapidamente a capacidade da máquina.sobrecarrega rapidamente a capacidade da máquina.

Page 28: Sistemas Operacionais

Classes de Aplicações Cliente-ServidorClasses de Aplicações Cliente-Servidor

A figura (b) representa um cliente magro. Refere-se a A figura (b) representa um cliente magro. Refere-se a camada de software que suporta uma interface para o camada de software que suporta uma interface para o usuário baseado em janelas no cliente enquanto a usuário baseado em janelas no cliente enquanto a execução da aplicação é feita em um servidor.execução da aplicação é feita em um servidor.

Page 29: Sistemas Operacionais

Arquitetura Cliente-Servidor Three-TierArquitetura Cliente-Servidor Three-Tier

A arquitetura cliente/servidor tradicional envolve duas A arquitetura cliente/servidor tradicional envolve duas camadas, ou tiers: uma camada do cliente e uma do camadas, ou tiers: uma camada do cliente e uma do servidor. A arquitetura de três-camadas vem se servidor. A arquitetura de três-camadas vem se tornando cada vez mais comum.tornando cada vez mais comum.

Nesta arquitetura, o software de aplicação é distribuído Nesta arquitetura, o software de aplicação é distribuído entre três tipos de máquinas:uma máquina do usuário, entre três tipos de máquinas:uma máquina do usuário, um servidor middle-tier, e um servidor backend. A um servidor middle-tier, e um servidor backend. A máquina do usuário é o cliente e, no modelo three-tier, máquina do usuário é o cliente e, no modelo three-tier, temos um cliente magro. As máquinas middle-tier são temos um cliente magro. As máquinas middle-tier são essencialmente passagens entre os clientes magros do essencialmente passagens entre os clientes magros do usuário e uma variedade de servidores backend da base usuário e uma variedade de servidores backend da base de dados. As máquinas middle-tier podem converter de dados. As máquinas middle-tier podem converter protocolos e mapear um tipo de pergunta da base de protocolos e mapear um tipo de pergunta da base de dados a outro.dados a outro.

Page 30: Sistemas Operacionais

Consistência do Arquivo CacheConsistência do Arquivo Cache

Quando um arquivo do servidor é usado, o desempenho do Quando um arquivo do servidor é usado, o desempenho do arquivo I/O pode ser degradado no acesso local do arquivo arquivo I/O pode ser degradado no acesso local do arquivo devido o atraso imposto pela rede.devido o atraso imposto pela rede.

Para reduzir esta penalidade do desempenho, os sistemas Para reduzir esta penalidade do desempenho, os sistemas individuais podem usar arquivos cache para acessar individuais podem usar arquivos cache para acessar registros recentemente acessados.registros recentemente acessados.

Por causa do princípio de localidade, o uso de um arquivo Por causa do princípio de localidade, o uso de um arquivo cache local deve reduzir o número de acessos remotos do cache local deve reduzir o número de acessos remotos do servidor que devem ser feitos. servidor que devem ser feitos.

Page 31: Sistemas Operacionais

Quando os caches contêm cópias exatas de dados remotos, Quando os caches contêm cópias exatas de dados remotos, nós dizemos que os caches são consistentes. Os cachês nós dizemos que os caches são consistentes. Os cachês tornam-se inconsistentes quando os dados remotos são tornam-se inconsistentes quando os dados remotos são mudados e as cópias locais antigas não estão rejeitadas. mudados e as cópias locais antigas não estão rejeitadas.

Problema da consistência do cache:Problema da consistência do cache:Manter cópias locais dos caches de dados remotos.Manter cópias locais dos caches de dados remotos.

Para evitar este problema, deve-se usar técnicas para Para evitar este problema, deve-se usar técnicas para impedir o acesso simultâneo a um arquivo por mais de um impedir o acesso simultâneo a um arquivo por mais de um cliente. Isto garante a consistência à custa do desempenho cliente. Isto garante a consistência à custa do desempenho e flexibilidade.e flexibilidade.

Consistência do Arquivo CacheConsistência do Arquivo Cache

Page 32: Sistemas Operacionais

MiddlewareMiddleware

É uma camada adicional de software usada não só É uma camada adicional de software usada não só para ocultar a heterogeneidade da coleção de para ocultar a heterogeneidade da coleção de plataformas, mas também para melhorar a plataformas, mas também para melhorar a distribuição de transparência.distribuição de transparência.

Ela é colocada entre as aplicações e o sistema Ela é colocada entre as aplicações e o sistema operacional de rede, oferecendo um alto nível de operacional de rede, oferecendo um alto nível de abstração. Assim, tais aplicações não fazem uso direto abstração. Assim, tais aplicações não fazem uso direto da interface de programação.da interface de programação.

Page 33: Sistemas Operacionais

Arquitetura MiddlewareArquitetura Middleware

Presentation services

Application logic

Communicationssoftware

Clientoperating system

Client Workstation

Middleware

Hardware platform

Middleware

Communicationssoftware

Aplicationsservices

Server operating system

Hardware platform

ServerMiddlewareinteraction

Protocolinteraction

A finalidade básica do middleware é A finalidade básica do middleware é permitir que uma aplicação ou um usuário permitir que uma aplicação ou um usuário em um cliente acesse uma variedade dos em um cliente acesse uma variedade dos serviços no servidor sem que haja serviços no servidor sem que haja preocupação sobre diferenças entre preocupação sobre diferenças entre usuários. usuários.

Page 34: Sistemas Operacionais

BibliografiaBibliografia

LivrosLivros

Stallings, William. Operating Systems – Internals and Design Principles.Stallings, William. Operating Systems – Internals and Design Principles.Prentice Hall, 2001.Prentice Hall, 2001.Distributed Systems. Edited by Sape Mullender.Distributed Systems. Edited by Sape Mullender.

SitesSites

http://www.cs.montana.edu/courses/current/418/cs418-15.pdfhttp://www.cs.montana.edu/courses/current/418/cs418-15.pdfhttp://discolab.rutgers.edu/users/muralir/cs519-fall98/http://discolab.rutgers.edu/users/muralir/cs519-fall98/http://www.din.uem.br/~cfmoro/download/coulouris_cap2.PDFhttp://www.din.uem.br/~cfmoro/download/coulouris_cap2.PDFhttp://wwwhome.cs.utwente.nl/~pires/publications/sbrc2001-p1.pdfhttp://wwwhome.cs.utwente.nl/~pires/publications/sbrc2001-p1.pdfhttp://www.dc.ufscar.br/~paulovic/MidSDs.pdfhttp://www.dc.ufscar.br/~paulovic/MidSDs.pdf