An investigation of component-based approaches for software reuse is described. In the days when computer architecture was simpler and systems were developed by procedural languages or other paradigms, it was common that the functionality available within one system was also present in another system. However, these paradigms are not appropriate for surfacing components for developing distributed applications as defined by today's business requirements, and do not facilitate software reuse. It is envisaged that software reuse can be achieved through component-based development. The article discusses the characteristics of components and provides a brief study of the component systems of COM/DCOM, CORBA and Java RMI. An example is presented using Java RMI and develops keyboard functionality for the Web-aware version that matches the original 'green screen' application.