A Basic unit of operation that involves both local plugin as well as client steps as part of one single operation. For example, for starting an application, an operation may include all of these substeps:
1. Starting an operation from a UI event
2. Prompting the user for missing application deployment information
3. Sending a start request to the CF client
4. Checking that the application started
5. Firing a refresh event so listeners, like UI editors and views, can fresh the state of the application in the UI
6. As well as handling errors and synchronizing with other background jobs
All these steps are modeled by one operation abstraction, that may be performed atomically if necessary.