PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [HFSQL] - How to access instance through internet?
[HFSQL] - How to access instance through internet?
Débuté par Yogi Yang, 19 juin 2018 15:05 - 7 réponses
Posté le 19 juin 2018 - 15:05
Hello,

I have a need to implement a WD app which is using HFSQL C/S for data storage. Now the client wants to develop a mobile app which will connect to the server which is running on hardware located in the premises of the company.

For this I read and tried by hands to get mobile app to connect to HFSQL server but failed.

I have opened the port 4900 and also forwarded the port in router. But still mobile app cannot connect from outside LAN.

Is there anything else that I have to setup?

TIA
Posté le 19 juin 2018 - 19:53
Hi,
I’m using that kind of connection without any problem from various mobile devices.

Maybe is something simple like wrong address of HFSQL server on mobile app eg. make sure that address and port are accessible from outside LAN.

You can test it outside LAN with:
telnet your_server_address 4900
If you get blank screen than it is ok.

BR,
Alen
Posté le 21 juin 2018 - 12:59
Hey,

opening a port on the Server without VPN is a critical situation regarding security.
For HFSQL it might be ok, as a "normal" hacker would propably not know HFSQL and would not try to attack a Server through 4900.
Opening a port for common database System (MySQL, etc) is for me a no go.

I do not know where you live, but if ou are coming from europe keep in mind the new data protection basic regulation.

I would prefere to use a webservice, which is more secure and you will never have an issue with Firewall, as the webservice will use http(s) ports.

Hust my opinion.

Best Regards


Stefan.
Posté le 21 juin 2018 - 13:14
Hi

I agree with Stefan and will add another point... accessing a DB like HFCS through internet is fraught with problem (losing the connection is something that is happening a LOT with mobile applications, and the DB is NOT made for that).

So I prefer to use a replication system communicating via a webservice for all these application...

In other words, what you are trying to do is POSSIBLE, but you WILL have reliability problems along the way.

Best regards
Posté le 21 juin 2018 - 15:00
Hello,

Thanks everyone for your inputs.

Finally I got the thing working. Personally I don't understand as to why it was not working two days back.

Today it is working like a breeze!

TIA
Posté le 23 juin 2018 - 00:25
Hi

Did some investiagation on the webservice part. Connecting an app and there is sqlconnectws Witch let you connect . No Hfunctions support though. It is for connecting to mssql etc.

Then , reading through the stuff it seems PC soft states that you can use normal connection to the db with cript to connect an app to the db. and then use HFunctions

So I tried that and it works like a charm. ( it is fast ) A lot easier then going the sqlconnectWS() way.

If webservice is needed, and it seems to me pcsoft is promoting to just connect the app with a normal connection ??? Is this true or am I reading things wrong. Is there some protection in cripting the connection ?

Then I quess a webservice passing json would be the easiest way to go as upposed to the sqlconnectWS() function.

PS

Replication is not an option if you have hundrets of users. I do not want all the data on my app. Or is it possible to get just specific user stuff ??

regards
Allard
Posté le 25 juin 2018 - 01:26
1. using a webservice does NOT mean that you can use only theone give by pcsoft, yo canreate your own and do whatever you want.

Quote
Allard

Replication is not an option if you have hundrets of users. I do not want all the data on my app. Or is it possible to get just specific user stuff ??

2. What could possibly make you says that... I'm using replication with THOUSANDS of users and OF COURSE you can do a PARTIAL replication, even with the pcsoft built in replication that I never use for reliabilty reasons.

Replication is not equal to duplication of the DB...

Best regards from Nashville
Posté le 26 juin 2018 - 00:03
Hey Allard,

I am doing it in this way:

Local DB on the mobile device, Soap Service on a webserver.
The mobile device identifies itself (username, Password, userrole etc) and the Soap Service decides which data will be provided. The mobile app stores the data in the local db, and vice versa.
Advantage: The app on the mobile device will also work, if you have no Connection, and will update if you have Connection, and as the mobile device has a local DB you have a real good Performance.

You can use SSL and crypt/uncrypt to make the thing secure.

We use this i.e. for the german chamber of commerce.

Best Regards

Stefan.