Cloud Computing Series: Exploring the Google App Engine Java Runtime Environment
By Ram Kripal Prasad (3) on September 23rd, 2009

Various Cloud FormationsGoogle recently released a Java runtime environment for their App Engine platform. As a software development organization, this offering is of special interest to Nagarro, as it offers several advantages over competing cloud hosting environments. Hosting a Java application on Google’s infrastructure provides automatic scaling and load balancing, a feature that is of interest to a number of our software product development ISV customers. To better understand the issues and risks, we conducted an internal exercise to assess the technical effort required to port an existing application to the Google App Engine for Java (GAE-J). Continued »

Using ActiveRecord for Database Setup and Migration: A How-to
By Ram Kripal Prasad (3) on June 9th, 2009

One of the first places where the ActiveRecord pattern first appeared, was in the book Patterns of Enterprise Architecture by Martin Fowler. The ActiveRecord pattern embeds the knowledge of how to interact with the database directly into the class performing the interaction. Continued »

Google Web Toolkit for Rich Internet Applications –A Java Programmer’s Experience
By Nitin Sood (1) on May 14th, 2009

Recently, I have been working on porting a Struts and uPortal based legacy application to GWT. This work was initiated a year ago to replace an unappealing, non-responsive and slow user interface of the legacy application. Another key requirement was to make the client side technology stack lighter. Use of multiple client side technologies (Struts, uPortal, JSP, Tag libraries, Java Script, configuration files, CSS, XSLT) made it difficult to make even simple UI changes. Continued »

Application programming in the era of multicore processors
By Abhijat Vatsyayan (5) on April 15th, 2009

Computer chip manufacturers cannot keep on increasing the clock speed indefinitely to make their processors faster. They seem to have already reached the limit (on clock speed) and have started putting multiple Continued »

Ruby vs. Java
By Bill Kayser (9) on February 4th, 2009

It’s not that we don’t have enough people offering opinions on what is a better language.  It’s just that some of us never tire of discussing it.  There are so many perspectives, so many arguments, and so many people willing to   Continued »

OSGi from Here to There, Part II
By Bill Kayser (9) on February 14th, 2008

So what does it take to migrate a large, multi-tier product to the OSGi Equinox runtime?

We started out with a large, over-frameworked set of applications built with a creaky buildsystem cobbled together from perl scripts and ant build files. We had all the code crammed into two projects, one for core libraries and the Continued »

OSGi from Here to There
By Bill Kayser (9) on January 2nd, 2008

In the last installment I talked about programs built on the OSGi runtime, how they consist of discrete bundles of code and resources loosely coupled with each other, using a service registry to communicate, much the way discrete Continued »

SOA in a JVM
By Bill Kayser (9) on November 26th, 2007

There has never really much debate about whether Service Oriented Architecture is a good idea or not. Based on principles such as loose coupling, encapsulation, location transparency, and the separation of infrastructure Continued »

Programmers as Channel Surfers
By Bill Kayser (9) on October 2nd, 2007

If a program is to be a work of literature, then where does that leave object-oriented programs? In the era of functional decomposition, programs were built around algorithms and data structures. They executed in a single thread as a sequence of steps and subroutine calls, not unlike a story. Our object-oriented programs, on the other hand, don’t have such a fixed path of execution. Whether server or client applications, they start up multiple threads and make heavy use of message passing and asynchronicity. The essence of a program is not in a sequence of steps and subroutine calls but in the subtle relationships between classes spread across many frameworks and subsystems, relationships such as inheritance, aggregation and collaboration. So how does one read a Java application like a story? The whole idea of object oriented programs seems at odds with literate programming.

Continued »