This paper introduces a new programming model for distributed systems, distributed composite objects (DCOs), to meet efficient implementation, transparency and performance demands of distributed applications with cooperating users connected through the Internet. The DCO model incorporates two basic concepts. The first is composition, by which an object is partitioned into sub-objects that together constitute a single composite object. The second is replication, which extends the object concept to the distributed environment. The DCO model allows the representation of an object as a collection of sub-objects and enhances the object distribution concept by implementing replication at the sub-object level and only when demanded. DCOBE, a DCO-based programming environment, conceals implementation details of the DCO model behind its interface and provides basic mechanisms for object composition, distribution and replication of object state, consistency management, concurrency control and dynamic deployment of restructured objects. It facilitates the design of distributed applications, significantly reducing the overall time for development by taking care of distributed system issues. DCOBE, being implemented on JVM, provides an environment that works on heterogeneous platforms. A distributed application is developed using the Java language in a centralized manner and is then made available on the Internet. The Objects are dynamically deployed to requesting client nodes. This allows users to deal with various environments that exist in a wide area network and to separate applications from the implementation of shared objects.