The Application Development Guidelines Chapter for Best-Built Applications
If you are an SAP partner or a customer with a large stake in custom development and want to build high quality applications that integrate with SAP solutions, you should read the application development chapter in Not authorized to view the specified document 7672 (BBA). The chapter was first published at SAP TechEd 2010 and is now part of SAP’s guidelines for best-built applications (free download at http://BestBuiltApps.sap.com).
For you as an SAP partner or customer, development guidelines are probably among the most important. They come into play at the very beginning of your development process and help you to leverage the relevant SAP technologies and to understand which technology to choose to effectively develop, test, and deploy your software. This blog gives you insight into the content in the Application Development guidelines chapter.
The introduction gives you an overview of the chapter. We focus on the three key application development platform choices: ABAP, SAP Java, and third-party platforms such as .NET. You will see the relationship between the Application Development guidelines and other chapters of BBA indicated by many cross-references. There is no one-size-fits-all method for integrating with the SAP Business Suite but there are number of options from which you can choose and a number of integration points and layers (reporting, UI, application logic, and data store) that you should consider and which are depicted in this picture:
The General Guidance section provides application development guidance for any software that integrates with SAP Business Suite regardless of its development technology:
- Making Software Enterprise Ready refers to a range of criteria that on a strategic level are described in SAP’s concept of Timeless Software (http://tinyurl.com/sdn-timeless). SAP applies the Timeless Software principles by offering its customers the possibility of using a single release of mission critical SAP application software for a long time (SAP supports its products for 7+2 years) and by delivering “innovation without disruption.” We recommend that SAP partners and customers commit to a similar approach. You will also find practical guidance about what to do to make your software enterprise ready.
- Componentization. SAP Business Suite components are designed according to the Timeless Software principle of componentization, which allows SAP to deliver new application components incrementally without replacement of deployed application components (“innovation without disruption”). We recommend componentization of business applications.
- Single Stack. As an SAP partner or customer, you should select one platform for one application component: SAP NetWeaver ABAP, SAP NetWeaver Java, or any third-party platform. There may be number of reasons for you to select the same platform as the SAP Business Suite (e.g., to save customers maintenance cost for a separate system for your solution) and a number of reasons to select a non-SAP platform (e.g., you may have domain know-how only on a non-SAP platform), but you should select only one platform for your solution.
- Integration through APIs and composite applications. If your application component aims to implement a new business scenario without the need to change SAP Business Suite components, we recommend creating composite applications. Since composite applications are independent of the SAP solution platform, it is a good way for you as a partner or ISV to provide innovation without disruption. If calls to the core of the SAP Business Suite are required, you should use APIs provided by SAP applications, which are kept stable across multiple releases.
- The Enhancement and Switch Framework allows SAP customers to choose and activate new functionality in their SAP systems on the level of business functions. If you are an SAP partner, we recommend that you familiarize yourself with the Enhancement and Switch Framework so that you can advise your customers about which functionality needs to be enabled in SAP to integrate with your solution.
- Extensibility. Since SAP customers have individual requirements for their business processes, as an SAP partner you should keep interfaces to your solutions stable for forward- and backward-compatibility with releases.
- Deployment. Depending on how closely complementary application software integrates with the SAP Business Suite, you as an SAP partner should make a decision about its deployment. For “very close” components (which run in the same application server instance with SAP solution) or “close” components (which run in the same local network and security zone with SAP solution), SAP-proprietary interfaces such as BAPIs and other remote enabled communication types (RFC, Java Connector or .NET Connector). For “distant” integrations (components that support various B2B scenarios, run in wide area networks and span different security zones), we recommend using enterprise services.
- Data layer considerations. If your application component integrates with the SAP Business Suite at the data level, we strongly recommend accessing data in SAP applications only via SAP interfaces and not directly in the databases of SAP Business Suite components. There are a number of reasons for this recommendation; for example, data integrity is supported in the application layer and metadata information is not visible when accessing the database directly, which makes it difficult to interpret the data and its value ranges. SAP also recommends that you not use third-party database-specific constructs since this would require that SAP customers use a database from a particular vendor, which would not suit all SAP customers.
- Separation of concerns and interface-driven development. Software is usually developed by a team, not by just one individual. You might even have many development teams in different locations. Separation of concerns here relates to enabling interface-driven development by many people and groups on the basis of componentization of software.
- Functional correctness. Since SAP customers have complex IT landscapes, applying changes to the software may affect the functionality. To ensure high quality, we recommend creating test plans and using state-of-the-art testing tools to extensively test the functionality of your software before releasing it.
- Open source. If your product contains open source software, you are responsible for supporting it along with the product itself. When using open source software in your products, you should consider the potential impact of license terms on enterprise customers. We recommend analyzing in detail the license terms of any open source software.
Guidelines for ABAP Development
This section provides an overview of SAP’s ABAP platform for application development including the ABAP programming language, ABAP development environment, and ABAP application server with focus on ABAP’s strengths with regard to the entire business development lifecycle. We recommend using ABAP Objects (object-oriented ABAP) for business development, released in SAP NetWeaver 7.0 and beyond. To program most effectively in ABAP, we advise reading Official ABAP Programming Guidelines by Horst Keller and Wolf Hagen Thümmel (SAP Press, 2009). To verify the formal and functional correctness of your software, we advise using the broad range of ABAP testing tools provided with ABAP Workbench. For more details on ABAP refer to http://www.sdn.sap.com/irj/sdn/abap
Guidelines for Java Development
SAP supports Java and provides a Java development environment (SAP NetWeaver Developer Studio) as well as a Java application server that includes SAP’s own Java Virtual Machine (SAP JVM). We recommend using the version of Java and Java EE released in the latest version of SAP NetWeaver. While choosing the guidelines for Java developers, SAP differentiates between applications that are developed on SAP NetWeaver and run on NetWeaver, applications that are migrated to run on NetWeaver and applications that run on a different application server. We recommend using SAP NetWeaver Developer Studio. This section provides an overview of the Java platform at SAP including the tools of the NetWeaver Development Infrastructure (NWDI) and of the SAP JVM including its strengths (debug mode on the fly, open source Memory Analyzer, 7+2 year support) and lists differentiating points for SAP’s Java Platform. You will also receive guidelines for migrating Java applications to SAP NetWeaver for two potential dimensions of migration: from a different application server and to a newer Java EE release.
Guidelines for .NET Development
SAP and Microsoft worked jointly to ensure interoperability between the SAP Business Suite and .NET. As a result, SAP recommends that .NET developers use .NET 2.0 with web service enhancements 3.0, .NET 3.0 and .NET 3.5 for the applications that integrate with the SAP Business Suite. This section gives an overview of the possibilities to integrate .NET applications with the SAP Business Suite:
- Using RFCs and the .NET Connector
- Using SAP NetWeaver Process Integration (SAP NetWeaver PI)
- Using enterprise services
- Using Duet Enterprise
It also describes SAP tools to help with .NET development: Enterprise Services Explorer for .NET and the .NET Connector.
Want to learn more?
If you are ready to explore the Best-Built Applications guidelines themselves, download them from the Best-Built Apps homepage at http://BestBuiltApps.sap.com