Integration of SAP StreamWork with on-premise application comes in various flavors. We can easily separate those scenarios where all communication is initiated by the on-premise application and those which require communication triggered by the on-premise and the on-demand application. The later is for sure the more complex flavor.
If all communication is initiated by the on-premise application the most simple scenario is where a part of the StreamWork UI is embedded in the on-premise application. This can currently be done for the Feed functionality of StreamWork. You can easily embed a users StreamWork Feed in your application. Details can be found at https://streamwork.com/api/feeds/Embedding_a_feed_in_an_external_website.html
The other scenario where all communication is initiated by the on-premise application is when the on-premise application reads/writes date from/to StreamWork. The on-premise application can create and update StreamWork activities and make sure all relevant colleagues or partners get invited. A real life example of such a use case is the CRM integration which was just announced. Integration scenarios like these can be built using the StreamWork Integration API.
A similar scenario would be if the on-premise application updates the StreamWork Feed based on events in the on-premise application. A CRM application could for example update the StreamWork Feed of all affected sales people when a customer complained about a product. This type of integration can be realized using the StreamWork Feed API.
Integration becomes more complex when communication can also be triggered by StreamWork. First of all a mechanism to trigger communication within StreamWork has to be provided as part of the integration and second the information has to be sent back to the on-premise system. Scenarios like this usually require the implementation of custom tools which can be used within a StreamWork Activity. Such a tool would typically include a button “Send to …” (where “…” has to be replaced with the on-premise system). Pushing this button would then trigger the communication with the on-premise application. Custom tools can either be built by using the StreamWork Method API or the StreamWork Open Social API. Of course you can use these two APIs independent of any integration scenarios if you only want to build a new tool (like a collaborative charting tool) which helps in decision making.