Using amazon RDS from google app engine. please help ! - google-app-engine

I have some queries.
By default Google appengine (cloud based deployment platform) does not support mysql or any database for that matter. So we thought of using Amazon RDS as a option (Since it is in cloud.). After reading the documentations, i understood that amazon exposes the web services and provides API s for basic operations like creating a DB instance etc. But i am not sure whether it provides APIs for CRUD operations.? So that programatically i should configure amazon RDS and perform CRUD operations in it. Please answer.
Can i write a web service which is similar to amazon WS to perform CRUD operations in amazon RDS? is it feasible? please answer my questions ASAP.

Amazon RDS exposes MySQL databases using the standard MySQL protocol. App Engine can only make outgoing connections over HTTP, so it won't be possible to connect directly to RDS from App engine. You certainly could write a web service such as you describe, but you'd need to run it on a separate server (such as an EC2 instance), and you'd need to write your own interface for accessing the database on the client end, separate from the MySQL libraries.
Note that we're planning to introduce support for relational databases in the future with App Engine for Business.

I have never used them but RdbHost was built (so it seems) for this reason. You can make your SQL calls over https. This will be slower though.

Related

Local Database in Browser with Remote Synchronization for AZURE

Currently I'm working on a project where we use React, PWA, PouchDB and CouchDB to build an offline first application with a large amount of data from the remote database, stored in the client web browser.
In other words a local database of around 2GB is stored in the client through IndexDB storage.
There is a significant problem on the replication of the remote database when starting the application and building the local database. PouchDB takes too long to do this process, there is a thread speaking about this topic.
pouchdb replicate from couchdb : very slow
Apparently there is no way to speed up PouchDB in the level that we need for the project. Therefore we have considered other options for a local database in the web browser with synchronization to a remote database. Some of the options we have considered are AWS Amplify Datastore, Firebase Cloud Firestore and Minimongo.
The company I work for is strongly linked with Azure services, but I have not found any like service in Azure that stores large amounts of data in the client web browser and synchronizes with the remote database.
Does anyone know of an Azure service that can help with this project?
If not, is there any other option or architecture even if not Azure, that would be recommended. We already have a functional web application with React, PWA, CouchDB and PouchDB, this is NoSQL, so NoSQL options would be preferred, but I'm open to consider SQL Database options even though a bigger modification would need to be done in the program.
Thank you in advance !!

Azure Mobile Services (DB)

I came from Parse to Azure and faced the problem with Azure Mobile Services. When I'm trying to setup data tables in the browser it is possible to add attributes with 4 types only, such as String, Number, Date and Boolean. It is not enough for me.
Can anyone help me how can I obtain other types (BLOB, Pointer, etc.)?
I'm new to Azure and working with OSX.
The best way to manage blobs is through azure blob storage you can find how to do this through https://azure.microsoft.com/en-us/documentation/articles/storage-ios-how-to-use-blob-storage/
The best way to manage the tables is through Microsoft Management Studio and connect it to Azure SQL Database.
If you are coming from Parse, why not continue to use Parse?
See: https://azure.microsoft.com/en-us/blog/azure-welcomes-parse-developers/
Azure Mobile Apps / Services both deal with SQL Database Tables - if you are on an ASP.NET backend, you can support anything that Entity Framework supports. However, SQL databases tend to be more involved than most Parse developers are used to.
If you are just switching, but want to use the same development experience, just continue using Parse Server.

How to access my database in PHPMyAdmin from a different computer?

I am working on my Java application in Eclipse that connects to the database and makes some queries with the data. This database has been created and managed in PHPMyAdmin. The database is stored locally and now I would like to make it accessible not only from my computer, but for anyone who will run my application on his computer. Can anyone tell me what is the procedure? How can I make the database "online"? Should I store the database on some remote server? If so, what is the procedure?
I know this question is not so much straight-forward, but I hope you will give me some idea how to deal with it.
Thanks in advance!
In this situation you should store the database on an external server who are better at managing databases with more security/backups etc.
If you're looking for scalability as well you could get an Amazon AWS Micro Instance in the cloud for free for a year which includes a large amount (20GB) of RDS (their relational database service based on MySQL) for free.
There is a great Stack Overflow question on Using PHPMyAdmin to administer Amazon RDS as well to get you started with something you are familiar with.
You can use MySQLDump to copy your current database from your local machine to RDS if you needed.
(A, completely non-extensive, list of) Mysql Hosting Providers
Webfaction - Good web user interface. Does more than just database hosting. Lots of documentation.
Amazons RDS - Cloud based. Reliable. Offers free tier
Rackspace - Cloud based. Excellent customer service.
Or, host your own on something like these
Linode - Has lots of documentation of getting Mysql installed
Digital Ocean - SSDs for great speed. Again great documentation on getting Mysql installed

how to query SQL Server via REST to get XML

We have been using a web application framework to build apps that need to be able to query a SQL Server database and get the results as XML.
In the past, the framework provided that capability. But that capability is now deprecated.
So we were thinking, the framework allows us to easily query a REST service over HTTP, so why not use a SQL Server HTTP Endpoint. However, we then read that HTTP Endpoints are deprecated, as of SQL Server 2008. Not a platform on which to design an architecture for the future.
Azure (formerly SQL Data Services) was going to offer similar services, but now only supports the TDS protocol, not http. So no REST to be found in Azure.
The suggested alternative is to develop a custom app using WCF Data Services (formerly ADO.NET Data Services). But that would mean a whole additional app to develop, deploy, and maintain, presumably with its own authentication setup separate from SQL Server's, and its own source code repository... using a technology we have no experience with, therefore with its own pretty deep learning curve.
Can you suggest any other way to query a SQL Server database via REST/HTTP, that is not deprecated, and that would return results as XML?
Thanks for any help.
Read here: Creating an OData API for StackOverflow including XML and JSON in 30 minutes. Basically, the road forward is for REST to be offered by app layer (WCF powering EF that provides the OData mapping). IMHO straight HTTP access into the engine was a very bad idea to start with, nobody liked the HTTPEndpoints of SQL Server 2005 and they were as misguided as it gets. One cannot map the HTTP error model, security, type system into SQL and expect a smooth interoperability. Having the HTTP layer live in a dedicated app pushes the responsibility of handling the HTTP ecosystem into a component specialized in that (WCF), and the logic of mapping the REST model to the DB model ina component specialized in that job (EF).
It sounds like you may be wedded to an MS stack but if you're not, you can use restSQL in a Java EE container (Tomcat, WebLogic, etc.) on top of MySQL or PostgreSQL. restSQL has a full HTTP API with JSON or XML encoding. It offers two twists: updatable composite views and hierarchical composite views. The framework is extensible to other databases and addition of SQL Server is in its supported evolution. Check out http://restsql.org.
Another option is something like Dreamfactory. They have a SOAP to REST solution that allows you to connect to any database or service. I have used their free hosted solution in the past for projects. They also have an open source solution available. The cool thing about the service is that they use Swagger 3.0 to create service definitions in a nice front-end solution so you can test and create new endpoints.
I have used the OpenAPI 3.0 definitions to connect to 3rd party SOAP and REST services as well. They also support stored procedures and server-side scripting in the SQL Server environments.
Anyways, might be another option for you.

Hosting an Access DB

So I'm inexperienced in hosting DB's and I've always had the luxury of someone else getting the db setup.
I was going to help a friend out with getting a webpage setup, I've got experience in Asp.Net MVC so I'm going with that. They want to setup a search page to query a db and display the results. My question I have is in getting the DB setup and hosted. They currently just have the Access DB on a local computer. There is basically only one table that would need to be queried for the search.
What is the best approach to getting this table/db accessible? They would like to keep the main copy of the db on the local machine, so copying the entire db over to the hosted site would be time consuming, could the lone table needed be solely copied to the host? Should I try to convince them to make changes on the hosted db and just make copies of that for their local machines? Any suggestions are welcome, Again I'm a total noob when it comes to hosting databases.
Thanks
Added: They are using a MS Access 2000, and the page will have access restrictions. Thanks for the responses.
How about SQL Server Express? I think you can do a remote connect from Access and just push the data over from Access.
I wouldn't use Access on a web server in any case.
I would strongly recommend against access from web work, its just not designed for it and given that SQL server express is free there is no reason not to give it a go.
You can migrate the data over by using the SQL server upsizing wizard, here is a link for help on using that feature
http://support.microsoft.com/kb/237980
It depends on what you mean by web work? Access 2010 can build scalable browser neutral web applications. They can scale to 1000's to users. In fact, you can even park the web sites on Microsoft's new cloud hosting options, and scale out to as many users as you need.
Here is a video of an application I wrote in access 2010. Note how at the half way I run the same application including the Access forms in a standard web browser. This application was built 100% inside of the Access client. The end result needs no ActiveX or Silverlight to run.
http://www.youtube.com/watch?v=AU4mH0jPntI
So, the above shows that access can now be used to build scale web sites (you can ignore the confusing answers by the other two posters here they are not quite up to speed on how access works or functions).
However, for your case, I would continue to have the access database on the desktop. You can simply link to tables that are hosted on the web server. Those tables can exist in MySql, or sql server. As long as the web site supports external ODBC connections (many do), then you can thus have the desktop application use the live data from the web server. If connections to the live data at all times is a issue, then you could certainly setup something to send up new records (or the whole table) on some kind of interval or perhaps the reverse, and pull down new records on a interval from the web site (depends which way you need to go). So, connecting to MySql or sql server is quite easy as long as the web hosting and site permits external ODBC connections. I do this all the time, and it works quite well.
As mentioned, new for access 2010 is web site building ability but that does requite Access Web services running on SharePoint.
You don't need to upgrade to Access 2010. One option is to use the EQL Data plugin to sync the database up to the server. Then you can write an asp.net, php, or whatever application that queries the table using the EQL API and prints the results however you want. This kb article describes how to use the EQL API from a web app.
The nice thing is that the database is still totally usable (and at full speed) even when you're not online, and then you can sync the new data up to the web occasionally. It only uploads the changes, not the entire database every time, so it's fast.
Disclaimer: I work at EQL Data so I'm a bit biased. But this kind of use case is the whole reason the company exists.

Resources