Building Distributed Software Systems with the Open Agent Architecture