Hi,
I would lean towards A.
A is correct.
Scalability means application can deal with more and more users by changing the hardware configuration rather than the application itself.Typically, this means that it's partitioned into pieces that can run on seperate servers.Most 2-tier applications have database and business logic coupled in one tier.Since they are based on different usage patterns (and require different server requirements), they can be treated as independent pieces, only by going from 2-tier to 3-tier.This ensures better scalability.Similarly, you can identify more such pieces which can run seperately; this leads to 3-tier+ architecture.
Hence,
Two tier software architectures do not scale to as many clients as three+ tier architectures. B is incorrect.
Two-tier architecture would mean higher coupling between 2 diferent processes - say Business logic and the data in the DB itself.Three-tier+ architecture is based on low coupling.You reduce the interaction between different software layers of your framework.This ensures more lower coupling and more reuse.
Hence
Three+ tier architectures lead to more reuse than two tier architectures. C is incorrect.
The Enterprise
Java Technologies (
EJB's) is aimed to take the bulk of processing on itself.This means EJB are coarse-grained or thick server-side components.This also ensures fine-grained or thin clients.The thin clients could be a GUI application like a Swing Applet or Application.It may also be a Servlet or a
JSP, which renders HTML back to the client.JSP/Servlets are "server-side" thin clients to "coarse-grained" EJB's.
Hence
Thin clients are not restricted to GUI parts D is incorrect.
If you consider any of the technologies mentioned, the Container is responsible for handling the access to the business object to the client.
In the case of EJB, the client may do a lookup on the HomeObject in this manner:
A lookup done many number of times gives the same HomeObject reference(Probably because it is based on Singleton Pattern).But this is not a business object.The Business Object in EJB is EJBObject, which may not be same, if the create() method on the HomeObject is invoked many number of times.
Hence
Technologies such as CORBA, RMI, DCOM, and Servlets may not allow multiple clients to work with the same server-based business objects. Hope this helps,
-- Sandeep
[This message has been edited by Desai Sandeep (edited May 16, 2001).]