I have a task assigned to me where I have to write a program(I am thinking Java) that will send information to a remote Server via VPN. We already have program that send information using Java RMI and it uses regular network ie Internet cables. Our current customer keeps getting cut in their Internet cables so we are planing on providing a secondary method to send the information via wireless modem and VPN.
I was thinking to use Windows VPN client locally and send data to a remote Server but I could not find any solution using Java and Windows VPN.
My question is:
1) Is there an api (windows vpn, Java) that allows to open a connection to Windows VPN and send data? I could not find anywhere. In case anyone knows about it?
2) If you know or have any sample codes, that would be even great.
3) My simple thought is that I will write a program that opens a connection to a VPN locally, send the data, disconnect the VPN, close the connection to the VPN. Are there additional thought process that I might be missing?
4) Is there a solution to do the task without using Windows VPN or coding outside Java?
I may be way off base here but your OP has me very very confused. You have an RMI based system that fails when the internet connection fails. To be expected. You think that a new system utilising a VPN would not have this problem. Possible but without knowing a bit more about your VPN it is difficult to say. Now RMI does not care whether it runs over hardware or wireless or over a VPN which sits on top of hardware or wireless so what is the problem.
I don't see this as a Java problem - just re-configure your RMI system so that it runs over the VPN i.e. configure it so that it uses the VPN network interfaces rather than the hardware network interfaces.
I once needed to talk to a piece of hardware that was behind a firewall that we were not allowed to change. But they would allow me to run an http server on an isolated pc that wasn't connected to their LAN. We put a wireless card on it and sent http requests to tell it what to do and the server then would send back "web pages" with the results.
http://internal pc ip address/"please do this"
But, like the guys were saying, If you can get your server to listen to one network connection then it shouldn't be a problem to get it to listen to any other (even wireless). But of course "that's easy for me to say".
If you have two connections your server should be able to ping itself every once in a while. If the ping fails on the primary then it can switch to the secondary. Or, maybe each connection can ping oracle. If either fail then it knows to use the other.