Continuing from Last Week
The last few weeks, I have discussed a presentation I did at the Telit Developers Conference in San Diego, to cover material that is very relevant to our Aeris user community.
Device Management and Application Hosting
The panel session was entitled Device Management and Application Hosting, which I covered in my allocated 15 minutes with four relevant slides. Today, I cover the fourth and final slide of the presentationit was the second of two on Application Hosting.
Framed as Questions
As a reminder, rather than abstract information, I framed the points as questions and comments to think about when developing applications. Ideally, this caused people at the Conference (and readers here too!) to think of the concepts behind the question and the ramifications of a particular answer, rather than simply taking my bullet points at face value.
Application Hosting Slide 2
Connections and Third-Party
Do you need special stacks, API's, etc.?
When deploying Applications, it is important to ascertain what special software may be needed for the host systems. An Application may require a specific software stack or API or library to process the data received from the remote Devices. This API may be licensed from a Third-Party and require the use of specific platforms. For example, Aeris uses third-party licensed software for certain cellular data processing. The code is written in Java and can be executed on any number of platforms and operating systems, including virtual systems in the Cloud (from Amazon, Google, Rackspace, and others). However, the software licenseeven though it is a site-license and can run on a number of systems at Aerisprecludes it from ever being run in the Cloud!
What About System or Device Dependencies?
Some Application software may require specific platforms and operating systems. For example, if an API library is intended for Intel processors running Windows, this prevents using the library on other processor platforms or operating systems. If the particular processor is not a platform that is supported in the Cloud, this can prevent deploying the library and running the associated Application in the Cloud.
Do Industry Standard protocols Work?
Sometimes, there are standard, commonly-used, protocols that make it easier to deploy the Application in the Cloud or otherwise. For example, using web services (XML and SOAP, or RESTful web services) to send and retrieve data to web portals and databases may make it easier to implement the Application service. Of course, the choice of whether to use SOAP or REST is one that should be determined by the Customer. As a general observation, REST is easier to code and is less verbose, but SOAP provides better overall security and consistency. For a lengthier discussion on the differences between SOAP and REST services, please see this article.
Have You Thought About Security?
One very important issue is the security and integrity of the gathered data, who has access to it and under what conditions is it made available. Today, privacy concerns make it tough to decide what Application hosting services are sufficiently secure for the specific information that is being sent and received from Devices, and stored in databases in the Data Centers or in the Cloud. In some Applications, the gathered information may be of little use to anybody for whom the data is not intended. However, if the data contains personal information, or could be used to access personal information, on individuals, then the data safety issue may be vitally important. Although the CDMA wireless transmissions, and the network data paths, of the Aeris network services are very secure, it may also be necessary to encrypt the data prior to transmission. With Cloud-based Application hosting, data storage is generally within the Cloud systems. The integrity and security of this storage, short- and long-term, should be evaluated to see if it is sufficient for the needs of the Application.
Ultimate User Of The Data
Is it a Consumer Application? Perhaps With Self-Service?
For Consumer Applicationswhere the data from the remote Devices is processed and provided to others (people or corporations the End-Users)the Application hosting requirements may be quite different from data gathered for other purposes. The Customer may need to provide relatively sophisticated web sites and web portals as the expectation of typical Internet users is very high today. If the End-User is expected to self-service their information, providing the information securely, without exposing the wrong data, is critical. Fortunately, this is a known problem that has been dealt with, and well-engineered solutions exist!
Does Your Web Portal Design Scale Well?
Deploying web sites and web portals in the Cloud is a natural and effective way to deploy an Application that can scale relatively easily. If there are many End-Usersfor a Consumer Application, there might be one person per Device that is deployedthe scaling requirements for the web sites and web portals are quite different from sites that provide the data for corporations. Scaling and throughput for many simultaneous users of a web site can be accommodated quite readily in the Cloud, and may be an excellent reason to use Cloud-based Application hosting.
Is Your Billing System Ready?
If a Customer is providing the M2M Application as a for-revenue service to others (people or corporations the End-Users), and the number of Devices is expected to grow significantly over time, it is important for the Customer to efficiently generate and send bills for the service. Planning and early implementation is vital. Device management and billing systems based on Excel spreadsheets is simply not scalable for any real growth. The End-Users may also want access to the detailed billing and traffic information for their Devices. Thus, the Customer systems may need to provide this informationin electronic form via web services (similar to Aeris's AerAdmin and AerTraffic interfaces), or via a web portal (similar to Aeris's AerPort). Finally, needless to say (I hope!), securing access appropriately is essential.
Again ... Can You Bill Your Customers?
Frankly, I cannot over-emphasize this point! It is too important not to mention again. Billing systems are a vital part of deploying a successful M2M Application if the service expects to generate revenue and scale easily! Without effective billing and revenue collection, it would be difficult for a company to sustain growth in the number of units and data volume over time.
I will return from the digression to this Conference presentation material!