SUMMARYThe dynamics of resource request rates in a Grid system can be wide ranging, to the point that request peaks for a single resource can be difficult to handle and end up greatly increasing the response time. Once a request has been submitted by a client, this has to cope with the potential overload arising. However, it is impractical to cure overload once it takes place by negotiating a different service or finding an equivalent resource, since the client would then bear the delay due to negotiation and re-submission. Instead, in order to effectively exploit Grid resources, it is crucial that applications perform reservation of resources before using them. Reservation allows a management system to consider application needs in advance and take suitable action to improve resource availability. In particular, this enables additional resources to be secured beforehand in the background when appropriate to avoid a potential overload, rather than paying the involved costs when overload arises. This paper proposes a software architecture that integrates applications with Globus services to conveniently handle resource reservation and allocation. Within the architecture, the computational reflection technology transparently connects applications with components that take care of advance reservation, as they dynamically sense the applications' resource needs. This dynamic information augments static knowledge gathered offline from static program code analysis.