Java

Deploying BIRT in Your Existing Web Application

Reading Time: 5 minutes The Business Intelligence and Reporting Tools (BIRT) project is an open source, Eclipse-based reporting framework that enables the creation and deployment of enterprise reports. Development with BIRT can usually be thought of as a two-step process: The creation of the report designs within the Eclipse BIRT Report Designer Deployment of the designs and framework to an application for dissemination. BIRT also offers three public APIs Continue Reading

Making Your Existing Applications Multi-tenant in the Cloud

Reading Time: 3 minutes Last week, while presenting at the IndicThreads Cloud Conference, we got into a very interesting discussion. How to make the existing application that we have multi-tenant without changing a hell lot of code or may be without changing even minimal code. Before we get to that question, let us do a quick recap of multi-tenancy. Multi-tenancy is the ability to run multiple customers on a single Continue Reading

Generating Charts In Wicket Application On Google App Engine

Reading Time: 3 minutes We are in process of porting an existing Wicket application on Google App engine. This application’s charting engine used Java color classes along with Swing components to generate dynamic images. These images are then used by Wicket to display on the front-end . Unfortunately Google app engine does not support these classes. We therefore had to find an alternative to generate Charts for our application. Continue Reading

Managing Multiple Parent Persistence Problem in App Engine

Reading Time: 3 minutes We are in process of porting an entire application on google app engine. This application has persistence using JPA and as usual contains mapping between entities using annotations. The mapping like @OnetoMany and @ManytoOne in Jpa may throw lot of errors in google app engine and therefore is neither straightforward nor trivial. In this blog we will see where our mapping may fail, with specific Continue Reading

Premon Architecture

Reading Time: 5 minutes In our last post I introduced you to the basic characteristics of Premon, the Intelligent Monitoring solution. In this post let us try to look at what is the architecture of Premon which makes it possible for Premon to support the characteristics that we talked about. Let us look at the architecture and dissect the pieces one by one. If you would notice, there is Continue Reading

Why Unowned Relationships Make More Sense With App Engine Datastore

Reading Time: 4 minutes A month back we started migrating an enterprise time keeping and invoicing system to GAE. Initially, the application was deployed at the enterprise on tomcat. The opportunity was to port the application to GAE and utilize the public cloud space. The choice about GAE was based on the expected ease of migration and then not having to worry about any infrastructure maintenance. As you would Continue Reading

Intelligent Monitoring With Premon

Reading Time: 2 minutes In our last post, we discussed how intelligence can be built into the monitoring systems. This helps in decreasing the burden of system monitoring and allows administrators and stakeholders to focus on relevant information. In this post we would introduce Premon and look at some of the features that it provides to make monitoring easy and efficient. Premon complements, it does not compete: Premon does Continue Reading

Building Intelligence Into Monitoring

Reading Time: 3 minutes In our last post, we discussed the pitfalls of the traditional monitoring solutions. We also touched upon a possible solution to take care of the issues. Let us try to analyse that solution in some more detail now. Intelligent Monitoring (IM) should be able to decrease the burden of system monitoring in multiple ways. An IM system should be able to listen to multiple data Continue Reading

Unit Testing Maven Based JPA Application on GAE

Reading Time: 3 minutes Recently, we started porting a complex enterprise timesheet and invoicing application to Google App Engine. We would talk about the strategy that we are following as a part of separate post but in this post let us look at how we can unit test JPA code effectively in our local environment. By the way, the application that we are porting does not use JPA but Continue Reading

Remote Debugging Google App Engine Application on Eclipse

Reading Time: 2 minutes Sometimes it is handy to debug our application source code even when it is executing outside our IDE. This blog will explain how can we remotely debug a web application project developed in Google App Engine on eclipse IDE. The linux command to start web application on Google App engine development application server is [sourcecode language=”bash”] dev_appserver.sh <exploded WAR directory path> [/sourcecode] The command runs Continue Reading

Achilles Heels’ of Traditional Monitoring Software

Reading Time: 3 minutes In the last post on the state of monitoring software we looked at how monitoring was done in the past, how it is being done now and where does it need to go. In this post let us try to look at the concrete weakness areas of the current Monitoring software solutions. Administrators have long relied upon monitoring software to analyze the current state of Continue Reading

Open Closed Principle in Action

Reading Time: 4 minutes Ivar Jacobson stated that all software entities change during their life cycle and this must be borne in mind when developing systems which are expected to last longer than the first version. A design principle which helps you with long lasting software is OCP (Open Closed Principle). Open Closed Principle was coined by Bertrand Meyer. It states that “Software entities should be open for extension Continue Reading

Unit Testing Esper Statements

Reading Time: 2 minutes Esper Statements would allow the flow of events to pass through them. Usually what would you like to unit test for a basic scenario? The valid events are being passed to the listener The invalid events are filtered out and are not passed to the listener The batching time, if defined for the statement, is being adhered to. Let us quickly look at what a Continue Reading