there are multiple ways to generate a signal for a non-SAP application, or to interact directly with a non SAP application.
BAPI / BADi can be used to communicate directly from an external program (usually, but not limited to a C variant) and an SAP structure of Function. This is a to and fro type communication – i.e. a ‘conversation’ where either SAP or the external application can read and / or write from each other.
SAP can write files directly to the operating system. If you have more than one server per instance (i.e. an Database server and multiple Application servers), you need to ensure that the job or dialog is run on the correct application server. You can do this for jobs, much more easily than for dialogs. You could use operating system level scheduling to determine if the target file had changed and execute something based on that.
SAP Events are an internal SAP construct that an be used to trigger jobs. Earlier versions of SAP had a SAP Event executable at the operating system level, that could be used to trigger SAP Events, that could be used to trigegr jobs.
Note that these are NOT the events within Object Oriented ABAP.
Hope this helps