Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

como se implementa la ejecucion distribuida: clientes - servidor

Buenos dias,

La arquitectura que quiero implementar es un sistema que tenga 1 servidor y n clientes.

En el servidor irá alojada una base de datos Oracle y la aplicación Labview.

En los clientes la aplicacion Labview(con Diadem) y unos ficheros de datos .dat donde estan las medidas de los sensores

No se si la aplicación Labview que haya en el servidor tendrá que ser la misma que haya en los clientes (soy nueva en Labview)

Desde los clientes se leeran los ficheros de datos(.dat y otros) y a traves de una consulta SQL se insertarán dichos datos en la base de datos del servidor de Labview.

Una vez se hayan ingresado los datos, desde los clientes se generarán informes en Diadem previa consulta SQL a la base de datos del servidor Labview.

Versiones del software a utilizar:

Windows XP, Labview 8.6, Diadem 11.0, Oracle 10g

 

Hasta aqui es la definición de mi sistema.

 

Mi pregunta es:

 

¿como implemento mi sistema para que la ejecucion de mis operaciones se realice en el servidor y no en los clientes? Es decir lanzar las operaciones desde los cliente pero que sea en el servidor donde ser ejecuten los procesos para liberar a los clientes y obtener una ejecucion distribuida y centralizada.

 

¿Alguien ha hecho algo parecido? ¿Alguien me puede ayudar?

 

Gracias de antemano.

0 kudos
Mensaje 1 de 4
3.645 Vistas

Beatriz

 

                 Parece que entiendes tu aplicacion de manera aceptable.

Me gustaria puntualizar algunas cosas que yo creo que serpian mas convenientes.

 

En tu servidor puedes tener la base de datos de Oracle, DIadem y Labview.

 

En tus clientes puedes tener una aplicacion de Labview ( puede ser simplemente un ejecutable)  para leer las señales de tus sensores y escribir estos resultados en un .dat  ADEMAS de agregarlos en la base de datos de Oracle de tu servidor.

 

Al estar las señales en la base de datos solamente necesitas , desde el servidor, un programa sencillo de labview y Diadem, para sacar esos valores de la base de datos y generar un reporte de manera automatico de esos resultados sin alterar el proceso de tus clientes.

 

Esto nos lleva a percatarnos que no es estrictamente necesario tener Diadem en la computadora de los clientes a menos que quieras los reportes tanto en el servidor como en los clientes y la opcion de duplicar procesos te llame la atención.

 

Mientas mas informacion des es mas facil ayudarte Beatriz

 

espero que logres sacar a adelante tu aplicacion

 

 

saludos

 

 

 

Erwin Franz

Certified LabVIEW Architect, Certified TestStand Developer
0 kudos
Mensaje 2 de 4
3.633 Vistas

Gracias por la respuesta, pero la arquitectura no es solo decision mia, es un proyecto que me han asignado en la empresa y la arquitectura me vienen por asi decirlo "impuesta".

El caso es que creo que no me expliqué bien del todo.

 

La arquitectura es:

 

1 servidor + n clientes 

 

equipo servidor: de base de datos Oracle + Labview + [Diadem?]

equipo cliente: Labview + Diadem

Por otro lado, a traves de otro/s equipos se generan los ficheros de tratamiento de medidas de los sensores.

A traves de nuestro sistema Labview debemos hacer lo siguiente:

el cliente lee los ficheros de medidas y a traves de la aplicacion labview guarda estas en la base de datos Oracle del servidor.

Una vez guardadas las medidas, los clientes a traves de la aplicacion labview se conectan de nuevo al servidor Oracle y van generando los de informes en Diadem segun lo requieran.

 

mi pregunta es ¿como implementar la ejecucion distribuida de los procesos? es decir que el peso de los procesos vaya en el servidor y no en los clientes.

 

espero haberme explicado mejor...

 

gracias!

 

0 kudos
Mensaje 3 de 4
3.621 Vistas

Hola Beatriz

 

voy a recapitular lo escrito para ver si podemos entender bien lo que necesitas ( numere tus enunciados para referime con precision a lo que describiste).

"

1)La arquitectura es:

 

2)1 servidor + n clientes  OK

 

3) equipo servidor: de base de datos Oracle + Labview + [Diadem?] ( Por lo  que describes en el renglon 7  no es necesario que el servidor tenga labview ni Diadem ya que solo esta almacenando datos)

4) equipo cliente: Labview + Diadem OK

5) Por otro lado, a traves de otro/s equipos se generan los ficheros de tratamiento de medidas de los sensores. ( Otros equipos? porque no instrumentar directamente los sensores con los que tienen el software de Labview? de no poderse .... como estan comunicandose los ficheros de tratamiento con los clientes que cuentan con la aplicacion de labview?)

6) A traves de nuestro sistema Labview debemos hacer lo siguiente:

7) el cliente lee los ficheros de medidas y a traves de la aplicacion labview guarda estas en la base de datos Oracle del servidor.( OK esto es facil y no reclama mucho esfuerzo de procesamiento ni programacion para la aplicacion de los clientes)

😎 Una vez guardadas las medidas, los clientes a traves de la aplicacion labview se conectan de nuevo al servidor Oracle y van generando los de informes en Diadem segun lo requieran.

Este es el punto que puede complicar las cosas. No has especificado de cuanta información se trata asi que , de ser demasiada , los clientes al hacer queries simultaneos pueden hacer que el trafico de la red sea ineficiente y puedes tener varios problemas con la programación.

 

9) mi pregunta es ¿como implementar la ejecucion distribuida de los procesos? es decir que el peso de los procesos vaya en el servidor y no en los clientes. "

 En mi opinión lo complejo de tu aplicación no es de procesamiento sino de trafico de red. La pregunta después de aceptar lo anterior  sería... Cómo hacer una aplicación de este tipo que no sature la red y que permita obtener la información y los reportes de manera rapida y confiable?

 

Sin saber las caracteristicas de los equipos que funcionaran como clientes es dificil decirte algo acertado sin embargo, creo que puedes disminuir el numero de veces que los clientes consultan al servidor haciendo respaldos locales de hasta cierta cantidad de informacion  a consultar. Estos respaldos pueden sobreescribirse continuamente a manera que el servidor unicamente sea consultado cuando el reporte que se necesite generar sea de datos que no hayan alcanzado a ser respaldados . Al tu conocer la aplicacion a detalle tal vez puedas escoger los rangos del respaldo local permisible en los clientes , el tipo de archivo  que los guarda ( te recomiendo TDMS)  y las formas de sobreescribirlos o protegerlos de cualquiera que tenga acceso a esa computadora.

 

En fin, espero que esto te sirva y que pronto tengas corriendo tu aplicacion.

 

saludos Emoticono feliz

 

 

Erwin Franz

Certified LabVIEW Architect, Certified TestStand Developer
0 kudos
Mensaje 4 de 4
3.605 Vistas