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