WBA2-Grundlagen-2017

Description

Flashcards on WBA2-Grundlagen-2017, created by Semra Müller on 05/07/2017.
Semra Müller
Flashcards by Semra Müller, updated more than 1 year ago
Semra Müller
Created by Semra Müller almost 7 years ago
393
3

Resource summary

Question Answer
Unterschiede geläufiger Standards für Zeichensätze im Web! verschiedene Zeichensätze unterstützen unterschiedlich viele verschiedene Zeichen
Konzept von Auszeichnungssprachen (Markup Languages)! interpretiert, strukturierten automatisierte Verarbeitung, versehen Inhalte, Texte mit Meta/Zusatzinformationen, die interpretiert werden können
Marshalling Programmcodesaufrufes in eine Nachricht, so dass ein Aufruf zwischen zwei Programmen möglich ist, die keinen gemeinsamen Speicher besitzen
Erklären Sie die Rolle und Bedeutung von Schemasprachen für den Datenaustausch im Web!** Sprache zur Klassifizierung von XML-Dokumenten und zu syntaktischen Beschreibung bzgl. ihrer Struktur und Inhalts.
Unterschied:: Wohlgeformtheit und Gültigkeit Wohlgeformtheit: lexikalisch korrekt Gültigkeit: wohlgeformt und valide sein
Element in einem XML Dokument <Träger der Information>
Konzept der namespaces definieren Gültigkeitsbereiche um das Vokabular eines XML Dokumentes eindeutig zu identifizieren werden durch URLs dargestellt, die nicht existieren müssen
Erklären Sie den folgenden regulären Ausdruck recipe (title,date,ingredient*,preparation,comment?, nutrition,related*)!** Ein Rezept besteht aus: 1 Titel 1 Datum 0 - n Zutaten 1 Zubereitung 0 - n optionalen Kommentaren 1 Nährwertliste 0 - n verwandte Rezepte
Unterschied: Architekturstil und Standard? Standard: Einheitliche und meist anerkannte und angewandte Art etwas herzustellen oder auszuführen Architekturstil: Struktur oder hierarchische Anordnung
Charakterisieren Sie die Beziehung zwischen einer Ressource und ihren Repräsentationen! Ressource: kann viele Repräsentationen haben Repräsentation: bilden Ressourcen auf verschiedene Art und Weise ab
Idempotenz von HTTP Verben mehrmaliges ausführen hat den gleichen Effekt, wie einmaliges ausführen der Methode
Unter welchen Bedingungen wird ein HTTP Verb als sicher bezeichnet? wenn es keine Veränderung der Ressource bewirkt, wie z.B GET
Was ist mit dem Begriff „Web as a application Platform“ gemeint? früher: reines Informationssystem heute: "Ökosystem" vieler Dienste Web entsteht aus der Anwendung einer Menge von akzeptierten, verbreiteten, unterstützten und vernetzten Basistechnologien.
Erklären Sie die wesentlichen REST Prinzipien!** code and demand: kann dem client code geben zum Ausführen
Erklären Sie "Richardson’s maturity model"? level 0 : URI level 1: HTTP level 2: Hypermedia level 3: theoretisch weitere Ebenen
Warum ist es wichtig dass Anwendungen die beabsichtigte Semantik von http Verben befolgen? einheitliche Kommunikation zu gewährleisten
Was versteht man unter "URI tunneling"? Informationstransfer durch Integraton/Encodierung als Argumente in URI
Warum klassifiziert man "POX applications" als "level 0" und "URI-Tunneling applications" als "level 1"?** Level 0 nutzt ihr eigenes Protokoll, um Informationen weiterzuleiten Level 1 greift auf Ressourcen zurück, Methoden werden nicht ausreichend verwendet
Wie kann das Konzept der "http status codes" adäquat in REST Anwendungen eingesetzt werden? pro Ressource und zugehöriger HTTP-Methode sollte es einen Statuscode geben informiert den Dienstnutzer über Erfolg/Misserfolg seiner Schritte mit einer Beschreibung/Benachrichtigung
Was spricht für und gegen die Verwendung von selbstdefinierten Verben bei der Konzeption eines REST Service?** Für fremde Server/Client Zugang zum Server ohne dessen genaue Struktur kennen zu müssen Gegen Operationen durch fremde Systeme sind nicht
Welche Information sollte das "location"-Feld des http headers in der Antwort auf einen POST Request beinhalten?** die neue URI
Unterschied: http als transport protocol und application protocol HTTP als transport protocol URI im WEB zu bewegen HTTP als application protocol CRUD-Prinzip (Create, Read, Update, Delete), Werkzeug, um Ressourcen im Netz zu bearbeiten
Wenn man die Beschreibung eines Web Service als contract betrachtet: welche Informationen müssen dann in einem Überblick über den contract eines RESTful Web Service enthalten sein?** Ressourcen: deren Methoden bzw. Repräsentationen semantische Beschreibung der Contract muss den gesamten Vorgang eines Services wiedergeben (GET, POST, PUT, DELETE)
Nennen Sie Konventionen, die helfen zu entscheiden, ob zur Übermittlung von Daten vom Client an den Server PUT oder POST verwendet werden soll!** PUT: editiert eine bereits erstellte Ressource durch eine identifizierte URI von Client indempotent POST: erstellt eine neue Ressourcedurch einen Server generierte URI nicht indempotent
Unter welchen Bedingungen bezeichnet man ein http Verb als idempotent, unter welchen als safe? indempotent: mehrmaliges ausführen hat den gleichen Effekt, wie einmaliges ausführen der Methode safe: wenn es keine Veränderung der Ressource bewirkt
Zu welchem Zweck werden Entity Tags (ETags) in RESTful Architekturen verwendet? überprüft, ob sich eine Ressource verändert hat E-Tags werden automatisch aktualisiert
Stellen Sie ein Beispiel detailliert dar, bei dem es zu Konflikten bei der Veränderung des Zustandes von Ressourcen kommen kann! Das Beispiel kann gerne auch aus Ihrer Workshop Anwendung abgeleitet sein.
Welche Werte kann das rel-Attribut von Links in REST Anwendungen annehmen? "alternate" "edit"
Erklären Sie inwiefern die Verwendung von Hypermedia in REST Architekturen zur losen Kopplung von Dienstanbieter und Dienstnutzer beiträgt! .
Erklären Sie warum für Hypermediaformate in XML als content type nicht application/XML angegeben werden sollte! .
Was sollte ein "contract" eines REST Webservice beinhalten? Ressourcen: deren Methoden bzw. Repräsentationen semantische Beschreibung der Contract muss den gesamten Vorgang eines Services wiedergeben (GET, POST, PUT, DELETE)
Erklären Sie Sinn und Funktionsweise von AJAX! Gehen Sie auch darauf ein, welche Vorgänge asynchron sind. Ajax (asynchrone java an xml) Zeitliche Entkopplung zwischen den Benutzerinteraktionen und den Client-Serverinteraktionen
Erklären Sie die Möglichkeiten auf der Basis von http asynchrone Kommunikation umzusetzen!
erklären Sie die Unterschiede zwischen Fat Ping und Light Ping!
Was versteht man unter einen Queuing System zwischenspeichernde Elemente in einer asynchronen Kommunikation mittels put, get, poll und notify
Was sind die Vorteile von zeitlich entkoppelter und referenziell entkoppelter Kommunikation? zeitliche Entkopplung : man will eine zeitliche Kopplung auflösen : man hat die Nachrichten, der beiden Kommunikationspartner in einer Message Queue zwischengespeichert (persistente Kommunikation) → persistente Kommunikation : Nachrichten werden zwischengespeichert : Nachrichten gehen nicht verloren , wenn einer der Kommunikationspartner nicht reagiert bzw. ausfällt → bei einer Entkopplung müssen sich die Kommunikationspartner adressieren können → Der Client muss die Adresse des Servers wissen, um seine Dienste nutzen zu können → BEI DER REFERENZIELLEN ENTKOPPLUNG IST DAS NICHT DER FALL → referenzielle Entkopplung : man kommuniziert ohne den Adressaten zu benennen : eine nicht direkt adressierte Kommunikation : z.B. Broadcastkommunikation , wo man etwas an alle adressiert
Erklären Sie das Publish/subscribe Kommunikation? (=Referenzielle Entkopplung) PubSub ist eine Kommunikation ,bei der man eine Nachricht erstellt, diese in Topics charakterisiert und publiziert, ohne zu wissen, wie viele Empfänger diese Nachricht erhalten
Gehen Sie auf Nachrichtentypen, Domänen und wesentliche Begriffe von JMS ein! TextMessage MapMessage BytesMessage StreamMessage ObjectMessage Message
Gehen Sie auf die Besonderheiten von Push Diensten auf mobilen Endgeräten ein! .
Erklären Sie die grundsätzlichen Abläufe bei der Einrichtung und Nutzung einer auf Firebase Cloud Messaging basierenden Kommunikation! .
Erklären Sie die Architektur eines auf XMPP basierenden Systems!
Erklären Sie, wie XML zur Kommunikation in XMPP genutzt wird! .
Was versteht man unter den stanza element Namen message, presence, und iq? .
Wie kann eine Multi-Party-Kommunikation mit XMPP verwirklicht werden? .
Wie wird eine Publish/Subscribe Kommunikation in XMPP verwirklicht? .
Erklären Sie die Ziele Confidentiality, Integrity, Identity und Trust! Confidentiality: nur User mit einem Identifizierungsschlüssel Integrity: Daten können nicht von Dritten abgefangen werden Identity: genau wissen wer wir sind Trust: Zertifikate sollten authentisch sein
Was versteht man bei HTTP unter einem Authentication Challenge? einen Nutzer gescheit zu authentifizieren ohne unnötig Daten zu gebrauchen
Erklären Sie die Funktionsweise der HTTP basic authentication? ich gebe dem Nutzer ein Passwort und das System authentifiziert mich
Welche Risiken sehen Sie beim Einsatz der HTTP basic authentication? Spoofing: ich denke es ist Google, und es ist doch nicht Google (Server gibt falsche Identität aus) Abfangen von Daten von dritten Personen
Welche Eigenschaften hat das HTTPS Protokoll und inwieweit löst es die Risiken des Einsatzes von basic authentication? digitales Zertifikat authentifiziert den Server und der Nutzer weiss woran er ist
Was versteht man unter OAuth? um Passwörter nicht an Dritte zu senden wird ein Dienst geschaltet, der es ermöglicht Dienste eines Servers authentifiziert nutzen zu können
Erklären Sie den Unterschied zwischen De Facto und De Jure Standards! DF = in der Praxis umgesetzte Standards DJ = Laut Gesetzt eingetragene Standards
Was versteht man unter proprietärer Software? Software die nur von einer Firma entwickelt und benutzt wird (z. B MacOS für Appel) nicht öffentlich veränderbar
Nennen Sie die Kriterien für quelloffene Software! jeder kann sie benutzen öffentlich einsehbar jeder kann sie ändern
Charakterisieren Sie das Creative Commons Rechtesystem! die Freigabe von Software in verschiedenen Modulen egal ob unter Attributen stehend oder ganz frei, kommerziell oder non-kommerziell
Welche Rechtemodule in CC kennen Sie? Attribute Kommerzialität Share a like keine Bearbeitung
RSS Really Simple Syndication
Was versteht man unter OpenID? Nutzer bekommt eine eindeutige ID (Passwort muss somit nicht immer übertragen werden)
Was ist eine Ressource? The World Wide Web is an information space in which the items of interest, referred to as resources, are identified by global identifiers called Uniform Resource Identifiers (URI) → can be anything that has identity → Not all resources are network "retrievable" (human beings, bound books in a library...) → can remain constant even when its content changes over time, provided that the conceptual mapping is not changed in the process.
Was versteht man unter Hypermedia? in Repräsentation von Ressourcen sind Links eingebettet, denen man folgen kann und auf weitere Ressourcen zugreifen kann → durch die Links entsteht ein non-lineares Netzwerk von Informationsbestandteilen → Ressourcen kann man über Links miteinander verbinden
Was versteht man unter einem Hyperlink? HyperText is a way to link and access information of various kinds as a web of nodes in which the user can browse at will. Potentially, HyperText provides a single user-interface to many large classes of stored information such as reports, notes, databases, computer documentation and online systems help
Als was kann man den Aufbau einer webbasierten Anwendung betrachten ? den Aufbau einer webbasierten Anwendung kann man als ein verteiltes System betrachten
Was ist ein verteiltes System? besteht aus Softwarekomponenten , nämlich diesen Diensten , und aus Interaktionen zwischen diesen Komponenten → DEFINITION : ist eine Aggregation (Ansammlung) von Softwarekomponenten, die auf mehreren meist räumlich verteilten Orten der Berechnung ablaufen und den Nutzern als eine kohärente Anwendung erscheinen
Was versteht man unter Kohärenz? dieser Begriff besagt, dass die Softwarekomponenten so zusammen wirken , dass dem Benutzer ein konsistentes Benutzungserlebnis geboten wird → es gibt keine Anwendungsteile , die nicht miteinander zusammenhängen
Was sind Softwarekomponente und benenne ihre Eigenschaften Abhängigkeiten und Zusicherung: → Softwarekomponenten sollen so stabil sein, dass der Anbieter dieser Komponente , die Eigenschaften der Softwarekomponente/ der Schnittstelle in der Art eines Vertrages zusichern kann → Verteilung und Integration : → Softwarekomponente können als ein isoliertes verteilbares Stück Code weitergegeben werden → sie können isoliert, installiert werden → und mit anderen Softwarekomponenten integriert werden → statisch und programmierbar und veränderbar
Was ist eine Schnittstelle (Interface)? Teil des Systems , dass für den Austausch von Information mit anderen Systemen/Systemkomponenten dient → es liegt eine Beschreibung der einzelnen Funktionen dieser Schnittstelle vor . → Beschreibung muss durch Regeln so beschrieben sein, dass sie für einen Anderen als den Programmierer , benutzbar ist → Semantik der Funktionen (Kontrakt) auch wichtig : was passiert wenn man eine Funktion aufruft
Was versteht man unter einem Dienst (API)? der Begriff des Dienstes bezeichnet, ein ablaufendes, auf einer bestimmten Netzwerkadresse / auf einem bestimmten Rechner, kontinuierlich betriebenes Softwaresystem → dynamisch, laufend, ein Prozess (mechanism) → unter einer bestimmten Netzwerkadresse erreichbarer Prozess → muss vertraglich zugesicherte Schnittstellen (definierte Schnittstellen) beinhalten → Regulierung des Zugriffs : z.b. wie kontinuierlich ist ein Dienst erreichbar? (..) : Rechte an den Daten
Was sind Paradigmen? sind bildhafte Vorstellung von Abläufen in einem verteilten System
Erkläre das Paradigma „Synchronität“ Gleichzeitigkeit zeitliche Koordination von Nebenläufigen Aktivitäten
Erkläre das „Publish-Subscribe“ Paradigma asynchrone Kommunikation → hier wird nicht auf die Bestätigung einer Nachricht gewartet → Sendeaktivität ist umgedreht → der Anbieter publiziert Nachrichten in ein Kommunikationssystem während Abonnenten Abonnements an das System übergeben und beides, Nachrichten und Abonnements, haben Attribute und basierend auf den Attributen stellt das System fest wer welche Nachrichten erhält
Das Web wird als was betrachtet ? das Web wird als eine Vernetzung von Informationen, Daten , Diensten und Dingen (...) betrachtet
Web Anwendung als verteiltes System elche Komponenten gibt es und von welcher Organisation werden sie betrieben? - Welche Funktionen stellen sie bereit aus? - Über welche Protokolle kommunizieren sie? - Welche Daten - Strukturen und - Formate werden verwendet?
Was versteht man unter einem Webservice ? als die im Web bereitgestellte Programmierschnittstelle, die anderen Softwarekomponenten im Web zur Verfügung gestellt wird → werden nicht direkt von Endnutzern benutzt , sondern von Programmierern und Softwaresystemen
Was versteht man unter einem Endpunkt eines Dienstes? Dienste werden im Netz an einem oder mehreren sogenannten „Endpunkten“ (engl.: endpoint) im Web zur Verfügung gestellt → Ein Endpunkt wird oft durch eine URI identifiziert und angesprochen → Die Dokumentation (beschreibt die Operationen des Dienstes) eines Dienstes kann über den gleichen oder einen anderen Endpunkt abgerufen werden →DEFINITION VOM DIENST: Mechanismus, der auf einer konkreten Maschine im Web zur Verfügung gestellt wird und über eine konkrete Netzwerkadresse angesprochen werden kann → Netzwerkadresse ist der Endpunkt
Was versteht man unter Mash Up? darunter versteht man , dass ein Dienst in Wirklichkeit ein Netzwerk von Diensten ist , auf die man zugreifen kann
Was versteht man unter Microservices ? Ein Dienst der als Mittel zur Strukturierung eigener Anwendungen entwickelt wird → macht Anwendungen flexibler, schneller und transparenter
Erklären Sie kurz was man unter JMS versteht ! Java Message System (JMS) → ist eine Programmierschnittstelle(API) → Wichtig hier : JMS Client und JMS Provider → JMS Client ist entweder der Sender oder der Empfänger ist der Nutzer dieses Nachrichtenübermittlungsdienstes → JMS Provider ist die Message Oriented Middleware (MOM), das System, welches diesen Nachrichtenübermittlungsdienst bereitstellt → JMS hat das Ziel, lose gekoppelte, verlässliche und asynchrone Kommunikation zwischen den Komponenten einer verteilten Anwendung zu ermöglichen → wird noch durch ein administrations Tool unterstützt → die Benennung passiert durch eine Java Technologie : JNDI Namespace
Was ist Push? Push (drücken, stoßen, schieben) → Echtzeit Kommunikation → Initiiert vom Client → Client sagt, dass er etwas empfangen möchte, ausgelöst vom Server → dauerhafte Verbindung(en) zwischen Client und Server → Immer wenn es „zeitkritisch“ ist → Bei ereignisorientierten Anwendungsfällen → verbunden mit der asynchronen Kommunikation
Nenne Gründe , weswegen es von Vorteil ist, bei der Entwicklung einer webbasierten Anwendung auf Webservices anderer Organisationen zuzugreifen ? Zugriff auf aktuelle Informationen, e.g. Wetterdaten, Verkehrsdaten, Fahrplandaten → Kommunikation, e.g. Social Media, Gruppenchat → Online synchrone Zusammenarbeit, e.g. dropbox, open street map → Teilung und Flexibilisierung von Ressourcen, e.g. Netzwerkdrucker → man will nicht zu jedem System einen eigenen Drucker aufstellen → Bei Cloud Services: Minimierung von Investition und administrativem Aufwand → Effizienz → weniger Aufwand → Schnelligkeit
Nenne Hinderungsgründe für die Nutzung von Diensten Abhängigkeit von Unternehmen, u.a. bzgl. Dauerhaftigkeit, Vertragskonditionen, etc. → Zuverlässigkeit : Was macht der Dienst mit meinen Daten ? → Potenzielle Bedrohung der Vertraulichkeit der Daten
Beschreibe die Konzeption eines Dienstes An erster Stelle steht die Entwicklung eines Modells der Domäne (domain model, DM) → Dieses Modell dient als gemeinsame Sprache für Entwickler und Anwender → Das Modell ist zunächst nicht an der Realisierung orientiert, etwa ER-Diagramm oder Objektmodell, und auch nicht an eine Sprache wie UML gebunden → man legt in einer nicht formal festgelegten Sprache fest, was sind die wesentlichen Begriffe der Anwendungsdomäne → spracht erfassen : Um was geht es überhaupt? Welche Konzepte gibt es und wie stehen sie zueinander? Was sind die Begriffe und die Objekte? (domain driven design)
Was ist ein Domänenmodell? Ist bei nicht-trivialen Anwendungen immer der Ausgangspunkt → Etabliert eine gemeinsame Sprache → Unterliegt Änderungen so wie sich das Wissen und das gemeinsame Verständnis der Anwendungsdomäne entwickelt → Ist Ausgangspunkt für die Ableitung von User Interface Modellen und Schnittstellen im verteilten System
Welchen Zweck verfolgt das Domain Model ? Ziel : eine Sprache zu entwickeln , die dem Verständnis aller an dem Projekt beteiligten Personen dient
Worin liegt der Unterschied zwischen einem Domänenmodell und einem User Interface Model? Entitäten auf die man sich konzentriert , sind ganz andere als in einem Domänenmodell. → man konzentriert sich bei einem User Interface Model auf : Frames, Icons, Menüs, Navigationsmöglichkeiten , ... → es geht um das Benutzungserlebnis → wie wird ein Benutzer durch diese Anwendung geführt → ein Domänenmodell kann mehrere User Interface Modelle besitzen wegen der großen Vielfalt an Endgeräten
Was Versteht man unter Anwendungslogik und Präsentationslogik? Anwendungslogik → darunter versteht man den Teil einer verteilten Anwendung, der ein Modell der (Geschäfts-)Objekte der realen Welt beinhaltet (Domänenmodell), → in dem codiert ist, wie Objekte gespeichert werden und miteinander interagieren und → in dem codiert ist, wer auf Objekte zugreifen und sie ggfs. ändern darf. → Präsentationslogik → darunter versteht man den Teil einer verteilten Anwendung, in dem codiert ist, wie Objekte mit ihren Interaktionsmöglichkeiten für den Nutzer dargestellt werden. → Die konsequente Trennung von Anwendungs- und Präsentationslogik ist ein Kennzeichen einer „guten“ Architektur
Logik auf dem Client oder auf dem Server? Im ursprünglichen WWW ist alle Logik auf dem Server, der Browser dient nur dem Rendering. → Installierte Anwendungen („Apps“) realisieren Präsentationslogik und meist auch Anwendungslogik. → Über JS wird im Browser zunehmend Präsentationslogik und teilweise Anwendungslogik realisiert.
Was versteht man unter Mash Up? Viele Web basierte Anwendungen bestehen aus einer Vernetzung von Diensten → Dienste , die auf anderen Diensten aufbauen
Was versteht man unter einer Application Programming Interface (API) ? Der Begriff Application Programming Interface wird traditionell für lokale Schnittstellen von Anwendungssystemen verwendet (z.B. Photoshop API für PlugIns) → Er wird aber auch für Schnittstellen von Diensten im Web verwendet → Wenn man zb ein PlugIn von einer Software benutzt → geht man eine Lizenzvereinbarung ein → Während man beim Dienst eine Nutzungsvereinbarung eingeht , bei der ich unter Umständen sogar meine Daten übergeben muss
Worauf achtet man bei einem Webservice ? Welche Organisation bietet den Service an → Was ist die hauptsächliche Funktionalität des Service → Was sind die wesentlichen Elemente des Domänenmodells → Was sind wesentliche Elemente des Vertrages: z.B. Kosten, Datenschutz, Nutzungsrechte → URIs für Dokumentation und Endpunkt → Detailliertere Beschreibung von einigen zentralen Funktionen des Service
Was versteht man unter einem Bounding Context? a specific responsibility enforced by explicit boundaries“ → ein Dämonenmodell durch die vielen Entitäten schnell komplex werden kann und man dadurch leicht die Übersicht verliert → fasst die Entitäten zusammen , die viel miteinander zu tun haben ,aber nur eine abgegrenzte Abhängigkeit von der Umgebung besitzen
Was ist hier mit einer Schnittstelle gemeint ? in unserem Beispiel von RESTbucks → bietet , diese Schnittstelle, dem Kunden eine Möglichkeit an mit dem System zu interagieren , ohne , dass der Kunde das Innere des Geschäftes wirklich sieht
Geteiltes und Verstecktes in Modellen Die Entitäten im Domänenmodell sind bei der Konzeption einer Anwendung oft Ausgangspunkt für die Definition von Objekten. → Die Grenzen der „Bounded Contexts“ sind oft Ausgangspunkt für die Definition von Schnittstellen bzw. auch Web Services. → Eine wesentliche Frage bei der Konzeption ist, : : Welche Objekte zwischen Kontexten geteilt werden sollen und : Welche Information und welche Funktionalität von Objekten über Kontextgrenzen hinweg preisgegeben werden soll.
Nenne Kriterien zur Konzeption von Dienstschnittstellen starken fachlichen Zusammenhang lose Koppelung Technologie frei Synchrone Interaktion (wenn nötig) leicht verständliche Schnittstelle nur notwendige Informationen mehrere Schnittstellen = mehrere Domänenmodel Interaktion zwischen den einzelnen Domänenmodellen schaffen
Objektorientierte Integration Methoden auf entfernten PC ausführen Analog zum RPC (Remote Procedure Call) Technologieabhängigkeit enge Kopplung
Show full summary Hide full summary

Similar

Germany 1918-45
paul giannini
KEE1
harrym
A2 Geography- Energy Security
sophielee0909
Features of Language
kelsey.le.grange
Macbeth cards
gregory.rolfe
Crisis in Weimar Germany 1919-1923
KateMoriarty
Cory & Manuel
Prudensiano Manu
Tests for Positive Ions: Flame Test Colours
bella.mort
GCSE REVISION TIMETABLE
Sophie Thuita
Continents & Oceans
Thomas Yoachim
DEV I Part II
d owen