DOV-E: Hypersonic-based Mobile Device Communication based on IBM Cloud Functions
Please note that the following article has been posted on behalf of DOV-E, a young Israeli startup I have been working with throughout the last couple of weeks and months.
Retailers are trying to engage their consumers as much as they can. The best way to engage the consumer, is through mobile phone. Retailers have many platforms — in-store POS, digital screens, e-commerce websites, TV ads, radio ads and vending machines. However, there is no single solution for user engagement which supports all mobile phones and all retail platforms. The common denominator in all of these retail platforms is — they all have speakers!
DOV-E’s patented technology utilizes these speakers and provides secure, quick, easy to use mobile payment and interactive mobile engagement on any platform.
DOV-E clients (mobile, browser, POS etc.) interact with other DOV-E clients via the transmission and reception of audio codes. The code is usually representing a link the receiver of the code cannot understand unless its meaning is encoded within the link itself which would increase the code size prolonging the transmission time and making the encoded data susceptible for eavesdropping. As a more scalable & secure design, the meanings of codes are stored at the DOV-E backend system and the receiving client queries it with the received code to find out about its meaning.
DOV-E’s code management system currently enables the following interpretations of audio codes:
- Payment transactions — allows the transfer of money between clients.
- Promotion transactions — allows the transfer of information between clients.
Payment transactions are performed between 2 clients using the backend as a mediator. Promotion transactions take place between a single client and the backend as the promotion supplier.
For the backend we have decided to move to a “serverless” solution and created an IBM Cloud Functions (IBM’s managed Function-as-a-Service (FaaS) platform running on IBM Bluemix and based on Apache OpenWhisk) action for every step of the transaction.
The payment transactions are performed as part of a sequence we call an “OTP (One Time Password) transaction”. An OTP is a unique password with a limited lifetime that is generated for a specific transaction ceasing to exist once that transaction is over.
An OTP transaction uses the following IBM Cloud Function actions (implemented by DOV-E):
- GetCode — this action generates an OTP code for a transaction (merchant originated).
- ReceivedCode — this action receives a code and validates the code (buyer originated).
- Confim — this action receives confirmation to execute (buyer originated).
- Status — this action return status of the transaction (merchant originated).
For promotion transactions the audio code will, most often, be played from a regular sound system, such as the speakers of a store. In such a case, DOV-E supplies an audio file which the store plays using its usual music playing system. The audio file is encoded with a code, similar to an OTP. But in this case, the code is a persistent code, which does not expire.
In this scenario DOV-E uses a broadcast transaction and the following IBM Cloud Functions action (implemented by DOV-E):
- GetMessage — this action receives a code & returns the promotion (consumer originated).
Switching to IBM Cloud Functions provided us with some very important benefits:
- Scaling — (growing and shrinking) is now automatic and we don’t have to worry from one hand having enough servers for super stressful peak hours or on the other hand about wasting money and resources on expensive infrastructures during the majority of time in which there is low activity on the backend system.
- Cost — is not only cheaper on the majority of time when the backend doesn’t need to serve any customer, it is also dramatically cheaper during function activity time while serving customers. To go with IBM Cloud Functions instead of conventional server solution meant for us serving more than 2 million requests in avg. each day with a cost of few dozen of dollars per month vs a cost of server based solution which reaches easily several dozen of thousands of dollars.
- DevOps — while we used to maintain and invest time any efforts in management and deployment moving to IBM Cloud Functions considerably simplified our deployment using wskdeploy and there is no longer need to manage any servers.
In conclusion IBM Cloud Functions enabled us easy and cheap scaling and outperformed a server based solution.