Kommunikationsverktygslåda
Macintosh Communications Toolbox , vanligtvis förkortad till CommToolbox eller CTB , var en svit av applikationsprogrammeringsgränssnitt , bibliotek och dynamiskt laddade kodmoduler för det klassiska Mac OS som implementerade en mängd olika seriella och nätverkskommunikationsprotokoll , såväl som filöverföringsprotokoll och terminalemuleringar.
Med CommToolbox kan man skriva en applikation som sömlöst fungerar över AppleTalk , ett modem eller vilken mängd andra anslutningar som helst, överföra filer med XMODEM , Kermit eller andra filöverföringsprotokoll och tillhandahålla DEC VT102 , VT220 , IBM 3270 och andra terminalemuleringstjänster . Utvecklare kan också skriva plug-in-kommunikationsmoduler som kallas "Verktyg", vilket gör att alla CommToolbox-medvetna applikationer kan använda den anslutningsmetoden.
CommToolbox påstods av vissa vara långsam och buggig, och fick blandat stöd från utvecklare. Exempel på applikationer som använder den för enkla uppgifter var vanliga, men applikationer för enstaka ändamål skulle ha högre prestanda när de kringgår system-API:s implementeringar och rullar sina egna.
CommToolbox släpptes ursprungligen oberoende av de viktigaste Mac-systemversionerna men integrerades slutligen och levererades med System 7 . Utvecklingsteamet var en del av Apples nätverks- och kommunikationsdivision, inte en del av huvudteamet för systemprogramvara.
Beskrivning
CommToolbox var kanske en av de första implementeringarna av delade bibliotek på det tidiga Mac OS. Applikationer skulle hitta installerade verktyg vid lanseringen. Faktum är att applikationer automatiskt kan upptäcka och använda nyinstallerade verktyg utan att behöva avsluta och starta om.
CommToolbox API:er bestod av 4 chefer:
- Communications Resource Manager (CRM)
- Anslutningshanterare (CM)
- File Transfer Manager (FTM)
- Terminal Manager (TM)
CRM försåg Mac med sitt första centraliserade arkiv för att registrera och räkna upp seriella enheter. Tidiga Mac-maskiner hade bara två seriella portar och med de senare Mac-datorerna som tillåter utbyggbarhet inklusive seriella portkort, fyllde CRM ett kritiskt hål i Mac OS-programvaruarkitekturen. Enhetstillverkare skulle skapa ett par drivrutiner som gav samma gränssnitt som Apples inbyggda seriella portdrivrutiner (men namngav annorlunda än .AIn/.AOut .BIn/.BOut) och registrera dessa drivrutiner med CRM.
Anslutnings-, filöverförings- och terminalhanteraren arbetade alla med sina respektive verktyg som var dynamiskt laddade kodmoduler som gav gränssnittet mellan det Manager-specifika API:t och koden som implementerade den specifika funktionaliteten. På detta sätt skulle en applikation kunna skrivas "agnostiskt" utan implementeringsspecifik kunskap om någon speciell dataanslutning, filöverföring eller terminalemuleringsprotokoll. Dessutom tillhandahöll dessa verktyg också en uppsättning systemomfattande standard-UI-implementeringar som automatiskt kunde anropas och användas för konfiguration.
Connection Tools gav ett byte-orienterat kommunikationskanalgränssnitt, som implementerade grundläggande funktionalitet som att öppna/stänga en anslutning, läsa/skriva data samt återuppringningar för att implementera ett användargränssnitt.
Terminal Tools implementerade teckenkonverteringen och kommandosträngtolkningen som behövs för att stödja alla typer av terminalemulatorer (främst textterminaler, grafikterminalverktyg släpptes aldrig), och skulle ansvara för hantering av rendering till en QuickDraw GrafPort , användarinteraktioner inklusive kopiering av text från terminalbufferten och hantera tangenttryckningar för att skicka terminalspecifika kontrollsträngar.
Filöverföringsverktyg implementerade alla underliggande implementeringsdetaljer som är involverade i filöverföringar samt tillhandahåller callbacks för att implementera ett användargränssnitt.
Applikationer kan använda antingen en delmängd eller alla CTB-hanterare. En typisk terminalemulatorapplikation skulle använda dem alla, ansluta ett anslutningsverktyg valt i anslutningshanteraren till terminalverktyget i terminalhanteraren, och sedan regelbundet använda ett filöverföringsverktyg i filöverföringshanteraren på användarens begäran. Så var fallet för vanliga terminalemulatorer som VersaTerm och MacTerminal . En annan applikation kanske bara använder en av dessa, säg Connection Manager för att ställa in kommunikation. QuickMail och Eudora är välkända exempel. Applikationer använde vanligtvis GUI-elementen som tillhandahålls av cheferna för att hantera användarinteraktion, men kunde också räkna upp verktygen på egen hand för att tillhandahålla ett anpassat GUI.
Det kanske mest kända verktyget var Apple Modem Tool, som tillhandahöll drivrutiner för seriell kommunikation såväl som ett system för att lagra inställningskommandon . Detta var under en era där det fanns en spridning av olika modemleverantörer, var och en med subtilt och inte så subtilt olika AT- kommandosträngar som behövs för konfiguration. När en anslutning initierades med modemverktyget öppnades länken till modemet, kommandon skickades till det och länken upprättades genom uppringning. Apple Modem Tool stod inför utmaningar med att hålla sig till det snabbt föränderliga modemlandskapet med behov av att spåra högre hastigheter och nya funktioner som regelbundet introduceras av modemleverantörer.
Att tillhandahålla CTB-uppdateringar i allmänhet var också en utmaning eftersom CTB-utvecklingen till en början inte var en del av den huvudsakliga System Software-satsningen, utan snarare en del av Networking and Communications-divisionen. När en 1.5-version som åtgärdade några av problemen släpptes 1993, visade det sig att det var svårt. Ytterligare en uppdatering behövdes för att stödja högre hastigheter när 28kbit/s modem blir vanliga.
Några av de andra verktygen från Apple inkluderade det enkla Serial Tool och AppleTalk Tools som använder AppleTalks Apple Data Stream Protocol som ytterligare anslutningsmetoder, TTY- och VT102-verktygen för terminalemulering och Text- och XModem -verktygen för filöverföringar.
Tredjepartsverktyg var vanliga för att stödja anslutningar, inklusive Global Village TelePort- modemet som kopplades in i Apple Desktop Bus och därför krävde anpassade drivrutiner, Apples egna X.25- och ISDN -verktyg och en mängd andra exempel. Det släpptes också tredjeparts Telnet Connection Tools när TCP/IP började bli vanligare.
CommToolbox var en viktig del av DTO-1208-experimentet ombord på rymdfärjan Atlantis som såg det första e-postmeddelandet från rymden 1991. Utrustningen var en bakgrundsbelyst Mac Portable med ett internt faxmodem för PSI Integration (används i halvduplexläge pga. till karaktären av skyttelns luft-till-mark röstlänkar). Kommunikationsmjukvaran som användes var en speciellt modifierad version av AppleLink som använde CommToolbox Connection Manager (istället för direkt åtkomst till seriella portar) och ett anpassat anslutningsverktyg skrivet pro bono av tre Apple-ingenjörer på sin fritid för att dölja halvduplex-karaktären hos luft-till-jord-länk från applikationen (som förväntade sig en full-duplex-anslutning).
- Citationsbibliografi
- _
- "Inuti Macintosh Communications Toolbox" (PDF) . Apple dator. 1991.
- Gaspar, Don (december 1990). "Macintosh Communications Toolbox" . Dr. Dobbs.
- Vidare läsning
- "Kommunikationsverktyg" , introduktion till CTB med många bilder.