I picked up the same question from ePractice i think while i was preparing for Part 1. The answer was incorrect.
'D' is clearly incorrect as Stored Procedures and DAO's do not have remoting capabilities on their own. You will need to build wrapper API's to make the functions available remotely.
Your answer 'C' is incorrect too.When you think of
EJB,
you should also think of the objectives for which it is designed. Remote accessiblity is just one of the features it provides and should not be the sole criterion for your answer. In the context of this question, the application does not need any transactional behavior as it just has to
read volumes of statistical data. This should drive you away from choosing an EJB in this context if an alternate option is available.
So, now check if there is another option available which could service remote clients. Yes, the option is 'A'. It meets all the criteria of the context.By experience you will know that since servlets are stateless, they are designed to handle a higher throughput.An EJB although stateless, will have a higher container service footprint.
So, a servlet over Http is the best option.