Proxy generation converts non-language-specific interface descriptions in WSDL into executable interfaces known as Proxies. Depending on the target programming language, you choose one of the following:
· ABAP proxy generation is part of the SAP Web AS 6.40. ABAP proxy generation enables you to generate proxies to communicate by using the Web service infrastructure and by using SAP Exchange Infrastructure. ABAP proxies that were generated from message interfaces in the Integration Repository (IR) can be used in both infrastructures. This means that if none of the Integration Server services are required for a proxy-to-proxy communication scenario in ABAP, you can use a point-to-point connection using the Web service infrastructure instead.
· Java proxy generation in the Integration Builder (Design) generates proxies from message interfaces in the Integration Repository. Java proxy generation packs the proxy objects in a Jar file, which you can save locally. You use the generated classes in J2EE applications on the SAP J2EE Engine.
You create proxy objects in the development system by using the proxy generation functions. They are transported and shipped by using the tools in the development system. There are separate tools in the Integration Repository (see also: Software Logistics for XI Objects).
ABAP proxy generation gets the WSDL description for message interfaces from the Integration Repository (WSDL Web Service Description Language) by using http. In WSDL, data that is transferred using messages is described using XSD (XML Schema Definition Language).
The Integration Builder does not support the full range of WSDL (for message interfaces) and XSD (for data types) commands; this is not the case for WSDL in the Web service infrastructure, however.
Proxy generation is available in applications that are based on SAP Web AS 6.20 and that have installed the XI 2.0 Add-On. After you have upgraded such application systems to SAP Web AS 6.40, you must regenerate the proxies that were generated for XI 2.0 (Java and ABAP) in these systems when using XI 3.0. You do not need to regenerate proxies when you migrate the XI 2.0 Integration Repository to the XI 3.0 Integration Repository.
Also note the following:
Special Information for an Application System Upgrade to the SAP Web AS 6.40
Since the ABAP proxy programming model has been changed, you must modify any program code in which ABAP proxies were used when you upgrade application systems to the SAP Web AS 6.40. For information, see application systems based on the SAP Web AS 6.40 and higher: Call the Object Navigator (transaction SE80) and then call proxy generation to display a proxy (Enterprise Services → Web Service Library → Server/Client Proxies) Finally, choose Goto → Display Online Docu.
The package name com.sap.aii.proxy.framework (and therefore all sub-packages) had to be changed for organizational reasons. From SAP XI 3.0 SP1, the new package name is com.sap.aii.proxy.xiruntime. Therefore, you must regenerate any Java proxies you generated prior to SAP XI 3.0 SP1.
You only need to make other changes to the program code if you have used methods of the MessageSpecifier interface that are invalid. These methods are not included in the documentation.
ABAP proxy generation in application systems with the XI 2.0 Add-On (SP4) can generate ABAP proxies for message interfaces in the XI 3.0 Integration Repository. It is otherwise only possible to use message interfaces, message types, and data types in the same scope that they were used in XI 2.0.
· The message interfaces only reference message types and not the new XI 3.0 interface objects or RFC and IDoc messages.
· The XML namespace for (fault) message types must be identical to the repository namespace (see: Namespaces).
· Only data types that do not use any of the new XSD editor functions or attributes in XI 3.0 are used (for example, default values or data type templates).
· Data type enhancements are not used.
After you have generated the proxies, you can use the proxy objects you created in the development system to start exchanging messages.
See: Proxy Runtime.
Proxy generation generates classes and structures for the interfaces and data types written in WSDL. The range of commands in the Integration Builder is restricted to a suitable WSDL subset for system integration. For more information about converting message interfaces from the Integration Repository, see ABAP Proxy Objects or Java Proxy Objects.
· Web services usually exchange messages synchronously.
· ABAP proxies that you did not generate from message interfaces can only exchange messages by using the Web service infrastructure.
· You can only generate ABAP server proxies from a WSDL description if they originate in the Integration Repository.
A WSDL description from a UDDI server (or an Internet page) is usually used to make a service executable in the Internet and to describe the interface of this service. You require a client proxy and not a server proxy to call this service by using the Web service infrastructure.
The following graphic describes how to generate and use proxies in SAP Exchange Infrastructure. You start with an outbound message interface and a corresponding inbound message interface in the Integration Repository. To implement this interface at runtime, the application generates corresponding proxies for each development system. (Also see: Communication Using Proxy Runtime).
You can of course also generate server proxies for Java and client proxies for ABAP from message interfaces.
From the point of view of SAP Exchange Infrastructure, proxy generation represents the switch from design time to runtime. The graphic outlines how a message is sent from a Java application to the Integration Server, using a client proxy. The message is processed according to the settings in the Integration Directory and is then forwarded to a runtime component at the receiver. From there, the message is forwarded to an ABAP application by using the client proxy.
The graphic only shows one direction of communication, which is the case with synchronous communication, for example. The interfaces in the Integration Repository have corresponding attributes that indicate whether they are synchronous or asynchronous interfaces.