SMI++ object oriented framework for designing and implementing distributed control systems. In the SMI++ framework, the real world is viewed as a collection of objects behaving as finite state machines. These objects can represent real entities, such as hardware devices or software tasks, or they can represent abstract subsystems. A special language (SML) is provided for the object description, The SML description is then interpreted by a Logic Engine (coded in C++) to drive the Control System SMI++ objects can run in a variety of platforms all communication being handled transparently by an underlying communication system-DIM. This framework has been used by the DELPHI experiment at CERN for the experiment control. A significantly upgraded version is now being used by BaBar experiment at SLAC.