100 likes | 209 Views
Application-level Implementation of Asynchronous Method Call in a CORBA-based Distributed Object Database. Milorad Tosic, Helen Berman, John Westbrook. Database Architecture. The architecture fully exploits distributed object paradigm. Three types of distributed objects:
E N D
Application-level Implementation of Asynchronous Method Call in a CORBA-based Distributed Object Database Milorad Tosic, Helen Berman, John Westbrook
Database Architecture • The architecture fully exploits distributed object paradigm. • Three types of distributed objects: • Agent : contains some number of structures and implements all searching functionality • Admin : Administration object that integrate Agents into system • IAdmin : Object implementing user interface
The Architecture’s Features • Scalable distributed architecture • Two types of method calls: • “Light-weight” method calls : Administration of the system of Agents • “Heavy-weight” method calls : Time consuming search execution • No optimal concurrency model for all types of methods
Problem Statement • Implement asynchronous method call (AMC) for selected methods • The AMC must not interfere with underlying CORBA implementation • Application level implementation of AMC
Future Based AMC • Future object is located in the client address space • In CORBA environment, this approach requires either the Future to be client responsibility or to be a separate CORBA object
Proposed AMC Implementation • Future object is located in the server address space • AMC is implemented as a set of separate methods in the server’s interface
Future Threading Model • Future object, used for AMC, provides its own thread • One-thread-per-Future model is adopted • The model allows different thread scheduling techniques
Agent Threading Model • Server designer implements simple private class searchFuture, and uses it for implementation of the non-blocking methods • Client sees just server interface and access non-blocking methods as all other ordinary methods
Conclusions • Since we did not modify or extend the CORBA language or its runtime system, presented solution is independent on specific CORBA implementation, or used concurrency model
References • R.R.Raje, J.I.William, M.Boyles, “An Asynchronous Remote Method Invocation (ARMI) Mechanism for Java”, • M.Karaorman, J.Bruno, “Design and Implementation Issues for Object-Oriented Concurrency”, • U.Leser, S.Tai, S.Busse, “Design Issues of Database Access in a CORBA environment”, Workshop “integration of Heterogenous Information Systems”, Magdeburg, Germany, 21.9.98. • D.C.Schmidt, S.Vinoski, “Object Interconnections: Comparing Alternative Programming Techniques for Multi-threading CORBA Servers”, Columns 5,6, and 7, C++ Report, 1996. • M.Walmsley, “Multi-Threaded Programming in C++”, Springer, 2000.