Posts

Es werden Posts vom Juli, 2017 angezeigt.

Projektverlauf Praktikas

Bild
Praktikum 1 Das erste Praktikum war der Start in das BPaaS Projekt. Dort ist zum ersten Mal das Projektteam zusammengekommen. Recht schnell hat sich herausgestellt, dass die Teammitglieder aus der technischen Informatik in unserem Team überwiegen. Dies ist im Hinblick auf die Verwirklichung des Projektes bestimmt ein Vorteil, jedoch bedeutet dies dann auch eine starke Orientierung auf die technischen Themen. Recht schnell ging es dann zur  Diskussion   über die Projektaufgabe "Entwicklung einer BPaaS-Plattform". Als Vorbereitung auf das Praktikum hatten wir uns das Aufgabenblatt von Frau Steffens durchgelesen und haben überlegt welche Komponenten wir brauchen, um alle User mit der Plattform zufriedenzustellen. Edgar hatte sich zu den Komponenten schon im Vorfeld Gedanken gemacht und dieses zur Diskussion im Praktikum vorgestellt (siehe diesen Blogeintrag ). Letztendlich waren seine Ideen schon sehr gut und wir sind auf eine ähnliche Architektur im Praktikum gekommen.

Datenbank für eine BPaaS-Plattform

Die Business Processes, die auf der Plattform angelegt und genutzt werden, müssen in einer Datenstruktur abgelegt werden. So sind die Prozesse dann gespeichert und auch jeder Zeit verfügbar für die Nutzer. Wir haben uns für die Datenbank  MongoDB entschieden, weil diese im Docker unkompliziert mit portainer eingerichtet werden kann und sie JSON Files speichert, was unserem Datenformat der  BP Spezifikation entspricht. Um die Einrichtung hat sich Vince gekümmert und auch um die Kommunikationsschnittstelle mit RabbitMQ. Damit die anderen Komponenten die BP Daten bekommen, müssen sie die Daten auf der Datenbank abfragen können. Ich habe die Anforderungen der Abfragen von der API bzw. von Frontend und BPExecuter eingeholt und diese dann in Abfragen umgesetzt. Als Resultat habe ich dann folgende Abfragen definiert: Datenbankabfragen Beschreibung getBP Gibt einen Business Process zurück getAllBPs Gibt eine Liste an Business Processes zurück

Projektziel

Bild
Begleitend zur Vorlesung findet ein Praktikum mit 4 Terminen alle drei Wochen statt. Das Ziel ist in einem Projektteam eine Plattform für BPaaS-Angebote zu erstellen. Über BPaaS habe ich schon hier etwas geschrieben. Dabei wurden uns in der Vorlesung die typischen Stakeholder einer BPaaS-Plattform vorgestellt. Folie aus der Vorlesung In der Abbildung werden die drei Stakeholder mit ihren ersten Anforderungen an die Plattform genannt. Diese Stakeholder müssen bei dem Design der Plattform mit ihren Anforderungen berücksichtigt werden. Die Wahl der Technologien zur Umsetzung bleibt unserem Team dabei überlassen.

TTI Vorlesung

In diesem Eintrag möchte ich einmal kurz zusammenfassen was ich für neue Themen gelernt habe, bzw. was ich schon kannte. Dann möchte ich darüber schreiben was mir gut gefallen hat und was ich mir etwas anders gewünscht hätte. Veranstaltungsthemen bekannt/unbekannt/teilweise bekannt Cloud Computing unbekannt Cloud Computing Technologien unbekannt IaaS, PaaS teilweise bekannt Multi Tenancy unbekannt Web Services unbekannt REST unbekannt SOA bekannt API-Economoies unbekannt Hadoop & MapReduce bekannt NoSQL bekannt Cloud Computing Patterns unbekannt Web-Suchmaschinen teilweise bekannt Semantic Web unbekannt Wie man der Tabelle entnehmen kann, habe ich über einige Themen noch nicht viel gewusst. Vor allem alles was zum Thema Cloud Computing gehört war neu für mich,

Semantic Web

Hinter dem Sematic Web verbirgt sich die Idee, dass Daten im Web einfacher austauschbar und wiederverwendbar gemacht werden. Dies soll über Anwendungs-, Firmen- und Ländergrenzen möglich sein. Das W3C hat in den letzten Jahren viele Standards eingeführt, um ein Rahmenwerk für das Semantic Web zu schaffen. Dazu gehören die Standards RDF, RDFS, OWL und SPARQL. Zusätzlich wurden Werkzeuge für die Ontologie-Entwicklung (z.B. Protégé ), die Speicherung und den Zugriff auf semantische Daten entwickelt.  Resource Description Framework (RDF) RDF ist ein Framework, um Ressourcen im Web zu beschreiben. Die Informationen sollen von Computern gelesen und verstanden werden und greift dabei auf XML zurück. Die Informationen werden danei als gerichtete, beschriftete Graphen dargestellt. Von w3schools gibt es ein Tutorial zum Verwenden von RDF:  https://www.w3schools.com/XML/xml_rdf.asp . Resource Description Framework Schema (RDFS) RDF beschreibt Ressourcen mit Klassen, Eigenschaften und

Web-Suchmaschinen

Bild
Suchmaschinen erfassen verteilte Inhalte aus dem World Wide Web mittels Crawling und speichern diese Informationen in einer lokalen Datenbasis. Die Suchmaschine stellt eine Benutzerschnittstelle zur Suche zur Verfügung.  Die Ergebnisse einer Suche werden nach der Relevanz in eine Reihenfolge gebracht, wobei es verschiedene Modelle zur Ermittlung der Relevanz gibt und auch benutzerabhängig sein kann. Wie Suchmaschinen funktionieren Als kurze Einführung bietet sich dieses Video an: Aufbau einer Suchmaschine (aus Risvik und Michelsen 2002, S. 290) In der Abbildung ist der Aufbau von einer Suchmaschine abgebildet.  Eine Suchmaschine besteht aus den Komponenten Crawler, der Datenbasis der Suchmaschine (local store), dem Indexer und dem Searcher. Die Suchmaschine hat die Aufgabe zwischen den Inhalten des WWW und dem Nutzer zu vermitteln. Im Folgenden werden die einzelnen Bestandteile näher erläutert. Im WWW sind die Grenzen nicht klar definiert und es verändert sich kontin

NoSQL

Bild
Als Motivation für NoSQL werden hier ein paar Gründe beschrieben, kein RDBM zu nutzen. Die heutigen Datenbestände sind groß und unstrukturiert. Es werden viele Lese- und Schreiboperationen auf unterschiedlichste Daten getätigt. Je nach Anforderungen gibt es sehr viele Schreiboperationen auf den Datenbestand und Konzepte der RDBM wie Fremdschlüssel und Joins werden nicht oft gebraucht. RDBM hat eine relationale Struktur und ist auf Leseoperationen optimiert. Außerdem ist die Struktur auf Schlüsselbeziehungen und Joins ausgerichtet. NoSQL-Datenmodelle Das Datenmodell beschreibt wie die Datenbank die Daten organisiert. Key-Value-Stores Riak Document Stores MongoDB Wide Column Stores Cassandra Graph Databases Neo4J , Infinite Graph, OrientDB und FlockDB Aggregate Aggregatorientierte NoSQL-Datenmodelle sind Key-Value-Stores, Document Stores und Wide Column Stores. Verteilungsmodelle Verteilungsmodelle über die wir in der Vorlesung gesprochen haben sind Singl

SOA & Hadoop

Service-Oriented Architecture (SOA) Das Architekturmuster nutzt die Architektur von einem verteilten System, um die geschäftsprozessorientierte Sicht der Verarbeitungsfunktionen eines Unternehmens abzubilden. Die Dienste des Systems sind Teile von Geschäftsprozessen und es gibt den Serviceanbieter und den Servicenutzer als Rolle. Die Architektur soll das Problem lösen, dass sich Geschäftsprozesse schnell ändern und angepasst werden müssen, was in einem System die Gesamtarchitektur beeinflusst. Durch die Änderung entstehen dann hohe Kosten und Instabilitäten von einzelnen Programmen. In einer serviceorientierten Architektur wird die geschäftsprozessorientierte Sicht auf die Architektur des Datenverarbeitungs-Systems abgebildet. Die Verarbeitungsfunktionen von der Software werden als Dienste in Komponenten gekapselt. Anforderungen an Dienste einer SOA Verteilung der Dienste über ein Netzwerk Geschlossenheit der Dienste, d.h. sie können unabhängig voneinander aufgerufen werden

Cloud Computing

Bild
Eine Definition von  NIST  zum Cloud Computing lautet: "Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."  Die folgenden Eigenschaften hat das Cloud Computing: Resource Pooling Gemeinsame,  oft globale, Nutzung physischer Ressourcen auf Hardwareebene wird  Virtualisierung  und  Mandantenfähigkeit  eingesetzt Rapid Elasticity Unverzügliche Anpassbarkeit an aktuellen Ressourcenbedarf On-Demand Self-Service Selbstbedienung nach Bedarf des Dienstnutzers Broad Network Access Umfassender Netzwerkzugriff über hinreichend große Brandbreite unter Einsatz von Standardformaten und -protokollen (z.B. JSON ) Measured Service Messung der Servicenutzung, um Pay per Use anzuwenden Das Cloud Ökosystem Ebenen de

Cloud Computing Technologien

Bild
In diesem Beitrag soll es einmal um die grundlegenden Technologien gehen, die im Cloud Computing eingesetzt werden. Technologien des Cloud Computings Virtualisierung Die Virtualisierung ist ein Grundkonzept der Informatik, das Ressourcen in einer logischen Sicht zusammenfasst, um die Ressourcenauslastung zu optimieren. Virtualisierungsterminologie Die reale Maschine ist die Hardware-Maschine mit dem Prozessor und den anderen Ressourcen. Die v irtuelle Maschine (VM) ist dagegen nicht real, aber sie verhält sich genauso wie eine reale Maschine. Im Hostbetriebssystem läuft eine virtualisierende Systemsoftware, die als Hypervisor bezeichnet wird. Das  Gastbetriebssystem wird vom Hostsystem kontrolliert, aber verhält sich so als hätte es die eigene Kontrolle über Hardware. Virtualisierungstechniken Dies sind verschiedene Techniken für unterschiedliche Problemstellungen Servervirtualisierung Desktopvirtualisierung Anwendungsvirtualsierung Onlinevirtualisierung Virtual

Cloud Computing Patterns

Die Cloud Computing Patterns werden benutzt, um die konzeptuellen Lösungen von Cloud Computing unabhängig von verwendeter Technologien, Software, Middleware und Programmiersprache zu verwirklichen. Die Patterns werden in verschiedene Kategorien eingeteilt. Cloud Computing Fundamentals Die Muster aus dieser Kategorie beschreiben die Arbeitslast von Anwendungen ( Application Workloads ), Servicemodelle ( Cloud Service Models ), die von Cloud-Anbietern betrieben werden und die unterschiedlichen Verwendungsmöglichkeiten von Clouds ( Cloud Deployment Models ). Permalink ). Cloud Offerings Die Muster der Kategorie Cloud Offerings beschreiben verschiedene Funktionalitäten von Clouds in Bezug auf Funktionalitäten, die Kunden angeboten werden und das Verhalten, das sie zeigen. Die Muster werden eingeteilt in Cloud Enviroments, Processing Offerings, Storage Offerings und Communication Offerings. Cloud Application Architecture Die Muster von Cloud Application Architecture beschrei

Multi Tenancy, Web Services & REST

Multi-Tenancy (Mandantenfähigkeit) In der Einführung zu Cloud Computing wurde die Eigenschaft des Resource Pooling für Cloud Computing genannt. Damit die Benutzung phyischer Ressourcen durch mehrere Benutzer funktioniert wird Mandatenfähigkeit eingesetzt.  Bei Multi-Tenancy bietet ein physischer oder virtueller Server eine Anwendung an, die von verschiedenen Nutzern verwendet werden kann. Wobei jeder Nutzer das Gefühlt hat, dass er die Anwendung exklusiv verwendet. Es ergeben sich folgende Anforderungen auf der Applikationsebene für Multi-Tenancy Isolierte Verwendung Datensicherheit getrennte Recovery-Prozeduren getrennte Upgrades Skalierbarkeit Metering Isolation auf verschiedenen Datenschichten Multi-Tenancy bei SaaS Es werden verschiedene Konzepte für Multi-Tenancy in SaaS eingesetzt. Beim Simple Multi-Tenancy hat jeder Kunde seine eigenen Ressourcen, die getrennt von anderen Kunden gehalten werden. Beim Fine Grain Multi-Tenancy werden alle Ressourcen unt