Frank Artale's picture
Frank Artale

Platforms in the Cloud

APIs in the sky

A purist may argue that the lack of a "prescription" for application development when in the cloud makes for haphazard results. However, the ever-evolving smorgasbord of services that the cloud offers to developers of all types is proving to be irresistibly tasty.

The changing face of APIs

Before the advent of the cloud, application programming -- with the help of application programming interfaces (APIs) -- was a much more predictable sport. All development platforms have APIs which support everything from file systems to windowing systems. Those APIs come together in certain styles that allow developers to create applications of varying types, including web apps (hosted in browsers), console apps (the ugly command-line types), rich local apps (classic stuff that runs locally and interacts with the user), background processes (invisible but present on any machine), and many variants of these styles. All console applications on Windows have a few common characteristics in terms of the APIs they can use or the way the application source code is structured.

The APIs that developers have come to know and love, along with the tools that vendors embraced in pre-cloud times, are still available and living inside virtual machines that are running in the cloud. These APIs still offer a nice first step for development in the cloud because they are familiar to developers and work well with the resources that we have today.

The game changes, however, when an application developer uses an API that causes an amount of code to execute somewhere else in the cloud-at-large, which may or may not even live in the same cloud where the application itself is running. While the implications to security and network or data access in this model needs to be addressed, cloud-based application development is clearly the trend of the future.

Developing for the cloud: Giving developers the 'ultimate choice'

Since applications are developed independently and in general are very focused, cloud-based applications tend to have less of a prescriptive style compared to their OS hosted counterparts. The apps still need to look like web app or background processes, but after that it's "off to the races." Much of this is good because the developer has the ultimate choice.

However, because application development still requires rigid processes, developers still need to learn the API and semantics (rules and regulations) of the application they are talking to -- even when developing for the cloud. In the strictly OS hosted app world, developers typically learn an API and then the service developer implements an SPI, or service provider interface, under the covers to adhere to the API. For example, in the Windows world, a mail system can implement the OS-defined messaging API, and developers just go and code to that. Message Bus is an example of a cloud-based messaging system that simply expresses an API that any application can use to send mail.

Developing in a standard-less environment

In the cloud world, there are some emerging standards for the classes of applications, but it's hard for one vendor to call the shots, making it a bit wild. Sometimes the community at large leans toward an open source standard and allows it to become the law (via the law of code rules, as I have been taught to say).

The beauty of insanely useful applications just coming online anytime defines the incremental-ism that has caused the cloud and cloud-like OSes to become the destination developer platform. A developer of an application doesn't need to lobby for local installation of code on multiple OS variants and make sure that bug fixes propagate. The service code stays where it is, and applications call to it in the cloud. The owner of the service code manages it and keeps it up to date. This is cloud at its best.

As the rapidly moving worlds of application development and cloud computing collide, there are likely to be bumps in the road. However, by harnessing traditional development tools like APIs along-side new cloud-based development tools, developers now have more choice than ever.

Frank Artale is a partner at Ignition, a venture capital firm, where he specializes in cloud, core infrastructure, networking, and security investments. Follow Frank on Twitter: @frankartale. 

Neither Frank nor Ignition has any financial interest in any company or product mentioned in this post.

What is Tech Briefcase?
TechBriefcase is a new, free service where IT Professionals can Search, Store and Share IT white papers and content like this. Learn more
Bookmark content
Speed up your research efforts with content across the web.
Search and Store
Find the white papers you need. Create folders for any topic.
View Anywhere
Open your briefcase on your iPhone, tablet or desktop. Share with colleagues.
Don't have an account yet?