Handling Enterprise-Scale Java Development Projects

To meet these needs, SAP set out to provide development tools for Java that are not just J2EE-compliant, but that also offer the robust features on par with what ABAP developers have come to expect from SAP’s tools in the ABAP Workbench. Now, as of SAP Web Application Server 6.30, Java developers have SAP NetWeaver Developer Studio, which offers large development teams full access to all components of a Java project, tools based on a common framework that makes them easy to use, and support for combining standard J2EE development tasks with SAP’s visionary Web Dynpro UI technology.

Filling the gaps in traditional J2EE development tools

SAP Web Application Server is the application platform for an integrated, highly scalable business solution environment, and as of Release 6.30, it provides a development and runtime environment for ABAP applications and for Java applications based on the J2EE standard. When it comes to designing applications and interfaces, the ABAP design-time environment is well established, having evolved over the past decade, and provides a repository-based approach that supports development by large teams. The ABAP Workbench is the central starting point for all ABAP development activities in a distributed development landscape.
In comparison, Java development is typically geared to the single developer working at a local frontend, and the J2EE standard simply leaves integration issues up to the individual tool vendor. The J2EE standard focuses primarily on the runtime behavior of enterprise-scale applications written in Java, and takes for granted the existence of J2EE-compliant development tools. So it’s rare to find a Java IDE that offers solutions for the typical tasks involved in developing medium- and large-size projects:

  • Repository access: Most Java designtime tools are file based. These tools typically lack features that developers of large projects with big development teams have become accustomed to, such as version control and sophisticated impact analysis.
  • Support for central data types: The need to define data types and database objects in a central location is rarely addressed in today’s J2EE tools. Most tool vendors simply include a database and corresponding database tools. But, as a result, Java applications are most likely to be database dependent.
  • Advanced user interface features: J2EE concepts for user interface abstraction (e.g., modeling and design of interfaces) such as JSP and servlets are browser dependent – unless one invests a serious amount of code discipline in its UI projects! In many cases, key functions such as input validation or value help are missing.
  • Distributed development: Large projects must first be tested in a development landscape before they can be deployed to a productive environment. Pure J2EE deployment leaves open many issues, such as version control, dependency analysis, and component support. These issues require the help of a change management system for keeping track of all deployed development components.

To address these concerns, SAP has included a robust, integrated Java IDE in SAP Web Application Server 6.30. SAP NetWeaver Developer Studio becomes the main entry point for all development activities, offering developers a window onto a distributed design- and run-time landscape for J2EE-compliant applications, combining the flexibility of using the local file system with the reliability and scalability that a centralized infrastructure can bring.

Architecture of SAP NetWeaver Developer Studio

When SAP decided to deliver its own development environment, it wasn’t long before the question came up of whether to embed the SAP tools in a pre-existing IDE. Most third-party IDEs in the market lacked the openness and extensibility that SAP sought, so SAP chose to build its tools on top of Eclipse – an open-source, Java-based development platform. The Eclipse platform was designed specifically for development of custom IDEs, and comes with its own J2SE (Java 2 Platform, Standard Edition) environment for standalone Java applications.
In Eclipse, every extension is called a plug-in. Each plug-in adds functionality to a given tool at predefined extension points. What’s more, a plug-in can include its own set of extension points, so a developer can even add plug-ins to a plug-in. All development tools in the SAP NetWeaver Developer Studio – including Web Dynpro, J2EE, Web services (which are built on top of the J2EE perspective), and the Java Dictionary – are in fact Eclipse plug-ins.
If Eclipse has any limitations from SAP’s perspective, they are in modeling the application, presenting logical hierarchies, or diagramming the application. This is especially crucial when it comes to Web Dynpro-based design and technology, where so much supporting Java code is automatically generated – code that the typical Java developer probably doesn’t want to see!
So SAP and Borland jointly developed a modeling framework based on Eclipse. This framework abstracts from the physical source files to provide developers with visual models of a program’s presentation logic. Both Web Dynpro modeling tools and graphical J2EE tools are based on the same common software layer. In fact, all SAP’s Java development tools are built on top of this modeling framework, resulting in a highly sophisticated, consistent graphical framework for all kinds of development activities.

The three major tools of SAP NetWeaver Developer Studio

Java Dictionary
Java Dictionary

Here is a brief introduction to some of the tool sets and the perspectives they offer: the Java Dictionary, the J2EE Tool Set, and the Web Dynpro tools. Let´s start with the Java Dictionary. This dictionary offers tools and wizards to define central data types (e.g., enumeration types for value help) for use in Java projects that will run on Web Dynpro. It is also possible to create database objects, such as indexes and tables, add them to the Java Dictionary, and later deploy them to the database. The dictionary definitions are stored in a database-independent fashion, so they can be deployed to all database platforms officially supported by SAP.
SAP NetWeaver Developer Studio offers editors and wizards for creating all the typical components (e.g., JSP pages and servlets, session beans, entity beans) of a J2EE-compliant application. The J2EE tool set allows to easily create the Web components of a J2EE applications by means of JSP and servlet editors, which even offer such fancy features as syntax-based coloring of code and intellisense (which automatically completes method names, etc.). The J2EE tools can validate JSP syntax against the corresponding DTD available over the Internet, and business logic can be implemented through wizards for Enterprise JavaBeans. J2EE 1.3-compliant session beans, entity beans, and message-driven beans are all supported.
The heart of the Web Dynpro approach is the Application Modeler, which depicts the various components of the Web UI and their relationships. Navigational controls are shown as lines that connect Web Dynpro views. These views in turn contain Web Dynpro controls (input fields, push buttons, tables, etc.). Web Dynpro technology allows to quickly assemble views, even as layouts or data sources change. By relying on a component-based approach, one will find a high degree of reuse in Web Dynpro applications.

BAPI Browser and Proxy Generator

BAPI Browser
BAPI Browser

When developing the first Java application, one will most likely wish to connect to an existing SAP database. To call BAPIs from a Java application, SAP has delivered the Java Connector (JCo). However, JCo is not strongly typed; to avoid runtime errors, it is important to check that all data type information is valid in the parameters of any JCo call.
To overcome this limitation, BAPI Browser and Proxy Generator allow to browse through BAPI lists that include data type information to help to generate a “type-safe” Java proxy for use in a companies Java projects. The BAPI Browser uses the developer´s SAP Logon files to connect right to existing SAP systems.
SAP offers tool support for database-independent access to tables. This is done by means of an SQLJ precompiler – a precompiler that translates embedded SQL commands into plain Java code. Later, during debugging, the original SQL code is presented directly to the developer so he can debug the application rather than the generated code.

Resources for team development

SAP NetWeaver Developer Studio, with local access via Eclipse, is also tightly integrated in SAP’s development infrastructure, which consists of:

  • A design-time repository for versioning Java source files,
  • a component build service that produces runtime objects such as Java archives,
  • a change management service to distribute and deploy the Java archives in a distributed system landscape.
Development Configurations Screen
Development Configurations Screen

In addition, the Developer Studio allows developers to easily browse through designtime and software components to view the up-to-date status of development efforts. First, from the SAP NetWeaver Developer Studio, the development team is able to view the contents of the Design Time Repository (DTR) – the repository for development objects (Java classes, XML sources, etc.) – through a DTR perspective. From the Development Configurations screen one can browse configurations consisting of software components that, in turn, are made of development components. Development components are stored centrally in the DTR to ensure consistency and reusability, but they can also be viewed by a developer locally via Eclipse.
SAP’s approach toward an integrated development environment offers Java developers an environment comparable to that of their ABAP colleagues. All the Developer Studio tools are based on a common framework, making it easy to become familiar with their features and to combine SAP’s Web Dynpro technology with standard J2EE development processes.
More about SAP NetWeaver Developer Studio

Source: SAP Insider

Karl Kessler
Karl Kessler