I'm developing an apple iphone application and want to create some kind of Peaceful API so different customers from the application can share information/data. To produce a community of sorts.
Say my application is a few kind of game, and that i want the consumer to have the ability to publish their highscore on the global leaderboard in addition to maintain a listing of buddies and find out their scores. My application is certainly not such as this however it shows the type of collective information access I have to implement.
The way in which I possibly could implement this really is to setup a PHP and MySQL server this will let you php script that interacts using the database and mediates the demands between your DB and every user about the apple iphone, if you take a GET request and coming back a JSON string.
Is a great way to get it done? Appears in my experience like using PHP is really a slow method to implement this instead of say a put together language. I is extremely wrong though. I'm attempting to keep my hosting bills lower because I intend to release the application free of charge. I actually do recognise that the implementation that works better when it comes to CPU cycles and RAM usage (e.g. something put together designed in say C#?) may need more costly hosting solutions than say a Light server so might really finish up being more costly when it comes to $/request.
I additionally want my implementation to become scalable within the rare situation that many people begin using the application. Does the usage volume change the performance/$ ratio towards another implementation? I.e. basically have 1k request/day it may be cheaper to make use of PHP+MySQL, but 1M demands/day will make using another thing cheaper?
To summarise, how does one implement a (quite simple) remote database that might be utilized remotely using HTTP(S) to be able to minimise hosting bills? What type of hosting solution and what type of platform/language?
UPDATE: per Karl's suggestion I attempted: Ruby (language) + Sinatra (framework) + Heroku (application hosting) + Amazon . com S3 (static file hosting). To anybody reading through this who might have a similar dilemma I'd, this setup is amazing: very easily scalable (to "infinity"), affordable, simple to use. Thanks Karl!
Can't discuss DB specifics yet because I've not implemented that yet although for my simple query needs, CouchDB and MongoDB appear like good options plus they are integrated with Heroku.
It comes down lower to some tradeoff between cost versus experience.
if you possess the expertise, I'd certainly consider some type of cloud based infrastructure, something similar to Google Application Engine. Which cloud platform you decide to go with is dependent on which experience you've with various languages (AppEngine is only for Python/Java for e.g). Generally though, scalable cloud based platforms convey more "gotchas" and want more know-how, since they're particularly updated for high-finish scalability (and therefore require understanding of enterprise level concepts in some instances).
If you wish to be ready to go as rapidly and just as you possibly can I'd personally get a CakePHP install. Setup the model data to represent the fundamental organizations you're controlling, then use CakePHP's wonderful convention-loving miracle to reveal CRUD updates on these models effortlessly!
The technology you utilize to implement the Relaxation services may have a much less significant effect on performance and hosting costs than how you use HTTP. Understanding how to make the most of HTTP is much more than finding out how to use GET, PUT, Publish and Remove.
Go to whichever server side technology you know and take the time reading through RFC2616. You'll may well avoid a lot of money and time.
This might unfit together with your PHP desires, but honestly, it does not have any simpler than Sinatra.