Software agents are the latest advance in the trend toward smaller, modular pieces of code, where each module performs a well-defined, focused task or set of tasks. Programmed to interact with and provide services to other agents, including humans, software agents act autonomously with prescribed backgrounds, beliefs and operations. Systems of agents can access and manipulate heterogeneously stored data such as that found on the Internet.