Montaremos un sistema para poder redireccionar una aplicación a un destino u otro dependiendo de los parámetros de un archivo xml.
Tenemos una aplicación que está en constantemente en evolución y crecimiento. Este implica numerosas actualizaciones y para que estas sean trasparentes al usuario se ha montado este sistema.
Pasos previos
El icono de acceso a la aplicación Hermes se distribuirá mediante un script de inicio de sesión a nivel de usuario por medio de Active Directory.
Se crearán dos recursos compartidos. En este ejemplo, usaremos como repositorio NetApp y daremos los permisos de acceso a los grupos de usuarios pertinentes.
Archivo de parámetros
Creamos un archivo xml donde residirán los parámetros que formarán el path destino de la aplicación, el xml será:
<?xml version="1.0" encoding="UTF-8"?> <parametros> <!--Nombre o dirección IP del servidor que contiene el ejecutable --> <servidor>SERVIDOR</servidor> <!--Path del recurso compartido sin servidor, ni contrabarra inicial ni final--> <!--La variable = nodo activo se representa con $$--> <recursoCompartido>Aplicacion_nodo$$</recursoCompartido> <!--Nombre del ejecutable --> <nombreEjecutable>ElFosoDelSarlacc.exe</nombreEjecutable> <!--Nodo Activo, indicar el nodo activo con la letra del nodo (A, B) --> <nodoActivo>A</nodoActivo> </parametros>
Aplicación Hermes
La aplicación está realizada con MS Visual Basic 2010.
Al ejecutar Hermes leerá el archivo xml de parámetros. Este archivo hemos de ubicarlo den el mismo directorio que el propio ejecutable.
Una vez finalizada la lectura de los parámetros montara el path de destino y ejecutará la aplicación destino cerrándose Hemes.
El código de la aplicación es:
Imports System.Xml Imports System Imports System.Diagnostics Imports System.Threading Module Hermes Sub Main() Console.Title = "Hermes, clusterizando aplicaciones" ejecutarAplicacion() End Sub Public Sub ejecutarAplicacion() Dim path As New ProcessStartInfo(lecturaPath().ToString) Dim ejecutar As New Process Try ejecutar.StartInfo = path ejecutar.Start() Catch ex As Exception Console.WriteLine(ex.ToString()) End Try End Sub Private Function lecturaPath() Try Dim m_xmld As XmlDocument Dim m_nodelist As XmlNodeList Dim m_node As XmlNode Dim servidor As String, recursoCompartido As String, nombreEjecutable As String, nodoActivo As String Dim path As String 'Crear XML Ddocument m_xmld = New XmlDocument() 'Cargar el fichero XML m_xmld.Load(".\HermesParametros.xml") 'Lectura de parametros del XML ' SERVIDOR m_nodelist = m_xmld.SelectNodes("/parametros/servidor") For Each m_node In m_nodelist servidor = m_node.ChildNodes.Item(0).InnerText Next ' RECURSO COMPARTIDO m_nodelist = m_xmld.SelectNodes("/parametros/recursoCompartido") For Each m_node In m_nodelist recursoCompartido = m_node.ChildNodes.Item(0).InnerText Next ' EJECUTABLE m_nodelist = m_xmld.SelectNodes("/parametros/nombreEjecutable") For Each m_node In m_nodelist nombreEjecutable = m_node.ChildNodes.Item(0).InnerText Next ' NODO ACTIVO m_nodelist = m_xmld.SelectNodes("/parametros/nodoActivo") For Each m_node In m_nodelist nodoActivo = m_node.ChildNodes.Item(0).InnerText Next 'Montar el path path = "\\" & servidor & "\" & recursoCompartido & "\" & nombreEjecutable 'Sustituir la variable $$ por el valor del nodoActivo path = path.Replace("$$", nodoActivo.ToString) Return path Catch ex As Exception Console.Write(ex.ToString()) End Try End Function
No hay comentarios:
Publicar un comentario