Software-Ökosysteme: Beobachtungen an der Schnittstelle von
Transcription
Software-Ökosysteme: Beobachtungen an der Schnittstelle von
Software-Ökosysteme: Beobachtungen an der Schnittstelle von Geschäftsmodell und Softwaretechnik Stiftung Universität Hildesheim Prof. Dr. Klaus Schmid [email protected] Software Systems Engineering 3.12.13, SW Ökosysteme Software-Ökosysteme © Prof. Dr. Klaus Schmid 31 Software Systems Engineering Software-Ökosysteme Was ist ein SW Ökosystem? A software ecosystem (SECO) is defined as a set of businesses functioning as a unit and interacting with a shared market for software and services, together with the relationships among them. [Jansen et al. 2009] A software ecosystem consists of a software platform, a set of internal and external developers and a community of domain experts in service to a community of users that compose relevant solution elements to satisfy their needs. [Bosch, Petra Bosch-Sijtsema, 2009] Die Quintessenz: • Viele Parteien • Emergent / Offen • Zusammenarbeit auf dem Markt • Community-orientierung 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 32 Software Systems Engineering Software-Ökosysteme Ökosystem-Kategorien (1) Dimensionen der Kategorisierung: Besitz: verteilt vs. zentralisiert • Verteilt: WIFI standard • Zentralisiert: Apple iOS Apps Möglichkeit der Kontrolle von Regeln • Sehr gering: Internet – es gibt keine Kontrolle verbindlicher Regeln, so lange Interoperabilität sichergestellt wird • Sehr hoch: Apple iOS Apps – verbindliche Regeln, Verstoß führt zum Ausschluss 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 33 Software Systems Engineering Software-Ökosysteme Ökosystem-Kategorien (2) Art der Elemente: Beispiel apple • Medien: Medien im iTunes store • Dienste: iTunes store, app store, shops, etc. • Software: apple iOS apps • Hardware: von apple & Drittherstellern Variabilität: • Reich an Variabilität: Wintel-platform • geringe Variabilität: apple-platform 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 34 Software Systems Engineering Software-Ökosysteme Rolen in einem Ökosystem Nutezr N1 Nutzer N1 Intermediär I1 Intermediär I1 Intermediär I2 Plattform P Platform P2 Platform P3 Plattform P1 Platform P4 Verteilte Plattform (bspw., Standards) 3.12.13, SW Ökosysteme Intermediär I2 © Prof. Dr. Klaus Schmid Zentralisierte Plattform 35 Software Systems Engineering Software-Ökosysteme Motivation: Ökosystem statt Applikation • Plattformperspektive Zusätzliches Einkommen durch Intermediäre und/oder Nutzer Aber: Teilung des Einkommens • Perspektive des Intermediärs - Größere Kundenbasis - Reduktion der Entwicklungskosten Aber: Bindung an Plattform • Nutzerperspektive Zugriff auf eine große Menge von Fähigkeiten (Dienste / Software) Aber: Bindung an Plattform 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 36 Software Systems Engineering 3.12.13, SW Ökosysteme Software-Ökosysteme © Prof. Dr. Klaus Schmid 37 Software Systems Engineering Software-Ökosysteme Beispiel: Facebook Apps Nutzer • Attraktive Plattform • Austausch mit “Freunden” Erfolgreiche Ökosysteme bieten Mehrwert bis hin zum Endnutzer Intermediär • Zugang zu vielen potentiellen Kunden • Sharing Facebook • Erhöhen der Kundenverweildauer • Mehr Zeit für Werbung 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 38 Software Systems Engineering Software-Ökosysteme Beispiel: Das apple iOS ecosystem Create revenue Create prestige of product Create Common Look and Feel App store Prohibit creation of certain apps Business goal Installationcontrol Ecos. requirem. Technical req. 3.12.13, SW Ökosysteme Code signing © Prof. Dr. Klaus Schmid Derive revenue from any app sold Control advertisements Good: single technical measure supports many business goals 39 Software Systems Engineering Software-Ökosysteme Typische Anforderungen für Ökosysteme • Laufzeitumgebung für 3rd-party Komponenten • Installationskontrolle • Look-and-feel • Sicherheit (Security) • Variationsunterstützung 3.12.13, SW Ökosysteme Dies sind architekturrelevante Anforderungen (ARA) © Prof. Dr. Klaus Schmid 310 Software Systems Engineering Software-Ökosysteme Warum ist es wichtig? • Es ist sehr schwierig architekturrelevante Anforderungen später zu ändern: – Aus technischen Gründen – es muss sichergestellt werden, dass alle Ökosystembestandteile diese Anforderungen unterstützen – Aus Gründen der Kundenbeziehung – später hinzugefügte Einschränkungen werden oft nur schwer akzeptiert 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 311 Software Systems Engineering Software-Ökosysteme Ökosysteme als Laufzeitumgebungen Entwurfsentscheidungen • Wie offen sollten die Plattform sein? • Wie viel Variation sollte unterstützt werden? • Welche Integrationsmöglichkeiten soll es geben? • In welcher Weise soll Security unterstützt werden? • Wie hoch soll die Einstiegshürde sein? 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 312 Software Systems Engineering Software-Ökosysteme Ansatz: APIs • Auf der Plattform aufbauende Elemente rufen die APIs auf • Plattform ist sehr offen; geringe Kontrolle über die nutzenden Applikationen • (Web) services sind ein Beispiel (bieten APIs an) Intermediär / Applikation + Leicht verwendbar + Leicht erweiterbar 3.12.13, SW Ökosysteme Plattform - Probleme Sicherheit zu garantieren - Geringer Abstraktionsgrad © Prof. Dr. Klaus Schmid [Taylor 2013] 313 Software Systems Engineering Software-Ökosysteme Ansatz: Language-Interpreter • Eine spezifische Sprache wird bereitgestellt • Kann spezialisierte Abstraktionen bereitstellen Intermediär/ Applikation Script Language Interpreter Component Component Component Component Plattform based on [Taylor 2013] 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 314 Software Systems Engineering Software-Ökosysteme Ansatz: Language-Interpreter Beispiele: • Flash • Visual Basic for Applications • SQL + Einfach zu nutzen + Einfach zu kontrollieren (Sicherheit, Interoperabilität) 3.12.13, SW Ökosysteme - Hoher Aufwand (erfordert Entwicklungsumgebungen) - Schwerer Entwickler anzuziehen © Prof. Dr. Klaus Schmid 315 Software Systems Engineering Software-Ökosysteme Ansatz: Plug-Ins • Erfordert spezifische Integrationspunkte (wo plugins aufgerufen werden) Component Component Intermediär / Applikation Component Component Plattform based on [Taylor 2013] 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 316 Software Systems Engineering Software-Ökosysteme Ansatz: Plug-Ins Beispiele: • Eclipse • Browser plug-ins (alle aktuellen Browser) • Photoshop • .. + Erlaubt tiefe Integration + Leichter zu erstellen + Kombiniert mit Sandbox kann es auch Sicherheit unterstützen + Kann gute Usability unterstützen 3.12.13, SW Ökosysteme - Oft beschränkt auf spezialisierte Aufgaben © Prof. Dr. Klaus Schmid 317 Software Systems Engineering Software-Ökosysteme Variabilität in Ökosystemen A variability-rich ecosystem is “an ecosystem, where variability in assets produced by one organization strongly impacts assets produced in a different organization, i.e., organizations must be aware of the variability introduced in a different organization (and in the way this is resolved, if so).“ [Schmid, 2013] Man muss unterscheiden: • Ist Variabilität Teil der Plattform? oder • Wird Variabilität durch add-ons eingeführt? 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 318 Software Systems Engineering Software-Ökosysteme Variability in Ökosystemen Ökosysteme mit viel Plattformvariabilität • Android • Symbian • Frühe DOS/Windows versionen Ökosysteme mit geringer Plattformvariabilität • iOS • Windows heute (ohne add-ons) Ökosysteme mit geringer Variabilität sind einfacher zu handhaben 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 319 Software Systems Engineering Software-Ökosysteme Kundeninstallation muss noch funktionieren Das Erweiterungsproblem Kunde Add-On 1 Kunde Add-On 2 Add-On 1 Plattform 3.12.13, SW Ökosysteme Plattform’ © Prof. Dr. Klaus Schmid 320 Software Systems Engineering Software-Ökosysteme Unterstützung für Variabilitäts-intensive Systeme Manage Erweiterungen: Feature packs unterstützen die Erweiterungen über die verschiedenen Architekturschichten UI layer Service layer Database layer Package: • Variabilitätsinformation • UI implementierung • Service implementierung • Database implementierung & integrationsansätze 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 321 Software Systems Engineering Software-Ökosysteme Unterstützung für Variabilitäts-intensive Systeme • Abhängigkeiten je feature pack • Sicherstellen für eine aktualiesierbare Konfiguration – Default reasoning – Trennung von constraints und Default-Werten – Rein declarative Unterstützt konsistente Ableitung von konsistenten Konfigurationen 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 322 Software Systems Engineering Software-Ökosysteme Zusammenfassung • Ökosysteme sind ein wesentlicher Ansatz für moderne Softwareökosysteme • Eine Plattform kontrollieren zu können kann einer der wichtigsten Geschäftserfolge sein • Verständnis und Berücksichtigung der interessanten relevanter Stakeholder ist entscheidend für den Geschäftserfolg • Verschiedene softwaretechnische Ansätze für die Umsetzung von Software-Ökosystemen existieren 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 323 Software Systems Engineering Software-Ökosysteme References [Bosch and Bosch-Sijtsema, 2010] Jan Bosch and Petra Bosch‐Sijtsema, From Integration to Composition: On the Impact of Software Product Lines, Global Development and Ecosystems, Journal of Systems and Software, Vol. 83, No.1, pp. 67-76, 2010. [Jansen et al. 2009] S. Jansen, A. Finkelstein, and S. Brinkkemper. A sense of community: A research agenda for software ecosystems. In International Conference on Software Engineering, 2009. [Schmid, 2013] Klaus Schmid. Variability Support for Variability-Rich Software Ecosystems, Fourth Workshop on Product LinE Approaches in Software Engineering (PLEASE) at the International Conference on Software Engineering, 2013, pp. 4, IEEE, 2013. [Taylor 2013] Richard Taylor. The Role of Architectural Styles in Successful Ecosystems. Presentation at the SPLC 2013. 3.12.13, SW Ökosysteme © Prof. Dr. Klaus Schmid 324