the right abstractions is important for managing the complexity of your system. Three t abstractions used today are object, component and agent. Many similarities exist these abstractions, but to make proper use of each, one should have a good understanding of their differences. Too often, we hear people discussing their agent-based when they have simply used the object abstraction. In this conceptual paper, we use ation as a means to differentiate the three abstractions. We describe communications for each abstraction using an abbreviated pattern format, identifying the contexts, nd solutions to different problems that present themselves for each abstraction. Our e is to help developers identify the abstractions they are working with so they can make better use of them.