Servidor

Servidor..
Figura 1: execução do RPC.



Servidor

#********************************************************************
# Autor:        ubiratã uaatsim itza I.
# Data:         17/03/2014
# Hora:         17:40:06
#*********************************************************************
# Arquivo:      servidorchavevalor9.py
#
# Descrição:    O arquivo servidorchavevalor9.py executou bem apareceu
#               os métodos porém, não realiza nunhuma operação sem dar
#               erro.
#
# Uso:          from servidorchavevalor9 import ServidorChaveValor
#               s = ServidorChaveValor
#               s.      --> aparecem os métodos e atributos disponíveis.
#
#*********************************************************************

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ()


v_dicionario = {'tan':88}
v_acesso = {'técnico':77,'administrador':66,'komum':33}
v_conectado = [1,2]

servilo = SimpleXMLRPCServer(("127.0.0.1", 15000), allow_none = True, requestHandler=RequestHandler) # Cria o servidor
servilo.register_introspection_functions()

class ServidorChaveValor():
       
        def __init__(self):
            self.nome = 't'

        def acesso(nome_terminal):
            """Gerencia o acesso ao terminal.
            """
            v_conectado[0] = nome_terminal
            if nome_terminal == v_acesso['técnico']:
                    print('Conectado:', v_acesso['técnico'])
            elif nome_terminal == v_acesso['administrador']:
                    print('Conectado:', v_acesso['administrador'])
            elif nome_terminal == v_acesso['komum']:
                    print('Conectado:', v_acesso['komum'])
            else:
                    print('Acesso negado! Não conectado.')
        servilo.register_function(acesso, 'acesso')
       
        def versao():
            """Exibe a versão do RPC.
            """
            print('RPC Versão 9.')
        servilo.register_function(versao, 'versao')
           
        def busca(v_chave):
            """Retorna o valor através da chave.
            """
            if v_conectado[0] == v_acesso['administrador']:
                    print('Busca com sucesso!')
                    return v_dicionario[v_chave]
            else:
                    print('Acesso negado! Não buscado.')
        servilo.register_function(busca, 'busca')

        def insere(v_chave, v_valor):
            """Inseri uma chave/valor no dicionário.
            """
            if v_conectado[0] == v_acesso['administrador']:
                    v_dicionario[v_chave] = v_valor
                    print('Dado inserido com sucesso!')
            else:
                    print('Acesso negado! Não inserido.')
        servilo.register_function(insere, 'insere')

        def apaga(v_chave):
            """Apaga uma chave.
            """
            if v_conectado[0] == v_acesso['administrador']:
                    del v_dicionario[v_chave]
                    print('Dado removido com sucesso!')
            else:
                    print('Acesso negado! Não apagado.')
        servilo.register_function(apaga, 'apaga')

        def mostra():
            """Mostra o dicionário.
            """
            if v_conectado[0] == v_acesso['técnico']:
                     print(v_dicionario.keys())
            else:
                    print('Acesso negado! Não mostrado.')
                    return -1
        servilo.register_function(mostra, 'mostra')

        def executa():
            """Executa o servidor infinitamente!
            """
            if v_conectado[0] == v_acesso['administrador']:
                    try:
                            servilo.server_close()
                            print ('Use "Control-C" para encerrar o servidor 2.')
                            servilo.serve_forever()
                    except KeyboardInterrupt:
                            servilo.server_close()
                            print ('Saída 2!')
            else:
                    print('Acesso negado! Não executado.')
        servilo.register_function(executa, 'executa')

        def fecha():
                servilo.server_close()
        servilo.register_function(fecha,'fecha')

servilo.register_instance(ServidorChaveValor())


if __name__ == '__main__':
     try:
        print ('Use "Control-C" para encerrar o servidor 1.')
        servilo.serve_forever()
     except KeyboardInterrupt:
             servilo.server_close()
             print ('Saída 1!')
#************************************************************************











#********************************************************************
# Autor:        ubiratã uaatsim itza I.
# Data:         25/02/2014
# Hora:         10:30:06
#*********************************************************************
# Arquivo:      servidorRCP.py
#
# Descrição:    O arquivo servidorRPC.py executou bem apareceu
#               os métodos porém, não realiza nunhuma operação sem dar
#               erro.
#
# Uso:          from servidorRPC import ServidorRPC
#               s = ServidorRPC
#               s.      --> aparecem os métodos e atributos disponíveis.
#
#
#               Pode ser "127.0.0.1" ou 'localhost' ou 'xxx.xxx.xx.xxx'
#
#*********************************************************************

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

from pessoa import Pessoa
from experimento import Experimento
from temperatura import Temperatura
from luminosidade import Luminosidade
from data import Data
from hora import Hora
from maquina import Maquina

class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ()

v_dicionario = {'tan':88}
v_acesso = {'técnico':77,'administrador':66,'komum':33}
v_conectado = [1,2]

servilo = SimpleXMLRPCServer(("localhost", 15000), allow_none = True, requestHandler=RequestHandler)
servilo.register_introspection_functions()

class ServidorRPC():
       
        def __init__(self):
            self.nome = 'RPC'

        def acesso(nome_terminal):
            """Gerencia o acesso ao terminal.
            """
            v_conectado[0] = nome_terminal
            if nome_terminal == v_acesso['técnico']:
                    print('Conectado:', v_acesso['técnico'])
            elif nome_terminal == v_acesso['administrador']:
                    print('Conectado:', v_acesso['administrador'])
            elif nome_terminal == v_acesso['komum']:
                    print('Conectado:', v_acesso['komum'])
            else:
                    print('Acesso negado! Não conectado.')
            return nome_terminal
        servilo.register_function(acesso, 'acesso')
       
        def versao():
            """Exibe a versão do RPC.
            """
            print('RPC Versão 9.')
        servilo.register_function(versao, 'versao')
           
        def executa():
            """Executa o servidor infinitamente!
            """
            if v_conectado[0] == v_acesso['administrador']:
                    try:
                            servilo.server_close()
                            print ('Use "Control-C" para encerrar o servidor 2.')
                            servilo.serve_forever()
                    except KeyboardInterrupt:
                            servilo.server_close()
                            print ('Saída 2!')
            else:
                    print('Acesso negado! Não executado.')
        servilo.register_function(executa, 'executa')

        def fecha():
                servilo.server_close()
        servilo.register_function(fecha,'fecha')

        def mostra():
            """Mostra o dicionário.
            """
            if v_conectado[0] == v_acesso['técnico']:
                     print(v_dicionario.keys())
            else:
                    print('Acesso negado! Não mostrado.')
                    return -1
        servilo.register_function(mostra, 'mostra')
#-----------------------------------------------------------------------------
        def passo1():
            '''Usando a classe Pessoa.
            '''
            if v_conectado[0] == v_acesso['administrador']:
                print('Acessando o cadastrada do grupo.')
                Pessoa.cadastro_informacoes()
                Pessoa.cadastro_senhausuario()
                return('Grupo acadastrado com sucesso!')
               # except:
               #     return('Erro de grupo')
            else:
                print('Acesso negado! Grupo protegido.')
        servilo.register_function(passo1, 'passo1')

        def passo2():
           '''Usando a classe  experimento.
           '''
           if v_conectado[0] == v_acesso['administrador']:
               try:
                   print('Acessando o experimento.')
                   Experimento.cadastro_experimento()
                   return('Experimento cadastrado com sucesso!')
               except:
                   return('Erro experimento.')
           else:
                return('Acesso negado! Experimento protegido.')
        servilo.register_function(passo2, 'passo2')
       
        def passo3():
            '''Usando a classe data.
            '''
            if v_conectado[0] == v_acesso['administrador']:
               try:
                   print('Acessando a data.')
                   datainicio = input('Entre com a data inicial : ')
                   Data.define_datainicio(datainicio)
                   datafinal = input('Entre com a data final: ')
                   Data.define_datafinal(datafinal)
                   return('Datado com sucesso!')
               except:
                   return('Erro data.')
            else:
                return('Acesso negado! Data protegido.')
        servilo.register_function(passo3, 'passo3')

        def passo4():
            '''Usando a classe temperatura.
            '''
            if v_conectado[0] == v_acesso['administrador']:
               try:
                    print('Acessando a temperatura.')
                    horasx = int(input('Entre quantidade de horas/dia T: '))
                    Temperatura.quantidade_horasdiaT(horasx)
                    Temperatura.define_temperaturaprogramada()
                    return('Quantidade de temperaturas definidas.')
               except:
                   return('Erro temperatura.')
            else:
               return ('Acesso negado! Temperatura protegido.')
        servilo.register_function(passo4, 'passo4')

        def passo5():
            '''Usando a classe luminosidade.
            '''
            if v_conectado[0] == v_acesso['administrador']:
               try:
                   print('Acessando a luminosidade.')
                   horasy = int(input('Entre quantidade de horas/dia L: '))
                   Luminosidade.quantidade_horasdiaL(horasy)
                   Luminosidade.define_luminosidadeprogramada()
                   return('Quantidade de luminosidades definidas.')
               except:
                   return ('Erro luminosidade.')
            else:
                return('Acesso negado! Luminosidade protegido.')
        servilo.register_function(passo5, 'passo5')

        def passo6():
            '''Usando a classe máquina.
            '''
            if v_conectado[0] == v_acesso['administrador']:
               print('Acessando a máquina.')
           #    Maquina.verifica_temperatura()
           #    Maquina.verifica_luminosidade()
           #    Maquina.verifica_horario()
           #    Maquina.verifica_data()
               return('Máquina executando.')
            else:
                return('Acesso negado! Máquina protegido.')
        servilo.register_function(passo6, 'passo6')

servilo.register_instance(ServidorRPC())


if __name__ == '__main__':
     try:
        print ('Use "Control-C" para encerrar o servidor 1.')
        servilo.serve_forever()
     except KeyboardInterrupt:
             servilo.server_close()
             print ('Saída 1!')
#************************************************************************


.

Nenhum comentário:

Postar um comentário