home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
edispm11.zip
/
EDisPM
/
BIN
/
EDISPM.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1996-05-18
|
16KB
|
375 lines
═══ 1. Ъber EDisPM ═══
EDisPM V1.1d fБr OS/2 Warp v3 release: 18.05.1996 (c) by MS-CSE
Der Multi-User-Editor EDisPM realisiert einen Editor, bei dem mehrere Benutzer
an verschiedenen Rechnern in einem Netzwerk denselben Text gleichzeitig ansehen
und bearbeiten kФnnen. Оnderungen werden gegeneinander abgesichert und
miteinander kommuniziert. Ein Editorserver Бbernimmt fБr einen Text die
Textverwaltung und synchronisiert Zugriffe mehrerer Editorclients darauf.
Die Kommunikation erfolgt Бber SOM/DSOM.
Das Programm wurde innerhalb eines Fortgeschrittenenpraktikums mit dem Thema
"Implementierung eines verteilten Editors mit Hilfe der objektorientierten
CORBA-Technologie" programmiert, das ich im Sommersemester 1995 am Institut fБr
Informatik der TU-MБnchen am Lehrstuhl "Softwaretechnik" von Herrn Prof. Dr.
Albert Endres erstellte. Betreut hat mich dabei Herr Christoph Hofmann.
Kern dieses Fortgeschrittenpraktikum war es, CORBA, SOM und DSOM zu
untersuchen, miteinander zu vergleichen und Anhand eines Beispielprogrammes die
Arbeitsweise zu demonstrieren.
Die Version 1.1 wurde fБr einen dreiteiligen Artikel Бber die SOMObjects-
Programmierung in der OS/2 Inside Ausgabe 6/96 bis 8/96 erstellt.
Achtung! Dieses Programm ist hauptsДchlich zur Demonstration der FДhigkeiten
von SOM und DSOM gedacht. Es sind keinerlei Garantien damit Verbunden!
ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
Der verteilte Editor EDisPM kann entweder auf einem Rechner innerhalb einer
Workplace DSOM-Umgebung installiert werden, diese steht auf jedem unter OS/2
Warp v3 laufenden Rechner zur VerfБgung, oder in einem Netzwerk, das Бber den
IBM DSOM Workgroup Enabler verfБgt. Der DSOM Workgroup Enabler ist im IBM
SOMObjects Developer Toolkit enthalten.
Dieses Programm wurde von mir sowohl unter Workplace DSOM wie auch unter
Workgroup DSOM gestestet.
FБr die Installation benФtigte Dateien:
INSTALL.CMD: (Installationsbatch)
EDISPM.EXE: (Editorclient)
EDISSERV.DLL: (Editorserver-SOM-Objekte)
EDISPM.IR: (Interface Repository)
STARTEDS.CMD: (Batch zum Starten des DSOM Daemons somdd.exe)
README.TXT: (Informationsdatei)
EDISPM.INF: (Dieses Online-Handbuch)
ΓòÉΓòÉΓòÉ 2.1. auf einem Rechner (Workplace DSOM) ΓòÉΓòÉΓòÉ
Die Installation erfolgt Бber das Programm INSTALL.CMD. Es kopiert die
benФtigten Dateien in ein Verzeichnis ihrer Wahl und legt einen Ordner EDisPM
auf dem Desktop an. Die Datei EDISPM.IR wird in den Suchpfad des Interface
Repository aufgenommen (Zeile "SET SOMIR=..." in der CONFIG.SYS).
Im neu erstellten Ordner EDisPM befinden folgende drei Dateien:
EDisPM Client: Verweis auf die Datei EDISPM.EXE
EDisPM Server: Verweis auf die Datei STARTEDS.CMD
EDisPM Online: Verweis auf die Datei EDISPM.INF
ΓòÉΓòÉΓòÉ 2.2. in einem Netzwerk (Workgroup DSOM) ΓòÉΓòÉΓòÉ
Dieses Programm wurde auf einem mit dem OS/2 Lan Server 4.0 betriebenen
Netzwerk getestet.
Folgende Informationen werden Ihnen bei der Installation helfen:
Das Netzwerk muс Бber TCP/IP verfБgen, Hostnamen und TCP/IP-Addressen
mБssen fБr jede Station eingerichtet sein.
In der CONFIG.SYS jedes Rechners muс sowohl der Username als auch der
Hostname gesetzt sein.
Auf jedem Rechner muс der IBM DSOM Workgroup Enabler installiert sein,
also die workgroupfДhige DSOM Umgebung.
Die Datei EDISSERV.DLL enthДlt die DSOM-Klassen
- EDService,
- EDText,
- EDLine,
die vom Standard-Server Programm SOMDSVR.EXE von der Klasse SOMDServer
verwaltet werden.
Der Name, unter dem die drei Klassen zusammengefaсt werden
(Server-Alias), ist nicht festgelegt. Der Client erzeugt ein neues Objekt
der Klasse EDService am nДchstbesten Server.
Die fБr das Interface Repository benФtigten Informationen sind in der
Interface Repository Datei EDISPM.IR enthalten.
Das Implementation Repository muс sich in einer shared Datei befinden,
d.h. SOMDDIR=... muс auf jedem Rechner auf ein von allen zugДngliches
gleiches Verzeichnis zeigen.
Das Implementation Repository wird von Editorclient EDisPM.EXE
automatisch mit folgenden Informationen gesetzt, wenn noch keine Klasse
EDService enthalten ist:
- Implementation alias: EDisServ
- Program name: SOMDSVR.EXE
- Multithreaded: No
- Server Class: SOMDServer
- Host name: Der gesetzte Hostname des Rechners, auf dem der Client
gestartet wird.
Gegebenfalls muс das Implementation Repository von Hand mit dem Tool
regimpl.exe gesetzt werden.
Die Datei EDISSERV.DLL muс sowohl auf dem Server-Rechner, als auch auf
jedem Client-Rechner verfБgbar sein, da die Klasse EDLine auch vom
Editorclient lokal benФtigt wird.
Schicken Sie mir bitte Informationen, wie das Verhalten des Editors bei Ihnen
im Echtzeitbetrieb aussieht und ob er sich nach Ihrer Ansicht als verwendbar
herrausstellt.
ΓòÉΓòÉΓòÉ 3. Bedienung ΓòÉΓòÉΓòÉ
Der Editor besteht aus zwei getrennten ablaufenden Programmteilen, die
miteinander kommunizieren:
Editorserver (Service): Verwaltet eine Textdatei und synchronisiert die
Zugriffe mehrere Editorclients.
Editorclient: Bearbeitet eine lokale Version des Textes und kommuniziert
mit dem Server zeilenweise die geschehenen Оnderungen. Die lokale Version
des Textes wird regelmДсig an die vom Server verwaltete zentrale Version
des Textes angepaсt.
Ein Client kann vom Server einzelne Zeilen lesen und sich reservieren/sperren
lassen (d.h. auсer ihm dБrfen keine anderen Clients auf diese gesperrte Zeile
schreibend zugreifen oder sperren lassen, lesen ist erlaubt). ZusДtzlich hat
jede Zeile eine Versionsnummer, die bei jeder Оnderung hochgezДhlt wird.
Weicht die Versionsnummer einer Zeile beim Server, die Бberschrieben werden
soll bzw. fБr die eine Sperre beantragt wird, von der Versionsnummer der Zeile
im Client ab, wird keine Оnderung zugelassen. Die vorgenommenen Оnderungen am
zentralen Text werden in einer Eventliste gespeichert. Aus dieser Eventliste
ermitteln die Clients regelmДсig die geschehenen Оnderungen seit dem letzen
Update und ziehen sie auf den lokalen Text nach (Update). Clients mБssen sich
zu Beginn beim Server unter einem Benutzernamen anmelden. Dieser Benutzername
wird benФtigt um zu vermerken, wer die Sperre einer Zeile hДlt. Auсerdem
kФnnen sich die Clients die Namen der angemeldeten Benutzer holen und
anzeigen.
ΓòÉΓòÉΓòÉ 3.1. Starten des Programmes ΓòÉΓòÉΓòÉ
Bevor ein Editorclient (EDISPM.EXE) gestartet werden kann, muс der DSOM-Daemon
SOMDD.EXE laufen. PrБfen Sie nach, ob das Programm SOMDD.EXE gerade lДuft,
ansonsten starten Sie es mittels der mitgelieferten Batchdatei STARTEDS.CMD.
Anschlieсend kann ein Editorclient gestartet werden, rufen Sie dazu die Datei
EDISPM.EXE auf. Folgende zwei Parameter kФnnen Бbergeben werden:
Benutzername: Jeder Editorclient muс unter einem anderen Namen gestartet
werden. Wird dieser Parameter nicht Бbergeben, erscheint beim Start des
Programmes ein Dialog, in dem der Benutzername angegeben werden muс.
Textname: Ein angegebener Text wird sofort geФffnet. (Siehe auch "Laden
eines Textes")
Zur Textverwaltung wird eine Profile-Datei (EDISPM.INI) benФtigt, die von
allen Editorclients zugДnglich sein muс. Die Pfadangabe dieser Datei ist auf
jedem Rechner in der OS/2-Anwendungskonfigurationsdatei OS2.INI abgelegt..br
Fehlt diese Pfadangabe, wird sie beim Start des Editorclients innerhalb eines
Dialoges erfragt. Geben Sie den Pfad zu der gewБnschten INI-Datei an und
betДtigen Sie den OK-Druckknopf.
Nach dem Start des Editorclients wird automatisch БberprБft, ob die benФtigte
DSOM-Klasse EDService (enthalten in EDISSERV.DLL) im Implementation Repository
registriert ist. Gegebenfalls wird ein Eintrag neu erstellt (siehe Technik).
Ъber den MenБpunkt "Hilfe-Produktinformation" kann die Programminformation
angezeigt werden.
ΓòÉΓòÉΓòÉ 3.2. Laden eines Textes ΓòÉΓòÉΓòÉ
Ъber den MenБpunkt "Datei-Щffnen" wird der Textverwaltungsdialog angezeigt.
In einem Auswahlfenster werden zu einem Text folgende drei Angaben angezeigt:
Bezeichnung Beschreibung
Name Ein Textname, der zum Aufruf des Textes dient und nicht
zweimal vorhanden dein darf. Ein Textname kann beim Start als
zweiter Aufrufparameter Бbergeben werden.
Status Der Eintrag "lДuft" zeigt an, daс dieser Text derzeit von
einem Benutzer bearbeitet wird.
Dateipfad Der Pfad, unter dem die Textdatei gespeichert ist. Als
Textdateien sind alle ASCII-Dateien geeignet, die Textendung
ist egal. Die Datei muс von allen Rechnern erreichbar sein!
Innerhalb des Dialoges kann ein Texteintrag markiert und durch BestДtigung des
OK-Druckknopfes geladen werden.
Mit dem Abbruch-Druckknopf wird der Dialog abgebrochen.
Ъber den Neu-Druckknopf kann ein neuer Texteintrag erzeugt werden. Geben Sie
dazu einen Textnamen und den Dateipfad des zu bearbeitenden Textes an. Besteht
die Datei noch nicht, wird sie automatisch erzeugt. Ъber den
Dateiauswahl-Druckknopf kФnnen Sie den Dateipfad Бber einen Dateiauswahldialog
eingeben.
Ъber den LФschen-Druckknopf wird ein Texteintrag (ohne Warnung) gelФscht. Wird
der Text gerade bearbeitet (Status=lДuft) wird gewarnt. Die eigentliche
Textdatei bleibt dabei unangetastet.
ΓòÉΓòÉΓòÉ 3.3. Editieren eines Textes ΓòÉΓòÉΓòÉ
Ъber den MenБpunkt "Ansicht-Split Horizontal" bzw. "Ansicht-Split Vertikal"
kann die Anzeige des Text-und Benutzerfensters eingestellt werden.
Im Benutzerfenster werden die Benutzernamen angezeigt, die derzeit den Text
sehen bzw. bearbeiten.
In der Statuszeile werden verschiedene Informationen zu der Textzeile, in der
sich der Textcursor befindet, angezeigt.
Der Text kann innerhalb des Textfensters mit den folgenden Eingabetasten
editiert werden. Оnderungen werden mit den Editorserver kommuniziert und
"abgesprochen". Etwa zweimal pro Minute bzw. Бber den MenБpunkt
"Ansicht-Aktualisieren" wird ein Update des Textes durchgefБhrt, das heiсt im
Editorserver getДtigten Оnderungen werden nachgezogen. Dabei kann eine
VerzФgerung entstehen.
Taste Funktion
Cursor Bewegung des Textcursors. VerlДсt der Cursor eine gesperrte
Zeile, wird diese entsperrt und zum Editorserver geschickt.
Die neue Zeileninformation wird in der Statuszeile angezeigt.
Pos 1 Positionierung des Textcursors auf dem ersten Zeichen der
Zeile.
Ende Positionierung des Textcursors auf dem letzten Zeichen der
Zeile.
Strg+Pos 1 Positionierung des Textcursors auf die erste Zeile des Textes.
VerlДсt der Cursor eine gesperrte Zeile, wird diese entsperrt
und zum Editorserver geschickt. Die neue Zeileninformation
wird in der Statuszeile angezeigt.
Strg+Ende Positionierung des Textcursors auf der letzten Zeile des
Textes. VerlДсt der Cursor eine gesperrte Zeile, wird diese
entsperrt und zum Editorserver geschickt. Die neue
Zeileninformation wird in der Statuszeile angezeigt.
Einfg Schaltet den EinfБgemodus zwischen EinfБgen und Ersetzten um.
Entf FБr eine noch nicht gesperrte Zeile wird zunДchst eine Sperre
beim Editorserver beantragt. Ist die Sperre gБltig, wird das
Zeichen an der Cursorposition gelФscht. Steht der Textcursor
schon an der letzten Position in der Zeile, wird die
nachfolgende Zeile zuerst gesperrt und dann gelФscht und an
die Zeile angehДngt.
Enter FБr eine noch nicht gesperrte Zeile wird zunДchst eine Sperre
beim Editorserver beantragt. Ist die Sperre gБltig, wird nach
der Zeile eine neue Zeile erzeugt. Falls der Textcursor sich
in der Mitte einer Zeile befindet, wird der Zeilenrest ab dem
Textcursor in die neue Zeile geschoben. Anschlieсend wird der
Textcursor ans Ende der neuen Zeile gesetzt.
Backspace FБr eine noch nicht gesperrte Zeile wird zunДchst eine Sperre
beim Editorserver beantragt. Ist die Sperre gБltig, wird das
Zeichen vor dem Textcursor gelФscht. Steht der Textcursor
schon an der ersten Position in der Zeile, wird die
vorhergehende Zeile zuerst gesperrt und dann die derzeitige
Zeile gelФscht und an die vorhergehende Zeile angehДngt.
Strg+Backspace FБr eine noch nicht gesperrte Zeile wird zunДchst eine Sperre
beim Editorserver beantragt. Ist die Sperre gБltig, wird die
Zeile gelФscht.
Zeichen FБr eine noch nicht gesperrte Zeile wird zunДchst eine Sperre
beim Editorserver beantragt. Ist die Sperre gБltig, wird das
Zeichen an der Cursorposition eingefБgt/durch das neue
Бberschrieben je nach EinfБgemodus.
ΓòÉΓòÉΓòÉ 3.4. Speichern eines Textes ΓòÉΓòÉΓòÉ
Ъber den MenБpunkt "Datei-Speichern" wird der Text gespeichert. Die Speicherung
erfolgt in die in der Textverwaltung angegebene Datei im ASCII-Format.
Ъber den MenБpunkt "Datei-Schlieсen" wird zusДtzlich zur Speicherung des Textes
der Text verlassen (Schlieсen des Text-und Benutzerfensters, Abmeldung beim
Editorserver).
ΓòÉΓòÉΓòÉ 3.5. Verlassen des Programmes ΓòÉΓòÉΓòÉ
Ъber den MenБpunkt "Datei-Verlassen" bzw. Бber das SystemmenБ kann der
Editorclient beendet werden. Ein bearbeiteter Text wird vorher gesichert und
geschlossen.
Der DSOM-Daemon muс explizit beendet werden.
ΓòÉΓòÉΓòÉ 4. Technik ΓòÉΓòÉΓòÉ
DSOM (Distributed System Object Model) von IBM ist ein ORB (Object Request
Broker) nach der CORBA (Common Object Request Broker Architecture) 1.1
Spezifikation.
Ein ORB fungiert als Telefonzentrale in einem verteilten System. Er Бbernimmt
die Interaktion zwischen Objekten auf vernetzten, heterogenen Systemen.
Damit kФnnen Applikationen modular (aus Klassenbibliotheken) entwickelt werden,
Objekte dieser Klassen kФnnen dann Бber das Netz verteilt werden. Auсerdem
kФnnen mehrere Clients ein Objekt benutzen.
ΓòÉΓòÉΓòÉ 5. Weitere Informationen ΓòÉΓòÉΓòÉ
Weitere Informationen zu CORBA/SOM/DSOM und dem Fortgeschrittenpraktikum, in
dem dieser verteilte Multi-User-Editor entstand, gibt es unter meiner Homepage
im World Wide Web:
http://www.informatik.tu-muenchen.de/~schwarma/
oder
http://wwwendres.informatik.tu-muenchen.de/da_fa_archiv/fopra/schwarma/corba.html
und am Lehrstuhl fБr Softwaretechnik der TU-MБnchen (Prof. Albert Endres).
Hier steht ein HTML-Text meines Fortgeschrittenenpraktikums zur VerfБgung.
═══ 6. Ъber den Autor ═══
Adresse: Computer-Software-Entwicklung
Martin Schwarz
Meisenweg 5
84544 Aschau a. Inn
Germany
E-MAIL: schwarma@informatik.tu-muenchen.de
WWW: http://www.informatik.tu-muenchen.de/~schwarma/
Ich bin Student der Informatik mit Nebenfach Theoretische Medizin an der
TU-MБnchen im 10. Semester. Meine Schwerpunkte lege ich auf Datenbanksysteme
und verteilte Anwendungen.
Privat beschДftige ich mich mit OS/2-Programmierung in C und C++, habe aber
auch Erfahrungen unter DOS und Windows gesammelt.