Sei sulla pagina 1di 18

New to Java programming?

This page provides an overview of Java™ technology basics


and explains how the technology fits into the context of contemporary software
development. Links to relevant introductory developerWorks content, other educational
resources, as well as IBM downloads and products give you a rich starting point for
further investigation.
What is Java technology?
Java technology is both programming language and a platform:
• The Java programming language is a high-level, object-oriented language. The
language is unusual because Java programs are both compiled and interpreted.
Compilation, which happens once per program, translates Java code into an
intermediate language called Java bytecode. Bytecode is in turn parsed and run
(interpreted) by the Java Virtual Machine (JVM) — a translator between the
language and the underlying operating system and hardware. All implementations
of the programming language must emulate the JVM, enabling Java programs to
run on any system that has a version of the JVM.

• The Java platform is a software-only platform that runs on top of various


hardware platforms. It comes in three versions (see Multiple editions of the Java
platform, below). It consists of the JVM and the Java Application Programming
Interface (API) — a large collection of ready-made software components (classes)
that ease the development and deployment of applets and applications. The Java
API spans everything from basic objects to networking and security and XML
generation and Web services. It is grouped into libraries — known as packages —
of related classes and interfaces.
Along with the Java API, every full implementation of the Java platform includes:
• Development tools for compiling, running, monitoring, debugging, and
documenting applications.
• Standard mechanisms for deploying applications to users.
• User interface toolkits that let you create sophisticated graphical user
interfaces (GUIs).
• Integration libraries that let programs access databases and manipulate
remote objects.
The JVM has also proven to be a robust platform for executing languages other than the
Java programming language. For example, Groovy, Scala, and special implementations
of Ruby and Python give developers the versatility to program for the JVM in a dynamic
or functional language. (For more information, see How does Java technology relate to
dynamic languages and functional programming? below.)
Java technology was developed by Sun Microsystems. The Java Community Process
(JCP), an open organization of international Java developers and licensees, develops and
revises Java technology specifications, reference implementations, and technology
compatibility kits. In 2007, Sun made the bulk of its core Java technology available as
open-source software under the GNU general public license version 2 (GPLv2). (For
more information, see How does Java technology relate to open source software
development? below.)
Back to top
Why is Java technology important?
The main benefit of the Java language is the portability of Java applications across
hardware platforms and operating systems — possible because the JVM installed on each
platform understands the same bytecode.
The Java language and platform scale impressively. Applications can easily be written (or
adapted from existing Java desktop applications) for devices with limited resources.
Scaling up, the language is an ideal framework for server-side Web programming,
extending a user's computing power from the desktop to the Web's resources. Because it
was designed to run in a secure manner over networks, the language affords this level of
security when operating over the Internet. Web components are supported by runtime
platforms called Web containers, whose services include request dispatching, security,
concurrency, life-cycle management, and access to APIs such as naming, transactions,
and e-mail. At the high end, Java application servers serve as Web containers for Java
components, XML, and Web services that can interact with databases and provide
dynamic Web content; they also provide an application-deployment environment for
enterprise applications, with capabilities for transaction management, security, clustering,
performance, availability, connectivity, and scalability.
By supporting open standards in the enterprise, Java technology opens the door to using
XML and Web services to help share information and applications across business lines
(see How does Java technology relate to SOA/Web services? below). Java technology
serves as the backbone of many IBM products and technical consulting services (see
What IBM tools and products are available for Java programmers? below) and is critical
to key IBM initiatives:
• Learn more about the IBM Service Oriented Architecture - SOA philosophy
and how SOA helps users build composite applications that draw upon
functionality from multiple sources within and beyond the enterprise to support
horizontal business processes. To help you get started with SOA, IBM offers
business-centric and IT-centric SOA Entry Points.

• IBM's Business Process Management enabled by SOA offers a component-based,


comprehensive approach to strategic change. Offerings are based on a flexible,
extensible, open standards-based software — including Java technology — and
hardware infrastructure.

• Πρ ο ϕ ε χ τ Ζ ε ρ ο is an IBM incubator project focused on agile


development of Web 2.0 applications that follow SOA.

Multiple editions of the Java platform


Three editions of the Java platform make it easier for software developers, service
providers, and device manufacturers to target specific markets:
• Java SE (Java Platform, Standard Edition). Java SE lets you develop and
deploy Java applications on desktops and servers, as well as embedded and real-
time environments. Java SE includes classes that support the development of Java
Web services and provides the foundation for Java Platform, Enterprise Edition
(Java EE). Java SE 6 ("Mustang") is the current version of the Java SE platform.
Many Java developers use Java SE 5, also known as Java 5.0 or "Tiger."
• The Taming Tiger columns provide an excellent overview of Java SE 5.
Many existing Java applications are based on Java SE 5, and most of the
concepts in this series are relevant to Java SE 6 programming.

• "Monitor and diagnose performance in Java SE 6" describes performance


and monitoring enhancements in Java SE 6.

• "Create rich applications with JavaFX Script" introduces a scripting


language that runs on top of Java SE 6 and makes it easy to code
sophisticated user interfaces.

• The two-part article "Invoke dynamic language dynamically" introduces a


Java SE 6 API that enables Java code to execute dynamic scripting code,
and vice versa. (See How does Java technology relate to dynamic
languages and functional programming? below, for more information on
using scripting languages with the Java platform.)

• 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.

• The J2EE pathfinder columns add to your knowledge of Java EE.

• Java ME (Java Platform, Micro Edition). Java ME provides an environment


for applications running on a broad range of mobile and embedded devices, such
as mobile phones, PDAs, TV set-top boxes, and printers. The Java ME platform
includes flexible user interfaces, a robust security model, a broad range of built-in
network protocols, and extensive support for networked and offline applications
that can be downloaded dynamically. Applications based on Java ME
specifications are written once for a wide range of devices yet exploit each
device's native capabilities.
• Learn more in the comprehensive four-part series of two tutorials and two
companion articles that focus on J2ME and the Mobile Information
Device Profile (MIDP).

• Another helpful resource is the two-part tutorial "Build smart J2ME


mobile applications."

Back to top

What are the Java component technologies?


The developerWorks Java technology zone maintains a complete glossary of the standard
Java component technologies. The following is a partial list of components, optional
packages, and extensions for each edition of the platform — the intricate parts that make
up the whole — complete with a short description and a link to a resource to demonstrate
its place in the Java development world. Note that many of the following resources are
available across the three editions.
Technologies in Java SE:
• Java Foundation Classes (Swing) (JFC) is a set of Java class libraries that
support building GUIs and graphics functionality for Java-based client
applications. (See the tutorial "Introduction to Swing"; "Dynamic interface design
with Swing" and "Enhance the accessibility of your GUIs" will also help you get
started with Swing.)

• JavaHelp is a platform-independent, extensible help system that enables


developers and authors to incorporate online help in applets, components,
applications, operating systems, and devices and to deliver Web-based online
documentation. (See "Lend a helping hand to your Java applications.")

• 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 Platform Debugger Architecture (JPDA) is the debugging support


infrastructure for Java SE. (See "The future of software development.")

• 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 Advanced Imaging (JAI) is an API that provides a set of object-oriented


interfaces that support a simple, high-level programming model that lets
developers manipulate images easily. (See "Govern your images with JSP code.")

• Java Authentication and Authorization Service (JAAS) is a package that


enables services to authenticate and enforce access controls on users by
implementing a Java version of the standard Pluggable Authentication Module
(PAM) framework and by supporting user-based authorization. (See "Java
security with JAAS and JSSE" and "Java authorization internals"; try the tutorial
"Java security, Part 2: Authentication and authorization.")

• Java Cryptography Extension (JCE) is a set of packages that provides a


framework and implementations for encryption, key generation and agreement,
and Message Authentication Code (MAC) algorithms. It provides encryption
support for symmetric, asymmetric, block, and stream ciphers, and it supports
secure streams and sealed objects. (See the tutorial "Java security: Crypto
basics.")

• Java Data Objects (JDO) is a standard interface-based Java model abstraction of


persistence that lets programmers directly store their Java domain model instances
into the persistent store (database), potentially replacing such methods as direct
file I/O, serialization, JDBC, and EJB Bean Managed Persistence (BMP) or
Container Managed Persistence (CMP) Entity Beans. (See the tutorial "Hands-on
Java Data Objects".

• Java Management Extensions (JMX) provides tools for building distributed,


Web-based, modular and dynamic applications for managing and monitoring
devices, applications, and service-driven networks. (See "Using Java platform
management beans.")

• 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.")

• Java 3D is an API developers can use to incorporate scalable, platform-


independent 3D graphics into Java applications easily by providing a set of
object-oriented interfaces that support a simple, high-level programming model.
(See the tutorial "Java 3D joy ride.")

• 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.")

• Java Content Repository API is an API for accessing content repositories in


Java SE independently of implementation. A content repository is a high-level
information-management system that is a superset of traditional data repositories.
(See "Introducing the Java Content Repository API.")

• 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.)

• Concurrency Utilities are a set of medium-level utilities that provide


functionality commonly needed in concurrent programs. (See the tutorial
"Concurrency in JDK 5.0.")
• Java API for XML Processing (JAXP) lets Java applications parse and
transform XML documents independently of a particular XML processing
implementation and gives you the flexibility to swap between XML processors
without making application code changes. Java API for XML Binding (JAXB)
lets you automate the mapping between XML documents and Java objects. (See
the three-part tutorial "XML programming in Java technology"; dig deeper into
JAXP with "All about JAXP, Part 1" and "All about JAXP, Part 2"; explore
further in the Practical data binding article series; also check out the
developerWorks XML zone.)

• 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 .)

• Standard Tag Library for JavaServer Pages (JSTL) is a collection of custom


tags that enable many common Web site functions in a standardized format. (See
"Update your JSP pages with JSTL" and try the four-part article series "A JSTL
primer.")

• 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.)

• J2EE Connector Architecture (JCA) defines a standard architecture for


connecting J2EE platforms to heterogeneous Enterprise Information Systems
(EIS) by defining a set of scalable, secure, and transactional mechanisms,
enabling an EIS vendor to provide a standard resource adapter that plugs into an
application server. (See "Understanding JCA transactions"; "Choosing among
JCA, JMS, and Web services for EAI"; "Integrate remote enterprise information
systems with JCA, JMS, and Web services"; and the tutorial "Introduction to the
J2EE Connector Architecture.")

• J2EE Management Specification (JMX) defines a management information


model for the J2EE platform. The J2EE Management Model is designed to be
interoperable with many management systems and protocols and includes
standard mappings of the model to the Common Information Model (CIM), an
SNMP Management Information Base (MIB), and to the Java object model
through a server resident EJB component, the J2EE Management EJB Component
(MEJB). (See "From black boxes to enterprises: Management, JMX 1.1 style.")

• Java Transaction API (JTA) is a high-level, implementation- and protocol-


independent API that lets applications and application servers access transactions.
Java Transaction Service (JTS) specifies the implementation of a Transaction
Manager that supports JTA and implements the Java mapping of the OMG Object
Transaction Service (OTS) 1.1 specification at the level below the API. JTS
propagates transactions using the Internet Inter-ORB Protocol (IIOP). (See
"Understanding JTS — An introduction to transactions.")
Technologies in J2ME:
• Mobile Information Device Profile (MIDP) is one of two configurations that
make up the Java runtime environment for resource-constrained mobile
information devices. MIDP provides the core application functionality, including
the user interface, network connectivity, local data storage, and application life
cycle management. (See the tutorial "Implementing Push technology with J2ME
and MIDP"; check out "Better MIDlets by design," "Custom GUI development
with MIDP 2.0," and the tutorial "MIDlet development with the Wireless
Toolkit.")
• Connected Device Configuration (CDC) is a standards-based framework for
building and delivering applications that can be shared across a range of network-
connected consumer and embedded devices. (See "Securing wireless J2ME.")

• Mobile 3D Graphics API for J2ME (M3G) is a lightweight, interactive 3D


graphics API that sits alongside J2ME and MIDP as an optional package. (See the
two-part article "3D graphics for Java mobile devices.")

Back to top

How does Java technology relate to Web application development?


The Java language has long been a mainstay of Web development, and recent years have
seen an explosion frameworks and tools that streamline Java Web development and
facilitate the creation of rich, interactive Web 2.0 applications.
Learn more about Web development in the Java language:
• The Mastering Grails column series is a guide to Grails, a modern Web
development framework written in Groovy. Grails seamlessly integrates legacy
Java code while adding the flexibility and dynamism of a scripting language. (For
more information about Groovy, see How does Java technology relate to dynamic
languages and functional programming?, below.)

• Ajax, a programming methodology that uses client-side scripting to exchange data


with the Web server, enables faster page updates without multiple page reloads.
Get a handle on how Ajax applies to you as a Java developer in the multipart
article "Ajax and Java development made simpler" and the Ajax for Java
developers series. And visit the developerWorks Ajax resource center for lots
more on Ajax.

• 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.

• The "SCA application development" article series is a guide to the Service


Component Architecture (SCA), a specification that describes a model for
building applications and systems using a SOA.

• "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.

• The Java scripting API, new in Java SE 6 and backward-compatible to Java SE 5,


provides a simple way to invoke dozens of scripting languages using a small set
of interfaces and concrete classes. It also lets you read and invoke external scripts
at run time, enabling you to change a running application's behavior. Read more
about it in the two-part article "Invoke dynamic languages dynamically."

• 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

How does Java technology relate to open source software development?


Myriad open source projects extend Java technology with libraries, tools, frameworks,
applications, and application servers to help programmers harness this powerful
technology. Various open source technologies have been incorporated into the Java
platform itself, and others are perennial favorites (and in some cases de facto standards)
for Java developers.
Learn more about some of the prominent open source technologies for Java
programming:
• The Apache Software Foundation is the umbrella organization for a panoply of
open source projects that are predominantly Java language-based. Here's a
sampling:
• Apache Struts is a framework for creating Java Web applications based on
the Model-View-Controller design pattern. (See "Best practices for Struts
development.")

• Απ α χ η ε Σ η α λ ε is a modern Web application-development


framework — the successor to Apache Struts — based on JavaServer
Pages technology. (The All hail Shale article series introduces Shale.)

• Απ α χ η ε Α ν τ is the de facto standard build tool for Java


development. (See the tutorial "Apache Ant 101: Make Java builds a snap"
and "Invoking Apache Ant programmatically.")

• The Apache Maven build tool is designed to meet the challenges of


modern software projects that require dynamic collaboration among
project teams and depend on a mix of globally created and maintained
components. (See the tutorial "Introduction to Apache Maven".)

• Απ α χ η ε Τ ο µ χ α τ is a popular Web container that supports


servlets and JavaServer Pages technology. (The tutorial "Tomcat for
beginning Web developers" will help you get started with Tomcat.)

• The Apache Geronimo project is building a fully compliant Java EE


application server based entirely on open source components. (Meet
Geronimo in "Get started with Geronimo" and visit the developerWorks
Apache Geronimo project resources for a wealth of Geronimo
information.)

• Απ α χ η ε ∆ ε ρ β ψ is a relational database implemented entirely


in the Java language. (Get started with "Developing with Apache Derby
— Hitting the Trifecta: Introduction to Apache Derby" and visit the
developerWorks Apache Derby project resources for tons more on Derby.)

• Eclipse is a vendor-neutral open development platform and set of application


frameworks for building software. The Eclipse platform is written in the Java
language and provides a plug-in based framework that makes it easier to create,
integrate, and use software tools. (IBM is a founding member of Eclipse and
actively participates on the Eclipse.org Board of Stewards and its working
subcommittees.) Learn more about some of the platform's component
technologies for Java development:
• AspectJ is an aspect-oriented extension to the Java language that can be
used to modularize crosscutting concerns such as logging and exception
handling. (See the tutorial "An introduction to AOP" and explore further
in several articles in the AOP at work series.)

• The Standard Widget Toolkit (SWT) is a user interface toolkit designed to


provide efficient, portable access to the UI facilities of the underlying
operating system. (See "A gentle introduction to SWT and JFace: How to
create a simple SWT application.")

• Μ ψ λ ψ ν is a sophisticated task tracker for Eclipse users. (See "Mylyn


2.0, Part 1: Integrated task management" and "Mylyn 2.0, Part 2:
Automated context management"" for a comprehensive Mylyn guide.

• The Eclipse Test and Performance Tools Platform (TPTP) supplies


frameworks and services for test and performance tools. (See the tutorial
"Introduction: Eclipse Test and Performance Tools Platform.")

• 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.

• The popular Spring framework is a layered framework for Java EE application


development:
• Check out The Spring series and the tutorial "Introduction to Spring 2 and
JPA" for detailed information.

• Σπρ ι ν γ Σεχ υ ρ ι τ ψ — formerly known as the Acegi


Security System for Spring — is powerful, flexible security solution for
enterprise applications developed using the Spring Framework. Learn
more in the four-part article "Securing Java applications with Acegi".

• 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.

• Translating design theory into practical application(s) is the focus of the


Java theory and practice series.

• Java programmers are wise to design applications with integrated bug


detection and testing. developerWorks offers a collection of columns on
Java debugging (focusing on a tool known as bug patterns) called
Diagnosing Java code. Other helpful articles on this topic include the
Testing with leverage articles from Brian Goetz, as well as "Kill bugs
dead" by the same author.

• 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."

• Χ ο δ ε Ρ υ λ ε ρ , CodeRally, and CodeInvaders Challenge are Java-


based, real-time programming games based on the Eclipse platform. Read
"Conquer medieval kingdoms with CodeRuler" for an introduction to
CodeRuler.

• IBM technical training


• Choose among a wide variety of online, classroom, and multimedia-based
Java courses offered by IBM Global Services.

• 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.

• IBM offers professional certification in such related technologies as


WebSphere development (for enterprise Java applications), IBM Rational
software, DB2, XML, and SOA.

• 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:

• The Kick-start Your Java Apps suite — DB2 Express-C, WebSphere


Application Server Community Edition, and the Eclipse IDE — gives you
everything you need to get simple Java Web applications and Web
services up and running today.

• ϑαϖ α ∆ε ϖ ε λ ο π ε ρ Κ ι τ σ are offered by IBM for


creating and testing Java SE applets and applications and Java ME
applications on popular platforms, including Windows, Linux, and AIX.

• ΙΒΜ ∆εϖ ε λ ο π µ ε ν τ Πα χ κ α γ ε φορ


Εχ λ ι π σ ε is an unsupported Eclipse-based development tool that
enables developers to build and run Java applications with its ready-to-run
development environment out of the box.

• Σιµυ λ τ α ν ε ο υ σ ρελ ε α σ ε προ ϕ ε χ τ σ


φρ ο µ Εχλ ι π σ ε Download free Eclipse open source software
bundles from developerWorks, including Callisto and Europa
simultaneous release projects.

• ϑαϖ α τ ε χ η ν ο λ ο γ ψ ο ν α λ π η α Ω ο ρ κ σ 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:

• Analysis and Generation of Ant Build File. A tool that helps


analyze and generate a testable Ant build file for Java EE and SCA
projects developed using Eclipse, Rational, or WebSphere IDEs.

• Ι Β Μ Πα τ τ ε ρ ν Μο δ ε λ ι ν γ αν δ
Ανα λ ψ σ ι σ Το ο λ φο ρ ϑαϖ α
Γα ρ β α γ ε Χ ο λ λ ε χ τ ο ρ . A tool that parses
verbose GC trace, analyzes Java heap usage, and recommends key
configurations based on pattern modeling of Java heap usage.

• ΙΒΜ Τηρ ε α δ α ν δ Μο ν ι τ ο ρ ∆υµ π


Ανα λ ψ ζ ε ρ φ ο ρ ϑ α ϖ α . A tool that allows
identification of hangs, deadlocks, resource contention, and
bottlenecks in Java threads.

• Ηεα π Α ν α λ ψ ζ ε ρ . A graphical tool for discovering


possible Java heap leaks.

• Αβ σ τ ρ α χ τ Υσ ε ρ Ι ν τ ε ρ φ α χ ε
Μα ρ κ υ π Λα ν γ υ α γ ε Τοο λ κ ι τ .
Development tools and APIs that let you create GUI applications
that run in both the Java Swing and HTML environments.

• Το ο λ κ ι τ φ ο ρ ΜΠ Ε Γ − 4. A set of Java classes and


APIs with sample applications for generating MPEG-4 content for
use with MPEG-4-compliant devices.

• Σεχ υ ρ ε Ση ε λ λ Λιβ ρ α ρ ψ φορ


ϑ α ϖ α . A lightweight implementation of the Internet
Engineering Task Force (IETF) Secure Shell (SSH-2) protocol for
secure remote log-in and other secure network services over an
insecure network.

• Φλ υ ι δ Σ ψ ν χ . A Java framework that facilitates the


development of collaborative and multidevice applications.

• 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:

• Rational Method Composer, a configurable software development process


platform.
• Software configuration-management tools such as ClearCase and
ClearQuest.

• Testing tools such as Rational Robot, TestManager, and Test RealTime.

• Requirements and analysis tools such as RequisitePro.

• Visual modeling and development tools such as Rational Software


Modeler, Rational Systems Developer, PurifyPlus, and Rose Technical
Developer.

• Ρα τ ι ο ν α λ Απ π λ ι χ α τ ι ο ν ∆εϖ ε λ ο π ε ρ
φο ρ Ωε β Σ π η ε ρ ε Σ ο φ τ ω α ρ ε , a rapid application
development tool for developing, analyzing, testing, profiling, and
deploying Web, SOA, Java, J2EE, and portal applications on the IBM
WebSphere platform.

• WebSphere Application Server is a fully featured Java EE-certified application


server that delivers the secure, scalable, resilient application infrastructure
enterprises need for a service-oriented architecture. Learn more about Java
development tools for the WebSphere family:

• 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.

• Ωε β Σ π η ε ρ ε σ Μ α σ η is a platform for building and running


dynamic Web 2.0-based applications using SOA principles, based on
Project Zero.

• 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.

• Ωε β Σ π η ε ρ ε ΜΘ is an application programming service that


enables application programs to communicate.

• Ωε β Σ π η ε ρ ε ΜΘ Ε ϖ ε ρ ψ π λ α χ ε allows access to
enterprise data for mobile workers and remote devices with assured
message delivery.

• Βρα ν χ η Τρα ν σ φ ο ρ µ α τ ι ο ν Τοο λ κ ι τ


φο ρ Ωε β Σ π η ε ρ ε Στυ δ ι ο is an application
framework and a set of specialized Eclipse-based tools that accelerate the
build phase for multitiered front office transactional applications.

• Ωε β Σ π η ε ρ ε Με σ σ α γ ε Βρο κ ε ρ delivers an
advanced Enterprise Service Bus providing connectivity and universal
data transformation for both standard and nonstandards-based applications
and services to power SOAs.

• IBM Information Management software is a powerful family of relational


database management system (RDBMS) servers along with software for data
warehousing, data analysis, data mining, media asset management, enterprise
content management, and information integration. IBM Information Management
software supports Java programming, including client applications, server-side
capabilities, and tools to make development and deployment easier:

• DB2 UDB is a natural fit for an open, standards-based business.

• ΙΒΜ Ι ν φ ο ρ µ ι ξ software delivers superior database


performance for transaction-intensive environments.

• ΙΒΜ Ι ν φ ο ρ µ α τ ι ο ν Ιντ ε γ ρ α τ ι ο ν
σοφ τ ω α ρ ε integrates and transforms data improving
productivity, flexibility and performance, so you have the right
information for your

Potrebbero piacerti anche