Integrating Distributed Component and Mobile Agents Programming Models in Grid Computing