Can I put my java server in the cloud?

If I make an RTS game server, I shouldn't have, like my last one, the server Threads sitting on my office floor machine? I can run multiple server Thread instances in the cloud? For a couple of cents a server?
Or mass game server numbers in the same cloud? - or all on one flat-rate monthly account?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

beavoidAuthor Commented:
So, basically, the answer is yes.

Would my game be classified as an EE application? It is a Java class with datagrams and sockets as a connected server at an IP address.
Cloud server space is just accessed from Java code, just like calling a function method within a class?
If I program my game locally in my office, will converting the server Threads to the cloud be straightforward?
Should I program the whole thing from the cloud as step 1?
, I shouldn't have, like my last one, the server Threads sitting on my office floor machine?
You can, perhaps, think of the new scenario as being in 'the cloud' (though that's often associated with just storage) but all that's changed is the location of the server.

It's not a J2EE app as such, it's just a client server Java app so you will need hosting that allows you to run an app in a  JVM
There's 2 types of 'clouds' you could use.

The simpler to understand one is a cloud of servers - Amazon's EC2 is the classic example (  In that model you rent a complete server from them - generally by the hour.  This is exactly like having a computer in your office.  You can login to it, copy files to it, run applications on it etc.  The only thing you don't have is physical access to it - you do everything through remote connections.  But it's a full server.  You pick the operating system (Linux, Windows etc.) and install everything on it that you need - in your case at least Java.  Then you copy your application to it and run it.

Because in this model you're dealing with a normal computer (just at a distance) if your application runs on your local office machine it will also run, without any changes on the remote computer.

The second type of cloud provides the ability to run an application without you setting up a server at all.  The classic example of this is Google app engine (  Here the model is different.  You upload just your Java application and Google decides what machine(s) to run it on it, handles the operating system etc.  You are dealing with a much higher level abstraction.  It's as if I said "email me your Java app and I'll run it on my servers for you".  You don't know what operating system I'm using or how to setup a firewall to protect it etc.  If you go for this model, you don't have as much control over how the application is run, but you also don't need to do as much work upfront.  However, you may find you need to make some changes to the design of your application - since it's not running in exactly the same way that it would run on your office computer.

Personally I've used EC2 and find it very straightforward.  Google has also entered that space now ( and the prices are very competitive between the two services - which makes for good deals for users like you.  I've not personally used Google app engine so I can't help with the details of how you setup a Java app inside the engine.  But since it's from Google there's mountains of examples and docs out there.

Hope that helps explain the landscape a bit better,


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

beavoidAuthor Commented:
Is processing payments within a user-account, for certain account aspects relevant here, or is that for SQL?
I'd like my site's users to pay for access to certain features, actually, pay to enter a state of readiness for inclusion in a game. Does that influence a decision here, or is that completely within my game's pre-game setup? Another question, but I'm just curious for a quick mention?
It doesn't matter where you servers are running for how somebody will pay.  The basic mechanism is essentially:

a) Player wishes to unlock feature A for $5
b) You send them to a site (e.g. paypal or a credit card processing site or iTunes etc. etc.) where they complete the transaction
c) Paypal sends you a confirmation that user X paid $5 to your server(s)
d) You add something into your database showing that user X now has unlocked feature A
e) When the game client loads, it calls to your server to ask what features the player has unlocked and gives them a different experience.
f) If the client tries to take an action that hasn't been paid for, the server blocks it.  [So a hacked client can't use a feature that wasn't paid for]

Hope that helps,

beavoidAuthor Commented:

I assume payment verification is relatively simple?
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Development

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.