├── fig ├── tex-grapics │ ├── src │ │ ├── chord.out │ │ ├── chord.snm │ │ ├── chord.toc │ │ ├── chandy-lamport-algorithmus.out │ │ ├── chandy-lamport-algorithmus.snm │ │ ├── chandy-lamport-algorithmus.toc │ │ ├── chord.aux │ │ ├── typ1-hyper.aux │ │ ├── typ2-hyper.aux │ │ ├── chord.pdf │ │ ├── typ1-hyper.pdf │ │ ├── typ2-hyper.pdf │ │ ├── chord.synctex.gz │ │ ├── typ1-hyper.synctex.gz │ │ ├── typ2-hyper.synctex.gz │ │ ├── chandy-lamport-algorithmus.pdf │ │ ├── chandy-lamport-algorithmus.synctex.gz │ │ ├── chord.nav │ │ ├── chandy-lamport-algorithmus.nav │ │ ├── chord.tex │ │ ├── typ1-hyper.tex │ │ ├── typ2-hyper.tex │ │ ├── chandy-lamport-algorithmus.aux │ │ └── chandy-lamport-algorithmus.tex │ ├── chord.pdf.png │ ├── chandy-lamport-algorithmus.pdf-0.png │ ├── chandy-lamport-algorithmus.pdf-1.png │ ├── chandy-lamport-algorithmus.pdf-2.png │ ├── chandy-lamport-algorithmus.pdf-3.png │ ├── chandy-lamport-algorithmus.pdf-4.png │ ├── chandy-lamport-algorithmus.pdf-5.png │ ├── chandy-lamport-algorithmus.pdf-6.png │ └── createFromPDFJPG.sh ├── uml │ ├── zab.png │ ├── broker.png │ ├── chord.png │ ├── lampe.png │ ├── proxy.png │ ├── raft.png │ ├── stuhl.png │ ├── trader.png │ ├── default-mvc.png │ ├── factory-seq.png │ ├── paxos-issue.png │ ├── rpc-app-seq.png │ ├── rpc-simple.png │ ├── singleton.png │ ├── src │ │ ├── simple-signal.pluml │ │ ├── rpc-app-seq.pluml │ │ ├── lampe.pluml │ │ ├── simple-event.pluml │ │ ├── async-message.pluml │ │ ├── sync-message.pluml │ │ ├── stuhl-function.pluml │ │ ├── stuhl-resourcen.pluml │ │ ├── seq-mvc-observer.pluml │ │ ├── callback-class.pluml │ │ ├── singleton.pluml │ │ ├── proxy.pluml │ │ ├── default-mvc.pluml │ │ ├── callback-seq.pluml │ │ ├── sterotypen-mvc.pluml │ │ ├── chord.pluml │ │ ├── factory-class.pluml │ │ ├── intercept-seq.pluml │ │ ├── factory-seq.pluml │ │ ├── mvc-observer.pluml │ │ ├── rpc-middleware-seq.pluml │ │ ├── paxos-default.pluml │ │ ├── simple-tiers.pluml │ │ ├── intercept-class.pluml │ │ ├── simple-layers.pluml │ │ ├── zab.pluml │ │ ├── default-observer.pluml │ │ ├── mvc-varianten.pluml │ │ ├── raft.pluml │ │ ├── client-server-tcp.pluml │ │ ├── broker.pluml │ │ ├── trader.pluml │ │ ├── clock_exam_concurrent_vector.pluml │ │ ├── paxos-issue.pluml │ │ ├── rpc-simple.pluml │ │ ├── paxos-issue-solve.pluml │ │ ├── iso-osi-reference.pluml │ │ ├── clock_exam_concurrent.pluml │ │ └── clock_exam_concurrent_lamport.pluml │ ├── async-message.png │ ├── callback-seq.png │ ├── factory-class.png │ ├── intercept-seq.png │ ├── mvc-observer.png │ ├── mvc-varianten.png │ ├── paxos-default.png │ ├── simple-event.png │ ├── simple-layers.png │ ├── simple-signal.png │ ├── simple-tiers.png │ ├── sync-message.png │ ├── callback-class.png │ ├── default-observer.png │ ├── intercept-class.png │ ├── seq-mvc-observer.png │ ├── simple-event (2).png │ ├── simple-event (3).png │ ├── sterotypen-mvc.png │ ├── stuhl-function.png │ ├── stuhl-resourcen.png │ ├── client-server-tcp.png │ ├── iso-osi-reference.png │ ├── paxos-issue-solve.png │ ├── rpc-middleware-seq.png │ ├── simple-signal (2).png │ ├── client-server-simple.png │ ├── clock_exam_concurrent.png │ ├── clock_exam_concurrent_vector.png │ ├── clock_exam_concurrent_lamport.png │ └── createUML.sh └── graphics │ ├── haw.jpg │ ├── logo.jpg │ ├── Schichten.jpg │ ├── CAP-Diagramm.png │ └── CADS_Logo_Quadrat_300x300_RGB_72dpi.jpg ├── kapitel-02 ├── ExampleSingletonRemote │ ├── MainRemote.java │ ├── Schalter.java │ ├── SchalterLocal.java │ ├── SchalterRemote.java │ ├── SchalterFactory.java │ ├── LampenService.java │ ├── LampenServiceClientStub.java │ ├── MainLocal.java │ └── LampenServiceSkeleton.java └── ExampleCallback │ └── callback.tex ├── vs-script-first-v01.pdf ├── slides ├── Week-2 │ └── fig │ │ └── Skalierung.png ├── Week-1 │ └── fig │ │ └── Definition-VS.png └── Week-4 │ └── week-4.tex ├── Archive ├── slide_archive │ ├── vs-slides-chapter00.pdf │ ├── vs-slides-chapter01-1.pdf │ ├── vs-slides-chapter01-2.pdf │ ├── vs-slides-chapter01-3.pdf │ ├── vs-slides-chapter02-1.pdf │ ├── vs-slides-chapter02-2.pdf │ ├── vs-slides-chapter02-3.pdf │ ├── vs-slides-chapter02-4.pdf │ ├── vs-slides-chapter02-5.pdf │ ├── vs-slides-chapter03-1.pdf │ ├── vs-slides-chapter03-2.pdf │ ├── vs-slides-chapter04-1.pdf │ ├── vs-slides-chapter04-2.pdf │ ├── vs-slides-chapter05-1.pdf │ ├── vs-slides-chapter05-2.pdf │ ├── vs-slides-chapter05-3.pdf │ ├── vs-slides-chapter06-1.pdf │ ├── slides-kapitel-02 │ │ ├── slide-07-states.tex │ │ ├── _slide-xx-template.tex │ │ ├── slide-19-triggered.tex │ │ ├── slide-01-intro-architecure.tex │ │ ├── slide-31-watchdog.tex │ │ ├── slide-03-seperation.tex │ │ ├── slide-05-kopplung.tex │ │ ├── slide-17-p2p.tex │ │ ├── slide-16-micro.tex │ │ ├── slide-09-architektur-para.tex │ │ ├── slide-04-communication.tex │ │ ├── slide-23-singleton.tex │ │ ├── slide-28-fassade.tex │ │ ├── slide-26-wrapper.tex │ │ ├── slide-27-interceptor.tex │ │ ├── slide-06-mech_pol.tex │ │ ├── slide-11-single-node.tex │ │ ├── slide-22-callback.tex │ │ ├── slide-18-hexagonale.tex │ │ ├── slide-15-event-driven.tex │ │ ├── .aux │ │ ├── slide-24-factory.tex │ │ ├── slide-14-client-server.tex │ │ ├── slide-12-overlay.tex │ │ ├── slide-21-observer.tex │ │ ├── slide-13-middleware.tex │ │ ├── slide-30-p2p-example.tex │ │ ├── slide-25-Injection.tex │ │ ├── slide-08-transaktion.tex │ │ ├── slide-10-schichten.tex │ │ └── slide-02-func_vs_res.tex │ ├── slides-kapitel-00 │ │ ├── _slide-xx-template.tex │ │ ├── slide-00-orga.tex │ │ └── slide-00-vs.tex │ ├── slides-kapitel-01 │ │ ├── _slide-xx-template.tex │ │ ├── slide-02-HH-example.tex │ │ ├── slide-08-transparenz.tex │ │ ├── slide-10-pitfalls.tex │ │ ├── slide-06-offen.tex │ │ ├── slide-01-intro.tex │ │ ├── slide-05-shared.tex │ │ ├── slide-04-ziele.tex │ │ ├── slide-09-anforderung.tex │ │ └── slide-07-scale.tex │ ├── slides-kapitel-03 │ │ ├── _slide-xx-template.tex │ │ ├── slide-04-cluster-grid.tex │ │ └── slide-02-process.tex │ ├── slides-kapitel-04 │ │ └── _slide-xx-template.tex │ ├── slides-kapitel-05 │ │ ├── _slide-xx-template.tex │ │ ├── slide-01-allgemein.tex │ │ ├── slide-05-garbage.tex │ │ ├── slide-02-paralell.tex │ │ ├── slide-07-mutual-exclusion.tex │ │ └── slide-08-modern.tex │ ├── slides-kapitel-06 │ │ ├── _slide-xx-template.tex │ │ ├── slide-03-deployment.tex │ │ ├── slide-02-debugging.tex │ │ └── slide-01-monitoring.tex │ ├── vs-slides-chapter00.tex │ ├── vs-slides-chapter01-2.tex │ ├── vs-slides-chapter01-1.tex │ ├── vs-slides-chapter01-3.tex │ ├── vs-slides-chapter04-2.tex │ ├── vs-slides-chapter05-2.tex │ ├── vs-slides-chapter03-2.tex │ ├── vs-slides-chapter04-1.tex │ ├── vs-slides-chapter02-5.tex │ ├── vs-slides-chapter05-1.tex │ └── vs-slides-chapter05-3.tex └── SoSe23-ITS │ └── SoSe23 │ └── Vorlesung │ ├── _Termin-1 │ ├── vs-slides-chapter00.pdf │ └── vs-slides-chapter01.pdf │ ├── _Termin-10 │ └── vs-slides-chapter04-2.pdf │ ├── _Termin-11 │ ├── vs-slides-chapter05-1.pdf │ ├── vs-slides-chapter05-2.pdf │ └── vs-slides-chapter05-3.pdf │ ├── _Termin-12 │ └── vs-slides-chapter06-1.pdf │ ├── _Termin-2 │ ├── vs-slides-chapter01-2.pdf │ └── vs-slides-chapter01-3.pdf │ ├── _Termin-3 │ └── vs-slides-chapter02-1.pdf │ ├── _Termin-4 │ └── vs-slides-chapter02-2.pdf │ ├── _Termin-5 │ ├── vs-slides-chapter02-3.pdf │ └── vs-slides-chapter02-4.pdf │ ├── _Termin-6 │ └── vs-slides-chapter02-5.pdf │ ├── _Termin-7 │ └── vs-slides-chapter03-1.pdf │ ├── _Termin-8 │ └── vs-slides-chapter03-2.pdf │ └── _Termin-9 │ └── vs-slides-chapter04-1.pdf ├── .gitignore ├── .gitlab-ci.yml ├── .github └── workflows │ └── tex_compile.yml ├── createAll.sh ├── .devcontainer └── devcontainer.json └── vs-slides-chapter00.tex /fig/tex-grapics/src/chord.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.snm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.toc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.out: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.snm: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.toc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/MainRemote.java: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \gdef \@abspage@last{1} 3 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ1-hyper.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \gdef \@abspage@last{1} 3 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ2-hyper.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \gdef \@abspage@last{1} 3 | -------------------------------------------------------------------------------- /fig/uml/zab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/zab.png -------------------------------------------------------------------------------- /fig/uml/broker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/broker.png -------------------------------------------------------------------------------- /fig/uml/chord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/chord.png -------------------------------------------------------------------------------- /fig/uml/lampe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/lampe.png -------------------------------------------------------------------------------- /fig/uml/proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/proxy.png -------------------------------------------------------------------------------- /fig/uml/raft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/raft.png -------------------------------------------------------------------------------- /fig/uml/stuhl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/stuhl.png -------------------------------------------------------------------------------- /fig/uml/trader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/trader.png -------------------------------------------------------------------------------- /fig/graphics/haw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/graphics/haw.jpg -------------------------------------------------------------------------------- /fig/graphics/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/graphics/logo.jpg -------------------------------------------------------------------------------- /fig/uml/default-mvc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/default-mvc.png -------------------------------------------------------------------------------- /fig/uml/factory-seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/factory-seq.png -------------------------------------------------------------------------------- /fig/uml/paxos-issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/paxos-issue.png -------------------------------------------------------------------------------- /fig/uml/rpc-app-seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/rpc-app-seq.png -------------------------------------------------------------------------------- /fig/uml/rpc-simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/rpc-simple.png -------------------------------------------------------------------------------- /fig/uml/singleton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/singleton.png -------------------------------------------------------------------------------- /fig/uml/src/simple-signal.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Sender 3 | Sender ->] : Signal senden 4 | @enduml 5 | -------------------------------------------------------------------------------- /vs-script-first-v01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/vs-script-first-v01.pdf -------------------------------------------------------------------------------- /fig/uml/async-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/async-message.png -------------------------------------------------------------------------------- /fig/uml/callback-seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/callback-seq.png -------------------------------------------------------------------------------- /fig/uml/factory-class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/factory-class.png -------------------------------------------------------------------------------- /fig/uml/intercept-seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/intercept-seq.png -------------------------------------------------------------------------------- /fig/uml/mvc-observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/mvc-observer.png -------------------------------------------------------------------------------- /fig/uml/mvc-varianten.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/mvc-varianten.png -------------------------------------------------------------------------------- /fig/uml/paxos-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/paxos-default.png -------------------------------------------------------------------------------- /fig/uml/simple-event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-event.png -------------------------------------------------------------------------------- /fig/uml/simple-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-layers.png -------------------------------------------------------------------------------- /fig/uml/simple-signal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-signal.png -------------------------------------------------------------------------------- /fig/uml/simple-tiers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-tiers.png -------------------------------------------------------------------------------- /fig/uml/sync-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/sync-message.png -------------------------------------------------------------------------------- /fig/graphics/Schichten.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/graphics/Schichten.jpg -------------------------------------------------------------------------------- /fig/uml/callback-class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/callback-class.png -------------------------------------------------------------------------------- /fig/uml/default-observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/default-observer.png -------------------------------------------------------------------------------- /fig/uml/intercept-class.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/intercept-class.png -------------------------------------------------------------------------------- /fig/uml/seq-mvc-observer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/seq-mvc-observer.png -------------------------------------------------------------------------------- /fig/uml/simple-event (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-event (2).png -------------------------------------------------------------------------------- /fig/uml/simple-event (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-event (3).png -------------------------------------------------------------------------------- /fig/uml/sterotypen-mvc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/sterotypen-mvc.png -------------------------------------------------------------------------------- /fig/uml/stuhl-function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/stuhl-function.png -------------------------------------------------------------------------------- /fig/uml/stuhl-resourcen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/stuhl-resourcen.png -------------------------------------------------------------------------------- /fig/graphics/CAP-Diagramm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/graphics/CAP-Diagramm.png -------------------------------------------------------------------------------- /fig/tex-grapics/chord.pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chord.pdf.png -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/chord.pdf -------------------------------------------------------------------------------- /fig/uml/client-server-tcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/client-server-tcp.png -------------------------------------------------------------------------------- /fig/uml/iso-osi-reference.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/iso-osi-reference.png -------------------------------------------------------------------------------- /fig/uml/paxos-issue-solve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/paxos-issue-solve.png -------------------------------------------------------------------------------- /fig/uml/rpc-middleware-seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/rpc-middleware-seq.png -------------------------------------------------------------------------------- /fig/uml/simple-signal (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/simple-signal (2).png -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/Schalter.java: -------------------------------------------------------------------------------- 1 | 2 | public interface Schalter { 3 | void toggleLampe(); 4 | } 5 | 6 | 7 | -------------------------------------------------------------------------------- /fig/uml/client-server-simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/client-server-simple.png -------------------------------------------------------------------------------- /fig/uml/clock_exam_concurrent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/clock_exam_concurrent.png -------------------------------------------------------------------------------- /slides/Week-2/fig/Skalierung.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/slides/Week-2/fig/Skalierung.png -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ1-hyper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/typ1-hyper.pdf -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ2-hyper.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/typ2-hyper.pdf -------------------------------------------------------------------------------- /slides/Week-1/fig/Definition-VS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/slides/Week-1/fig/Definition-VS.png -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.synctex.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/chord.synctex.gz -------------------------------------------------------------------------------- /fig/uml/clock_exam_concurrent_vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/clock_exam_concurrent_vector.png -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ1-hyper.synctex.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/typ1-hyper.synctex.gz -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ2-hyper.synctex.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/typ2-hyper.synctex.gz -------------------------------------------------------------------------------- /fig/uml/clock_exam_concurrent_lamport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/uml/clock_exam_concurrent_lamport.png -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter00.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter00.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter01-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter01-1.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter01-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter01-2.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter01-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter01-3.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter02-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter02-1.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter02-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter02-2.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter02-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter02-3.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter02-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter02-4.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter02-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter02-5.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter03-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter03-1.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter03-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter03-2.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter04-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter04-1.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter04-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter04-2.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter05-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter05-1.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter05-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter05-2.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter05-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter05-3.pdf -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter06-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/slide_archive/vs-slides-chapter06-1.pdf -------------------------------------------------------------------------------- /fig/uml/src/rpc-app-seq.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant "Controller" as Pi 3 | participant "Lamp" as Lampe 4 | 5 | Pi -> Lampe : controlLamp(true) 6 | @enduml 7 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/chandy-lamport-algorithmus.pdf -------------------------------------------------------------------------------- /fig/graphics/CADS_Logo_Quadrat_300x300_RGB_72dpi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/graphics/CADS_Logo_Quadrat_300x300_RGB_72dpi.jpg -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-0.png -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-1.png -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-2.png -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-3.png -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-4.png -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-5.png -------------------------------------------------------------------------------- /fig/tex-grapics/chandy-lamport-algorithmus.pdf-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/chandy-lamport-algorithmus.pdf-6.png -------------------------------------------------------------------------------- /fig/uml/src/lampe.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | state "Ausgeschaltet" as off 3 | state "Eingeschaltet" as on 4 | 5 | off --> on : Einschalten 6 | on --> off : Ausschalten 7 | @enduml 8 | -------------------------------------------------------------------------------- /fig/uml/src/simple-event.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | [*] -> Zustand1 : Event ausgelöst 3 | Zustand1 -> Zustand2 : Aktion ausführen 4 | Zustand2 -> [*] : Event beendet 5 | @enduml 6 | -------------------------------------------------------------------------------- /fig/tex-grapics/createFromPDFJPG.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for file in src/*.pdf 3 | do 4 | convert -trim -density 300 ${file} -quality 90 ${file}.png 5 | done 6 | mv src/*.png . 7 | 8 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.synctex.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/fig/tex-grapics/src/chandy-lamport-algorithmus.synctex.gz -------------------------------------------------------------------------------- /fig/uml/src/async-message.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Sender 3 | participant Empfänger 4 | Sender -> Empfänger : Nachricht senden 5 | Empfänger -> Sender: Nachricht speichern 6 | @enduml 7 | -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-1/vs-slides-chapter00.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-1/vs-slides-chapter00.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-1/vs-slides-chapter01.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-1/vs-slides-chapter01.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-10/vs-slides-chapter04-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-10/vs-slides-chapter04-2.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-11/vs-slides-chapter05-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-11/vs-slides-chapter05-1.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-11/vs-slides-chapter05-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-11/vs-slides-chapter05-2.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-11/vs-slides-chapter05-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-11/vs-slides-chapter05-3.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-12/vs-slides-chapter06-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-12/vs-slides-chapter06-1.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-2/vs-slides-chapter01-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-2/vs-slides-chapter01-2.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-2/vs-slides-chapter01-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-2/vs-slides-chapter01-3.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-3/vs-slides-chapter02-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-3/vs-slides-chapter02-1.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-4/vs-slides-chapter02-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-4/vs-slides-chapter02-2.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-5/vs-slides-chapter02-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-5/vs-slides-chapter02-3.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-5/vs-slides-chapter02-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-5/vs-slides-chapter02-4.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-6/vs-slides-chapter02-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-6/vs-slides-chapter02-5.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-7/vs-slides-chapter03-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-7/vs-slides-chapter03-1.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-8/vs-slides-chapter03-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-8/vs-slides-chapter03-2.pdf -------------------------------------------------------------------------------- /Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-9/vs-slides-chapter04-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Transport-Protocol/vs_script_ai/main/Archive/SoSe23-ITS/SoSe23/Vorlesung/_Termin-9/vs-slides-chapter04-1.pdf -------------------------------------------------------------------------------- /fig/uml/src/sync-message.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Sender 3 | participant Empfänger 4 | Sender -> Empfänger : Anfrage senden 5 | activate Empfänger 6 | Empfänger --> Sender : Antwort senden 7 | deactivate Empfänger 8 | @enduml 9 | -------------------------------------------------------------------------------- /fig/uml/src/stuhl-function.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Stuhl{ 3 | + sitzen(): void 4 | } 5 | class EleganterStuhl implements Stuhl { 6 | + sitzen(): void 7 | } 8 | class Bierkiste implements Stuhl { 9 | + sitzen(): void 10 | } 11 | @enduml 12 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.nav: -------------------------------------------------------------------------------- 1 | \headcommand {\beamer@partpages {1}{1}} 2 | \headcommand {\beamer@subsectionpages {1}{1}} 3 | \headcommand {\beamer@sectionpages {1}{1}} 4 | \headcommand {\beamer@documentpages {1}} 5 | \headcommand {\gdef \inserttotalframenumber {0}} 6 | -------------------------------------------------------------------------------- /fig/uml/src/stuhl-resourcen.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | entity Sitz { 3 | + SitzID : int 4 | } 5 | 6 | entity Bein { 7 | + BeinID : int 8 | } 9 | 10 | entity Lehne { 11 | + LehneID : int 12 | } 13 | 14 | Bein }|..|| Sitz 15 | Lehne ||..|| Sitz 16 | @enduml 17 | -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/SchalterLocal.java: -------------------------------------------------------------------------------- 1 | public class SchalterLocal impplements Schalter{ 2 | public void toggleLampe() 3 | LampenService lampenService = LampenService.getInstance(); 4 | lampenService.toggleLampe(); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-07-states.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{States} 3 | \begin{frame} 4 | \frametitle{States} 5 | \framesubtitle{Einordnung} 6 | \begin{itemize} 7 | \item stateful 8 | \item stateless 9 | \end{itemize} 10 | \end{frame} 11 | -------------------------------------------------------------------------------- /fig/uml/createUML.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export PLANTUML_JAR="/Users/martin/lib/plantuml.jar" 3 | export GRAPHVIZ_DOT="/opt/homebrew/bin/dot" 4 | for file in src/*.pluml 5 | do 6 | java -Djava.awt.headless=true -jar /Users/martin/lib/plantuml.jar -charset UTF-8 "${file}" 7 | done 8 | mv src/*.png ./ 9 | -------------------------------------------------------------------------------- /fig/uml/src/seq-mvc-observer.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | actor User 4 | participant Pi 5 | participant Lampe 6 | 7 | 8 | User -> Pi : Turn on 9 | Pi -> Lampe : addObserver(Observer) 10 | Lampe -> Lampe : Register Observer 11 | Lampe --> Pi : Acknowledge 12 | Pi --> User : Confirmation 13 | 14 | @enduml -------------------------------------------------------------------------------- /fig/uml/src/callback-class.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | interface Callback { 4 | + onEvent(message: String) 5 | } 6 | 7 | class Task { 8 | + execute() 9 | } 10 | 11 | class Main { 12 | + main(args: String[]) 13 | } 14 | 15 | Task --> Callback : uses > onEvent 16 | Main --> Task : creates 17 | Main --> Callback : implements 18 | 19 | @enduml -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-00/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-03/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-04/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-05/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-06/_slide-xx-template.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Titel der Folie} 5 | \framesubtitle{Untertitel der Folie} 6 | \begin{itemize} 7 | \item Erster Punkt 8 | \item Zweiter Punkt 9 | \item Dritter Punkt 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /fig/uml/src/singleton.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | class Singleton { 3 | - static instance: Singleton 4 | - Singleton() 5 | + static getInstance(): Singleton 6 | } 7 | 8 | note right of Singleton: Private constructor\nprevents instantiation\nfrom other classes 9 | note top of Singleton: Only one instance\nis created and\naccessible via getInstance() 10 | @enduml -------------------------------------------------------------------------------- /fig/uml/src/proxy.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | class Client 3 | 4 | interface Subject { 5 | +request(): void 6 | } 7 | 8 | class RealSubject { 9 | +request(): void 10 | } 11 | 12 | class Proxy { 13 | +request(): void 14 | } 15 | 16 | Client -right-> Subject 17 | Proxy .up.|> Subject 18 | RealSubject -up-|> Subject 19 | Proxy -> RealSubject 20 | 21 | @enduml 22 | -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/SchalterRemote.java: -------------------------------------------------------------------------------- 1 | public class SchalterRemote implements Schalter{ 2 | public void toggleLampe() { 3 | // Senden der Anfrage über einen Socket 4 | try { 5 | LampenServiceClientStub.toggleLampe(); 6 | } catch (IOException e) { 7 | e.printStackTrace(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.nav: -------------------------------------------------------------------------------- 1 | \headcommand {\slideentry {0}{0}{1}{1/7}{}{0}} 2 | \headcommand {\beamer@framepages {1}{7}} 3 | \headcommand {\beamer@partpages {1}{7}} 4 | \headcommand {\beamer@subsectionpages {1}{7}} 5 | \headcommand {\beamer@sectionpages {1}{7}} 6 | \headcommand {\beamer@documentpages {7}} 7 | \headcommand {\gdef \inserttotalframenumber {1}} 8 | -------------------------------------------------------------------------------- /fig/uml/src/default-mvc.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class Model { 4 | +data: Object 5 | } 6 | 7 | class View { 8 | +update() 9 | } 10 | 11 | class Controller { 12 | +handleRequest() 13 | } 14 | 15 | 16 | Model <-l- View : data 17 | Model ..|> View : notify 18 | Controller -> Model : data 19 | Controller <|.. View : notify 20 | Controller -> View : data 21 | @enduml -------------------------------------------------------------------------------- /fig/uml/src/callback-seq.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Main 3 | participant Task 4 | participant Callback 5 | 6 | Main -> Task : new Task(callback) 7 | Main -> Task : execute() 8 | activate Task 9 | 10 | Task -> Callback : onEvent(message) 11 | activate Callback 12 | Callback --> Task : return 13 | deactivate Callback 14 | 15 | Task --> Main : return 16 | deactivate Task 17 | 18 | @enduml -------------------------------------------------------------------------------- /fig/uml/src/sterotypen-mvc.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | class Lampe << Model >> { 4 | +data: Object 5 | } 6 | 7 | class KundenApp << View >> { 8 | +update() 9 | } 10 | 11 | class Pi << Controller >> { 12 | +handleRequest() 13 | } 14 | 15 | 16 | Lampe <-l- KundenApp : data 17 | Lampe ..|> KundenApp : notify 18 | Pi -> Lampe : data 19 | Pi <|.. KundenApp : notify 20 | Pi -> KundenApp : data 21 | @enduml -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-19-triggered.tex: -------------------------------------------------------------------------------- 1 | %\section{} 2 | \subsection{Time vs Event Triggered} 3 | \begin{frame} 4 | \frametitle{Time Triggered vs Event Triggered} 5 | \framesubtitle{Diskussion} 6 | \begin{itemize} 7 | \item Synchronisation 8 | \item Determinismus 9 | \item Koordination 10 | \item Latenz 11 | \item Ressourcen 12 | \end{itemize} 13 | \end{frame} 14 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-02-HH-example.tex: -------------------------------------------------------------------------------- 1 | \section{VS in Hamburg} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{VS in Hamburg} 5 | \framesubtitle{Anwendungsbeispiele} 6 | \begin{itemize} 7 | \item Smart Port in Hamburg 8 | \item Verteilte Systeme in Flugzeugen (Airbus) 9 | \item Real-Time Gross Settlement System (RTGS), Clearinghaus-System 10 | \end{itemize} 11 | \end{frame} 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | vs-script-first-v01.aux 2 | vs-script-first-v01.bcf 3 | vs-script-first-v01.idx 4 | vs-script-first-v01.ilg 5 | vs-script-first-v01.ind 6 | vs-script-first-v01.log 7 | vs-script-first-v01.out 8 | vs-script-first-v01.pytxcode 9 | vs-script-first-v01.run.xml 10 | vs-script-first-v01.toc 11 | vs-script-orga.log 12 | vs-script-first-v01.bbl 13 | vs-script-first-v01.blg 14 | vs-script-first-v01.synctex.gz 15 | PDF/* 16 | indent.log 17 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-08-transparenz.tex: -------------------------------------------------------------------------------- 1 | \section{Transparenz} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Transparenz} 5 | \framesubtitle{Einzelne Transparenzen} 6 | \begin{itemize} 7 | \item Zugriff 8 | \item Lokalität 9 | \item Migration 10 | \item Replikation 11 | \item Fehler 12 | \item Ort 13 | \item Nebenläufigkeit/Skalierung 14 | \end{itemize} 15 | \end{frame} 16 | -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/SchalterFactory.java: -------------------------------------------------------------------------------- 1 | public class SchalterFactory { 2 | public static Schalter getSchalter(String type) { 3 | if (type.equalsIgnoreCase("local")) { 4 | return new SchalterLocal(); 5 | } else if (type.equalsIgnoreCase("remote")) { 6 | return new SchalterRemote(); 7 | } 8 | throw new IllegalArgumentException("Unbekannter Schaltertyp: " + type); 9 | } 10 | } -------------------------------------------------------------------------------- /fig/uml/src/chord.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | !define CHORD_NODE 7C8282 4 | !define KEY_COLOR C16E6A 5 | 6 | skinparam component { 7 | backgroundColor CHORD_NODE 8 | borderColor Transparent 9 | ArrowColor Black 10 | } 11 | 12 | actor User 13 | component [Node 1 (0)] as Node1 14 | component [Node 2 (3)] as Node2 15 | component [Node 3 (6)] as Node3 16 | } 17 | 18 | User --> Node1 : Request(Key 7) 19 | Node1 --> Node2 20 | Node2 --> Node3 21 | 22 | @enduml -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/LampenService.java: -------------------------------------------------------------------------------- 1 | public class LampenService { 2 | private static LampenService instance; 3 | private LampenService() {} 4 | 5 | public static LampenService getInstance() { 6 | if (instance == null) { 7 | instance = new LampenService(); 8 | } 9 | return instance; 10 | } 11 | 12 | public void toggleLampe() { 13 | System.out.println("toogle"); 14 | } 15 | } -------------------------------------------------------------------------------- /fig/uml/src/factory-class.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Product { 3 | + operation(): String 4 | } 5 | 6 | class ConcreteProductA { 7 | + operation(): String 8 | } 9 | 10 | class ConcreteProductB { 11 | + operation(): String 12 | } 13 | 14 | class ProductFactory { 15 | + createProduct(type: String): Product 16 | } 17 | 18 | Product <|.. ConcreteProductA 19 | Product <|.. ConcreteProductB 20 | 21 | ProductFactory --> Product: creates 22 | @enduml 23 | -------------------------------------------------------------------------------- /fig/uml/src/intercept-seq.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | actor Client 3 | component Component 4 | component FirstInterceptor 5 | component SecondInterceptor 6 | component LastInterceptor 7 | Client -> Component: sendRequest() 8 | Component -> FirstInterceptor: processMessage() 9 | FirstInterceptor -> SecondInterceptor: processMessage() 10 | SecondInterceptor -> LastInterceptor: processMessage() 11 | LastInterceptor -> Component: processMessage() 12 | Component -> Client: response 13 | @enduml 14 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-01-intro-architecure.tex: -------------------------------------------------------------------------------- 1 | \section{Architektur} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Architektur in Verteilten Systemen} 5 | \framesubtitle{Allgemein} 6 | \begin{itemize} 7 | \item Freiheitsgrade der Realisierung 8 | \item Am Ende Aufruf ISA der Architekturen 9 | \item Notwendigkeit der Kommunikation 10 | \item Zerlegung beherrschbar durch Zerlegungsmethoden 11 | \end{itemize} 12 | \end{frame} 13 | -------------------------------------------------------------------------------- /fig/uml/src/factory-seq.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Client 3 | participant ProductFactory 4 | participant Product 5 | 6 | Client -> ProductFactory: createProduct("A") 7 | ProductFactory -> ConcreteProductA: new() 8 | ProductFactory -> Client: return productA 9 | Client -> Product: operation() 10 | 11 | Client -> ProductFactory: createProduct("B") 12 | ProductFactory -> ConcreteProductB: new() 13 | ProductFactory -> Client: return productB 14 | Client -> Product: operation() 15 | @enduml -------------------------------------------------------------------------------- /fig/uml/src/mvc-observer.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | class Lampe << Model >> << Observable >>{ 5 | +data: Object 6 | +addObserver(Observer) 7 | +removeObserver(Observer) 8 | +notifyObservers() 9 | } 10 | 11 | class KundenApp << View >> << Observer >>{ 12 | +update() 13 | } 14 | 15 | 16 | interface Observer { 17 | +update() 18 | } 19 | 20 | KundenApp -up-|> Observer 21 | 22 | 23 | 24 | Lampe "1" -right-> "*" Observer : notify 25 | Observer <|.. KundenApp 26 | 27 | @enduml -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-10-pitfalls.tex: -------------------------------------------------------------------------------- 1 | \section{Die Trugschlüsse} 2 | \begin{frame} 3 | \frametitle{Die Trugschlüsse} 4 | \begin{enumerate} 5 | \item Das Netzwerk ist zuverlässig. 6 | \item Die Latenzzeit ist Null. 7 | \item Die Bandbreite ist unendlich. 8 | \item Das Netzwerk ist sicher. 9 | \item Die Topologie ändert sich nicht. 10 | \item Es gibt nur einen Verwalter. 11 | \item Transportkosten sind Null. 12 | \item Das Netzwerk ist homogen. 13 | \end{enumerate} 14 | \end{frame} 15 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-05/slide-01-allgemein.tex: -------------------------------------------------------------------------------- 1 | \section{Algorithmen} 2 | \subsection{Allgemein} 3 | \begin{frame} 4 | \frametitle{Allgemein} 5 | \framesubtitle{Probleme für Algorithmen} 6 | \begin{itemize} 7 | \item Effizienz 8 | \item Konsensprobleme 9 | \item Koordinationsprobleme 10 | \item Replikations- und Konsistenzprobleme 11 | \item Fehlertoleranz- und Wiederherstellungsprobleme 12 | \item Lastverteilungs- und Ressourcenverwaltungsprobleme 13 | \end{itemize} 14 | \end{frame} 15 | -------------------------------------------------------------------------------- /fig/uml/src/rpc-middleware-seq.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | participant "Client Stub" as Client_Stub 4 | participant "Network" as Network 5 | participant "Server Stub" as Server_Stub 6 | 7 | 8 | -> Client_Stub : Call remote procedure 9 | Client_Stub -> Network : send request 10 | Network -> Server_Stub : Deliver request 11 | Server_Stub -> : call local procedure 12 | Server_Stub <- : Return result 13 | Server_Stub -> Network : send response 14 | Network -> Client_Stub : Deliver response 15 | <- Client_Stub : return result 16 | @enduml 17 | -------------------------------------------------------------------------------- /fig/uml/src/paxos-default.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant "Proposer" as P 3 | participant "Acceptor1" as A1 4 | participant "Acceptor2" as A2 5 | participant "Acceptor3" as A3 6 | 7 | P -> A1: Prepare(1) 8 | P -> A2: Prepare(1) 9 | P -> A3: Prepare(1) 10 | 11 | A1 --> P: Promise(1, null) 12 | A2 --> P: Promise(1, null) 13 | A3 --> P: Promise(1, null) 14 | 15 | P -> A1: Accept(1, Value) 16 | P -> A2: Accept(1, Value) 17 | P -> A3: Accept(1, Value) 18 | 19 | A1 --> P: Accepted(1, Value) 20 | A2 --> P: Accepted(1, Value) 21 | A3 --> P: Accepted(1, Value) 22 | 23 | @enduml 24 | -------------------------------------------------------------------------------- /fig/uml/src/simple-tiers.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | skinparam monochrome true 3 | 4 | package "Client Tier" { 5 | class Client { 6 | +displayForm() 7 | +handleInput() 8 | +showResults() 9 | } 10 | } 11 | 12 | package "Application Tier" { 13 | class ApplicationServer { 14 | +validateUser() 15 | +performOperation() 16 | +generateReport() 17 | } 18 | } 19 | 20 | package "Database Tier" { 21 | class DatabaseServer { 22 | +saveData() 23 | +getData() 24 | } 25 | } 26 | 27 | Client <-> ApplicationServer : Req 28 | ApplicationServer <-> DatabaseServer : Q 29 | @enduml 30 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: blang/latex:ctanfull 2 | 3 | before_script: 4 | - apt-get update 5 | - apt-get install -y biber 6 | 7 | stages: 8 | - workflow-protection 9 | 10 | do-some-latex: 11 | stage: workflow-protection 12 | only: 13 | - tags 14 | 15 | script: 16 | - pdflatex -interaction=nonstopmode "vs-script-first-v01.tex" 17 | - biber "vs-script-first-v01" 18 | - pdflatex -interaction=nonstopmode " Interceptor 23 | Component --> Message 24 | Client -> Component 25 | @enduml 26 | -------------------------------------------------------------------------------- /fig/uml/src/simple-layers.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | skinparam monochrome true 3 | 4 | package "Presentation Layer" { 5 | class PresentationLayer { 6 | +displayForm() 7 | +handleInput() 8 | +showResults() 9 | } 10 | } 11 | 12 | package "Business Logic Layer" { 13 | class BusinessLogicLayer { 14 | +validateUser() 15 | +performOperation() 16 | +generateReport() 17 | } 18 | } 19 | 20 | package "Data Access Layer" { 21 | class DataAccessLayer { 22 | +saveData() 23 | +getData() 24 | } 25 | } 26 | 27 | PresentationLayer --> BusinessLogicLayer 28 | BusinessLogicLayer --> DataAccessLayer 29 | @enduml 30 | 31 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-31-watchdog.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Watchdog} 3 | \begin{frame} 4 | \frametitle{Watchtog} 5 | \framesubtitle{Watchdog} 6 | \begin{itemize} 7 | \item Überwachung von Ressourcen oder Prozessen in einem System 8 | \item Erhöht Stabilität und Zuverlässigkeit 9 | \item Zwei Hauptkomponenten: Watchdog und überwachtes System 10 | \item Frühzeitige Erkennung und Behebung von Problemen 11 | \item Anwendbar in verschiedenen Bereichen (z.B. eingebettete Systeme, verteilte Systeme) 12 | \item Trennung der Verantwortlichkeiten für optimale Effektivität 13 | \end{itemize} 14 | \end{frame} 15 | -------------------------------------------------------------------------------- /fig/uml/src/zab.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant "Server1" as S1 3 | participant "Server2" as S2 4 | participant "Server3" as S3 5 | 6 | S1 -> S2: Propose (Epoch number, Server ID) 7 | S1 -> S3: Propose (Epoch number, Server ID) 8 | 9 | S2 --> S1: Acknowledge 10 | S3 --> S1: Acknowledge 11 | 12 | note over S1: S1 becomes Leader 13 | 14 | S1 -> S2: Synchronize (State) 15 | S1 -> S3: Synchronize (State) 16 | 17 | S2 --> S1: Acknowledge 18 | S3 --> S1: Acknowledge 19 | 20 | S1 -> S2: Broadcast (Proposal with transaction ID) 21 | S1 -> S3: Broadcast (Proposal with transaction ID) 22 | 23 | S2 --> S1: Acknowledge 24 | S3 --> S1: Acknowledge 25 | @enduml 26 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-03-seperation.tex: -------------------------------------------------------------------------------- 1 | \subsection{Datenseparation} 2 | \begin{frame} 3 | \frametitle{Datenseperation} 4 | \framesubtitle{Einführung} 5 | \begin{itemize} 6 | \item Daten auf mehreren Knoten in einem Netzwerk 7 | \item Aufteilung von Daten in kleine Teile 8 | \item Verschiedene Methoden 9 | \end{itemize} 10 | \end{frame} 11 | 12 | \begin{frame} 13 | \frametitle{Datenseperation} 14 | \framesubtitle{Methoden} 15 | \begin{itemize} 16 | \item Horizontale Partitionierung 17 | \item Vertikale Partitionierung 18 | \item Sharding 19 | \item Replikation 20 | \end{itemize} 21 | \end{frame} -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/MainLocal.java: -------------------------------------------------------------------------------- 1 | public class MainLocal { 2 | public static void main(String[] args) { 3 | Schalter schalter; 4 | 5 | // Auswahl des Schalters basierend auf einem Kriterium (z.B. Kommandozeilenargument) 6 | // Hier wählen wir statisch "local" oder "remote" 7 | String schalterTyp = "local"; // oder "remote" 8 | 9 | schalter = SchalterFactory.getSchalter(schalterTyp); 10 | schalter.toggleLampe(); 11 | 12 | // If Remote 13 | // starte skeleton 14 | // LampenServiceSkeleton sk = new LampenServiceSkeleton(); 15 | // sk.listen(); 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /fig/uml/src/default-observer.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | interface Subject { 3 | + attach(observer: Observer) 4 | + detach(observer: Observer) 5 | + notify() 6 | } 7 | 8 | interface Observer { 9 | + update() 10 | } 11 | 12 | class ConcreteSubject { 13 | - observers: Observer[] 14 | + attach(observer: Observer) 15 | + detach(observer: Observer) 16 | + notify() 17 | + setState(state: string) 18 | - getState(): string 19 | } 20 | 21 | class ConcreteObserver { 22 | + update() 23 | - subject: ConcreteSubject 24 | - state: string 25 | } 26 | 27 | Subject <|-- ConcreteSubject 28 | Observer <|.. ConcreteObserver 29 | ConcreteSubject *-- Observer 30 | 31 | @enduml 32 | -------------------------------------------------------------------------------- /.github/workflows/tex_compile.yml: -------------------------------------------------------------------------------- 1 | # .github/workflows/build_latex.yml 2 | name: Build LaTeX PDF 3 | on: push 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - name: Check out Git Repository 9 | uses: actions/checkout@v2 10 | 11 | - name: Build LaTeX files 12 | uses: xu-cheng/latex-action@v2 13 | with: 14 | root_file: vs-script-first-v01.tex 15 | latexmk_use_lualatex: true 16 | 17 | - name: Check if PDF file is generated 18 | run: | 19 | file vs-script-first-v01.pdf | grep -q ' PDF ' 20 | 21 | # - name: Upload PDF 22 | # uses: actions/upload-artifact@v2 23 | # with: 24 | # name: PDF 25 | # path: vs-script-first-v01.pdf 26 | -------------------------------------------------------------------------------- /fig/uml/src/mvc-varianten.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | 4 | package "CVM (Controller-View-Model)" { 5 | class C_User 6 | class C_Model 7 | class C_View 8 | class C_Controller 9 | } 10 | C_User --> C_View : Input 11 | C_User <|... C_View: notify 12 | C_Controller ...|> C_View : notify 13 | C_Controller --> C_Model : Update Data 14 | C_View --> C_Controller : User Input 15 | C_Model ...|> C_Controller : notify 16 | 17 | package "VCM (View-Controller-Model)" { 18 | class V_User 19 | class V_Model 20 | class V_View 21 | class V_Controller 22 | } 23 | V_User --> V_Controller : Input 24 | V_User <|... V_View : notify 25 | 26 | 27 | V_Controller --> V_Model : Update Data 28 | V_Model ...|> V_View : Data 29 | 30 | 31 | @enduml -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-06-offen.tex: -------------------------------------------------------------------------------- 1 | \section{Offenheit/ Openess} 2 | \subsection{Das Ziel} 3 | \begin{frame} 4 | \frametitle{Offenheit} 5 | \framesubtitle{Adaptierbar sein!} 6 | \begin{itemize} 7 | \item Systemdesign leicht zugänglich und anpassbar 8 | \item Gesteigerte Technologie und Plattformunabhängigkeit 9 | \item Standards und Spezefikationen für Wettbewerb 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \subsection{Beispiele} 14 | \begin{frame} 15 | \frametitle{Offenheit} 16 | \framesubtitle{Beispiele} 17 | \begin{itemize} 18 | \item Offene Standards für die Kommunikation 19 | \item Open-Source-Software 20 | \item Offene APIs 21 | \item Offene Datenformate 22 | \end{itemize} 23 | \end{frame} 24 | -------------------------------------------------------------------------------- /fig/uml/src/raft.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant "Candidate" as C 3 | participant "Follower1" as F1 4 | participant "Follower2" as F2 5 | participant "Follower3" as F3 6 | 7 | C -> F1: RequestVote 8 | C -> F2: RequestVote 9 | C -> F3: RequestVote 10 | 11 | F1 --> C: Vote 12 | F2 --> C: Vote 13 | F3 --> C: Vote 14 | 15 | note over C: C becomes Leader 16 | 17 | C -> F1: AppendEntries 18 | C -> F2: AppendEntries 19 | C -> F3: AppendEntries 20 | 21 | F1 --> C: Acknowledge 22 | F2 --> C: Acknowledge 23 | F3 --> C: Acknowledge 24 | 25 | note over C: Entries are committed 26 | 27 | C -> F1: AppendEntries (with commit index) 28 | C -> F2: AppendEntries (with commit index) 29 | C -> F3: AppendEntries (with commit index) 30 | 31 | F1 --> C: Acknowledge 32 | F2 --> C: Acknowledge 33 | F3 --> C: Acknowledge 34 | @enduml 35 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-05-kopplung.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Kopplung} 3 | \begin{frame} 4 | \frametitle{Kopplung} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Art und Weise wie interagiert und kommuniziert wird 8 | \item Wahl der Kopplungsart wesentlich für Aufbau und Leistung 9 | \item Starker Einfluss auf Interoperabilität und Integration 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Kopplung} 15 | \framesubtitle{Arten} 16 | \begin{itemize} 17 | \item Direkte Kopplung 18 | \begin{itemize} 19 | \item Mediator-System 20 | \item Middleware 21 | \end{itemize} 22 | \item Indirekte Kopplung 23 | \item Losgekoppelte Kopplung 24 | \item Strukturelle Kopplung 25 | \end{itemize} 26 | \end{frame} 27 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-17-p2p.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Peer-to-Peer-Architektur} 3 | \begin{frame} 4 | \frametitle{Peer-to-Peer-Architektur} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Einzelne Knoten (Peers) kommunizieren direkt miteinander 8 | \item Knoten sowohl Clients als auch Server 9 | \item Teilen Ressourcen und tragen gemeinsam zur Leistung und Skalierbarkeit des Netzwerks bei 10 | \end{itemize} 11 | \end{frame} 12 | \begin{frame} 13 | \frametitle{Peer-to-Peer-Architektur} 14 | \framesubtitle{Beispiele} 15 | \begin{itemize} 16 | \item Dateifreigabe 17 | \item Kommunikation und Messaging 18 | \item Blockchain und Kryptowährungen 19 | \item Beispiel wird nochmals Overlay und P2P Architektur deutlich machen 20 | \end{itemize} 21 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-01-intro.tex: -------------------------------------------------------------------------------- 1 | \section{Einleitung} 2 | \subsection{Allgemein} 3 | \frametitle{Verteilte Systeme} 4 | \begin{frame} 5 | \begin{itemize} 6 | \item Vernetzung und Zusammenarbeit von unabhängigen Computern 7 | \item Gemeinsame Lösung von Aufgaben 8 | \item Effektivere und effizientere Lösung von komplexen Anwendungen und Aufgaben 9 | \item Gemeinsame Nutzung von Rechenleistung und Speicherkapazität mehrerer Computer 10 | \end{itemize} 11 | \end{frame} 12 | \subsection{Anwendung} 13 | \begin{frame} 14 | \begin{itemize} 15 | \item Weit verbreitet in vielen Bereichen der Industrie 16 | \item Wichtige Rolle bei der Entwicklung neuer Technologien und Anwendungen 17 | \item Besonders wichtig im Bereich der Künstlichen Intelligenz, des maschinellen Lernens und des Internet of Things 18 | \end{itemize} 19 | 20 | \end{frame} 21 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-05-shared.tex: -------------------------------------------------------------------------------- 1 | \section{Ressourcen-Sharing} 2 | \subsection{Das Ziel} 3 | \begin{frame} 4 | \frametitle{Ressourcen-Sharing} 5 | \framesubtitle{Resourcen gemeinsam nutzen!} 6 | \begin{itemize} 7 | \item Hardware, Software und Daten zwischen verschiedenen Knoten und Anwendungen im System teilen 8 | \item Kann Kosten und Komplexität reduzieren 9 | \item Erhöht Verwaltungsaufwand 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \subsection{Beispiele} 14 | \begin{frame} 15 | \frametitle{Ressourcen-Sharing Beispiele} 16 | \framesubtitle{Aus der Praxis} 17 | \begin{itemize} 18 | \item Virtualisierungstechnologie 19 | \item Blockchain-Technologie (Dezenrale Datenverwaltung) 20 | \item Cloud-Computing-Plattformen (z.B. AWS, Azure, Google Cloud) 21 | \end{itemize} 22 | \end{frame} 23 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-16-micro.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Microservices-Architektur} 3 | \begin{frame} 4 | \frametitle{Microservices-Architektur} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Anwendung ist Sammlung kleiner, unabhängiger und modularer Dienste 8 | \item Dienste sind lose gekoppelt, können unabhängig voneinander entwickelt, bereitgestellt und skaliert werden 9 | \item Entwicklerteam je Dienst 10 | \item Erhöhte Komplexität, Kommunikations-Overhead, Sicherheits- und Authentifizierungsfragen 11 | \end{itemize} 12 | \end{frame} 13 | 14 | \begin{frame} 15 | \frametitle{Microservices-Architektur} 16 | \framesubtitle{Beispiele} 17 | \begin{itemize} 18 | \item Online-Shop 19 | \item Content-Management-System 20 | \item Bankanwendung 21 | \end{itemize} 22 | \end{frame} -------------------------------------------------------------------------------- /fig/uml/src/client-server-tcp.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | !define AWSPuml https://raw.githubusercontent.com/awslabs/aws-icons-for-plantuml/v15.0/dist 3 | !includeurl AWSPuml/AWSCommon.puml 4 | !includeurl AWSPuml/Compute/all.puml 5 | 6 | actor Client 7 | actor Server 8 | 9 | rectangle "TCP/IP\nSchichtenmodell" { 10 | package "Anwendungsschicht" { 11 | Client --> (Anwendungsprotokoll) 12 | Server --> (Anwendungsprotokoll) 13 | } 14 | 15 | package "Transportschicht" { 16 | (Anwendungsprotokoll) --> (TCP/UDP) 17 | (TCP/UDP) --> Client 18 | (TCP/UDP) --> Server 19 | } 20 | 21 | package "Internetschicht" { 22 | (TCP/UDP) --> (IP) 23 | (IP) --> Client 24 | (IP) --> Server 25 | } 26 | 27 | package "Netzzugangsschicht" { 28 | (IP) --> (Ethernet) 29 | (Ethernet) --> Client 30 | (Ethernet) --> Server 31 | } 32 | } 33 | @enduml 34 | -------------------------------------------------------------------------------- /kapitel-02/ExampleSingletonRemote/LampenServiceSkeleton.java: -------------------------------------------------------------------------------- 1 | public class LampenServiceSkeleton { 2 | public void listen() { 3 | try { 4 | ServerSocket serverSocket = new ServerSocket(port); 5 | while (true) { 6 | Socket client = serverSocket.accept(); 7 | InputStream in = client.getInputStream(); 8 | byte[] data = new byte[1024]; 9 | int length = in.read(data); 10 | // Unmarshalling der Anfrage 11 | String request = new String(data, 0, length); 12 | if ("toggleLampe".equals(request)) { 13 | LampenService.getInstance().toggleLampe(); 14 | } 15 | client.close(); 16 | } 17 | } catch (IOException e) { 18 | e.printStackTrace(); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-09-architektur-para.tex: -------------------------------------------------------------------------------- 1 | \section{Architekturparadigmen} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Architekturparadigmen} 5 | \framesubtitle{Überblick} 6 | \begin{itemize} 7 | \item Schichtenarchitektur 8 | \item Client-Server-Architektur 9 | \item Service-Orientierte Architektur (SOA) 10 | \item Ereignisgesteuerte Architektur (Event-Driven) 11 | \item Microservices-Architektur 12 | \item Peer-to-Peer-Architektur (P2P) 13 | \end{itemize} 14 | \end{frame} 15 | 16 | \begin{frame} 17 | \frametitle{Architekturparadigmen} 18 | \framesubtitle{Grundelement node} 19 | \begin{itemize} 20 | \item Autonomes Computerelement 21 | \item Hardware-Systeme oder Software-Prozesse 22 | \item Teilen keinen gemeinsamen Speicher 23 | \item Kommunikation über Nachrichten 24 | \end{itemize} 25 | \end{frame} -------------------------------------------------------------------------------- /fig/uml/src/broker.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package "Client" { 3 | class Client 4 | interface ServiceInterface { 5 | +service1(): void 6 | +service2(): void 7 | } 8 | Client -> ServiceInterface 9 | } 10 | 11 | package "Broker" { 12 | class Broker 13 | class BrokerRegistry 14 | interface BrokerInterface { 15 | +getService(name: String): ServiceInterface 16 | } 17 | Broker -up-> BrokerInterface 18 | BrokerRegistry -up-> BrokerInterface 19 | Client -> BrokerInterface 20 | } 21 | 22 | package "ServiceProviders" { 23 | class ServiceProvider1 { 24 | +service1(): void 25 | } 26 | class ServiceProvider2 { 27 | +service2(): void 28 | } 29 | ServiceProvider1 .up.|> ServiceInterface 30 | ServiceProvider2 .up.|> ServiceInterface 31 | Broker -> ServiceProvider1 32 | Broker -> ServiceProvider2 33 | } 34 | 35 | @enduml 36 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/chord.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usetikzlibrary{positioning} 3 | \begin{document} 4 | \begin{tikzpicture} 5 | % Define nodes 6 | \foreach \i/\k in {0/4,1/3,2/2,3/1,4/0,5/15,6/14,7/13,8/12,9/11,10/10,11/9,12/8,13/7,14/6,15/5} 7 | \node[circle,draw,minimum size=1cm] (\i) at (\i*360/16:4cm) {\k}; 8 | 9 | % Draw connections 10 | \foreach \i/\j in {8/9,9/10,10/11,11/12,12/13,13/14,14/15,15/0} 11 | \draw[-latex] (\j) to[out=(180,in=0] (\i); 12 | 13 | \foreach \i/\j in {4/5,5/6,6/7,7/8} 14 | \draw[-latex] (\j) to[out=60,in=-90] (\i); 15 | 16 | \foreach \i/\j in {0/1,1/2,2/3,3/4} 17 | \draw[-latex] (\j) to[out=290,in=120] (\i); 18 | 19 | 20 | % Label nodes 21 | \node[above=0.1cm of 4] {Node 1}; 22 | \node[above=0.1cm of 1] {Node 2}; 23 | \node[above=0.1cm of 14] {Node 3}; 24 | \node[above=0.1cm of 11] {Node 4}; 25 | \end{tikzpicture} 26 | \end{document} 27 | -------------------------------------------------------------------------------- /fig/uml/src/trader.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | package "Client" { 3 | class Client 4 | interface ServiceInterface { 5 | +service1(): void 6 | +service2(): void 7 | } 8 | Client -> ServiceInterface 9 | } 10 | 11 | package "ServiceLocator" { 12 | class ServiceLocator 13 | class ServiceRegistry 14 | interface LocatorInterface { 15 | +getService(name: String): ServiceInterface 16 | } 17 | ServiceLocator -up-> LocatorInterface 18 | ServiceRegistry -up-> LocatorInterface 19 | Client -> LocatorInterface 20 | } 21 | 22 | package "ServiceProviders" { 23 | class ServiceProvider1 { 24 | +service1(): void 25 | } 26 | class ServiceProvider2 { 27 | +service2(): void 28 | } 29 | ServiceProvider1 .up.|> ServiceInterface 30 | ServiceProvider2 .up.|> ServiceInterface 31 | ServiceLocator -> ServiceProvider1 32 | ServiceLocator -> ServiceProvider2 33 | } 34 | 35 | @enduml 36 | -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ1-hyper.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usetikzlibrary{positioning,shapes} 3 | 4 | \begin{document} 5 | 6 | \begin{tikzpicture}[ 7 | block1/.style={draw, fill=white, rectangle, minimum width=5cm, minimum height=1cm}, 8 | block2/.style={draw, fill=white, rectangle, minimum width=15cm, minimum height=1cm}, 9 | arrow/.style={->, thick} 10 | ] 11 | % Blocks 12 | \node[block2] (hardware) {Hardware}; 13 | \node[block2, above=of hardware] (hypervisor) {Typ 1-Hypervisor}; 14 | \node[block1, above=of hypervisor] (vm1) {Virtuelle Maschine 1}; 15 | \node[block1, right=1cm of vm1] (vm2) {Virtuelle Maschine 2}; 16 | \node[block1, left=7cm of vm2] (vm3) {Virtuelle Maschine 3}; 17 | 18 | % Arrows 19 | \draw[arrow] (hardware) -- (hypervisor); 20 | \draw[arrow] (hypervisor) -- (vm1); 21 | \draw[arrow] (hypervisor) -- (vm2); 22 | \draw[arrow] (hypervisor) -- (vm3); 23 | \end{tikzpicture} 24 | 25 | \end{document} -------------------------------------------------------------------------------- /fig/uml/src/clock_exam_concurrent_vector.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Node1 3 | participant Node2 4 | participant Node3 5 | participant Node4 6 | 7 | Node1 -> Node2: a (1,1,0,0) 8 | Node1 -> Node3: b (2,0,1,0) 9 | Node1 -> Node4: c (3,0,0,1) 10 | Node2 -> Node1: d (4,2,0,0) 11 | Node3 -> Node1: e (5,2,2,0) 12 | Node4 -> Node1: f (6,2,2,2) 13 | Node1 -> Node2: g (7,3,2,2) 14 | Node1 -> Node3: h (8,2,3,1) 15 | Node1 -> Node4: i (2,2,3,2) 16 | 17 | Node2 -> Node1: j (3,2,3,2) 18 | Node3 -> Node2: k (3,3,3,2) 19 | Node4 -> Node3: l (3,3,4,2) 20 | Node1 -> Node4: m (3,3,4,3) 21 | Node2 -> Node3: n (3,4,4,3) 22 | Node3 -> Node4: p (3,4,5,3) 23 | Node4 -> Node1: q (4,4,5,3) 24 | Node1 -> Node2: r (4,5,5,3) 25 | Node2 -> Node4: t (4,5,5,4) 26 | 27 | 28 | Node4 -> Node3: s (4,5,6,4) 29 | Node3 -> Node2: u (4,6,6,4) 30 | Node2 -> Node1: v (5,6,6,4) 31 | Node1 -> Node4: w (5,6,6,5) 32 | Node4 -> Node3: x (5,6,7,5) 33 | Node3 -> Node2: y (5,7,7,5) 34 | Node2 -> Node1: z (6,7,7,5) 35 | @enduml 36 | -------------------------------------------------------------------------------- /fig/uml/src/paxos-issue.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant "Proposer1" as P1 3 | participant "Proposer2" as P2 4 | participant "Acceptor1" as A1 5 | participant "Acceptor2" as A2 6 | participant "Acceptor3" as A3 7 | 8 | P1 -> A1: Prepare(1) 9 | P1 -> A2: Prepare(1) 10 | P1 -> A3: Prepare(1) 11 | 12 | P2 -> A1: Prepare(2) 13 | P2 -> A2: Prepare(2) 14 | P2 -> A3: Prepare(2) 15 | 16 | A1 --> P1: Promise(1, null) 17 | A2 -x P1: Network Failure 18 | A3 --> P1: Promise(1, null) 19 | 20 | A1 --> P2: Promise(2, null) 21 | A2 --> P2: Promise(2, null) 22 | A3 --> P2: Promise(2, null) 23 | 24 | P1 -> A1: Accept(1, Value) 25 | P1 -> A2: Accept(1, Value) 26 | P1 -> A3: Accept(1, Value) 27 | 28 | P2 -> A1: Accept(2, Value) 29 | P2 -> A2: Accept(2, Value) 30 | P2 -> A3: Accept(2, Value) 31 | 32 | A1 -x P1: Process Failure 33 | A2 --> P1: Accepted(1, Value) 34 | A3 --> P1: Accepted(1, Value) 35 | 36 | A1 --> P2: Accepted(2, Value) 37 | A2 --> P2: Accepted(2, Value) 38 | A3 --> P2: Accepted(2, Value) 39 | 40 | @enduml 41 | -------------------------------------------------------------------------------- /createAll.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Prüfen Sie, ob ein Argument übergeben wurde 4 | if [ $# -eq 0 ]; then 5 | echo "Bitte geben Sie den Pfad zum Verzeichnis als Argument an." 6 | exit 1 7 | fi 8 | 9 | # Setzen Sie den Verzeichnispfad 10 | dirpath=$1 11 | 12 | # Prüfen Sie, ob das Verzeichnis existiert 13 | if [ ! -d $dirpath ]; then 14 | echo "Das Verzeichnis $dirpath wurde nicht gefunden." 15 | exit 1 16 | fi 17 | 18 | # Iterieren Sie über alle .tex Dateien im Verzeichnis 19 | for texfile in $dirpath/*.tex; do 20 | # Erhalten Sie den Dateinamen ohne Pfad und Endung 21 | filename=$(basename "$texfile" .tex) 22 | 23 | # Erstellen Sie die PDF-Datei 24 | pdflatex -output-directory=$dirpath $texfile 25 | 26 | # Prüfen Sie, ob die PDF-Erstellung erfolgreich war 27 | if [ $? -eq 0 ]; then 28 | echo "Die PDF-Datei $filename.pdf wurde erfolgreich erstellt." 29 | else 30 | echo "Es gab einen Fehler bei der Erstellung der PDF-Datei $filename.pdf." 31 | exit 1 32 | fi 33 | done 34 | 35 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-04-communication.tex: -------------------------------------------------------------------------------- 1 | \section{Kommunikation} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Kommunikation} 5 | \framesubtitle{Schnittstellen} 6 | \begin{itemize} 7 | \item Datenaustausch 8 | \item Ressourcenmanagement 9 | \item Koordination 10 | \item Fehlererkennung und -behebung 11 | \item Skalierung 12 | \end{itemize} 13 | \end{frame} 14 | 15 | \begin{frame} 16 | \frametitle{Kommunikation} 17 | \framesubtitle{Art} 18 | \begin{itemize} 19 | \item Synchrone Kommunikation 20 | \item Asynchrone Kommunikation 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Kommunikation} 26 | \framesubtitle{Art} 27 | \begin{itemize} 28 | \item Persistente Kommunikation 29 | \item Transiente Kommunikation 30 | \end{itemize} 31 | \end{frame} 32 | 33 | \begin{frame} 34 | \frametitle{Kommunikation} 35 | \framesubtitle{Art} 36 | \begin{itemize} 37 | \item Signal 38 | \item Event 39 | \item Nachricht 40 | \end{itemize} 41 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-23-singleton.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Singleton} 3 | \begin{frame} 4 | \frametitle{Singleton} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Klasse hat nur eine einzige Instanz 8 | \item Globalen Zugriffspunkt zu dieser Instanz 9 | 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Singleton} 15 | \framesubtitle{Pattern} 16 | \begin{figure}[!ht] 17 | \centering 18 | \includegraphics[width=0.65\textwidth]{fig/uml/singleton.png} 19 | \caption{Singleton Pattern} 20 | \label{fig:singleton} 21 | \end{figure} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Singleton} 26 | \framesubtitle{Diskussion Eignung} 27 | \begin{itemize} 28 | \item Herausforderung in VS, insbesondere bei gleichzeitigen Zugriff 29 | \item Nutzen spezifischen Anforderungen 30 | \item Manchmal sinnvoll: Zentrale Verwalten von Ressourcen und die Steuerung eines globalen Zustands 31 | \item Alternativen prüfen 32 | \end{itemize} 33 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-28-fassade.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Fassade} 3 | \begin{frame} 4 | \frametitle{Fassade} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Vereinfachte Schnittstelle für den Zugriff 8 | \item Reduktion der Komplexität 9 | \end{itemize} 10 | \end{frame} 11 | 12 | 13 | \subsection{Pipeline} 14 | \begin{frame} 15 | \frametitle{Pipeline} 16 | \framesubtitle{Idee} 17 | \begin{itemize} 18 | \item Für komplexe Verarbeitungsprozesse 19 | \item Sequentielle Ausführung 20 | \item Spezialisierten Modul (Fetch, Decode, Execute Pipeline) 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \subsection{Master-Worker} 25 | \begin{frame} 26 | \frametitle{Master-Worker} 27 | \framesubtitle{Idee} 28 | \begin{itemize} 29 | \item Speziell für verteilte Systeme entwickelt 30 | \item Zentrale Einheit (Master) welcher die Kontrolle über mehrere untergeordnete Einheiten (Worker) hat 31 | \item Arbeitslast effizient auf mehrere Prozessoren oder Knoten zu verteilen 32 | \end{itemize} 33 | \end{frame} -------------------------------------------------------------------------------- /fig/uml/src/rpc-simple.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | skinparam linetype ortho 3 | 4 | package "Application" { 5 | 6 | package "Client" { 7 | [App on PI] 8 | [Application Stub (Consumer)] 9 | } 10 | 11 | package "Server" { 12 | [Application Stub (Provider)] 13 | [App on Lamp] 14 | } 15 | } 16 | 17 | database "Network\n(Communication\nProtocol)" 18 | 19 | package "Middleware" { 20 | [Client Stub] 21 | [Server Stub] 22 | } 23 | 24 | [App on PI] --> [Application Stub (Consumer)] : controlLamp(true) 25 | [Application Stub (Consumer)] -[hidden]-> [Client Stub] : invoke(signature) 26 | [Application Stub (Consumer)] -d-> [Middleware] : invoke(signature) 27 | '[Middleware] -d-> [Client Stub] : Marshalling 28 | [Client Stub] -d-> "Network\n(Communication\nProtocol)" : Send request 29 | 30 | "Network\n(Communication\nProtocol)" -u-> [Server Stub] : Receive request 31 | '[Server Stub] -u-> [Server Stub] : Unmarshalling 32 | [Server Stub] -u-> [Application Stub (Provider)] : call(signature) 33 | 34 | [Application Stub (Provider)] -u-> [App on Lamp] : controlLamp(true) 35 | 36 | @enduml 37 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-26-wrapper.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Wrapper und Adapter} 3 | \begin{frame} 4 | \frametitle{Wrapper und Adapter} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Strukturpattern 8 | \item Etabliert Interoperabilität 9 | \item Beide Muster sind ähnlich, es gibt aber Unterschiede 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Adapter} 15 | \framesubtitle{Grundlagen} 16 | \begin{itemize} 17 | \item Für Komponenten mit unterschiedlichen Schnittstellenanforderungen 18 | \item Etabliert Interoperabilität 19 | \item Kann unterschiedliche Protokollen oder Datenformaten miteinander verbinden 20 | \item Bestehende Komponente an eine neue Schnittstelle anpassen (legacy oder Zulieferung) 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Wrapper} 26 | \framesubtitle{Grundlagen} 27 | \begin{itemize} 28 | \item Definiert eine neue Klasse, die eine vorhandene Komponente umschließt 29 | \item Verändert oder erweitert Funktion 30 | \end{itemize} 31 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-27-interceptor.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Interceptor} 3 | \begin{frame} 4 | \frametitle{Interceptor} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Steuert Kommunikation zwischen Komponenten 8 | \item Eingehende und ausgehende Nachrichten werden abgefangen 9 | \item Möglicher Einsatz: Sicherheitsüberprüfungen, Protokollierung, Leistungsüberwachung und/oder Fehlerbehebung 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Interceptor} 15 | \framesubtitle{Pattern} 16 | \begin{figure}[!ht] 17 | \centering 18 | \includegraphics[width=0.99\textwidth]{fig/uml/intercept-class.png} 19 | \caption{Interceptor Pattern} 20 | \label{fig:intercept-class} 21 | \end{figure} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Interceptor} 26 | \framesubtitle{Sequenz} 27 | \begin{figure}[!ht] 28 | \centering 29 | \includegraphics[width=0.99\textwidth]{fig/uml/intercept-seq.png} 30 | \caption{Interceptor Pattern Sequenz} 31 | \label{fig:intercept-seq} 32 | \end{figure} 33 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-05/slide-05-garbage.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Garbage} 3 | \begin{frame} 4 | \frametitle{Algorithmen} 5 | \framesubtitle{Garbage} 6 | \begin{itemize} 7 | \item Objekte über verschiedene Knoten hinweg verteilt 8 | \item Kommunikation zwischen den Knoten für gemeinsamen Status des Objektes 9 | \item Verschiedene Ansätze interessant. \\Ansätze zeigen wie auf Anforderungen des Netzes oder die Applikation eingegangen werden kann. 10 | \end{itemize} 11 | \end{frame} 12 | 13 | 14 | \begin{frame} 15 | \frametitle{Garbage} 16 | \framesubtitle{Ansätze} 17 | \begin{itemize} 18 | \item Referenzzählung (Keine Zyklischen Referenzen) 19 | \item Verteilte Mark-and-Sweep (Kommunikation über eine Baumstruktur) 20 | \item Garbage Collection mit Leases (Gültigkeit über Zeit - bedingt zuverlässige Kommunikation oder Fehlertoleranz) 21 | \item Verteilte Garbage Collection durch Tracing (Mehr Kommunikation als Mark and Sweep) 22 | \item Generational Garbage Collection (Bedingt bekannte Code Base, sonst Speicherleaks) 23 | \end{itemize} 24 | \end{frame} 25 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-06-mech_pol.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Mechanismen und Policies} 3 | \begin{frame} 4 | \frametitle{Mechanismen und Policies} 5 | \framesubtitle{Diskussion} 6 | \begin{itemize} 7 | \item Mechanismen 8 | \item Policies 9 | \end{itemize} 10 | \end{frame} 11 | 12 | \begin{frame} 13 | \frametitle{Mechanismen und Policies} 14 | \framesubtitle{Mechanismen} 15 | \begin{itemize} 16 | \item Kommunikation 17 | \item Synchronisation 18 | \item Replikation 19 | \item Konsistenz 20 | \item ... 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Mechanismen und Policies} 26 | \framesubtitle{Policies} 27 | \begin{itemize} 28 | \item Ressourcenallokation 29 | \item Fehlerbehandlung 30 | \item Sicherheit 31 | \item Lastverteilung 32 | \item ... 33 | \end{itemize} 34 | \end{frame} 35 | 36 | \begin{frame} 37 | \frametitle{Mechanismen und Policies} 38 | \framesubtitle{Beispiele} 39 | \begin{itemize} 40 | \item Scheduler 41 | \item API Design (left, right, up, down) 42 | \end{itemize} 43 | \end{frame} -------------------------------------------------------------------------------- /fig/tex-grapics/src/typ2-hyper.tex: -------------------------------------------------------------------------------- 1 | \documentclass[tikz]{standalone} 2 | \usetikzlibrary{positioning,shapes} 3 | 4 | \begin{document} 5 | 6 | \begin{tikzpicture}[ 7 | block1/.style={draw, fill=white, rectangle, minimum width=5cm, minimum height=1cm}, 8 | block2/.style={draw, fill=white, rectangle, minimum width=15cm, minimum height=1cm}, 9 | block3/.style={draw, fill=white, rectangle, minimum width=10cm, minimum height=1cm}, 10 | arrow/.style={->, thick} 11 | ] 12 | % Blocks 13 | \node[block2] (hardware) {Hardware}; 14 | \node[block3, above=of hardware] (OS) {Betriebssystem}; 15 | \node[block3,left=1cm of OS ,above=of OS] (hypervisor) {Typ 2-Hypervisor}; 16 | 17 | \node[block1, above=of hypervisor] (vm1) {Virtuelle Maschine 1}; 18 | \node[block1, right=1cm of vm1] (vm2) {Virtuelle Maschine 2}; 19 | \node[block1, left=7cm of vm2] (vm3) {Virtuelle Maschine 3}; 20 | 21 | % Arrows 22 | \draw[arrow] (hardware) -- (OS); 23 | \draw[arrow] (OS) -- (vm1); 24 | \draw[arrow] (OS) -- (hypervisor); 25 | \draw[arrow] (hypervisor) -- (vm2); 26 | \draw[arrow] (hypervisor) -- (vm3); 27 | \end{tikzpicture} 28 | 29 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-04-ziele.tex: -------------------------------------------------------------------------------- 1 | \section{Ziele} 2 | \subsection{Allgemeine Ziele} 3 | \begin{frame} 4 | \frametitle{Allgemeine Ziele} 5 | \framesubtitle{Beispiele} 6 | \begin{itemize} 7 | \item Funktionalität 8 | \item Zuverlässigkeit 9 | \item Skalierbarkeit 10 | \item Leistung/ Effizienz 11 | \item Sicherheit 12 | \item Wartbarkeit 13 | \item Portabilität 14 | \item Benutzerfreundlichkeit 15 | \item Anpassbarkeit 16 | \item Kompatibilität 17 | \end{itemize} 18 | \end{frame} 19 | 20 | \begin{frame} 21 | \frametitle{Allgemeine Ziele} 22 | \framesubtitle{Beispiele Ausfallsicherheit} 23 | \begin{itemize} 24 | \item Mission-critical Anwendungen 25 | \item Hochverfügbare Anwendungen 26 | \item Business-kritischeAnwendungen 27 | \item Nicht-kritische Anwendungen 28 | \end{itemize} 29 | \end{frame} 30 | 31 | \subsection{VS Ziele} 32 | \begin{frame} 33 | \frametitle{VS Ziele} 34 | \framesubtitle{Ziele nach Tanenbaum} 35 | \begin{itemize} 36 | \item Resource Sharing 37 | \item Offenheit (Openess) 38 | \item Skalierbarkeit 39 | \item Transparenz 40 | \end{itemize} 41 | \end{frame} -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \providecommand\hyper@newdestlabel[2]{} 3 | \providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} 4 | \HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined 5 | \global\let\oldcontentsline\contentsline 6 | \gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} 7 | \global\let\oldnewlabel\newlabel 8 | \gdef\newlabel#1#2{\newlabelxx{#1}#2} 9 | \gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} 10 | \AtEndDocument{\ifx\hyper@anchor\@undefined 11 | \let\contentsline\oldcontentsline 12 | \let\newlabel\oldnewlabel 13 | \fi} 14 | \fi} 15 | \global\let\hyper@last\relax 16 | \gdef\HyperFirstAtBeginDocument#1{#1} 17 | \providecommand\HyField@AuxAddToFields[1]{} 18 | \providecommand\HyField@AuxAddToCoFields[2]{} 19 | \@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/7}{}{0}}} 20 | \@writefile{nav}{\headcommand {\beamer@framepages {1}{7}}} 21 | \@writefile{nav}{\headcommand {\beamer@partpages {1}{7}}} 22 | \@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{7}}} 23 | \@writefile{nav}{\headcommand {\beamer@sectionpages {1}{7}}} 24 | \@writefile{nav}{\headcommand {\beamer@documentpages {7}}} 25 | \@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {1}}} 26 | \gdef \@abspage@last{7} 27 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-11-single-node.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Single Node (Application0)} 3 | \begin{frame} 4 | \frametitle{Single Node } 5 | \framesubtitle{Definition} 6 | \begin{itemize} 7 | \item Architekturtyp 8 | \item Anwendungen werden auf einem einzelnen Knoten ausgeführt 9 | \item Keine Verteilung der Funktionen 10 | \item Knoten kann ein physischer Server oder eine virtuelle Maschine sein 11 | \item Knoten kann von verschiedenen Systemen sammeln und verarbeiten 12 | \end{itemize} 13 | \end{frame} 14 | 15 | \begin{frame} 16 | \frametitle{Single Node } 17 | \framesubtitle{Vorteile} 18 | \begin{itemize} 19 | \item Entwicklung und Testen 20 | \item Kleine Anwendungen 21 | \item Datenintensive Anwendungen 22 | \end{itemize} 23 | \end{frame} 24 | 25 | \begin{frame} 26 | \frametitle{Single Node } 27 | \framesubtitle{Umsetzung und Beispiele} 28 | \begin{itemize} 29 | \item Container-Technologien 30 | \item Serverless-Computing (AWS Lambda) 31 | \item Netflix: Netflix verwendet das Single-Node-Pattern, um die Datenverarbeitung in ihren AWS-Cloud-Instanzen 32 | \item Airbnb: Airbnb verwendet das Single-Node-Pattern, um ihre Webanwendung (nicht die Daten) in einem einzigen Knoten zu hosten 33 | \end{itemize} 34 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-22-callback.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Callback} 3 | \begin{frame} 4 | \frametitle{Callback} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Funktion (Methode oder Prozedur) als Argument an eine andere Funktion 8 | \item Nach Abschluss einer bestimmten Aufgabe wird Funktion ausgeführt 9 | \item Aufrufende Funktion muss nichts vom Callback wissen 10 | \item Kommunikation unidirektional 11 | \item Callback-Pattern wird häufig in der asynchronen Programmierung verwendet 12 | \item Callback-Pattern eignet sich gut für ereignisgesteuerte Programmierung 13 | \end{itemize} 14 | \end{frame} 15 | 16 | \begin{frame} 17 | \frametitle{Callback} 18 | \framesubtitle{Callback Pattern} 19 | \begin{figure}[!ht] 20 | \centering 21 | \includegraphics[width=0.35\textwidth]{fig/uml/callback-class.png} 22 | \caption{Callback Pattern} 23 | \label{fig:callback-class} 24 | \end{figure} 25 | \end{frame} 26 | 27 | \begin{frame} 28 | \frametitle{Callback} 29 | \framesubtitle{Callback Pattern Sequenz} 30 | \begin{figure}[!ht] 31 | \centering 32 | \includegraphics[width=0.65\textwidth]{fig/uml/callback-seq.png} 33 | \caption{Callback Pattern Sequenz} 34 | \label{fig:callback-seq} 35 | \end{figure} 36 | \end{frame} 37 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-05/slide-02-paralell.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Paralleles Rechnen} 3 | \begin{frame} 4 | \frametitle{Paralleles Rechnen} 5 | \framesubtitle{Parallele Algorithmen} 6 | \begin{itemize} 7 | \item Leicht: \enquote{embarrassingly parallel} 8 | \begin{itemize} 9 | \item Matrixoperationen 10 | \item Sortieralgorithmen 11 | \item Grafikverarbeitung 12 | \item ... 13 | \end{itemize} 14 | \item Unterstützt durch Frameworks (z.b. MapsReduce\footnote{Siehe Script}) 15 | \end{itemize} 16 | \end{frame} 17 | 18 | 19 | \begin{frame} 20 | \frametitle{Paralleles Rechnen} 21 | \framesubtitle{Parallele Algorithmen} 22 | \begin{itemize} 23 | \item Nicht alle Algorithmen gut für die Parallelisierung geeignet 24 | \item Beispiel ggT 25 | \item Strategie kann sein Granularität zu ändern 26 | \end{itemize} 27 | \end{frame} 28 | 29 | \begin{frame} 30 | \frametitle{Algorithmenstrukturn} 31 | \framesubtitle{Koordination} 32 | \begin{itemize} 33 | \item Leistung 34 | \item Zuverlässigkeit 35 | \item Konsistenz 36 | \item Sicherheit 37 | \end{itemize} 38 | One-to-Many-Kommunikation, Baumstrukturen, Flooding oder Gossip: 39 | \begin{itemize} 40 | \item Zentralisierte Algorithmen 41 | \item Dezentralisierte Algorithmen 42 | \end{itemize} 43 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-18-hexagonale.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Hexagonal Onion Architektur} 3 | \begin{frame} 4 | \frametitle{Hexagonal Onion Architektur} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Kombination aus zwei bekannten Architekturmustern: Hexagonale Architektur und Zwiebelarchitektur 8 | \item Die Kernlogik des Systems ist unabhängig von externen Einflüssen 9 | \item Ports und Adaptern dienen als Schnittstelle zwischen der Kernlogik und externen Anliegen 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Hexagonal Onion Architecture} 15 | \framesubtitle{Typische Schichten} 16 | \begin{itemize} 17 | \item Domain 18 | \item Application 19 | \item Ports 20 | \item Adapters 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Hexagonal Onion Architecture} 26 | \framesubtitle{Beispiel mit Microservices} 27 | \begin{itemize} 28 | \item Domain: Verwalten von Produkten und Dienstleister 29 | \item Application: Prozesse für Kauf, Verkauf, Retoure, Wartung, etc 30 | \item Microservice: Online Bestellungs-Service mit Abhängigkeit Bezahlservice 31 | \item Microservice: Online Produkt-Service 32 | \item Microservice: Online Zahlungs-Service 33 | \item Microservice: Online Versand-Service 34 | \end{itemize} 35 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-09-anforderung.tex: -------------------------------------------------------------------------------- 1 | \section{Allgemeine VS Anforderungen} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Allgemeine VS Anforderungen} 5 | \framesubtitle{Anforderungen Teil eines iterativen Prozess} 6 | \begin{itemize} 7 | \item Anforderungen (Funktionale und Nicht-funktionale) 8 | \item Analyse und Design (Architektur) 9 | \item Implementierung 10 | \item Test 11 | \item Deployment 12 | \end{itemize} 13 | \end{frame} 14 | 15 | 16 | 17 | \begin{frame} 18 | \framesubtitle{Mögliche Schritte für ein gutes Design} 19 | \begin{itemize} 20 | \item Definieren der Ziele und Anforderungen 21 | \item Anforderungen erfassen 22 | \item Anforderungen analysieren und spezifizieren 23 | \item Validieren und verifizieren der Anforderungen 24 | \item Verwalten der Anforderungen 25 | \end{itemize} 26 | \end{frame} 27 | 28 | 29 | \begin{frame} 30 | \framesubtitle{Auswahl von Methoden} 31 | \begin{itemize} 32 | \item Anwendungsfalldiagramme 33 | \item Datenflussdiagramme 34 | \item Architekturdiagramme 35 | \item Qualitätsattribute und Szenarien 36 | \item Interview- und Workshop-Methoden 37 | \end{itemize} 38 | Vieles hängt an einer angemessenen Dokumentation\footnote{Im Praktikum wird ARC42 als Dokumentationsmethode angeboten: \url{https://arc42.org/download}} 39 | \end{frame} 40 | -------------------------------------------------------------------------------- /fig/uml/src/paxos-issue-solve.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant "Proposer1" as P1 3 | participant "Proposer2" as P2 4 | participant "Acceptor1" as A1 5 | participant "Acceptor2" as A2 6 | participant "Acceptor3" as A3 7 | 8 | P1 -> A1: Prepare(1) 9 | P1 -> A2: Prepare(1) 10 | P1 -> A3: Prepare(1) 11 | 12 | P2 -> A1: Prepare(2) 13 | P2 -> A2: Prepare(2) 14 | P2 -> A3: Prepare(2) 15 | 16 | A1 --> P1: Promise(1, null) 17 | A2 -x P1: Network Failure 18 | A3 --> P1: Promise(1, null) 19 | 20 | A1 --> P2: Promise(2, null) 21 | A2 --> P2: Promise(2, null) 22 | A3 --> P2: Promise(2, null) 23 | 24 | P1 -> A1: Accept(1, Value) 25 | P1 -> A2: Accept(1, Value) 26 | P1 -> A3: Accept(1, Value) 27 | 28 | P2 -> A1: Accept(2, Value) 29 | P2 -> A2: Accept(2, Value) 30 | P2 -> A3: Accept(2, Value) 31 | 32 | A1 -x P1: Process Failure 33 | A2 --> P1: Accepted(1, Value) 34 | A3 --> P1: Accepted(1, Value) 35 | 36 | A1 --> P2: Accepted(2, Value) 37 | A2 --> P2: Accepted(2, Value) 38 | A3 --> P2: Accepted(2, Value) 39 | 40 | P1 -> A1: Prepare(3) 41 | P1 -> A2: Prepare(3) 42 | P1 -> A3: Prepare(3) 43 | 44 | A1 --> P1: Promise(3, Value) 45 | A2 --> P1: Promise(3, Value) 46 | A3 --> P1: Promise(3, Value) 47 | 48 | P1 -> A1: Accept(3, Value) 49 | P1 -> A2: Accept(3, Value) 50 | P1 -> A3: Accept(3, Value) 51 | 52 | A1 --> P1: Accepted(3, Value) 53 | A2 --> P1: Accepted(3, Value) 54 | A3 --> P1: Accepted(3, Value) 55 | 56 | @enduml 57 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-00/slide-00-orga.tex: -------------------------------------------------------------------------------- 1 | \section{Vorstellung} 2 | \subsection{Person} 3 | \begin{frame} 4 | \frametitle{Verteilte Systeme} 5 | \framesubtitle{Personen} 6 | \begin{itemize} 7 | \item Ansprechpartner: Prof. Dr. Martin Becke (scimbe),\\ Frank Matthiessen 8 | \item Einstiegspunkt: \url{http://www.becke.net} 9 | \item Gruppe: Kommunikation und verteilte Systeme 10 | \end{itemize} 11 | \end{frame} 12 | 13 | 14 | \subsection{Person Aufgaben} 15 | \begin{frame} 16 | \frametitle{Aktuelle Aufgaben} 17 | \framesubtitle{Ämter/Gremien/Mitgliedschaften } 18 | \begin{itemize} 19 | \item OE Beauftragter TI Informatik 20 | \item Mitglied (Stellvertreter) für Departmentrat 21 | \item Mitglied der Masterauswahlkommission 22 | \item Vorstand Förderverein Elektrotechnik und Informatik der HAW Hamburg e.V. 23 | \item Kontakt: Gerne Teams oder Mail: Martin.Becke@HAW-Hamburg.de 24 | \end{itemize} 25 | \end{frame} 26 | 27 | \subsection{CaDS AG} 28 | \begin{frame} 29 | \frametitle{CaDS} 30 | \framesubtitle{Communication and Distributed Systems } 31 | \begin{itemize} 32 | \item Schwerpunkte: Rechnernetze, Verteilte Systeme, Moderne Browser Kommunikation, Transport Protokolle, Diskrete Eventsimulation 33 | \item \enquote{Hobby}: Menschenrechte und Internetprotokolle (GW) 34 | \item Faziniert von \enquote{Open Source Projekten} 35 | \item Sekundäre Arbeitsgruppe: autosys research lab, FTZ Smart Systems 36 | \end{itemize} 37 | \end{frame} 38 | 39 | 40 | -------------------------------------------------------------------------------- /fig/uml/src/iso-osi-reference.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title OSI-Referenzmodell 3 | 4 | class PhysicalLayer { 5 | - dataLink: DataLinkLayer 6 | + sendData(data: byte[]): void 7 | + receiveData(data: byte[]): void 8 | } 9 | 10 | class DataLinkLayer { 11 | - physical: PhysicalLayer 12 | - network: NetworkLayer 13 | + sendData(data: byte[]): void 14 | + receiveData(data: byte[]): void 15 | } 16 | 17 | class NetworkLayer { 18 | - dataLink: DataLinkLayer 19 | - transport: TransportLayer 20 | + sendData(data: byte[]): void 21 | + receiveData(data: byte[]): void 22 | } 23 | 24 | class TransportLayer { 25 | - network: NetworkLayer 26 | - session: SessionLayer 27 | + sendData(data: byte[]): void 28 | + receiveData(data: byte[]): void 29 | } 30 | 31 | class SessionLayer { 32 | - transport: TransportLayer 33 | - presentation: PresentationLayer 34 | + sendData(data: byte[]): void 35 | + receiveData(data: byte[]): void 36 | } 37 | 38 | class PresentationLayer { 39 | - session: SessionLayer 40 | - application: ApplicationLayer 41 | + sendData(data: byte[]): void 42 | + receiveData(data: byte[]): void 43 | } 44 | 45 | class ApplicationLayer { 46 | - presentation: PresentationLayer 47 | + sendData(data: byte[]): void 48 | + receiveData(data: byte[]): void 49 | } 50 | 51 | PhysicalLayer --> DataLinkLayer 52 | DataLinkLayer --> NetworkLayer 53 | NetworkLayer --> TransportLayer 54 | TransportLayer --> SessionLayer 55 | SessionLayer --> PresentationLayer 56 | PresentationLayer --> ApplicationLayer 57 | @enduml 58 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-05/slide-07-mutual-exclusion.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Mutual Exclusion} 3 | \begin{frame} 4 | \frametitle{Algorithmen} 5 | \framesubtitle{Mutual Exclusion} 6 | \begin{itemize} 7 | \item Mutual Exclusion, oder wechselseitiger Ausschluss zum Schutz von kritischen Bereichen 8 | \item Notwendig in VS zur Sicherung der Datenkonsistenz und -integrität in Mehrprozess- oder Mehrfadenanwendungen 9 | \end{itemize} 10 | \end{frame} 11 | 12 | \begin{frame} 13 | \frametitle{Mutual Exclusion} 14 | \framesubtitle{Ansätze} 15 | \begin{itemize} 16 | \item Ricart-Agrawala-Algorithmus (Hohe Kommunikation) 17 | \item Raymond's Tree-Based Algorithmus (Hohe Netzstabilität) 18 | \item Agrawal-El Abbadi-Algorithmus (Schnelle und stabile Netze) 19 | \item Peterson's Algorithmus (Akademischer Ansatz zur Lehre) 20 | \item Bakery Algorithmus (Problem bei vielen Teilnehmern) 21 | \item Fischer's Test-Set-and-Set-Lock Algorithmus (Bei geringen Einsätzen) 22 | \item Queue-Locks (Lamport Clocks, Multicast mit Acks) 23 | \end{itemize} 24 | \end{frame} 25 | 26 | \subsection{Barriers} 27 | \begin{frame} 28 | \frametitle{Algorithmen} 29 | \framesubtitle{Mutual Exclusion} 30 | Klassisches Warten auf andere Ablauffäden 31 | \begin{itemize} 32 | \item Sense-Reversing Barrier (Einfacher Counter) 33 | \item Combining Tree Barrier (Baumstruktur) 34 | \item Tournament Barrier (Unstrukturiert mit Paaren) 35 | \item Dissemination Barriers (Gossip-ähnlich, Runden-basiert) 36 | \end{itemize} 37 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-15-event-driven.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Event-Driven Architektur} 3 | \begin{frame} 4 | \frametitle{Event-Driven Architecture} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Kommunikation getrieben über Events oder Nachrichten 8 | \item Komponenten reagieren auf Events oder Nachrichten 9 | \item Keine direkte Kommunikation (Vergleich Eventbus) 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Event-Driven Architecture} 15 | \framesubtitle{Beispiele} 16 | \begin{itemize} 17 | \item Aktienhandelssystem 18 | \item IoT-Sensornetzwerk 19 | \item E-Commerce-Plattform 20 | \end{itemize} 21 | \end{frame} 22 | 23 | \begin{frame} 24 | \frametitle{Event-Driven Architecture} 25 | \framesubtitle{Aufbau} 26 | \begin{itemize} 27 | \item Event-Producer 28 | \item Event-Channel 29 | \item Event-Consumer 30 | \end{itemize} 31 | \end{frame} 32 | 33 | \begin{frame} 34 | \frametitle{Event-Driven Architecture} 35 | \framesubtitle{Erweiterung um Lambda Architecture} 36 | \begin{itemize} 37 | \item Häufig im Kontext von Big-Data- und Echtzeitanalysen 38 | \item Datenverarbeitungsarchitekturmuster 39 | \item Latenzarme und fehlertolerante Analyse- und Verarbeitungssysteme 40 | \end{itemize} 41 | \end{frame} 42 | 43 | \begin{frame} 44 | \frametitle{Lambda Architecture} 45 | \framesubtitle{Aufbau} 46 | \begin{itemize} 47 | \item Batch-Layer 48 | \item Speed-Layer 49 | \item Serving-Layer 50 | \end{itemize} 51 | \end{frame} 52 | 53 | 54 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/.aux: -------------------------------------------------------------------------------- 1 | \relax 2 | \providecommand\hyper@newdestlabel[2]{} 3 | \@setckpt{slides-kapitel-02/}{ 4 | \setcounter{page}{2} 5 | \setcounter{equation}{0} 6 | \setcounter{enumi}{0} 7 | \setcounter{enumii}{0} 8 | \setcounter{enumiii}{0} 9 | \setcounter{enumiv}{0} 10 | \setcounter{footnote}{0} 11 | \setcounter{mpfootnote}{0} 12 | \setcounter{beamerpauses}{1} 13 | \setcounter{bookmark@seq@number}{0} 14 | \setcounter{lecture}{0} 15 | \setcounter{part}{0} 16 | \setcounter{section}{0} 17 | \setcounter{subsection}{0} 18 | \setcounter{subsubsection}{0} 19 | \setcounter{subsectionslide}{1} 20 | \setcounter{framenumber}{1} 21 | \setcounter{figure}{0} 22 | \setcounter{table}{0} 23 | \setcounter{parentequation}{0} 24 | \setcounter{theorem}{0} 25 | \setcounter{lstnumber}{1} 26 | \setcounter{FancyVerbLine}{0} 27 | \setcounter{PlantUmlFigureNumber}{0} 28 | \setcounter{linenumber}{1} 29 | \setcounter{LN@truepage}{1} 30 | \setcounter{FV@TrueTabGroupLevel}{0} 31 | \setcounter{FV@TrueTabCounter}{0} 32 | \setcounter{FV@HighlightLinesStart}{0} 33 | \setcounter{FV@HighlightLinesStop}{0} 34 | \setcounter{FancyVerbLineBreakLast}{0} 35 | \setcounter{currfiledepth}{0} 36 | \setcounter{pytx@FancyVerbLineTemp}{0} 37 | \setcounter{pytx@py@default@default}{0} 38 | \setcounter{pytx@pycon@default@default}{0} 39 | \setcounter{pytx@sympy@default@default}{0} 40 | \setcounter{pytx@sympycon@default@default}{0} 41 | \setcounter{pytx@pylab@default@default}{0} 42 | \setcounter{pytx@pylabcon@default@default}{0} 43 | \setcounter{pytx@bash@default@default}{0} 44 | \setcounter{section@level}{0} 45 | \setcounter{lstlisting}{0} 46 | \setcounter{listing}{0} 47 | } 48 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-24-factory.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Factory} 3 | \begin{frame} 4 | \frametitle{Factory} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Objekterstellung mittels separater Klasse 8 | \item Kann Client-Code von den konkreten Implementierungsdetails entkoppeln 9 | \item Verschiedene Implementierungen können unterstützt werden 10 | \item Kann Komplexität kapseln 11 | \item Ressourcen können zentral erstellt und verwaltet werden 12 | \item Kann Load Balancing und Failover-Mechanismen implementieren 13 | \end{itemize} 14 | \end{frame} 15 | 16 | 17 | \begin{frame} 18 | \frametitle{Factory} 19 | \framesubtitle{Pattern} 20 | \begin{figure}[!ht] 21 | \centering 22 | \includegraphics[width=0.45\textwidth]{fig/uml/factory-class.png} 23 | \caption{Factory Pattern} 24 | \label{fig:factory-class} 25 | \end{figure} 26 | \end{frame} 27 | 28 | \begin{frame} 29 | \frametitle{Factory} 30 | \framesubtitle{Sequenz} 31 | \begin{figure}[!ht] 32 | \centering 33 | \includegraphics[width=0.85\textwidth]{fig/uml/factory-seq.png} 34 | \caption{Factory Pattern Sequenz} 35 | \label{fig:factory-seq} 36 | \end{figure} 37 | \end{frame} 38 | 39 | \begin{frame} 40 | \frametitle{Factory} 41 | \framesubtitle{Diskussion Eignung} 42 | \begin{itemize} 43 | \item Code sauberer und wartbarer 44 | \item Skalierbarkeit und Fehlertoleranz verbessert 45 | \item Viele Probleme bleiben: Kommunikationslatenz, Synchronisation, SPOF, Komplexität, Testbarkeit, Overhead 46 | \item Meist besser als Singleton 47 | \end{itemize} 48 | \end{frame} -------------------------------------------------------------------------------- /fig/tex-grapics/src/chandy-lamport-algorithmus.tex: -------------------------------------------------------------------------------- 1 | %\documentclass[german,xcolor=dvipsnames,9pt]{beamer} 2 | \documentclass[border=5mm, convert, usenames, dvipsnames,beamer]{standalone} 3 | \usepackage{tikz} 4 | \usetikzlibrary{arrows, positioning, arrows.meta} 5 | 6 | \begin{document} 7 | \begin{frame} 8 | \begin{center} 9 | \begin{tikzpicture}[>=Stealth, thick, process/.style={draw, circle, minimum size=1cm}] 10 | % Prozesse 11 | \node[process] (P1) {P1}; 12 | \node[process, right=2cm of P1] (P2) {P2}; 13 | \node[process, right=2cm of P2] (P3) {P3}; 14 | 15 | % Kanäle 16 | \draw[->] (P1) to[bend left] (P2); 17 | \draw[->] (P2) to[bend left] (P1); 18 | \draw[->] (P2) to[bend left] (P3); 19 | \draw[->] (P3) to[bend left] (P2); 20 | 21 | % Animation: Marker für Initiator 22 | \only<2->{ 23 | \node[above=0.2cm of P1, red] {Initiator}; 24 | } 25 | 26 | % Animation: Snapshot für P1 27 | \only<3->{ 28 | \draw[red, dashed] (P1) circle (0.6cm); 29 | } 30 | 31 | % Animation: Nachrichten von P1 zu P2 32 | \only<4->{ 33 | \draw[->, red, thick] (P1) to[bend left] node[midway, above] {M} (P2); 34 | } 35 | 36 | % Animation: Snapshot für P2 37 | \only<5->{ 38 | \draw[red, dashed] (P2) circle (0.6cm); 39 | } 40 | 41 | % Animation: Nachrichten von P2 zu P1 und P3 42 | \only<6->{ 43 | \draw[->, red, thick] (P2) to[bend left] node[midway, above] {M} (P1); 44 | \draw[->, red, thick] (P2) to[bend left] node[midway, above] {M} (P3); 45 | } 46 | 47 | % Animation: Snapshot für P3 48 | \only<7->{ 49 | \draw[red, dashed] (P3) circle (0.6cm); 50 | } 51 | \end{tikzpicture} 52 | \end{center} 53 | \end{frame} 54 | \end{document} 55 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-14-client-server.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Client-Server-Architektur} 3 | \begin{frame} 4 | \frametitle{Client-Server-Architektur} 5 | \framesubtitle{Modell} 6 | \begin{itemize} 7 | \item In dieser Architektur gibt es zwei Hauptkomponenten 8 | \item Client - nutzt (Consumer) 9 | \item Server - bietet an (Provider) 10 | \item Ein spezielle \enquote{2-Tier Architektur} 11 | \item Front-End-Client und einem Back-End-Server 12 | \end{itemize} 13 | \end{frame} 14 | 15 | \begin{frame} 16 | \frametitle{Client-Server-Architektur} 17 | \framesubtitle{Beispiele} 18 | \begin{itemize} 19 | \item Webanwendungen 20 | \item Datenbankanwendungen 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Client-Server-Architektur} 26 | \framesubtitle{Kaskadenartige Kommunikation} 27 | \begin{itemize} 28 | \item n-Tier-Architektur sind Tiers sowohl Consumer- als auch Provider 29 | \item Auswirkung auf Latenz, Komplexität, Fehleranfälligkeit, Skalierbarkeit 30 | \item Einführung von Optimierungsmechanismen, wie Caching, Lastverteilung, asynchrone Kommunikation 31 | \end{itemize} 32 | \end{frame} 33 | 34 | \begin{frame} 35 | \frametitle{Client-Server-Architektur} 36 | \framesubtitle{SSP - Stub/Skeleton Chains} 37 | \begin{itemize} 38 | \item Eine Implementierungsform von Interface-Definitionen zur Kommunikation 39 | \item Methodenaufrufe von einer Schicht zur anderen 40 | \item Stub ist ein Platzhalter für eine entfernte Methode (Lokal oder Remote) 41 | \item SSP Stub/Skeleton Chains sind eine Sequenz von Stubs und Skeletons 42 | \item Gemeinsame Sprache zwischen verschiedenen Schichten oder Tiers 43 | \end{itemize} 44 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-12-overlay.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Overlay Network} 3 | \begin{frame} 4 | \frametitle{Overlay} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Logische Verbindung muss keiner physikalischen Verbindung entsprechen 8 | \item Genutzte Netzwerkstruktur besteht häufig auf der obersten Schicht einer physikalischen Netzwerkstruktur 9 | \item Zusätzliche Abstraktion und Organisation 10 | \item Zusätzliche Komplexität und Overhead 11 | \end{itemize} 12 | \end{frame} 13 | 14 | \begin{frame} 15 | \frametitle{Overlay} 16 | \framesubtitle{Beispiel P2P} 17 | \begin{itemize} 18 | \item In einem P2P-Netzwerk sind die Knoten gleichberechtigte Teilnehmer 19 | \item Teil oder voll vermascht 20 | \item Bekanntes Beispiel für ein P2P-Overlay-Netzwerk ist BitTorrent 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Overlay} 26 | \framesubtitle{P2P - Strukturierte Netzwerke} 27 | \begin{itemize} 28 | \item Geordnete Struktur 29 | \item Verwenden meist deterministische Verfahren oder Algorithmen 30 | \item Routing effizienter und vorhersagbarer 31 | \item Ein Beispiel für ein strukturiertes Routing-Verfahren ist DHT 32 | \item Suche kann in logarithmischer Zeit (O(log N)) durchgeführt werden 33 | \end{itemize} 34 | \end{frame} 35 | 36 | \begin{frame} 37 | \frametitle{Overlay} 38 | \framesubtitle{P2P - Un-Strukturierte Netzwerke} 39 | \begin{itemize} 40 | \item Keine Struktur 41 | \item Verwendung auf Basis von Heuristiken und Zufall 42 | \item Routing kaum effizient zu gestalten 43 | \item Typisch ist hohe Netzwerklast 44 | \item Flooding- oder Random-Walk-Verfahren für die Suche 45 | \item Schädliche Teilnehmer ein besonderes Problem 46 | \end{itemize} 47 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-01/slide-07-scale.tex: -------------------------------------------------------------------------------- 1 | \section{Skalierung} 2 | \subsection{Das Ziel} 3 | \begin{frame} 4 | \frametitle{Skalierung} 5 | \framesubtitle{Das Ziel} 6 | \begin{itemize} 7 | \item Mit wachsenden Anforderungen und steigenden Benutzerzahlen umgehen 8 | \item Nicht Leistung oder Stabilität verlieren 9 | \item Funktionalität und Leistungsfähigkeit bei Bedarf anpassbar 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \subsection{Dimensionen} 14 | \begin{frame} 15 | \frametitle{Skalierung} 16 | \framesubtitle{Horizontal und Vertikal} 17 | \begin{itemize} 18 | \item Horizontal: Zusätzliche Knoten oder Server 19 | \item Vertikal: Mehr Ressourcen auf einem Knoten oder Server 20 | \item Load-Balancer spielen eine besondere Rolle 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \subsection{Unterziele} 25 | \begin{frame} 26 | \frametitle{Skalierung} 27 | \framesubtitle{Unterziele} 28 | \begin{itemize} 29 | \item Räumliche Skalierung 30 | \item Verwaltungs- oder adminstrative- Skalierbarkeit 31 | \item Funktionale Skalierung 32 | \end{itemize} 33 | \end{frame} 34 | 35 | \subsection{Funktionale Skalierung} 36 | \begin{frame} 37 | \frametitle{Skalierung} 38 | \framesubtitle{Funktionale Skalierung} 39 | \begin{itemize} 40 | \item Little's Law 41 | \item Amdahlsche's Law 42 | \item Gustafsons' Law 43 | \end{itemize} 44 | \end{frame} 45 | 46 | \subsection{Speedup} 47 | \begin{frame} 48 | \frametitle{Skalierung} 49 | \framesubtitle{Speedup} 50 | \begin{itemize} 51 | \item Idealer Speedup 52 | \item Realer Speedup 53 | \item Super-Speedup 54 | \end{itemize} 55 | \end{frame} 56 | 57 | \begin{frame} 58 | \frametitle{Skalierung} 59 | \framesubtitle{Bedeutung Parallelisierung am Beispiel von Sort} 60 | \begin{itemize} 61 | \item Quicksort 62 | \item Mergesort 63 | \end{itemize} 64 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-21-observer.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Observer} 3 | \begin{frame} 4 | \frametitle{Observer} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Lösung für unmittelbare Kommunikation 8 | \item $1:n$-Beziehung zwischen Objekten 9 | \item Benachrichtigt, wenn sich sein Zustand ändert (Event) 10 | \item Ermöglicht eine lose Kopplung im Design 11 | \item Erhält enge Kopplung in der Kommunikation 12 | \end{itemize} 13 | \end{frame} 14 | 15 | \begin{frame} 16 | %\frametitle{Observer} 17 | \framesubtitle{Pattern} 18 | \begin{figure}[ht] 19 | \centering 20 | \includegraphics[width=0.18\textwidth]{fig/uml/default-observer.png} 21 | \caption{Einfaches Observer Pattern} 22 | \label{fig:default-observer} 23 | \end{figure} 24 | \end{frame} 25 | 26 | \begin{frame} 27 | %\frametitle{Observer} 28 | \framesubtitle{Pattern Beispiel Lampe - Architektur} 29 | \begin{figure}[ht] 30 | \centering 31 | \includegraphics[width=0.65\textwidth]{fig/uml/mvc-observer.png} 32 | \caption{Observer Pattern als Verbindung zwischen Model und View} 33 | \label{fig:mvc-observer} 34 | \end{figure} 35 | \end{frame} 36 | 37 | \begin{frame} 38 | \frametitle{Observer} 39 | \framesubtitle{Pattern Beispiel Lampe - Verhalten} 40 | \begin{figure}[ht] 41 | \centering 42 | \includegraphics[width=0.55\textwidth]{fig/uml/seq-mvc-observer.png} 43 | \caption{Observer Pattern als Verbindung zwischen Model und View} 44 | \label{fig:seq-mvc-observer} 45 | \end{figure} 46 | \end{frame} 47 | 48 | \begin{frame} 49 | \frametitle{Observer} 50 | \framesubtitle{Im Kontext von MVC und VS} 51 | \begin{itemize} 52 | \item Nicht nur eine Design-Frage 53 | \item Technologie-abhängig 54 | \item Uni-direktionalen Kommunikation zwischen dem Subjekt und den Beobachtern 55 | \item Request-Response-Cycle unterstützt Observer nicht direkt 56 | \item WebSockets, Long Polling, HTTP2 oder HTTP3 können Optionen anbieten 57 | \end{itemize} 58 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-13-middleware.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Middleware Architektur} 3 | \begin{frame} 4 | \frametitle{Middleware Architektur} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Kapselung der Aufgabe 8 | \item Eigene Schicht für die Herausforderung der verteilten Systemen 9 | \item Schicht wird als \enquote{Middleware-}Schicht bezeichnet 10 | \item Bietet im besten Fall die Schnittstelle des kohärenten Systems 11 | \end{itemize} 12 | \end{frame} 13 | 14 | \begin{frame} 15 | \frametitle{Middleware Architektur} 16 | \framesubtitle{Definition nach Tanenbaum} 17 | \begin{itemize} 18 | \item Bereitstellung eines breiten Angebotes für die Kommunikation 19 | \item Dem (Un-)Marshaling Prozess 20 | \item Protokolle zur Namensauflösung 21 | \item Sicherheitsprotokolle 22 | \item Mechanismen zur Steigerung der Skalierung 23 | \end{itemize} 24 | \end{frame} 25 | 26 | \begin{frame} 27 | \frametitle{Middleware Architektur} 28 | \framesubtitle{Erweiterte Anforderungen} 29 | \begin{itemize} 30 | \item Mehrere Sprachen 31 | \item Mehreren Betriebssystemen und Hardwaretypen 32 | \item Mehrere Netzwerkprotokolle zur Einbindung von Internetstrukturen 33 | \end{itemize} 34 | \end{frame} 35 | 36 | \begin{frame} 37 | \frametitle{Middleware Architektur} 38 | \framesubtitle{Kommunikation} 39 | \begin{itemize} 40 | \item Point to point 41 | \item Point to multipoint 42 | \item Publish/subscribe 43 | \item Client/Server, Request/Reply 44 | \item Mobile code 45 | \item Virtual shared 46 | \end{itemize} 47 | \end{frame} 48 | 49 | \begin{frame} 50 | \frametitle{Middleware Architektur} 51 | \framesubtitle{Message Oriented Middleware (MOM)} 52 | \begin{itemize} 53 | \item Direkte Kommunikation zwischen Anwendungen (Message Passing) 54 | \item Indirekte Kommunikation über eine Warteschlange (Message Queueing) 55 | \item Herausgeber stellt dem Abonnenten Nachrichten zur Verfügung (Publish \& Subscribe) 56 | \end{itemize} 57 | \end{frame} 58 | 59 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-06/slide-03-deployment.tex: -------------------------------------------------------------------------------- 1 | \section{Deployment} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Deployment} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Ist ein Prozess 8 | \item Transfer von Entwicklung auf Produktionssystem 9 | \item Verschiedene Deployment-Strategie denkbar 10 | \end{itemize} 11 | \end{frame} 12 | 13 | 14 | \begin{frame} 15 | \frametitle{Deployment} 16 | \framesubtitle{Deployment-Strategien Beispiele} 17 | \begin{itemize} 18 | \item Rolling Deployment 19 | \item Blue-Green Deployment 20 | \item Canary Deployment 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Deployment} 26 | \framesubtitle{Sicherheitsrelevante Anwendung} 27 | \begin{itemize} 28 | \item Extensive Tests 29 | \item Redundanz 30 | \item Notfallpläne 31 | \item Sicherheitsüberlegungen 32 | \end{itemize} 33 | \end{frame} 34 | 35 | \begin{frame} 36 | \frametitle{Deployment} 37 | \framesubtitle{CD/CI} 38 | \begin{itemize} 39 | \item Continuous Delivery (CD) \\ Fokus Bereitstellung Produktion 40 | \item Continuous Integration (CI) \\ Fokus Entwicklung 41 | \end{itemize} 42 | \end{frame} 43 | 44 | \begin{frame} 45 | \frametitle{Deployment} 46 | \framesubtitle{Beispiele Werkzeuge} 47 | \begin{itemize} 48 | \item Jenkins 49 | \item Ansible 50 | \item GitLab CI/CD 51 | \item Spinnaker 52 | \item Terraform 53 | \item Chef 54 | \item Beispiele aus der Cloud:\\ AWS CloudFormation und Google Cloud Deployment Manager 55 | \end{itemize} 56 | \end{frame} 57 | 58 | \begin{frame} 59 | \frametitle{Deployment} 60 | \framesubtitle{Infrastruktur als Code (IaC) } 61 | \begin{itemize} 62 | \item Hoch automatisierte und konsistente Methode zur Bereitstellung und Verwaltung von Infrastruktur 63 | \item Infrastrukturen auf die gleiche Weise behandeln wie Anwendungscode 64 | \item Versionen verwalten, Tests durchführen, Wiederverwendung und Modularität fördern und kontinuierliche Integration und Bereitstellung (CI/CD) 65 | \end{itemize} 66 | \end{frame} 67 | 68 | 69 | -------------------------------------------------------------------------------- /fig/uml/src/clock_exam_concurrent.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Node1 3 | participant Node2 4 | participant Node3 5 | participant Node4 6 | 7 | Node1 -> Node2: a [1,0,0,0] 8 | note right of Node1: Node1's clock: [1,0,0,0] 9 | Node1 -> Node3: b [2,0,0,0] 10 | note right of Node1: Node1's clock: [2,0,0,0] 11 | Node1 -> Node4: c [3,0,0,0] 12 | note right of Node1: Node1's clock: [3,0,0,0] 13 | Node2 -> Node1: d [3,1,0,0] 14 | note left of Node2: Node2's clock: [0,1,0,0] 15 | Node3 -> Node1: e [3,1,1,0] 16 | note left of Node3: Node3's clock: [0,0,1,0] 17 | Node4 -> Node1: f [4,1,1,1] 18 | note left of Node4: Node4's clock: [0,0,0,1] 19 | 20 | Node1 -> Node2: g [5,1,1,1] 21 | note right of Node1: Node1's clock: [5,1,1,1] 22 | Node1 -> Node3: h [6,1,1,1] 23 | note right of Node1: Node1's clock: [6,1,1,1] 24 | Node1 -> Node4: i [7,1,1,1] 25 | note right of Node1: Node1's clock: [7,1,1,1] 26 | 27 | 28 | Node2 -> Node1: j [7,2,1,1] 29 | note left of Node2: Node2's clock: [0,2,0,0] 30 | Node3 -> Node2: k [7,3,1,1] 31 | note left of Node3: Node3's clock: [0,0,2,0] 32 | Node4 -> Node3: l [7,3,2,1] 33 | note left of Node4: Node4's clock: [0,0,0,2] 34 | Node1 -> Node4: m [8,3,2,1] 35 | note right of Node1: Node1's clock: [8,1,1,1] 36 | Node2 -> Node3: n [8,4,2,1] 37 | note left of Node2: Node2's clock: [0,3,0,0] 38 | Node3 -> Node4: p [8,4,3,1] 39 | note left of Node3: Node3's clock: [0,0,3,0] 40 | Node4 -> Node1: q [9,4,3,2] 41 | note left of Node4: Node4's clock: [0,0,0,3] 42 | Node1 -> Node2: r [10,4,3,2] 43 | note right of Node1: Node1's clock: [10,1,1,1] 44 | Node2 -> Node4: t [10,5,3,2] 45 | note left of Node2: Node2's clock: [0,4,0,0] 46 | 47 | 48 | Node4 -> Node3: s [10,5,4,2] 49 | note right of Node4: Node4's clock: [0,0,0,4] 50 | Node3 -> Node2: u [10,6,4,2] 51 | note left of Node3: Node3's clock: [0,0,4,0] 52 | Node2 -> Node1: v [11,6,4,2] 53 | note left of Node2: Node2's clock: [0,5,0,0] 54 | Node1 -> Node4: w [12,6,4,2] 55 | note right of Node1: Node1's clock: [12,1,1,1] 56 | Node4 -> Node3: x [12,6,5,2] 57 | note right of Node4: Node4's clock: [0,0,0,5] 58 | Node3 -> Node2: y [12,7,5,2] 59 | note left of Node3: Node3's clock: [0,0,5,0] 60 | Node2 -> Node1: z [13,7,5,2] 61 | note left of Node2: Node2's clock: [0,6,0,0] 62 | @enduml 63 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-03/slide-04-cluster-grid.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Cluster und Grid} 3 | \begin{frame} 4 | \frametitle{Cluster} 5 | \framesubtitle{Einleitung} 6 | \begin{itemize} 7 | \item Gruppe von Computern oder Servern 8 | \item Hochverfügbarkeit, Fehlertoleranz und Leistungsverbesserung 9 | \item In der Regel homogene HW 10 | \item Bietet einheitliche Schnittstelle 11 | \item Einsatz: High-Performance-Computing, Web-Hosting, Datenbank-Management 12 | \item Arten (Grundlage): Beowulf und Wolfpack 13 | \end{itemize} 14 | \end{frame} 15 | 16 | \begin{frame} 17 | \frametitle{Cluster} 18 | \framesubtitle{Beowulf} 19 | \begin{itemize} 20 | \item 1990er Jahren von Thomas Sterling und Donald Becker entwickelt 21 | \item Handelsüblicher Hardware und Open-Source-Software 22 | \item Hauptanwendung HPC 23 | \item Idee als Konkurrenz zu Großrechner 24 | \item Nutzen z.B. Message Passing Interface (MPI) oder Parallel Virtual Machine (PVM) 25 | \item kosteneffizient 26 | \end{itemize} 27 | \end{frame} 28 | 29 | \begin{frame} 30 | \frametitle{Cluster} 31 | \framesubtitle{Wolfpack} 32 | \begin{itemize} 33 | \item 1990er Jahren ursprünglich von Microsoft 34 | \item Teil der Windows NT Server-Produktlinie 35 | \item Wolfpack bietet Hochverfügbarkeit und Fehlertoleranz 36 | \end{itemize} 37 | \end{frame} 38 | 39 | \begin{frame} 40 | \frametitle{Cluster} 41 | \framesubtitle{InfiniBand } 42 | \begin{itemize} 43 | \item Konkurenz zu klassichen Ethernet Strukturen 44 | \item Geringere Latenz und hohe Bandbreit (bis zu mehreren hundert Gigabit pro Sekunde) 45 | \item Von der InfiniBand Trade Association (IBTA) als Standard definiert 46 | \item Basis ist serielles, punkt-zu-punkt Kommunikationsprotokoll 47 | \item Beispiel für Einsatz: Frankfurter Börse 48 | \end{itemize} 49 | \end{frame} 50 | 51 | \begin{frame} 52 | \frametitle{Grid} 53 | \framesubtitle{Einleitung } 54 | \begin{itemize} 55 | \item Geografisch verteilte und heterogene Computerressourcen 56 | \item Unterschiedlichen Hardware- und Softwarekonfigurationen 57 | \item Ressourcen in der Regel autonom 58 | \end{itemize} 59 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-30-p2p-example.tex: -------------------------------------------------------------------------------- 1 | 2 | %\subsection{Architek} 3 | \begin{frame} 4 | \frametitle{P2P Chord} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Chord-Architektur ist ein verteiltes Hashtabelle-System 8 | \item Basiert auf strukturierten Overlay-Netzwerk 9 | \item Bekannt seit 2001 10 | \item Grundlage für die Entwicklung von Blockchain-Technologien 11 | \item Grundlage dezentralisierten autonomen Organisationen (DAOs) 12 | \end{itemize} 13 | \end{frame} 14 | 15 | \begin{frame} 16 | \frametitle{P2P Chord} 17 | \framesubtitle{Struktur und Funktionsweise} 18 | \begin{itemize} 19 | \item Identifier Space: Default Ring 20 | \item Key-Node Mapping 21 | \item Finger Tables 22 | \item Lookup-Operationen 23 | \item Dynamik und Fehlertoleranz 24 | \end{itemize} 25 | \end{frame} 26 | 27 | \begin{frame} 28 | \frametitle{P2P Chord} 29 | \framesubtitle{Einsatzmöglichkeiten} 30 | \begin{itemize} 31 | \item Dateifreigabe 32 | \item Distributed Domain Name System (DDNS) 33 | \item Content Distribution Networks (CDN) 34 | \item Distributed Databases 35 | \item etc 36 | \end{itemize} 37 | \end{frame} 38 | 39 | \begin{frame} 40 | \frametitle{P2P Chord} 41 | \framesubtitle{Beispiel} 42 | \begin{figure}[!ht] 43 | \centering 44 | \includegraphics[width=0.45\textwidth]{fig/tex-grapics/chord.pdf.png} 45 | \caption{Chord Setup} 46 | \label{fig:chord} 47 | \end{figure} 48 | \end{frame} 49 | 50 | \begin{frame} 51 | \frametitle{P2P Chord} 52 | \framesubtitle{Fingertable} 53 | \begin{itemize} 54 | \item $log(n)$ Einträge 55 | \item $(n + 2^{(i-1)}) \mod 2^m$ 56 | \item Lässt schnelle Suche zu (im Vergleich zur linearen) 57 | \end{itemize} 58 | \end{frame} 59 | 60 | \begin{frame} 61 | \frametitle{P2P Chord} 62 | \framesubtitle{Cassandra} 63 | \begin{itemize} 64 | \item NoSQL-Datenbanksystem 65 | \item Partitionierungsstrategie 66 | \begin{itemize} 67 | \item Range-based Sharding 68 | \item Hash-based Sharding 69 | \end{itemize} 70 | \item Replikationsstrategie 71 | \item Datenmodell 72 | \item Gossip-Protokoll (statt Fingertable für Routing-Aufbau) 73 | \item Hinted Handoff 74 | \item Repair und Anti-Entropy 75 | \end{itemize} 76 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-03/slide-02-process.tex: -------------------------------------------------------------------------------- 1 | 2 | \subsection{Prozesse} 3 | \begin{frame} 4 | \frametitle{Prozesse} 5 | \framesubtitle{Prozesse} 6 | \begin{itemize} 7 | \item In VS große Rolle 8 | \item Prozesse äquivalent zum Task 9 | \item Task mobiler als Prozess 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Prozesse} 15 | \framesubtitle{Probleme Skalierung} 16 | \begin{itemize} 17 | \item Unterschiedliche Prozessorarchitekturen 18 | \item Betriebssystemabhängigkeiten 19 | \item Byte-Reihenfolge 20 | \item Speicherverwaltung 21 | \item Kommunikationsprotokolle 22 | \item Leistungsunterschiede 23 | \item Softwarebibliotheken 24 | \end{itemize} 25 | \end{frame} 26 | 27 | \begin{frame} 28 | \frametitle{Prozesse} 29 | \framesubtitle{Strategien} 30 | \begin{itemize} 31 | \item Abstraktion 32 | \item Plattformunabhängige Programmiersprachen und Laufzeitumgebungen 33 | \item Standardbibliotheken und Protokoll 34 | \item Cross-Kompilierung 35 | \item Automatisiertes Testen 36 | \item Leistungsunterschiede 37 | \item Softwarebibliotheken 38 | \end{itemize} 39 | \end{frame} 40 | 41 | \begin{frame} 42 | \frametitle{Prozesse} 43 | \framesubtitle{Probleme} 44 | \begin{itemize} 45 | \item Speicherzugriffsverletzungen 46 | \item Ressourcenkonflikte 47 | \item Nebenkanalangriffe 48 | \item Privilegienerweiterung 49 | \item Prozess-Interaktionen 50 | \end{itemize} 51 | \end{frame} 52 | 53 | \begin{frame} 54 | \frametitle{Prozesse} 55 | \framesubtitle{Abstraktionen} 56 | \begin{itemize} 57 | \item DOS 58 | \item NOS 59 | \end{itemize} 60 | \end{frame} 61 | 62 | \begin{frame} 63 | \frametitle{Prozesse} 64 | \framesubtitle{Probleme Betrieb} 65 | \begin{itemize} 66 | \item Lokalisierung des Prozess 67 | \item Kommunikation und Koordination 68 | \item Konsistenz und Zustand 69 | \item Fehlertoleranz 70 | \end{itemize} 71 | \end{frame} 72 | 73 | \begin{frame} 74 | \frametitle{Prozesse} 75 | \framesubtitle{Halte-Problem} 76 | \begin{itemize} 77 | \item Zeitüberschreitung (Timeouts) 78 | \item Überwachung und Fehlererkennung 79 | \item Begrenzung der Ressourcennutzung 80 | \item Deadlock-Erkennung und -Auflösung 81 | \item Modulare und robuste Software-Designs 82 | \item Testen und formale Verifikation 83 | \item Graceful Degradation und Selbstheilung 84 | \end{itemize} 85 | \end{frame} -------------------------------------------------------------------------------- /kapitel-02/ExampleCallback/callback.tex: -------------------------------------------------------------------------------- 1 | \documentclass{article} 2 | \usepackage[utf8]{inputenc} 3 | \usepackage{listings} 4 | \usepackage{xcolor} 5 | 6 | % Farbdefinitionen und Stil für den Code 7 | \definecolor{codegreen}{rgb}{0,0.6,0} 8 | \definecolor{codegray}{rgb}{0.5,0.5,0.5} 9 | \definecolor{codepurple}{rgb}{0.58,0,0.82} 10 | \definecolor{backcolour}{rgb}{0.95,0.95,0.92} 11 | 12 | \lstdefinestyle{mystyle}{ 13 | backgroundcolor=\color{backcolour}, 14 | commentstyle=\color{codegreen}, 15 | keywordstyle=\color{magenta}, 16 | numberstyle=\tiny\color{codegray}, 17 | stringstyle=\color{codepurple}, 18 | basicstyle=\ttfamily\footnotesize, 19 | breakatwhitespace=false, 20 | breaklines=true, 21 | captionpos=b, 22 | keepspaces=true, 23 | numbers=left, 24 | numbersep=5pt, 25 | showspaces=false, 26 | showstringspaces=false, 27 | showtabs=false, 28 | tabsize=2 29 | } 30 | 31 | \lstset{style=mystyle} 32 | 33 | \title{Callback Pattern in Java} 34 | \author{} 35 | \date{} 36 | 37 | \begin{document} 38 | 39 | \maketitle 40 | 41 | \section*{Callback Interface} 42 | 43 | \begin{lstlisting}[language=Java, caption=LightSwitchCallback Interface] 44 | public interface LightSwitchCallback { 45 | void onCompletion(String status); 46 | } 47 | \end{lstlisting} 48 | 49 | \section*{Lamp Implementation} 50 | 51 | \begin{lstlisting}[language=Java, caption=Lamp Class] 52 | public class Lamp { 53 | public void switchLight(String status, LightSwitchCallback callback) { 54 | System.out.println("Licht ist jetzt " + status + "."); 55 | callback.onCompletion("Lichtschaltung zu " + status + " abgeschlossen."); 56 | } 57 | } 58 | \end{lstlisting} 59 | 60 | \section*{Client Implementation} 61 | 62 | \begin{lstlisting}[language=Java, caption=LightSwitchClient Class] 63 | public class LightSwitchClient implements LightSwitchCallback { 64 | 65 | @Override 66 | public void onCompletion(String status) { 67 | System.out.println("Callback empfangen: " + status); 68 | } 69 | 70 | public static void main(String[] args) { 71 | LightSwitchClient client = new LightSwitchClient(); 72 | Lamp lamp = new Lamp(); 73 | 74 | lamp.switchLight("an", client); 75 | lamp.switchLight("aus", client); 76 | } 77 | } 78 | \end{lstlisting} 79 | 80 | \end{document} 81 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-05/slide-08-modern.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Self-Stabilization} 3 | \begin{frame} 4 | \frametitle{Algorithmen} 5 | \framesubtitle{Self-Stabilization} 6 | \begin{itemize} 7 | \item Ansatz der Fehlertoleranz für Algorithmen 8 | \item Aus beliebigen initialen Zuständen in einen korrekten Zustand zu wechseln 9 | \item Wichtig es garantiert nach einer endlichen Anzahl von Schritten einen korrekten Zustand 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Self-Stabilization} 15 | \framesubtitle{Ansätze} 16 | \begin{itemize} 17 | \item Dijkstra's Token Ring for Mutual Exclusion (Garantiert Existenz von einem Token) 18 | \item Arora-Gouda Spanning Tree (Kann beliebig neue Bäume erstellen) 19 | \item Afek-Kutten-Yung Spanning Tree (Verbesserung von Arora-Gouda Spanning Tree - Gruppen von Knoten) 20 | \end{itemize} 21 | \end{frame} 22 | 23 | \subsection{Smart Contracts} 24 | \begin{frame} 25 | \frametitle{Algorithmen} 26 | \framesubtitle{Smart Contracts} 27 | \begin{itemize} 28 | \item \enquote{Distributed Ledger Technology} (DLT) => Zentrale Datenbasis 29 | \item \enquote{Ledger} ist im Grunde eine Liste von (digitalen) Transaktionen 30 | \item Bekanntes Beispiel Blockchain 31 | \end{itemize} 32 | \end{frame} 33 | 34 | \begin{frame} 35 | \frametitle{Smart Contracts} 36 | \framesubtitle{Blockchain} 37 | \begin{itemize} 38 | \item Blockchains sind eine Form der verteilten Ledger-Technologie 39 | \item Protokollierungen von Transaktionen in einem Peer-to-Peer-Netzwerk 40 | \item Jede Transaktion wird in einem Block aufgezeichnet 41 | \item Jeder Block ist mit dem vorhergehenden Block verbunden 42 | \item Ergibt eine Kette von Blöcken oder eine \enquote{Blockchain} 43 | \item Jede Transaktion kann von jedem Knoten im Netzwerk gesehen und verifiziert werden 44 | \item Das Verbinden wird mit kryptographischen Verfahren abgesichert 45 | \end{itemize} 46 | \end{frame} 47 | 48 | \begin{frame} 49 | \frametitle{Smart Contracts} 50 | \framesubtitle{Idee} 51 | \begin{itemize} 52 | \item Smart Contracts sind Programme, die auf einer Blockchain ausgeführt werden 53 | \item Sie sind \enquote{smart}, weil sie automatisch ausgeführt werden 54 | \item Sobald ein Smart Contract auf die Blockchain hochgeladen wurde, kann er nicht mehr geändert oder gestoppt werden (Dezentrale Börse) 55 | \item Ethereum ist eine andere Open-Source-Blockchain-Plattform 56 | \item Aktuell viele dezentrale Anwendungen (dApps), die auf Smart Contracts basieren (Beispiel: Wettsysteme, Logistik, Spiele, etc) 57 | \item Jede Transaktion kann von jedem Knoten im Netzwerk gesehen und verifiziert werden 58 | \end{itemize} 59 | \end{frame} -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "weblatex", 3 | "image": "sanjibsen/weblatex:latest", // https://github.com/sanjib-sen/weblatex-docker 4 | "remoteUser": "root", // Do not change this 5 | "features": {}, 6 | "customizations": { 7 | "vscode": { 8 | "settings": { 9 | "latex-workshop.latex.clean.fileTypes": [ 10 | "*.aux", 11 | "*.bbl", 12 | "*.blg", 13 | "*.idx", 14 | "*.ind", 15 | "*.lof", 16 | "*.lot", 17 | "*.out", 18 | "*.toc", 19 | "*.acn", 20 | "*.acr", 21 | "*.alg", 22 | "*.glg", 23 | "*.glo", 24 | "*.gls", 25 | "*.fls", 26 | "*.log", 27 | "*.fdb_latexmk", 28 | "*.snm", 29 | "*.synctex(busy)", 30 | "*.synctex.gz(busy)", 31 | "*.nav", 32 | "*.vrb", 33 | "*.gz", // Added Manually 34 | "*.bcf", // Added Manually 35 | "*.nlo", // Added Manually 36 | "*.run.xml" // Added Manually 37 | ], 38 | // Edit the following property to change export directory 39 | "latex-workshop.latex.outDir": "./PDF", 40 | "latex-workshop.latex.autoClean.run": "onBuilt", 41 | "latex-workshop.latex.build.forceRecipeUsage": false, 42 | "latex-workshop.synctex.afterBuild.enabled": true, 43 | "latex-workshop.view.pdf.viewer": "tab", 44 | "latex-workshop.latex.clean.subfolder.enabled": true, 45 | "latex-workshop.latex.magic.args": [ 46 | "-output-directory=PDF", // to change the output directory 47 | "%DOC%" 48 | ], 49 | // Remove / comment the next 3 lines to remove dark view for pdf 50 | "latex-workshop.view.pdf.color.dark.pageColorsBackground": "#171717", // For Dark Viewwer 51 | "latex-workshop.latex.autoBuild.run": "never", 52 | "latex-workshop.view.pdf.color.dark.pageColorsForeground": "#FFFFFF", // For Dark Viewer 53 | "latex-workshop.view.pdf.color.dark.backgroundColor": "#171717", // For Dark Viewer 54 | "editor.formatOnSave": true, 55 | "latex-workshop.latex.pdfWatch.delay": 500, 56 | //"latex-workshop.latex.watch.delay": 500, // Deprecated. See here: https://github.com/sanjib-sen/WebLaTex/issues/8 57 | "latex-workshop.codespaces.portforwarding.openDelay": 20000, 58 | "grammarly.files.include": [ 59 | "**/*.tex" 60 | ], 61 | // Remove the following to check .md files with Grammarly. 62 | "grammarly.files.exclude": [ 63 | "**/*.md" 64 | ], 65 | "grammarly.selectors": [ 66 | { 67 | "language": "latex", 68 | "scheme": "file" 69 | } 70 | ] 71 | }, 72 | "extensions": [ 73 | "James-Yu.latex-workshop", 74 | "GitHub.copilot", 75 | // Remove the line below if you do not want Live-Collaboration Feature 76 | "ms-vsliveshare.vsliveshare", 77 | // Uncomment the line below if you do not want LanguageTool Support 78 | // "valentjn.vscode-ltex", 79 | // Remove the line below if you do not want Grammarly 80 | "znck.grammarly" 81 | ] 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-00/slide-00-vs.tex: -------------------------------------------------------------------------------- 1 | \section{Veranstaltung VS} 2 | \subsection{Anforderungen} 3 | \begin{frame} 4 | \frametitle{Anforderungen für Einstieg VS} 5 | \framesubtitle{Was sollte ich mitbringen? } 6 | \begin{itemize} 7 | \item Interesse daran, wie verteilte Anwendungen funktionieren 8 | \item Ein wenig Englisch ist hilfreich 9 | \item Ausreichende Kenntnisse der Programmiersprachen Java oder C++ 10 | \item Kenntnisse der Module: AD, DB, Programmier*, SE, BS, RN 11 | \end{itemize} 12 | \end{frame} 13 | \subsection{Resourcen} 14 | \begin{frame} 15 | \frametitle{Resourcen} 16 | \framesubtitle{Wo finde ich was?} 17 | \begin{itemize} 18 | \item Zentraler Punkt: MS Teams (Code: j9sy753) 19 | \item Zentrales Script: NEW Version 1.0.1 (Stabiler Inhalt, Format und Sprache werden weiter optimiert) 20 | \item Referenzliteratur und Basis früherer Vorlesungen \url{https://www.distributed-systems.net/index.php/books/ds4/} 21 | \item Folien mit der Struktur der Vorlesung 22 | \end{itemize} 23 | \end{frame} 24 | 25 | \subsection{Prüfung} 26 | \begin{frame} 27 | \frametitle{Prüfungsform} 28 | \framesubtitle{Abhängig der Teilnehmer} 29 | \begin{itemize} 30 | \item Mündliche Prüfung 31 | \item Basis das Praktikum 32 | \end{itemize} 33 | \end{frame} 34 | 35 | \subsection{Praktikum} 36 | \begin{frame} 37 | \frametitle{Praktikumsinformationen} 38 | \framesubtitle{Entwicklungszyklus in VS - Empfehlung} 39 | \begin{itemize} 40 | \item Mit Standalone Applikation Design starten 41 | \item Trennen in Client/-Server mit Middleware 42 | \item Orchestrieren mit RPC-Architektur 43 | \item Optimieren mit verteilten Algorithmus 44 | \end{itemize} 45 | \end{frame} 46 | 47 | \subsection{Praktikum - Best Practice} 48 | \begin{frame} 49 | \frametitle{Praktikumshinweise} 50 | \framesubtitle{Was sollte ich beachten?} 51 | \begin{itemize} 52 | \item Maximale Gruppengröße 4 (auch 3 möglich/ 5 unter besonderen Umständen). 53 | \item Praktikum ist zeitaufwendig 54 | \item Praktikum ist ein iterativer Prozess 55 | \item Praktikum hat keine Anwesenheitspflicht, nur verpflichtende Protokolle 56 | \end{itemize} 57 | \end{frame} 58 | 59 | \subsection{PVL Kriterien} 60 | \begin{frame} 61 | \frametitle{PVL} 62 | \framesubtitle{Anforderungen} 63 | \begin{itemize} 64 | \item Vollständige Dokumentation (Vorschlag ARC42) - Dokumentation muss zum Code passen und Code zur Dokumentation 65 | \item Dokumentation sollte midestens Komponenten, Klassen und Interaktionen umfassen (Vorschlag UML 2.5) 66 | \item Code Base, mit Test (Martin Becke und Frank Matthiesen müssen eingetragene Developer sein) 67 | \item Funktionale Umsetzung der beschriebenen Use Cases 68 | \item Es sollten alle VS Standards nach Tanenbaum/van Steen eingehalten werden, oder wie sie auch im Skript beschrieben sind 69 | \item Layer und Tiers 70 | \end{itemize} 71 | 72 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-06/slide-02-debugging.tex: -------------------------------------------------------------------------------- 1 | \section{Debugging} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Debugging} 5 | \framesubtitle{Distributed Debugging} 6 | \begin{itemize} 7 | \item Speziell dafür entwickelt 8 | \item Funktionen für das Setzen von Breakpoints, das Durchlaufen von Code und das Überwachen des Systemzustands 9 | \item Nicht selten ein Bundle 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Debugging} 15 | \framesubtitle{Minimum} 16 | \begin{itemize} 17 | \item Tracing-Tools 18 | \item Log-Aggregation-Tools 19 | \item Fehlerüberwachung und Crash-Reporting-Tools 20 | \item Hoher Verbund zum Monitoring 21 | \end{itemize} 22 | \end{frame} 23 | 24 | \begin{frame} 25 | \frametitle{Debugging} 26 | \framesubtitle{Beispiel Tracing: Jaeger} 27 | \begin{itemize} 28 | \item Trace-Erzeugung 29 | \item Context Propagation 30 | \item Span-Sammlung und Speicherung 31 | \item Trace-Analyse und Visualisierung 32 | \end{itemize} 33 | Der Einsatz von Jaeger erfordert eine gewisse Anstrengung 34 | \end{frame} 35 | 36 | \begin{frame} 37 | \frametitle{Debugging} 38 | \framesubtitle{Techniken} 39 | \begin{itemize} 40 | \item Snapshot: Zustand eines Systems für die Analyse festhalten 41 | \item Replay-Techniken: Wiederholung durch Aufzeichnung und Snapshot 42 | \end{itemize} 43 | Der Einsatz von Jaeger erfordert eine gewisse Anstrengung 44 | \end{frame} 45 | 46 | \begin{frame} 47 | \frametitle{Debugging} 48 | \framesubtitle{Werkzeuge für Techniken} 49 | \begin{itemize} 50 | \item Record and Replay Frameworks (Beispiel: Mozilla's rr) 51 | \item Distributed Snapshot Frameworks (Beispiel: Flockport) 52 | \item Event Logging und Distributed Tracing Tools (Beispiel: Zipkin) 53 | \end{itemize} 54 | Der Einsatz von Jaeger erfordert eine gewisse Anstrengung 55 | \end{frame} 56 | 57 | \begin{frame} 58 | \frametitle{Debugging} 59 | \framesubtitle{Fehlerinjektion} 60 | \begin{itemize} 61 | \item Absichtlich Fehler 62 | \item Beispiele Gremlin oder Chaos Monkey 63 | \item Nicht selten Live Betrieb 64 | \end{itemize} 65 | \end{frame} 66 | 67 | \begin{frame} 68 | \frametitle{Debugging} 69 | \framesubtitle{Fehlerinjektion} 70 | \begin{itemize} 71 | \item Hardware-Fehlerinjektion 72 | \item Software-Fehlerinjektion 73 | \item Netzwerk-Fehlerinjektion 74 | \end{itemize} 75 | \end{frame} 76 | 77 | \begin{frame} 78 | \frametitle{Debugging} 79 | \framesubtitle{Häufigste Problem-Sektoren} 80 | \begin{itemize} 81 | \item Performance 82 | \item Konfiguration 83 | \item Netzwerk 84 | \end{itemize} 85 | \end{frame} 86 | 87 | \begin{frame} 88 | \frametitle{Debugging} 89 | \framesubtitle{Werkzeuge für Problem-Sektoren} 90 | \begin{itemize} 91 | \item Profiling-Werkzeuge (Performance) 92 | \item Konfigurationsmanagement-Werkzeuge wie Ansible oder Puppet (Kontrolle über Config) 93 | \item Netzwerksimulationswerkzeuge 94 | \end{itemize} 95 | \end{frame} -------------------------------------------------------------------------------- /fig/uml/src/clock_exam_concurrent_lamport.pluml: -------------------------------------------------------------------------------- 1 | @startuml 2 | participant Node1 3 | participant Node2 4 | participant Node3 5 | participant Node4 6 | 7 | Node1 -> Node2: a [1] 8 | note right of Node1: Node1's clock: 1 9 | note right of Node2: Node2's clock: 2 10 | Node1 -> Node3: b [2] 11 | note right of Node1: Node1's clock: 2 12 | note right of Node3: Node3's clock: 3 13 | Node1 -> Node4: c [3] 14 | note right of Node1: Node1's clock: 3 15 | note right of Node4: Node4's clock: 4 16 | 17 | 18 | Node2 -> Node1: d [3] 19 | note left of Node1: Node1's clock: 4 20 | note left of Node2: Node2's clock: 3 21 | 22 | Node3 -> Node1: e [4] 23 | note left of Node1: Node1's clock: 5 24 | note left of Node3: Node3's clock: 4 25 | 26 | Node4 -> Node1: f [5] 27 | note left of Node4: Node4's clock: 5 28 | note left of Node1: Node1's clock: 6 29 | 30 | Node1 -> Node2: g [7] 31 | note right of Node1: Node1's clock: 7 32 | note right of Node2: Node2's clock: 8 33 | 34 | Node1 -> Node3: h [8] 35 | note right of Node1: Node1's clock: 8 36 | note right of Node3: Node3's clock: 9 37 | 38 | Node1 -> Node4: i [9] 39 | note right of Node1: Node1's clock: 9 40 | note right of Node3: Node3's clock: 10 41 | 42 | Node2 -> Node1: j [9] 43 | note left of Node2: Node2's clock: 9 44 | note right of Node1: Node1's clock: 10 45 | 46 | Node3 -> Node2: k [10] 47 | note left of Node2: Node2's clock: 11 48 | note right of Node3: Node3's clock: 10 49 | 50 | Node4 -> Node3: l [11] 51 | note left of Node3: Node3's clock: 12 52 | note left of Node2: Node4's clock: 11 53 | 54 | 55 | Node1 -> Node4: m [11] 56 | note right of Node1: Node1's clock:11 57 | note right of Node4: Node4's clock:12 58 | 59 | Node2 -> Node3: n [12] 60 | note left of Node2: Node2's clock: 12 61 | note left of Node3: Node3's clock: 13 62 | 63 | Node3 -> Node4: p [14] 64 | note left of Node3: Node3's clock: 14 65 | note left of Node4: Node4s's clock: 15 66 | 67 | Node4 -> Node1: q [16] 68 | note left of Node4: Node4's clock: 16 69 | note left of Node1: Node1's clock: 17 70 | 71 | Node1 -> Node2: r [18] 72 | note right of Node1: Node1's clock: 18 73 | note right of Node2: Node2's clock: 19 74 | 75 | Node2 -> Node4: t [20] 76 | note left of Node2: Node2's clock: 20 77 | note left of Node4: Node4's clock: 21 78 | 79 | Node4 -> Node3: s [22] 80 | note right of Node4: Node4's clock: 22 81 | note right of Node3: Node3's clock: 23 82 | 83 | Node3 -> Node2: u [24] 84 | note left of Node3: Node3's clock: 24 85 | note left of Node2: Node2's clock: 25 86 | 87 | Node2 -> Node1: v [26] 88 | note left of Node2: Node2's clock: 26 89 | note left of Node1: Node1's clock: 27 90 | Node1 -> Node4: w [28] 91 | note right of Node1: Node1's clock: 28 92 | note right of Node4: Node4's clock: 29 93 | 94 | Node4 -> Node3: x [30] 95 | note right of Node4: Node4's clock: 30 96 | note right of Node3: Node3's clock: 31 97 | Node3 -> Node2: y [32] 98 | note left of Node3: Node3's clock: 32 99 | note left of Node2: Node2's clock: 33 100 | Node2 -> Node1: z [34] 101 | note left of Node2: Node2's clock: 34 102 | note left of Node1: Node1's clock: 35 103 | @enduml 104 | -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-25-Injection.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Dependency Injection} 3 | \begin{frame} 4 | \frametitle{Dependency Injection} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Abhängigkeiten eines Objekts wird von außen bereitgestellt 8 | \item Code wird modularer, testbarer und wartbarer 9 | \item Gleichen Vorteile wie das Factory Pattern 10 | \item Führt zusätzliche Komplexität ein 11 | \item Leistung kann reduziert werden, wenn Abhängigkeiten über das Netzwerk transportiert werden muss 12 | \item Kann Sicherheitsprobleme einführen 13 | \item Problematisch im Debugging 14 | \end{itemize} 15 | \end{frame} 16 | 17 | \begin{frame}[fragile] 18 | \frametitle{Dependency Injection} 19 | \framesubtitle{Umsetzung in Code I} 20 | \begin{minipage}{\textwidth} 21 | \begin{lstlisting}[caption={Schnittstelle für die Abhängigkeit},captionpos=b,label={lst:di-interface}] 22 | public interface BulbService { 23 | void doLight(); 24 | } 25 | \end{lstlisting} 26 | \end{minipage} 27 | \end{frame} 28 | 29 | \begin{frame}[fragile] 30 | \frametitle{Dependency Injection} 31 | \framesubtitle{Umsetzung in Code II} 32 | \begin{minipage}{\textwidth} 33 | \begin{lstlisting}[caption={Schnittstellenimplementierung},captionpos=b,label={lst:di-interface-implementation}] 34 | 35 | public class Bulb implements BulbService { 36 | public void doLight() { 37 | System.out.println("Do cool Stuff"); 38 | } 39 | } 40 | \end{lstlisting} 41 | \end{minipage} 42 | \end{frame} 43 | 44 | \begin{frame}[fragile] 45 | \frametitle{Dependency Injection} 46 | \framesubtitle{Umsetzung in Code III} 47 | \begin{minipage}{\textwidth} 48 | \begin{lstlisting}[caption={Dependency},captionpos=b,label={lst:di-dependency}] 49 | 50 | public class ControllerOnPI { 51 | private BulbService service; 52 | 53 | public ControllerOnPI(BulbService service) { 54 | this.service = service; 55 | } 56 | 57 | public void doControl() { 58 | service.doLight(); 59 | } 60 | } 61 | \end{lstlisting} 62 | \end{minipage} 63 | \end{frame} 64 | 65 | \begin{frame}[fragile] 66 | \frametitle{Dependency Injection} 67 | \framesubtitle{Umsetzung in Code IV} 68 | \noindent\begin{minipage}{\textwidth} 69 | \begin{lstlisting}[caption={Die DI Main},captionpos=b,label={lst:di-main}] 70 | public class Main { 71 | public static void main(String[] args) { 72 | BulbService bulb = new Bulb(); 73 | ControllerOnPI c = new ControllerOnPI(bulb); 74 | 75 | c.doControl(); 76 | } 77 | } 78 | \end{lstlisting} 79 | \end{minipage} 80 | \end{frame} 81 | 82 | \begin{frame} 83 | \frametitle{Dependency Injection} 84 | \framesubtitle{Reflection} 85 | \begin{itemize} 86 | \item Dependency Injection (DI) wird häufig mit Reflection umgesetzt 87 | \item Struktur und Verhalten zur Laufzeit analysieren 88 | \item Eigenschaften und Funktionalitäten können zur Laufzeit verändert werden 89 | \item In vielen Programmiersprachen unterstützt, z. B. in Java, C\#, Python und JavaScript 90 | \end{itemize} 91 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-08-transaktion.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Transaktion} 3 | \begin{frame} 4 | \frametitle{Transaktion} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Eine Sequenz von Operationen 8 | \item Wichtig für Konsistenz und Integrität 9 | \item ACID-Eigenschaften 10 | \end{itemize} 11 | \end{frame} 12 | \begin{frame} 13 | \frametitle{Transaktion} 14 | \framesubtitle{Beispiele} 15 | \begin{itemize} 16 | \item Bankwesen 17 | \item E-Commerce 18 | \item Verteilte Datenbanken 19 | \item Roboter/Urlaub (Diskussion) 20 | \end{itemize} 21 | \end{frame} 22 | \begin{frame} 23 | \frametitle{Transaktion} 24 | \framesubtitle{Transaktionsmanager} 25 | \begin{itemize} 26 | \item Verschachtelte Transaktionen 27 | \item Größere Transaktionen separat abschlie ßen 28 | \item Koordiniert zurückzurollen 29 | \end{itemize} 30 | \end{frame} 31 | 32 | \begin{frame} 33 | \frametitle{Transaktionsmanager} 34 | \framesubtitle{Aufgaben} 35 | \begin{itemize} 36 | \item Koordination 37 | \item Protokollierung und Wiederherstellung 38 | \item Isolierung und Synchronisation 39 | \item Commit und Rollback 40 | \end{itemize} 41 | \end{frame} 42 | 43 | \begin{frame} 44 | \frametitle{Transaktion} 45 | \framesubtitle{Message Passing} 46 | \begin{itemize} 47 | \item Kommunikationsparadigma 48 | \item Grundlegendes Konzept 49 | \item Nutzt Nachrichten, die Daten oder Anweisungen enthalten 50 | \end{itemize} 51 | \end{frame} 52 | 53 | \begin{frame} 54 | \frametitle{Message Passing} 55 | \framesubtitle{Eigenschaften} 56 | \begin{itemize} 57 | \item Asynchrone Kommunikation 58 | \item Lose Kopplung 59 | \item Skalierbarkeit 60 | \end{itemize} 61 | \end{frame} 62 | 63 | \begin{frame} 64 | \frametitle{Message Passing} 65 | \framesubtitle{Beispiele} 66 | \begin{itemize} 67 | \item Message Queues 68 | \item Message Passing Interface (MPI) 69 | \item Publish-Subscribe-Systeme 70 | \item MOM 71 | \end{itemize} 72 | \end{frame} 73 | 74 | \begin{frame} 75 | \frametitle{Message Passing} 76 | \framesubtitle{Actor-Modell} 77 | \begin{itemize} 78 | \item Setzt auf das Konzept von Message Passing auf 79 | \item Ist ein Konzept für das Design von verteilten Systemen 80 | \item Actoren sind grundlegende Recheneinheiten 81 | \item Isolation 82 | \item Nachrichtenbasiert 83 | \item Lokalitätstransparent 84 | \item Fehlertolerant 85 | \item Beispiel CAF (HAW Hamburg) 86 | \end{itemize} 87 | \end{frame} 88 | 89 | \begin{frame} 90 | \frametitle{Idempotent} 91 | \framesubtitle{Eigenschaft} 92 | \begin{itemize} 93 | \item Operationen, die wiederholt ausgeführt werden können, ohne dass sich das Ergebnis nach der ersten Anwendung ändert 94 | \item Beispiel HTTP Put 95 | \end{itemize} 96 | \end{frame} 97 | 98 | \begin{frame} 99 | \frametitle{DHT} 100 | \framesubtitle{Eigenschaft} 101 | \begin{itemize} 102 | \item Schlüssel-Wert-Speichersystem 103 | \item Bedeutung im Peer-to-Peer-Netzwerk 104 | \item Wichtig ist der Schlüsselraum 105 | \end{itemize} 106 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-10-schichten.tex: -------------------------------------------------------------------------------- 1 | %\section{Einleitung} 2 | \subsection{Schichtenarchitektur} 3 | \begin{frame} 4 | \frametitle{Schichtenarchitektur} 5 | \framesubtitle{Definition} 6 | \begin{itemize} 7 | \item Hierarchische Struktur 8 | \item Definiert Abstraktionsebenen mit allgemeinen Schnittstellen 9 | \item Jede Schicht repräsentiert ein Set von Funktionen 10 | \item Jede Schicht hat eine oder mehrere Interpretationen 11 | \item Jede Interpretation implementiert Protokolle 12 | \end{itemize} 13 | \end{frame} 14 | \begin{frame} 15 | \frametitle{Schichtenarchitektur} 16 | \framesubtitle{Bedeutung} 17 | \begin{itemize} 18 | \item Komplexe Systeme in kleinere, einfachere Teile zerlegen 19 | \item Trennung von Verantwortlichkeiten 20 | \item Schichten können unabhängig entwickelt, getestet und gewartet werden 21 | \item Jede Schicht kann als Komponente verstanden werden 22 | \item Interoperabilität und Kompatibilität steigt 23 | \item Wiederverwendbarkeit steigt 24 | \item Chance und Risiko für Sicherheit 25 | \item Historisch wichtig und immer noch hohen Einfluss 26 | \end{itemize} 27 | \end{frame} 28 | \begin{frame} 29 | \frametitle{Schichtenarchitektur} 30 | \framesubtitle{Beispiele} 31 | \begin{itemize} 32 | \item ISO OSI Referenzmodell 33 | \item DECnet 34 | \item Cloud Architekturen 35 | \item Micro Service Architekturen 36 | \end{itemize} 37 | \end{frame} 38 | 39 | \begin{frame} 40 | \frametitle{Layer} 41 | \framesubtitle{Definition} 42 | \begin{itemize} 43 | \item Logische Gruppierung von Funktionen 44 | \item Schichten werden in der Regel vertikal angeordnet 45 | \item Jede Schicht erfüllt eine spezifische Funktion 46 | \end{itemize} 47 | \end{frame} 48 | 49 | \begin{frame} 50 | \frametitle{Layer} 51 | \framesubtitle{Beispiel} 52 | \begin{itemize} 53 | \item Presentation Layer 54 | \item Business Logic Layer 55 | \item Data Access Layer 56 | \end{itemize} 57 | \end{frame} 58 | 59 | 60 | \begin{frame} 61 | \frametitle{Layer} 62 | \framesubtitle{Als Komponenten} 63 | \begin{figure}[!h] 64 | \centering 65 | \includegraphics[width=0.20\textwidth]{fig/uml/simple-layers.png} 66 | \caption{Einfaches Schichtenmodell} 67 | \label{fig:simple-layer} 68 | \end{figure} 69 | \end{frame} 70 | 71 | \begin{frame} 72 | \frametitle{Tier} 73 | \framesubtitle{Definition} 74 | \begin{itemize} 75 | \item Physische oder logische Aufteilung 76 | \item Jedes Tier hat normalerweise eine spezifische Funktion 77 | \item Normalerweise durch eine Netzwerkverbindung miteinander verbunden 78 | \end{itemize} 79 | \end{frame} 80 | 81 | \begin{frame} 82 | \frametitle{Tier} 83 | \framesubtitle{Beispiel} 84 | \begin{itemize} 85 | \item Präsentations-Tier 86 | \item Anwendungs-Tier 87 | \item Datenbank-Tier 88 | \end{itemize} 89 | \end{frame} 90 | 91 | \begin{frame} 92 | \frametitle{Tier} 93 | \framesubtitle{Als Komponenten} 94 | 95 | \begin{figure}[!h] 96 | \centering 97 | \includegraphics[width=0.95\textwidth]{fig/uml/simple-tiers.png} 98 | \caption{Einfaches Tier Modell} 99 | \label{fig:simple-tier} 100 | \end{figure} 101 | \end{frame} -------------------------------------------------------------------------------- /vs-slides-chapter00.tex: -------------------------------------------------------------------------------- 1 | \documentclass[11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[english,french, german]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | \usepackage{csquotes} 10 | % ------------------------------------------------------------------------------ 11 | % Parameters 12 | \mode{\usetheme{Luebeck}} 13 | \setbeamertemplate{itemize items}[triangle] 14 | \setbeamercovered{transparent} 15 | \usecolortheme{dove} 16 | \usefonttheme{serif} 17 | \addtobeamertemplate{block begin}{}{\justifying} 18 | % ToC 19 | \AtBeginSection[] { 20 | \begin{frame}{Contents} 21 | \tableofcontents[currentsection] 22 | \end{frame} 23 | } 24 | % Headline 25 | \makeatletter 26 | \setbeamertemplate{headline}{% 27 | \leavevmode% 28 | \@tempdimb=2.4375ex% 29 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 30 | \multiply\@tempdimb by\beamer@sectionmax% 31 | \else% 32 | \multiply\@tempdimb by\beamer@subsectionmax% 33 | \fi% 34 | \ifdim\@tempdimb>0pt% 35 | \advance\@tempdimb by 1.825ex% 36 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 37 | % \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 38 | \end{beamercolorbox}% 39 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 40 | % \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 41 | \end{beamercolorbox}% 42 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 43 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 44 | \end{beamercolorbox}% 45 | \fi% 46 | } 47 | \makeatother 48 | % Footline 49 | \makeatletter 50 | \setbeamertemplate{footline}{% 51 | \leavevmode% 52 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 53 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 54 | \end{beamercolorbox}% 55 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 56 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 57 | \end{beamercolorbox}}% 58 | \vskip0pt% 59 | } 60 | \makeatother 61 | % ------------------------------------------------------------------------------ 62 | % Infos 63 | \title[VS]{Verteilte Systeme} 64 | %\subtitle[Short subtitle]{Subtitle} 65 | \author[BCK]{Prof. Dr. Martin Becke} 66 | \date[0.9]{Version 0.9} 67 | \institute[CaDS]{CaDS - HAW Hamburg} 68 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 69 | % ------------------------------------------------------------------------------ 70 | % Document 71 | \begin{document} 72 | % ------------------------------------------------------------------------------ 73 | % Titlepage 74 | \begin{frame} 75 | \titlepage{} 76 | \end{frame} 77 | % ------------------------------------------------------------------------------ 78 | % ToC 79 | %\begin{frame}{Contents} 80 | % \tableofcontents 81 | %\end{frame} 82 | % ------------------------------------------------------------------------------ 83 | 84 | \include{slides-kapitel-00/slide-00-orga} 85 | \include{slides-kapitel-00/slide-00-vs} 86 | % ------------------------------------------------------------------------------ 87 | % Fin 88 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter00.tex: -------------------------------------------------------------------------------- 1 | \documentclass[11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[english,french, german]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | \usepackage{csquotes} 10 | % ------------------------------------------------------------------------------ 11 | % Parameters 12 | \mode{\usetheme{Luebeck}} 13 | \setbeamertemplate{itemize items}[triangle] 14 | \setbeamercovered{transparent} 15 | \usecolortheme{dove} 16 | \usefonttheme{serif} 17 | \addtobeamertemplate{block begin}{}{\justifying} 18 | % ToC 19 | \AtBeginSection[] { 20 | \begin{frame}{Contents} 21 | \tableofcontents[currentsection] 22 | \end{frame} 23 | } 24 | % Headline 25 | \makeatletter 26 | \setbeamertemplate{headline}{% 27 | \leavevmode% 28 | \@tempdimb=2.4375ex% 29 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 30 | \multiply\@tempdimb by\beamer@sectionmax% 31 | \else% 32 | \multiply\@tempdimb by\beamer@subsectionmax% 33 | \fi% 34 | \ifdim\@tempdimb>0pt% 35 | \advance\@tempdimb by 1.825ex% 36 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 37 | % \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 38 | \end{beamercolorbox}% 39 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 40 | % \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 41 | \end{beamercolorbox}% 42 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 43 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 44 | \end{beamercolorbox}% 45 | \fi% 46 | } 47 | \makeatother 48 | % Footline 49 | \makeatletter 50 | \setbeamertemplate{footline}{% 51 | \leavevmode% 52 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 53 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 54 | \end{beamercolorbox}% 55 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 56 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 57 | \end{beamercolorbox}}% 58 | \vskip0pt% 59 | } 60 | \makeatother 61 | % ------------------------------------------------------------------------------ 62 | % Infos 63 | \title[VS]{Verteilte Systeme} 64 | %\subtitle[Short subtitle]{Subtitle} 65 | \author[BCK]{Prof. Dr. Martin Becke} 66 | \date[0.9]{Version 0.9} 67 | \institute[CaDS]{CaDS - HAW Hamburg} 68 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 69 | % ------------------------------------------------------------------------------ 70 | % Document 71 | \begin{document} 72 | % ------------------------------------------------------------------------------ 73 | % Titlepage 74 | \begin{frame} 75 | \titlepage{} 76 | \end{frame} 77 | % ------------------------------------------------------------------------------ 78 | % ToC 79 | %\begin{frame}{Contents} 80 | % \tableofcontents 81 | %\end{frame} 82 | % ------------------------------------------------------------------------------ 83 | 84 | \include{slides-kapitel-00/slide-00-orga} 85 | \include{slides-kapitel-00/slide-00-vs} 86 | % ------------------------------------------------------------------------------ 87 | % Fin 88 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-06/slide-01-monitoring.tex: -------------------------------------------------------------------------------- 1 | \section{Monitoring} 2 | %\subsection{Einleitung} 3 | \begin{frame} 4 | \frametitle{Monitoring} 5 | \framesubtitle{Idee} 6 | \begin{itemize} 7 | \item Management der Komplexität 8 | \item Unterstützung der Fehlertoleranz 9 | \item Automatisierung und Abstraktion (Auch für Fachfremde) 10 | \end{itemize} 11 | \end{frame} 12 | 13 | \begin{frame} 14 | \frametitle{Monitoring} 15 | \framesubtitle{Schlüsselfunktionen} 16 | \begin{itemize} 17 | \item Performance-Optimierung 18 | \item Fehlerdiagnose 19 | \item Systemintegrität 20 | \end{itemize} 21 | \end{frame} 22 | 23 | \begin{frame} 24 | \frametitle{Monitoring} 25 | \framesubtitle{Metrikarten} 26 | \begin{itemize} 27 | \item Performance-Metriken 28 | \item Ressourcen-Metriken 29 | \item Fehlermetriken 30 | \end{itemize} 31 | \end{frame} 32 | 33 | \begin{frame} 34 | \frametitle{Monitoring} 35 | \framesubtitle{Verteilte Metrikarten} 36 | \begin{itemize} 37 | \item Netzwerk-Metriken 38 | \item Datenkonsistenz-Metriken 39 | \item Lastverteilungs-Metriken 40 | \item Skalierbarkeits-Metriken 41 | \end{itemize} 42 | \end{frame} 43 | 44 | \begin{frame} 45 | \frametitle{Monitoring} 46 | \framesubtitle{Metriken } 47 | \begin{itemize} 48 | \item Erfassen 49 | \item Speichern 50 | \item Analysieren 51 | \item Visualisieren 52 | \end{itemize} 53 | \end{frame} 54 | 55 | \begin{frame} 56 | \frametitle{Monitoring} 57 | \framesubtitle{Metriken nutzen} 58 | \begin{itemize} 59 | \item Logging (Basis System) 60 | \item Tracing (Basis Transaktion) 61 | \item Herausforderung Synchronisation 62 | \end{itemize} 63 | \end{frame} 64 | 65 | \begin{frame} 66 | \frametitle{Monitoring} 67 | \framesubtitle{Ebenen} 68 | \begin{itemize} 69 | \item System-Monitoring 70 | \item Netzwerk-Monitoring 71 | \item Datenfluss-Monitoring 72 | \end{itemize} 73 | \end{frame} 74 | 75 | \begin{frame} 76 | \frametitle{Monitoring} 77 | \framesubtitle{Aktuelle Themen} 78 | \begin{itemize} 79 | \item Automatisiertes Monitoring 80 | \item KI-gesteuerte Analyse 81 | \item Verteilte Tracing-Technologien 82 | \item Cloud-basiertes Monitoring 83 | \end{itemize} 84 | \end{frame} 85 | 86 | \begin{frame} 87 | \frametitle{Monitoring} 88 | \framesubtitle{Modelle} 89 | \begin{itemize} 90 | \item Benchmarks und Performance 91 | \item Anomalie- und Fehlererkennung 92 | \item Vorhersagende Analytik 93 | \item Formale Methoden 94 | \end{itemize} 95 | \end{frame} 96 | 97 | \begin{frame} 98 | \frametitle{Monitoring} 99 | \framesubtitle{Weitere Anforderungen: Banken} 100 | \begin{itemize} 101 | \item Datenschutz und Datensicherheit 102 | \item Auditierung 103 | \item Authentifizierung und Zugriffskontrolle auch für das Monitoring 104 | \end{itemize} 105 | \end{frame} 106 | 107 | \begin{frame} 108 | \frametitle{Monitoring} 109 | \framesubtitle{Self-Healing} 110 | \begin{itemize} 111 | \item Fehler oder Defekte erkennen und automatisch beheben 112 | \item Ohne menschliches Eingreifen. 113 | \item Einfluss auf Fehlertoleranz 114 | \end{itemize} 115 | \end{frame} 116 | 117 | \begin{frame} 118 | \frametitle{Monitoring} 119 | \framesubtitle{Entwickler} 120 | \begin{itemize} 121 | \item Wichtig für Fehlerbehebung 122 | \item Mit in die Architektur einplanen! 123 | \end{itemize} 124 | \end{frame} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter01-2.tex: -------------------------------------------------------------------------------- 1 | \documentclass[11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[english,french, german]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | \usepackage{csquotes} 10 | % ------------------------------------------------------------------------------ 11 | % Parameters 12 | \mode{\usetheme{Luebeck}} 13 | \setbeamertemplate{itemize items}[triangle] 14 | \setbeamercovered{transparent} 15 | \usecolortheme{dove} 16 | \usefonttheme{serif} 17 | \addtobeamertemplate{block begin}{}{\justifying} 18 | % ToC 19 | \AtBeginSection[] { 20 | \begin{frame}{Inhalt} 21 | \tableofcontents[currentsection] 22 | \end{frame} 23 | } 24 | % Headline 25 | \makeatletter 26 | \setbeamertemplate{headline}{% 27 | \leavevmode% 28 | \@tempdimb=2.4375ex% 29 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 30 | \multiply\@tempdimb by\beamer@sectionmax% 31 | \else% 32 | \multiply\@tempdimb by\beamer@subsectionmax% 33 | \fi% 34 | \ifdim\@tempdimb>0pt% 35 | \advance\@tempdimb by 1.825ex% 36 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 37 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 38 | \end{beamercolorbox}% 39 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 40 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 41 | \end{beamercolorbox}% 42 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 43 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 44 | \end{beamercolorbox}% 45 | \fi% 46 | } 47 | \makeatother 48 | % Footline 49 | \makeatletter 50 | \setbeamertemplate{footline}{% 51 | \leavevmode% 52 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 53 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 54 | \end{beamercolorbox}% 55 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 56 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 57 | \end{beamercolorbox}}% 58 | \vskip0pt% 59 | } 60 | \makeatother 61 | % ------------------------------------------------------------------------------ 62 | % Infos 63 | \title[VS]{Verteilte Systeme} 64 | %\subtitle[Short subtitle]{Subtitle} 65 | \author[BCK]{Prof. Dr. Martin Becke} 66 | \date[0.9]{Version 0.9} 67 | \institute[CaDS]{CaDS - HAW Hamburg} 68 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 69 | % ------------------------------------------------------------------------------ 70 | % Document 71 | \begin{document} 72 | % ------------------------------------------------------------------------------ 73 | % Titlepage 74 | \begin{frame} 75 | \titlepage{} 76 | \end{frame} 77 | % ------------------------------------------------------------------------------ 78 | % ToC 79 | %\begin{frame}{Contents} 80 | % \tableofcontents 81 | %\end{frame} 82 | % ------------------------------------------------------------------------------ 83 | 84 | \include{slides-kapitel-01/slide-05-shared} 85 | \include{slides-kapitel-01/slide-06-offen} 86 | \include{slides-kapitel-01/slide-07-scale} 87 | \include{slides-kapitel-01/slide-08-transparenz} 88 | 89 | % ------------------------------------------------------------------------------ 90 | % Fin 91 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter01-1.tex: -------------------------------------------------------------------------------- 1 | \documentclass[11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[english,french, german]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | \usepackage{csquotes} 10 | % ------------------------------------------------------------------------------ 11 | % Parameters 12 | \mode{\usetheme{Luebeck}} 13 | \setbeamertemplate{itemize items}[triangle] 14 | \setbeamercovered{transparent} 15 | \usecolortheme{dove} 16 | \usefonttheme{serif} 17 | \addtobeamertemplate{block begin}{}{\justifying} 18 | % ToC 19 | \AtBeginSection[] { 20 | \begin{frame}{Inhalt} 21 | \tableofcontents[currentsection] 22 | \end{frame} 23 | } 24 | % Headline 25 | \makeatletter 26 | \setbeamertemplate{headline}{% 27 | \leavevmode% 28 | \@tempdimb=2.4375ex% 29 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 30 | \multiply\@tempdimb by\beamer@sectionmax% 31 | \else% 32 | \multiply\@tempdimb by\beamer@subsectionmax% 33 | \fi% 34 | \ifdim\@tempdimb>0pt% 35 | \advance\@tempdimb by 1.825ex% 36 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 37 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 38 | \end{beamercolorbox}% 39 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 40 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 41 | \end{beamercolorbox}% 42 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 43 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 44 | \end{beamercolorbox}% 45 | \fi% 46 | } 47 | \makeatother 48 | % Footline 49 | \makeatletter 50 | \setbeamertemplate{footline}{% 51 | \leavevmode% 52 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 53 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 54 | \end{beamercolorbox}% 55 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 56 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 57 | \end{beamercolorbox}}% 58 | \vskip0pt% 59 | } 60 | \makeatother 61 | % ------------------------------------------------------------------------------ 62 | % Infos 63 | \title[VS]{Verteilte Systeme} 64 | %\subtitle[Short subtitle]{Subtitle} 65 | \author[BCK]{Prof. Dr. Martin Becke} 66 | \date[0.9]{Version 0.9} 67 | \institute[CaDS]{CaDS - HAW Hamburg} 68 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 69 | % ------------------------------------------------------------------------------ 70 | % Document 71 | \begin{document} 72 | % ------------------------------------------------------------------------------ 73 | % Titlepage 74 | \begin{frame} 75 | \titlepage{} 76 | \end{frame} 77 | % ------------------------------------------------------------------------------ 78 | % ToC 79 | %\begin{frame}{Contents} 80 | % \tableofcontents 81 | %\end{frame} 82 | % ------------------------------------------------------------------------------ 83 | 84 | \include{slides-kapitel-01/slide-01-intro} 85 | \include{slides-kapitel-01/slide-02-HH-example} 86 | \include{slides-kapitel-01/slide-03-vs-definition} 87 | \include{slides-kapitel-01/slide-04-ziele} 88 | 89 | % ------------------------------------------------------------------------------ 90 | % Fin 91 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter01-3.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | \usepackage{csquotes} 10 | 11 | % ------------------------------------------------------------------------------ 12 | % Parameters 13 | \mode{\usetheme{Luebeck}} 14 | \setbeamertemplate{itemize items}[triangle] 15 | \setbeamercovered{transparent} 16 | \usecolortheme{dove} 17 | \usefonttheme{serif} 18 | \addtobeamertemplate{block begin}{}{\justifying} 19 | % ToC 20 | \AtBeginSection[] { 21 | \begin{frame}{Inhalt} 22 | \tableofcontents[currentsection] 23 | \end{frame} 24 | } 25 | % Headline 26 | \makeatletter 27 | \setbeamertemplate{headline}{% 28 | \leavevmode% 29 | \@tempdimb=2.4375ex% 30 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 31 | \multiply\@tempdimb by\beamer@sectionmax% 32 | \else% 33 | \multiply\@tempdimb by\beamer@subsectionmax% 34 | \fi% 35 | \ifdim\@tempdimb>0pt% 36 | \advance\@tempdimb by 1.825ex% 37 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 38 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 39 | \end{beamercolorbox}% 40 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 41 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 42 | \end{beamercolorbox}% 43 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 44 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 45 | \end{beamercolorbox}% 46 | \fi% 47 | } 48 | \makeatother 49 | % Footline 50 | \makeatletter 51 | \setbeamertemplate{footline}{% 52 | \leavevmode% 53 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 54 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 55 | \end{beamercolorbox}% 56 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 57 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 58 | \end{beamercolorbox}}% 59 | \vskip0pt% 60 | } 61 | \makeatother 62 | 63 | \addto\captionsenglish{% Replace "english" with the language you use 64 | \renewcommand{\contentsname}% 65 | {Whatever}% 66 | } 67 | 68 | % ------------------------------------------------------------------------------ 69 | % Infos 70 | \title[VS]{Verteilte Systeme} 71 | %\subtitle[Short subtitle]{Subtitle} 72 | \author[BCK]{Prof. Dr. Martin Becke} 73 | \date[0.9]{Version 0.9} 74 | \institute[CaDS]{CaDS - HAW Hamburg} 75 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 76 | % ------------------------------------------------------------------------------ 77 | 78 | % Document 79 | \begin{document} 80 | 81 | % ------------------------------------------------------------------------------ 82 | % Titlepage 83 | \begin{frame} 84 | \titlepage{} 85 | \end{frame} 86 | % ------------------------------------------------------------------------------ 87 | % ToC 88 | %\begin{frame}{Contents} 89 | % \tableofcontents 90 | %\end{frame} 91 | % ------------------------------------------------------------------------------ 92 | 93 | \include{slides-kapitel-01/slide-09-anforderung} 94 | \include{slides-kapitel-01/slide-10-pitfalls} 95 | 96 | % ------------------------------------------------------------------------------ 97 | % Fin 98 | \end{document} -------------------------------------------------------------------------------- /slides/Week-4/week-4.tex: -------------------------------------------------------------------------------- 1 | \documentclass{beamer} 2 | 3 | \usetheme{CambridgeUS} 4 | \usecolortheme{dolphin} 5 | 6 | \title{Verteilte Systeme} 7 | \subtitle{Architekturparadigmen und Entwurfsmuster} 8 | \author{Prof. Dr. Martin Becke} 9 | \date{\today} 10 | 11 | \begin{document} 12 | 13 | \begin{frame} 14 | \titlepage 15 | \end{frame} 16 | 17 | \begin{frame}{Architekturmuster} 18 | \textbf{Definition:} Beschreiben die grundlegende Organisation eines Softwaresystems. 19 | \begin{itemize} 20 | \item Strukturierung großer Systemkomponenten 21 | \item Definieren von Kommunikationswegen und Datenflüssen 22 | \end{itemize} 23 | \textbf{Reflexionsfrage:} Warum sind Architekturmuster für skalierbare Systeme wichtig? 24 | \end{frame} 25 | 26 | \begin{frame}{Schichtenarchitektur} 27 | \textbf{Prinzip:} Aufteilung in Schichten mit spezifischen Funktionen. 28 | 29 | \begin{itemize} 30 | \item Trennung von Präsentation, Logik und Datenhaltung 31 | \item Verbesserte Wartbarkeit und Skalierbarkeit 32 | \end{itemize} 33 | \textbf{Analogie:} Ein Gebäude mit Etagen – jede Schicht hat eine Funktion. 34 | \end{frame} 35 | 36 | \begin{frame}{Middleware} 37 | \textbf{Definition:} Vermittelt zwischen Anwendung und Betriebssystem. 38 | \begin{itemize} 39 | \item Erleichtert Kommunikation zwischen verteilten Systemen 40 | \item Bietet Dienste wie Sicherheit, Namensauflösung 41 | \end{itemize} 42 | \textbf{Diskussionsfrage:} Wie kann Middleware helfen, heterogene Systeme zu verbinden? 43 | \end{frame} 44 | 45 | \begin{frame}{Client-Server-Architektur} 46 | 47 | \textbf{Prinzip:} Clients fordern Dienste von Servern an. 48 | \textbf{Beispiel:} Restaurant (Gäste bestellen, Küche bereitet Essen zu). 49 | \textbf{Varianten:} 50 | \begin{itemize} 51 | \item Thin Client – Logik auf Server 52 | \item Thick Client – Logik auf Client 53 | \item Hybrid Client – Mischung aus beidem 54 | \end{itemize} 55 | \end{frame} 56 | 57 | \begin{frame}{n-Tier-Architektur} 58 | \textbf{Prinzip:} Mehrstufiges Client-Server-Modell. 59 | \begin{itemize} 60 | \item Klare Trennung von Präsentation, Logik, Datenbank 61 | \item Erhöhte Modularität, aber komplexere Kommunikation 62 | \end{itemize} 63 | \textbf{Reflexionsfrage:} Wann ist eine 5-Tier-Architektur sinnvoll? 64 | \end{frame} 65 | 66 | \begin{frame}{Microservices-Architektur} 67 | \textbf{Prinzip:} Kleine, unabhängige Dienste mit klaren Schnittstellen. 68 | \textbf{Diskussion:} 69 | \begin{itemize} 70 | \item Skalierbarkeit 71 | \item Unabhängige Entwicklung 72 | \item Höhere Komplexität 73 | \end{itemize} 74 | \end{frame} 75 | 76 | \begin{frame}{Event-Driven Architektur (EDA)} 77 | \textbf{Prinzip:} Komponenten reagieren auf Ereignisse. 78 | \textbf{Beispiel:} Nachrichtensystem – Abonnenten erhalten Updates. 79 | \textbf{Vorteile:} 80 | \begin{itemize} 81 | \item Hohe Entkopplung 82 | \item Gute Skalierbarkeit 83 | \end{itemize} 84 | \end{frame} 85 | 86 | \begin{frame}{Function as a Service (FaaS)} 87 | \textbf{Definition:} 88 | \begin{itemize} 89 | \item FaaS ist ein Cloud-Computing-Modell, bei dem Anwendungen als einzelne, ausführbare Funktionen bereitgestellt werden. 90 | \item Entwickler schreiben Code, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. 91 | \end{itemize} 92 | Cloud First 93 | \end{frame} 94 | 95 | \begin{frame}{Diskussion: Womit starten?} 96 | \textbf{Thema:} Schichtenarchitektur vs. Microservices. 97 | \textbf{Diskussionsfrage:} Wann ist welche Architektur vorteilhaft? 98 | \end{frame} 99 | 100 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/slides-kapitel-02/slide-02-func_vs_res.tex: -------------------------------------------------------------------------------- 1 | %\subsection{Einleitung} 2 | \begin{frame} 3 | \frametitle{Zerlegungsmethoden} 4 | \framesubtitle{Teile-und-Herrsche-Strategie} 5 | \begin{itemize} 6 | \item Funktional 7 | \item Ressourcenorientiert 8 | \end{itemize} 9 | \end{frame} 10 | 11 | \begin{frame} 12 | \frametitle{Zerlegungsmethoden} 13 | \framesubtitle{Funktional} 14 | \begin{itemize} 15 | \item Kleinere, im besten Fall atomare, Funktionen/Prozeduren 16 | \item Funktionen sind von einander unabhängig 17 | \item Sprachen theoretisch austauschbar (Sprachen Turing-vollständig) 18 | \item Kosten: Zeit und Speicher 19 | \end{itemize} 20 | \end{frame} 21 | 22 | \begin{frame} 23 | %\frametitle{Zerlegungsmethoden} 24 | \framesubtitle{Funktional} 25 | \begin{itemize} 26 | \item Funktionssignatur 27 | \begin{itemize} 28 | \item Name 29 | \item Parameter 30 | \item Rückgabetyp 31 | \item Bedingungen/Einschränkungen 32 | \end{itemize} 33 | \item Funktionssemantik/-Definition 34 | \begin{itemize} 35 | \item Ausführungslogik 36 | \item Fehlerbehandlung 37 | \item Beschreibung durch Kommentare, Dokumentation oder Code 38 | \end{itemize} 39 | \end{itemize} 40 | \end{frame} 41 | 42 | \begin{frame}[fragile] 43 | %\frametitle{Zerlegungsmethoden} 44 | %\noindent\begin{minipage}{\textwidth} 45 | \framesubtitle{Funktional - Beispiel} 46 | \begin{lstlisting}[caption={Funktionssignatur},captionpos=b,label={lst:signatur}] 47 | function sum(a: int, b: int) -> int; 48 | \end{lstlisting} 49 | 50 | \begin{lstlisting}[caption={Funktionssemantik},captionpos=b,label={lst:semantik}] 51 | function sum(a: int, b: int) -> int { 52 | return a + b; 53 | } 54 | \end{lstlisting} 55 | %\end{minipage} 56 | \end{frame} 57 | 58 | \begin{frame} 59 | %\frametitle{Zerlegungsmethoden} 60 | \framesubtitle{Ressourcenorientiert} 61 | \begin{itemize} 62 | \item Kleinere, auf Ressourcen orientierte Sicht 63 | \item Einheit auf eine bestimmte Ressource spezialisiert 64 | \item Nur Set von Funktionen: Basis CRUD 65 | \item Häufig intuitiver als Funktionen 66 | \end{itemize} 67 | \end{frame} 68 | 69 | 70 | \begin{frame} 71 | %\frametitle{Zerlegungsmethoden} 72 | \framesubtitle{Beispiel Stuhl} 73 | \begin{figure}[ht] 74 | \centering 75 | \includegraphics[width=0.3\textwidth]{fig/uml/stuhl-function.png} 76 | \caption{Funktionale Zerlegung mit Interface} 77 | \label{fig:stuhl-f} 78 | \end{figure} 79 | \begin{figure}[ht] 80 | \centering 81 | \includegraphics[width=0.3\textwidth]{fig/uml/stuhl-resourcen.png} 82 | \caption{Ressourcen-orientierte Zerlegung mit Relation} 83 | \label{fig:stuhl-r} 84 | \end{figure} 85 | \end{frame} 86 | 87 | \begin{frame}[fragile] 88 | %\frametitle{Zerlegungsmethoden} 89 | \noindent\begin{minipage}{\textwidth} 90 | \framesubtitle{Beispiel Schach in Code} 91 | \begin{lstlisting}[caption={Schachbrett - Objektorientiert},captionpos=b,label={lst:schachbrett-oo}] 92 | public class ChessBoard { 93 | private Piece[][] board; 94 | 95 | public ChessBoard() { 96 | this.board = new Piece[8][8]; 97 | // Initialize the board with the starting positions of pieces 98 | // e.g. add new Piece(PieceType.ROOK, Color.WHITE) to board[0][0] for the white rook in the top-left corner. 99 | } 100 | 101 | public void setPiece(int row, int col, Piece piece) { 102 | board[row][col] = piece; 103 | } 104 | } 105 | \end{lstlisting} 106 | \end{minipage} 107 | \end{frame} 108 | 109 | \begin{frame}[fragile] 110 | \begin{lstlisting}[caption={Schachbrett - Datenbank},captionpos=b,label={lst:schachbrett-datenbank}] 111 | 112 | CREATE TABLE ChessBoard ( 113 | id INT PRIMARY KEY, 114 | row INT, 115 | col INT, 116 | pieceType VARCHAR(10), 117 | pieceColor VARCHAR(5) 118 | ); 119 | \end{lstlisting} 120 | \end{frame} 121 | -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter04-2.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | 124 | \include{slides-kapitel-04/slide-03-failure} 125 | 126 | % ------------------------------------------------------------------------------ 127 | % Fin 128 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter05-2.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | 124 | \include{slides-kapitel-05/slide-04-koordniation} 125 | 126 | % ------------------------------------------------------------------------------ 127 | % Fin 128 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter03-2.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | \section{Kommunikation} 124 | \include{slides-kapitel-03/slide-05-topo} 125 | 126 | % ------------------------------------------------------------------------------ 127 | % Fin 128 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter04-1.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | 124 | \include{slides-kapitel-04/slide-01-konsens} 125 | \include{slides-kapitel-04/slide-02-sync} 126 | % ------------------------------------------------------------------------------ 127 | % Fin 128 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter02-5.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | \section{RPC} 124 | \include{slides-kapitel-02/slide-29-rpc-example} 125 | \section{Chord} 126 | \include{slides-kapitel-02/slide-30-p2p-example} 127 | 128 | % ------------------------------------------------------------------------------ 129 | % Fin 130 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter05-1.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | 124 | \include{slides-kapitel-05/slide-01-allgemein} 125 | \include{slides-kapitel-05/slide-02-paralell} 126 | \include{slides-kapitel-05/slide-03-paxos-raft} 127 | % ------------------------------------------------------------------------------ 128 | % Fin 129 | \end{document} -------------------------------------------------------------------------------- /Archive/slide_archive/vs-slides-chapter05-3.tex: -------------------------------------------------------------------------------- 1 | \documentclass[german,11pt]{beamer} 2 | % ------------------------------------------------------------------------------ 3 | % Packages 4 | \usepackage[german,english,french]{babel} 5 | \usepackage[T1]{fontenc} 6 | \usepackage[utf8]{inputenc} 7 | \usepackage{ragged2e} 8 | \usepackage[normalem]{ulem} 9 | 10 | 11 | \usepackage{listings} 12 | \usepackage{color} 13 | \usepackage{xcolor} 14 | \usepackage{plantuml} 15 | % \usepackage{enumitem} \setitemize{leftmargin=*} // Keine Aufzählung 16 | \usepackage{pgfplots} 17 | 18 | \usepackage{csquotes} 19 | 20 | \pgfplotsset{compat=1.18} 21 | 22 | \definecolor{dkgreen} {rgb}{0,0.6,0} 23 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 24 | \definecolor{mauve}{rgb}{0.58,0,0.82} 25 | 26 | \lstset{frame=tb, 27 | language=Java, 28 | aboveskip=3mm, 29 | belowskip=3mm, 30 | showstringspaces=false, 31 | columns=flexible, 32 | basicstyle={\small\ttfamily}, 33 | numbers=none, 34 | numberstyle=\tiny\color{gray}, 35 | keywordstyle=\color{blue}, 36 | commentstyle=\color{dkgreen}, 37 | stringstyle=\color{mauve}, 38 | breaklines=true, 39 | breakatwhitespace=true, 40 | tabsize=3 41 | } 42 | % ------------------------------------------------------------------------------ 43 | % Parameters 44 | \mode{\usetheme{Luebeck}} 45 | \setbeamertemplate{itemize items}[triangle] 46 | \setbeamercovered{transparent} 47 | \usecolortheme{dove} 48 | \usefonttheme{serif} 49 | \addtobeamertemplate{block begin}{}{\justifying} 50 | % ToC 51 | \AtBeginSection[] { 52 | \begin{frame}{Inhalt} 53 | \tableofcontents[currentsection] 54 | \end{frame} 55 | } 56 | % Headline 57 | \makeatletter 58 | \setbeamertemplate{headline}{% 59 | \leavevmode% 60 | \@tempdimb=2.4375ex% 61 | \ifnum\beamer@subsectionmax<\beamer@sectionmax% 62 | \multiply\@tempdimb by\beamer@sectionmax% 63 | \else% 64 | \multiply\@tempdimb by\beamer@subsectionmax% 65 | \fi% 66 | \ifdim\@tempdimb>0pt% 67 | \advance\@tempdimb by 1.825ex% 68 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}% 69 | \vbox to\@tempdimb{\hfill\insertsectionnavigation{.3\paperwidth}\vfil}% 70 | \end{beamercolorbox}% 71 | \begin{beamercolorbox}[wd=.3\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 72 | \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}% 73 | \end{beamercolorbox}% 74 | \begin{beamercolorbox}[wd=.2\paperwidth,ht=\@tempdimb]{subsection in head/foot}% 75 | \vbox to\@tempdimb{\vfil\hfill\includegraphics[height=1cm]{fig/graphics/logo.jpg}\vfil} 76 | \end{beamercolorbox}% 77 | \fi% 78 | } 79 | \makeatother 80 | % Footline 81 | \makeatletter 82 | \setbeamertemplate{footline}{% 83 | \leavevmode% 84 | \hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}% 85 | \usebeamerfont{author in head/foot}\insertshortdate \hfill \insertshortauthor 86 | \end{beamercolorbox}% 87 | \begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% 88 | \usebeamerfont{title in head/foot}\insertshorttitle \hfill \insertframenumber\,/\,\inserttotalframenumber 89 | \end{beamercolorbox}}% 90 | \vskip0pt% 91 | } 92 | \makeatother 93 | 94 | \addto\captionsenglish{% Replace "english" with the language you use 95 | \renewcommand{\contentsname}% 96 | {Whatever}% 97 | } 98 | 99 | % ------------------------------------------------------------------------------ 100 | % Infos 101 | \title[VS]{Verteilte Systeme} 102 | %\subtitle[Short subtitle]{Subtitle} 103 | \author[BCK]{Prof. Dr. Martin Becke} 104 | \date[0.9]{Version 0.9} 105 | \institute[CaDS]{CaDS - HAW Hamburg} 106 | %\logo{\includegraphics[height=1cm]{fig/graphics/logo.jpg}} 107 | % ------------------------------------------------------------------------------ 108 | 109 | % Document 110 | \begin{document} 111 | 112 | % ------------------------------------------------------------------------------ 113 | % Titlepage 114 | \begin{frame} 115 | \titlepage{} 116 | \end{frame} 117 | % ------------------------------------------------------------------------------ 118 | % ToC 119 | %\begin{frame}{Contents} 120 | % \tableofcontents 121 | %\end{frame} 122 | % ------------------------------------------------------------------------------ 123 | 124 | \include{slides-kapitel-05/slide-05-garbage} 125 | \include{slides-kapitel-05/slide-06-election} 126 | \include{slides-kapitel-05/slide-07-mutual-exclusion} 127 | \include{slides-kapitel-05/slide-08-modern} 128 | % ------------------------------------------------------------------------------ 129 | % Fin 130 | \end{document} --------------------------------------------------------------------------------