Database for Google App Engine and desktop application


I need some advice. I'm new to Java EE technologies. Anyway, I would like to make my first JAVA EE project. Imagine 2 client applications and server application.

1) Server. I picked up Google App Enginge technology to create server application. I would like to connect it to some easy database.

2) Client applications. I would like them to be desktop applications (or applications launched from the desktop) and these 2 apps also have to be connected to the same database as sever.

There was no problem to create this in Java SE environment - I had two clients applications with sockets staff and server application with socket staff. All worked locally.

But now I want to have server and database on the Internet and I want to make it in more professional way.

My problems are:

<ul><li>How to create free database from GAE? Is datastore the best option or something else? What's important - the client desktop application will also use this database. I'm looking for the easiest solution.</li> <li>Maybe the solution is to create web client application instead of the desktop one - but make it look like it was desktop app (I would like to avoid using browser). I have no idea how to do this and if this is even possible.</li> </ul>

Any help will be really appreciated. I'm stuck because my knowledge is too little to start. I have ma GAE app and I don't know what should I choose next.

Thank you in advance.


If you want make desktop application, you need to build backend application first.

<a href="https://developers.google.com/events/io/2012/sessions/gooio2012/303/" rel="nofollow">check</a> this out. You can use same concept with that. Build back end, and then create API to connect to your backend, and use that API in your desktop application.

Datastore is easiest way to store data. <a href="https://developers.google.com/appengine/docs/java/storage" rel="nofollow">Check this out</a>. Datastore have some limitation (such as didnt support join, many to many relationship, etc). Please consider wisely. Otherwise you can use Google Cloud SQL for your option, but AFAIK its not free.


  • convert from invalid to valid json [duplicate]
  • Self Update in .net programs?
  • where to place common jars in tomcat v6.0 server, which will accessible by all the apps deployed?
  • How to send a urllib2 request with added white spaces
  • jQuery & CSS - Cut text by height, no truncate
  • Is storing an OAuth token in cookies bad practise?
  • How to debug office add-in for mac?
  • Force iPad app to launch in portrait when landscape is supported
  • How can I encode a filename according to RFC 2231?
  • How many percent of the tweets does twitter sample API give?
  • Underlying type for Tuple in Swift
  • GRPC and types import error in App Engine Datastore
  • How to use SBT with multiple sub project web applications?
  • Zend Framework bassed projects
  • Receiver has no segue with identifier“***”
  • New Firebase failed: First argument must be a valid firebase URL and the path can't contain “.”
  • Sensibility of combined Maven/Ant+Ivy build management for dual platform Desktop/Android deployment?
  • Android changing fragment order inside FragmentPagerAdapter
  • Jquery popup on mouse over of calendar control
  • Spring Cloud Microservice Architecture Confusion
  • MS Access - How to change the linked table path by amend the table
  • How do I get HTML corresponding to current DOM tree?
  • Transactional Create with Validation in ServiceStack Redis Client
  • How to create a file in java without a extension
  • Avoid links criss cross / overlap in d3.js using force layout
  • Handling un-mapped Rest path
  • Recording logins for password protected directories
  • PHP - How to update data to MySQL when click a radio button
  • Java applet as stand-alone Windows application?
  • Window Size for Mac application
  • How to extract text from Word files using C#?
  • How to check if every primary key value is being referenced as foreign key in another table
  • Sending data from AppleScript to FileMaker records
  • Join two tables and save into third-sql
  • How to model a transition system with SPIN
  • ORA-29908: missing primary invocation for ancillary operator
  • WOWZA + RTMP + HTML5 Playback?
  • How can I remove ASP.NET Designer.cs files?
  • How to get NHibernate ISession to cache entity not retrieved by primary key
  • Converting MP3 duration time