Professional Documents
Culture Documents
• Java EE (Java Platform, Enterprise Edition). The enterprise version help you
develop and deploy portable, robust, scalable, and secure server-side Java
applications. Building on the foundation of Java SE, Java EE provides Web
services, component-model, management, and communications APIs for
implementing enterprise class SOA and Web 2.0 applications.
• "Get to know Java EE 5" and "Java EE 5: Power and productivity with
less complexity" introduce you to the latest version of the Java EE
platform.
• Check out The Spring series to learn about a popular framework for
building build lightweight, robust Java EE applications.
Back to top
• Java Native Interface (JNI) lets Java code that runs inside a JVM interoperate
with applications and libraries written in other programming languages. (See
"Best practices for using the Java Native Interface.")
• Java 2D API is a set of classes for advanced 2D graphics and imaging that
provides extensive support for image compositing and alpha channel images, a set
of classes to provide accurate color space definition and conversion, and a set of
display-oriented imaging operators. (See the tutorial "Introduction to Java 2D.")
• Java Web Start helps you simplify deployment of Java applications by letting
users download and launch full-featured applications (such as spreadsheets) with
a single click, without going through installation procedures. (See "Java Web
Start.")
• Certification Path API provides a set of APIs for creating, building, and
verifying certification paths (also known as "certificate chains") for securely
establishing the mapping of a public key to a subject. (See "Generate certificate
chains for testing Java applications.")
• Java Database Connectivity (JDBC) is an API that lets you access most tabular
data sources from within Java code, providing cross-DBMS connectivity to a
wide range of SQL databases and access to other tabular data sources, such as
spreadsheets or flat files. (See "What's new in JDBC 3.0" and the tutorial
"Understanding JDBC.")
• Java Media Framework (JMF) enables audio, video, and other time-based
media to be added to Java applications and applets. (See the tutorial "Java Media
Framework basics.")
• Java Naming and Directory Interface (JNDI) provides Java applications with a
unified interface to multiple naming and directory services in the enterprise,
enabling seamless connectivity to heterogeneous enterprise naming and directory
services. (See "Industrial-strength JNDI optimization"; also try "Navigate the
JNDI maze.")
• Java Secure Socket Extensions (JSSE) is a set of packages that enables secure
Internet communications, implementing a Java version of SSL (Secure Sockets
Layer) and TLS (Transport Layer Security) protocols and including functionality
for data encryption, server authentication, message integrity, and optional client
authentication. (See "Java security with JAAS and JSSE"; also try the tutorial
"Using JSSE for secure socket communication.")
• Java Speech API (JSAPI) includes the Grammar Format (JSGF) and Markup
Language (JSML) specifications and lets Java applications incorporate speech
technology into user interfaces. JSAPI defines a cross-platform API to support
command and control recognizers, dictation systems, and speech synthesizers.
(See this section of "The Java 2 user interface.")
• Metadata Facility lets you mark classes, interfaces, fields, and methods as
having particular attributes so that they can be processed in special ways by
development tools, deployment tools, or runtime libraries. (See "Annotations in
Tiger, Part 1: Add metadata to Java code.")
• Enumerations are a type that lets you represent specific pieces of data as
constants, all in a type-safe manner. (See "Getting started with enumerated
types.")
• Generics let you define classes with abstract type parameters that you specify at
instantiation time. (See "Introduction to generic types in JDK 5.0"; read "Spice up
collections with generics and concurrency" to find out how generics make
working with collections easier in Java SE 6.)
• SOAP with Attachments API for Java (SAAJ) enables developers to produce
and consume messages conforming to the SOAP 1.1 specification and SOAP with
Attachments note. (Read "Send and receive SOAP messages with SAAJ".)
Technologies in J2EE:
• Enterprise JavaBeans (EJB) technology uses a component model to simplify the
development of middleware applications with automatic support for services such
as transactions, security, and database connectivity. (See the tutorial "Getting
started with Enterprise JavaBeans technology," which introduces the technology;
see the series EJB best practices; check out "Design enterprise applications with
the EJB 3.0 Java Persistence API.")
• Portlet Specification defines a set of APIs for Java portal computing, addressing
the areas of aggregation, personalization, presentation, and security. (See "What's
new in the Java Portlet Specification V2.0 (JSR 286)?")
• JavaMail is an API that provides a set of abstract classes that model a mail
system. (See the tutorial "Fundamentals of JavaMail API.")
• Java Message Service (JMS) is an API that enables the development of portable,
message-based applications for the Java platform by defining a common set of
messaging concepts and programming strategies for all JMS technology-
compliant messaging systems. (See the tutorial "Introducing the Java Message
Service.")
• JavaServer Faces (JSF) provides a programming model that helps you craft Web
applications by assembling reusable UI components in a page, connecting these
components to an application data source, and wiring client-generated events to
server-side event handlers. (See the two-part tutorial "Getting Started with
JavaServer Faces" and explore the JSF for nonbelievers column series
• JavaServer Pages (JSP) lets Web developers rapidly develop and easily maintain
dynamic, platform-independent Web pages with separate user interfaces and
content generation so designers can change the page layout without altering the
dynamic content. The technology uses XML-like tags that encapsulate the logic
that generates the content for the page. (See the tutorial "Introduction to
JavaServer Pages technology"; also see the series JSP best practices .)
• Java Servlets extend and enhance the reach of Web servers by providing a
component-based, platform-independent method for building Web-based
applications without the performance limitations of CGI programs. (The tutorial
"Introduction to Java Servlet technology" should get you started.)
Back to top
• JavaServer Faces (JSF) provides a programming model that helps you craft Web
applications by assembling reusable UI components in a page, connecting these
components to an application data source, and wiring client-generated events to
server-side event handlers. (See the two-part tutorial "Getting Started with
JavaServer Faces" and explore the JSF for nonbelievers column series.
• The Eclipse Web Tools Platform (WTP) extends the popular Eclipse IDE with
tools for developing Java EE Web applications. (See the tutorial "An introduction
to the Eclipse Web Tools Platform V1.0.")
• You can also visit the developerWorks Web development zone for many more
excellent Web application development resources.
Back to top
How does Java technology relate to SOA/Web services?
A service-oriented architecture is a component model that relates the functional units of
an application (known as services, hence Web services) through well-defined interfaces
and contracts between the services. The interface is defined in a neutral manner
independently of the hardware, operating system, and programming language in which
the service is implemented, letting services constructed on different systems interact with
one another in a uniform, universal manner. SOAs are a loosely coupled alternative
model to the more traditional, tightly coupled, object-oriented models.
The resulting Web services let business rules and processes be defined in XML so
software applications can communicate in a platform- and programming language-
independent manner. XML technology makes data portable and facilitates the creation of
messages, while Java technology makes code portable. The fact that XML and the Java
language work well together makes them an ideal combination to build and deploy Web
services.
Learn more about it:
• The New to SOA and Web services and New to XML pages on developerWorks
will help you get oriented in these complex technologies.
• The "Java Web services" series explores Java Web services frameworks and new
layers of functionality built on top of Web services.
• "Build a RESTful Web service" introduces the elegant Web services architectural
style called Representational State Transfer (REST) and shows how to use a Java
framework for building RESTful Web services.
• Understanding the Java APIs for XML-Based RPC (JAX-RPC) is important step
for writing efficient and effective Web services in the Java language. The tutorial
"Build an RPC service and client using JAX-RPC" is a great place to start.
• JAX-WS is the heir apparent to JAX-RPC. The tutorial "Design and develop
JAX-WS 2.0 Web services" offers a hands-on introduction to this new API.
• "Introduction to Service Data Objects" introduces the Service Data Objects (SDO)
framework, which simplifies the Java EE data programming model for SOA-
based applications.
Back to top
How does Java technology relate to dynamic languages and functional programming?
Many aspiring Java developers have a wealth of experience in other languages. And even
veteran Java developers appreciate that the Java programming language isn't the ideal
language for every development need. Fortunately, the JVM's support for multiple
languages lets the Java platform take advantage of the agility and features of modern
dynamic scripting languages and functional languages for prototyping or building certain
types of applications.
Learn more about it:
Crossing over
Other frameworks are shaping the
way Java frameworks are built, and
the concepts other languages use can
inform your Java programming. The
Crossing borders column series
discusses programming concepts and
techniques that differ from Java
development but are still highly
relevant to it.
• The Groovy scripting language puts the features and libraries Java developers are
most familiar with in an agile development framework that doesn't require
compilation, eases syntactical constructs, and lets its scripts be used inside normal
Java applications. Get a comprehensive look at what Groovy can do in the
Practically Groovy column series.
• Are you a fan of functional programming? The busy Java developer's guide to
Scala column series introduces Scala, a programming language that combines
functional and object-oriented techniques for the JVM.
• Support for alternative languages has been a JVM feature for quite a while. Check
out the alt.lang.jre column series to learn about using implementations of Rexx,
Ruby, JavaScript, Python, and other languages on the Java platform.
Back to top
• The Eclipse Web Tools Platform (WTP) extends the Eclipse platform with
tools for developing Java EE Web applications. (See the tutorial "An
introduction to the Eclipse Web Tools Platform V1.0.")
Visit the developerWorks Eclipse project resources for loads more Eclipse articles
and tutorials.
• In open sourcing the Java platform, Sun Microsystems seeded three new
community projects under the java.net umbrella:
• OpenJDK
• Μο β ι λ ε & Εµ β ε δ δ ε δ
• Γλα σ σ Φ ι σ η
Back to top
How can I improve my Java programming skills?
You can take two routes to improving your skills: take a course (for certification or just
for the learning) or teach yourself (and of course, practice by writing code). Besides
tapping the knowledge of experienced developers, the coursework or certification path
can offer tangible proof to prospective employers that you possess the skills needed to
build the technology they require. And by experimenting on your own and using
available resources, you sharpen your skills in various areas of Java technology. The
following resources should help either endeavor:
• Tutorials and articles
• developerWorks offers a world of hands-on, Java-based tutorials — the
next best learning experience to writing the code yourself. For a
comprehensive introduction to the Java language, Roy Miller's
"Introduction to Java programming" and "Intermediate Java
programming" tutorials should get you started.
• The Magic with Merlin and Taming Tiger series are excellent references
for sharpening your Java programming claws.
• Games
• Robocode is an easy-to-use robotics battle simulator built on Java
technology that teaches you to program while providing hours of pure
entertainment. For an introduction to Robocode, read "Rock 'em, sock 'em
Robocode!" and check out "Secrets from the Robocode masters: A
collection of hints, tips, and advice from the Robocode masters."
• Certification training
• If you're thinking about certifying your Java skills, you can take several
exams. Visit the Java Certification site to locate certification training
resources.
• Forums
• For an even more interactive approach to learning how to use the Java
language, dive into the Java discussion forums, moderated by noted
experts with years of real-world experience in crafting Java-related
technology.
Back to top
What IBM tools and products are available for Java programmers?
IBM is on the front lines as one of the leading innovators in the use of Java technology.
The section below highlights tools and products IBM offers to Java developers.
• Free downloads:
• ϑαϖ α τ ε χ η ν ο λ ο γ ψ ο ν α λ π η α Ω ο ρ κ σ is a
virtual warehouse of emerging IBM-generated Java-related technologies,
including APIs, integrated development environments and devkits,
components, reference implementations, and utilities. Here are just a few:
• Ι Β Μ Πα τ τ ε ρ ν Μο δ ε λ ι ν γ αν δ
Ανα λ ψ σ ι σ Το ο λ φο ρ ϑαϖ α
Γα ρ β α γ ε Χ ο λ λ ε χ τ ο ρ . A tool that parses
verbose GC trace, analyzes Java heap usage, and recommends key
configurations based on pattern modeling of Java heap usage.
• Αβ σ τ ρ α χ τ Υσ ε ρ Ι ν τ ε ρ φ α χ ε
Μα ρ κ υ π Λα ν γ υ α γ ε Τοο λ κ ι τ .
Development tools and APIs that let you create GUI applications
that run in both the Java Swing and HTML environments.
• IBM Rational tools are built on the Eclipse 3.0 platform and can help make it
easier to develop, test, and deploy high-quality applications. Rational tools for
Java developers include:
• Ρα τ ι ο ν α λ Απ π λ ι χ α τ ι ο ν ∆εϖ ε λ ο π ε ρ
φο ρ Ωε β Σ π η ε ρ ε Σ ο φ τ ω α ρ ε , a rapid application
development tool for developing, analyzing, testing, profiling, and
deploying Web, SOA, Java, J2EE, and portal applications on the IBM
WebSphere platform.
• Visit the New to WebSphere page and the rest of the developerWorks
WebSphere technical resources to get up to speed with this key integration
software platform from IBM.
• Ωε β Σ π η ε ρ ε Εν τ ε ρ π ρ ι σ ε Σερϖ ι χ ε
Β υ σ provides Web services connectivity, JMS messaging, and service-
oriented integration to power your SOA.
• Ωε β Σ π η ε ρ ε Πρ ο χ ε σ σ Σερϖ ε ρ αν δ
Ωε β Σ π η ε ρ ε Ιντ ε γ ρ α τ ι ο ν ∆εϖ ε λ ο π ε ρ
deliver a rich process integration platform for enterprise services based on
SOA.
• Visit the WebSphere development tools area for latest technical and how-
to information for using WebSphere tools to create, test, and deploy
enterprise-scale Java EE applications.
• Ρα τ ι ο ν α λ Απ π λ ι χ α τ ι ο ν ∆εϖ ε λ ο π ε ρ
φο ρ Ωε β Σ π η ε ρ ε Σοφ τ ω α ρ ε is a rapid application
development tool for developing, analyzing, testing, profiling, and
deploying Web, SOA, Java, J2EE, and portal applications on IBM's
WebSphere platform.
• The WebSphere Portal zone provides portlets, tools, tutorials, and news
for developers who use the WS Portal technology.
• Ωε β Σ π η ε ρ ε ΜΘ Ε ϖ ε ρ ψ π λ α χ ε allows access to
enterprise data for mobile workers and remote devices with assured
message delivery.
• Ωε β Σ π η ε ρ ε Με σ σ α γ ε Βρο κ ε ρ delivers an
advanced Enterprise Service Bus providing connectivity and universal
data transformation for both standard and nonstandards-based applications
and services to power SOAs.
• ΙΒΜ Ι ν φ ο ρ µ α τ ι ο ν Ιντ ε γ ρ α τ ι ο ν
σοφ τ ω α ρ ε integrates and transforms data improving
productivity, flexibility and performance, so you have the right
information for your