Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Working with remote views for a MySQL server

Status
Not open for further replies.

VFP2013

Programmer
Oct 19, 2013
20
US
Hi, I've been working on a program for some time now, and it has finally been released. I've been working on some updates for it (VFP9) and was wondering if it would be possible to Cloud Base the program. I want to make a SUPER BETA version of the program that will Cloud base all aspects of the program. The main elements would be orders, customers, and employee users. Would it be possible to base this in an SQL database, then retrieved through a remote view? Also, I want to set it up where Each store has it's own database, so that would need to be in the setup somewhere. I've already created a licensing script that validates a program license through a table. If you can help me learn how to cloud base it, please reply.
Thanks!
Ty G.
www.shftcomputers.com
 
What database are you using now? DBFs? MySQL installed local?
If you already use MySQL nothing really changes but the Connection string. Instead of Server=localhost you'd specify the servername in the "cloud". You need MySQL hosting allowing remote connections and setting the database and clients firewall up for that, you'll find several tutorials googling. Eg

Cloud is really more than just another word for internet, but thats just the terms.

Bye, Olaf.
 
Right now I'm using a little bit of both. I've written a crude licensing script that contacts my MySQL server and checks the max number of times it can be used and the date it expires. Everything else is a local dbf (you can call it local, the program is supposed to be set up on a server system that is run through a local network, but can be installed on a single workstation)
 
Then what's your plan? If the MySQL database is just for license checks you would have that hosted in the internet anyway, a local installation cannot really be controlled by you, can it?

If each customer has it's own database then that would just be fine, but you couldn't really call that a cloud solution, just because you do license checks in the cloud. Then every windows checking it's activation in the cloud would also be a cloud solution.

Again, that's just the terms, there's nothing wrong with that, but customers wouldn't expect to run a local application, if you advertise it as a cloud solution, they would expect to be using a browser accessing a web application, maybe a terminal server, to start a remote running app. But nothing they would need to install and care about, no local data they would need to have backup space for, etc. Software as a Service is what you expect from a cloud solution, and that means hassle free use of a software not installed inhouse with any client side installation.

Bye, Olaf.
 
My plan is to integrate all the information used by the program into the "cloud". this is where each store would have its own database. In the database each store would have there would be all my tables that I currently use for data locally. I want the whole sha-bang to go cloud operated. All aspects of data would be run through MySQL database exclusive to the licensee.
 
OK, so you plan to move your DBFs to MySQL Tables. That makes it an application having it's data in the cloud, but not a cloud application.

"a software delivery model[3] in which software and associated data are centrally hosted on the cloud."

Both data AND the application itself.

So if,as you say it "the whole sha-bang" shoudl go cloud operated, you'd put your EXE and DBFs on Windows Servers hosted in "the cloud". You could run your VFP EXE with DBFs unchnaged on a Windows Server, but no client would see any UI. A VFP app offers nothing but a winforms UI, so you couldn't let clients access this application via browser. You would be bound to give users access to the application via terminal server/remote desktop, if you won't redevelop mainly your user interface. The database then is just secondary. Whatever runs on a cloud server runs there, but users need a grip on it, a UI.

So either you reprogram this whole thing or you only migrate your data and host that in the cloud with a rented server/database for each customer. That would have the advantage for your customers to have a centralised database for all their regional centers or locations, the backups would also be centralised, but you'd offer a classic client windows application.

Bye, Olaf.
 
Exposing a database directly to the internet is asking for trouble. If you wish to keep the app as a desktop app you should look at web services for all data CRUD.

To be truly cloud-based, you'll need to rewrite the application as a web app.

Craig Berntson
MCSD, Visual C# MVP,
 
Well, several hosters allow database hosting. Indeed it's a risc, but you'll expose something to the internet anyway, if it's the database or a web service doing CRUD operations, if you can hack that layer you can again do your own queries.

You can limit remote access to a certain IP, for example, only allow access coming from VPN tunnel, that's about the database hardening, you can make that pretty safe, too.
Even going the step to keep both the database and web services encapsulated and used by a web app running hosted in the cloud, you expose the UI, and that'll also allow webspiders to scrape off data, etc.

So anyway you have to handle security when going into the cloud with data or application or both.

Arguing against exposing a database is actually addressing database vendors more than anyone else. Why would hardening a SQL Server be so much harder than hardening a web app? A web app has so much more attack vectors, it seems to me. The database merely is a service accepting query requests, just one interface, surely an interface allowing many operations, but you could eg disable any DDL code, olnl allowing DML, perhaps only allow usage of a set of stored procs, that pretty much compares to only providing certain CRUD operations via web services.

No matter how you decide, security is a topic of web/cloud applications or even just cloud storage or cloud databases.

Bye, Olaf.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top