Patterns of Store-oriented Software Ecosystems: Detection, Classification, and Analysis of Design Options - Jazayeri, Bahar; Zimmermann, Olaf; Küster, Jochen; Engels, Gregor; Szopinski, Daniel; Kundisch, Dennis (The Latin American Conference on Pattern Languages of Programs (SLPLoP))
Software companies nowadays create ecosystems of users and third-party providers around their platforms. They often provide online stores so that the third-party developments can be exposed to users directly. The resulting ecosystems differ significantly from each other in their architectural designs because their providers differ in terms of business goals and contexts. Until now, this architectural diversity and rationale behind it are not well-understood. Therefore, it is not clear which software features contribute to ecosystem’s success with respect to certain business goals and context. This hinders systematic creation of ecosystems in the future. Thus, decision-making becomes too risky; for future ecosystem providers, which may lead to creation of inefficient ecosystems that lack critical features, and for third-party providers to rely on ad-hoc choices while deciding on suitability of an ecosystem for their future career. In this paper, we introduce three design patterns for store- oriented software ecosystems by classifying the design decisions, business goals, and context of 111 store-oriented software ecosystems. Each design pattern provides an architectural solution to achieve a different business goal while supporting a different context. We discuss how the design patterns are applied together in order to achieve more business goals. Our work supports ecosystem and third-party providers by sharing practice-proven architectural solutions, helping them to take informed architectural decisions and reduce technical risks.