An Aspect-Oriented Framework for Weaving Crosscutting Concerns in Inter-Process Communications