Ignition doesn’t have any specific tools set up for process-to-process communications as you describe. But it’s built on Java, so you have the entire Java SE library to help you out. Google “java interprocess communication” to get started (it’s a very broad topic).
If “X” is a server process that you can expect to always be there in the background, I would open a listening port on localhost for clients like Ignition (your custom communication code in Ignition) to connect to. Then you can pass any kind of traffic back and forth as you like, passing things on to your window “Y” as needed.
If “X” is a gui application, I would consider passing custom window messages back and forth. You would need a listener on Ignition’s top level client window to receive them and pass them on.