Software development best practices and processes
The enterprise software development landscape has changed drastically with the rise of Kotlin, Clojure, Python and JavaScript. From a focus on functional programming to new takes on object-oriented analysis and design, Java programmers and JDK architects can learn from these languages' development processes and software engineering best practices.
Top Stories
-
Feature
23 Apr 2024
What are the 5 Scrum values?
Scrum defines five key values: openness, courage, respect, focus and commitment. Here's why they are important. Continue Reading
-
Feature
22 Apr 2024
Simplify mobile app development for the enterprise
Without the right resources, mobile app development can be challenging. Find out how to start the process and the best tools to streamline the app dev journey. Continue Reading
-
Tip
13 Jul 2010
Evil Design Patterns - When Design Patterns Become the Problem
Have you ever been on a project in which all of your team members have just gone through an intense week of Design Pattern training? It's painful. Continue Reading
-
Tutorial
29 Jun 2010
Use Sonar to Develop a Quality Feedback Loop into the Build Cycle
Sonar is great for ferreting out quality problems in your code base. But what if it kept the problems out in the first place? With a little work, key Sonar feedback metrics can be integrated into the code/test/commit/build cycle. Continue Reading
-
Report
09 Jun 2010
Secure-Critical User Control Mechanisms
In many business areas an increased need for safety and control of business processes executed by human actors can be observed. Humans are by nature error-prone and make mistakes. Human activities, ranging from simple scenarios, such as manual approval to complex scenarios involving complicated entry of sensitive data are subject to failure, misunderstandings, typos and incorrect data. But a business can come into trouble not only by unintended errors introduced by human beings; also intentional misuse and internal fraud can produce a lot of damage and is often hard to track. Continue Reading
-
News
01 Mar 2009
Scalability and Performance of jBPM Workflow Engine in a JBoss Cluster
The goal of this article is to show how to achieve near-linear scalability of jBPM workflow engine by tuning its configuration and setting it up on a JBoss cluster with distributed TreeCache. Readers will be guided through all steps required to cluster jBPM efficiently – from cluster setup to fine-tuning jBPM configuration – and provided with performance test results as well as various tips and tricks allowing to achieve maximum performance. Continue Reading
-
News
01 Jan 2009
SOA and the Mainframe: Two Worlds Collide and Integrate
In the context of Legacy Modernization, an SOA Integration architecture can bring a legacy environment into the world of the World Wide Web, Web 2.0, and all the other latest Internet-based IT architectures. Continue Reading
-
News
01 Jan 2009
Java Pseudo Transactions With Non-Transactional Resources
When working in enterprise environments, it is often necessary to interact with multiple resources in a single atomic unit of work – a distributed transaction. The ideal way to accomplish this is by leveraging JTA to manage the distributed transaction. However, in transaction scenarios where one or more resources do not support XA transactions JTA cannot be used. This paper describes a method of interacting with non-transactional resources in a pseudo-transaction. Continue Reading
-
News
01 Nov 2008
Intercepting JNDI Filters
This article presents a simple filtering framework to "intercept" JNDI operations and objects in a non-intrusive way (without code changes or the overhead of AOP systems). Continue Reading
-
News
01 Nov 2008
Inside db40
db4o, database for objects, is a true object database; it manipulates objects in such a fashion that those objects retain their nature throughout their lifetimes - in or out of the database. Object content, structure, and relationships are preserved, regardless of class complexity. Continue Reading
-
News
01 Aug 2008
Building a Scalable Enterprise Applications Using Asynchronous IO and SEDA Model
This article presents one solution to overcome the scalability issues related to the enterprise applications that must support a mix of fast and long running business processes, or with great or small throughput. Continue Reading
-
News
18 Jul 2008
Implementing Finite State Machines with Physhun and Spring
This paper presents the Physhun project, a Spring-based framework for implementing complex processes through Finite State Machine models. Physhun provides finite State Model persistence and transaction management with synchronous or asynchronous behavior. Continue Reading
-
News
01 Jul 2008
Are Java Web Applications Secure?
One of the most extended belief about web applications is that most of them are insecure. This opinion is supported by statistics published by SANS [1] which show that almost half the vulnerabilities published during 2007 were related to web applications, independently from being open-source or commercial software. Continue Reading
-
News
01 May 2008
OSGi for Beginners
As a non-OSGi advocate, I would like to take some time to try to explain OSGi to the people who don't know about it – a novel idea, apparently – along with some example code to help people get started. Continue Reading
-
News
01 May 2008
The Whiteboard Pattern for OSGi
Learn about a pattern that a lot of OSGi programmers say is the way to go - and it's certainly one way to go. We'll discuss the whiteboard pattern for OSGi and then discuss some of its strengths and weaknesses, and alternatives. Continue Reading
-
News
01 Apr 2008
Complex Event Processing Made Simple Using Esper
Event processing has been at the heart of any computing system for more then a decade. A common challenge across industries is to be able to extract actionable intelligence from disparate event sources in the most real-time possible way. Continue Reading
-
News
01 Dec 2007
XWiki: A Platform for Collaborative Apps
This article demonstrates how to customize XWiki Enterprise by writing a small application with it. Specifically you'll learn how to write a Todo application for managing Todo tasks. This application will let users enter tasks using a description, assignee, target date and status. Continue Reading
-
News
01 Nov 2007
Design to Unit Test
Unit tested code reduces the defect density in an application. The motive of this article is not to elucidate the benefits of unit testing (see references for that), but to provide a collection of good practices to design an application keeping in mind the ability to unit test. Continue Reading
-
News
01 Sep 2007
Defining Your Object Model with JPA
In the perfect world, your object model would map seamlessly to your database schema. Most organizations however, have database naming standards, requirements for how relationships are modeled and columns that all tables must have. Continue Reading
-
News
01 Sep 2007
Implementing e-forms with Adobe LiveCycle Forms
Most companies today use e-forms in some way or the other, ranging from the simple contact form with fields where customers can leave their e-mail address and a message, to complex multi-page forms incorporating calculations and logic. Learn more about implementing e-forms with Adobe LiveCycle Forms. Continue Reading
-
News
01 Aug 2007
Manage test data for integration tests using Spring and DBunit
This article will look at configuring integration tests using Spring and DBUnit so that test data is inserted into the database before every test. This article also looks at a utility to export/import test data in the database using DBunit. Continue Reading
-
News
01 May 2007
Using OpenID
Learn more about OpenID, a decentralized, open source framework for user-centric digital identity. With OpenID, rather than managing all online accounts individually, users can manage their identity in one place via an authentication server. Continue Reading
-
News
01 Feb 2007
Transforming Legacy Systems to J2EE Architecture
This document is a living reference document for anyone involved in the design and architecture for organizations to transform their legacy systems to Java 2 Enterprise Edition (J2EE) based applications. Continue Reading
-
News
01 Feb 2007
Part 5 - Integrating Java and Microsoft .NET
Interoperability is one of the main promises of Web services. Web services are designed to be independent of the underlying operating system and programming language. In this article we will introduce basic web services interoperability issues. We will focus on the two most popular platforms - Java and Microsoft .NET. Continue Reading
-
News
01 Jan 2007
Mule: A Case Study
The buzzword du jour in service-oriented architectures is ESB. Enterprise service buses are the preferred tools for integrating systems with heterogeneous data interchange interfaces and based on a wide array of technologies, from COBOL to CORBA to JEE. This article is an introduction to ESBs and enterprise integration using Mule, the open-source ESB. Continue Reading
-
News
01 Sep 2006
The Pragmatic Code Generator Programmer
In this article we will reimplement an exercise taken from the best-selling book "The Pragmatic Programmer" written by Andy Hunt and Dave Thomas [1]. In the third chapter "The Basic Tools" the authors motivate the reader to learn a "text manipulation language" (like Perl or Ruby) in order to be able to develop little code generators. Continue Reading
-
News
01 Jun 2006
Pipeline to Visitor Design Pattern
Moving from Analysis to Design phase, designers try to make the software system very maintainable through selecting all the functions that are used frequently by most of the use cases and make components out of them. Continue Reading
-
News
11 May 2006
Free Book: The J2EE Architect's Handbook
This book is written for technical architects and senior developers tasked with designing and leading the development of J2EE java applications. This book will guide the architect through the entire process of delivering a project from analysis through application deployment providing numerous tips, tricks, and "best practices" along the way. Continue Reading
-
News
11 May 2006
Free Book: Java Testing and Design
Java Testing and Design: From Unit Testing to Automated Web Tests teaches you a fast and efficient method to build production-worthy, scalable, and well performing Web-enabled applications. The techniques, methodology, and tools presented in this book will enable developers, QA technicians, and IT managers to work together to achieve unprecedented productivity in development and test automation. Continue Reading
-
News
01 Dec 2005
SSO and Identity Management
As Web-applications have grown over the years to support various business processes, these applications have expanded the number of users, groups and roles that need to be managed by administrators. Continue Reading
-
News
01 Apr 2005
BPEL and Java
The idea and motivation behind almost each new technology and platform for enterprise application development is to provide an environment where better business applications can be developed with less effort –business applications which should closely align to the business processes, which should not be too complex, and which can be adapted to the changing nature of business processes without too much effort. Continue Reading
-
News
01 Apr 2005
Taking the load off: OSCache helps databases cope
Do you think that you can solve your J2EE performance problems by just adding more application servers? One caches is the Open Source product, OSCache. It may not be the best solution in all cases but, as a maintainer of OSCache, it is the one I will be reviewing. Continue Reading
-
News
01 Jan 2005
Exploring J2EE Security for Applications using LDAP
This article is loosely based on prototyping a number of J2EE applications constructs, such as servlets, EJB, MDB (Message-driven Beans) and JSP implemented using LDAP (Lightweight Directory Access Protocol) for application authorization. The applications were built in order to understand standard J2EE security and IBM WebSphere extensions. The article identifies key interfaces within WebSphere Application Server Version 5.x (WAS) or any J2EE compliant application server that need to be configured in order to build secure applications. Continue Reading
-
News
01 Nov 2004
Redirect After Post 2
This article demonstrates the benefits of Redirect-after-Post pattern using a simple web application. See my previous article " Redirect-after-Post pattern in web applications" for the discussion of the concept. Continue Reading
-
News
01 Sep 2004
Object Slicing and Component Design with Java
Object-oriented systems are usually partitioned into layers of related responsibilities and only dependencies in one direction are allowed, from higher layers (more specific, less reusable) to lower ones (more general, more reusable). Classes in higher layers can extend or wrap classes in lower ones, but not the other way around. Learn more about object slicing. Continue Reading
-
News
01 Sep 2004
Implementing Object Caching with AOP
Object caching has a number of characteristics that make it a prime candidate for implementation as an Aspect. Learn what some of these characteristics are. Continue Reading
-
News
01 Aug 2004
Redirect After Post
This article shows how to design a well-behaved web application using redirection. Continue Reading
-
News
15 Jun 2004
Dynamic Coupling
Loose coupling has more up-front costs than tight coupling. The assumption is that the loose coupling device will pay for itself. Continue Reading
-
News
01 May 2004
An Introduction to the Drools Project
Part one of this article revisits an old concept and introduces a new technology for the Java Enterprise developer's utility belt. I'll discuss how Rules Engines can improve the agility of your business by helping you isolate the "logic of the bottom line" from the technical logic of your software applications. I'll introduce the JSR-94 Rules Engine API and an Open Source product called Drools, the forerunner implementation of this up-and-coming technology. Continue Reading
-
News
01 Apr 2004
Using Database MetaData methods appropriately
Developing performance-oriented JDBC applications is not easy. JDBC drivers do not throw exceptions to tell you when your code is running too slow. Continue Reading
-
News
01 Jan 2004
Back End Code Generation Techniques For Java
Code generation is nothing new, especially for Java programmers, but it is still confusing to most people because of the variety of code generation models and solutions. This article will help you cut through the fog by providing a summary of the popular models and solutions in the Java world today. Continue Reading
-
News
01 Sep 2003
SQLExecutor - A Simple, Open Source JDBC Framework
Writing succinct and elegant JDBC code can be difficult. You have to create a few different objects and catch numerous checked exceptions, even if you can't reasonably recover from them. Continue Reading
-
News
01 Aug 2003
Using JAAS for Authorization & Authentication
This paper explains how to use the Java Authentication and Authorization API (JAAS). It plugs JAAS into the Struts framework. Though this paper focuses on Struts, and in particular the example application distributed with Struts, the lessons learned should be applicable to any MVC web framework. Continue Reading
-
News
01 Mar 2003
Using JMX to Manage Web Applications
The Java Management Extensions (JMX) standard is gaining adoption within the J2EE community for the management of applications, as well as application servers and other infrastructure software. JMX makes it possible to manage and monitor applications using a choice of management systems and consoles, including SNMP consoles. Continue Reading
-
News
01 Feb 2003
Simplifying Domain Model Persistence in a J2EE application by using JDO
This article describes how using Java Data Objects (JDO) [JDO] can avoid these problems and accelerate development. Continue Reading
-
News
01 Jan 2003
Serve It Up with J2EE 1.4 - Use JCA 1.5 and EJB 2.1 to Extend your App Server
J2EE application servers have become the standard for serving Web-based applications, and for good reason. Application servers provide a secure, reliable and manageable execution environment for Web applications using open, portable standards. Continue Reading
-
News
01 Jul 2002
Intro to Java Message Service 1.1
This article illustrates how to program using the new features of the Java Message Service (JMS) 1.1 API. The new features in JMS 1.1 are demonstrated through a sample application. Continue Reading
-
News
01 Jun 2002
JAXP: Coding for Parser & Transformer Independence
This introductory article will educate developers about the JAXP API, and provide them with a strong understanding of the pluggability layer that will allow their applications to switch between parsers at will. Continue Reading
-
News
01 Feb 2002
Part 6 - Securing Web Services with Single Sign-On
Web Services are arguably the most heterogenous distributed technology ever. A typical Web services setup will make use of many different technologies, object models and programming languages, which might include simple Perl scripts and standalone Web services implemented in C++ or Java, through to sophisticated applications build on top of J2EE application servers. Being able to interact across such diverse environments is one of the strengths of Web services, but it has a price: it becomes difficult to secure such systems. It is hard to find a common security standard for all involved technologies. Today we will talk about single sign-on, the security architecture that brings a flexible an interoperable way of securing heterogenous systems. Continue Reading
-
News
01 Jan 2000
Implementing a Data Cache using Readers And Writers
You may have come across a situation where you need to cache some data in your server. You then use this cache to service queries from incoming requests. You will also probably have a thread that listens for cache update events. This thread updates the cache in response to these events. Continue Reading
-
News
01 Jan 2000
Nuts and Bolts of Transaction Processing
This article walks the reader through the transaction processing and ACID. Continue Reading
-
News
01 Jan 2000
Why Prepared Statements are important and how to use them "properly"
Processing statements can be an expensive operation but databases are now written in such a way so that this overhead is minimized. However, these optimizations need assistance from the application developers if we are to capitalize on them. This article shows you how the correct use of Prepared Statements can significantly help a database perform these optimizations. Continue Reading