there would be a particular reason for making it?Yes.
i want the reason.That's nice. So do I actually. It has something to do with the Repository. All I know about it is what it says in the Javadoc and the tutorial.
As per my knowledge the thing is in java remote invocation we need have to use this narrow conceptNo. Only in RMI/IIOP. You don't have to use it at all if you are using RMI/JRMP, the default protocol. In fact you can't use it, it will fail.
there might be the situations where the java implementation code use this rmi but the internal implementation (underlying) of the application is corbaYes, that's the RMI/IIOP case.
i.e following the IIOP protocol inorder to have portability between the rmi and IIOP protocol we use this concept.No we don't. We only use it in the RMI/IIOP case.
I am not that sure is the above one is 100% trueIt is 100% untrue.
the thing i am saying is i got the reference without using narrow as well as without narrow()No, you haven't been saying that at all. Now that you have said it ...
If the Ejb uses RMI\IIOP protocol it should give error if i dont use the narrow().Well evidently it doesn't, so I was wrong in saying that it did. However as all the documentation I have ever seen says you do have to use it, use it.