Software Agents, Agent Systems and their Applications