IBM developerWorks : Java technology : Technical library
The latest content from IBM developerWorks
Updated: 3 hours 57 min ago
Tue, 01/31/2012 - 07:00
Modern dynamic languages have incorporated many functional features to take
mundane tasks off developers' hands. This article explores the benefits of caching at
the function level with Groovy, contrasting it with an imperative approach. It
illustrates two types of caching -- intramethod and external -- and discusses the advantages and disadvantages of the imperative and functional versions.
Thu, 01/26/2012 - 07:00
IBM Tivoli Service Automation Manager (TSAM) 7.2.2 introduces the extension,
a set of TSAM software components that can implement a new IT service
automation solution (known as a service definition) or add capabilities to
existing service definitions. In this article, the authors define a scenario
in which the desired result is to securely deploy a three-tiered enterprise application (in this case J2EE) to the cloud. They demonstrate how to set up and provision extensions in TSAM as the first step to accomplishing this task.
Tue, 01/24/2012 - 07:00
Data security is a serious concern for organizations considering cloud
adoption, but in many cases it needn't be. In this installment of Java development
2.0, learn how to use private-key encryption and the Advanced Encryption Standard to
secure sensitive application data for the cloud. You'll also get a quick tutorial on encryption strategy, which is important for maximizing the efficiency of conditional searches on distributed cloud datastores.
Tue, 01/17/2012 - 07:00
AuthenticRoast is an open source project that works with the Java Authentication Service Provider Interface for Containers (JSR 196) to let you develop custom authentication modules for use with container-managed, declarative security. Joe Sam Shirah shows how AuthenticRoast can minimize configuration impact on Java Enterprise Edition (JEE) containers and greatly reduce coding effort for custom security requirements. A downloadable WAR with demonstration code is provided.
Wed, 01/11/2012 - 07:00
Java is becoming a popular programming language for CICS applications. CICS provides multiple Java environments, each with its own strengths, so passing data objects between the different CICS Java environments is an important topic. This three-part article series gives you the details. Part 2 uses an example Java class to show you how to pass Java data objects between applications running in a CICS-pooled JVM, an Axis2-based JVM, a CICS Dynamic Scripting environment, and a CICS OSGi-based JVM.
Tue, 01/10/2012 - 07:00
RichFaces, like most other rich/Ajax component frameworks designed for use with JavaServer Faces (JSF), was extensively revamped for compatibility with the significant changes in JSF 2. Joe Sam Shirah examines changed and new RichFaces 4.1 components that provide the same functionality he demonstrated in "An introduction to RichFaces" with version 3.1. He also updates the setup requirements for using RichFaces with JSF.
Wed, 01/04/2012 - 07:00
Java is becoming a popular programming language for CICS applications. CICS provides multiple Java environments, each with its own strengths, so passing data objects between the different CICS Java environments is an important topic. This article series gives you the details. Part 1 describes the CICS Java environments, the advantages of each one, and the different ways to pass data between them.
Part 2 uses an example Java class to show you how to pass Java data objects between applications running in a CICS-pooled JVM, an Axis2-based JVM, a CICS Dynamic Scripting environment,
and a CICS OSGi-based JVM. Part 3 shows you how to pass Java data objects from a CICS Transaction Gateway Java client program to a CICS-pooled JVM or CICS OSGi-based JVM.
Tue, 01/03/2012 - 07:00
This knowledge path introduces Java development concepts and skills to programmers who are new to the language and platform. Experienced Java developers guide you from basic Java syntax to more-advanced abstractions and constructs, sharing best practices and useful resources along the way. You'll also get acquainted with the Eclipse IDE and use it for hands-on learning.
Tue, 12/20/2011 - 07:00
With Groovy, metaprogramming and functional programming form a potent combination. See how
metaprogramming enables you to add methods to the Integer data
type that take advantage of Groovy's built-in functional capabilities. And learn how
to use metaprogramming to incorporate the Functional Java framework's rich set of functional features seamlessly into Groovy.
Tue, 12/20/2011 - 07:00
For years, the Java zone has brought you top-quality technical content by some
of the best minds in the industry. But taking the time to read an in-depth, code-heavy
article can be difficult, even if it's about a topic that's critical to your day job.
This new podcast series, led by the engaging and technically curious Andrew Glover,
provides a new way to get information from the sources you trust most. Every few weeks, we'll publish a new discussion with an expert on the topics that are important to your job.
Mon, 12/19/2011 - 07:00
Java applications, which store their partial data in files, can benefit
in many ways by accessing file-systems using transactions. Learn how to work with open source XADisk for transactional file access.
Tue, 12/13/2011 - 07:00
Redis has a lot in common with memcached but it boasts a richer set of
features. In this month's Java
development 2.0, Andrew experiments with adding Redis (by way of Java-based variant Jedis) to his location-based mobile application. Learn how Redis works as a simple data store, then try repurposing it for ultra-fast, lightweight caching.
Tue, 11/29/2011 - 07:00
Node.js presents an exciting alternative to traditional Java concurrency, and all you need to get started is an open mind and a little bit of JavaScript.
Tue, 11/22/2011 - 07:00
Over time, languages and runtimes have handled more and more mundane details for us. Functional languages exemplify this trend, but modern dynamic languages have also incorporated many functional features to make developers' lives easier. This installment investigates some of the functional features already lurking in Groovy, showing how recursion hides state and how to build lazy lists.
Thu, 11/17/2011 - 07:00
The Java language's main benefit is the portability of Java applications across
hardware platforms and operating systems. But some applications can't be written entirely in Java: The standard Java class libraries might not support a required platform-specific feature or library; you might prefer to implement time-critical code in a lower-level, faster language, or you might want to leverage legacy code assets. The Java Native Interface (JNI) within the Java platform enables Java and "native" (non-Java) code to interoperate. Using JNI entails certain trade-offs, beyond loss of application portability. This knowledge path is designed to help all Java developers use JNI safely and efficiently.
Tue, 11/15/2011 - 07:00
Meet Heroku, a Ruby-based PaaS that brings a winning combination of configurability and ease-of-use to Java application development and deployment in the cloud.
Tue, 11/15/2011 - 07:00
Tracking the source of Java application bottlenecks is critical to the application-development cycle. With the introduction of better profiling tools and a host of diagnostic tooling from the IBM Java team and others, the task of monitoring and diagnosing Java applications has become considerably less difficult than in the past. In this knowledge path, you'll learn more about the tools you can use to assess and improve the health of your applications effectively.
Tue, 11/15/2011 - 07:00
Take the rapid development of Roo a step further by creating
applications to work in the cloud with Cloud Foundry, the first open platform
as a service project created by VMWare. Learn more about the environment and
then deploy an application into Cloud Foundry using the Roo shell.
Fri, 11/11/2011 - 07:00
Learn what Node.js is and how to get started using it in this brief introduction.
Tue, 11/08/2011 - 07:00
Apache Mahout committer Grant Ingersoll brings you up to speed on the current version of the Mahout machine-learning library and walks through an example of how to deploy and scale some of Mahout's more popular algorithms.