Algorithms as a Service (mikesingleton.net)
Cloud based services are creating huge efficiency increases in cost and development. AWS did it with file storage, VPS systems, queues (and more), drop.io is doing it with media conversion and transfer, Twillio is doing it with telephony...
29 comments
[ 3.1 ms ] story [ 69.3 ms ] threadAlso, protection of the data as it is being transfered, stored, and analyzed is an issue. This is both data integrity and also protection for privacy or confidentiality reasons.
However, the exception I see to this is a service that applies the algorithm across a large dataset that is owned by the service. An example of this is geocoding, where you probably don't want to store the addresses of everyone in the world in your database, but it is easy to reach out to a range of providers to get latitude longitude for your address.
Thinking along these lines, something that I would find more useful would be a web service that makes a well defined managed infrastructure available to me to run my own jobs or algorithms on. For example a service I can use to submit my own map/reduce style jobs to and have it run on a big cluster of systems managed by someone else; Or a service that allows me to submit jobs to run on specialized hardware, like a cluster of systems packed with NVIDIA CUDA cards. Providers of these services could also have a library of pre-canned jobs for common tasks like text indexing, link extraction, parsing W3C logs into stats, etc. With a library like that then you've got what this post is describing and more.
But the problem is one of specialization. Surely there are other APIs out there that specialize in particular aspects of what the supermarket is providing. For example, it this AAS business is providing distance algos as well as image algos, there must be Geo Businesses and Image Businesses that can provide higher quality given their specialization.
The database of localities and all associated information is not only huge, it's changing literally every day and thus should be constantly kept up to date. Definitely a good candidate for the hosted service scheme.
Author is under impression that implementing algorithms is hard. Real problem is analysing and understanding the problem, implementation of the standard algorithms is the easiest part. If your problem is common enough to have its implementation as service, it's very likely there is free library anyway.
Seriously, ask Dijkstra's shortest path at IOI (high school informatics olympiad), I'd bet half of students would get it 100% correct under an hour.
It's worked pretty decently, but we keep it internal because we just don't have the compute resources to offer things like SAT-solving or logic programming or planning as a service to the general public.