So... Consider service S that has two modes of operation. 1. Clients can access its functionality as usual and gets back the result. 2. It takes part in a process as follows: - takes appropriate entries from a space - calls its own public method as in 1. - calls another service (D) with the result
I guess it tries to accomplish too much, so steps in 2 should be a separate "coordinating" service's (CS) job. This was my idea at first version: service A calls S, then with the results calls D. However A has already enough duty (can be quite engaged with them) and as other processing needs may arise in the future, I do not want to keep them within A. Hence the plan is A places info into JavaSpace for further processing by either S or CS. So instead of A-S-D(from A) now I have either A-JS-S-D, or A-JS-CS-S-D(from CS) chain of process. Pros: CS can really be a coordinator among many processing steps by ordering them and knowing when to finish, cleaner responsibilities Cons: more complex, more places for possible errors I would like to know how you think about the above scenarios. Thanks! Zsolt
