When should I use BSPs (Business Server Pages) and when should I connect with Java/JCo to SAP?
SAP's JCo connector (Java connector) and BSPs present alternate development paths to essentially the same challenge. BSPs are a great way to quickly build Web-based applications that are rendered directly off of the SAP Web Application Server. Because BSPs rely on ABAP directives built into HTML pages, most SAP developers should have no trouble building such an application. Likewise, this integration with the ABAP stack means that you can easily call existing SAP function modules in the exact same manner that a normal ABAP program would.
However, BSPs are more or less limited to a program that runs within the ABAP stack of a specific SAP application server. Certainly you could use registered programs and RFC destinations to hook to an external application, but I believe there is an easier way to do this. Used in conjunction with open source frameworks such as Struts and Tapestry, the JCo Java connector can hook to any and all exposed RFC/BAPI interfaces. In this way, JCo acts as a system-to-system bridge between an external application and the SAP server itself. You can build reusable Java services that can allow access to an atomic set of RFC interfaces by a variety of external applications. With the industry-wide move towards SOA (Services Oriented Architecture), the JCo connector sits in the perfect position to let you build Java-based components that can be accessed by applications you build, both now and in the future.