SAP product family is large and there are a number of ways to integrate them with 3rd party applications. Which one is better? There is no simple answer for this question just because in every particular situation depending on your IT landscape, the right answer may be different.
When it comes to integration of SAP products between each other, there is a standard/native way for that: most of SAP apps talk to each other over SAP NetWeawer Gateway. And 3rd party apps are allowed to connect to the same gateway over SAP JCo. JCo as a transport layer allows to perform calls of remote function modules (RFM), BAPIs, send & receive IDocs. The recommended approach in most cases is to send IDoc from one app to another. JCo cares about almost everything including authentication and encryption.
But in some cases it is problematic to use JCo. For example, you may need to connect SAP system with some product from Microsoft family. As long as JCo is Java-based library, and it is not supported out-of-the-box by Microsoft products. That’s why in this case it makes sense to consider an approach based on OData.
System integration usually is not as simple as the example mentioned above because almost every enterprise is running a couple of apps, not just a pair. And most of them are to be integrated and needs to be taken into account. If you are looking for a balanced solution, just send me a message and describe your situation. My contacts are listed at the side bar.