Ensuring Interoperable Service-oriented Systems through Engineered Self-Healing