Software Agents: Characteristics and Classification