What are Proxies?
Proxies are executable interfaces that are generated for the target application language like ABAP/JAVA.
Proxy model represents a new programming paradigm for SAP systems, and is important element of Enterprise Services Architecture.
Proxies separate Business Application Logic from the Integration logic of the Exchange Infrastructure.
Proxies bypass the adapters and provide adapter less communication with the JAVA/ABAP business systems in landscape.
Proxies are generated from the WSDL description of interface objects and have same attributes as message interface. There are ABAP and JAVA proxies available.
I.e. Direction: Inbound, outbound.
Mode : Synchronous, asynchronous.
Java proxies are generated from the WSDL description of the interface in the Integration Repository, and are stored with .jar file extension. This archive consists of generated java classes corresponding to the integration objects.
ABAP proxies are generated on the application server side with transaction SPROXY, based on the WSDL representation of the message interface. The generated objects depend on the mode and direction of the message interface.
For ABAP Proxies the application system should have Web AS 6.20 and XI2.0 add-on.
Along with this, the following configurations are required on the application side to enable the proxy connection:-
1. TCP\IP Connections
1.1 LCRSAPRFC :- To connect to IR and get information of interface Objects
1.2 SAPSLDAPI: - To connect to SLD and get the Business System Information
2. HTTP Connection
PI_INTEGRATIONSERVER:- Used to send the message to Integration Server
3. Configuring the local integration engine
For Java Proxies SAP J2EE Engine above SP5 is necessary, on this SAP J2EE engine we need to install Java Proxy Runtime (JPR) along with Messaging System (MS), which provides services like messaging, queuing, and persistency of XI messages.
In order to compile the java proxy source code we need the following list of libraries, which are located at non-central Adapter Framework Installation.
ABAP Client Proxy
ABAP client proxies are generated from outbound message interface, and are used to send message from SAP WAS to XI. Client proxy generation creates an ABAP class with the method EXECUTE_SYNCHRONOUS/ EXECUTE_ASYNCHRONOUS depends on the mode of the interface. Along with the class it also generates structures and table type with the specified name prefix. The maximum length of 30 characters is allowed while allotting names for the generated objects.
ABAP Server Proxy
ABAP server proxies are generated from inbound message interface. Server proxy generation creates an interface along with the implementation class. The business functionality is defined in the implementation class. Upon receipt of a message, the ABAP proxy runtime calls the method EXECUTE_SYNCHRONOUS of implementing class (in asynchronous communication EXECUTE_ASYNCHRONOUS).
Java Client Proxies Java client proxies are generated for outbound message interfaces in order to send messages from J2EE application to SAP XI. Java proxy generation generates all the Java classes necessary for a client proxy: the EJB 2.0 bean class, home and remote interfaces, local home and local interfaces, as well as Java classes for the data types used.
The proxy beans, classes generated by Java proxy generation, need to be deployed in the SAP J2EE Engine together with the Java application that invokes the proxy. The application program should be included in the EAR project that contains the bean, proxy classes. However, the generated classes are dependent on the classes of the Java proxy framework.
Java Server Proxies
If the message needs to be sent from the Integration Server to a Java application, Java Server proxies are used; actually Server Proxies are generated for inbound message interfaces using the Integration Builder tool.
In case of server proxies, along with the server proxy interface and proxy classes of data types, the implementation class is generated that implements the server proxy interface, this is the place where we write our application logic.
Note: In order to define the dependencies between EJB applications (for both Server and Client proxies) application-j2ee-engine.xml of the EAR project needs to be edited.