Saturday, May 17, 2008

Technical Articles - 1

I have been working in IT industry for almost 3 years. I did my graduation in Electrical and Electronics Engineering. Of the 45 + papers that I had in my under graduation, only 3 papers were related to IT. They are Programming in C & UNIX (No practical or lab classes. Only theory classes), Object Oriented Programming (No practical or lab classes. Only theory classes) and Software Engineering. And during my college days the only paper that I failed to pass at the first attempt is Object Oriented Programming. Failing in a paper doesn’t mean that I don’t have any knowledge about that paper. I have written the exam well and I don’t know why I couldn’t clear. After a short stint in construction industry I joined the IT industry.



I started my IT carrier with a startup organization. The advantage working in startup organization is we had the chance to work on several emerging technologies. Often my boss would insist us to learn/practice some new technology. At times, what he speaks would be like a Greek and Latin to me. And my boss, when talking to us, he often use the words SOAP, Ajax, Web services, SOA, XML, DXL XSLT, Web2.0 etc. In free time I will search in Google / wikipedia for the terms that my boss used. If I search for some terms, it will lead me to some other term. If I search for the other term it will lead to some other term. It will be an infinite loop. It took several days for me to understand what each term means. How can we use it in our day to day programming.



For guys like me, without the basic functional knowledge, I would like to share what I know. The basics of computer, Internet and some other programming practices. I cannot assure that what ever I write is correct. It’s just my understanding. Since I work mostly on collaboration and internet technologies, most of the articles will be related to that. In this post I will write some thing about Distributed Computing and Interfaces.



1. Distributed Computing:
A software/hardware architecture where more than 1 computer is involved in completion of a task.
Let’s have a simple example:
A food processing company has a DB2 database to store the stock details. And a Lotus notes application to handle the order. When there is new order, the lotus notes application needs to check the DB2 for the available stocks and process the order. So we have 2 different systems, interacting with each other and complete the task. This is called distributed computing



2. Interface :
Interface is hardware/software component which is used to connect to 2 or more computers.
Let’s consider the previous case.
Lotus notes and Db2 needs to work in sync for successful completion of the task. As Lotus notes and DB2 has different architecture they cannot be directly connected. Instead we need a middle man who takes the responsibility of connecting the different system. The middle man understands the query from the lotus notes application and translates it into such a manner that the DB2 can understand. And vice versa. The middle man is considered as the interface. In our case we used Lotus Enterprise Integrator (LEI) as the middle man (Interface)
I hope the above is clear.