Observer a.k.a callback is registered at Observable.
It is used for informing e.g. about events that happened at some point of time. It is widely used in Swing, Ajax, GWT for dispatching operations on e.g. UI events (button clicks, textfields changed etc).
In Swing you find methods like addXXXListener(Listener l), in GWT you have (Async)callbacks.
As list of observers is dynamic, observers can register and unregister during runtime. It is also a good way do decouple observable from observers, as interfaces are used.