Friday, December 21, 2012

Poem: "Wrong Address" - a tribute to victims of Newtown massacre




When I dropped you off at the school last Friday
Your eyes were so bright
Face so charming;
You told me with your sweet voice
The weekend plans of your choice
The ballet class on Saturday
Bowling on friend’s birthday;
Helping your mom in Christmas shopping
Putting more decorations and lightings
Every itty-bitty thing that ran through your mind;
Without which I am deaf, dumb and blind.
You were so excited
To paint your walls blue and roof with red
And a new white bed
To match with the fury cat.
All your dreams and wishes
Shattered like glass
When the devil sprayed bullets in your class  
Death arrived at the wrong address
Making you an angel and driving us hapless.

I found a piece of your shattered dream
In your Barbie bag
 The incomplete Christmas drawing
Vivid and enigmatic;
Holding that your mom
Inconsolable and desolate
Sitting by the Christmas tree
Decorated by thee
 With colorful ornaments
Candy canes and reindeers
The shiny golden stars
How proud they are
That you have become a tiny star in the sky
To give light to the stranger who lost his way.

The mailman returned your letter to Santa Claus
Marking “Undeliverable address”;
You wrote in big letters
With your tiny hands 
Asked for a cute little brother
And a new dollhouse for you
A purse for your mommy
A new job for me
Happiness for your grandma
And world peace for your grandpa
Probably your letter arrived at wrong address
Saint of Death delivered your sacrifice as our present.
We are hapless
Powerless living cadavers
We forgive the devil for the sin
We cannot stop his toy named “Gun”!

I still miss
Your goodnight kiss
I want to cuddle you again
But I don’t know the address for heaven.

(Note: The recent massacre at Sandy Brook Elementary has probably broken everybody’s heart. I wrote this poem to express my feelings as a father as a tribute to the victims of that mindless killing. I do not know any victims personally)




Tuesday, December 11, 2012

What Customers expect in a new generation APM (2.0) solution

As an application owner, architect or application support personnel, you want to exceed service levels and avoid costly, reputation-damaging application failures through improved visibility into the end-user experience. The blog discusses some of the top features the new generation APM solutions provide that help you achieve your business objectives.

Here is the direct link to the blog.

Tuesday, December 04, 2012

Challenges with APM 1.0 product

Customers have been managing application performance since early days of mainframe evolution. However, Application Performance Management as a discipline has gained popularity in the past decade.

See my blog in BMC communities for challenges with old generation of APM products.

Here is the direct link : https://communities.bmc.com/communities/community/bsm_initiatives/app_mgmt/blog/2012/12/04/challenges-with-apm-10-products

Wednesday, September 26, 2012

JavaOne Next week

I will be at JavaOne next week. I have two sessions at JavaOne this year. Here are the details for these two sessions.

Session : BOF6019 - Diagnosing Performance Issues in Cloud-Based Java Applications
Venue / Room: Parc 55 - Market Street
Date and Time: 10/2/12, 17:30 - 18:15

Session : CON6173 - Making Sense out of the Java PaaS Platforms
Venue / Room: Parc 55 - Market Street
Date and Time: 10/2/12, 11:30 - 12:30

I hope to see some of you next week.


Thursday, August 30, 2012

Are Java PaaS platforms ready for enterprise?

Cloud computing bubbles are still rising and there is a great hype for Java PaaS. Java PaaS vendors are still growing like mushrooms. Remember the good old early J2EE / EJB 1.0 days! They hold a lot of promise. Are they really ready for deploying enterprise grade applications? I spent few weeks looking at few Java PaaS vendors and I will present my thoughts at my JavaOne presentation.

Have you deployed your enterprise application in a Java PaaS? I would be interested to know your thoughts.

Here is a survey on Java PaaS http://www.surveymonkey.com/s/BDZRWQF

Thursday, March 24, 2011

Best practices for building cloud based applications

I wrote another article outlining some best practices for building cloud based applications. You can read the article at http://www.devx.com/architect/Article/46602?trk=DXRSS_LATEST

I am writing this blog using my iPad and blogger is not iPad friendly

Monday, March 21, 2011

Cloud Computing for Java Developers

I wrote an article Java Cloud Development: What Developers Need to Know at Developer.com. This provides an introduction to Cloud Computing from Java Developers perspective. You can read the article here.

Wednesday, March 16, 2011

EJB 3 In Action, 2nd Edition

The second edition of EJB 3 In Action was announced recently. Ryan Cuprak joined as a new author of the book. Ryan and Reza are doing most of the work on the book. We have made a lot of changes in the content to include EJB 3.1 and other Java EE features such as CDI.
Here is the table of contents for the book:

Part I: Overview of the EJB landscape
1. What's what in EJB 3.1
2. A first taste of EJB 3

Part II: Working with EJB 3 components
3. Building business logic with session beans
4. Messaging and message-driven beans
5. EJB runtime context, dependency injection, and aspect oriented programming
6. Transactions and security
7. Scheduling and timers in EJB
8. Exposing EJBs as SOAP and REST web services

Part III: Using EJB 3 with JPA and CDI
9. JPA entities
10. Managing entities
11. Using CDI with EJB 3

Part IV: Putting EJB 3 into action
12. Packaging EJB 3 applications
13. EJB 3 testing
14. Designing EJB-based systems
15. EJB performance and scalability
16. EJB 3, Seam, and Spring
17. The future of EJB 3

Appendices
A. RMI primer
B. Migrating from EJB 2.1 to EJB 3
C. Annotations reference
D. Deployment descriptors reference
E. Installing and configuring the Java EE 6 SDK
F. EJB 3 developer certification exam
G. EJB 3 tools support

The book is available on Manning Early Release Program. You can join MEAP and help improve the program

Monday, November 08, 2010

Webinar: Event Processing for Java Developers

I'll be speaking at a webinar Event Processing for Java Developers arranged by Starview Technology, Inc tomorrow (Nov 9) at 10am PST. Register here.

Thursday, November 04, 2010

Introducing an Event Server Platform

After working for about seven years shaping and evangelizing for a Java Application Server platform and J2EE, I decided to move on. For the last year or so I’ve been spending my energy shaping up the next-generation middleware platform for building, deploying, and managing event-processing applications.

Most vendors have focused on providing limited functionality such as windowing, filtering, and pattern matching, often known as Complex Event Processing (CEP).These vendors have also been targeting limited use cases in the Financial Services sector. As CEP did not take off, many vendors have buried their offerings inside their SOA and BPM solutions. However, I think event processing is pervasive inside all businesses. Whenever you tweet or send a text/sms it generates an event. Whenever you plug in your electric vehicle to the grid, whenever you have a power outage, or whenever a machine breaks down in a factory – events are generated. A smart business needs to analyze and exploit these messages to make the right decision to take the right decision at the right time. Many of the new generation of applications are being built using an event-driven paradigm and need a new generation of middleware platform named an Event Server Platform. In this article, I will introduce an event server platform.

What is an Event Server?

Why do you use an application server? Because you do not want to reinvent the wheel and take advantage of several services the application server provides to quickly build your application. An event server provides similar functionality for users to rapidly build and deploy event-processing applications – optimized for event processing. I will discuss why traditional application servers are not suitable for event processing in a future article. One of the key points here is that traditional application servers are optimized for request-response applications and not for event processing.

In all practical senses an event server is an application server optimized for event processing applications. Let us look at an example architecture. The following figure shows the architecture for the Starview Event Server that is built on OSGi:

You have to build an application before you deploy it to an event server. So you need tools and languages to build an application.

Development Tool

You will need to build, test, and debug your event-driven application and hence you will need an IDE. Here is an example of Starview ACE that uses a model-driven approach to build an event-driven application. Starview ACE is an Eclipse plug-in and application models are based on the Eclipse Model Framework:

Connectivity Adapters

You will need to capture an event stream at its source and in-bound adapters provide this connectivity. The event source can be a messaging system, SNMP traps, socket reader, log files, database updates, and so on. An event server provides out–of-the-box adapters to simplify reading event sources without much programming. The adapters also generate outbound events or integrate with third-party systems and resources for correlating events.

Programming Language aka Event Processing Language

In order to process the events you need an Event Processing Language. The CEP vendors often refer to Stream SQL as their EPL. However, as you know SQL is quite limiting in nature and you will need the full semantics of a programming language built for event processing that provides fast and efficient in-memory structures to represent complex data types, andin-stream processing and analytics. The Event Processing Language must provide the ability to maintain state and support the concept of an event-processing agent for implementing complex event-processing rules.

Also, you do not want your event-processing rules to be static in nature: you want to enable your business users to author rules. Hence the programming language must provide a foundation to develop Domain-Specific Languages.

Here is a typical architecture for such an Event Processing Language:

This diagram shows the architecture for the Star language.

You may ask, “where is Java in this equation?” The event servers must integrate with existing Java applications, and provide the ability to build applications using Java. You have to remember, though, that Java has its limits and you have to explore the capabilities provided by Event Processing Languages.

Distributed Application

Many of the event processing applications are distributed in nature and require event processing at the edge. These are prevalent in many use cases such as Quality of Service, Smart Grid optimization, and manufacturing automation, where you want to process events locally and filter out unnecessary events at the edge. The event server platform must provide mechanisms to deploy a lightweight version of the event server at the edge and collaborate with a centralized event server without requiring hundreds of lines of code!

Management Infrastructure

You need a good management infrastructure for managing your event servers and applications. This becomes challenging when applications are distributed in nature. The management infrastructure should provide the ability to deploy, manage, and monitor applications, event servers, and server groups. And the infrastructure must be built using an event-driven paradigm.

The following screen shot shows the management console for Starview Enterprise Hub that provides such a management infrastructure:


These are the basics of an Event Server Platform. You will several advanced features such as high-availability, caching, etc.

We will discuss some of these topics in detail in future blog entries.

Bye!
References and Suggested Reading