In this paper we propose a new architecture for grid computing service which allows grid users to do any kind of computation that needs any type of hardware or software resource, with limited resources at the user side. The proposed grid computing service takes into account both hardware and sofware requierements of the submitted computing task. On other hand our grid system needs to maximize the overall system throughput, minimize the user responce time, and allow good grid resources utilization. On this aspect we propose a scheduling algorithm which allows task allocation and an adaptive load balance operations to achieve the desired goals. We have conducted some experiments which confirm the good quality of our proposed load balancing algorithm.