1

I am currently using Delphi 5 and planning to migrate application to latest version(XE3) or to other technology. Main purpose of migration is dont want thick client. In currrent scenario application(exe) gets downloaded to the users local folder and then it runs rom local. Main purpose is dont want to download the application to users machine. .

Wanted to stick with Delphi if that downloading limitation resolved. Is there web solution? or way to access the application from common point without downloading to users machine.

Thanks for the help and suggestions.

Note: There are lots of users who uses these application.

Nalu
  • 1,107
  • 4
  • 20
  • 43
  • Is it that you don't want to download the app, or that you don't want the overhead of reaching out to data on the server after the app is launched? – RobertFrank Nov 13 '12 at 00:38
  • Basic need is dont want to use it as thick client. – Nalu Nov 13 '12 at 01:38
  • 1
    The audience is closed (for example within a company) or wide open (for example anyone via Internet)? – jachguate Nov 13 '12 at 01:41
  • currently it is closed between the company(intranet) and need to convert to wide open so that it can be used outside the intranet via internet. – Nalu Nov 13 '12 at 01:43
  • The simplest thing to do is to put your Delphi application onto a system that is accessible to the internet, and let people log in via Remote Desktop. Companies like Amazon (EC2), Microsoft (Azure), RackSpace, and hundreds of others will give you a "cloud computer" for a monthly fee. You can create logins that have ONLY access to that single application (written in Delphi), and not even have access to the Desktop, or the hard drive, if you wish to lock it down. This is a simple matter and doesn't require you to rewrite your application. It's what lots of people are doing. – Warren P Nov 13 '12 at 02:20
  • @WarrenP - I think that's the answer the OP needs. – Leonardo Herrera Nov 13 '12 at 12:58
  • @WarrenP EC2 / Windows requires CAL and is quite quite expensive and resource intensive compared to a lightweight web application with the same number of users – mjn Nov 13 '12 at 15:32
  • 1
    Define expensive? Rewriting a 1 million line delphi app probably would cost you a few million dollars. – Warren P Nov 13 '12 at 15:52
  • @WarrenP `There are lots of users`: for 1000 instances, [Amazon AWS calculator](http://calculator.s3.amazonaws.com/calc5.html) shows a monthly bill of $ 50000 (or six million dollars for ten years), migrating the user interface to a web framework runing on a less expensive platform could be an economic option (and ecologic too). But I also think that solutions using EC2 (and others) can be more economic if all factors are known. – mjn Dec 01 '12 at 11:13

2 Answers2

4

Depending on the type of application you could add web layer around the core functionality of your application.

If you create something like a SOAP or REST interface, you can write a web client in any language that suits. Could be Delphi, or some more web-oriented language like PHP or ASP.Net. By having a web interface your users can access from any platform.

On the other hand, if your current application is not layered properly, and you've got a lot of code mixed between the GUI and your model, this could be difficult. It would mean rewriting a lot of code, or just accept the fact that your users need Windows, and an .exe file.

At least by using Delphi, your users don't need to download a huge framework that requires administrator privileges to install.

Anyway, you should provide some more information about what you already have, and what type of application it is, how complicated it is, etc.

Wouter van Nifterick
  • 23,603
  • 7
  • 78
  • 122
  • its multi tier finance related applcation and doesnt interact to database directly.There is another layer between database and application. Application logic is bit complicated and creates components dynamically using configuration files which placed on server. – Nalu Nov 13 '12 at 01:28
  • it time consuming to download the application every time and run. Planning to move to J2EE but before that want to confirm there is no other way to access applcation that downloading to local machine. – Nalu Nov 13 '12 at 01:30
  • Is there any option Delphi have to create or migrate current Delphi application to web based client. I am not sure about what Delphi Prism do. Is it helpful to convert to .net? – Nalu Nov 13 '12 at 01:41
  • 1
    Since it's sounding from other comments that you might have trouble doing a complete conversion to thin client, if "downloading _every time_ and run" is the issue, perhaps you could download once and on subsequent runs, a small startup program checks if a new download is needed. Not ideal, but maybe eliminating downloads on every run would help? – Tom Nov 13 '12 at 01:50
  • @Tom: no it will not help. Main purpose is to provide application acccess to outside of organisation through internet. – Nalu Nov 13 '12 at 02:07
  • I dont want to migrate the whole applcation due to only one reason that is thick client. :( wanted to find some good solution which will solve that thick client problem. – Nalu Nov 13 '12 at 02:12
  • Then why don't you put the client on a diet. Compress it, strip useless parts. Leave out unnecessary graphics, etc. You can even download new parts as .dll or .bpl's on-the-fly, via the web. That way you start out with something small, and extra functionality of downloaded when needed. Or move certain parts to webpages that you can even embed in your application. – Wouter van Nifterick Nov 13 '12 at 02:17
2

If you are planning a move to Java Enterprise Edition (Java EE), accessing existing Delphi logic can be achieved using two communication models, using existing commercial and open source solutions:

  • for synchronous (request/response) style communication between Delphi and Java, there are lightweight web frameworks for Delphi (I wrote this one recently) and open source JSON/XML libraries which can be used for data exchange. This allows the Java application server to access Delphi logic over HTTP

  • for asynchronous communication, I wrote (commercial) message broker client libraries for Delphi and Free Pascal, they can be used with the Java Message Service (JMS) servers in the JBoss and the GlassFish application server - JBoss and GlassFish already include a messaging solution (HornetQ and Open MQ), as a mandatory part of the full Java EE profile

I also have written some step by step tutorials for JBoss and GlassFish Delphi integration:

Delphi Integration with JBoss Application Server 5

Delphi Integration with the GlassFish v3 Application Server Part 1 - Sending Messages

Delphi Integration with the GlassFish v3 Application Server Part 2 - Receiving Messages

Arjan Tijms
  • 37,782
  • 12
  • 108
  • 140
mjn
  • 36,362
  • 28
  • 176
  • 378