I am a new bee learning EJB. Going through Head First Ejb. I could not understand, why the client code should always know whether it is accessing a local bean or a remote bean. Why the EJB technology leave this decision to the client at the development level itself? Shouldn't it be at least configured at deployment lever or client should bother nothing at all. I have worked on distributed systems where the client need not be aware of the service provider location for any reason. I may be missing some thing. Could some one explain or provide any links.
Start by doing what is necessary; then do what is possible. Suddenly you are doing the impossible. -St.Francis
There's always a transport aspect of distributed systems ... what do you do when the remote system is unavailable? Etc. There are design patterns you could use to abstract away the locality issue if your application really needed to do that.