Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Sistemas DistribuídosCapítulo 1: Introdução
J. Alves Marques
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Índice
• Definição de sistema distribuído
• Razões para a distribuição
• Evolução tecnológica
• Evolução do enquadramento económico
• Plataformas de suporte aos sistemas distribuídos
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Sistemas Distribuídos:Definições …
[…] is one in which the failure of a computer you didn't even know existed can render your own computer unusable.
Leslie Lamport
[…] is a collection of loosely coupled processors interconnected by a communication network. Processors do not share memory or clock.
A. Silberschatz
[…] is a collection of independent computers that appear to the users of the system as a single computer.
A. Tanenbaum
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Sistemas Distribuídos: Definição
• Um sistema distribuído possui as seguintes características:– Várias máquinas independentes, e potencialmente:
• Heterogéneas;• Administradas por diferentes organizações com regras diferentes de segurança, de gestão, etc.
– Redes de interligação entre essas máquinas;– Não há estado partilhado entre as várias máquinas.
• Uma máquina multiprocessador autónoma não é(nesta óptica) um sistema distribuído
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Middleware
Aplicações
Middleware
Sistema
Operativo
Bibliotecas (DLL)
Protocolos
Servidores
Hardware
Plataformas
Os Sistemas
Distribuídos são
suportados por
diversas
componentes
frequentemente
designadas por
plataformas de
Middleware
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Problemas Agudizados pela Distribuição
• Comunicação exclusivamente por mensagem– Modelo de programação mais difícil– Novos tipos de erros (timeout, …)
• Modelo de faltas mais complexo– Máquinas falham independentemente– Redes podem perder pacotes, trocar a sua ordem, ...
• Conhecimento parcial do estado do sistema– Das outras máquinas, só se sabe realmente que uma mensagem chegou, ou não chegou
– Uma mensagem não chegou porque• Se perdeu ?• O emissor falhou ?• O emissor está muito lento ?
– Podemos nunca saber ao certo!!
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Problemas Agudizados pela Distribuição
• Distribuição do sistema operativo– Mais difícil de realizar mecanismos atómicos de sincronização, coordenação
• Segurança– Intrusos podem ler mensagens em trânsito, injectar novas mensagens– Não existe controlo sobre o software sistema e aplicações remotas
• Heterogeneidade– Máquinas com representações de dados diferentes, sistemas operativos diferentes, representação de dados
• Desempenho– Acesso remoto é necessariamente mais lento– O termo de comparação de muitos utilizadores são as máquinas locais!!
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Razões que justificaram a Distribuição
• Distribuição geográfica– Organização com instalações em Lisboa, Porto, Paris, …– Ligação entre organizações independentes
• Extensibilidade, modularidade– Crescimento gradual
• Partilha de recursos– Troca de informação entre departamentos, empresas
• Maior disponibilidade– Replicação
• Maior desempenho– Distribuição da carga
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
O que tornou os Sistemas Distribuídos tão importantes
• Tecnologia– Redes de Computadores
– Computadores Pessoais
– Sistemas Abertos
– Arquitectura de Computadores
• Requisitos Empresariais– Necessidade de integração do negócio
– Novas necessidades empresariais suportadas por novas tecnologias
– Digitalização• Lei de Moore
• Efeito de Rede – Lei de Metcalf
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução das Redes de Computadores
• Redes Telefónicas• Linhas Dedicadas fornecidas pelos Operadores de Telecomunicações
• Oferta de Redes de dados pelos operadores públicos– X.25– RDIS– ATM
• Redes locais• Internet• ADSL, Rede de Televisão por Cabo, • GPRS, UMTS, WiFi, WiMax
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Redes Actuais
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Consequências da Evolução das Redes de Computadores
• Todos os computadores ligados à rede local• Todas as redes locais interligadas entre si• Alto débito, baixo preço• Interligação de TODOS os computadores (empresas, organizações, domésticos, …)
• Interligação de TODOS os dispositivos (Laptops, telemóveis, PDA, automóvel, frigoríficos, …)
• Interligação de cartões inteligentes, Tags RFID, etc.
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução dos Computadores Pessoais
• Equipamentos simples, completos e autónomos• Baixo custo• Interface atraente e simples• Mercado dominado por Wintel• Miríade de aplicações• Os PDA e os telefones móveis são computadores• Todos os equipamentos sofisticados têm computadores• Cartões inteligentes, tags RFID são computadores (ainda com recursos muito limitados)
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução da Arquitectura de Computadores
• Grande aumento da– Potência de cálculo
– Capacidade de memória
– Capacidade de disco
• Possibilidade de utilização de plataformas standard
• Multiprocessamento económico e eficaz
• Alguma uniformização das plataformas de sistema operativo e software de base– Sistemas operativos (Unix, Windows, IBM MVS)
– Bases de dados (Oracle, SQL-Server, DB2)
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Sistemas Abertos
• Normalização oficial e de facto em muitos aspectos chave– Computadores pessoais (Wintel)– Protocolos de rede (TCP/IP, WWW, W3C, OASIS)– Servidores Unix, Windows-NT, Mainframes IBM MVS– Acesso a bases de dados (SQL, ODBC)– Interligação de aplicações (DCOM, CORBA)– Web Services – SOAP, XML
• Consequências– Tecnologia disponível– Grande número de alternativas– Preços competitivos
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Papel determinante da Internet
• Rede de Comunicação Aberta
• Alteração do padrão de utilização dos serviços de telecomunicações
• Desenvolvimento de Standards de facto que permitiram criar novas forma de trocar informação – HTTP, HTML, XML
• Criação de ambientes de desenvolvimento simplificados, ex.: PHP, Pearl
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Plataformas de suporte aos Sistemas Distribuídos
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução Histórica
• Na análise dos Sistemas Distribuídos há duas importantes perspectivas a considerar:– A evolução ditada pelas redes Locais e portanto baseadas em redes relativamente fiáveis, com elevado débito e com um confinamento de segurança maior
– A evolução ditada pelas redes públicas inicialmente limitadas em banda passante mas progressivamente com melhor desempenho e com limitada segurança e garantia de serviço
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução Histórica
• Os primeiros sistemas distribuídos foram implementados por grandes organizações e pelas Universidades
• Arpanet em 1969 uma rede de 4 nós patrocinada pelo DoD que interligou universidades, com 50 nós em 1972
• Redes especializadas
– Swift – transferências de dinheiro internacionais
– IATA – reservas de aviação
• A maioria dos grandes fabricantes desenvolveu arquitecturas de rede durante os anos 70
• SNA – IBM
• DNA – DEC
• DCA – Sperry
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Interfaces de Comunicação
Máquina A
OS kernel
Níveis
7 a 5
Níveis
7 a 5
Sockets, TLI
Níveis
3 a 1
Níveis
3 a 1
Máquina B
OS kernel
Níveis
7 a 5
Níveis
7 a 5aplicaçãoaplicação
Sockets, TLI
Níveis
3 a 1
Níveis
3 a 1
aplicaçãoaplicação
Nível 4
Transporte
Nível 4
TransporteNível 4
Transporte
Nível 4
Transporte
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Interfaces de Comunicação
• Interacção baseada na troca de mensagens – Facilidade de transporte para múltiplos sistemas
• Exploração das APIs normais de comunicação– Tipicamente da API de transporte (sockets)– HTML
• Problemas:– Cada aplicação possui um protocolo próprio– Dificulta a utilização do protocolo por terceiros– Desempenho porque é executado em modo utilizador
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Exemplos
• telnet, rlogin, Winrdp- aplicações de terminal remoto
• ftp, samba – Transferência de ficheiros
• SMTP – Correio electrónico
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Plataformas cliente/servidor
• Interacção via RPC (Remote Procedure Call)– Definição clara de interfaces de serviços– Linguagem de especificação de interfaces– Ambiente de desenvolvimento
• Serviços fornecidos pelos SO– Gestão de nomes– Sistema de ficheiros distribuído– Sincronização de relógios
• Mecanismos de segurança– Autenticidade– Privacidade
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução das Plataformas
• 1987– Sun Microsystems – desenvolveu o Open Network Computing (ONC) como base do sistema do Network File System
– Apollo Computer desenvolveu o Network Computing System (NCS) –RPC
• 1989– A Open Software Foundation (OSF) lançou um concurso para definir a plataforma distribuída o Distributed Computing Environment – DCE
– A Object Management Group (OMG) foi formado para definir uma plataforma de suporte a programação distribuída independente das linguagens de programação o Common Object Request Broker Architecture (CORBA)
• 1990– A Microsoft baseou a definição do MRPC no proposto pela OSF
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Plataformas cliente-servidor
Máquina A
Níveis
6 a 5
Nível 4
Transporte
Nível 7
aplicação
RPC run-time support
Sockets, TLI
Serviço do SO
(cliente)
Serviço do SO
(cliente)Serviço do SO
(servidor)
Serviço do SO
(servidor)Serviço do SO
(cliente)
Serviço do SO
(cliente)Serviço do SO
(servidor)
Serviço do SO
(servidor)aplicaçãoaplicação
Níveis
3 a 1
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Exemplo – Sistemas de Ficheiros Distribuido
E/S
Gestão de
memória
Comunicação
entre processos
Gestão de
processos
aplicaçãoaplicação
Sistema de ficheirosSistema de ficheiros
E/S
Gestão de
memória
Comunicação
entre processos
Gestão de
processos
aplicaçãoaplicação
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Exemplos
• ONC - Open Networking Computing – Sun Microsystems
• DCE - Distributed Computing Environment – Open Software Foundation
• DCOM – Distributed Component Object Model -Microsoft
• Common Object Request Broker Architecture (CORBA) -Object Management Group (OMG)
• RMI do Java
• SOAP – protocolo de invocação remota de Web services
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução (II)
• 1991– A OSF distribui o DCE 1.0– O CORBA 1.0 é distribuído com suporte para C. É definido o conceito de Object Request Broker - ORB
• 1993– A IBM distribui um produto para comunicação por mensagem entre aplicações o MQSeries
• 1996– A Microsoft distribui o Distributed Component Object Model (DCOM) relacionado com os desenvolvimentos anteriores do OLE, COM e ActiveX. O núcleo do DCOM baseia-se nas tecnologias de RPC da Microsoft que se pode considerar um Object RPC (ORPC)
– CORBA 2.0. Uma das evoluções é o modelo de comunicações entre ORB o Internet Inter-ORB Protocol (IIOP) que permite a ORB de vendedores diferentes cooperarem
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Sistemas de Objectos
• As potencialidades da noção de objecto tornaram-na atractiva para descrever diversos conceitos em Eng. Informática, dando origem a uma tendência de evolução que se designa por OO de Object Oriented.
• Diferenças entre a aproximação baseada em objectos e uma arquitectura cliente-servidor,:– No RPC invocam-se funções, os dados são entidades separadas,,– Num sistema de objectos invoca-se uma função num determinado objecto que, como contém o seu próprio estado, torna indissociável a invocação da operação dos dados a que se aplica.
• Existem vários sistemas comerciais com níveis de abstracção diferentes os mais representativos são: – Corba Common Object Request Broker Architectura – OMG– COM+ da Microsoft.– Entreprise Java Beans – Sun
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
m4
m5
m6
Interface Remota
m1m2m3
Código dos
métodos
Dados
Objecto remoto
Invocação de Objectos Remotos
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Evolução
• 1997– A Sun distribui o JDK 1.1 que inclui o Remote Method Invocation (RMI) que define um modelo de computação distribuída usando objectos Java. O RMI ésemelhante ao CORBA e ao DCOM mas funciona só com objectos Java.
– Microsoft desenvolveu o COM+ sucessor do DCOM muito próximo do modelo CORBA.
• 1999– A SUN distribui o Java 2 Platform Entreprise Edition (J2EE) que integra o RMI e o IIOP tornando mais simples a interoperação de sistemas entre sistemas Java e CORBA.
– O Simple Object Acess Protocol – SOAP apareceu pela primeira vez.• 2001
– A IBM e a Microsoft propõem as pilhas de protocolos dos Web Services à W3C (World Wide Web Consortium)• Wire stack• Description stack• Discovery stack
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Brokers de Mensagens
• A integração é feita através do encaminhamento de informação (mensagens) entre os sistemas.
• As aplicações recebem e enviam as mensagens para um servidor central (broker).
• As mensagens uma vez recebidas pelo broker podem ser reformatadas, combinadas ou modificas por forma a serem entendidas pelo sistema de destino.
• Normalmente não é necessário modificar os sistemas envolvidos. Os Message Brokers fornecem adaptadores para as aplicações mais comuns (SAP, Baan, PeopleSoft, etc.).
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Exemplos
• Java Messages – gestão de filas de mensagens da plataforma J2EE.
• MSMQ – sistemas de filas de mensagens da Microsoft
• MQseries – IBM
• Active Entreprise – Tibco
• Biztalk – Enterprise integration broker da Microsoft
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Sistema Operativo Distribuído
aplicaçãoaplicação
Sistema de ficheirosSistema de ficheiros
E/SE/S
Gestão de memóriaGestão de memória
Comunicação entre processosComunicação entre processos
Gestão de processosGestão de processos
Micro núcleo Micro núcleo
Page
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Exemplos
• Mach - [Acceta86], • Chorus [Zimmerman81], • V-Kernel• Amoeba [Tanenbaum81]
Devido à complexidade de integração esta arquitectura apenas teve expressão na investigação e foi em grande medida ultrapassada pela escala que a Internet impôs a estes sistemas
Departamento de Engenharia Informática
2/28/2007 Sistemas Distribuídos
Formas de Realizar a Distribuição
• Utilização das interfaces de comunicação distribuída –sockets, TLI
• Plataformas Cliente Servidor– Sun RPC, ODBC,
• Brokers de Mensagens – Message Oriented Middleware– MQ series, MSMQ, Biztalk
• Integração de componentes– Corba RMI, .NET
• Sistemas Operativos Distribuídos - distribuição de todos os serviços sistema– Mach, Chorus
• Web Services
SO e
Redes
SD
SD
SD
SEI
SEI
PADI
Top Related