Program modules that are designed to interoperate with each other at runtime. Components can be large or small. They can be written by different programmers using different development environments and they may or may not be platform independent. Components can be run in stand-alone machines, on a LAN, intranet or the Internet. Components and Objects The terms "component" and "object" are often used synonymously. Component architectures have risen out of object-oriented technologies, and the degree to which they comply to all the rules of object technology is often debated. However, a component software platform typically includes a "container" architecture that provides a runtime engine with a set of a common services that all components use. The services include common interfaces to functions such as security, transactions and database connectivity. See Java EE, .NET Framework, COM, CORBA and object-oriented programming.