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 >
OS/2 Help File  |  1996-05-18  |  16KB  |  375 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. ╨¬ber EDisPM ΓòÉΓòÉΓòÉ
  3.  
  4. EDisPM V1.1d f╨ær OS/2 Warp v3 release: 18.05.1996 (c) by MS-CSE 
  5.  
  6. Der Multi-User-Editor EDisPM realisiert einen Editor, bei dem mehrere Benutzer 
  7. an verschiedenen Rechnern in einem Netzwerk denselben Text gleichzeitig ansehen 
  8. und bearbeiten k╨ñnnen. ╨₧nderungen werden gegeneinander abgesichert und 
  9. miteinander kommuniziert. Ein Editorserver ╨æbernimmt f╨ær einen Text die 
  10. Textverwaltung und synchronisiert Zugriffe mehrerer Editorclients darauf. 
  11.  
  12. Die Kommunikation erfolgt ╨æber SOM/DSOM. 
  13.  
  14. Das Programm wurde innerhalb eines Fortgeschrittenenpraktikums mit dem Thema 
  15. "Implementierung eines verteilten Editors mit Hilfe der objektorientierten 
  16. CORBA-Technologie" programmiert, das ich im Sommersemester 1995 am Institut f╨ær 
  17. Informatik der TU-M╨ænchen am Lehrstuhl "Softwaretechnik" von Herrn Prof. Dr. 
  18. Albert Endres erstellte. Betreut hat mich dabei Herr Christoph Hofmann. 
  19.  
  20. Kern dieses Fortgeschrittenpraktikum war es, CORBA, SOM und DSOM zu 
  21. untersuchen, miteinander zu vergleichen und Anhand eines Beispielprogrammes die 
  22. Arbeitsweise zu demonstrieren. 
  23.  
  24. Die Version 1.1 wurde f╨ær einen dreiteiligen Artikel ╨æber die SOMObjects- 
  25. Programmierung in der OS/2 Inside Ausgabe 6/96 bis 8/96 erstellt. 
  26.  
  27. Achtung! Dieses Programm ist haupts╨öchlich zur Demonstration der F╨öhigkeiten 
  28. von SOM und DSOM gedacht. Es sind keinerlei Garantien damit Verbunden! 
  29.  
  30.  
  31. ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
  32.  
  33. Der verteilte Editor EDisPM kann entweder auf einem Rechner innerhalb einer 
  34. Workplace DSOM-Umgebung installiert werden, diese steht auf jedem unter OS/2 
  35. Warp v3 laufenden Rechner zur Verf╨ægung, oder in einem Netzwerk, das ╨æber den 
  36. IBM DSOM Workgroup Enabler verf╨ægt. Der DSOM Workgroup Enabler ist im IBM 
  37. SOMObjects Developer Toolkit enthalten. 
  38.  
  39. Dieses Programm wurde von mir sowohl unter Workplace DSOM wie auch unter 
  40. Workgroup DSOM gestestet. 
  41.  
  42. F╨ær die Installation ben╨ñtigte Dateien: 
  43.  
  44.      INSTALL.CMD: (Installationsbatch) 
  45.  
  46.      EDISPM.EXE: (Editorclient) 
  47.  
  48.      EDISSERV.DLL: (Editorserver-SOM-Objekte) 
  49.  
  50.      EDISPM.IR: (Interface Repository) 
  51.  
  52.      STARTEDS.CMD: (Batch zum Starten des DSOM Daemons somdd.exe) 
  53.  
  54.      README.TXT: (Informationsdatei) 
  55.  
  56.      EDISPM.INF: (Dieses Online-Handbuch) 
  57.  
  58.  
  59. ΓòÉΓòÉΓòÉ 2.1. auf einem Rechner (Workplace DSOM) ΓòÉΓòÉΓòÉ
  60.  
  61. Die Installation erfolgt ╨æber das Programm INSTALL.CMD. Es kopiert die 
  62. ben╨ñtigten Dateien in ein Verzeichnis ihrer Wahl und legt einen Ordner EDisPM 
  63. auf dem Desktop an. Die Datei EDISPM.IR wird in den Suchpfad des Interface 
  64. Repository aufgenommen (Zeile "SET SOMIR=..." in der CONFIG.SYS). 
  65.  
  66. Im neu erstellten Ordner EDisPM befinden folgende drei Dateien: 
  67.  
  68.      EDisPM Client: Verweis auf die Datei EDISPM.EXE 
  69.  
  70.      EDisPM Server: Verweis auf die Datei STARTEDS.CMD 
  71.  
  72.      EDisPM Online: Verweis auf die Datei EDISPM.INF 
  73.  
  74.  
  75. ΓòÉΓòÉΓòÉ 2.2. in einem Netzwerk (Workgroup DSOM) ΓòÉΓòÉΓòÉ
  76.  
  77. Dieses Programm wurde auf einem mit dem OS/2 Lan Server 4.0 betriebenen 
  78. Netzwerk getestet. 
  79.  
  80. Folgende Informationen werden Ihnen bei der Installation helfen: 
  81.  
  82.      Das Netzwerk mu╤ü ╨æber TCP/IP verf╨ægen, Hostnamen und TCP/IP-Addressen 
  83.       m╨æssen f╨ær jede Station eingerichtet sein. 
  84.  
  85.      In der CONFIG.SYS jedes Rechners mu╤ü sowohl der Username als auch der 
  86.       Hostname gesetzt sein. 
  87.  
  88.      Auf jedem Rechner mu╤ü der IBM DSOM Workgroup Enabler installiert sein, 
  89.       also die workgroupf╨öhige DSOM Umgebung. 
  90.  
  91.      Die Datei EDISSERV.DLL enth╨ölt die DSOM-Klassen 
  92.  
  93.         -  EDService, 
  94.  
  95.         -  EDText, 
  96.  
  97.         -  EDLine, 
  98.  
  99.       die vom Standard-Server Programm SOMDSVR.EXE von der Klasse SOMDServer 
  100.       verwaltet werden. 
  101.  
  102.      Der Name, unter dem die drei Klassen zusammengefa╤üt werden 
  103.       (Server-Alias), ist nicht festgelegt. Der Client erzeugt ein neues Objekt 
  104.       der Klasse EDService am n╨öchstbesten Server. 
  105.  
  106.      Die f╨ær das Interface Repository ben╨ñtigten Informationen sind in der 
  107.       Interface Repository Datei EDISPM.IR enthalten. 
  108.  
  109.      Das Implementation Repository mu╤ü sich in einer shared Datei befinden, 
  110.       d.h. SOMDDIR=... mu╤ü auf jedem Rechner auf ein von allen zug╨öngliches 
  111.       gleiches Verzeichnis zeigen. 
  112.  
  113.      Das Implementation Repository wird von Editorclient EDisPM.EXE 
  114.       automatisch mit folgenden Informationen gesetzt, wenn noch keine Klasse 
  115.       EDService enthalten ist: 
  116.  
  117.         -  Implementation alias: EDisServ 
  118.  
  119.         -  Program name: SOMDSVR.EXE 
  120.  
  121.         -  Multithreaded: No 
  122.  
  123.         -  Server Class: SOMDServer 
  124.  
  125.         -  Host name: Der gesetzte Hostname des Rechners, auf dem der Client 
  126.            gestartet wird. 
  127.  
  128.       Gegebenfalls mu╤ü das Implementation Repository von Hand mit dem Tool 
  129.       regimpl.exe gesetzt werden. 
  130.  
  131.      Die Datei EDISSERV.DLL mu╤ü sowohl auf dem Server-Rechner, als auch auf 
  132.       jedem Client-Rechner verf╨ægbar sein, da die Klasse EDLine auch vom 
  133.       Editorclient lokal ben╨ñtigt wird. 
  134.  
  135.  Schicken Sie mir bitte Informationen, wie das Verhalten des Editors bei Ihnen 
  136.  im Echtzeitbetrieb aussieht und ob er sich nach Ihrer Ansicht als verwendbar 
  137.  herrausstellt. 
  138.  
  139.  
  140. ΓòÉΓòÉΓòÉ 3. Bedienung ΓòÉΓòÉΓòÉ
  141.  
  142. Der Editor besteht aus zwei getrennten ablaufenden Programmteilen, die 
  143. miteinander kommunizieren: 
  144.  
  145.      Editorserver (Service): Verwaltet eine Textdatei und synchronisiert die 
  146.       Zugriffe mehrere Editorclients. 
  147.  
  148.      Editorclient: Bearbeitet eine lokale Version des Textes und kommuniziert 
  149.       mit dem Server zeilenweise die geschehenen ╨₧nderungen. Die lokale Version 
  150.       des Textes wird regelm╨ö╤üig an die vom Server verwaltete zentrale Version 
  151.       des Textes angepa╤üt. 
  152.  
  153.  Ein Client kann vom Server einzelne Zeilen lesen und sich reservieren/sperren 
  154.  lassen (d.h. au╤üer ihm d╨ærfen keine anderen Clients auf diese gesperrte Zeile 
  155.  schreibend zugreifen oder sperren lassen, lesen ist erlaubt). Zus╨ötzlich hat 
  156.  jede Zeile eine Versionsnummer, die bei jeder  ╨₧nderung hochgez╨öhlt wird. 
  157.  Weicht die Versionsnummer einer Zeile beim Server, die ╨æberschrieben werden 
  158.  soll bzw. f╨ær die eine Sperre beantragt wird, von der Versionsnummer der Zeile 
  159.  im Client ab, wird keine ╨₧nderung zugelassen. Die vorgenommenen ╨₧nderungen am 
  160.  zentralen Text werden in einer Eventliste gespeichert. Aus dieser Eventliste 
  161.  ermitteln die Clients regelm╨ö╤üig die geschehenen ╨₧nderungen seit dem letzen 
  162.  Update und ziehen sie auf den lokalen Text nach (Update). Clients m╨æssen sich 
  163.  zu Beginn beim Server unter einem Benutzernamen anmelden. Dieser Benutzername 
  164.  wird ben╨ñtigt um zu vermerken, wer die Sperre einer Zeile h╨ölt. Au╤üerdem 
  165.  k╨ñnnen sich die Clients die Namen der angemeldeten Benutzer holen und 
  166.  anzeigen. 
  167.  
  168.  
  169. ΓòÉΓòÉΓòÉ 3.1. Starten des Programmes ΓòÉΓòÉΓòÉ
  170.  
  171. Bevor ein Editorclient (EDISPM.EXE) gestartet werden kann, mu╤ü der DSOM-Daemon 
  172. SOMDD.EXE laufen. Pr╨æfen Sie nach, ob das Programm SOMDD.EXE gerade l╨öuft, 
  173. ansonsten starten Sie es mittels der mitgelieferten Batchdatei STARTEDS.CMD. 
  174.  
  175. Anschlie╤üend kann ein Editorclient gestartet werden, rufen Sie dazu die Datei 
  176. EDISPM.EXE auf. Folgende zwei Parameter k╨ñnnen ╨æbergeben werden: 
  177.  
  178.      Benutzername: Jeder Editorclient mu╤ü unter einem anderen Namen gestartet 
  179.       werden. Wird dieser Parameter nicht ╨æbergeben, erscheint beim Start des 
  180.       Programmes ein Dialog, in dem der Benutzername angegeben werden mu╤ü. 
  181.  
  182.      Textname: Ein angegebener Text wird sofort ge╨ñffnet. (Siehe auch "Laden 
  183.       eines Textes") 
  184.  
  185.  Zur Textverwaltung wird eine Profile-Datei (EDISPM.INI) ben╨ñtigt, die von 
  186.  allen Editorclients zug╨önglich sein mu╤ü. Die Pfadangabe dieser Datei ist auf 
  187.  jedem Rechner in der OS/2-Anwendungskonfigurationsdatei OS2.INI abgelegt..br 
  188.  Fehlt diese Pfadangabe, wird sie beim Start des Editorclients innerhalb eines 
  189.  Dialoges erfragt. Geben Sie den Pfad zu der gew╨ænschten INI-Datei an und 
  190.  bet╨ötigen Sie den OK-Druckknopf. 
  191.  
  192.  Nach dem Start des Editorclients wird automatisch ╨æberpr╨æft, ob die ben╨ñtigte 
  193.  DSOM-Klasse EDService (enthalten in EDISSERV.DLL) im Implementation Repository 
  194.  registriert ist. Gegebenfalls wird ein Eintrag neu erstellt (siehe Technik). 
  195.  
  196.  ╨¬ber den Men╨æpunkt "Hilfe-Produktinformation" kann die Programminformation 
  197.  angezeigt werden. 
  198.  
  199.  
  200. ΓòÉΓòÉΓòÉ 3.2. Laden eines Textes ΓòÉΓòÉΓòÉ
  201.  
  202. ╨¬ber den Men╨æpunkt "Datei-╨⌐ffnen" wird der Textverwaltungsdialog angezeigt. 
  203.  
  204. In einem Auswahlfenster werden zu einem Text folgende drei Angaben angezeigt: 
  205.  
  206.  Bezeichnung     Beschreibung 
  207.  
  208.  Name            Ein Textname, der zum Aufruf des Textes dient und nicht 
  209.                  zweimal vorhanden dein darf. Ein Textname kann beim Start als 
  210.                  zweiter Aufrufparameter ╨æbergeben werden. 
  211.  
  212.  Status          Der Eintrag "l╨öuft" zeigt an, da╤ü dieser Text derzeit von 
  213.                  einem Benutzer bearbeitet wird. 
  214.  
  215.  Dateipfad       Der Pfad, unter dem die Textdatei gespeichert ist. Als 
  216.                  Textdateien sind alle ASCII-Dateien geeignet, die Textendung 
  217.                  ist egal. Die Datei mu╤ü von allen Rechnern erreichbar sein! 
  218.  
  219.  Innerhalb des Dialoges kann ein Texteintrag markiert und durch Best╨ötigung des 
  220.  OK-Druckknopfes geladen werden. 
  221.  
  222.  Mit dem Abbruch-Druckknopf wird der Dialog abgebrochen. 
  223.  
  224.  ╨¬ber den Neu-Druckknopf kann ein neuer Texteintrag erzeugt werden. Geben Sie 
  225.  dazu einen Textnamen und den Dateipfad des zu bearbeitenden Textes an. Besteht 
  226.  die Datei noch nicht, wird sie automatisch erzeugt. ╨¬ber den 
  227.  Dateiauswahl-Druckknopf k╨ñnnen Sie den Dateipfad ╨æber einen Dateiauswahldialog 
  228.  eingeben. 
  229.  
  230.  ╨¬ber den L╨ñschen-Druckknopf wird ein Texteintrag (ohne Warnung) gel╨ñscht. Wird 
  231.  der Text gerade bearbeitet (Status=l╨öuft) wird gewarnt. Die eigentliche 
  232.  Textdatei bleibt dabei unangetastet. 
  233.  
  234.  
  235. ΓòÉΓòÉΓòÉ 3.3. Editieren eines Textes ΓòÉΓòÉΓòÉ
  236.  
  237. ╨¬ber den Men╨æpunkt "Ansicht-Split Horizontal" bzw. "Ansicht-Split Vertikal" 
  238. kann die Anzeige des Text-und Benutzerfensters eingestellt werden. 
  239.  
  240. Im Benutzerfenster werden die Benutzernamen angezeigt, die derzeit den Text 
  241. sehen bzw. bearbeiten. 
  242.  
  243. In der Statuszeile werden verschiedene Informationen zu der Textzeile, in der 
  244. sich der Textcursor befindet, angezeigt. 
  245.  
  246. Der Text kann innerhalb des Textfensters mit den folgenden Eingabetasten 
  247. editiert werden. ╨₧nderungen werden mit den Editorserver kommuniziert und 
  248. "abgesprochen". Etwa zweimal pro Minute bzw. ╨æber den Men╨æpunkt 
  249. "Ansicht-Aktualisieren" wird ein Update des Textes durchgef╨æhrt, das hei╤üt im 
  250. Editorserver get╨ötigten ╨₧nderungen werden nachgezogen. Dabei kann eine 
  251. Verz╨ñgerung entstehen. 
  252.  
  253.  Taste           Funktion 
  254.  
  255.  Cursor          Bewegung des Textcursors. Verl╨ö╤üt der Cursor eine gesperrte 
  256.                  Zeile, wird diese entsperrt und zum Editorserver geschickt. 
  257.                  Die neue Zeileninformation wird in der Statuszeile angezeigt. 
  258.  
  259.  Pos 1           Positionierung des Textcursors auf dem ersten Zeichen der 
  260.                  Zeile. 
  261.  
  262.  Ende            Positionierung des Textcursors auf dem letzten Zeichen der 
  263.                  Zeile. 
  264.  
  265.  Strg+Pos 1      Positionierung des Textcursors auf die erste Zeile des Textes. 
  266.                  Verl╨ö╤üt der Cursor eine gesperrte Zeile, wird diese entsperrt 
  267.                  und zum Editorserver geschickt. Die neue Zeileninformation 
  268.                  wird in der Statuszeile angezeigt. 
  269.  
  270.  Strg+Ende       Positionierung des Textcursors auf der letzten Zeile des 
  271.                  Textes. Verl╨ö╤üt der Cursor eine gesperrte Zeile, wird diese 
  272.                  entsperrt und zum Editorserver geschickt. Die neue 
  273.                  Zeileninformation wird in der Statuszeile angezeigt. 
  274.  
  275.  Einfg           Schaltet den Einf╨ægemodus zwischen Einf╨ægen und Ersetzten um. 
  276.  
  277.  Entf            F╨ær eine noch nicht gesperrte Zeile wird zun╨öchst eine Sperre 
  278.                  beim Editorserver beantragt. Ist die Sperre g╨æltig, wird das 
  279.                  Zeichen an der Cursorposition gel╨ñscht. Steht der Textcursor 
  280.                  schon an der letzten Position in der Zeile, wird die 
  281.                  nachfolgende Zeile zuerst gesperrt und dann gel╨ñscht und an 
  282.                  die Zeile angeh╨öngt. 
  283.  
  284.  Enter           F╨ær eine noch nicht gesperrte Zeile wird zun╨öchst eine Sperre 
  285.                  beim Editorserver beantragt. Ist die Sperre g╨æltig, wird nach 
  286.                  der Zeile eine neue Zeile erzeugt. Falls der Textcursor sich 
  287.                  in der Mitte einer Zeile befindet, wird der Zeilenrest ab dem 
  288.                  Textcursor in die neue Zeile geschoben. Anschlie╤üend wird der 
  289.                  Textcursor ans Ende der neuen Zeile gesetzt. 
  290.  
  291.  Backspace       F╨ær eine noch nicht gesperrte Zeile wird zun╨öchst eine Sperre 
  292.                  beim Editorserver beantragt. Ist die Sperre g╨æltig, wird das 
  293.                  Zeichen vor dem Textcursor gel╨ñscht. Steht der Textcursor 
  294.                  schon an der ersten Position in der Zeile, wird die 
  295.                  vorhergehende Zeile zuerst gesperrt und dann die derzeitige 
  296.                  Zeile gel╨ñscht und an die vorhergehende Zeile angeh╨öngt. 
  297.  
  298.  Strg+Backspace  F╨ær eine noch nicht gesperrte Zeile wird zun╨öchst eine Sperre 
  299.                  beim Editorserver beantragt. Ist die Sperre g╨æltig, wird die 
  300.                  Zeile gel╨ñscht. 
  301.  
  302.  Zeichen         F╨ær eine noch nicht gesperrte Zeile wird zun╨öchst eine Sperre 
  303.                  beim Editorserver beantragt. Ist die Sperre g╨æltig, wird das 
  304.                  Zeichen an der Cursorposition eingef╨ægt/durch das neue 
  305.                  ╨æberschrieben je nach Einf╨ægemodus. 
  306.  
  307.  
  308. ΓòÉΓòÉΓòÉ 3.4. Speichern eines Textes ΓòÉΓòÉΓòÉ
  309.  
  310. ╨¬ber den Men╨æpunkt "Datei-Speichern" wird der Text gespeichert. Die Speicherung 
  311. erfolgt in die in der Textverwaltung angegebene Datei im ASCII-Format. 
  312.  
  313. ╨¬ber den Men╨æpunkt "Datei-Schlie╤üen" wird zus╨ötzlich zur Speicherung des Textes 
  314. der Text verlassen (Schlie╤üen des Text-und Benutzerfensters, Abmeldung beim 
  315. Editorserver). 
  316.  
  317.  
  318. ΓòÉΓòÉΓòÉ 3.5. Verlassen des Programmes ΓòÉΓòÉΓòÉ
  319.  
  320. ╨¬ber den Men╨æpunkt "Datei-Verlassen" bzw. ╨æber das Systemmen╨æ kann der 
  321. Editorclient beendet werden. Ein bearbeiteter Text wird vorher gesichert und 
  322. geschlossen. 
  323.  
  324. Der DSOM-Daemon mu╤ü explizit beendet werden. 
  325.  
  326.  
  327. ΓòÉΓòÉΓòÉ 4. Technik ΓòÉΓòÉΓòÉ
  328.  
  329. DSOM (Distributed System Object Model) von IBM ist ein ORB (Object Request 
  330. Broker) nach der CORBA (Common Object Request Broker Architecture) 1.1 
  331. Spezifikation. 
  332.  
  333. Ein ORB fungiert als Telefonzentrale in einem verteilten System. Er ╨æbernimmt 
  334. die Interaktion zwischen Objekten auf vernetzten, heterogenen Systemen. 
  335.  
  336. Damit k╨ñnnen Applikationen modular (aus Klassenbibliotheken) entwickelt werden, 
  337. Objekte dieser Klassen k╨ñnnen dann ╨æber das Netz verteilt werden. Au╤üerdem 
  338. k╨ñnnen mehrere Clients ein Objekt benutzen. 
  339.  
  340.  
  341. ΓòÉΓòÉΓòÉ 5. Weitere Informationen ΓòÉΓòÉΓòÉ
  342.  
  343. Weitere Informationen zu CORBA/SOM/DSOM und dem Fortgeschrittenpraktikum, in 
  344. dem dieser verteilte Multi-User-Editor entstand, gibt es unter meiner Homepage 
  345. im World Wide Web: 
  346.  
  347. http://www.informatik.tu-muenchen.de/~schwarma/ 
  348.  
  349. oder 
  350.  
  351. http://wwwendres.informatik.tu-muenchen.de/da_fa_archiv/fopra/schwarma/corba.html 
  352.  
  353. und am Lehrstuhl f╨ær Softwaretechnik der TU-M╨ænchen (Prof. Albert Endres). 
  354.  
  355. Hier steht ein HTML-Text meines Fortgeschrittenenpraktikums zur Verf╨ægung. 
  356.  
  357.  
  358. ΓòÉΓòÉΓòÉ 6. ╨¬ber den Autor ΓòÉΓòÉΓòÉ
  359.  
  360. Adresse: Computer-Software-Entwicklung
  361.          Martin Schwarz
  362.          Meisenweg 5
  363.          84544 Aschau a. Inn
  364.          Germany
  365.  
  366. E-MAIL:  schwarma@informatik.tu-muenchen.de
  367.  
  368. WWW:     http://www.informatik.tu-muenchen.de/~schwarma/
  369.  
  370. Ich bin Student der Informatik mit Nebenfach Theoretische Medizin an der 
  371. TU-M╨ænchen im 10. Semester. Meine Schwerpunkte lege ich auf Datenbanksysteme 
  372. und verteilte Anwendungen. 
  373.  
  374. Privat besch╨öftige ich mich mit OS/2-Programmierung in C und C++, habe aber 
  375. auch Erfahrungen unter DOS und Windows gesammelt.