home *** CD-ROM | disk | FTP | other *** search
/ The Very Best of Atari Inside / The Very Best of Atari Inside 1.iso / sharew / dfue / midi.net / midinet / midinet.txt < prev   
Encoding:
Text File  |  1988-04-19  |  16.6 KB  |  338 lines

  1.  
  2.    MIDInet -Das Netzwerkprogramm für den Atari ST 
  3.  
  4.  
  5.    Ein professionelles Netzwerk ohne zusätzliche Hardware: Unser 
  6. Projekt gestattet Ihnen die Vernetzung von bis zu 15 ST-
  7. Computern untereinander. Alles was Sie benötigen ist eine 
  8. Diskette und etwas Kabel. 
  9.  
  10.    Ja, Sie haben sich nicht verlesen. Für dieses Netzwerkprogramm 
  11. benötigt man kein teures Steckmodul oder komplizierte Hardware 
  12. sondern Lediglich einige Meter handelsübliches Stereo-
  13. Überspielkabel. Als Bastler empfehlen wir 5-adriges, einzeln 
  14. abgegeschirmte Schaltkabel. 
  15.  
  16.    Das MIDInet-Programm ist für bis zu 15 Computer ausgelegt. Es 
  17. läuft auf allen Modellen der ST-Serie vom 260 ST bis zum Mega ST4. 
  18. Für jeden ans Netz angeschlossenen ist ein Kabel notwendig. Im 
  19. Betrieb haben wir bisher Verbindungskabel von bis zu 15 Metern 
  20. Länge erprobt und keine Datenverluste hinnehmen müssen. 
  21.  
  22.    Anstoβ zur Entwicklung von MIDInet war die Tatsache, daβ bei 
  23. uns die Arbeit mit drei ST-Computern äuβerst lästig wurde. Für 
  24. einen Datenaustausch ist der Gang mit einer Diskette zum nächsten 
  25. Anwender unumgänglich. Da dies den Arbeitsfluβ mehr hemmt als 
  26. nützt, fiel die Entscheidung zu einem Netzwerk nicht schwer. Da 
  27. im Handel keine preisgünstigen Netzwerkprogramme erhältlich sind, 
  28. nahmen wir die Entwicklung eines eigenen ST-Netzes in Angriff. 
  29.  
  30.    Wie der Name MIDInet sagt, verwendet das Programm die MIDI-
  31. Schnittstelle des Computers. Damit sind schon als höchste 
  32. Übertragungsgeschwindigkeit 3125 Byte je Sekunde festgelegt. Bei 
  33. der Datenübermittlung über das Netz erreichen Sie jedoch maxinal 
  34. 1700 Byte pro Sekunde. Welche Faktoren die Geschwindigkeit 
  35. beeinflussen, sehen wir später. 
  36.  
  37.    MIDInet verbindet bis zu 15 Teilnehmer. Jeder Computer erhält 
  38. dabei eine eigene Nummer, unter der er zu erreichen ist. Mit 
  39. jedem Gerät können Sie Kurzmitteilungen an einen oder mehrere 
  40. Teilnehmer schicken, Dateien senden oder von einem anderen 
  41. Computer anfordern. 
  42.  
  43.    Das bedeutet, daβ jeder Redakteur Zugriff auf die 
  44. Diskettenlaufwerke und Festplatten der anderen hat (Bild 1). So 
  45. ist Die Arbeit an gröβeren Projekten in Teamarbeitet gegeben. 
  46. Eine Festplatte dient als Massenspeicher zum sichern aller 
  47. Quelltexte, Programme und Daten. Allerdings ist eine Festplatte 
  48. keine Voraussetzung für den Einsdatz von MIDInet.
  49.  
  50.    Alle an das Netz angeschlossenen Computer sind ringförmig 
  51. miteinander verbunden. Midi Out des ersten Gerätes ist mit an 
  52. Midi In des zweiten gekoppelt. So verfahren Sie mit allen zu 
  53. vernetzenden Computern. Das Siganl Midi Out des letzten Gerätes 
  54. verbindet man am Schluβ mit Midi In des ersten. Achten Sie bitte 
  55. darauf, niemals Midi In zweier Computer miteinander zu verbinden. 
  56. Die Entfernung zwischen zwei benachbarten Computern darf nach 
  57. unserer Schätzung bis zu 50 Meter betragen. 
  58.  
  59.    Im Folgenden erklären wir die Datenübertragung. Wer mit 
  60. MIDInet arbeitet, benötigt keine speziellen Kenntnisse über 
  61. Netzwerke oder Datenübertragungen. Lediglich die Bedienung der 
  62. Maus sollte dem Anwender vertraut sein (Bild 2). 
  63.  
  64.    Das Betriebssystem stellt die Befehle bconin (BIOS 2) und 
  65. bconout (BIOS 3) zur Verfügung, mit denen man jeweils ein Zeichen 
  66. senden bezeihungsweise empfangen kann. Über bconstat (BIOS 1) 
  67. kann man prüfen, ob ein Zeichen im Puffer bereitsteht. 
  68.  
  69.    Zur Vereinfachung ist der Datenverkehr auf dem Netz blockweise 
  70. organisiert, deren Übertragung zeichenweise mit bconin und 
  71. bconout erfolgt. Die Schnittstelle hat einen vom Betriebssystem 
  72. gestellten Puffer von 128 Byte. Um Pufferüberläufe und damit 
  73. Datenverluste vollkommen auszuschlieβen, sind die Blocks auf die 
  74. Länge von 128 Byte begrenzt. Bild 3 zeigt den Aufbau eines 
  75. Datenblocks, von denen es drei verschiedene gibt. 
  76.  
  77.    Das >>nullte<< Byte enthält in den oberen vier Bit die Nummer 
  78. des Absenders und in den unteren die des Empfängers. Das 
  79. >>erste<< beinhaltet die Länge des restlichen Blocks (ohne 
  80. Prüfsumme), dann kommen bis zu 124 Byte Daten. Am Schluβ steht 
  81. ein Kennzeichen, welches das Ende der Daten signalisiert; ihm 
  82. gefolgt noch eine Prüfsumme. Insgesamt ergibt dies eine Länge von 
  83. 128 Byte. Das Schluβzeichen markiert nicht das Ende des Blocks, 
  84. sondern zeigt an, ob zu der übertragenden Datei noch weitere 
  85. Blocks gehören oder nicht. Die Prüfsumme dient zur Erkennung von 
  86. Übertragungsfehlern. Eventuell auftretende Fehler korrigiert 
  87. MIDInet automatisch. 
  88.  
  89.    Zwei andere Arten von Blocks müssen noch erklärt werden. Zur 
  90. Verhinderung von Datensalat und Pufferüberläufen darf immer nur 
  91. ein Computer gleichzeitig Informationen übertragen. Für die 
  92. Synchronisation der Computer untereinander verwenden wir die 
  93. zweite Blockart, das Freizeichen (Bild 4). Es besteht nur aus 
  94. einem Nullbyte und kreist fast immer auf dem Netz. Kommt das 
  95. Freizeichen bei einem Computer an, muβ er prüfen, ob er das Netz 
  96. in Anspruch nehmen soll. Ist dies nicht der fall, so sendet der 
  97. Computer das Freizeichen so schnell wie möglich weiter.
  98.  
  99.    Will sich ein Teilnehmer in das Netz einschalten, so sendet 
  100. sein Computer statt des Freiezeichens einfach einen Datenblock. 
  101. Dieser Block läuft über die vernetzten Geräte bis zum 
  102. Zielcomputer. Der Empfänger kopiert den Datenblock in einen 
  103. internen Puffer und sendet seinerseits den Bestätigungsblock 
  104. (Bild 5). Das ist die dritte Blockart. Der Datenteil eines 
  105. Bestätigungsblocks hat die Länge 0. Netze, die solche Freizeichen 
  106. verwenden, nennt man Token-Ring-Netze. 
  107.  
  108.    Die Geschwindigkeit eines Netzwerkes bestimmt  gröβtenteils 
  109. die für jeden Transfer notwendige Bearbeitungszeit, denn jeder 
  110. Computer muβ laufend ankommende Freizeichen oder Blocks 
  111. bearbeiten. Um diese Arbeti im Hintergrund laufen zu lassen, ist 
  112. in das Programm eine in Assembler geschriebene Interruptroutine 
  113. eingebunden, die den Blockweisen Verkehr auf dem Netz bearbeitet. 
  114. Die Routine arbeitet bis zum abschalten oder Rücksetzen des 
  115. Computers. Mit jedem Vertical Blank Interrupt (VBI), also nach 
  116. zeichnen eines Bildes, ruft MIDInet diese Routine auf. Das 
  117. passiert pro Sekunde 71 mal. Der Anwender merkt davon nichts und 
  118. der ST arbeitet nicht spürbar langsamer. 
  119.  
  120.    Die durchschnittliche Verzögerung bei der Weitergabe eines 
  121. Blocks beträgt 1/2 * 1/71 Sekunden, etwa 7 ms. In einem Netz mit 
  122. drei Computern kreist das Freizeichen etwa 50 mal je Sekunde. Da 
  123. der Verwaltungsaufwand mit steigender Computerzahl zunimmt, 
  124. verringert sich dann diese Umlaufgeschwindigkeit. 
  125.  
  126.    Wie schon erwähnt, betreut die Interruptroutine den gesamten 
  127. Netzverkehr. Jetzt muβ man nur noch die zu übertragenden Daten in 
  128. Blöcke zerlegen, um sie anschlieβend erneut aufzubauen. 
  129.  
  130.    Um höheren Anwendungskomfort zu erreichen, haben wir ein 
  131. Accessory programmiert. Es bildet die Schnittstelle Anwender/Netz 
  132. und arbeitet vollständig mit Dialogboxen. Das Accessory ist in 
  133. ST Pascal plus geschrieben. Das Hilfsprogramm steht, solange Sie 
  134. unter GEM arbeiten, bereit. Sobald TOS-Applikationen laufen, also 
  135. ohne Maus und Menüleiste, läβt sich das Accessory nicht 
  136. aktivieren. Die Interruptroutine jedoch läuft weiter und hält das 
  137. Netz aufrecht. 
  138.  
  139.    Accessory und Interruptroutine haben einen gemeinsamen 
  140. Speicherbereich, in dem zwei je 128 Byte lange Puffer und einige 
  141. Flags liegen. Den genauen Aufbau finden Sie in Bild 5. 
  142.  
  143.    Was passiert beim Senden einer Nachricht? 
  144.  
  145.    Der Benutzer aktiviert das Hilfsprogramm und klickt die 
  146. Nummern der/des Empfänger an, denn das können auch mehrere sein. 
  147. Anschlieβend schreibt er die Nachricht in eine Dialogbox. Mit 
  148. dem senden der Nachricht kopiert sie der Computer in den 
  149. Sendepuffer. Das Accessory setzt das >>Send Request<<-Flag. Es 
  150. zeigt der Interruptroutine an, daβ Daten zum Senden bereitstehen. 
  151. Wenn nun die Interruptroutine das Freizeichen empfängt, übergibt 
  152. sie stattdessen den Datenblock an das Netz. 
  153.  
  154.    Die Interruptroutine des Empfängers kopiert den Block in den 
  155. Empfangspuffer, setzt das Flag >>Receive Request<<, das dem 
  156. Accessory Empfangsbereitschaft anzeigt, und sendet eine 
  157. Bestätigung zurück. Sobald die Bestätigung beim Absender des 
  158. Datenblocks ankommt, sendet der ein Freizeichen. Damit ist die 
  159. Übertragung einer Nachricht abgeschlossen. Bei der nächsten 
  160. Gelegenheit zeichnet das Accessory des Empfängers dann eine 
  161. Dialogbox auf den Bildschirm und schreibt den Text der Nachricht 
  162. sowie die Nummer des Absenders hinein (Bild 6). 
  163.  
  164.    Stimmen die Prüfsummen nicht überein, fordert die 
  165. Interruptroutine des Empfängers bei Sender den Block erneut an. 
  166. Auβer einem Glöckchen (CHR(7)) merkt der Anwender davon nichts.
  167.  
  168.    Anfangs gab es Schwierigkeiten, da ein Datenblock meistens 
  169. nicht vollständig vor dem nächsten Interrupt beim Empfänger 
  170. angekommen ist. Das haben wir gelöst, indem die Interruptroutine 
  171. die Kontrolle wieder abgibt, sobald alle bisher angekommenen 
  172. Zeichen bearbeitet sind. Dabei >>merkt<< Sie sich die Position, 
  173. an der sie beim nächsten Interrupt weiterarbeiten muβ. Auf diese 
  174. Weise verliert das System keine Zeit mit Warten auf Rest von 
  175. Blöcken. 
  176.  
  177.    Im Sendebetrieb bleibt Die Interruptroutine so lange aktiv, 
  178. bis der Block vollständig übertragen wurde. Das dauert zwar mit 
  179. 41 Millisekunden wesentlich länger als für den VBI erlaubt ist, 
  180. allerdings flimmert das Bild nicht und hat keinerlei negative 
  181. Auswirkungen. Der Geschwindigkeit des Netzes kommt es zugute. 
  182.  
  183.    Geht eine Nachricht an mehrere Empfänger, sendet sie das Netz 
  184. mehrmals nacheinander. Nachrichten kann man auch an sich selber 
  185. schicken. 
  186.  
  187.    Ist der Empfangspuffer des Empfänger noch belegt, weil sich 
  188. der Teilnehmer im TOS befidnet und deshalb das Accessory nicht 
  189. arbeitet oder die letzte Nachricht gerade erst lieβt, kann es zu 
  190. Problöemen kommen. Dann löscht die Interruptroutine des 
  191. Empfängers den Datenblock vom Netz und sendet keine Bestätigung, 
  192. sondern ein Freizeichen. Der Sender wartet vergeblich auf eine 
  193. Bestätigung und meldet das über eine Bildschirmmaske. Der 
  194. Sendende kann dann den Vorgang wiederholen oder abbrechen.
  195.  
  196.    Besitzt kein Computer im Netz die Nummer des Empfängers, kommt 
  197. der Block unverändert wieder beim Absender an. Auch hier erhält 
  198. der Anwender eine Meldung. 
  199.  
  200.    Wir müssen erwähnen, daβ Sie machtlos gegenüber 
  201. Übertragungsfehlern in der Adresse oder in der Länge des 
  202. Datenblocks sind. In einem solchen Fall bleibt das Netz 
  203. normalerweise einfach stehen, bis der Empfänger des gestörten 
  204. Blocks sein Accessory neu installiert hat. Solche schweren Fehler 
  205. sind jedoch äuβerst selten. 
  206.  
  207.    Wie werden Dateien gesendet? 
  208.  
  209.    Die Software zerlegt alle Dateien in Blöcke und behandelt 
  210. diese dann wie Nachrichten. Der Absender klickt den gewünschten 
  211. Empfänger an, wählt >>Datei senden<< an und kann mit der 
  212. bekannten File Selector Box eine Datei zum Übertragen auswählen.
  213.  
  214.    Der erste gesendete Block enthält den Dateinamen und dessen 
  215. Datenteil mit einer 0 beginnend. Dadurch wird das Accessory des 
  216. Empfängers automatisch auf Dateiempfang geschaltet. Der Empfänger 
  217. bestimmt jetzt, wo und unter welchem Namen die Information 
  218. abgelegt wird. Dem Anwedner stehen die Hauptverzeichnisse von A:\ 
  219. bis D:\ zur Wahl. Auβerdem können Sie auch den Pfad über die File 
  220. Selector Box auswählen. Die folgende blockweise Übertragung der 
  221. Daten ist bei den Gesprächspartnern in Dialogboxen sichtbar. 
  222. Zwischendurch läβt sich eine einmal begonnene Übertragung nicht 
  223. abbrechen. 
  224.  
  225.    Hier spielt das erwähnte Schluβ-Kennzeichen der Blöcke eine 
  226. Rolle. In Jedem dieser Blöcke steht am Ende eine 255 vor der 
  227. Prüfsumme als Zeichen, daβ die Übermittlung noch nicht 
  228. abgeschlossen ist. Der letzte Block endet mit einer 0 und 
  229. veranlaβt damit das Schlieβen der Dateien. 
  230.  
  231.    Die Datenübertragung wirft Synchronisationsprobleme auf. 
  232. Sendet man beispielsweise von einer RAM-Disk Informationen auf 
  233. eine Diskette, dann stellt der Sender die Sende-Blöcke sehr 
  234. schnell zusammen. Der Empfänger dagegen benötigt wesentlich mehr 
  235. Zeit zum Schreiben der Daten. Daher kann es passieren, daβ der 
  236. Sender laufend Informationen überträgt, ohne daβ der Empfänger 
  237. diese in einen Puffer legen kann. In Wirklichkeit findet dann 
  238. keine Datenübertrgung statt. 
  239.  
  240.    Um dem abzuhelfen sendet hier nicht die Interruptroutine das 
  241. Quittierungssignal, sondern das Accessory. Dies geschieht erst 
  242. dann, wenn der Empfangspuffer frei ist. Unsere Versuche haben 
  243. eine wesentliche Beschleunigung der Übertragung mit diesem 
  244. Verfahren ergeben. 
  245.  
  246.    Kann man Dateien nur senden? 
  247.  
  248.    Eine weitere Fähigkeit von MIDInet ist die Anforderung von 
  249. Dateien anderer Teilnehmer. Dazu müssen Sie den vollständigen 
  250. Pfadname zur gewählten Datei auf dem anderen Computer, etwa 
  251. E:\PASCAL\GRAFIK.PAS, eingeben. Zusätzlich muβ der >>Eigentümer<< 
  252. der gewünschten Datei diese zum Senden freigegeben haben. Wer 
  253. will schon gerne Privatpost auf dem Netz kreisen sehen... 
  254.  
  255.    In der Datei Midinet.INF sind Pfade zu finden. Findet der 
  256. Computer in dieser Datei den Pfadnamen der angeforderten Daten, 
  257. sind die angeforderten Informationen freigegeben und werden 
  258. gesendet. Andernfalls bekommt der Anfordernde eine Fehlermeldung. 
  259. Steht zum Beispiel E:\POOL\ in Midinet.INF, so können Sie alle 
  260. Dateien aus dem POOL und den darin enthaltenen 
  261. Unterverzeichnissen anfordern. 
  262.  
  263.    Eine Anforderung läuft folgendermassen ab. Der Anfordernde 
  264. sendet einen Datenblock, der den Pfadnamen enthält sowie dessen 
  265. Datenteil mit einer 1 beginnt. Das schstellt das Hilfsprogramm 
  266. des Empfängers auf Datenanforderung um. Dann erfolgt die Prüfung 
  267. durch den Empfänger, ob die gesuchte Datei zum, Senden 
  268. freigegeben ist. 
  269.  
  270.    Kann immer nur einer das Netz benutzen? 
  271.  
  272.    Da in jedem Block neben dem Empfänger auch der Absender steht, 
  273. können mehrere Teilnehmer gleichzeitig auf dem Netz arbeiten. 
  274. Jeder Anwender kann aber zu einem Zeitpunkt nur eine Nachricht 
  275. senden oder Datei anfordern. 1 kann an 3 eine Datei senden, 
  276. während 2 und 4 Nachrichten austauschen. 
  277.  
  278.    Wenn ein Teilnehmer, der eine Datei sendet, eine Nachricht 
  279. erhält, wird diese nicht angenommen. Der Absender der Nachricht 
  280. erhält eine entsprechende Meldung und kann den Versuch 
  281. wiederholen oder abbrechen. 
  282.  
  283.    Wie installiert man MIDInet? 
  284.  
  285.    Neben den Überspielkabeln braucht man vier Dateien: 
  286.  
  287.    MIDINET.ACC      das Accessory 
  288.    MIDINET.RSC      das Resourcsfile dazu 
  289.    MIDINET.PRG      die Interruptroutine 
  290.    MIDINET.INF      die Zugriffsrechte 
  291.  
  292.    Alle vier Dateien müssen auf dem Laufwerk zur Verfügung 
  293. stehen, von dem aus Sie den Computer starten. Bei jeder 
  294. Datenanforderung liest das System die Datei Midinet.INF.
  295.  
  296.    Das Accessory installiert sich selbsttätig während des 
  297. Bootvorganges. Nach etwa 3 Sekunde erscheint eine Dialogbox, in 
  298. die eigene Teilnehmernummer einzutragen ist. Das Netz arbeitet 
  299. nur dann richtig, wenn alle Teilnehmer unterschiedliche Nummmern 
  300. besitzen. Das war auch schon alles, was der Benutzer zu tun hat.
  301.  
  302.    Das Accessory initialisiert nun seinerseits den Puffer. Dann 
  303. lädt und startet es mit der Funktion >>pexec<< (GEMDOS $4B) die 
  304. Interruptroutine, wobei die Kommandozeile die Adresse des Puffers 
  305. angibt. Die Interruptroutine bindet sich in den VBI ein und ist 
  306. damit aktiv. 
  307.  
  308.    Abschlieβend wird der Puffer gelöscht und ein Freizeichen 
  309. gesendet. Auf dem Netz darf immer nur ein Freizeichen kreisen. 
  310.  
  311.    Gibt es keine Probleme, wenn jeder Teilnehmer einfach so ein 
  312. Freizeichen sendet? Es ist sehr unwahrscheinlich, daβ zwei 
  313. Teilnehmer innerhalb von 10 Millisekunden mit dem Installieren 
  314. fertig sind. Deshalb häufen sich die gesendeten Freizeichen im 
  315. Puffer des letzten nicht installierten Teilnehmers. Wenn der 
  316. den Puffer löscht, sind alle überflüssigen Zeichen eliminiert 
  317. und nur noch das von diesem Teilnehmer gesendete Freizeichen 
  318. kreist auf dem Netz. 
  319.  
  320.    Soviel zur Bedienung von MIDInet. Als Erweiterung der 
  321. Fähigkeiten sind Routinen zum Senden und Empfangen von Blöcken 
  322. über den XBIOS-Vektor geplant. Damit kann man dann in jeder 
  323. beliebigen Sprache, die XBIOS-Aufrufe beherrscht, Programme 
  324. schreiben und mit ihnen auf mehreren Computern mit- oder 
  325. gegeneinander arbeiten. Beispiele hierfür sind eine verteilte 
  326. Datenbank oder ein Adventure, an dem mehrere Spieler an 
  327. verschiedenen Computern teilnehmen. Zusätzlich arbeiten wir an 
  328. einer neuen File Selector Box, die besser als die zu kleine, 
  329. übliche Box ist und über das Netz auch das Blättern auf den 
  330. Laufwerken aller anderen Teilnehmer erlaubt. 
  331.  
  332.    Bei der Token-Ring-Architektur müssen alle am Netz beteiligten 
  333. Computer eingeschaltet sein und MIDInet geladen haben, damit das 
  334. Netz funktioniert. Vielleicht kann ein Hardwarebastler eine 
  335. Schaltung entwerfen, die das Netz durchschleift, wenn der 
  336. entsprechende Computer ausgeschaltet ist. Natürlich geht das mit 
  337. einem Zwischenstecker, aber eine Schaltung wäre schöner. 
  338.