Modern science and engineering are increasingly done in a collaborative fashion. These collaborations are multi-institutional, multi-disciplinary and geographically distributed environments. A computational Grid is a hardware and software infrastructure that provides dependable, consistent, pervasive and inexpensive access to high end computational capabilities. An effective computational Grid assumes the existence of a correctly operating large scale Grid fabric. The Grid fabric is the collection of physical and logical resources such as computing and storage facilities, file systems and high performance networks to which shared access is mediated by Grid protocols. A number of middleware implementations have been proposed and implemented that interface the user applications executing on the Grid infrastructure to the fabric, but majority of them assume an overly simplistic view and fail to adapt to shortcomings in the fabric. This thesis presents the challenges and application imposed complexities of interfacing the standard Grid middleware to the underlying fabric in SAM-Grid, a software infrastructure that addresses the globally distributed computing needs of the Run II experiments at Fermilab. |