Hochschule Bochum
Prof. Dr.-Ing. Albrecht Weinert

Labor für Medien und verteilte Anwendungen
MEVA-Lab
|< < > >|


Labor für Medien und verteilte Anwendungen — Profil
Logo MEVA-Lab (Ikone) -> Mission Albrecht Weinerts MEVA-Lab gehört zum Fachbereich Informatik der Hochschule Bochum. Es bietet ein breites Spektrum an Leistungen in den Bereichen Entwicklung, Forschung und Lehre.
Server
Zu den Zielen, der Symbolik des Logos etc. finden Sie Näheres im "mission statement".

ISBN 3-446-21567-0 -> Infos Das MEVA-Lab pflegt eine enge Zusammenarbeit mit anderen Laboren und Firmen, insbesondere bei Java-Projekten.

PLCopen Seit 2006 gehören Professor Weinert und das MEVA-Lab, als "Educational Institute" der PLCopen an. Dies ist eine logische Konsequenz früherer Arbeiten an und mit der IEC61131. Und es passt zu unserer Java- (und XML-) Philosophie der Plattformunabhängigkeit.

Im Netz der Hochschule Bochum betreibt das MEVA-Lab die Domäne "fb3-MEVA" (.fh-bochum.de). Es erbringt damit auch innerhalb der FH und des Fachbereichs Informatik zahlreiche Dienste.

Das Labor verfügt über leistungsfähige Server, Test einer Telefonanlage mit Java und XML Rechner, Peripheriegeräte und Werkzeuge. Die Serverinfrastruktur stützt moderne Laborarbeitsplätze und (seit 2001, modernisiert 2007) einen zeitgemäßen Schulungsraum (siehe auch das Bild oben links) mit 40 Arbeitsplätzen.

Unsere Möglichkeiten umfassen das (verteilte) Gesamtsystem, von der Hardware- und Elektronikentwicklung, der Programmierung von Rechnern, Mikrocontrollern und PLCs, über Java-, OO- und XML-Entwicklungen und die Erstellung von WWW-Seiten und -Bereichen (sites) bis zur Dokumentation — natürlich auch auf Papier.

 Verteilte Systeme  —  Hintergrund
Die Kommunikation mit Hilfe von verknüpften und verteilten Text- und Bilddokumenten (Hypertext), die auch Sequenzen von bewegten Bildern und Tönen enthalten können, Messung via WWW spielt für die Zusammenarbeit in Firmen, zwischen Lieferanten und Kunden und in vielen anderen Gebieten seit geraumer Zeit eine bedeutende Rolle. Um diese Ansätze automatisierbar und unabhängig von Plattformen und darstellungszentrierten oder proprietären Datendarstellungen zu machen, haben sich Java und XML weltweit durchgesetzt.

Zusätzlich zur Übertragung der genannten Dokumentinformation werden über die Netze im Rechner (PC) des Anwenders beziehungsweise Kunden lauffähige Anwendungsprogramme übertragen - auch eingebettet in Dokumente. Die Programmiersprache Java ist von ihrem Ansatz her für solche "transportierbaren" Anwendungen besonders geeignet, da bei ihrem Entwurf unter anderem folgende Kriterien im Vordergrund standen:
  • Unabhängigkeit von der Zielplattform (Portierbarkeit),
  • Lade- und Lauffähigkeit einzelner (kleiner) Sub-Module (das sind die Klassen) einer Anwendung (Teilbarkeit).
Der letzte Punkt der "Teilbarkeit" und dem in der Sprache verankerten "dynamischen" (Nach-) Laden nur der jeweils benötigten Teile (Klassen) ist für die Verbreitung über ein Netz mit begrenzter Bandbreite von großem Vorteil. In anderen Programmiersprachen, wie C++, geschriebene Anwendungen tendieren zu erheblichen monolithischen Blockgrößen.

Eine kleine Anwendung von Web-Techniken zur Prozessführung kann so strukturiert sein:
  • Die Prozesssteuerung am Ort, also SPS, PC, PLC oder AS (speicherprogrammierbare Steuerung, personal computer, programmable logic controller, Automatisierungssystem) wird um einen kleinen Web-Server (nur zusätzliche Software oder (embedded) Kleinst-PC mit Software) ergänzt.
  • Der Server empfängt die Prozessdaten und er liefert die Bedien- und Beobachtungs- (B&B) Software als Java-Klassen.
  • Als B&B-Station eignet sich nun jedes Standardsystem mit einer korrekten java virtual machine (JVM), also beispielsweise jeder PC mit einem Netscape-Browser, wie Sie ihn gerade vermutlich zum Lesen dieses Textes nutzen.
  • Mit Internetverbindung spielt die räumliche Entfernung zwischen Prozess und B&B keine Rolle mehr.
  • Ab Prozesssteuerung (SPS, PLC) "aufwärts" (beziehungsweise im folgenden Bild abwärts) werden nur noch weltweit verbreitete frei verfügbare Standards eingesetzt. Mit XML-basierten Ansätzen kann auch die Kommunikation mit dem Prozessleitsystem (und innerhalb desselben) plattformunabhängig dargestellt werden.
Schon das obige sehr einfache Beispiel mit (nur) einem Prozess und entfernter B&B via Netz zeigt die immensen Möglichkeiten eines solchen Ansatzes. Im MEVA-Lab sind mehrere solche Anwendungen (Leistungs- und Energiemessung, Gebäudeüberwachung u.a., siehe Bild oben) erfolgreich — auch in 100% (pure) Java — dargestellt und in großen industriellen Java-Projekten beratend begleitet worden.

Java — Die Sprache des MEVA-Lab
Java ist prädestiniert für verteilte Duke winktAnwendungen im eben geschilderten Sinne. Neben der gewollten syntaktischen Nähe zu C war anfangs auch die Verbreitung kleiner graphischer Programme (Applets) zur Animation von Internetseiten eine der Triebfedern des Erfolgs von Java. Um diese eher uninteressanten "Tanzbären-" Anwendungen ist es mit Recht still geworden. Java ist inzwischen die bevorzugte Sprache für ernsthafte und auch sehr große Geschäfts- und Serveranwendungen ISBN 3-446-21567-0 -> Infos eingesetzt.
Auch Applets werden auf der Client-Seite nun selbstverständlich überwiegend ernsthaft eingesetzt und in Automatisierungs- und Homebanking-Anwendungen von Millionen (oft unbewusst) genutzt. Gerade große verteilte Java-Anwendungen mit Servlets, Java-Anwendungen und Applets zeigen das der Java-Ansatz von großen Servern über PCs bis hin zu kleinen Geräten wie Handys und PDAs trägt. Für die Auslieferung (deployment) von Java-Anwendungen an viele Client-Workstations ist insbesondere WebStart eine administratorfreundliche, hochinteressante Lösung.

An die, die Java lernen und in — auch großen — Projekten einsetzen möchten, wendet sich auch das Lehrbuch   "Java   für   Ingenieure".

Java vermeidet — bei syntaktisch starker Anlehnung an C — einige als sehr kritisch anzusehende Eigenschaften der verbreiteten Sprachen C und C++. Es wurde deswegen gelegentlich etwas unpräzise als das "bessere C++" oder als eine Sprache mit der Syntax von C und der Semantik und Sicherheit von Ada bezeichnet. Mit Java 1.5 sind die letzten syntaktischen Freuden, die C++ (und z.T. C#) exklusiv genießen konnten, auch (und teilweise besser) in Java nutzbar.

Java beinhaltet aber noch Einiges, was über den reinen Java für Ingenieure Programmiersprachenaspekt hinausgeht, wie die Festlegung einer plattformunabhängigen Rechnerarchitektur (Java virtual machine) und eines zugehörigen (Maschinen-) Befehlssatzes (Java-Byte-Code), eines Datei-Formats für lauffähige Module (.class-file-format) sowie eines standardisierten (großen) Kerns von (Klassen-) Bibliotheken mit unter vielem Anderen der (standardisierten) Einbindung von CORBA und XML.
Java für Ingenieure
Bei der Verbreitung von lauffähigen Programmen (executable content) über Netze spielt der Sicherheitsaspekt eine große Rolle. Niemand will von einer "zugeflogenen" Anwendungen seine Festplatte manipulieren oder Dateien ausspionieren lassen. Hier haben Java-Anwendungen und -Applets — insbesondere mit Java WebStart — gegenüber anderen Techniken (wie active X) einen Vorteil. Es wird kein direkt auszuführender Maschinenkode transportiert sondern sogenannter Bytecode für die lokal installierte java virtual machine (JVM). Diese behält die Kontrolle über alle Aktionen. Die Politik, was welche Anwendung darf, kann sehr fein und genau eingestellt werden. Die JVM in einem Browser (Netscape, Mozilla, MSIE mit Java-plug in) verhindert beispielsweise standardmäßig jeden Zugriff auf lokale Platten durch geladene Applets. Mit dem Mittel des unterschriebenen Java- Archivs (signed .jar) können die (Ausführungs-) Rechte auch von der Herkunft des Applets oder der Applikation abhängig gemacht werden.

Neben ihrer Eignung für verteilte Netzanwendungen ist Java auch eine hervorragende Sprache zur Erstellung kleiner und großer "normaler" Anwendungen. Dies und die gewollte syntaktische Anlehnung an das verbreitete C bescherte der Sprache Java eine weite Verbreitung und in großem Maße auch Les- und Reviewbarkeit durch C- und C++-Programmierer mit vernünftigem Zeitaufwand. MEVA-Lab (Weinert) und PLCopen

Außerdem ist eine immer breiter werdende Anwendung von Java in verteilten leittechnischen Anwendungen zu sehen (von der großen industriellen Anlage bis zur kleinen Hausleittechnik). Diese Tendenz wird gestützt durch
  • die zunehmende Bedeutung verteilter Systeme in der Leit- und Automatisierungstechnik,
  • die leittechnik-relevanten Eigenschaften der Sprache Java,
  • die Teilbarkeit von Anwendungen und Applets in getrennt ladbare Module (Klassen),
  • die Übertragbarkeit solcher Applets über Netze und der enormen, breiten und weltweiten Wegbereitung einer solchen Übertragungstechnik durch die entsprechenden Internet-Anwendungen,
  • die ideale Kombinierbarkeit von Java und XML.
  • Etwas vereinfachend aber mit viel "Körnchen Wahrheit":
    OO und Java halten, was IEC 61131 verspricht.
Seit der Gründung im Jahre 1997 ist Java die "strategische" Sprache des MEVA-Labors (und inzwischen auch die vieler Großunternehmen). Wer im MEVA-Labor etwas programmiert, tut dies grundsätzlich in Java. Dies schließt bei guten Gründen den Einsatz anderer Sprachen bis hinunter zu Maschinensprachen nicht aus.

Aber:   Was wir mit Java tun können, machen wir nicht in C++, C, oder ...
  ... und ebensowenig nehmen wir, solange es sich nur eben vermeiden lässt, ActiveX, C#, MSdotNet, Ruby ...
... außer natürlich bei unseren wachsenden Entwicklungsaktivitäten zu µController basierten Automatisierungsmodulen; da ist alle embedded Software 100% C.
Copyright   ©   2011  Albrecht Weinert
Stand: 17.09.2013 (V.333)       A. Weinert,   E-Mail (webmaster)