Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!att!alberta!ubc-cs!van-bc!suntac From: lphillips@lpami.wimsey.bc.ca (Larry Phillips) Newsgroups: comp.sys.amiga.tech Subject: Re: I wanna have a DOSGate! Message-ID: <2475@van-bc.UUCP> Date: 17 Jun 89 13:24:07 GMT Sender: suntac@van-bc.UUCP Lines: 53 In <6043@microsoft.UUCP>, bradch@microsoft.UUCP (Bradford Christian ms1) writes: >In article <17575@louie.udel.EDU> new@udel.EDU (Darren New) writes: >> [...] In my BBS I plan to go multi-user by having multiple >>copies of the BBS running at once, possibly after writing the >>code to be residentable (seemed obvious to me :-). [...] > >I don't know if you've thought about this yet or not so I thought I'd >bring it up: multiple instances do not a multi-user program make. > [ ... ] >Running totaly separate instances will probably also make a CB mode (where two >users can chat with each other directly) difficult. It is just as easy to connect users in a 'CB' mode via interprocess messaging as it is to connect them within a single program. >My solution to this problem is to have one instance of the program handle >any number of users. The main process manages the data base and is the >only thing that has access to these files. Each port has it's own process >which sends messages to the main process when it needs to read or write >an item in the data base. This solution not only solves the data base >access problem, but also makes it real easy to allow two (or more) users >to chat. Think modularity. A 'dispatcher' that watches the serial port and kicks off a module that talks to the serial port. A messaging and mail handler, protocol modules, and so on. Modularity brings generality if the moduels are well thought out, with the attendant ease of going to more lines or a different manufacturer's board. Messaging, up/downloads, and CB become a simple matter of routing messages. >I hope this doesn't mess up your plans, but if you hadn't thought of this >and haven't started coding yet, it should be worth thinking about. A >possible alternative to the method I use would be to write a multi-user >data base handler as a separate program. You could then run multiple >instances of you BBS program, one for each user, which would access the >data base by sending messages to the handler. > >Good luck with your program! While there can be some advantages in having a 'main process', it is certainly not a requirement, especially in te sense that one process is 'boss'. Peer-to-peer modularity can be every bit as effective, and offer some unique advantages, some of which may have nothing to do with the BBS itself. -larry -- Van Roy's Law: An unbreakable toy is useful for breaking other toys. +----------------------------------------------------------------------+ | // Larry Phillips | | \X/ lphillips@lpami.wimsey.bc.ca or uunet!van-bc!lpami!lphillips | | COMPUSERVE: 76703,4322 | +----------------------------------------------------------------------+