The figure below provides a high-level overview of the main components of the NWBC runtime and is followed by an explanation:
The NWBC runtime is deeply rooted in the Internet Communication Framework (ICF). You can find the NWBC HTTP handler class CL_NWBC_HTTP on the path /sap/bc/nwbc. The ICF node manages several important aspects such as the following:
Authentication is configured here.
It makes NWBC available as HTTP service.
The system logon can be configured here.
You can also have the handler somewhere else in the tree.
Class CL_NWBC_HTTP manages all HTTP-related aspects for NWBC. In the first instance, it is responsible for parsing the rest of the entry URL to determine the required service. Once the service is determined, the specific ABAP-based service is called and the returned data is handed to the HTTP response. The second important aspect of class CL_NWBC_HTTP is to manage and enforce security; specific services are only available if the corresponding ICF nodes are active. For more information, see 4.2 Active Services in ICF .
All of the NWBC runtime code is implemented in class CL_NWBC_RUNTIME. The NWBC API available on ABAP is defined in interface IF_NWBC_RUNTIME that declares all API calls. In addition, there is a low-level API, IF_NWBC_RUNTIME_CORE, that is not publicly available, but used only within the runtime. For specific exits, the enhancement interface (BAdI calls), IF_NWBC_RUNTIME_EXTENSIONS, contains methods that are called from the runtime at critical times to allow collected information to be adapted or influenced.
Class CL_URL is strictly not part of NWBC, but it was developed to provide one unified place within the system in which different types of URLs can be generated while taking into consideration the complexities of possible destinations configured in transaction RFC Destinations (Display/Maintain) ( SM59) to be resolved and possible configured proxies in the network.
Class CL_NWBC is a general static utility class that contains calls for applications to use, mostly to generate NWBC-relevant URLs.
Finally, transaction code NWBC uses class CL_NWBC to start NWBC for HTML in a browser.