Softwarearchitektur verteilter Systeme
|
|
- Gerhard Fromm
- vor 8 Jahren
- Abrufe
Transkript
1 Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung Vorlesung Wintersemester 2002 / 03 Technische Universität München Institut für Informatik Lehrstuhl von Prof. Dr. Manfred Broy Dr. Klaus Bergner, Prof. Dr. Manfred Broy, Dr. Andreas Rausch, Dr. Marc Sihling
2 Inhalt Musterbasierte Architekturen (Pattern) Muster Wieso, weshalb, warum? Design-Muster Architekturmuster Analysemuster Bewertung Referenzarchitekturen Produktlinienarchitekturen Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.2
3 Inhalt Musterbasierte Architekturen (Pattern) Muster Wieso, weshalb, warum? Design-Muster Architekturmuster Analysemuster Bewertung Referenzarchitekturen Produktlinienarchitekturen Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.3
4 Muster Wieso, weshalb, warum? Klassen sind sehr kleine Einheiten, deren Wiederverwendung steigert die Produktivität kaum. Datenbanken, Middleware und COTS-Komponenten ermöglichen Wiederverwendung auf der Ebene von ausführbaren, binären Komponenten. Frameworks und Bibliotheken unterstützen lediglich die Wiederverwendung von Programmcode. Aspect-oriented programming und Codegeneratoren unterstützen die Wiederverwendung von spezifischen Lösungsansätzen auf der Implementierungsebene. Wiederverwendung von Spezifikationen, Design und Entwurfswissen? Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.4
5 Analogien Etablierten Ingenieur-Disziplinen verfügen über Handbücher, in denen Lösungen und Lösungsvarianten für so manche bekannten und immer wiederkehrenden Probleme stehen. So entwickeln Automobilbauer ihre Fahrzeuge nicht immer neu auf der Basis physikalischer Gesetze, sie modifizieren und adaptieren bewährte Lösungen. Der Zugewinn an Performance bei einer vollständigen neuen Entwicklung ist selten kostendeckend. Soll das Software-Engineering und die Disziplin Softwarearchitektur eine Ingenieursdisziplin sein, dann müssen erfolgreiche Methoden systematisch dokumentiert, aufgearbeitet und verbreitet werden. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.5
6 Ursprung des Musteransatzes Der Begriff Pattern als Lösungsmuster, das Lösungsansätze für ähnliche bzw. sich wiederholende Designprobleme bietet, geht zurück auf den Architekten Christopher Alexander [Ale77]. Beispiel Window Place [Ale77]: Jeder liebt Aussichtsplätze in Hochhäusern, auf Bergen oder am Meer Wenn man in einen Raum kommt der Fenster und Sitzplätze hat, die Sitzplätze aber nicht bei den Fenster sind, dann steht man vor folgendem Problem: - Man möchte sich hinsetzten, um es bequem zu haben - Man möchte möglichst in der Nähe des Lichts sein Jeder Raum, in dem man sich länger aufhält sollte mindestens einen Window Place haben Sitzplätze vor dem Fenster Every pattern we define must be formulated in the form of a rule which establishes a relationship between a context, a system of forces which arises in that context and a configuration, which allows these forces to resolve themselves in that context. [Ale79] Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.6
7 Muster sind Lösungsbeschreibungen Ein Designproblem beruht darauf, dass in gewissen Situationen (Kontext), sich widerstrebende Kräfte (Problem) entgegenstehen. Die Lösung besteht darin, mit den in der jeweiligen Designdisziplin zur Verfügung stehenden Werkzeugen die Situation so zu gestalten, dass diese Kräfte optimal ausgeglichen werden. In der klassischen Architektur ist dies die räumliche Gestaltung von Gebäuden In der Softwarearchitektur ist dies die Struktur der Komponenten und deren Beziehungen Ein Muster beschreibt eine Lösung für ein Designproblem Muster sind konstruktiv, d.h. sie liefern Instruktionen zur Lösung einer Problemsituation Muster sind abstrakt, d.h. sie bieten ein breites Anwendungsspektrum mit vielen verschiedenen Anwendungsfällen Muster sind stabil, d.h. sie erfassen den stabilen Kern der Lösung Muster sind über die Zeit hinweg gültig und weitestgehend invariant gegenüber neuen Möglichkeiten Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.7
8 Struktur und Beschreibung von Mustern Ein Muster besteht aus einem Kontext bzw. Situation in dem ein wiederkehrendes Design-Problem auftritt, das durch eine generische, bewährte Lösung gemeistert werden kann. Muster werden beschrieben mit: Musterschablonen geben eine einheitliche Struktur vor, die sich in Kontext, Problem, Lösung und entsprechende Unterpunkte aufteilt Jeder Gliederungspunkte der Musterschablone wird dann mit Freitext und Diagrammen ausgestaltet Muster werden in vielen Disziplinen entwickelt und verwendet, zum Beispiel im Bauwesen, in der Medizin, beim Ölbohren oder in der Softwareentwicklung Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.8
9 Mustersammlungen Musterkataloge sind eine einfache meist kategorisierte Sammlungen ähnlicher oder komplementärer Muster. Eine Mustersprache bildet eine Einheit, in der die zusammenhängenden Muster miteinander kooperieren, um ein gemeinsames Problem zu lösen. Mustersysteme umfassen eine Menge von Mustern auf verschiedenen Abstraktionsstufen. Die Beziehungen zwischen den Mustern beschreiben, wie sich durch die Kombination der Muster Lösungen komplexerer Probleme konstruieren lassen. In der Regel entwickelt sich aus einem Musterkatalog eine Mustersprache und eventuell dann ein Mustersystem. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.9
10 Architekturmuster Ein Architekturmuster stellt ein Lösungsschema für ein Problem im Architekturentwurf dar. Es umfasst Strukturen und Verhalten, die durch Teildefinitionen von Komponenten, Klassen, Methoden, Vererbungs- und Komponentenbeziehungen sowie erklärenden Text beschrieben werden. Wiederverwendung von bewährten Entwürfen Qualitativ bessere Entwürfe Dokumentation von Entwurfsentscheidungen Effizientere Kommunikation durch ein Standardvokabular Das Verstehen der Software wird verbessert Wissensaufbau und Erhaltung Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.10
11 Inhalt Musterbasierte Architekturen (Pattern) Muster Wieso, weshalb, warum? Design-Muster Architekturmuster Analysemuster Bewertung Referenzarchitekturen Produktlinienarchitekturen Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.11
12 Design-Muster Buch Design Patterns von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides (Gang of Four, GoF) 1995 Einführung in das Gebiet der Entwurfsmuster: Definition, Beschreibung von Mustern, Verwendung von Mustern Fallstudie Dokumenteneditor für die Anwendung von Mustern Katalog von 23 Entwurfsmustern, jedes mit mindestens zwei Einsatzbeispielen Ziel: Hilfsmittel für den objektorientierten Entwurf im Kleinen Wie kann man effiziente und flexible Mechanismen entwerfen? Wie findet man Klassen und Operationen für technische Probleme? Wie können die Objekte sinnvoll miteinander interagieren? Wie implementiert man die vorgeschlagenen Mechanismen? Wie kann man den Code übersichtlich und wartbar strukturieren? Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.12
13 Beschreibungsschema Bezeichnung und Überblick Name Kurzbeschreibung, Zweck alternative Bezeichnungen Zweck Motivation und Zielsetzung Anwendbarkeit Lösung graphische Beschreibung der Struktur beteiligte Klassen Interaktion Konsequenzen Vor- und Nachteile Implementierung und Beispiel-Code Anwendungsbeispiele Bezug zu anderen Mustern Name Kontext Problem Lösung Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.13
14 Composite Muster (1) Name: Composite Zweck: Repräsentiere baumartige Hierarchien mit Hilfe von Objekten. Auf einfache und zusammengesetzte Objekte kann in der gleichen Weise zugegriffen werden. Motivation: Dudel! Graphik Instanzendiagramm Klassendiagramm Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.14
15 Composite Muster (2) Anwendbarkeit: Darstellung von Hierarchien (Whole-Part-Structures) Für Clients soll kein Unterschied in der Schnittstelle von zusammengesetzten und einfachen Objekten sein Struktur: Instanzendiagramm Klassendiagramm Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.15
16 Composite Muster (3) Teilnehmer: Component (Graphic): - Definiert gemeinsame Schnittstelle von einfachen und zusammengesetzten Objekten - Implementiert im Einzelfall nötiges Standardverhalten für alle Klassen - Optional: definiert Schnittstelle für Zugriff auf den Vaterknoten Leaf (Rectangle, Line, Text): - Repräsentiert einfache Objekte ohne Kinderknoten - Implementiert das Verhalten einfacher Objekte Composite (Picture): - Implementiert das Verhalten zusammengesetzer Objekte - Speichert (Verweise auf) Kind-Objekte - Implementiert Operationen für Management der Kinder (Hinzufügen, Löschen,...) Client: - Manipuliert hierarchische Strukturen über die Schnittstelle der Klasse Component Interaktion: Vaterknoten können Aufträge an ihre Kinder weiterleiten und davor/danach noch eigene Operationen durchführen Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.16
17 Composite Muster (4) Vor- und Nachteile: + Einheitliche Schnittstelle für Clients erlaubt es, Clients einfach zu halten + Neue Component-Klassen können leicht über Vererbung hinzugefügt werden, ohne dass die Clients geändert werden müssen Über die uniforme Schnittstelle zum Einfügen beliebiger Component-Objekte können beliebige Baumstrukturen erzeugt werden; Einschränkungen müssen über Runtime-Checks durchgeführt werden Implementierung: Referenzen von Kindern zu ihrem Vaterknoten Sharing von Component-Objekten Breite der Schnittstelle von Component addchild/deletechild-operationen Caching... Beispiel-Code:... Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.17
18 Composite Muster (5) Anwendungsbeispiele: ET++ Vobjects InterViews Glyphs RTL Smalltalk Compiler Expressions... Bezug zu anderen Mustern: Chain of Responsibility Decorator Flyweight Iterator Visitor Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.18
19 Visitor Muster (1) Name: Visitor Zweck: Führe auf jedem Objekt einer Struktur eine bestimmte Operation aus. Definiere neue Operationen, ohne die Klassen der Struktur zu ändern. Motivation: Operationen auf abstrakten Syntaxbäumen als Beispiel Ohne Visitor: Knoten implementieren alle Operationen beim Hinzufügen einer neuen Operation müssen alle Knoten geändert werden Code für gleichartige Operationen ist über viele Klassen verstreut Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.19
20 Visitor Muster (2) Mit Visitor: Eine neue Visitor-Klasse für jede Operation als Unterklasse von NodeVisitor, enthält den Code für alle Typen von Knoten Knoten haben einen Haken zum Andocken für den Visitor Neue Operationen können einfach durch Bilden einer neuen Klasse hinzugefügt werden Aber: Hinzufügen neuer Knotentypen ist schwierig! Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.20
21 Visitor Muster (3) Struktur: Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.21
22 Visitor Muster (4) Interaktion: Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.22
23 Inhalt Musterbasierte Architekturen (Pattern) Muster Wieso, weshalb, warum? Design-Muster Architekturmuster Analysemuster Bewertung Referenzarchitekturen Produktlinienarchitekturen Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.23
24 Architekturmuster Buch A System of Patterns von Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad und Michael Stal ( das Siemens-Buch ), 1995 Drei Kategorien von Mustern: - Idioms für die Verwendung einer Sprache (Hilfestellung beim Schreiben einzelner Codezeilen) - Entwurfsmuster (analog zu den GoF-Mustern) - Architekturmuster Ziel von Architekturmustern: Hilfsmittel für den Entwurf im Großen Wie kann man effiziente und flexible Architekturen unabhängig von einer bestimmten technischen Basis entwerfen? Wie findet man Komponenten und Subsysteme für große Systeme? Wie kann man die Verantwortlichkeiten und Schnittstellen der Komponenten bestimmen? Wie geht man bei der Umsetzung der Architektur vor? Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.24
25 Beschreibungsschema Bezeichnung, Überblick, Motivation Name Kurzbeschreibung Kontext motivierendes Beispiel Beschreibung des Kontexts Problem Beschreibung des Problems Lösung Beschreibung der Lösung Struktur Dynamik Vorgehen bei der Implementierung Varianten bekannte Anwendungsfälle Konsequenzen Vor- und Nachteile Beziehungen zu anderen Mustern Name Kontext Problem Lösung Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.25
26 Layers Muster (1) Name: Layers Zweck: Strukturiere Anwendungen, deren Funktionalität in Gruppen von Unterfunktionen zerfällt, wobei man die einzelnen Gruppen jeweils unterschiedlichen Abstraktionsniveaus zuordnen kann. Beispiel: Netzwerkprotokolle wie ISO/OSI, TCP/IP Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.26
27 Layers Muster (2) Kontext: Ein großes System, das strukturiert werden muss. Problem: Organisation von Funktionalität auf unterschiedlichen Abstraktionsebenen, von der Benutzungsoberfläche bis hin zu Gerätetreibern Pflichtenheft spezifiziert allgemeine Anforderungen und konkrete Zielhardware, wobei die Abbildung der Anforderungen auf die Hardware nicht unmittelbar einsichtig ist Kräfte, die ausbalanciert werden müssen: - Änderungen an Anforderungen und Quellcode sollen lokal bleiben - Schnittstellen sollen stabil bleiben (evtl. Verwendung von Standardschnittstellen) - Komponenten und Hardware/Software-Plattformen sollen austauschbar sein - Low-Level-Funktionalität soll in mehreren Systemen verwendet werden - Komponenten mit komplexer Funktionalität sollen weiter strukturiert werden - Möglichst wenige Komponenten sollen bei der Lösung einer Aufgabe involviert sein - Das System soll von einem Team von Programmierern mit klaren Verantwortlichkeiten erstellt werden -... Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.27
28 Layers Muster (3) Lösung: Strukturiere das System in Schichten aus Komponenten, die auf der gleichen Abstraktionsebene angesiedelt sind. Komponenten einer höheren Schicht können zur Erledigung ihrer Aufgabe auf Komponenten der gleichen und der unmittelbar darunter liegenden Schicht zurückgreifen. Struktur: Class Schicht J Collaboration Schicht J-1 Client uses Layer N Responsibility Layer N-1 stellt Dienste für Schicht J+1 zur Verfügung ruft Dienste von Schicht J-1 auf Layer 1 Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.28
29 Layers Muster (4) Dynamik: Szenario 1 (Top-Down): Requests von höheren Schichten werden durch alle Schichten bis zur untersten durchgereicht, eventuelle Replies kommen analog zurück Szenario 2 (Bottom-Up): Notifications niederer Schichten werden von höheren Schichten analysiert, interpretiert und gegebenenfalls weiter nach oben durchgereicht Szenario 3: wie 1, nur dass Requests nicht unbedingt bis ganz nach unten durchgereicht werden, sondern bereits von einer mittleren Schicht vollständig bearbeitet werden können Szenario 4: wie 3, nur für Notifications Szenario 5: Kombination von 1 bis 4 für zwei kommunizierende Protocol Stacks (ein Request eines Stacks wird zu einer Notification im anderen Stack und umgekehrt) Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.29
30 Layers Muster (5) Vorgehen bei der Implementierung: Bestimme das Abstraktionskriterium Bestimme die Anzahl der Abstraktionsebenen Benenne die Schichten und ordne ihnen Aufgaben zu Spezifiziere die Dienste der Schichten Verfeinere die Aufteilung in Schichten Spezifiziere die Schnittstelle der Schichten Strukturiere die einzelnen Schichten Spezifiziere die Kommunikation zwischen den einzelnen Schichten Schirme die einzelnen Schichten gegeneinander ab - Implementierungsvarianten: C++-Interfaces, Callbacks, Reactor-Entwurfsmuster Entwerfe eine Strategie für die Fehlerbehandlung - Behandle Fehler möglichst auf unteren Abstraktionsebenen vollständig! - Reiche keine Low-Level-Fehlermeldungen nach oben durch! Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.30
31 Layers Muster (6) Varianten: Abgeschwächte Schichtenarchitektur: Kommunikation nicht nur zwischen benachbarten Schichten Tradeoff: Performance vs. Wartbarkeit... Layer 2 Layer 3 Layer 1 bekannte Anwendungsfälle: APIs Virtual Machines Informationssysteme mit Zwei- oder Dreischichtenarchitektur Betriebssysteme Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.31
32 Layers Muster (7) Vor- und Nachteile: + Wiederverwendung von Schichten + Möglichkeit zur Standardisierung + Minimierung von Code-Abhängigkeiten + Austauschbarkeit der Implementierung von Schichten Änderungen müssen eventuell durch alle/viele Schichten durchgezogen werden Geringere Effizienz durch viele Schichtenübergänge Unnötige und doppelte Arbeit (Bsp: Fehlerkorrektur auf allen Schichten) Schwierigkeit, die korrekte Anzahl von Schichten zu finden Beziehungen zu anderen Mustern Composite Message (Variante von Composite Muster für den Entwurf von Datenpaketen zwischen Schichten)... Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.32
33 Beispiel: 3-Schichtenarchitektur von Informationssystemen intelligente fachliche Objekte Clients Middleware spezielle fachliche Dienste allgemeine technische Dienste Datenhaltung Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.33
34 Broker Muster (1) Name: Broker Zweck: Das Broker-Muster hilft bei Strukturierung verteilter Softwaresysteme mit entkoppelten Komponenten, die durch das Aufrufen entfernter (remote) Dienste interagieren. Ein Vermittler koordiniert die Kommunikation.. Beispiel: Touristeninformationssystem HTTP Browser Web Server Broker Database server Database server Database server Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.34
35 Broker Muster (2) Kontext: Ein verteiltes eventuell heterogenes System mit voneinander unabhängigen, miteinander arbeitenden Komponenten. Problem: Ein System, das aus einer Sammlung verteilter, entkoppelter aber interagierender Komponenten besteht, ist flexibel, änderbar und skalierbar. Die Kommunikation unter den kooperierenden Komponenten sollte jedoch nicht zu unnötigen Abhängigkeiten führen. Diese ergeben sich aber sofort, wenn die Komponenten selbst für den IPC-Mechanismus verantwortlich sind. - Klienten müssen wissen wo die Server sich befinden - Die Lösung ist meist auf eine Programmiersprache beschränkt Darüber hinaus sollten kein systemspezifischen Details mit Diensten wie - Hinzufügen, Entfernen, Auswechseln, Aktivieren und Suchen von Komponenten verbunden sein. Es sollte keinen Unterschied für die Entwicklung von Software für verteilte oder zentralisierte Systeme geben. Eine Anwendung, die ein Objekt benutzt, sollte nur dessen Schnittstelle sehen. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.35
36 Broker Muster (3) Kräfte, die ausbalanciert werden - Komponenten sollten mit Hilfe von entfernten, ortsunabhängigen Dienstanforderungen auf Dienste anderer Komponenten zugreifen. - Zur Laufzeit müssen Komponenten ausgetauscht, hinzugefügt oder entfernt werden. - Die Architektur sollte system- und implementierungsspezifische Details vor den Benutzern von Komponenten und Diensten verbergen. Lösung: Zur Entkopplung von Client und Server wird ein Vermittler (Broker) eingeführt. Server melden sich selbständig beim Vermittler an und stellen den Clients ihre Dienste zur Verfügung. Clients greifen durch Senden von Dienstanforderungen über den Vermittler auf die Funktionalität des Servers zu. Der Broker - macht den geeigneten Server ausfindig - leitet die Dienstanforderungen weiter - übermittelt Ergebnisse und Fehlermeldungen Statt sich auf IPC zu konzentrieren, schickt die Anwendung lediglich Nachrichten an das betreffende Objekt. Im Broker-Muster werden Verteilungs- und Objekttechnologien kombiniert. Es entstehen verteilte objektorientierte Anwendungen. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.36
37 Broker Muster (4) Struktur: Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.37
38 Broker Muster (4) Dynamik: Server meldet sich an Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.38
39 Broker Muster (5) Client schickt Anfrage Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.39
40 Broker Muster (6) Broker kommuniziert über Brücken Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.40
41 Broker Muster (7) Vorgehen bei der Implementierung: Objektmodell festlegen, Eigenschaften von Client und Server insbesondere deren Datenstrukturen und Operationen Interoperabilität festlegen, Austauschformate bestimmen, Schnittstellen zwischen Client und Server festlegen (z.b.: über IDL) APIs der Vermittler festlegen Proxies entwerfen - Client-side Proxies verwandeln Prozeduraufrufe in Nachrichten und leiten diese an den Broker - Server-side Proxies empfangen Nachrichten und wandeln sie in Operationsaufrufe, leiten Antworten und Fehlermeldungen weiter. Die Proxies sind immer Teil des jeweiligen Prozesses. Eventuell werden Proxies auch automatisch bereitgestellt (z.b.: durch den IDL-Übersetzer erzeugt) Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.41
42 Broker Muster (8) Broker entwerfen - Übertragungsprotokoll definieren - Anfragen, Antworten, Fehlermeldungen, Typinformation - Austauschformate, Brücken - Auffinden entfernter Komponenten (Routing) - Jedem Rechner im Netz (Komponente) muss ein Vermittler zugewiesen werden. Eventuell ist die Routinginformation Teil der Client und Serverbezeichnungen - Der Broker ist verantwortlich für die Weitergabe aller Informationen - Der Broker muss stets wissen welcher Klient welche Anfrage getätigt hat. - Bei asynchroner Kommunikation sind Puffer in den Broker erforderlich. - Eventuell ist eine Adressbuchfunktionalität bis hin zu Nameservices notwendig - Fehler berücksichtigen - Komponenten können in Fehlerzustände laufen - Kommunikation kann scheitern IDL-Übersetzer entwickeln Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.42
43 Broker Muster (9) Varianten: Direct-Communication: Der Vermittler ist nur noch für die Kanalwahl zuständig. Der Rest obliegt den Proxies (effizient) Message-Passing: Statt eines dedizierten Dienstes anzubieten, werden nur Nachrichten ausgetauscht. Die Aufgabe wird über den Nachrichtentyp festgelegt. (Schnittstelle wird einfacher, Austauschformat komplexer) Trader: Statt Server werden direkt Dienste angesprochen. Broker muss nun wissen, welcher Server welchen Dienst bereitstellt (kompliziertere API, Lastverteilung durch den Broker möglich) Callbacks: Der Vermittler ruft Callbacks auf, statt Nachrichten zu versenden. Keine Unterscheidung zwischen Client und Server. bekannte Anwendungsfälle: CORBA, DCOM, J2EE,.NET, SOAP, etc. ATM-P, MQ-Series Windows NT, verteilte Betriebssysteme Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.43
44 Broker Muster (10) Vor- und Nachteile: + Standortunabhängigkeit: Klienten müssen nicht wissen wo die Server sind. + Änderbarkeit und Erweiterbarkeit der Komponenten + Portierbarkeit: Insbesondere durch den Einsatz von Brücken steigt die Portierbarkeit + Interoperabilität: Verschiedene Brokersysteme können zusammen arbeiten, falls die Nachrichtenformate und -mechanismen gleich bleiben. (DCOM, SOAP, XML) + Wiederverwendbarkeit: Vorhandene Dienste können einfach eingebunden werden. Eingeschränkte Effizienz: Daten müssen in Nachrichten verwandelt werden und Kommunikationswege dynamisch bestimmt werden. Broker sind Flaschenhälse Niedrige Fehlertoleranz: Fällt der Broker aus, dann sind ganze Systemteile nicht mehr erreichbar. Beziehungen zu anderen Mustern Forwarder-Receiver, Proxy, Client-Dispatcher-Server Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.44
45 Beispiel: Bus-Architekturen und Smartcards (1) Component 1 Component m CORBA Event Service Smartcard Betriebssystem CardLet 1 CardLet n Smartcard Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.45
46 Beispiel: Bus-Architekturen und Smartcards (2) Component 1 CardLet 1 Component m CORBA Event Service CardLet n Smartcard Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.46
47 Beispiel: Bus-Architekturen und Smartcards (3) Component 1 Component m CORBA Event Service PortProxy PortProxy PortProxy PortProxy Proxy Event Broker Smartcard Event Broker Port Port Port Port CardLet 1 CardLet n Smartcard Proxy Smartcard Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.47
48 Inhalt Musterbasierte Architekturen (Pattern) Muster Wieso, weshalb, warum? Design-Muster Architekturmuster Analysemuster Bewertung Referenzarchitekturen Produktlinienarchitekturen Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.48
49 Fowler s Analysemuster Fowler:...pattern is an idea that has been useful in one practical context and will propably be useful in others. Kategorien von Mustern Analysemuster Muster für die fachliche Anwendungsarchitektur: Beobachtungen und Messungen, Organisation und Verantwortlichkeit, etc. Support-Muster Muster um die fachliche Anwendungsarchitektur technisch zu realisieren: Zwei-, Drei-Schichtenarchitekturen, Objekt Erzeugung, etc. Kein durchgängiges, einheitliches Beschreibungsschema Zu bestimmten Problembereichen der Anwendungsdomäne wird eine Lösung schrittweise eingeführt Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.49
50 Muster: Beobachtungen und Messungen (1) Naive Modellierung einer Person mit Göße, Gewicht und Blutzuckerspiegel Person - Göße : int - Gewicht : int - Blutzuckerspiegel : int Problem: Verschiedenen Systeme müssen mit Objekt Person umgehen; Attribute sind aber interpretierbar, da die Einheit (cm oder in) nicht mitmodelliert wird Lösung: Explizite Modellierung der Einheit Person + Göße : Quantität + Gewicht : Quantität + Blutzuckerspiegel : Quantität Quantität + Anzal : int + Einheit : Einheit + kleiner(vergleichswert : Quantität) + größer(vergleichswert : Quantität) + gleich(vergleichswert : Quantität) Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.50
51 Muster: Beobachtungen und Messungen (2) Fowler s Modellierungsprinzip: When multiple attributes interact with behavior that might be used in several types, combine the attributes into a new fundamental type. Erweiterung: Konvertierungsverhältnis Person + Göße : Quantität + Gewicht : Quantität + Blutzuckerspiegel : Quantität Quantität + Anzal : int + Einheit : Einheit + kleiner(vergleichswert : Quantität) + größer(vergleichswert : Quantität) + gleich(vergleichswert : Quantität) + Name : String Einheit + Umrechnen(Von : Quantität, NachEinheit : Einheit) : Quantität von nach * * Konvertierungsverhältnis + Umrechnungssatz : float Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.51
52 Muster: Organisation und Verantwortlichkeit (1) Naive Modellierung einer Adressverwaltung Problem: Finde geeignete Abstraktion für Organisation und Person Lösung: Party als gemeinsame Abstraktion von Organisation und Person Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.52
53 Muster: Organisation und Verantwortlichkeit (2) Naive Modellierungen von Organisationshierarchie und -struktur Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.53
54 Muster: Organisation und Verantwortlichkeit (3) Problem: Struktur ist inflexibel und nicht wieder verwendbar Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.54
55 Muster: Organisation und Verantwortlichkeit (4) Lösung: Verwendung einer einzigen, aber im Modell typisierbaren Assoziation Fowler s Modellierungsprinzip: Design a model so that the most frequent modification of the model causes changes to the least number of types. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.55
56 Muster: Organisation und Verantwortlichkeit (5) Erweiterung: Typisierbare Assoziation über die gemeinsame Abstratkion von Person und Organisation Fowler s Modellierungsprinzip: Whenever defining features for a type, that has a supertype, consider whether placing the features on the supertype makes sense. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.56
57 Muster: Organisation und Verantwortlichkeit (6) Erweiterung: Gültige Konfiguration der Assoziationen zw. Parties und Accountabilities im Knowledge Level ablegen. Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.57
58 Analysemuster: Zusammenfassung und Bewertung Analysemuster haben ein hohes Potential Dokumentation des wertvollen internem Wissen Kontinuierliche Weiterentwicklung des internen Wissens Hohe Wiederverwendung von Branchenwissen Über die Standardisierung erreicht man Interoperabilität und Flexibilität Fowler s Analysemuster sind keine vollständigen Analysemuster Kein einheitliches Dokumentationsschemata Keine klare Struktur; es fehlt an einer MusterkatalogNur Dokumentation von Nähkästchen-Wissen in Form von Beispielen Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.58
59 Inhalt Musterbasierte Architekturen (Pattern) Muster Wieso, weshalb, warum? Design-Muster Architekturmuster Analysemuster Bewertung Referenzarchitekturen Produktlinienarchitekturen Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 6b. Ausprägungen und Wiederverwendung 6b.59
Übungen zu Softwaretechnik
Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 9 Dr. H. Ehler, S. Wagner 11. Januar 2007 Übungen zu Softwaretechnik Aufgabe 15 Systemerstellung / Systemarchitektur nach dem V- Modell XT Machen Sie sich mit den
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrObjektorientiertes Software-Engineering
Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur
MehrÜbung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter
Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
Mehr16 Architekturentwurf Einführung und Überblick
Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software
MehrJava Enterprise Architekturen Willkommen in der Realität
Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen
Mehr4D Server v12 64-bit Version BETA VERSION
4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und
MehrWeb Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen
9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrComparing Software Factories and Software Product Lines
Comparing Software Factories and Software Product Lines Martin Kleine kleine.martin@gmx.de Betreuer: Andreas Wuebbeke Agenda Motivation Zentrale Konzepte Software Produktlinien Software Factories Vergleich
MehrÜbungen zu Softwaretechnik
Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrSDD System Design Document
SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen
MehrSecurity Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08
Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme
MehrObjektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt
Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse
MehrErfassung von Umgebungskontext und Kontextmanagement
Erfassung von Umgebungskontext und Kontextmanagement Jörg Schneider, Christian Mannweiler, Andreas Klein, Hans D. Schotten 13.05.2009 Inhalt 1. Einleitung 2. Anforderungen 3. Kontext Erfassung und Verteilung
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Grobentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig
MehrOP-LOG www.op-log.de
Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server
MehrAgile Vorgehensmodelle in der Softwareentwicklung: Scrum
C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was
MehrClient/Server-Systeme
Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrArchitekturplanung und IS-Portfolio-
Architekturplanung und IS-Portfolio- management Gliederung 1.Einführung 2.Architekturplanung 3.IS-Portfoliomanagement 4.AP und IS-PM 5.Fazit 2 1. Einführung Problem: Verschiedene Software im Unternehmen
MehrObjectBridge Java Edition
ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrWas ist Software-Architektur?
Was ist Software-Architektur? Stephan Schulze Martin Knobloch 28.04.2004 Seminar: Software-Architektur Humboldt Universität zu Berlin sschulze knobloch@informatik.hu-berlin.de Gliederung Begriffsbestimmung
MehrAgiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de
Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler
MehrÜbungsklausur vom 7. Dez. 2007
Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement
MehrDr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht
Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??
MehrDas Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin
Fragestellungen: Warum reicht das Lastenheft nicht aus? Was kann ich mit dem Lastenheft machen? Was unterscheidet das Pflichtenheft vom Lastenheft? Was gehört zum Auftragsumfang einer Individualsoftware?
MehrEin Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?
Ein Beispiel Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse? Dipl.-Kfm. Claus Häberle WS 2015 /16 # 42 XML (vereinfacht) visa
MehrTechniken der Projektentwicklungen
Von der Analyse zum Entwurf 5. Termin Vom Use Case zum Domänenmodell Bis zum nächsten Mal Vom Use Case zum Domänenmodell Vom Use Case zum Domänenmodell Was ist ein Domänenmodell? Graphische Beschreibung
MehrCopyright 2014 Delta Software Technology GmbH. All Rights reserved.
Karlsruhe, 21. Mai 2014 Softwareentwicklung - Modellgetrieben und trotzdem agil Daniela Schilling Delta Software Technology GmbH The Perfect Way to Better Software Modellgetriebene Entwicklung Garant für
MehrReporting Services und SharePoint 2010 Teil 1
Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrStep by Step Webserver unter Windows Server 2003. von Christian Bartl
Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrSome Software Engineering Principles
David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrQualitätsmanagement im Projekt
Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung
MehrWindows Small Business Server (SBS) 2008
September 2008 Windows Small Business Server (SBS) 2008 Produktgruppe: Server Windows Small Business Server (SBS) 2008 Lizenzmodell: Microsoft Server Betriebssysteme Serverlizenz Zugriffslizenz () pro
MehrMan liest sich: POP3/IMAP
Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und
MehrVortrag von: Ilias Agorakis & Robert Roginer
MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrWorkflow, Business Process Management, 4.Teil
Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung
MehrJürgen Schwab, debis Systemhaus
Jürgen Schwab, debis Systemhaus 1 Komponenten - Markt VAA - Referenzmodell: eine komponentenorientierte Anwendungsarchitektur März 99 99 2 Die Voraussetzungen für einen Komponentenmarkt sind so gut wie
MehrUse Cases. Use Cases
Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben
MehrGuide DynDNS und Portforwarding
Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch
MehrHandbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken
Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen
MehrSoftware zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)
Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN) Definition Was ist Talk2M? Talk2M ist eine kostenlose Software welche eine Verbindung zu Ihren Anlagen
MehrAnleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken
Betriebliche Datenverarbeitung Wirtschaftswissenschaften AnleitungzurEinrichtungeinerODBC VerbindungzudenÜbungsdatenbanken 0.Voraussetzung Diese Anleitung beschreibt das Vorgehen für alle gängigen Windows
MehrMusterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9
Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung
MehrWindows Server 2012 R2 Essentials & Hyper-V
erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote
Seite 1 von 10 ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 Einleitung Microsoft ISA Server 2004 bietet
MehrGeneratives Programmieren
Generatives Programmieren Seminar Produktlinien WS03/04 Tammo van Lessen 08.01.2004 Outline Einleitung Generatoren Generatives Programmieren Fazit Einleitung Industrielle Entwicklung 1826 Austauschbare
MehrAnleitung zum Extranet-Portal des BBZ Solothurn-Grenchen
Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen Inhalt Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen 2.2 Installation von Office 2013 auf Ihrem privaten PC 2.3 Arbeiten mit den Microsoft
Mehrteischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep
teischl.com Software Design & Services e.u. office@teischl.com www.teischl.com/booknkeep www.facebook.com/booknkeep 1. Erstellen Sie ein neues Rechnungsformular Mit book n keep können Sie nun Ihre eigenen
MehrDie Softwareentwicklungsphasen!
Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.
MehrSANDBOXIE konfigurieren
SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:
MehrEnterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)
Enterprise Applikation Integration und Service-orientierte Architekturen 09 Simple Object Access Protocol (SOAP) Anwendungsintegration ein Beispiel Messages Warenwirtschaftssystem Auktionssystem thats
MehrMicrosoft SharePoint 2013 Designer
Microsoft SharePoint 2013 Designer Was ist SharePoint? SharePoint Designer 2013 Vorteile SharePoint Designer Funktionen.Net 4.0 Workflow Infrastruktur Integration von Stages Visuelle Designer Copy & Paste
MehrKostenstellen verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4
MehrVermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D
Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D 1 1. EINLEITUNG... 3 2. ZWECK... 3 3. MOTIVATION... 3 4. ANWENDBARKEIT... 6 5. STRUKTUR... 6 6. TEILNEHMER... 7 7. INTERAKTION...
MehrEinführung und Motivation
Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.
MehrEin mobiler Electronic Program Guide für Android
Whitepaper Telekommunikation Ein mobiler Electronic Program Guide für Android Prototyp für Android Apps 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller Munde. Durch
MehrGEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY
GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als
MehrAnforderungen an die HIS
Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum
MehrAblaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole
Lavid-F.I.S. Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der Lavid Software GmbH Dauner Straße 12, D-41236 Mönchengladbach http://www.lavid-software.net Support:
MehrCode wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015
Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum
MehrI N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte
I N F O R M A T I O N V I R T U A L I S I E R U N G Wir schützen Ihre Unternehmenswerte Wir schützen Ihre Unternehmenswerte Ausfallsicherheit durch Virtualisierung Die heutigen Anforderungen an IT-Infrastrukturen
MehrDesign Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi
Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster
MehrProjektmanagement in der Spieleentwicklung
Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren
Mehrarlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek
arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis
MehrAlbert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen
Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrSWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT
SWT II Projekt Chat - Anwendung Pflichtenheft 2000 SWT i Versionen Datum Version Beschreibung Autor 3.11.2000 1.0 erste Version Dietmar Matthes ii Inhaltsverzeichnis 1. ZWECK... 1 1.1. RAHMEN... 1 1.2.
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
Mehrmysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrSuche schlecht beschriftete Bilder mit Eigenen Abfragen
Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrOrdner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
MehrVersion smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):
Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils
MehrProseminar Technische Informatik A survey of virtualization technologies
Proseminar Technische Informatik A survey of virtualization technologies Referent: Martin Weigelt Proseminar Technische Informatik - A survey of virtualization technologies 1 Übersicht 1. Definition 2.
MehrEinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2
EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Feinentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig
MehrSystemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski
Die Phase Design Design Entwerfen der Benutzeroberfläche, des Bedienablaufs und der Softwarearchitektur Umsetzen des fachlichen Modells auf technische Möglichkeiten; Spezifikation der Systemkomponenten
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrStuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.
StuPro-Seminar Dokumentation in der Software-Wartung StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung Folie 1/xx Software-Wartung: theoretisch Ausgangslage eigentlich simpel: fertige
MehrLeitfaden zur Nutzung von binder CryptShare
Leitfaden zur Nutzung von binder CryptShare Franz Binder GmbH & Co. Elektrische Bauelemente KG Rötelstraße 27 74172 Neckarsulm Telefon +49 (0) 71 32-325-0 Telefax +49 (0) 71 32-325-150 Email info@binder-connector
Mehr