1. A method of providing access to a plurality of data elements stored in a source system, said method comprising: sending from a user application a plurality of requests directed to said source system by having an address of said source system specified as the target of each request, wherein said plurality of requests are sent based on execution of a first set of instructions constituting a part of said user application; populating a cache with a copy of said plurality of data elements based on examination of said plurality of requests, sending from said user application a first request for a copy of a data element, said first request being directed to said cache by having an address of said cache specified as the target of said first request, wherein said data element is contained in said plurality of data elements and said first request is sent by executing a second set of instructions forming another part of said user application; receiving, by said cache, said first request directed to said cache for said copy of said data element, sending by said cache to said user application, said copy of said data element in said cache as a first response to said first request directed to said cache; intercepting, by said cache, a second request directed to said source system for said data element, said second request being directed to said source system by having the address of said source system as the target; and sending said copy of said data element as a second response to said second request.