Integration points are a perfect place for an ESB. They can just be activates events based upon messaging.
This can allow you have to a central service that either uses the framework and itself activates other actions via a message. These messages can be distributed locally or remotely, to services that are waiting for the messages and will activate upon receiving them to complete whatever action you want.
- Scheduler says it's time to run stored proc to move data from db to another (an example of possible scheduled job)
- Scheduler sends a
- A service is awaiting this message, attached to the service bus, that activates a stored proc when the message is received
- The service can publish a
ActivityStatus message to the service bus
- A logging activity can listen for the
ActivityStatus message and record the status of the event for reporting purposes
Now an ESB buys you a few things here. One you can easily remove the service that awaits the
TransferData message and replace it with another one that handles that message in a different manner.
Additionally if you have data imports with large imports files, you can break them up. It's not hard to have a service that listens for file drops then reads in the file and generates either 1 message saying there's data ready or breaks up the file into each record in the large file to be processed. Breaking up the file allows you to more easily track errors with a specific record, fix them, and repost them to the system but sometimes ordering matters more. With having each record in the large file as a single message, you can also scale out multiple services that consume the same message, makes the file processing happen in parallel.
In .NET you really have two frameworks that fit as an ESB.
NServiceBus. If you really want, you try BizTalk from MS but that will likely make you pull your hair out. Though you can use the Workflow Designer if you have non developer users that will be setting up the jobs.
I know MassTransit supports scheduled events in some fashion, I assume that NServiceBus does as well though I don't know that for sure.