2
votes

I have a Delphi Application with a Client-Server Architecture. Now, I want to write a Web-application for this Delphi Client-Server Application. To write a this Web App I don't want to use Delphi - I want to use a "modern" Web Architecture like a PHP Framework, ASP.NET, Ruby on Rails etc. So far i came to one possible Solution with RemObjects (http://www.remobjects.com/ro/) and ASP.NET: ASP.NET <-> Delphi

In this approach the Delphi Application communicates with an ASP.NET WebServer over RemObjects where the Delphi Application is the REM Objects Server and the ASP.NET App is the Client.

My questions are:

  1. Is this approach really a good idea and if not why?
  2. What are other possible approaches to solve this problem?

Thank you for your help.

Edit: Thank you for your answers so far!

3
This is a matter of debate... One question: how are your Delphi Client and Server talking to each other?Arnaud Bouchez
@Arnaud Bouchez Over Rem Objectsfrugi
OP: I think he was asking about the existing system. i.e. how does the existing client/server communication work? ODBC? SQL*Net? Raw Sockets? SOAP?Chris Thornton
@Chris Thornton The Client Server Communication works over Rem Objects (TCP), too. ;)frugi
@frugi In this case, I would probably stick with R/O at first. And only change the protocol in case of performance or stability issues.Arnaud Bouchez

3 Answers

1
votes

How about establishing a neutral link like a Database?

1
votes

You need a two-way messaging / inter process communication solution. Typically SOAP, REST and other web services (RemObjects) are synchronous, request-response style communication.

A messaging middleware can be implemented in a way which totally decouples the applications so that you can restart any part of the system (for example for maintenance and update installation) without disturbing the others.

Popular open source products in this field are for example Apache ActiveMQ, Open Message Queue and RabbitMQ, which offer cross-platform/cross language clients.

1
votes

An alternative could be SOAP, or a RESTful connection.

R/O is faster than SOAP, for sure, and well integrated to both sides (Delphi and C#).

And, since you are already using R/O between Delphi client and Server, it will be the first option to consider.

IMHO any RESTful connection between Delphi Server and a C# client may do the work also. And will probably be faster, so is to be considered only in a second phase, if you find any performance or stability problem with a R/O connection.