I have a very simple problem. I have an application that is written in Delphi 2007 for WIN32. It uses a C # DLL, which is imported into the project via the COM interface and a simple trick to not register the COM object. But now I have a Java .JAR file that I want to call from my application. And although I have access to Delphi and C # code, I just do not have access to Java code.
I can do two things. Or I call the Java class from Delphi code, which is then called from C # code, which is again called from Delphi code. Or am I just calling Java code directly from C #. (Which is again called from Delphi.)
I know this is a complicated setup. The Delphi application contains a graphical interface and some communication modules for some special hardware. There are no .NET drivers for them. C # code communicates with the database and includes some logic related to CardSpace and other security settings. The Java class is a third-party encoding module that is created by a third-party that calculates a special hash code from the data in the database and performs some additional processing and that manages another piece of hardware.
The biggest problem: no network communications! He will work on a special computer on which network equipment is not installed. This is a standalone Windows XP system. Although COM, Java, and .NET are fine, I cannot use any TCP / IP connections on this system.
This will be my next project, if I accept it. Already, this gives me a headache, so I think I will miss this chance, although it has an interesting mixture of several different languages. I think Iβll just tell them to invest 6 digits to buy new equipment instead of spending almost 5 digits on 28 days of my work ...
Some details about the project that I can provide:
Delphi code can connect to the PBX system through the COM port, which it uses to send faxes, send and receive SMS messages and receive simple commands, simply by entering numbers with the phone after the call. For this, everything is written based on the WIN32 code.
Java code is a client module for communicating with a robotics system that controls the environment, processes several delicate objects, and performs continuous measurements of these objects. This is in Java, so it is platform independent. The connection between the Java client and the robotic equipment is through the network, and network equipment / drivers do not like the additional chatter on this network. (This is why it is disabled as much as possible. Even Windows will not receive updates.)
C # code is designed to collect data from the Java module and actually store these regular backups in memory, stored in memory, in case something happens. It should interact with the Java module and several other modules that handle complex calculations written in a .NET-compatible language for the specific domain that the client has developed. These modules do not support COM, so the C # shell.
Now the client needs an operator to be near the equipment in order to manipulate robotics. He can either upgrade the hardware, it cost him a lot, but that would give him the best remote access, which costs about 250,000 euros to replace ancient robotics and other equipment, or he pays a few developers a tenth of this amount to get his current equipment do the same thing. Personally, I think that it should not be so cheap, but he just wants to evaluate what a solution for developers will cost him. The code changes are small, since most functions already exist. It simply combines all of this without any TCP / IP connections, which makes it more complex.
In principle, the instructions they want to give are to speed up or slow down, send periodic reports and send SMS alerts in case of problems. Now they are sitting next to the screen, drinking coffee all day, reading the newspaper or other magazines. And although it is a pleasure for several days, he cannot find someone who wants to do this all the time, 24/7. (Yes, they work day and night, including weekends.)
Basically, thatβs all I know for myself. They didnβt even see the computer that it should be installed on, but they have several configured everything in the same way, so that I can get one to experiment with when necessary. (And it will be hell for debugging too.)
On a final note, I presented a cost estimate and came in with a high enough number to convince my future employer to do a hardware upgrade instead. More expensive, but it will maintain its reliability.
Because of this, this Q has just become academic ...