Praktikum Enterprise Computing - Cheatsheet
Definition von Enterprise Computing und dessen Bedeutung
Definition:
Unter Enterprise Computing versteht man die Nutzung von diversen EDV-Systemen und Computertechnologien, um die Geschäftsprozesse großer Unternehmen zu unterstützen.
Details:
- Einsatzbereich: Verwaltung, Buchhaltung, Personalwesen, Produktion
- Ziel: Effizienzsteigerung, Optimierung der Geschäftsprozesse
- Technologien: ERP-Systeme, CRM-Systeme, Datenbanken, Cloud-Dienste
- Wichtig für Skalierbarkeit, Verfügbarkeit, Sicherheit
- Teil des Praktikum Enterprise Computing im Informatikstudium an der Universität Erlangen-Nürnberg
Vergleich relationaler und NoSQL-Datenbanken
Definition:
Vergleich von relationalen (SQL) und NoSQL-Datenbanken
Details:
- Struktur:
- Relationale: Tabellen mit festen Schemata
- NoSQL: Flexibel (z.B. Dokumente, Key-Value, Spaltenbasiert, Graph)
- Skalierbarkeit:
- Relationale: Vertikal (mehr Leistung pro Server)
- NoSQL: Horizontal (mehr Server)
- ACID vs. BASE:
- Relationale: ACID (Atomicity, Consistency, Isolation, Durability)
- NoSQL: BASE (Basically Available, Soft state, Eventual consistency)
- Abfrage:
- Relationale: SQL
- NoSQL: Verschiedene (z.B. MongoDB Query Language, CQL für Cassandra)
- Anwendungsfälle:
- Relationale: Transaktionale Systeme, komplexe Abfragen
- NoSQL: Big Data, Echtzeit-Web-Apps, flexible Datenstrukturen
Entwicklung von Unternehmensanwendungen mit Java
Definition:
Entwicklung von Unternehmensanwendungen mit Java - Java als Standardwahl für skalierbare, wartbare und sichere Unternehmenslösungen.
Details:
- JEE (Java Enterprise Edition) für serverseitige Anwendungen
- Spring Framework für Dependency Injection und Aspektorientierte Programmierung
- ORM (z.B. Hibernate) für Datenbankzugriff
- REST/SOAP Webservices für Kommunikation
- Servlets und JSP für Webfrontends
- JUnit für automatisierte Tests
Verwendung von Frameworks wie Spring Boot
Definition:
Verwendung von Frameworks wie Spring Boot - kurz gefasst: Erleichterung der Entwicklung von Java-basierten Anwendungen durch Vorkonfiguration und bereite Funktionen
Details:
- Spring Boot reduziert Boilerplate-Code.
- Automatische Konfiguration mit \texttt{application.properties} oder \texttt{application.yml}.
- Einfaches Management von Abhängigkeiten dank \texttt{spring-boot-starter} Dependencies.
- Integrierter Webserver (z.B. Tomcat) für einfache Deployments.
- RESTful APIs leicht zu implementieren mit \texttt{@RestController} Annotation.
- Erweiterbar durch eine Vielzahl von Spring-Projekten wie Spring Data, Spring Security.
- Umfangreiche Community und Dokumentation.
Cloud-Dienstmodelle: IaaS, PaaS, SaaS
Definition:
Cloud-Dienstmodelle (IaaS, PaaS, SaaS) sind verschiedene Ebenen von Diensten, die über das Internet bereitgestellt werden, um IT-Infrastrukturen, Entwicklungsplattformen und Softwareanwendungen zugänglich zu machen.
Details:
- IaaS (Infrastructure as a Service): Bereitstellung von virtuellen Maschinen, Speicher, Netzwerken. Beispiele: AWS EC2, Microsoft Azure.
- PaaS (Platform as a Service): Bereitstellung von Plattformen zum Entwickeln, Testen und Bereitstellen von Anwendungen. Beispiele: Google App Engine, Heroku.
- SaaS (Software as a Service): Bereitstellung von Softwareanwendungen über das Internet. Beispiele: Google Workspace, Salesforce.
SQL-Grundlagen und Abfrageoptimierung
Definition:
Basiswissen über SQL und Techniken zur Verbesserung der Performance von SQL-Abfragen.
Details:
- SQL: Structured Query Language
- Daten Definition: CREATE, ALTER, DROP
- Daten Manipulation: SELECT, INSERT, UPDATE, DELETE
- Normalisierung: Reduktion von Redundanzen und Inkonsistenzen
- Indexierung: Beschleunigung der Datensuche
- Abfragepläne: Erklärung der Ausführungsreihenfolge
- Join-Optimierung: Effizienzsteigerung durch geeignete Join-Strategien
- Caching: Zwischenspeicherung von Abfrageergebnissen
- Partitionierung: Aufteilung großer Tabellen zur Verbesserung der Zugriffszeiten
Sicherheitsaspekte von Cloud Computing
Definition:
Überblick über die Sicherheitsaspekte und Herausforderungen im Cloud Computing
Details:
- Datensicherheit: Schutz vor unbefugtem Zugriff, Datenverlust und Datenschutzverletzungen
- Zugriffskontrollen: Identitäts- und Zugriffsmanagement (IAM)
- Verschlüsselung: Datenverschlüsselung in Ruhe und während der Übertragung
- Sicherheitsrichtlinien: Einhaltung von Compliance-Standards wie GDPR, HIPAA
- Netzwerksicherheit: Schutz gegen DDoS-Angriffe, Firewalls und Intrusion Detection Systems (IDS)
- Multi-Tenancy: Isolation von Daten und Anwendungen zwischen verschiedenen Cloud-Nutzern
- Incident Response: Pläne und Protokolle für Sicherheitsvorfälle
- Physische Sicherheit: Absicherung der Hardware in Rechenzentren
- Sicherheitsaudits und Pen-Tests: Regelmäßige Sicherheitsüberprüfungen und Penetrationstests
Bedrohungen und Angriffe in Unternehmenssystemen
Definition:
Erklärung zu Bedrohungen und Angriffen in Unternehmenssystemen
Details:
- Phishing: Betrugsversuche durch gefälschte E-Mails oder Websites
- Malware: Schädliche Software wie Viren, Würmer und Trojaner
- DDoS-Attacken: Überlastung der Server durch massenhafte Anfragen
- Insider-Bedrohungen: Gefahren durch Mitarbeiter, die absichtlich oder unabsichtlich Schaden anrichten
- Zero-Day-Exploits: Angriffe auf unbekannte Schwachstellen
- SQL-Injection: Einschleusung schädlicher SQL-Befehle in Datenbankabfragen
- MitM-Angriffe: Abhören und Manipulation von Kommunikation zwischen zwei Parteien