Interface Design 
Generally speaking, interfaces are where functions in a system can be executed. In the context of SAP Exchange Infrastructure, the only interfaces that are of interest are those that enable data to be exchanged between multiple systems. Starting with a cross-system business process, you can then derive the corresponding interfaces required. SAP Exchange Infrastructure supports this process by using a business scenario to describe the collaborative process. The business scenario summarizes the interfaces required for this collaborative process. There are two different types of interfaces:
· Outbound Interfaces: Called in a sender system to send a message and in the case of synchronous messaging, to receive a response.
· Inbound Interfaces: Process inbound messages in a receiver system and implement a service that returns a response in the case of synchronous messaging.

In the remainder of this documentation, a message from a sender to a receiver is referred to as a request or request message, and the response to this request from a receiver is referred to as a response or response message.
You can use SAP interfaces that already exist in systems, non-SAP interfaces that are connected to SAP Exchange Infrastructure using adapters, or define new interfaces called message interfaces in the Integration Repository. Both worlds can also be interconnected in a collaborative process.

Also see: Interface-Based Message Processing.
Interfaces are an essential component of SAP Exchange Infrastructure:
· You define the interfaces to be used in a business scenario
· You define the XML transformations for messages that are to be exchanged between two interfaces in a mapping
· You assign an interface in a sender system to one or more interfaces in a receiver system in logical routing
· You generate proxies to implement your scenario based on message interfaces
You save interface descriptions (message interfaces, BAPIs, RFCs and IDocs) in the Integration Repository so that they can be referenced throughout SAP Exchange Infrastructure. However, adapters for external systems do not normally use interfaces, instead they access files or database tables in order to function, for example. For this reason, it is not necessary to import these interfaces into the Integration Repository. Instead, you define the sender and receiver data for routing and mapping in the Integration Engine when you configure the corresponding adapters. Also see: Communication Partners.
There are two approaches when developing interfaces:
· You can develop new, platform-independent message interfaces using the Integration Builder. Message interfaces are based on the WSDL standard Web Services Description Language), an XML schema for describing network services. Using this description, you can generate platform-specific proxies in Java or ABAP that you can then use to implement the actual data exchange.
· You can connect interfaces from SAP and non-SAP systems to SAP Exchange Infrastructure by using adapters. The Integration Builder can import interface descriptions in XML format for BAPI, RFC and IDoc interfaces from SAP systems Release 4.0 or higher.
By assigning the appropriate inbound and outbound interfaces, these two approaches can be integrated so that any combination of systems for exchanging messages using SAP Exchange Infrastructure is possible.
The Integration Builder supports the following for interface development:
· Platform-independent definition of message interfaces. Data types for message interfaces are defined in XML Schema Definition Language (XSDL). An XSD editor is available for this purpose.
· Import of BAPIs, RFCs and IDocs from SAP systems Release 4.0 or higher.
· Generation of Java proxies directly from the Integration Builder.
For more information about the general functions of the Integration Builder that are also useful for interfaces, see Integration Builder.

To generate an ABAP proxy, call transaction SPROXY in the SAP system in which you want to create the proxy. This is possible for SAP systems that have SAP Exchange Infrastructure Release 2.0 or higher installed.