2010-05-25 19 views
8

Estoy buscando un marco de comunicación para delphi, sabemos que hay muchos marcos de comunicación para otros idiomas, wcf, ecf y demás, pero he encontrado el nerver para Delphi hasta ahora ¿Alguien que lo sepa me puede dar una idea?Buscando un marco de comunicación para delphi

hay algunos requisitos que necesito, de la siguiente manera:

  • Creación de una aplicación (servidor o cliente) sin importar cómo hacer las comunicaciones entre sí entre dos puntos finales.

    Imagine que usamos el buzón para intercambiar mensajes, parece que la comunicación es transparente.

  • Admite la extensión del protocolo de comunicación.

    A menudo necesitamos intercambiar los mensajes entre 2 dispositivos, pero el protocolo de comunicación no es público ni general, por lo que debemos ampliar el marco para implementar un protocolo de comunicación para recibir o enviar un mensaje por completo.

  • soporta la comunicación asíncronos y síncronos

  • soporta el protocolo de transmisión que se extiende.

    El protocolo de transmisión puede ser implementado por winsocket, pipes, com, Windows message, mailslot, etc.

En aplicación cliente, podemos escribir tijeras de código como sigue:

var 
    server: TDelphiCommunicationServer; 
    session : ICommunicationSession; 
    request, response: IMessage; 
begin 
    session := server.CreateSession('IP', Port); 
    request := TLoginRequest.Create; 
    session.SynSendMessage(request); 
    session.WaitForMessage(response, INFINITE); 
    ....... 
end; 

En el código de SNIP, TLoginRequest ha implementado la interfaz de mensajes.

+1

+1 para una buena pregunta, pero ¿qué le pasa a Indy? Se incluye con Delphi & des lo que quieras – Mawg

Respuesta

4

Eche un vistazo a Indy, que viene con Delphi. Es un marco de comunicación maduro que se usa en muchas aplicaciones.

+0

Indy sería una buena opción para la parte donde OP dijo: "A menudo necesitamos intercambiar los mensajes entre 2 dispositivos, pero el protocolo de comunicación no es público ni general". También podría probar la suite ICS de Francois Piette. Es muy parecido a Indy, pero me resulta un poco más simple de usar. –

+0

Indy/ICS se enfoca más en la pila de TCP/IP, pero creo que Ryan quiere algo en la capa superior (WCF y demás están basados ​​en HTTP). –

14

Tal vez RemObjects SDK es algo que está buscando. Es una abstracción WCF para un marco de comunicación en el que puede variar cosas como el formato del mensaje, el tipo de canales, etc. Viene listo con different channels como winsockets, pipes y mensajes de Windows.

+1

Puedo secundar eso. RemObjects SDK es el marco ideal cuando se utiliza la comunicación con Delphi. –

+0

¿El RemObjects SDK incluye un componente TCPIP base "Cliente" y "Servidor" del que puede heredar para escribir su propio protocolo TCPIP personalizado? Sé sobre el marco de la interacción. Pero tengo curiosidad si tiene una funcionalidad paralela a Indy, ICS y RTC-SDK. –

+0

Sí. Puede implementar un protocolo personalizado, que se llama 'Canal' en RemObjects SDK. También puede consultar aquí: http://wiki.remobjects.com/wiki/Channels –

1

Para escribir componentes personalizados de cliente y servidor IP de TCP para su uso en nuestras aplicaciones, estamos utilizando Internet Component Suite de Francois Piette y Real Thin Client SDK (RTC SDK) en varios proyectos. Otros usan Indy para desarrollar componentes cliente/servidor de protocolo TCP/IP personalizados.

Para crear una API que luego pueda ser "remota", puede usar DCOM (¡no recomendado!) O uno de los "kits de herramientas remotas" como el RemObjects SDK (¡recomendado!).

0

que tienen un marco de código abierto (desarrollado a lo largo los últimos 10 años) que hace todo lo que necesita, así como la implementación de un marco de enhebrado y mucho más. Puede encontrarlo en http://www.csinnovations.com/framework_delphi.htm.

Cheers, Misha

0

Para un nivel alto mensaje de middleware orientadoHabari Client libraries para Delphi y Free Pascal podría ser una opción. Admiten el intercambio entre pares y la publicación/suscripción de modelos de comunicación, trabajan con las bibliotecas de red de Internet Direct (Indy) y Synapse, y admiten el intercambio de objetos serializados (JSON o XML). (Soy el desarrollador de estas bibliotecas).

Cuestiones relacionadas