Technical Article

Java Application Platform SDK: Overview

By the SDK team, October 30, 2006; updated November 2009

Sun Microsystems released the Java Application Platform SDK to streamline enterprise application development and improve developer productivity. The SDK also supports Java Platform, Standard Edition 6 and the latest technologies of the Java Platform, Enterprise Edition 5 (Java EE 5) Specification. It includes updated versions of Sun GlassFish Enterprise Server and Portlet Container. This free release is based on the source code developed by Sun engineers and the open-source community.

This article discusses the key features of the Java Application Platform SDK Update 8. With this all-in-one bundle, developers can quickly learn, develop, and deploy new enterprise Java technologies. More than 5.5 million developers have downloaded earlier versions of the Java EE SDK.

Contents

Try It Out!

Get started with enterprise application development.

Java EE 5 Platform Support

With a primary focus on ease of development, the Java EE 5 platform offers developers ready access to a secure, portable, and scalable platform for their enterprise applications. Java EE 5 technology makes coding simpler and more straightforward through the use of Java annotations, programming based on POJOs (Plain Old Java Objects), and resource injection concepts. Sun GlassFish Enterprise Server (formerly Sun Java System Application Server and hereafter referred to as Application Server) v2.1.1 supports all the technologies required by the Java EE 5 specification. A brief summary of the key Java EE 5 technologies is provided here.

Key technologies in Java EE 5 include the following:

  • Enterprise JavaBeans (EJB) 3.0
  • Java Persistence API 1.0
  • JavaServer Faces 1.2 Technology
  • Web Services Metadata for the Java Platform 1.0
  • Java API for XML-Based Web Services (JAX-WS) 2.0
  • Java Architecture for XML Binding (JAXB) 2.0
  • Streaming API for XML (StAX) 1.0

For more information, refer to the article An Introduction to the Java EE 5 Platform.

Java Persistence API

The Enterprise JavaBeans (EJB) 3.0 specification defines a new API for management of persistence and object-relational mapping. Java annotations can now be used to specify the mapping of Java business objects to a relational database. The persistence implementation in the application server supports both the generation of database schemas from Java objects and the mapping of existing database schemas to Java objects. In addition to using persistence inside the EJB container, you can use the Java Persistence API directly with Java Platform, Standard Edition. This allows maximum flexibility in your persistence needs, with a common solution for both client and server environments.

JavaServer Faces 1.2 Technology

JavaServer Faces technology simplifies the building of user interfaces for web-based applications through its well-defined component, state, and event framework. JavaServer Faces technology works extremely well with Ajax technology, providing encapsulation to handle browser differences and to hide the complexities associated with JavaScript code.

Web Services

The Application Server supports the latest web services standards, including Web Services Metadata 1.0 (specifies annotations for web services), JAX-WS 2.0 (specifies web services API for the Java platform), and JAXB 2.0 (specifies Java and XML binding).

Sun GlassFish Enterprise Server v2.1.1

Sun GlassFish Enterprise Server v2.1.1 features include clustering, in-memory replication, more improvements to the Grizzly-based HTTP engine, enhanced administrative functionality, improved self-management capabilities, registration, update center functionality that allows installation and/or updates of additional components, and much more.

Java EE 5 Samples

Java EE 5 Samples demonstrate the technologies and features specific to the Java Platform, Enterprise Edition 5. The features include annotations, EJB 3.0, persistence, security, and many others.

Java SE Support

The SDK has been fully tested with JDK 6 and JDK 5.0. The SDK is shipped in two bundles: one with JDK 6 and one without any JDK. Contents of both bundles are compiled with JDK 5.0 to enable users to switch to their copy of JDK 6 or JDK 5.0.

Portlet Container 2.1

The Java Portlet Specification (JSR 168) is a standard for developing portal components with the Java programming language. The Portlet Container not only implements the Java Portlet Specification, but also provides a portlet driver, a lightweight portlet rendering environment. NetBeans Portal Pack provides state-of-the-art tools to create and deploy portlets on the Portlet Container. For more information, read the articles, Understanding the Portlet Container 2.1 Software.

Web Services for Remote Portlets 2.0 Beta 2

Web Services for Remote Portlets (WSRP) delivers an implementation based on the specification defined by the OASIS Web Services for Remote Portlets. WSRP is a web services protocol for aggregating content and interactive web applications from remote sources. It is the means of aggregating (and publishing on the other end) remote "visual services," (i.e., it does not aggregate data itself, but the "view" to the data). It is a "presentation-oriented" web service, as opposed to the traditional "data oriented." Since it is based on presentation, WSRP enables seamless delivery and integration of entire web applications (or components thereof), their presentation layer inclusive. WSRP primary features include:

  • Provides a WSRP Producer.
  • Provides a WSRP Consumer that can consume Remote Portlets exported by any WSRP Producer.
  • Includes a WSRP Test Driver built over the WSRP Consumer to provide a test enviornment.
  • Includes WSRP Mbeans with sample admin server through a WSRP administrative interface.
  • Includes WSRP Admin Portlets to provide an user interface for the WSRP administrative interface.

Composite Application Development on a SOA

A service-oriented architecture (SOA) provides application developers with a powerful platform for integrating existing applications and web services. As a platform, SOA provides a set of standard interfaces through which service consumers and providers discover, describe, and interact with application services. Composite application development refers to the process by which these independent services are composed and orchestrated to fulfill an application use case.

Java Specification Request (JSR) 208, Java Business Integration, provides a standards-based integration architecture to enable composite application development. JBI runtime functionality from Project Open ESB is now installed in the SDK. JBI allows you to integrate web services and enterprise applications as loosely coupled composite applications, thereby realizing the benefits of a SOA. In addition to the core runtime, the following JBI components are included:

  • A Business Process Execution Language (BPEL) service engine supporting BPEL 2.0 to choreograph service interaction within a composite application. NetBeans IDE 6.7 provides a comprehensive set of visual tools to author, deploy, and test BPEL processes.
  • A Java EE service engine, which acts as a bridge between the application server and a JBI implementation. Web services defined in the application server are automatically exposed to the Enterprise Service Bus (ESB) in a JBI environment. Components in the application server can also invoke service providers that are made available through the ESB.
  • An HTTP/SOAP binding component, which provides access to external web service consumers and providers.
  • Support has been added for clustering and XA resource recovery. JBI components included in this release are: service engines for BPEL, Java EE, XSLT, Intelligent Event Processing, and SQL; and binding components for File, FTP, HTTP, JDBC, JMS, SMTP, and WebSphere MQ protocols.

Identity Management and Web Services Security

Sun Java System Access Manager 7.1 Patch 1 provides open, standards-based authentication and policy-based authorization within a single, unified framework. It secures the delivery of essential identity and application information to meet current businesss needs, and to scale as needs grow, by offering SSO as well as enabling federation across trusted networks of partners, suppliers, and customers. Sun Java System Access Manager 7.1 Patch 1 provides Java EE developers with a runtime environment for single sign-on (SSO) and a federation functionality for enterprise applications to secure web services using generic security tokens from the WSI-BSP (SAML, UserName and X509) and the Liberty ID-WSF (Bearer, SAML and X509).

NetBeans IDE 6.7 provides excellent support for securing web services via identity management. Refer to identity management support in NetBeans for more details.

Developer Productivity

By default, Application Server, JBI runtime, BPEL, and Access Manager are fully configured when they are shipped, enabling developers to develop enterprise applications with ease. If you are not developing composite applications or involved in identity management, it is possible to disable the respective runtimes. To disable JBI/BPEL runtime, log on to the administration console and disable JBIFramework lifecycle module. To turn off Access Manager, disable the AMConfiguratorLifeCycleModule lifecycle module and the amserver web application. After you restart the Application Server, the respective runtimes will not be initialized. An earlier version of the Application Server introduced a new feature called "on-demand initialization of application server services." With this feature, the Application Server can start with minimum services. Additional services are started only when required by a given user application or action, reducing both the server startup time and memory footprint.

The use of Java annotations and the simplification of EJB and web service APIs have reduced the amount of code a developer needs to write. It is now possible to write EJB and web service applications without defining any standard deployment descriptor files. In addition, many of the values in Sun-specific deployment descriptor ( sun-*.xml) files become optional and contain default values. These default values reduce the amount of deployment information the user has to provide. In some cases, the Sun-specific descriptor files can be omitted from the application altogether.

A variety of developer and administration tools are bundled with the Application Server, including an administrator graphical interface, command-line interface, verifier, upgrade tool, Apache Ant, log viewer, and a Java database, based on the Apache Derby project.

Integrated Development Environment (IDE) Support - Java EE 5 Tools Bundle

The Java EE 5 Tools Bundle consists of the Java Application Platform SDK integrated with NetBean IDE 6.7, which provides tools support for writing, testing, and debugging Java EE 5, and service-oriented architecture (SOA) applications and interoperable secure web services. The Java EE 5 Tools Bundle also provides visual design tools for XML schema editing and BPEL-based web service orchestration. Application Server is supported by the NetBeans IDE and IntelliJ IDEA. In addition, a plug-in for Eclipse is available from the Project GlassFish community.

Java BluePrints

The Java BluePrints series defines the application programming model for end-to-end solutions using Java technology. The series contains guidelines, patterns, and code for real-world application scenarios, enabling you to build robust, scalable, and portable solutions. All the code and applications included in these blueprints are NetBeans-ready.

The SDK contains blueprints for the following technologies:

  • Java EE – The Java EE blueprints consist of two projects: Java BluePrints Solutions Catalog, and Web 2.0 Pet Store Application. The Solutions Catalog contains several topics of interest related to developing Ajax-enabled Web 2.0 applications and provides solutions, strategies, and sample code for them. The Web 2.0 Pet Store application shows these strategies in practice for a comprehensive end-to-end application that demonstrates Ajax, RSS and client-side/server-side mashups.
  • BPEL – The BPEL blueprints present solutions for developing composite business processes that logically aggregate, orchestrate, and consume web services.
  • Access Manager – The Access Manager blueprints demonstrate how Web Services Security can be used in a Java EE application. These blueprints focus on securing an identity-based web service provider (WSP) within an enterprise or organization.
  • Portlet Container – The Portlet Container blueprint demonstrates the development of portlets that use mashups. This blueprint focuses on developing a portlet that can aggregate geospatial data from data sources and combine it with an online mapping service based on Asynchronous JavaScript and XML (Ajax) to generate a mashup.

Open Source Community

Sun launched the Project GlassFish community in June 2005 to develop a free, open-source, commercial-grade application server that supports the newest features of the Java EE 5 platform. Sun GlassFish Enterprise Server v2.1.1 is Sun's supported distribution of the GlassFish v2.1.1 application server. In the wake of Project GlassFish, additional middleware projects have been open-sourced by Sun. Members participate in these communities by exchanging information through discussion forums and mailing lists, filing defects and requests for enhancement in the public issue tracker, and proposing changes to the source code.