coldfusion computer science hollywood principle inversion of control mach-ii observer pattern software architecture