Tuesday, March 9, 2010 09:38 PM
Let me try to answer based on my interpretation.
Application servers is a generic term we used to house our application "inside". It need not be EJB. It could well be a CORBA container where we house our CORBA-aware application "inside" which I view it as application servers also.
As the word EJB - Enterprise JavaBeans implies, the application server is in Java and our EJB-aware Java applications reside "inside" it.
Usually for such design, our main program don't have a main method so as to speak. Our program are managed by the application server and that includes the startup shutdown passivate activate etc signal are sent from the application server to our programs. There are rules we must follow of cuz so our programs can be managed by the application server.
The recent new kid in town would have to be OSGi which I view it to be similar in spirit to EJB and CORBA servers. The main difference is OSGi has simplified a lot of things for us.
The only down-side I find is very often we need to have a application server up and running before we can test our applications as compared to command line program testing which is so much simpler.
And yes I have gone through the path of CORBA -> EJB -> OSGi and like it or not I still prefer the traditional command line program best. The C program "Hello World" by K&R is my very first program I :)