Feb 24

Una forma para realizar comunicación entre los prims internos de OpenSimulator o Second Life y el mundo externo es a través del uso de XML-RPC el cual permite enviar mensajes a un objeto dentro de una región, siempre y cuando este se haya registrado para recibir dicha comunicación.

Crear Script para Recibir Datos :

  • Abrir nuestro visor favorito y entrar al servidor de OpenSimulator o SecondLife
  • Crear un objeto
  • Adicionar un Script
  • Abrir el script
  • Colocar el siguiente codigo :
    default {
       state_entry()
       {
          llOpenRemoteDataChannel();
       }
    
       remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval) {
          if(type == REMOTE_DATA_CHANNEL) {
             llOwnerSay("Canal : " + (string) channel + "");
          }
          else if(type == REMOTE_DATA_REQUEST) {
             llRemoteDataReply(channel,NULL_KEY,"Exito",1221);
             llOwnerSay("Cadena : " + sval + "nNumero: " + (string) ival);
          }
          else {
             llOwnerSay("Error");
          }
       }
    }
  • Guardar
  • En este momento el servidor debe compilar el script y muestra en el chat :
    [11:54]  Compile successful
    [11:54]  Primitive: Canal : 61b5e9ca-9378-4254-af36-d78d6ed839de
  • La cadena : 61b5e9ca-9378-4254-af36-d78d6ed839de es el identificador del canal por el cual escucha el prim, es diferente para cada prim

Enviar Datos con C# :

Se utilizara la libreria XmlRpcCS para realizar la comunicación entre la aplicación y el objeto en OpenSimulator o SecondLife.

  • Abrir una consola
  • Crear el directorio para el cliente
    mkdir clientxmlrpc
  • Cambiar al directorio
    cd clientxmlrpc
  • Copiar la libreria al directorio actual
    cp ../XmlRpcCS/XmlRpcCS.dll .
  • Crear un archivo Client.cs y adicionamos el siguiente codigo :
    using System.Collections;
    using Nwc.XmlRpc;
     
    public class Client {
            public static void Main() {
                    // Informacion del Servidor de Second Life
                    // Canal por donde escucha el cliente
                    string server = "http://xmlrpc.secondlife.com/cgi-bin/xmlrpc.cgi";
                    string channel = "eafc58de-5d8a-364e-d6d8-4c4cab0129f4";
     
                    // Parametros
                    Hashtable args = new Hashtable();
                    args.Add("Channel",channel);
                    args.Add("IntValue",12345);
                    args.Add("StringValue","Hello World!"); 
     
                    // Cliente XMLRPC
                    XmlRpcRequest request = new XmlRpcRequest();
                    request.MethodName = "llRemoteData";
                    request.Params.Add(args);
     
                    // Invocacion y Resultado
                    Hashtable ret = (Hashtable) request.Invoke(server);
                    System.Console.WriteLine(ret["StringValue"]);
                    System.Console.WriteLine(ret["IntValue"]);
            }
    }
  • Compilamos el codigo :
    gmcs -lib:. -r:XmlRpcCS.dll Client.cs
  • Ejecutamos
    mono Client.exe
  • Debe mostrar en pantalla los valores enviados por el objeto
    Exito
    1221
  • Mienstras tanto en OpenSimulator debe aparecer en el chat la informacion enviada
    Hello World!!! 12345

Para usar el mismo codigo con OpenSimulator la cadena server debe tener la direccion de nuestro servidor : http://<ipServidor>:<puerto>/cgi-bin/xmlrpc.cgi

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Cliente XML-RPC en Mono para OpenSimulator.
Feb 24

Actualmente algunos sistemas como OpenSimulator o Second Life utilizan servicios remotos basados en XML-RPC, por tal motivo es necesario utilizar una libreria para realizar los llamados a estos servicios, actualmente para Microsoft .NET podemos encontrar dos librerias :

Utilizaremos la libreria XmlRpcCS, la cual es utilizada por el proyecto OpenSimulator para implementar el servicio de XMLRPC que permite realizar llamados remotos a objetos en este mundo virtual.

Requerimientos :

  • Debemos instalar lo paquetes para compilar la libreria
    sudo apt-get install nant mono-2.0-devel libmono-winforms2.0-cil mono-1.0-devel

Construcción de la Libreria :

  • Abrir una consola
  • Descargar la ultima versión de la libreria
    http://sourceforge.net/project/platformdownload.php?group_id=123702
  • Por ejemplo la versión 1.10
    wget http://ufpr.dl.sourceforge.net/sourceforge/xmlrpccs/XmlRpcCS-1.10.zip
  • Descomprimir el archivo
    unzip XmlRpcCS-1.10.zip
  • Cambiar al directorio de la libreria
    cd XmlRpcCS
  • Compilar la libreria
    nant
  • El archivo XmlRpcCS.dll es creado

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Libreria XML-RPC para Mono.
Feb 24

Si queremos tener acceso remoto a traves de web a los repositorios de subversion para adicionar, actualizar, descargar contenidos de los repositorios, podemos utilizar el modulo WebDAV de acceso, pero si lo que queremos es visualizar el repositorio a traves de web y poder verificar cambios, versiones, comparaciones debemos utilizar el cliente web de Subversion WebSVN.

Pasos :

  • Abrir una consola
  • Instalar el paquete de WebSVN
    sudo apt-get install websvn
  • Al momento de instalar nos pregunta si queremos configurar el acceso a los repositorios, seleccionamos la opción Yes.
  • Al momento de preguntarnos por el servidor, dejamos seleccionadas todas las opciones y Ok
  • Suministramos el directorio de los repositorios, antes configurado
    /home/svn
    y seleccionamos Ok
  • Dejamos en blanco la casilla para listar todos los repositorios y Ok
  • Los permisos están asignados al usuario del servidor web entonces no tendremos problemas, Ok
  • El servicio termina su instalación y se reinicia el servidor web
  • Abrir un navegador e ir a la dirección :
    http://<ipServidor>/websvn

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Cliente Web de Subversion en Ubuntu 8.10.
Feb 24

Podemos configurar el repositorio de subversion de tal modo que sea visible por determinados usuarios a traves de web, utilizando el modulo de acceso WebDAV del Apache2 en Ubuntu 8.10

Pasos :

  • Abrir una consola
  • Instalar paquete de acceso web a SVN
    sudo apt-get install libapache2-svn
  • Editar el archivo de configuracion de WebDAV
    sudo vi /etc/apache2/mods-available/dav_svn.conf
  • Adicionar al final del archivo la configuracion de SVN para visualizar todos los repositorios via web :
    Esto configura el servicio de tal modo que todos los repositorios dentro de /home/svn sean visibles a los usuarios que sean autenticados por medio del archivo de claves almacenado en/etc/subversion/passwd
    <Location /svn>
    DAV svn
    SVNParentPath /home/svn
    SVNListParentPath On
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /etc/subversion/passwd
    Require valid-user
    </Location>
  • Reiniciar servidor web
    sudo /etc/init.d/apache2 restart

Crear Usuarios :

  • Para crear el primer usuario, ejecute
    (cambie <usuario> por el nombre de usuario a crear) :
    sudo htpasswd -c /etc/subversion/passwd <usuario>
  • A continuacion suministre la clave asignada al usuario
  • Para crear el segundo utilice el mismo comando pero sin la opcion -c
    sudo htpasswd /etc/subversion/passwd <usuario>

Acceso Web :

  • Abrir un navegador y entrar a la dirección :
    http://<ipServidor>/svn
  • Suministrar usuario y clave de acceso

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Acceso Web a Subversion en Ubuntu 8.10.
Feb 24

Subversion es un sistema de control de versiones que permite tener un control sobre las modificaciones que ha sufrido un archivo fuente en el desarrollo de un proyecto de software, haciendo posible la comparacion entre las diferentes versiones, identificar los cambios que se han producido, obtener la fecha de cada cambio e incluso el usuario que ha realizado dichas modificaciones. SVN como se conoce comumente a Subversion es una herramienta ideal para administrar desarrollo realizados por multiples programadores, asi como tambien llevar un estricto control sobre las versiones y modificaciones que ha tenido un software en su tiempo de vida, por tal motivo a continuacion describiremos como instalar un servidor de subversion en Ubuntu 8.10 :

Instalar Paquetes :

  • Abrir una consola
  • Instalar los paquetes necesarios
    sudo apt-get install subversion
  • Crear directorio para alojar los proyectos
    sudo mkdir /home/svn

Crear Proyecto :

  • Cambiar al directorio de proyectos
    cd /home/svn
  • Crear directorio con el nombre del proyecto
    sudo mkdir project
  • Cambiar el dueño del directorio para que el servidor web pueda escribir los datos
    sudo chown -R www-data:www-data /home/svn
  • Crear la estructura del proyecto en subversion
    sudo svnadmin create /home/svn/project

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Creando Repositorio de Subversion en Ubuntu 8.10.
Feb 24

virt-manager01

Gracias a libvirt, podemos administrar remotamente nuestras maquinas virtuales creadas con KVM, lo que facilita la visualizacion del desempeño de la maquina a traves del tiempo y posibilita el acceso remoto a la maquina virtual para obtener informacion de esta o conectarse a traves de consola.

Pasos :

  • Abrir una consola
  • Utilizando un usuario del servidor con las maquinas virtuales que tenga acceso a la administración de las mismas, se puede utilizar el siguiente comando para abrir un administrador remoto :
    virt-manager -c qemu+ssh://<usuario>@<ipServidorHost>/system
Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Administracion Remota de KVM.
Feb 24

Después de instalar el KVM y configurar la tarjeta de red para que haga de puente con la red, podemos comenzar a crear nuestras maquinas virtuales. A continuación se creara una maquina virtual basada en Ubuntu Server 8.10 con la configuracion mínima, configuracion de red y un usuario para la administración.

  • Abrir una consola
  • Crear el directorio donde se crearan las maquinas virtuales
    mkdir virtualmachines
  • Cambiar al directorio
    cd virtualmachines
  • Crear el directorio para almacenar la maquina virtual
    mkdir ubuntuserver
  • Cambiar al directorio
    cd ubuntuserver
  • Crear directorio para almacenar las plantillas de configuración
    mkdir -p mytemplates/libvirt/
  • Copiar los templates de creacion al directorio, para modificar la configuracion de red :
    cp /etc/vmbuilder/libvirt/* mytemplates/libvirt/

Configuracion Tarjeta de Red :

  • Abrir el archivo plantilla para la maquina virtual :
    vi mytemplates/libvirt/libvirtxml.tmpl
  • Buscar la interface de red y modificar para usar el puente de red antes creado :
    <interface type='bridge'>
    <source bridge='br0'/>
    </interface>

Configuracion Particiones :

  • Crear un archivo para las particiones
    vi vmbuilder.partition
  • Adicionar las particiones a crear, la raíz de 10GB y el swap de 1GB
    root 10000
    swap 1000

Crear la Maquina Virtual :

  • El siguiente comando crea una maquina virtual basada en Ubuntu 8.10 (Intrepid), virtual, con soporte para arquitectura de 64 bits, registrada en el sistema de administración de maquinas virtuales, con las particiones y plantillas creadas en el paso anterior, con el usuario administrador user1 con su respectiva clave, con 512 de RAM y con la configuracion de red suministrada, ademas de instalar el paquete openssh-server para poder acceder al servidor por shell seguro.
    sudo vmbuilder kvm ubuntu --suite=intrepid --flavour=virtual --arch=amd64 -o --libvirt=qemu:///system --part=vmbuilder.partition --templates=mytemplates --user=user1 --pass=password --mem=512 --domain mydomain.com --hostname machine1 --ip 192.168.0.12 --mask 255.255.255.0 --net 192.168.0.0 --bcast 192.168.0.255 --gw 192.168.0.1 --dns 192.168.0.1 --addpkg vim --addpkg openssh-server
  • Comienza el proceso de instalación que puede tardarse de acuerdo al tipo de conexión a Internet que tengamos, finalmente la maquina virtual es creada y registrada.

Puesta en Marcha :

  • Para iniciar nuestra maquina virtual debemos ejecutar la herramienta de administración :
    virsh --connect qemu:///system
  • Listamos las maquinas virtuales disponibles (debe aparecer el hostname de nuestra maquina)
    list --all
  • Iniciamos la maquina virtual
    start machine1
  • Salir del administrador
    quit
  • Nos conectamos a la maquina para instalar y configurar servicios
    ssh user1@192.168.0.12

Enlaces :

Tagged with:



En February 24 de 2009, Marlon J. Manrique escribió acerca de Creando Maquina Virtual en KVM.