Você está na página 1de 22

Migrao de Cdigo

Prof. Raul Ceretta Nunes


Curso de Cincia da Computao ELC1018 - Sistemas Distribudos
1

Tipos de transparncias
G

de acesso - esconde diferenas na representao de dados e em como os recursos so acessados. Ex: conversao entre diferentes sistemas de arquivos; de localizao de migrao de relocao - mobilidade sem desconexo de replicao de concorrncia de defeitos de persistncia
2

G G G G G G G

Migrao de cdigo
G

Principal objetivo
hmelhorar desempenho

Foco atual
hminimizar a comunicao ao invs de otimizar a computao

Razo para a Migrao de Cdigo


G

Configurao dinmica de um cliente para se comunicar um um servidor: o cliente primeiro busca o software necessrio e ento invoca o servidor.

Migrao de cdigo
G

Exemplos:
h um BD lento deve ser acessado por um cliente para manipular grande volumes de dados. Ao invs de transferir os dados, processar no cliente e transferir novamente, uma soluo migrar o cliente para a mquina servidora. h Se um cliente deseja preencher um grande formulrio, ao invs de transmitir um grande nmero de pequenas mensagens pode-se migrar parte do servidor (programa de preenchimento) para o cliente. h Se para conversar com o servidor o cliente precisa de software especfico, ao invs de ter o software pr-instalado no cliente, este pode receber o software ao solicitar o bind ao servidor.

Modelos de migrao
G

processo = cdigo + recursos + execuo


hcdigo = conjunto de instrues hrecursos = arquivos, impressoras, ... hexecuo = pilha do processo, PC, regs

mobilidade fraca = migra somente cdigo


hcaracterstica = processo sempre reinicializado

mobilidade forte = migra cdigo e execuo


hcaracterstica = processo reiniciado de onde parou
6

Ativao da migrao
G

Migrao iniciada pelo emissor


h emissor migra programa para servidor. Ex: cliente envia programa para realizar um lote de requisies a um dado servidor h problema o servidor precisa conhecer todos os seus clientes para poder dar acesso ao seus recursos

Migrao iniciada pelo recebedor


h servidor migra programa para cliente. Ex: applets Java h mais simples de implementar, pois servidor no tem interesse nos recursos do cliente. Cliente s necessita proteger recursos como memria e conexes de rede
7

Execuo do cdigo migrado


G

Na mobilidade fraca:
hprocesso pode ser executado no espao de endereamento do recebedor hprocesso pode ser executado como um processo separado.

Na mobilidade forte:
ho prprio processo pode migrar hpode-se migrar um clone do processo
8

Alternativas para migrao de cdigo

Tipos de ligao aos recursos locais


G

Ligao (bind) processo-recurso:


hpor identificador - Ex: ligao via endereo de rede (URL ou
IP/porta)

hpor valor - Ex: ligao via varivel de ambiente que indica path
para uma lib ou compilador

hpor tipo - Ex: ligao a uma impressora local especfica


G

Ligao recurso-mquina:
hrecursos desacoplados - fcil mobilidade. Ex: arquivos hrecursos fastened - podem ser movidos mas a altos custos. Ex:
BD e servidores web

hrecursos fixos - Ex: dispositivos locais fixos

10

Migrao e Recursos Locais


Ligao recurso-mquina
GUnattached GFastened GGR GFixed GGR GGR GRB

Ligao processorecurso

GBy

identifier GBy value GBy type


GR MV CP RB

GMV

(or GR) GCP ( or MV, GR) GRB (or GR, CP)

(or MV) GGR (or CP) GRB (or GR,CP)

(or GR)

estabelece referncia global (systemwide) move recursos copia valor para recurso realiza um rebind a um recurso disponvel localmente

Aes realizadas com as referncias aos recursos locais quando o cdigo migra para outra mquina.
11

recurso fixo e ligao por valor: um processo assume que a memria pode ser compartilhada entre processos.
hA migrao do processo implica num mecanismo de gerncia de memria compartilhada distribuda.

12

Migrao em sistemas heterogneos


G G

Mobilidade fraca - cdigo pode ser recompilado Mobilidade forte - segmento de execuo precisa
ser convertido para mquina alvo

Solues possveis:
hinstrumentar compilador para gerar pilha de migrao. A chamada e o retorno de uma subrotina disparam escrita hfazer uso de linguagens multiplataforma (bytecodes java)

13

DAgents
G

Middleware que suporta migrao Idia chave: usar interpretadores de linguagem


hTcl, Shema e Java

Suporta:
hMobilidade fraca iniciada pelo emissor (agent_submit) hMobilidade forte por migrao de processo (agent_jump) hMobilidade forte por clonagem de processo (agent_fork)
14

Mobilidade Fraca no DAgents


proc factorial n { if ($n 1) { return 1; } expr $n * [ factorial [expr $n 1] ] } set number set machine # tells which factorial to compute # identify the target machine # fac(1) = 1 # fac(n) = n * fac(n 1)

agent_submit $machine procs factorial vars number script {factorial $number }

agent_receive

# receive the results (left unspecified for simplicity)

Agente Tcl submetendo script a uma mquina remota

15

Mobilidade Forte no DAgents


proc all_users machines { set list "" foreach m $machines { agent_jump $m set users [exec who] append list $users } return $list } set machines set this_machine # Create an initially empty list # Consider all hosts in the set of given machines # Jump to each host # Execute the who command # Append the results to the list # Return the complete list when done # Initialize the set of machines to jump to # Set to the host that starts the agent

# Create a migrating agent by submitting the script to this machine, from where # it will jump to all the others in $machines. agent_submit $this_machine procs all_users -vars machines -script { all_users $machines } agent_receive #receive the results (left unspecified for simplicity) 16

Agente Tcl migrando para diferentes mquinas remotas

Arquitetura do DAgents

17

Partes de um Agente DAgents


Status Global interpreter variables Global system variables Global program variables Procedure definitions Stack of commands Stack of call frames Description Variables needed by the interpreter of an agent Return codes, error codes, error strings, etc. User-defined global variables in a program Definitions of scripts to be executed by an agent Stack of commands currently being executed Stack of activation records, one for each running command

18

Software Agents in Distributed Systems


Property Autonomous Reactive Proactive Communicative Continuous Mobile Adaptive Common to all agents? Yes Yes Yes Yes No No No Description Can act on its own Responds timely to changes in its environment Initiates actions that affects its environment Can exchange information with users and other agents Has a relatively long lifespan Can migrate from one site to another Capable of learning

Some important properties by which different types of agents can be distinguished.


19

Agent Technology
G

The general model of an agent platform (adapted from [fipa98-mgt]).

20

Agent Communication Languages (1)


G

Examples of different message types in the FIPA ACL [fipa98-acl], giving the purpose of a message, along with the description of the actual message content.
Description Inform that a given proposition is true Query whether a given proposition is true Query for a give object Ask for a proposal Provide a proposal Tell that a given proposal is accepted Tell that a given proposal is rejected Request that an action be performed Subscribe to an information source Message Content Proposition Proposition Expression Proposal specifics Proposal Proposal ID Proposal ID Action specification Reference to source
21

Message purpose INFORM QUERY-IF QUERY-REF CFP PROPOSE ACCEPT-PROPOSAL REJECT-PROPOSAL REQUEST SUBSCRIBE

Agent Communication Languages (2)


Field Purpose Sender Receiver Language Ontology Content
G

Value INFORM max@http://fanclub-beatrix.royalty-spotters.nl:7239 elke@iiop://royalty-watcher.uk:5623 Prolog genealogy female(beatrix),parent(beatrix,juliana,bernhard)

A simple example of a FIPA ACL message sent between two agents using Prolog to express genealogy information.
22