www.der-wirtschaftsingenieur.de

- Generalist zwischen Wirtschaft und Technik



Structured Storage / NoSQL [Teil II/II]

Veröffentlicht in Datenbanken von zaadmin am 25. Jan. 2016

NoSQL ist ein aktueller Trendbegriff und steht für Datenbanken, die auch unstrukturierte Daten optimal und in großen Mengen verarbeiten können. Der Begriff NoSQL ist allerdings irreführend und stattdessen besser von Structured Storage gesprochen werden, denn dieses Akronym steht für Not only SQL. NoSQL bezeichnet zudem nicht ein einziges Datenbankmodell, sondern sehr viele unterschiedliche, die in vier Kategorien unterschieden werden können:

(mehr…)


NoSQL-Datenbanken im Vergleich zu SQL-Datenbanken [Teil I/II]

Veröffentlicht in Big Data Analytics, Datenbanken von zaadmin am 19. Jan. 2016

Big Data ist ein aktueller Wirtschaftstrend, der zum Kerngeschäft vieler neuer Start-Ups ist und zu gleich den Konzernen der traditionellen Industrie Kopfzerbrechen bereitet, aber auch als Hoffnung auf neue Geschäftsmodelle gesehen wird. Dabei wird Big Data in der Regel nicht von der IT-Abteilung, sondern von Fachbereichen getrieben. Das macht diesen Trend insbesondere für Wirtschaftsinformatiker sehr bedeutend, denn diese können mit technischen Wissen den Fachabteilungen bei der Umsetzung von Big Data Projekten nicht nur behilflich sein, sondern dank des Schnittstellenwissens direkt die Projektleitung übernehmen, wenn Sie über technisches Wissen um die Verarbeitung von sehr großen Datenmengen verfügen.

(mehr…)


Big Data Analytics mit Hadoop – Buchempfehlung

Veröffentlicht in Big Data Analytics, Bücher, Datenbanken, Informatik, Trends & Zukunft von Redakteur am 28. Jan. 2014

Big Data ist eines der Buzzwords dieser Jahre und steht für das Potenzial der heranwachsenden Datenmengen für Wirtschaft und Wissenschaft. Das Potenzial ergibt sich aus dem Erfassen und Sammeln dieser Datenmengen aus den unterschiedlichsten Quellen. Die Nutzung des Potenzials erfolgt jedoch erst mit der Datenanalyse, daher wird oftmals zwar von Big Data geredet, jedoch Big Data Analytics gemeint.

Das in der Praxis am häufigsten vorkommende Datenbankmodell ist die relationale Datenbank, die Daten in untereinander verknüpfte Tabellenstrukturen speichert. Relationale Datenbanken sind zwar nicht direkt auf eine bestimmte Größe beschränkt, so begrenzt ausschließlich das Betriebssystem die Größe einer MySQL-Datenbank, dennoch tauchen bei großen Abfragen mit SQL-Queries oftmals schwer nachvollziehbare Fehler auf. Eine fehlgeschlagene SQL-Query lässt sich nur schwer debuggen, wenn sie nach Stunden abbricht.

Abhilfe verspricht Apache Hadoop mit einem verteilten Dateisystem (HDFS) und dem NoSQL-Ansatz und MapReduce-Algorithmus, der auch die Analyse von unstrukturierten Daten ermöglicht. Durch HDFS werden mit Commodity Hardware Datensammlungen und Analysen im Petabyte-Bereich möglich. Für die Auswertung der Datenmengen werden dadurch auch keine backup-kritischen Großrechner mehr benötigt, denn MapReduce-Jobs können auf verschiedener, räumlich getrennter Hardware zeitlich parallel erfolgen, erst die Ergebnisse werden auf einem dafür vorbestimmten Rechner (Server) zusammengetragen und weiterverarbeitet. Dabei werden Daten über die verteilte Hardware redundant gehalten, was als Data Warehouse (unter bestimmten Voraussetzungen) Ausfallsicherheit bedeutet.

Hadoop ist ein freies Open Source Framework, dessen Entwicklung von der Apache Software Foundation vorangetrieben wurde. Es wird auch von den Unternehmen eingesetzt, die heute als Pioniere von Big Data gelten, beispielsweise Facebook, Yahoo!, Twitter, Amazon und Google. Vor allem Google, Facebook und Yahoo! steuerten große Teile zu Hadoop bei.

Hadoop: Zuverlässige, verteilte und skalierbare Big-Data-Anwendungen

Das Buch Hadoop – Zuverlässige, verteilte und skalierbare Big-Data-Anwendungen vom Autor Ramon Wartala bietet einen breiten und tiefen Einblick in Hadoop und dessen modulare Nebensysteme:

  • Datenfluss-Sprachen:
    • Hive
    • Pig
    • CludBase
  • Spaltenorientierte Datenbanken
    • HBase
    • Hypertable
  • Daten-Serialisierung
    • Avro
    • Thrift
    • Google Protocol Buffer
    • Sqoop
  • Workflow-Systeme
    • Azkaban
    • Oozie
    • Cascading
    • Hue
  • ZooKeeper
  • Mahout
  • Whirr

Das Buch führt ausführlich durch die Installation von Hadoop auf einem Linux-System, leitet die ersten Schritte im Umgang mit dem verteilten Dateisystem von Hadoop (HDFS) sowie zur Implementierung von MapReduce-Algorithmen an. Auch in die empfohlene Entwicklungsumgebung Eclipse (mit Plugin) wird hinreichend eingewiesen. Zum Ende gibt der Autor noch Tipps rund um das Management und die Überwachung der MapReduce-Jobs und des Hadoop-Ökosystems. Ferner werden vier Beispiele des Hadoop-Einsatzes in der Praxis vorgestellt. Wer einen Einstieg in die Praxis von Hadoop finden möchte, kann sich Hadoop als Standalone-Anwendung installieren und die Datenverteilung simulieren, oder sich Linux-Server bei Providern anmieten.

Hadoop besteht im Wesentlichen aus Java Programmcode (von Oracle, vormals Sun Microsystems), daher ist zumindest ein Grundwissen in Java notwendig, um tiefer in Hadoop eintauchen zu können und auch um die Quellcode-Beispiele im Buch verstehen zu können. Außerdem sind Linux-Kenntnisse (insbesondere Ubuntu/Debian) vorteilhaft. Wer kein Freund der Programmiersprache Java ist, kann durch das Hadoop Streaming auch MapReduce-Funktionen in C, Ruby, PHP oder Python realisieren; Hierfür bietet Hadoop eine Standardein/ausgabe-Schnittstelle an.


Hadoop: The Definitive Guide

Die Community rund um Hadoop ist nahezu vollständig englischsprachig, für einen tieferen Einblick in Hadoop ist daher englischsprachige Literatur zu empfehlen, beispielsweise das Buch Hadoop: The Definitive Guide. Für einen ersten Einstieg in das Hadoop-System ist das obige deutschsprachige Buch jedoch absolut empfehlenswert.


Industrie 4.0 – Konzepte und Herausforderungen

Veröffentlicht in Fabrikplanung, Informatik, Logistik, Prozessgestaltung, Trends & Zukunft von Redakteur am 24. Mai. 2013

Das Zukunftsprojekt Industrie 4.0 wird unsere Industrie verändern. Produktions- und Lieferzeiten werden durch intelligente Steuerung verkürzt und hinsichtlich des Ressourceneinsatzes optimiert werden. Die virtuelle Realität wird Produkte von noch besserer Qualität schaffen, bei kostengünstigerer Produktentwicklung, die näher an die Fertigungsprozesse rücken wird. Durch das Internet der Dinge wird die Produktion und Logistik zuverlässiger sowie für Kunden transparenter werden. Insgesamt wird die Industrie 4.0 anders als die vorangegangenen Industrierevolutionen nicht nur insgesamt die Produktivität, sondern vor allem die Flexibilität erhöhen, bis hin zur kundenindividuellen Massenproduktion.

Industrie 4.0

 

Die Fabrik 4.0 soll…

  1. sich selbst digital abbilden und simulieren können und gleichzeitig möglichst mit der Realität verschmelzen,
  2. Produktionssysteme, Produkte und Dienste mit Informationen ausstatten und miteinander kommunizieren lassen,
  3. durch Datenanalysen in ihrer Situation aufgenommen, überwacht und im Generellen optimiert werden,
  4. sich darauf aufbauend durch künstliche Intelligenz selbst steuern und im Speziellen auch selbst optimieren können.

[ad#Google Adsense] (mehr…)


Transportprotokolle – TCP und UDP

Veröffentlicht in Informatik, Netzwerktechnik, Technik von Redakteur am 6. Jan. 2013

Die TCP/IP ist die Protokollfamilie, über die grundsätzlich jeglicher Datenverkehr auf der Datenautobahn Internet abgewickelt wird. TCP/IP basiert auf einem eigenen Referenzmodell und setzt sich aus den Protokollen Transmission Control Protocol (TCP) und Internet Protocol (IP) zusammen. TCP ist ein Protokoll der Transportschicht im OSI-Referenzmodell und wurde bei der Entwicklung auf zuverlässige bzw. verlustfreie Übertragung von Nutzdaten ausgerichtet.

TCP und IP errichten im Zusammenspiel eine Punkt-zu-Punkt-Verbindung über Sockets. Über IP-Adressen können Endgeräte zum Zeitpunkt der Verbindung eindeutig identifiziert werden. IP-Adressen alleine reichen jedoch nicht aus, da die meisten Endgeräte (z. B. ein Tablet-PC) gleichzeitig eine Vielzahl an Verbindungen (über eine IP-Adresse) aufbauen können. Ein Verbindungspunkt wird als Socket bezeichnet und erst durch weitere Adress-Zusätze definiert: Neben den IP-Adressen (Sender, Empfänger) gehören zu einem Socket auch Portnummern (auf der Anwendungsschicht, z. B. 80 für HTTP-Verbindungen) für Sender und Empfänger sowie Angaben über welches Protokoll kommuniziert werden soll. Ein Socket ist demnach ein Verbindungspunkt, der Sender- und Empfänger-Adressen sowie die Übertragungsform kennt. Die socket-bezogene Kommunikation geschieht auf Ebene der Transportschicht. Dennoch muss TCP nicht zwangsläufig mit IP zusammen in Erscheinung treten, denn TCP-Pakete können auch über andere Netzwerkprotokolle (Vermittlungsschicht) übertragen werden.

Das User Datagram Protocol (UDP) ist ebenfalls wie TCP ein Transportprotokoll für Netzwerkverbindungen, steht jedoch nicht in direkter Konkurrenz zum TCP, da es einen ganz anderen Zweck erfüllt -> Die schnellstmögliche Übertragung von Nutzdaten.

Da sowohl TCP als auch UDP auch mit anderen Protokollen der Vermittlungsschicht zusammenarbeiten können, also nicht nur auf das Netzwerkprotokoll IP angewiesen sind, können TCP und UDP auch als unabhängig von den Protokollfamilien TCP/IP bzw. UDP/IP betrachtet werden. (mehr…)


Workflowmanagement -Systeme

Veröffentlicht in Allgemeine BWL, Informatik, Integration, Prozessgestaltung von Redakteur am 15. Sep. 2012

Das Workflowmanagement (zu Deutsch etwa: Verwaltung von Arbeitsabläufen) steht dem (Geschäfts-)Prozessmanagement sehr nahe. Ziel des Workflowmanagements ist die Koordination von Prozessen über Workflowmanagementsysteme, indem sie die Ausführungsreihenfolge der Prozesse oder der Aktivitäten von Prozessen überwachen, Daten für die Ausführung von Aktivitäten bereitstellen, anstehende Aktivitäten menschlichen oder technischen Bearbeitern zur Ausführung zuordnen und Anwendungssysteme für die Bearbeitung zur Verfügung stellen.

Während die Steigerung der Produktivität im Produktionsbereich durch Prozessmanagement bereits früh erschlossen wurde, blieben Produktivitätssteigerungen im Bürobereich verhältnismäßig lange aus. In den 1980er Jahren begann sich mit der Office Automation und dem Ziel der computergesteuerten Durchführung wiederkehrender Vorgänge auch im Bereich der Büroarbeit Prozessmanagement durchzusetzen. Workflowmanagement ist jedoch nicht nur eine Büroangelegenheit, sondern dringt auch bis tief in die Produktionsplanung und -steuerung vor. Beispielsweise sind Stücklisten, Arbeitspläne, Produktionspläne usw. Arbeitsmittel und Kommunikationsmittel zwischen der Logistik- bzw. Produktionsplanung/-steuerung, die überwiegend als Bürotätigkeit geschieht, und der ausführenden Produktion. Auch die Erfassung der Arbeitszeiten und -tätigkeiten findet zwischen der Personalwirtschaft/Buchhaltung und der Produktion statt. Wann welche Arbeitsmitteln an welchem Ort bzw. bei welcher Person sein müssen und wer wann und wo welche Arbeitsschritte auszuführen hat, entscheiden Workflowmanagementsysteme.

(mehr…)


Verteilte Systeme – Buchempfehlung

Veröffentlicht in Bücher, Datenbanken, Informatik, Technik von Redakteur am 18. Jun. 2012

Verteilte Anwendungen sind aus dem Alltag der Industrienationen nicht mehr wegzudenken, auch wenn die meisten Anwender nicht viel davon bemerken. Insbesondere mobile Anwendungen und die immer leistungsfähiger werdenden dienstorientierten Architekturen (Service-Oriented Architecture – SOA) lassen verteilte Anwendungen immer bedeutsamer werden. Verteilte Systeme bestehen aus verteilten Systembausteinen, welche im Netzwerk (z. B. dem Internet) miteinander kommunizieren und zusammenarbeiten. Es gibt heute kaum noch Anwendungen, welche nicht verteilt sind und gerade industrielle Anwendungen sind ohne verteilte Systeme undenkbar. Typische Einsatzfelder sind der Handel, die Büroautomatisierung, PPS-Anwendungen (z. B. Fertigungssteuerung), ERP-Anwendungen, PLM-Anwendungen, Überwachungssysteme und alltägliche Anwendungen (z. B. Browser, Instant-Messenger, Smartphone Apps).

Das Buch Verteilte Systeme von Alexander Schill und Thomas Springer geht auf die Systemarchitekturen (z. B. das Cloud Computing) und Kommunikationsmodelle verteilter Anwendungen ausführlich ein. Auch Transaktionen (Kommunikationsschritte zwischen den verteilten Systembausteinen), Namens- und Verzeichnisdienste, Sicherheit, Konzepte der Softwareentwicklung speziell für verteilte Systeme, dienstbasierte Architekturen (SOA) sowie das mobile Computing werden behandelt. Das Buch steht unter dem Dach der Wirtschaftsinformatik mit Fokus auf die Modellierung und Unterstützung von Geschäftsprozessen.



Verteilte Systeme: Grundlagen und Basistechnologien (eXamen.press) (German Edition)
(mehr…)


Cloud Computing

Veröffentlicht in Informatik, Trends & Zukunft von Redakteur am 9. Jun. 2012

Cloud Computing ist ein modernes Konzept der Bereitstellung von Programmlogik, Netzwerk-, Rechen- und/oder Speicherkapazität über Dienste im Internet.
Cloud Computing ist ein Begriff aus dem angelsächsischem Sprachraum und ins Deutsche nur schwer zu übersetzen, die möglichweise verständlichste Übersetzung ist „Rechnerwolke“. Die Wolke als Symbol für das Internet unterstreicht die Unbestimmtheit des Internets als weltweites und unüberschaubar verzweigtes Netzwerk. In der Netzwerktechnik sind Wolken das Symbol für das Internet im Netzwerkplan.
Der Bundesverband Informationswirtschaft, Telekommunikation und neue Medien e.V. definiert Cloud Computing wie folgt:

Cloud Computing ist eine Form der bedarfsgerechten und flexiblen Nutzung von IT-Leistungen. Diese werden in Echtzeit als Service über das Internet bereitgestellt und nach Nutzung abgerechnet. Damit ermöglicht Cloud Computing den Nutzern eine Umverteilung von Investitions- zu Betriebsaufwand. Die IT-Leistungen können sich auf:

  • Anwendungen,
  • Plattformen für Anwendungsentwicklungen und -betrieb und auf die
  • Basisinfrastruktur

beziehen.

Von Diensten des Cloud Computing wird auch von Cloud-Diensten oder von Diensten in der Cloud gesprochen. (mehr…)


Programmiersprache – C#

Veröffentlicht in C#, Informatik, Trends & Zukunft von Redakteur am 24. Apr. 2012

Die Programmiersprache C# (gesprochen: C Sharp) ist eine seit 2001 von Microsoft veröffentlichte Programmiersprache, welche sich seitdem auf Erfolgskurs zu einer der meist angewendeten Programmiersprachen entwickelt. C# ist international anerkannt und genormt. Neben C++ und Java gehört C# zu den mächtigsten und heute verbreitesten Hochsprachen. Während C++ eine hybride Sprache ist, sind Java und C# weitgehend objektorientierte Programmiersprachen.

Die Programmiersprache C# findet in Wissenschaft und vor allem in Wirtschaftsunternehmen verbreitete Anwendung und wird teilweise auch von Microsoft selbst für systemeigene Programme des Betriebssystems eingesetzt. In der Industrie, im Handel sowie in Dienstleistungsbranchen (wie z. B. der Versicherungsbranche) lassen sich mit C# entwickelte .Net-Anwendungen finden.

Mit C# lassen sich vielfältige Anwendungen realisieren, vom Dienstprogramm im Hintergrund über verteilte Anwendungen, Desktop- und Webanwendungen bis hin zur Smartphone-Applikation (App). C# Anwendungen laufen im Microsoft .Net Framework, welches so nur für Betriebssysteme von Microsoft existiert. C#-Quellcode wird anders als C++-Quellcode und ähnlich wie Java-Quellcode nicht einmalig direkt in hardware-spezifischen Maschinencode übersetzt, sondern zur Laufzeit durch einen sogenannten JIT-Compiler (Just-In-Time-Compiler). Über Betriebssysteme von Microsoft hinweg besteht eine sogenannte Plattformunabhängigkeit durch die Common Language Runtime (CLR) des .Net Frameworks. C#-Quellcode werden in eine Zwischensprache (Intermediate Language Code) übersetzt, was in ausführbare .exe-Dateien resultiert. Das Starten der .exe-Dateien führt dazu, dass der Just-In-Time-Compiler der CLR den Zwischencode in Maschinencode übersetzt. Ohne .Net-Framework sind diese .exe-Dateien nicht ausführbar.

(mehr…)


Sequenzdiagramm

Veröffentlicht in Prozessgestaltung, UML von Redakteur am 15. Apr. 2012

Sequenzdiagramme gehören zur UML und sind in der Prozessmodellierung sowie in der Software-Entwicklung zur Darstellung der Interaktion von Objekten untereinander sehr verbreitet. In der Prozessmodellierung stellen Sequenzdiagramme die Interaktionen zwischen Akteuren und dem Geschäftssystem dar. Als Modellierungssprache sind Sequenzdiagramme insbesondere in der Informatik bzw. Wirtschaftsinformatik verbreitet. Die gegenseitigen Abhängigkeiten, Aufrufhierarchien und Lebenszeiten von Objekten können einem Sequenzdiagramm leicht verständlich entnommen werden. Sequenzdiagramme zeigen:

  • Abhängigkeiten: Welche Objekte interagieren mit welchen anderen Objekten?
  • Aufrufhierarchie: Welche Objekte rufen das Objekt auf und welche werden vom Objekt aufgerufen?
  • Lebenszeiten: Wie lange existieren Objekte bzw. wie lange werden Objekte benötigt?
  • Aktivitätszeiten: Wie lange sind Objekte aktiv?

Sequenzdiagramme werden immer von einem Akteur (Benutzer / User) oder einem Objekt begonnen. In einem Gesamtsystem gibt es für jeden Akteur in einem Anwendungsfalldiagramm ein eigenes Sequenzdiagramm.

  (mehr…)


Nächste Seite »