1 / 25

Perlen der Informatik III Die Subjects Umgebung

Perlen der Informatik III Die Subjects Umgebung. Christian Scheideler Institut f ür Informatik Technische Universität München. Grundprinzipien der Sicherheit. Eignerzustimmung und -kontrolle Prinzip der geringsten Ausgesetztheit. Neues Paradigma. Subjekte Objekte Relaypunkte

giles
Download Presentation

Perlen der Informatik III Die Subjects Umgebung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Perlen der Informatik IIIDie Subjects Umgebung Christian Scheideler Institut für Informatik Technische Universität München

  2. Grundprinzipien der Sicherheit Eignerzustimmung und -kontrolle Prinzip der geringsten Ausgesetztheit

  3. Neues Paradigma • Subjekte • Objekte • Relaypunkte • Identitäten und Clones ID S

  4. Subjekte und Objekte atomar, anonym, statisch und unbeweglich, enthält Methoden besitzen atomar, anonym, beweglich,dynamische Daten atomar, anonym, unbeweglich,für Kommunikationsverbindungen

  5. Subjekt kann Subjekte erzeugen kann Objekte besitzen kann Verbindungen aufbauen, die nicht umlegbar sind

  6. Erstes Kennenlernen R A B Öffentliche Identität (TAN) R • Subjekte besitzen keine Identität • Identitäten nicht kopierbar, nur einmal verwendbar • Relayverbindungen können nicht umgelegt werden • Zustimmung und Kontrolle, geringste Ausgesetztheit?

  7. Vorstellung A B R R>B C B>A A>B Zustimmung und Kontrolle, geringste Ausgesetztheit?

  8. Nachkommen Ressourcenkontrolle Mutter Kind Kind in derselben Maschine wie Mutter. Zustimmung und Kontrolle, geringste Ausgesetztheit?

  9. Objekte Object: Basisklasse für Objekte • Container für dynamische Daten • keine Identität (nur über Referenz erreichbar) • keine Methoden • transferierbar, aber hat zu jedem Zeitpunkt eindeutigen Besitzer (Subjekt) • Besitzer kann auf alle Anwendungsdaten innerhalb vom Object zugreifen

  10. Objekte Von Object abgeleitete Klassen: • Identity: enthält Identität eines Relaypunkts • Clone: enthält “schlafendes” Subjekt Objekte dieser Klassen sind nur einmal aktivierbar, und auf deren Inhalte können Subjekte nicht zugreifen. Benutzerdefinierte Objekte:class <UserObject>: public Object{public: <benutzerdefinierte Variablen>};

  11. Relays Relay: Klasse für Relaypunkte • nicht transferierbar • nur eine ausgehende Kante, die bei Generierung erzeugt wird und dann nicht mehr umgelegt werden kann • anonym, aber Identitäten können für eingehende Kanten generiert und transferiert werden

  12. Identitäten Anweisungen: • new Identity(Relay *r): erzeugt neue öffentliche Identität von Relay r • new Identity(Relay *r, Relay *r’): erzeugt private Identität von r für r’ • delete i: löscht Identität

  13. Clones Anweisungen: • newpublic(<UserSubject>) odernewpublic(<UserSubject>(<UserObject> *o)): erzeugt öffentliches Clone vom Typ UserSubject • newprivate(<UserSubject>, Relay *r) odernewprivate(<UserSubject>(<UserObject> *o),Relay *r): erzeugt privaten Clone vom Typ UserSubject für Relay r • delete c: löscht Clone

  14. Subjekte Subject: Basisklasse für Subjekte • atomar, anonym • können Objekte und Relays besitzen • nicht transferierbar • Kindsubject immer am selben Ort wie Mutter • frei definierbare, aber von Anfang an fest vorgegebene Methoden, die auf alle Anwendungsdaten innerhalb eines Subjekts und deren Objekte zugreifen können

  15. Subjekte Benutzerdefiniertes Subjekt:class <UserSubject>: public Subject{ protected: <benutzerdefinierte Variablen> <interne benutzerdefinierte Methoden> public: <UserSubject>() // benutzerdef. Konstruktor { // evtl mit <UserObject> *o in () nur “call()”-Methode hier erlaubt, nicht “new()” ! } <externe benutzerdefinierte Methoden>};

  16. Subjekte Alle extern aufrufbaren Methoden müssen folgende Form haben:void <method>() {…}void <method>(<UserObject> *o) {…} Start der Subjects-Umgebung:s=new <UserSubject>;run(s,t); // t=0: laufe, bis keine Aufgaben mehr

  17. Subjekte Reservierte Variablen: • ulong _debugID: eindeutige Identität für Debugging • Relay *parent: Relay zu Muttersubjekt • ulong source: ID des Subjekts, von dem Aufruf kam (lokal eindeutig) • ulong sink: ID des Relaypunkts, der Aufruf empfangen hat

  18. Subjekte Anweisungen: • new(<UserSubject>) odernew(<UserSubject>(<UserObject> *o)): erzeugt neues Subjekt • new(Subject(Clone *c)): aktiviert Subjekt im Clone c • delete(s): löscht Subject (muss Kind sein, damit möglich) Wichtig: bei new/delete “()” benutzen!

  19. Subjekte Anweisungen: • new Relay: erzeugt neuen Relaypunkt, dessen ausgehende Kante zum Subjekt selbst zeigt • new Relay(Identity *i): erzeugt Relaypunkt mit Verbindung zum Relaypunkt mit Identität I (damit wird i invalidiert) • delete r: löscht Relaypunkt r • call(verb,object): generiert Anfrage verb(object) für eigenes Subjekt • r!call(verb,object): generiert Anfrage verb(object) für Ziel von Relay r

  20. Subjekte Anweisungen: • wakeup(s): weckt Subjekt s auf (und alle seine Nachfolger im Stammbaum) • freeze(s): friert Subjekt s ein (und alle seine Nachfolger im Stammbaum) • int idle(): gibt an, ob noch Anfragen für Subjekt • int idle(Relay *r): gibt an, ob noch ausgehende Anfragen für Relay r

  21. Subjects-Umgebung Zukünftige Eigenschaften: • Object kann ein Container von Objekten sein (kann simuliert werden über “<UserObject> **o”) • Subject kann ein Container von Subjekten sein (simulierbar über “<UserSubject> **s”). • Ein neues Subjekt/Objekt muss in “new” immer einer Referenz zugeordnet werden. Wird die Referenz überschrieben, so wird das referen-zierte Subjekt/Objekt gelöscht.

  22. Subjects-Umgebung Zukünftige Eigenschaften: • Relay kann ein Container von Relays sein. • Relays müssen auf Methoden zeigen:“new Relay(<UserMethod>)”Damit kann das Subjekt kontrollieren, welche Methoden aufgerufen werden können. • Jedes neue Subjekt muss bei Erzeugung eine Identität auf eine Methode mitgeliefert bekommen, damit die Anfangskommunikation gesichert ist.

  23. Ausblick Nächste Woche: • Robustes DNS • Digital Rights Management • SPAM-resistentes Email-System • Online Banking • Soziale Netzwerke • Mobilität • Weitere Themen, die Sie interessieren?

  24. Ausblick Übernächste Woche: Bau einfacher dynamischer Systeme mit der Subjects-Umgebung

  25. Fragen?

More Related