ACM Transactions on Graphics (TOG)
Unclogging distributed computing
IEEE Spectrum
Interposition agents: transparently interposing user code at the system interface
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Release-to-release binary compatibility in SOM
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
MMLite: a highly componentized system architecture
Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications
SLIC: an extensibility system for commodity operating systems
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Algorithma 99: an experiment in reusability & component based software engineering
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Evaluating Componentized Enterprise Information Technologies: A Multiattribute Modeling Approach
Information Systems Frontiers
An effective strategy for legacy systems evolution
Journal of Software Maintenance: Research and Practice
Detours: binary interception of Win32 functions
WINSYM'99 Proceedings of the 3rd conference on USENIX Windows NT Symposium - Volume 3
WSDL and UDDI extensions for version support in web services
Journal of Systems and Software
Hi-index | 4.10 |
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.