ACM Transactions on Graphics (TOG)
A survey of X protocol multiplexors
ACM SIGCOMM Computer Communication Review
Interposition agents: transparently interposing user code at the system interface
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
The magic garden explained: the internals of UNIX System V Release 4: an open systems design
The magic garden explained: the internals of UNIX System V Release 4: an open systems design
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Query caching and optimization in distributed mediator systems
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
C and tcc: a language and compiler for dynamic code generation
ACM Transactions on Programming Languages and Systems (TOPLAS)
The design and performance of a scable ORB architecture for COBRA asynchronous messaging
IFIP/ACM International Conference on Distributed systems platforms
IFIP/ACM International Conference on Distributed systems platforms
Infosphere project: system support for information flow applications
ACM SIGMOD Record
Using Interceptors to Enhance CORBA
Computer
Don't Scrap It, Wrap It! A Wrapper Architecture for Legacy Data Sources
VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases
DeleGate: A General Purpose Application Level Gateway
WWCA '97 Proceedings of the International Conference on Worldwide Computing and Its Applications
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Fast, Optimized Sun RPC Using Automatic Program Specialization
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
SLIC: an extensibility system for commodity operating systems
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Hi-index | 0.00 |
Mediators are well-known software components in the construction of distributed systems and applications, with clear advantages when adding functionality to legacy code. However, mediators that must handle dynamic interfaces (i.e., those that may change at run-time such as callback functions) are not easy to build in most imperative languages such as C, due to the many variants implied by the dynamic interfaces. We call his kind of mediators intermediators. We propose a systematic implementation method based on the concept of closures to implement intermediators using the Tempo run-time specializer for C programs. To illustrate this method, we implemented a unified user authentication intermediator for Unix and Windows 2000 called GINA-IM. GINA-IM gets the password entries from a Unix NIS server and performs user authentication based on the GINA model (Graphical Identification and Authentication) of Windows 2000. The code of GINA-IM is a quarter of the code size of a conventional component written without our tools. GINA-IM is in production use at authors' university by two thousands of freshmen in class and several thousands of students daily.