Distributed Refreshable Objects (DRO) is a software library for Java developers enhancing inter-object communication in local as well as distributed environments, which can be considered as more effective and flexible alternative to CORBA and other distributed-object infrastructures. DRO helps solve the following problems: Tuning efficiency of distributed application code Maintaining the viability of applications in the face of change The obsolescence of cached data Central server bottleneck The key features are: Effective network data interchange Caching resource-intensive calculated properties without stale data Change tracking for object properties Informative network packets debugging No any messaging server needed Wide possibility to optimize network traffic ? bunch of iterator elements is transmitted at a time A refreshable object provides change tracking for object properties, proper as well as calculated from other objects? properties, and it provides caching resource-intensive calculated properties without stale data. All this is done transparently for programmers. The distributed object intercommunication layer provides much more effective network data interchange since several remote calls are collected and sent as one package. This functionality is supported in distributed environment with no any messaging server, peer-to-peer connections are organized instead, which gives very high scalability. All distributed objects in DRO are cached on client side, so repeated use of object properties does not result in network exchange. However, when a server object is modified, all its cached client copies become updated; no stale data are possible. In sum, DRO gives means to create distributed as well as local applications with high flexibility and efficiency. No code structure modification is necessary to add resource-intensive calculated property caching, and to migrate an application into distributed environment efficiently.