Software-Systemstrukturen - Userpage - Freie Universität Berlin
Software-Systemstrukturen - Userpage - Freie Universität Berlin
Software-Systemstrukturen - Userpage - Freie Universität Berlin
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Software</strong> Engineering<br />
<strong>Software</strong> – <strong>Systemstrukturen</strong> (Architekturansätze)<br />
Die Inhalte der Vorlesung wurden primär auf Basis der jeweils angegebenen Literatur<br />
erstellt. Darüber hinaus finden sich ausgewählte Beispiele zur <strong>Software</strong>entwicklung<br />
aus dem Bereich der Telekommunikation.<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 1
Inhaltsübersicht<br />
§ Grundlegende <strong>Systemstrukturen</strong><br />
§ Komponentenarchitekturen<br />
§ Client/Service Architekturen<br />
§ Peer-to-Peer-Architekturen<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 2
Grundlegende <strong>Systemstrukturen</strong><br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 3
§ Es werden grundlegende Architekturstrukturen, die in vielen<br />
Systemen zum Einsatz kommen, vorgestellt.<br />
§ Die ineffizienteste Form einer Architektur ist ein Monolith, hier ist<br />
das gesamte System in einem Systembaustein zusammengefasst.<br />
§ Ein Monolith kann die vorgestellten Prinzipien einer SW-Architektur<br />
so gut wie nie umsetzen.<br />
Einleitung<br />
§ Die folgende Übersicht bietet einen Überblick über wichtige<br />
Vertreter für Architekturstrukturen in der heutigen Praxis.<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 4
Zentralisierung vs. Dezentralisierung<br />
§ Grundlegende Frage beim Entwurf einer Architektur:<br />
- Alle Aspekte in einem Systembaustein bündeln (Zentralisierung)<br />
- oder diese auf mehrere Bausteine verteilen (Dezentralisierung).<br />
§ Ansätze für eine Verteilung mit Bezug auf:<br />
- Rechnersysteme und Prozessoren,<br />
- Prozesse (z.B. zum Zweck der Lastverteilung),<br />
- Geräte (z.B. Drucker),<br />
- Daten (z.B. verteiltes Dateisystem),<br />
- Funktionen (z.B. Namensdienst).<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 5
Zentralisierung vs. Dezentralisierung<br />
§ Vorteile der Dezentralisierung:<br />
- niedrigere Hardwarekosten (zentraler leistungsfähiger Rechner teuer),<br />
- Flexibilität gegenüber Veränderungen (Lokalisierung, Ausfälle etc.),<br />
- einfachere aufgabenorientierte Strukturierung des Systems.<br />
§ Vorteile der Zentralisierung:<br />
- einfachere Umsetzung von Daten- und IT-Sicherheit,<br />
- hohe Verfügbarkeit,<br />
- einfachere Auslieferung neuer oder aktualisierter Systembausteine,<br />
- als Konsequenz niedrigere Betreuungskosten.<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 6
Übersicht zu Architekturansätzen<br />
§ Komponentenarchitekturen<br />
§ Client/Server Architekturparadigma<br />
§ Peer-to-Peer Architekturen<br />
§ Middlewarearchitekturen<br />
§ Aspektorientierte <strong>Software</strong>entwicklung<br />
§ Modeldriven Architecture (MDA)<br />
§ Serviceorientierte Architekturen<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 7
Komponentenarchitekturen<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 8
§ Komponenten sind wiederverwendbare, in sich geschlossene<br />
Bausteine eines SW-Systems.<br />
§ Komponentenbegriff nach Szyperski:<br />
„Eine SW-Komponente ist ein wiederverwendbares Stück <strong>Software</strong>,<br />
das eine wohldefinierte Schnittstelle hat, in nicht vorher geplanten<br />
Kontexten eingesetzt werden kann und auch von Dritten komponiert<br />
werden kann.“<br />
Komponentenarchitekturen<br />
Quelle: Szyperski, Clemens: Component <strong>Software</strong> – Beyond Object-Orientied Programming.<br />
Addison-Wesley, 1998<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 9
Komponentenarchitekturen<br />
§ Vielseitige Verwendung des Komponentenbegriffs wie z.B.:<br />
- Microsofts ActiveX Controls<br />
- JEE Enterprise Java Beans<br />
hier Betrachtung von Komponentenplattformen (z.B. EJB).<br />
§ Trennung von fachlichen und technischen Belangen (Verteilung,<br />
Sicherheit, Persistenz, Transaktionen, Nebenläufigkeit und<br />
Ressourcenmanagement).<br />
§ Es wird zwischen einem Container und den dort enthaltenen<br />
Komponenten unterschieden. Die fachlichen Anforderungen werden<br />
durch die Komponenten erbracht, die technischen Anforderungen<br />
durch den Komponentencontainer.<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 10
Client<br />
Komponentenarchitekturen<br />
<br />
<br />
<br />
Component Container<br />
<br />
Session Component<br />
<br />
Service Component<br />
<br />
Entity Component<br />
<br />
Entity Component<br />
<br />
<br />
Unter Verwendung von: Faustmann, G.: Vorlesung <strong>Software</strong> Engineering, FHW <strong>Berlin</strong> – Fachbereich II<br />
<br />
Legacy System<br />
<br />
Database System<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 11
Client/Server Architekturen<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 12
Client-Server-Struktur<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 13
Vorteile:<br />
Client-Server-Struktur<br />
§ Verwendung hoch spezialisierter Serversysteme<br />
§ Vereinfachung administrativer Aufgaben<br />
§ Zentrale Zugriffskontrolle<br />
§ Gute Verwendbarkeit im statischen Prozesskontext<br />
Nachteile:<br />
§ Server ggf. als „Flaschenhals“ bzw. „Single Point of Failure“<br />
§ Server bietet gezielten Angriffspunkt (Bedrohung)<br />
§ Schwierig anpassbar an sich dynamisch verändernde Umgebungen<br />
§ Strikte Trennung zwischen Produzenten und Konsumenten<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 14
Rich Clients vs. Thin Clients<br />
§ Zentrale Frage beim Entwurf einer Client-/Server-Architektur ist die<br />
Aufteilung der Funktionalität zwischen Client und Server.<br />
§ Das frühere Mainframe-Modell basierte auf Thin-Clients<br />
§ PCs und Filesharing-Konzept ebneten den Weg zu Rich-Clients:<br />
Berechnungen werden nur noch auf dem PC ausgeführt.<br />
§ Vorteil Thin-Clients:<br />
- Einfachere Wartung und Auslieferung von <strong>Software</strong> (nur am Server!)<br />
§ Vorteile Rich-Clients:<br />
- Weniger starke Belastung des Servers<br />
- Höhere Performanz beim Nutzer (Dauer des Netzzugriffs)<br />
- Geringere Abhängigkeit von der Funktionsfähigkeit des Netzwerk<br />
- Keine Einschränkungen bei Gestaltung der Nutzeroberfläche<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 15
Schichtenarchitekturen mit<br />
Rich- und Thin-Clients<br />
Unter Verwendung von: Faustmann, G.: Vorlesung <strong>Software</strong> Engineering, FHW <strong>Berlin</strong> – Fachbereich II<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 16
Peer to Peer Architekturen<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 17
P2P-Anwendungsbereiche<br />
§ Content Sharing –Nutzung verteilter Speicherkapazitäten<br />
Musik- und Video-Tauschbörsen<br />
Bespiele: Napster, Gnutella, Flickr, Youtube<br />
§ Social- & Business-Networks –Interessensvereinigungen<br />
Kontaktbörsen, Publikationen, Veranstaltungen<br />
Beispiele: XING, BPM-Netzwerk, stayFriends; studivz<br />
§ Virtual Universities –Lern- und Lehrplattformen<br />
Virtuelle Klassenräume, Diskussionsforen, Podcasts<br />
Beispiele: BlackBoard, ILIAS, CLIX (bei etlichen Hochschulen)<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 18
P2P-Anwendungsbereiche<br />
§ Distributed Computing –Nutzung verteilter Rechenkapazitäten<br />
Aufteilung eines rechenaufwändigen Problems<br />
Bespiele: SETI@home-Projekt, Cancer Research Project<br />
§ Collaboration and Communication –Austausch von Nachrichten<br />
Instant-Messaging-Programme<br />
Beispiele: ICQ - „I seek you“, Ad-hoc-Netzwerke – z.B. Mobiltelefone<br />
§ Web 2.0 Applications –Mitmach Web & Online-Anwendungen<br />
Anwender generierte Inhalte im Web (always beta)<br />
Beispiel: BLOGS, Wikis, Google Maps, Google Earth, Skype<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 19
Hybride Struktur<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 20
Hybride Struktur<br />
Mischform aus Client/Server-Ansätzen und P2P-Struktur<br />
(auch als Super-Peer-Netzwerk bezeichnet)<br />
§ Vorteile:<br />
- Zentraler Dienst zur Referenzierung von z.B. Daten der Peers<br />
- Super-Peer als Gateway zum Netzwerk<br />
- Super-Peers können ohne „normale“ Peers arbeiten<br />
- Möglichkeiten zur Bildung von Rechnerfarmen<br />
• Möglichkeiten zur Leistungssteigerung<br />
• Etablierung geschützter Bereiche z.B. zentrale Datenhaltung<br />
- Vereinfachtes IT-Servicemanagement<br />
§ Nachteile:<br />
- Normale Peers können nicht ohne Super-Peers arbeiten<br />
- P2P-Netze mit hybriden Strukturen zeigen hierarchische Ebenen<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 21
Peer-to-Peer-Struktur<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 22
§ Vorteile:<br />
Peer-to-Peer-Struktur<br />
- Möglichkeit der Kommerzialisierung des Internets zu entgehen<br />
- Vereinfachter Umgang mit dem Urheberrecht (dezentraler Ansatz)<br />
- Höhere Skalierbarkeit für parallelisierbare Probleme<br />
- Reduzierte Gefahr des Informationsverlustes<br />
- Unabhängigkeit von „fixed network infrastructures“<br />
§ Nachteile:<br />
- Redundanz sorgt für inkonsistente Informationsobjekte<br />
- Langwierige Suche nach strukturierten Datenobjekten<br />
- Hohe Komplexität des IT-Managements<br />
- Schwierigkeit der Fehlersuche<br />
- Problem nachvollziehbarer fachlicher Prozessabläufe<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 23
P2P-Datenhaltung und Suche<br />
§ P2P-Datenhaltung (nach [Li et al. 2002]):<br />
- Strukturierte Datenhaltung (Regeln zu Datenablage)<br />
- Teilstrukturierte Datenhaltung (Hinweise zu abgelegten Daten)<br />
- Unstrukturierte Datenhaltung (unbekannte Position gesuchter Daten)<br />
§ P2P-Suchmethoden (nach [Milojicic et al. 2002]):<br />
- Zentrales Verzeichnis (Suche entsprechend dem C/S-Prinzip)<br />
- Flooding (Suchanfrage eines Peers an alle ihm bekannten Peers)<br />
- Document Routing (Suche über Hash-Funktionen Position im Netz)<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 24
P2P-Systemebenen<br />
Anwendung des P2P-Paradigmas auf unterschiedlichen Systemebenen<br />
Quelle: Dustdar, S.; Gall, H.; Hauswirth, M.; <strong>Software</strong>-Architekturen für Verteilte Systeme,<br />
Springer Verlag, Juli 2003<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 25
JXTA Standard<br />
§ JXTA - Projekt zur Standardisierung von Peer-to-Peer-<br />
Anwendungen<br />
- Open Source Projekt ursprünglich von SUN Microsystems<br />
- Ziel: Spezifikation und Architektur einer P2P-Plattform<br />
- JXTA-Protokolle als Kern des Standards<br />
• Programmiersprachenunabhängig<br />
• Betriebssystemunabhängig<br />
• Übertragungsprotokollunabhängig<br />
- Libraries für Java, C und andere Sprachen<br />
§ Referenzimplementierung für J2SE bzw. JSE<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 26
JXTA Architektur<br />
Quelle: Becker, R.; Liebsch, F.; Michel, Y. R.; Müller, D.:<br />
JXTA: Einführung und Überblick, <strong>Freie</strong> <strong>Universität</strong> <strong>Berlin</strong>, 2004<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 27
JXTA Standard<br />
§ Ein Peer implementiert ein JXTA-Protokoll. Das kann<br />
beispielsweise ein PDA, Handy oder Server sein. Jeder Peer erhält<br />
eine weltweit eindeutige ID.<br />
§ Eine Peer Group ist eine zusammenarbeitende Menge von Peers.<br />
Peer Groups werden ebenfalls durch eine eindeutige ID in einem<br />
JXTA-Netzwerk identifiziert.<br />
§ Messages in JXTA werden als Objekte zwischen Peers verschickt.<br />
§ Eine Pipe ist ein Kommunikationskanal um Messages zu versenden<br />
oder empfangen zu können.<br />
§ Ein Advertisement ist ein XML-Dokument, das alle JXTA-<br />
Ressourcen benennt, beschreibt und deren Existenz bekannt gibt.<br />
Ressourcen sind Peers, Peer Groups, Pipes oder Services.<br />
§ Ein Service ist ein Dienst, der von jedem Peer oder einer Peer<br />
Group´bereitgestellt werden kann.<br />
nach juxtapose (Nebeneinanderstellung), siehe www.jxta.org<br />
28.09.2008 Prof. Dr. Andreas Schmietendorf 28