Pakiet narzędzi komunikacyjnych

Macintosh Communications Toolbox , ogólnie skracany do CommToolbox lub CTB , był zestawem interfejsów programowania aplikacji , bibliotek i dynamicznie ładowanych modułów kodu dla klasycznego systemu Mac OS , który implementował szeroką gamę protokołów komunikacji szeregowej i sieciowej , a także protokoły przesyłania plików i emulacje terminali.

Korzystając z CommToolbox, można napisać aplikację , która bezproblemowo działałaby przez AppleTalk , modem lub inne połączenia, przesyłała pliki za pomocą XMODEM , Kermit lub innych protokołów przesyłania plików oraz zapewniała DEC VT102 , VT220 , IBM 3270 i inne usługi emulacji terminala . Deweloperzy mogą również pisać moduły komunikacyjne wtyczek znane jako „Narzędzia”, umożliwiające dowolnej aplikacji obsługującej CommToolbox korzystanie z tej metody połączenia.

Niektórzy twierdzili, że CommToolbox jest powolny i zawiera błędy, i otrzymał mieszane wsparcie od programistów. Przykłady aplikacji wykorzystujących go do prostych zadań były powszechne, ale aplikacje przeznaczone do jednego celu miałyby wyższą wydajność, gdyby omijały implementacje systemowych interfejsów API i wdrażały własne.

CommToolbox został początkowo wydany niezależnie od głównych wersji systemu Mac, ale ostatecznie został zintegrowany i dostarczony z Systemem 7 . Zespół programistów był częścią działu Apple Networking and Communications Division, a nie częścią głównego zespołu ds. oprogramowania systemowego.

Opis

CommToolbox był prawdopodobnie jedną z pierwszych implementacji bibliotek współdzielonych we wczesnym systemie Mac OS. Aplikacje znajdowałyby zainstalowane narzędzia w czasie uruchamiania. W rzeczywistości aplikacje mogą automatycznie wykrywać i używać nowo zainstalowanych narzędzi bez konieczności zamykania i ponownego uruchamiania.

Interfejsy API CommToolbox składały się z 4 menedżerów:

  • Menedżer zasobów komunikacyjnych (CRM)
  • Menedżer połączeń (CM)
  • Menedżer przesyłania plików (FTM)
  • Menedżer terminali (TM)

CRM dostarczył komputerowi Mac swoje pierwsze scentralizowane repozytorium do rejestrowania i wyliczania urządzeń szeregowych. Wczesne komputery Mac miały tylko dwa porty szeregowe, a późniejsze komputery Mac umożliwiały rozbudowę, w tym karty portu szeregowego, CRM wypełnił krytyczną lukę w architekturze oprogramowania Mac OS. Producenci urządzeń stworzyliby parę sterowników, które zapewniałyby ten sam interfejs, co wbudowane sterowniki portu szeregowego Apple (ale o innych nazwach niż .AIn/.AOut .BIn/.BOut) i rejestrowały te sterowniki w CRM.

Połączenie, przesyłanie plików i Menedżer terminali działały z odpowiednimi narzędziami, które były dynamicznie ładowanymi modułami kodu zapewniającymi interfejs między interfejsem API specyficznym dla menedżera a kodem implementującym określoną funkcjonalność. W ten sposób aplikacja mogłaby zostać napisana „agnostycznie” bez wiedzy specyficznej dla implementacji o jakimkolwiek konkretnym połączeniu danych, przesyłaniu plików lub protokołach emulacji terminala. Ponadto narzędzia te zapewniały również zestaw ogólnosystemowych standardowych implementacji interfejsu użytkownika, które można było automatycznie wywoływać i wykorzystywać do konfiguracji.

Narzędzia połączeń zapewniały zorientowany na bajty interfejs kanału komunikacyjnego, implementujący podstawowe funkcje, takie jak otwieranie/zamykanie połączenia, odczyt/zapis danych, a także wywołania zwrotne w celu zaimplementowania interfejsu użytkownika.

Narzędzia terminalowe zaimplementowały konwersję znaków i interpretację ciągów poleceń potrzebnych do obsługi wszelkiego rodzaju emulatorów terminali (głównie terminale tekstowe, narzędzia terminali graficznych nigdy nie zostały wydane) i byłyby odpowiedzialne za obsługę renderowania do QuickDraw GrafPort , interakcje użytkownika, w tym kopiowanie tekstu z bufor terminala i zarządzanie naciśnięciami klawiszy w celu wysłania ciągów kontrolnych specyficznych dla terminala.

Narzędzia do przesyłania plików zaimplementowały wszystkie podstawowe szczegóły implementacji związane z przesyłaniem plików, a także zapewniają wywołania zwrotne w celu zaimplementowania interfejsu użytkownika.

Aplikacje mogą używać podzestawu lub wszystkich menedżerów CTB. Typowa aplikacja emulatora terminala używałaby ich wszystkich, łącząc narzędzie połączenia wybrane w Menedżerze połączeń z narzędziem terminala w Menedżerze terminali, a następnie okresowo używając narzędzia przesyłania plików w Menedżerze przesyłania plików na żądanie użytkownika. Tak było w przypadku popularnych emulatorów terminali, takich jak VersaTerm i MacTerminal . Jednak inna aplikacja może używać tylko jednego z nich, na przykład Menedżer połączeń, aby skonfigurować komunikację. QuickMail i Eudora to dobrze znane przykłady. Aplikacje zwykle wykorzystywały elementy GUI dostarczone przez menedżerów do obsługi interakcji użytkownika, ale mogły również samodzielnie wyliczać narzędzia, aby zapewnić niestandardowy GUI.

Być może najbardziej znanym narzędziem było narzędzie Apple Modem Tool, które zapewniało sterowniki komunikacji szeregowej, a także system do przechowywania poleceń konfiguracyjnych . Działo się to w epoce, w której wielu różnych dostawców modemów oferowało subtelnie i niezbyt subtelnie różne poleceń AT potrzebne do konfiguracji. Gdy połączenie zostało zainicjowane za pomocą narzędzia Modem Tool, łącze do modemu było otwierane, wysyłane do niego polecenia i ustanawiane przez wybieranie numeru. Narzędzie Apple Modem Tool musiało stawić czoła wyzwaniom związanym z nadążaniem za szybko zmieniającym się środowiskiem modemowym, z koniecznością śledzenia wyższych prędkości i nowymi funkcjami, które są regularnie wprowadzane przez dostawców modemów.

Ogólnie rzecz biorąc, dostarczanie aktualizacji CTB było również wyzwaniem, ponieważ początkowo rozwój CTB nie był częścią głównych wysiłków związanych z oprogramowaniem systemowym, ale raczej częścią działu Networking and Communications. Kiedy w 1993 roku ukazała się wersja 1.5 rozwiązująca niektóre problemy, nawet jej znalezienie okazało się trudne. Konieczna była dalsza aktualizacja, aby obsługiwać wyższe prędkości, gdy modemy 28 kbit / s staną się powszechne.

Niektóre z innych narzędzi dostarczonych przez Apple obejmowały proste narzędzie szeregowe i narzędzia AppleTalk wykorzystujące protokół Apple Data Stream Protocol firmy AppleTalk jako dodatkowe metody połączenia, narzędzia TTY i VT102 do emulacji terminala oraz narzędzia Text i XModem do przesyłania plików.

Do obsługi połączeń powszechne były narzędzia innych firm, w tym modem Global Village TelePort , który podłączano do magistrali Apple Desktop Bus i tym samym wymagał niestandardowych sterowników, własnych narzędzi X.25 i ISDN firmy Apple oraz wielu innych przykładów. Pojawiły się również narzędzia do połączeń Telnet innych firm , gdy protokół TCP/IP zaczął się upowszechniać.

CommToolbox był ważną częścią eksperymentu DTO-1208 na pokładzie promu kosmicznego Atlantis , który otrzymał pierwszą wiadomość e-mail z kosmosu w 1991 roku. Konfiguracja sprzętu obejmowała podświetlany komputer przenośny Mac z wewnętrznym faksmodemem PSI Integration (używanym w trybie półdupleksowym ze względu z charakterem wahadłowych połączeń głosowych powietrze-ziemia). Zastosowanym oprogramowaniem komunikacyjnym była specjalnie zmodyfikowana wersja AppleLink , która wykorzystywała CommToolbox Connection Manager (zamiast bezpośredniego dostępu do portów szeregowych) oraz niestandardowe narzędzie Connection Tool, napisane pro bono przez trzech inżynierów Apple w ich wolnym czasie, aby ukryć półdupleksowy charakter połączenie powietrze-ziemia z aplikacji (która oczekiwała połączenia w trybie pełnego dupleksu).

Bibliografia
cytatów
  • „Wewnątrz zestawu narzędzi komunikacyjnych dla komputerów Macintosh” (PDF) . Komputer Apple. 1991.
  • Gaspar, Don (grudzień 1990). „Zestaw narzędzi komunikacyjnych dla komputerów Macintosh” . Doktor Dobbs.
Dalsza lektura