A method of communicating between modules, the method comprising: sending a first message from a first module, wherein the first module is a control module of a control domain and wherein the first module includes a first data transport layer and a first application object layer, the first message originating at the first application object layer and being sent out of the first module via the first data transport layer, wherein an enterprise service bus operates to route messages to and from the enterprise modules and wherein the enterprise service bus includes several adapters (121, 122, 123) for intermediating between a primary bus section of the enterprise service bus and the enterprise modules; receiving the first message at a second module, wherein the second module is a bridge that facilitates messaging transactions between control modules and enterprise modules and wherein the second module includes a second data transport layer and one or both of a transaction layer and a second application object layer, wherein the transaction layer analyzes the first message received by the bridge and determines which of the adapters is suitable for further communicating the first message to the appropriate one of the enterprise modules, the first message being received via the second data transport layer; wherein the sending and receiving are governed by ladder logic and are performed in a synchronous manner by sending data when a send instruction is executed and by receiving data when a receive instruction is executed, and wherein the first message is at least temporarily stored in a buffer after being received, prior to being acted upon by the ladder logic. sending a first message from a first module, wherein the first module is a control module of a control domain and wherein the first module includes a first data transport layer and a first application object layer, the first message originating at the first application object layer and being sent out of the first module via the first data transport layer, wherein an enterprise service bus operates to route messages to and from the enterprise modules and wherein the enterprise service bus includes several adapters (121, 122, 123) for intermediating between a primary bus section of the enterprise service bus and the enterprise modules; receiving the first message at a second module, wherein the second module is a bridge that facilitates messaging transactions between control modules and enterprise modules and wherein the second module includes a second data transport layer and one or both of a transaction layer and a second application object layer, wherein the transaction layer analyzes the first message received by the bridge and determines which of the adapters is suitable for further communicating the first message to the appropriate one of the enterprise modules, the first message being received via the second data transport layer; wherein the sending and receiving are governed by ladder logic and are performed in a synchronous manner by sending data when a send instruction is executed and by receiving data when a receive instruction is executed, and wherein the first message is at least temporarily stored in a buffer after being received, prior to being acted upon by the ladder logic.