1460709228-afe0373f-9df2-4237-9a98-3c93a69bb279

1. A system allowing for communication between objects of differing versions and allowing for communication between objects of differing types, comprising:
a proxy object created at runtime that represents a real object, wherein the proxy object is configured to receive information from a calling object in lieu of the real object, and the proxy object is further configured to process the information, wherein the information includes a first metadata associated with the calling object; and
an adapter for matching the first metadata to a second metadata, wherein the adapter is configured to receive the first metadata from the proxy object, wherein the first metadata is received as an early bound invocation and passed from the proxy object to the adapter through a set of version resilient contracts, and wherein the adapter is configured to receive the second metadata from the real object as a late bound invocation, allowing the target object to change at runtime resulting in the real object and the calling object to version independently of one another.
2. The system according to claim 1, wherein the real object is a different version from the target of the calling object.
3. The system according to claim 1, wherein the real object is a different type from the target of the calling object.
4. The system according to claim 1, wherein the proxy object and the adapter are located on different physical machines.
5. The system according to claim 1, wherein the adapter matches the first metadata to the second metadata by using canonical names assigned to at least one of the first metadata and the second metadata.
6. The system according to claim 1, wherein the proxy object matches the first metadata to the second metadata by using canonical names assigned to at least one of the first metadata and the second metadata.
7. The system according to claim 1, wherein the adapter and the dynamic proxy subsist in a managed runtime environment.
8. The system according to claim 1, wherein the real object is part of a host application and the calling object is part of an add-in application.
9. The system according to claim 1, wherein the real object is part of an add-in application and the calling object is part of a host application.
10. A method for allowing communication between objects of differing versions and differing types in a computing system running a managed runtime environment, comprising:
instantiating dynamically a proxy object for imitating a target object, wherein the proxy object is created for the purpose of intercepting early bound calls from a calling object to the target object;
receiving the calls using the proxy object;
processing the calls using the proxy object, wherein the proxy object examines the calls for a first metadata information associated with the calling object;
receiving a second metadata information from the target object via a late bound invocation using an adapter, wherein the second metadata is associated with the target object; and
comparing the first metadata information to the second metadata information in order to make a determination if the calling object will be able to communicate with the target object.
11. The method according to claim 9, further comprising communicating between the calling object and the target object in spite of differing versions between the calling object and the target object.
12. The method according to claim 9, further comprising communicating between the calling object and the target object in spite of the calling object and the target object differing in object types.
13. The method according to claim 9, wherein the comparing of the first metadata information to the second metadata information is based on comparing canonical names in tables associated with the first metadata information and the second metadata information.
14. The method according to claim 9, wherein the comparing of the first metadata information to the second metadata information is performed in the proxy object.
15. The method according to claim 9, wherein the comparing of the first metadata information to the second metadata information is performed in the target object.
16. A computer readable medium bearing tangible executable instructions for allowing communication between objects of differing versions and differing types, comprising:
creating a dynamic proxy object for imitating a target object;
intercepting an early bound call from a source object directed towards a target object using the dynamic proxy object;
determining a source metadata associated with the source object;
passing the source metadata from the dynamic proxy object to an adapter by using at least one version resilient reflective interface;
receiving the source metadata using the adapter;
using late bound invocation to obtain a target metadata from the target object; and
determining if there is a correspondence of the target metadata to the source metadata, and if there is the correspondence, invoking a type of the target object.
17. The computer readable medium according to claim 15, further comprising determining the correspondence by using tables that map canonical names to at least one of the target metadata and the source metadata.
18. The computer readable medium according to claim 15, wherein the passing of the source metadata from the dynamic proxy object to the adapter is performed across a remoting boundary, wherein the remoting boundary separates in a different processes the dynamic proxy object and the adapter.
19. The computer readable medium according to claim 15, wherein the target metadata is obtained from the target object using a reflection functionality of a runtime environment.
20. The computer readable medium according to claim 15, wherein the source object and the target object subsist in a managed runtime environment.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A computer-implemented method comprising:
a) extracting, automatically by a computer system including one or more computers on a network and from a first set of untargeted Websites, a first set of document information extracted from a shallow crawl of the first set of untargeted Websites;
b) storing, by the computer system, the first set of document information that was extracted from a shallow crawl of the first set of untargeted Websites, in a first storage repository;
c) extracting, automatically by the computer system and from a second set of targeted Websites, a second set of document information extracted from a deep crawl of the second set of targeted Websites,
wherein the targeted Websites include
i) Websites provided by content providers having available advertisement spots, and
ii) Web pages identified in earlier, unfilled, content relevant advertisement requests, content relevant advertisement requests; and

d) storing, by the computer system, the second set of document information that was extracted from a deep crawl of the second set of targeted Websites, in a second storage repository different from the first storage repository.
2. The computer-implemented method of claim 1, wherein the shallow crawl of each of the untargeted Websites includes crawling to a first level of Web Pages associated with the untargeted Website.
3. The computer-implemented method of claim 2, wherein the deep crawl of each of the targeted Websites includes crawling to a second level of Web pages associated with the targeted Website, and
wherein the second level of Web pages is further down into a hierarchy of Web pages associated with a Website than the first level of Web pages.
4. The computer-implemented method of claim 1, wherein the first set of untargeted Websites is larger than the second set of targeted Websites.
5. The computer-implemented method of claim 1, wherein the first set of document information extracted from the first set of the untargeted Websites includes textual content of Web pages of the untargeted Websites crawled, and
wherein the second set of document information extracted from the second set of the targeted Websites includes textual content of Web pages of the targeted Websites crawled.
6. The computer-implemented method of claim 1, wherein at least some of the second set of targeted Websites includes static document information, and
wherein the at least some of the second set of targeted Websites which includes static document information is crawled before receiving an advertisement request.
7. The computer-implemented method of claim 1, wherein at least some of the second set of targeted Websites includes dynamic document information, and
wherein the at least some of the second set of targeted Websites which includes dynamic document information is crawled responsive to an advertisement request.
8. The computer-implemented method of claim 1, wherein at least some of the targeted Websites include content provider Websites designated as partner Websites by an advertisement serving network.
9. The computer-implemented method of claim 8, wherein an identifier of the targeted designated partner Websites is entered via a content provider interface by a content provider associated with the document information, and wherein the content provider is a Web publisher.
10. The computer-implemented method of claim 1, further comprising:
e) generating, automatically by the computer system and for each of the targeted Websites, document relevance information from the second set of document information; and
f) storing, on one or more storage devices associated with the computer system and for each of the targeted Websites, the document relevance information in association with an identifier of the targeted Website.
11. Apparatus comprising:
a) one or more processors; and
b) one or more storage devices storing processor executable instructions which, when executed by the at least one processor, cause the one or more processors to perform a method comprising,
1) extracting, automatically and from a first set of untargeted Websites, a first set of document information extracted from a shallow crawl of the first set of untargeted Websites;

2) storing the first set of document information that was extracted from a shallow crawl of the first set of’untargeted Websites, in a first storage repository included in the one or more storage devices,
3) extracting, automatically and from a second set of targeted Websites, a second set of document information extracted from a deep crawl of the second set of targeted Websites,
wherein the targeted Websites include
i) Websites provided by content providers having available advertisement spots, and
ii) Web pages identified in earlier, unfilled, content relevant advertisement requests; and
4) storing the second set of document information that was extracted from a deep crawl of the second set of targeted Websites, in a second storage repository which is included in the one or more storage devices and which is different from the first storage repository.
12. The apparatus of claim 11, wherein the shallow crawl of each of the untargeted Websites includes crawling to a first level of Web Pages associated with the untargeted Website.
13. The apparatus of claim 12, wherein the deep crawl of each of the targeted Websites includes crawling to a second level of Web pages associated with the targeted Website, and
wherein the second level of Web pages is further down into a hierarchy of Web pages associated with a Website than the first level of Web pages.
14. The apparatus of claim 11, wherein the first set of untargeted Websites is larger than the second set of targeted Websites.
15. The apparatus of claim 11, wherein the first set of document information extracted from the first set of the untargeted Websites includes textual content of Web pages of the untargeted Websites crawled, and
wherein the second set of document information extracted from the second set of the targeted Websites includes textual content of Web pages of the targeted Websites crawled.
16. The apparatus of claim 11, wherein at least some of the second set of targeted Websites includes static document information, and
wherein the at least some of the second set of targeted Websites which includes static document information is crawled before receiving an advertisement request.
17. The apparatus of claim 11, wherein at least some of the second set of targeted Websites includes dynamic document information, and
wherein the at least some of the second set of targeted Websites which includes dynamic document information is crawled responsive to an advertisement request.
18. The apparatus of claim 11, wherein at least some of the targeted Websites include content provider Websites designated as partner Websites by an advertisement serving network.
19. The apparatus of claim 18, wherein an identifier of the targeted designated partner Websites is entered via a content provider interface by a content provider associated with the document information, and wherein the content provider is a Web publisher.
20. The apparatus of claim 11,
further comprising:
5 generating, automatically and for each of the targeted Websites, document relevance information from the second set of document information; and
6 storing, on the one or more storage devices and for each of the targeted Websites, the document relevance information in association with an identifier of the targeted Website.