Another intermediary pattern is a translator, who simply changes the protocol, the names of the methods, and thereby interfaces between a client and a server who speak different langauges.
These are just examples, there are many other patterns that are described in the growing literature on this topic.