07.10.2013 Aufrufe

Software-Systemstrukturen - Userpage - Freie Universität Berlin

Software-Systemstrukturen - Userpage - Freie Universität Berlin

Software-Systemstrukturen - Userpage - Freie Universität Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!