Issue No. 07 - July (1999 vol. 32)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/2.774919
<p>Operating system application programming interfaces (APIs) are typically monolithic procedural interfaces that address a single machine's requirements. This design limits evolutionary development and complicates application development for distributed systems. Current APIs tend to be large, rigid, and focus on a single host machine. Component-based APIs could solve these problems through strong versioning capabilities and support for distributed applications. Ideally, obsolete API calls should be deleted, and calls with modified semantics (but unmodified parameters and return values) would remain the same. However, since the OS must continue to support legacy applications, obsolete calls cannot be deleted, and new call semantics are best introduced through new calls. In addition, typical OS APIs do not adequately address the needs of distributed applications: They have support for intermachine communication but lack high-level support for accessing remote OS resources. The primary omission is a uniform method for naming remote resources, such as windows, files, and synchronization objects.</p>
M. L. Scott, G. C. Hunt and R. J. Stets, "Component-Based APIs for Versioning and Distributed Applications," in Computer, vol. 32, no. , pp. 54-61, 1999.