8

I am looking for a communication framework for delphi, we know there are so many communication frameworks for other languages , wcf, ecf and so forth, but i have nerver found the one for delphi till now , anybody who knows about it can give me an ider?

There are some requirements i need ,as follows:

  • Building an application(server or client) without caring how to do communications with each other between two endpoints.

    Imagine that we use mailbox for exchanging messages,it seems that the communication is transparent.

  • Supports communication protocol extending.

    We often need to exchange the messages between 2 devices, but the communication protocol is not a public or general one, so we need to extend the framework,to implement a communication protocol for receiving or sending a message completely.

  • Supports asynchronous and synchronous communication

  • Supports transmission protocol extending.

    The transmission protocol can implemented by winsocket, pipes, com, windows message, mailslot and so forth.

In client application, we can write code snips like follows:

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;

In above code snips , TLoginRequest has implemented the message interface.

Ryan
  • 89
  • 2

6 Answers6

14

Maybe RemObjects SDK is something you are looking for. It is a WCF like abstraction for a communication framework in which you can vary things like the message format, type of channels, etc. It comes ready with different channels like winsockets, pipes and windows messages.

Lars Truijens
  • 42,837
  • 6
  • 126
  • 143
  • 1
    I can second that. RemObjects SDK is the ideal framework when using communication with Delphi. – Sebastian P.R. Gingter May 25 '10 at 14:39
  • Does the RemObjects SDK includes a base "Client" and "Server" TCPIP component you can inherit from to write your own custom TCPIP protocol? I know about the remoting framework. But I'm curious if it has functionality parallel to Indy, ICS, and RTC-SDK. – Warren P May 25 '10 at 16:03
  • Yes. You can implement a custom protocol, which is called a 'Channel' in RemObjects SDK. You can also look here: http://wiki.remobjects.com/wiki/Channels – Sebastian P.R. Gingter May 25 '10 at 16:09
4

Take a look at Indy, which comes with Delphi. It's a mature communications framework that gets used in a lot of apps.

Mason Wheeler
  • 82,511
  • 50
  • 270
  • 477
  • Indy would be a good choice for the part where the OP said:"We often need to exchange the messages between 2 devices, but the communication protocol is not a public or general one". You could also try the ICS suite from Francois Piette. It is very much like Indy, but I find it a little simpler to use. – Warren P May 25 '10 at 15:59
  • Indy/ICS focuses more on TCP/IP stack, but I think Ryan wants something in the upper layer (WCF and so on are built on HTTP). – Lex Li May 30 '10 at 06:14
1

To write custom TCP IP client and server components for use in our applications, we are using the Internet Component Suite by Francois Piette, and the Real Thin Client SDK (RTC SDK) on various projects. Others use Indy to develop custom TCP/IP protocol client/server components.

To build an API that can then be "remoted" easily, you can use DCOM (not recommended!) or one of the "remoting toolkits" like the RemObjects SDK (recommended!).

Warren P
  • 65,725
  • 40
  • 181
  • 316
0

DataSnap is something shipped with Delphi, and since 2009 it has been redesigned to be WCF alike and much more powerful compared to its previous versions,

http://edn.embarcadero.com/article/38682

Lex Li
  • 60,503
  • 9
  • 116
  • 147
0

I have an open source framework (developed over the last 10 years) that does everything you need as well as implementing a threading framework and much more. You can find it at http://www.csinnovations.com/framework_delphi.htm.

Cheers, Misha

Misha
  • 1,816
  • 1
  • 13
  • 16
0

For a high level message oriented middleware Habari Client libraries for Delphi and Free Pascal could be an option. They support peer to peer and publish / subscribe communcation models, work with Internet Direct (Indy) and Synapse network libraries, and support exchange of serialized objects (JSON or XML). (I am the developer of these libraries).

mjn
  • 36,362
  • 28
  • 176
  • 378