2010-10-18 10 views
5

Estoy viendo un proyecto que requerirá la comunicación entre procesos entre una aplicación heredada de Windows utilizando canalizaciones con nombre, y un nuevo servicio que se ejecuta en un servidor Linux. La aplicación de Windows no se puede cambiar. ¿Alguien sabe si hay una biblioteca Linux disponible que admita Windows named pipes? O mejor aún, ¿alguien puede recomendar una biblioteca que hayan utilizado para este propósito?Compatibilidad con tuberías con nombre de Windows en Linux

+0

Una tubería es un sistema de comunicación local, no se expande a redes ... Entonces, ¿cómo debería un sistema Linux tener acceso a una tubería en un sistema Windows, que por definición debe ser un sistema diferente (incluso una VM)? ¿O quieres saber cómo escribir un proxy o algo así? – DarkDust

+3

@DarkDust: las tuberías con nombre de Windows se exportan a través del espacio de nombre de la red. Puede abrir uno desde otra máquina con los atributos de seguridad correctos y anteponiendo el nombre de la tubería con el nombre WINS. –

+0

Los conductos con nombre de Windows funcionan de forma diferente a los de Linux estándar y funcionan en una red. Pregunto si alguien ha escrito una biblioteca en Linux para admitir Windows named pipes. – MichaelB76

Respuesta

12

Las tuberías con nombre de Windows y Linux son animales diferentes. Si existe una solución de interoperabilidad, va a formar parte de una población muy pequeña de usuarios.

Puede que sea mejor escribir un proxy en el lado de Windows para mapear entre Named Pipe y socket, y conectarlo a un socket en el extremo de Linux. Esto le proporciona una interfaz de red útil en el lado de Linux en el futuro, y elimina lo que podría ser un mundo de interferencia de Canalizado afectado por la imagen.

Si estuviera haciendo esto, trataría de producir un proxy de paso simple en C# (código administrado) como una prueba de concepto. Siempre se puede convertir a código nativo (Win32/C++) si el rendimiento no se mide. Existe alguna muestra del código C# here que podría ser una referencia útil.

Aquí está background on the nuances of Windows vs Linux named pipes.

+0

Gracias. la idea de escribir un proxy en el lado de Windows se me había ocurrido, pero encuentro resistencia en la idea de instalar algo en el servidor de Windows ... – MichaelB76

+1

@ MichaelB76 - qué frustrante ... con suerte una presentación bien argumentada de los riesgos y costos al tratar de hacer la interoperabilidad NP pueden cambiar el argumento para usted. ¿Cuál es el sistema operativo de Windows? Una máquina, o muchas? –

3

Apuesto a que Samba/Winbind contiene un código muy relevante. Sin embargo, no estoy seguro de qué tan reutilizable sea.

+1

Creo que la suite Samba contiene algo útil; no estoy seguro de cómo usarlo. Algunas de las herramientas de samba deben conectarse internamente a las tuberías con nombre de NT. – MarkR

+0

Gracias, pensamiento interesante. – MichaelB76

Cuestiones relacionadas