Hello,
You do not have to have as many nodes as there are jobs at any given time. When all nodes are busy, the server's queuing mechanism ensures that unexecuted jobs are preserved until a node becomes available. Similar queuing occurs in the client as well, since the maximum number of jobs that can be submitted to a server is determined by the number of connections in a
connection pool.
The one-job-per-node model (or one job per connection in the client) is a design choice which significantly simplifies the communication model, makes the grid more robust and less prone to crashes, allows better control of the resources usage , enables load-balancing which adapts to the workload, etc. The benefits are too important to abandon them now.
I'll be happy to provide suggestions on how the performance or topology can be optimized, however I'd need little more information. In particular, it is not clear to me what you mean by "interface". What does it represent in terms of JPPF jobs and tasks? How many tasks do your jobs have? Remember that the granularity of jobs and tasks is a critical factor for performance, and it should be given some consideration at design time when building a distributed application.
Thanks for your time,
-Laurent