Architecting Enterprise Solutions: Patterns for High-Capability Internet-based Systems