Page navigation
- What is Java technology and why is it important?
- What are the three Java platform versions?
- How does Java technology relate to web application development?
- How does Java technology relate to SOA/web services?
- How does Java technology relate to cloud computing?
- How does Java technology relate to dynamic languages and functional programming?
- How does Java technology relate to open source software development?
- How can I improve my Java programming skills?
- What IBM tools and products are available for Java programmers?
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, and IBM® downloads and products give you a rich starting point for further investigation.
What is Java technology and why is it important?
Java technology is both a programming language and a platform.
The Java programming language is a high-level, object-oriented language. Java programs are both compiled and interpreted. Compilation 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. A compiled Java program can run on any system that has a version of the JVM.
The Java platform is a software-only platform that can run on top of most hardware platforms. It consists of the JVM and the Java Application Programming Interface (API) — a large collection of ready-made components (classes) that ease application development and deployment. The Java API spans everything from basic objects, to networking and security, to XML generation and web services. It is grouped into libraries — known as packages — of related classes and interfaces.
The Java platform comes in three versions (see What are the three Java platform versions? below). 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.
Portability, versatility, scalability, and open standards
By many measures, the Java language is the most popular programming language in use today. Its main benefit 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 JVM is also 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.
The Java language and platform scale remarkably well. Applications can easily be written (or adapted from Java desktop applications) for devices with limited resources. Scaling up beyond the desktop, Java technology is an ideal framework for secure server-side web programming. 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 email. 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. Java application servers 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 can use 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.
The evolving Java universe
Java technology was developed by Sun Microsystems, now part of Oracle Corporation. 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), commonly called OpenJDK. The Java platform is stable and its community vibrant, but Java technology continues to evolve, and fundamental changes are redefining the Java industry.
Thanks to mature open source frameworks and reliable for-rent deployment infrastructures, it's now possible to assemble, test, run, and maintain Java applications much more quickly and inexpensively than ever before. The Java development 2.0 column series explores the spectrum of technologies and tools that make this new Java development paradigm possible. (Also see How does Java technology relate to cloud computing? and How does Java technology relate to open source software development, below.)
In "Java platform roundtable, Spring 2010," nine leading thinkers in the Java community candidly discuss the current and emerging state of Java technology, culture, and industry.
Keep up with newest trends in Java technology via your MP3 player. Tune in to the Java technology zone technical podcast series to hear interviews with experts on important topics, technologies, and tools.
What are the three Java platform versions?
Three editions of the Java platform make it easier for software developers, service providers, and device manufacturers to target specific markets. The developerWorks Java technology zone maintains a complete glossary of the standard Java component technologies for the platform editions. Many of these components, optional packages, and extensions — the intricate parts that make up the whole — are available across the three editions.
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. It includes classes that support the development of Java web services and provides the foundation for Java Platform, Enterprise Edition (Java EE). Java SE 6 is the current version of the Java SE platform. Explore Java SE in the following articles on developerWorks:
- Get started with Java SE 6 in the two-part "Introduction to Java programming" tutorial.
- In "Java technology, IBM style: A new era in Java technology," read about enhancements in the works for subsequent Java SE versions, including value-adds from the IBM Java Technology Center. One such major new functional area is an enhanced API for I/O, the topic of the two-part article "An NIO.2 primer."
- "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.)
- The Taming Tiger series covers Java SE 5, a version that many Java programmers continue to use.
Learn about some of the important component technologies in Java SE:
- Java Foundation Classes (Swing) is a set of class libraries that support building GUIs and graphics functionality for client applications. (To get started, see the tutorial "Introduction to Swing" and "Dynamic interface design with Swing.")
- 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 the tutorial "Understanding JDBC.")
- 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.")
- Generics let you define classes with abstract type parameters that you specify at instantiation time. (See "Introduction to generic types in JDK 5.0" and 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. (See "All about JAXP, Part 1" and "All about JAXP, Part 2.")
- The Java XPath API gives you a way to query XML documents from within Java programs. (See "The Java XPath API.")
Java EE (Java Platform, Enterprise Edition)
The enterprise version of the Java Platform helps 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 service-oriented architecture (SOA) and Web 2.0 applications. Java EE 6 is the latest Java EE version. "Java EE 5: Power and productivity with less complexity" introduces you to version 5 of the Java EE platform — a major overhaul designed to enhance developer productivity through a simpler Java EE programming model (retained in Java EE 6) than in previous versions.
Learn about some of the important component technologies in Java EE:
- JavaServer Faces (JSF) technology 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. (Explore the JSF 2 fu article series.)
- Enterprise JavaBeans (EJB) technology uses a component model to simplify the development of middleware applications. Java EE 5 revamped the EJB architecture, with the Java Persistence API (JPA) as a prominent feature. JPA provides a standard object-relational mapping solution that bypasses the need to rely on third-party frameworks. (See "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)?")
- Java Message Service (JMS) is an API that enables the development of portable, message-based applications 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 Pages (JSP) technology lets 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. (See the tutorial "Introduction to JavaServer Pages technology." JSP technology uses XML-like tags that encapsulate the logic that generates the content for the page. (See the four-part article series "A JSTL primer.")
- Java Servlet technology extends and enhances 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.)
Java development for Android
The Java language is the tool of choice for developing applications for Google's mobile platform, Android. The Android runtime uses its own virtual machine, Dalvik — not the JVM that comes with Java ME. See "Introduction to Android development" for an overview.
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 Java ME and the Mobile Information Device Profile (MIDP).
- Learn about the Java ME Wireless Messaging API in "Architectural manifesto: Wireless messaging with Java ME."
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 of Java frameworks and tools that streamline 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) technology's programming model 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 JSF 2 fu for an introduction to the latest JSF version, followed by a series of in-depth articles.)
- 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.
How does Java technology relate to SOA/web services?
A service-oriented architecture (SOA) is a component model that relates the functional units of an application (services) through well-defined interfaces and contracts between the services. The interface is defined 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 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 architectural style called Representational State Transfer (REST) and shows how to use a Java-based framework for building RESTful web services.
- JAX-WS is a fundamental technology for developing SOAP-based and RESTful Java web services. The tutorial "Design and develop JAX-WS 2.0 web services" offers a hands-on introduction to this API.
How does Java technology relate to cloud computing?
Cloud computing solutions let their users conveniently access a shared pool of physical or virtual computing resources on demand, typically on a pay-as-you-go basis. The Java ecosystem is expanding to support developers who want to build, test, or deploy Java applications on the cloud.
Learn more about it:
- The three-part article "Google App Engine for Java," along with "Java development 2.0: Hello Google App Engine," will get you started quickly with Google's cloud-computing platform for Java developers.
- In "Java development 2.0: Gaelyk for Google App Engine," read about a Groovy-based framework that makes rapid development on Google App Engine even faster.
- "Java development 2.0: You can borrow EC2 too" and "Java development 2.0: Easy EC2" introduce Amazon's cloud platform and some Java-based tools you can use with it.
- Be sure to check out the developerWorks Cloud computing area for many more cloud resources.
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:
- 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.
How does Java technology relate to open source software development?
Open source software is an integral part of Java software development. Myriad third-party open source projects extend Java technology with libraries, tools, frameworks, applications, and application servers to help programmers harness this powerful technology. Many of the technologies discussed in this article are open source.
OpenJDK
OpenJDK is a free and open source implementation of the Java programming language, available under the GPLv2 license. In October 2010, IBM, previously the main corporate contributor of the competing Apache Harmony project, formed an alliance with Oracle to support OpenJDK and create a single, stable platform for Java development.
The OpenJDK community is currently focused on the next major revision of the Java platform, Java 7, which is expected to include a number of the features noted in "A new era in Java technology" (some will likely end up in Java 8 per Oracle's latest roadmap) and the two-part article, "An NIO.2 primer."
Apache
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 Ant 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 2" and the article "5 things you didn't know about ... Apache Maven")
- Get acquainted with two Apache web services frameworks in "Java web services: Introducing CXF" and "Web services and Axis2 architecture."
- Read "Using Apache Lucene to search text" to learn about Apache's full-featured text search-engine library.
- "Introducing Apache Mahout" introduces an Apache project that's building scalable, machine-learning libraries.
- Apache Tomcat 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.)
- Apache Derby 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
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:
- "A tour of Eclipse Helios" gives you a look at the latest simultaneous release of multiple Eclipse projects.
- Read "Eclipse e4 highlights" to learn what's coming in the next generation of the Eclipse platform.
- 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.")
- Mylyn 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 IDE project resources for loads more Eclipse articles and tutorials.
Spring
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.
- Spring Security — formerly known as the Acegi Security System for Spring — is a powerful, flexible security solution for enterprise applications developed using the Spring framework. Learn more in the four-part article "Securing Java applications with Acegi."
How can I improve my Java programming skills?
You can take two routes to improving your skills: enroll in 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 evidence to prospective employers that you have the skills to build the technology they need. 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 tutorials — the next-best learning experience to writing the code yourself. For a comprehensive introduction to the Java language, head directly to "Introduction to Java programming, Part 1: Java language basics" and "Introduction to Java programming, Part 2: Constructs for real-world applications."
- "Speaking the Java language without an accent" will help you program fluently when you adopt the Java language.
- Check out the 5 things you didn't know about ... series to fine-tune your Java knowledge as you master the fundamentals.
- Translating design theory into practical application(s) is the focus of the Java theory and practice series. The "Testing with leverage" and "Kill bugs dead" articles in this series, for example, offer essential guidance on designing applications with integrated testing and bug detection.
- The Taming Tiger series is an excellent reference for sharpening your Java programming claws.
Books, websites, and events
- No better place to start than with "Essential Java resources," a comprehensive listing of must-have books, sites, blogs, events, and more.
- Check out the Java technology zone's Events page to find conferences, seminars, workshops, and webcasts relevant to Java developers.
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."
- CodeRuler, CodeRally, and CodeInvaders Challenge are Java-based, real-time programming games based on the Eclipse platform.
IBM technical training
- Choose among a wide variety of online, classroom, and multimedia-based Java courses offered by IBM Global Services.
Certification training
- 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.
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. This section highlights tools and products IBM offers to Java developers.
Free downloads
- WebSphere Application Server Community Edition is an open source, lightweight Java EE application server that provides a readily accessible and flexible foundation for building Java applications.
- Java Developer Kits 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®.
- In the five-part article Java diagnostics, IBM style, learn how to get and use diagnostic tools available from IBM that help you solve problems in your Java applications.
- Download free Eclipse Helios (Annual Release) bundles and IBM Rational software from one convenient location.
- IBM Development Package for Eclipse 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.
- IBM alphaWorks is a virtual warehouse of emerging IBM-generated technologies, including Java-related APIs, 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 Service Component Architecture (SCA) projects developed using Eclipse, Rational, or WebSphere IDEs.
- Java Thread Activity Analyzer: A tool for visualizing the interactions between the threads of a Java program.
- IBM Pattern Modeling and Analysis Tool for Java Garbage Collector: A tool that parses verbose GC trace, analyzes Java heap usage, and recommends key configurations based on pattern modeling of Java heap usage.
- IBM Thread and Monitor Dump Analyzer for Java: A tool that allows identification of hangs, deadlocks, resource contention, and bottlenecks in Java threads.
- HeapAnalyzer: A graphical tool for discovering possible Java heap leaks.
- Toolkit for MPEG-4: A set of Java classes and APIs with sample applications for generating MPEG-4 content for use with MPEG-4-compliant devices.
- Secure Shell Library for Java: 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.
IBM Rational tools
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, Quality Manager, 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.
- Rational Application Developer for WebSphere Software, a rapid application development tool for developing, analyzing, testing, profiling, and deploying web, SOA, Java SE, Java EE, and portal applications on the IBM WebSphere platform.
IBM WebSphere
WebSphere Application Server is a fully featured Java EE-certified application server that delivers the secure, scalable, resilient application infrastructure enterprises needed 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.
- WebSphere Enterprise Service Bus provides web services connectivity, JMS messaging, and service-oriented integration to power your SOA.
- WebSphere Process Server and WebSphere Integration Developer deliver a rich process integration platform for enterprise services based on SOA.
- WebSphere sMash 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.
- The WebSphere Portal zone provides portlets, tools, tutorials, and news for developers who use the WS Portal technology.
- WebSphere MQ is an application programming service that enables application programs to communicate.
- WebSphere MQ Everyplace® allows access to enterprise data for mobile workers and remote devices with assured message delivery.
- Branch Transformation Toolkit for WebSphere Studio is an application framework and a set of specialized Eclipse-based tools that accelerate the build phase for multitiered front office transactional applications.
- WebSphere Message Broker 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
IBM offers 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:
- The IBM DB2 family of products provides the foundation of information on demand for meeting business needs large and small.
- IBM Informix software delivers superior database performance for transaction-intensive environments.
- IBM InfoSphere products enable trusted information by transforming, reconciling, and maintaining information and delivering it in real time to the people, processes, and applications that need it.




