An OrbixWeb filter can obtain various information about the invocation that it is intercepting. This information includes the reference of the object whose method is being invoked, the name of the method being invoked, the parameters of the method being invoked, and the name of the user running the program that resulted in the invocation. Unfortunately, the filter cannot determine the reference of the object making the invocation.
Without this information, it is impossible to provide the context sensitivity property defined in Section 3. The reason is that the piggybacked data depends on the state of the invoking object. Thus, the filter cannot obtain the information to be piggybacked from the invoking object.
A per-object filter is aware of the object with which it is associated, and so does not suffer from this problem. However, as we saw in Section 5.2, per- object filters cannot be used. Hence, we needed to find a workaround.
Because of the constraint of having only one object per process, we work around this problem by allocating a static variable that contains a reference to the tie object. This static variable is referenced by the filters when they need to make a invocation on the invoking process. This is a simple workaround, but it is artificially simple because of the constraint of one object per process. If the per-process filter could be imposed for communications between objects in the same process, then this static variable would need to be updated before every method invocation. Doing so would violate transparency of Section 3.