Design pattern as a service for service-oriented systems
University of New Brunswick
Software systems nowadays face many more challenges than ever before due to the intrinsic high complexity of systems and increasing demands from organizations. While patterns enable reuse of abstract design and architectural knowledge, abstractions documented as patterns do not directly yield reusable code. Software design patterns in particular are essential building blocks for almost any software system. In an effort to enable the use and reuse of implemented software design patterns, we propose a methodology to implement software design patterns as pattern services to make building pattern-based software applications considerably easier and faster. We describe the conceptual architecture and steps of the proposed methodology, and then we explain the implementation stages of a pattern as a service. After that, we demonstrate how the proposed methodology can be applied to Service-Oriented Architecture (SOA) patterns. To create a platform for managing pattern services, we design a Pattern as a Service (PaaS) system that functions as the platform for developing, storing, integrating, deploying, and managing pattern services and pattern-based applications. Furthermore, we describe a prototypical implementation of the PaaS system and the implementation of two case study applications, namely, an Online Discussion Group (ODG) and Online Stock Market Ticker (OSMT) that make use of the Observer pattern service and use the prototypical PaaS system as their platform. Then we perform some evaluation procedures on the proposed methodology both analytically and experimentally, and we give some concrete test results. Finally, we attach an appendix to this thesis in which we apply the methodology to the 23 design patterns introduced by Gamma et al. (1995). In it, we describe the important contents of each resulting pattern service.