IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only
  • 1.  'Private' services

    Posted 09/30/08 06:18 PM

    Most languages have a ‘private’ keyword, or other mechanisms to prevent procedures/methods/subroutines/functions from being called if they’re designed to be used only from within certain places.

    Example:

    • dangerousService - might cause damage
    • checkedDangerousService - does some checks, then invokes dangerousService

    It would be nice to be able to restrict access to dangerousService from all services except checkedDangerousService.

    That’s a frivolous example. More reasonably, this kind of control maintains architectural tiers.

    Does WM provide a way to enforce this?

    If not, what conventions do you use to prevent yourself or others calling a service you should not?


    #webMethods
    #Flow-and-Java-services
    #Integration-Server-and-ESB


  • 2.  RE: 'Private' services



  • 3.  RE: 'Private' services

    Posted 09/30/08 07:21 PM

    Aren’t ACLs to protect services based on the calling userid not the calling service?

    Or is there a feature of ACLs I’ve missed… or a way to fake one using the other?


    #Integration-Server-and-ESB
    #Flow-and-Java-services
    #webMethods


  • 4.  RE: 'Private' services

    Posted 09/30/08 08:11 PM

    ACLs are userID based.

    I typically put “dangerous” services in a folder called useWithCaution, so that it shows up as part of the namespace. Doesn’t actually stop anyone from calling the service, but does tend to make other developers think before using in their service.

    If you were willing to do some coding… If dangerousService was a Java service, you could use Service.getCallingService to verify it was being called by an “authorized” parent (perhaps from a list of authorized parents). If it was a Flow, you could use use the PSUtilities equivalent (misc:getServiceName, I think).

    However, this does require coding. I am not aware of any configuration mechanism for achieving what you want.


    #Integration-Server-and-ESB
    #Flow-and-Java-services
    #webMethods


  • 5.  RE: 'Private' services

    Posted 09/30/08 09:02 PM

    code reviews as part of your overall governance process which I strongly recommend.


    #Flow-and-Java-services
    #Integration-Server-and-ESB
    #webMethods


  • 6.  RE: 'Private' services

    Posted 09/30/08 11:07 PM

    You’re right. I’m not aware of a way to restrict the calling service.


    #Integration-Server-and-ESB
    #webMethods
    #Flow-and-Java-services