Self-service is a global trend helping to lower cost in supermarkets, airports, fast-food restaurants, banks, car-parks, etc.
Web self-services is the latest addition to this trend: Instead of having to pay for computing the customers’ tasks, give them the code and let them compute it themselves! Reduced server costs and faster response times will ensue.
How it works
Ordinary web services work by getting a request, processing it on the server and then responding with the result. Web self-services work by instead sending the code that will produce the result. The code is executed on the customer’s machine and the result is used. As in other cases where self-service is used, not all services should be made self-service, but a surprising amount can.
The web self-service code can be easily cached on content delivery networks (CDNs) to further reduce server costs.
This saves a lot of bandwidth and compute hours on the online photo service server infrastructure.
A company sells an online service for for technical analysis on stocks and financial instruments. Instead of running the technical analysis algorithms on their servers, they deliver the code to the customer, and the customer can run complex and compute intensive technical analysis on his linux desktop application. The code is delivered in C and compiled behind the scenes and run.
Web self-services makes serverless even less about servers. Serverless architecture has gained popularity lately, and a number of large actors provide serverless infrastructure: Amazon with AWS Lambda, Google with Cloud Functions, Microsoft with Azure Functions and Oracle with Fn.
State-less functions are central in serverless architecture. State-less functions are very well suited for web self-services: The stateless function is simply delivered and run on the client machine instead of on a server.
Edge computing is to move some of the cloud computing closer to the place where the data is. Especially in the context of cloud-computing, it means computing on the client or on devices closest to the data first and then doing the rest on cloud-servers if the network-latency is worth it.
Web self-services fits very nicely into this model. The ability to get the code in a different programming language or binary format means decisions about where to perform a computation can even be made on the fly, based on load or the amount of data. If a large amount of data needs processing, it might be best to do it on a central server. If the latency of the network gets above a certain threshold, the code can be transfered to the client and the data processed there.
As you can see, edge computing is ripe with oportunities for web self-services.
Platforms for web-self services
The progsbase repository hosts a collection of free, open source web self-services. Private programs are also hosted and will only be served to authenticated requests.