Phillip,
What alternative do you offer for situations in which the name of the service must be derived or determined programmatically? I’m sure you’re not suggesting that every service name must be hardcoded into the Flow or that the only good option is to use BRANCH statements to reach static INVOKE statements.
An example to consider. The default SOAP processor is very limited in functionality and in its ability to determine the name of a service to invoke based upon the qualified name (QName) of the first element inside the body of the SOAP request. In IS releases up to and including 6.5, adding the ability to perform basic soap message pre-processing to support WS-* standards requires creation of a custom soap processor.
The custom processor has to do some work and then invoke the appropriate service. If you are happy to always use the lookup the service name based only on the namespace name and local name populated in the service’s universal name properties then you don’t need any external repository. However, if you need a more sophisticated algorithm to determine the service name, then the basic universal name registry won’t suffice and its quite possible that the rules for deriving the service name will require some type of external configuration store (file, database table, metadata repository, etc.).
Another example, in some scenarios certain service consumers must be authenticated using LDAP while other consumers require use of a service that calls back to the sender and still other consumers can be authenticated using only basic username and password. Consumers may migrate from one authentication approach to another as they adopt the enterprise’s identity management approach.
The rules to determine which authentication routine to use are configured externally as are the names of the services which perform each type of authentication. A common specification is used to ensure consistency across these pluggable authentication services. Could this be done without using a dynamically derived service name, probably, but not nearly so elegantly and at the cost of much more expensive ongoing maintenance.
I would agree that access control needs to be maintained over any configuration files or repositories that contain service names, but this is nothing new. After all, many have been stuffing login credentials and URL’s into config files for years to avoid hardcoding them.
Mark
#Integration-Server-and-ESB#webMethods#Flow-and-Java-services