Development Will Change The World
Back 18-24 months ago, the three primary application stores for mobile devices passed the One Million total available application milestone. Today, we have moved well beyond that total and there is no stopping the growth.
What however is happening is that applications are built and thrown out for consumption without some of the standards that would benefit the users of the applications. The four pillars of cloud application development.
- Storage Agnostic
- Device Agnostic
Pillar one is scalable applications. Now when you think about scalable from a traditional cloud computing perspective you look for the ability to add processing power to your solution as you need it. Scaling up or down depending upon the traffic your application or applications drive. For the mobile device scalability takes on a new meaning. What can the device do? Applications built to take advantage of the small footprint of a smart phone are not simply recreations of existing applications. They extend the exceptional functionality of the smart device (portability) while accepting and developing around its limitations (bandwidth, screen size, video processing power).
Pillar two is elasticity which takes on another meaning for cloud applications. The first part of traditional elasticity is on the fly rapid growth of processing power. For cloud applications that are delivered to a variety of platforms, this elasticity becomes more of a shared processing answer to a problem (where do we get the processing power needed for a solution). Where scalability looks for the limitations of the device being used in this solution elasticity knows the device you are using and offloads the processing for the solution to the right location. There are two distinct flavors of cloud application elasticity.
- Device knowledge and on-loading/offloading of required processing
- Device knowledge and focused solution delivery
The first is quite simple; the application is aware of the platform you have accessed it from and is elastic in the sense that it knows where the primary processing can take place. Almost a performance rating of the connectivity and device you are using prior to delivering information to you.
Device knowledge and focused solution delivery takes that a step forward. When your interacting with another user and wish to send them information, the solution is aware of the device the recipient is using. The elasticity here is in responding to the “sender” of information noting the type of device the “recipient” is using. In the case of smart phones, allowing the sender to select a portion of the document for the recipient to review. In the case of a smart phone recipient, the solution can then only forward the required information rather than the entire document.
Pillar three is the concept of being storage agnostic. This is not a hardware discussion where we don’t care who made the disk, the rpm of the disk or even the physical frame the disk is in. Rather it is allowing for the application of the concepts of cloud storage to be applied. Applications that don’t require constant data but are able to allow for offline use are critical. These “storage agnostic” applications now begin the pattern of use case application. If I have an application that has critical information and I have noted that I am traveling in an area with poor cellular service, prompt me to download the information before I enter the bad cellular area. Or prompt me that I don’t have the space or bandwidth to download the information and be prepared to not have that information available.
Pillar four is the concept of being truly device agnostic. Many years ago, Java (write once use many times) was introduced as the unified platform regardless of hardware. It failed to work more often than it did, but the concept of write once use many is the basis of Pillar four.
- Devices have different capabilities be aware of the users device
- Device Operating Systems have different capabilities be aware not only of the OS, but also the version of the OS being leveraged. The first concept is known by everyone. Depending upon your personal device preference you are intimate with the strong point and weak point of the various devices that are available. Within applications, the developer needs to be aware of what happens on each device as they go forward. Additionally users may have a number of different devices. Rule one of Pillar four is to be aware of the user’s devices, and which device is connected right now.
Within the various devices now also be aware of the Operating System and the version of the operating system on the device. Being aware of the limitations and capabilities of each OS type within a device family and beyond that aware of which specific device that user is using to connect to the solution rounds out this requirement.
By Scott Andersen