1. A computer implemented method for providing bi-directional communication between a first network domain and a second network domain, the method comprising: receiving first data at the second network domain, the first data including one or more functions; receiving a first message at the second network domain, the first message being provided at the second network domain in response to the one or more functions being invoked, and the message identifying the one or more functions; responsive to receiving the message, executing the one or more functions at a computing device associated with the second network domain; and responsive to executing the one or more functions, sending a second message to the first domain indicating that the one or more functions have been executed, the second message being operable to invoke and execute one or more call back functions.