Decomposed architecture

Hi,
Is there any possibility to decompose logically/ physically an * architecture? I mean to have possibility to run a separate application as Media Server, Media Gateway, Signalling Gateway, Switch core, Application server etc?

Is there any internal protocol which is used to comunicate between modules/menagers? Or maybe communication betwee each module is made of functions calls?

I found a few descriptions of * architecture but it doesn’t seem to be what I’m looking for.
Ex. http://www.vlug.org/vlug/meetings/presentations/VLUG-Telephony.pdf

I have also read an * criticism in Wikipedia where * is described as a monolitic piece of software.

Regards,