Monday, July 28, 2008

To the next step....

Not often does one experience something as enigmatic - a moment when time comes to a standstill, when the mind and soul break free and transcend into the vast expanse of eternal bliss; a time when words lose their meaning, a time when you want to say so much and yet words fail you. Today is such an occasion for us (Anil, Lalit, Chatty, Patidar, Neeraj and me). We have been waiting for this day since a time that seems so distant like the start of our lives.

Two years back, on the same day, we embarked on a journey – one that would decide our career, and the course that our lives would eventually take afterwards. We joined the L&T family. With an organization that is undoubtedly at the pinnacle of India’s manufacturing industry, we thought God could not have been more benevolent to us. And we were right. In retrospect, we have reasons to believe that two years of our lives were indeed well spent.

It has been a terrific journey so far – one with so many interesting twists and turns. There were moments of glory as there were instances of regret. But the important thing is we enjoyed every bit of it. The myriad birthday parties with our proprietary “cake-painting” on the birthday boy’s face, the incredibly funny stories we cooked up to cover Lalit’s recurring absences, Patidar’s on-the-spot one-liners that would dumbstruck everyone to the hilt, and our endless discussions about one novel person named “NM” – life was an ice-cream of many flavors. Everything was not rosy though, and one thing that always played spoilt-sport was one lousy “Pipeline” - one that contained all the projects in the world (strangely the pipeline was one of a kind and only L&T had access to it). We used to stare into it with expectant eyes hoping something to come out of it, and more often than not, it disappointed. Thus there was a perennial drought in the river which is more often referred to in corporate terms as “Projects”. Nevertheless, we never cared. Lalit, who is undoubtedly the Einstein in JAVA, got busy creating something that would allow us to access sites which our proxy server would never allow (of course, it was an initiative that he took to get round the problem of not being able to view Vidya Balan’s and Katrina Kaif’s wallpapers - sorry Lalit, I have let your secret out). Chatty on the other hand, hardly gave a damn - he made the telephone his best friend, and whenever he got bored with it he had the gymnasium to fall back to. And Anil, well, he made it a point to ask the office boy for a new notebook - every single day. He scribbled and scribbled untill the notebooks were teeming with motley technical jargons. The days wore on and turned into months and months into years but his collection of notebooks never stopped growing. I was the one entrusted with the most daunting task among all – deal with the one called “NM”.

Like I said, we had our share of joys and sorrows and we have embraced them with dignity, élan and poise. Another milestone, and perhaps the most important one, is that the 2 year bond that we signed prior to joining the organization stands invalid today. This in itself is a culmination of our long cherished desire to be free, to be able to exercise our own will, to know that we matter and more importantly the legitimization of our right to choose what is best for us. The journey will continue, and so will we. May be, we will part ways, each taking a different route. But whatever we do, wherever we go, there will always be something which will symbolize our connection and togetherness - the fact that we all started from the same point.

Time to raise a toast, fellas…



From left: Chatty, Anil, Lalit and me....


Dil Chahta Hai, Kabhi Na Beete Chamkeele Din
Dil Chahta Hai, Hum Na Rahein Kabhi Yaaron Ke Bin
Din Din Bhar Ho Pyaari Baatein
Jhoome Shaame, Gaaye Raatein
Masti Mein Rahe Dooba Dooba Hameshaa Samaa
Humko Raahon Mein Yoonhi Milti Rahein Khushiyaan

Dil Chahta Hai.........

Wednesday, July 23, 2008

AIA Foundation Pack

What is the buzz?
AIA(Application Integration Architecture) Foundation Pack is a set of prebuilt enterprise objects and services coupled with a robust integration management infrastructure intended to expedite the development of integration solutions. Further, by adopting salient and time-tested best practises and industry standards, your entire portfolio of IT services can be integrated within the perview of changes and new requirements therey lending flexibility and adaptability to your business.

Components of the AIA Foundation Pack
The pack comprises of the following:
  • Enterprise Business Objects
  • Enterprise Business Services
  • SOA Governance Tools
  • Reference Architecture

Enterprise Business Objects

A Business object is a data model representing any recognizable business entity like customer, purchase order etc. It containts all the meta data and definitions pertaining to an entity in the form of XSDs.

Enterprise Business Services

Enterprise business services are implementation of a certain business task that have been exposed as web services so that they can be readily consumed over the internet by consumers. Usually your integrated environment will have a pool of enterprise business services with BPEL orchestrating the interaction patteren among them

SOA Governance

To ensure an end to end management of your integration solution, the Foundation Pack comes with a set of tools.

  • Business Service Repository: This is a directory that lists all the services and objects avaialable in your IT ecosystem.
  • Composite Application Validation System: This tool enables you to test your business process independent of the partner process. By providing an environment that simulates the real business scenario, you can do an end to end testing of the services you create
  • Composite Application Error Management and Resolution: It provides an enhanced error management and resolution facility where errors are routed to the intended recepients so that corrective measures can be taken. The result is low downtime.

Reference Architecture

To enable and assist developers there are two guides available that provides a step by step approach to build your custom solutions using AIA.

Tuesday, July 22, 2008

Email workaround - when sending multiple attachments the email body is also sent as attachement

This is a very common problem that developers face. When you check the multipart checkbox in the email activity in JDeveloper, it generates background code which by default sets even the email body as an attachment. Thus, instead of the email message appearing in the body, it appears as an attachment. Here is how to get around this problem.

Once you have dragged an email activity onto the designer and set the number of attachments, click the source tab in JDeveloper. Scroll down untill you find the following.

Delete the highlighted portion completely. Save the project and deploy. That is all.


Optimizing your BPEL process - inserting multiple records into a database in one go.

Oftentimes you may want to insert multiple rows of records into a database in one single call instead of calling the database adapter multiple times (one call for inserting one row). This is the recommended way as it entails significant performance boost. Unfortunately the BPEL PM does not have an out of box functionality to implement this. But there is a workaround. It involves some tweaking at the database level which is not very difficult as I am going to show.

Assume you have the following file whose data you need to insert into the database. Your first step will be to create a file adapter to read this file which is relatively simple.

The next step is to create a database type whose structure is equivalent to the structure of the records in the file. More specifically, the fields of the record (name,age,superior) are reflected in the fields of the type. Here is how you got to do it.

CREATE OR REPLACE type file_record as object(name varchar2(20), age number, superior varchar2(20));

Then you need to create a nested table for the above type.

CREATE OR REPLACE file_record_tbl as table of file_record;

Now, you need to have a procedure in place for inserting data into the database. This procedure takes file_record_tbl as input parameter (unlike one that takes simple data types as input). Inside the procedure you can use this file_record_tbl to insert data for inserting data.
...
create or replace procedure insert_data(p_file_record_tbl in file_record_tbl) as
begin
FOR x IN 1 .. p_file_record_tbl.COUNT
loop
insert into <table_name> values
(
p_file_record_tbl.name,
p_file_record_tbl.age,
p_file_record_tbl.superior
);
end loop;
end insert_data;
...

Now all you need to do is create a database adapter and call this procedure from JDeveloper. Also, use a Transform activity to populate this type with the data from the file. That is all.