Labor für Medien und verteilte Anwendungen —
Profil
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.
Zu den Zielen, der Symbolik des Logos etc. finden Sie Näheres im "mission statement".
Das MEVA-Lab pflegt
eine enge Zusammenarbeit mit anderen Laboren und Firmen, insbesondere bei
Java-Projekten.
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,
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,
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:
Eine kleine Anwendung von Web-Techniken zur Prozessführung kann so strukturiert sein:
Java — Die Sprache des MEVA-Lab
Java ist prädestiniert für verteilte
Anwendungen 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
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
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.

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.
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
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.
Zu den Zielen, der Symbolik des Logos etc. finden Sie Näheres im "mission statement".
Das MEVA-Lab pflegt
eine enge Zusammenarbeit mit anderen Laboren und Firmen, insbesondere bei
Java-Projekten.
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,
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,
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).
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.
Java — Die Sprache des MEVA-Lab
Java ist prädestiniert für verteilte
Anwendungen 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
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
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.
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.

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.
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.












