Hi Craig,
The short answer is no. Unless you are talking about simply locking things down with ACLs but I have a feeling that’s not where you are going with this. I think you are on the right track with your thinking. I have certainly seen a fair share of spaghetti webMethods IS implementations.
I agree with you about flow services calling other flow services outside of specific domain, that is the road to spaghetti. Care has to be taken in the design patterns you use and the granularity of your flow services and also the packages that reside in.
As a general rule for me (you will probably get a lot different opinions on this), the less a flow service does the better. The less a package does the better. Interaction with those services, that is interaction that crosses the package boundary should be done via either a messaging construct or a services construct and if designed properly both.
You know from your SOA background that finer grain services are easier to compose into higher level composite services and also orchestrate for business processes. They promote reuse and agility. The more a service does the less of that you are going to get. All of that same thought applies to designing services in webMethods IS land.
Unfortunately for you webMethods IS flow implementation makes it extremely easy for developers to wire up the flows and create a real mess. That’s where your patterns and the establishment of design and code reviews comes in. I think they are an absolute must. This part of your governance process and if done correctly will prevent anonymous service usage.
I guess you could also look at programatic solutions using things like ws-policy(although I don’t think IS supports that) but I personally am not a big fan of that concept. The more complex your service contract becomes the more reuse and agility go down in my opinion.
my two cents
#webMethods-Architecture#Integration-Server-and-ESB#webMethods#webMethods-General