Sunday, October 14, 2012

Configurable settings and endpoint replacements

There are multiple approaches to define configuration settings for the composite which can be changed at run time.

Configuration Settings

DVM
Pros
  • Stored in MDS
  • Changes are independent of deployment
  • Nice UI for update
Cons
  • Hard to modularize per Composite
  • If managed via both UI and SVN, it can quickly can get out of sync in multiple environment.
  • Not too sure about what level of caching is done


DB Lookup (may be with custom XSL)
  • Probably a bit more overhead vs having things in memory


AIA Configuration Properties (More info: http://chintanblog.blogspot.com/2012/10/aia-configuration-and-dynamic.html)
 Pros
  • MDS stored
  • Changes are independent of deployment
  • Different level of modularization - System/System Module/Service
Cons
  • No UI to make changes - hopefully in future release


Preference along with config plan (More info: http://chintanblog.blogspot.com/2012/06/bpel-preference-11g.html)
Pros
  • Run time changes via Mbean browser and changes can withstand server restart
Cons
  • Modularization is not flexible (e.g. two composite cannot share same property)
  • Changes via MBean are still temporary. Deployment will overwrite changes from composite (or config plan).
  • Have to keep config plan in sync with UI changes

Code migration and reference to end point URL
Custom search/replacement
Pros
  • Much better control, as it is raw search and replace
Cons
  • Custom scripting
  • Unless it is highly sophisticated, search term has to be known in advance


Configuration Plan
Pros
  • OOTB, and it is xpath based replace so no need for search term
Cons
  • have to manage one per env
  • If composite is constantly changing, it is really hard to manage multiple plans
  • No support for runtime URL change


Dynamic Partnerlink Lookup (DPL) - using AIAConfig (More info : link)
Pros

  • Centralized config for all end points (and preference) - better governance
  • OOTB functions for lookup and merge during deployment
  • Just one MDS stored file
Cons
  • Changes requires MDS update via script and reloading via AIA console
  • No UI to make changes - hopefully in future release
  • Only supported in AIA, if not AIA, need to have custom XSL function to support same functionality


Oracle Service Registry (OSR)
  • It's dead, man, get over with it.

No comments: