A portable, platform-independent, reusable component model that conforms to specification defining how Java objects interact.