Vertical vs Horizontal APIs

Many APIs have emerged since the inception of computer software. Its root can be traced back to the layered software architecture in which high layer calls to low layer. The low layer is not necessarily called APIs, but the other way is mostly true.

Initial APIs were inside a single or multiple vertical call stacks that share same memory space. As a result, you have good performance and ease of use. After that, inter-process communication (IPC) emerged and allowed API services to run in a different process for better protection against process crashes.

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

When distributed systems emerged, APIs services started to run on different machines for better protection against OS crashes and better scalability. For example, DBMS runs on a separate machine and provide database services to application running on other machines.

Through all these APIs, an execution dependency is established. In other words, if an API services fail, the application fails as well. These APIs are execution APIs, or vertical APIs.

While the cloud computing getting popular, a new type of APIs are getting popular too. Its intention is not for execution but to manage. The APIs offer controls over lifecycle and resource allocation of remote stacks in the cloud, and retrieves running states and stats. The remote stacks are independent in the sense that it continues to run even without the remote management client. These APIs are management APIs, or horizontal APIs.

An easy way to think about these two types of APIs is to look around your workspace. The execution APIs are like individual contributors and the management APIs are like managers. Individual contributors continue to ship products even if their managers are gone for a while but not forever.

Both types of APIs are important for successful cloud computing projects. It’s like a successful business needs both individual contributors and managers. To stay on top of work, cloud architects/developers need to know both types of APIs.

This entry was posted in Software Development and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.