Podstawowym celem mojej pracy magisterskiej było stworzenie specyfikacji wydajnej i wygodnej w użyciu asynchronicznej biblioteki komunikacyjnej działającej w trybie jądra i w trybie użytkownika. Cel ten, w postaci specyfikacji biblioteki ZCCL, został osiągnięty.
Przy projektowaniu ZCCL trzeba było wziąć pod uwagę specyfikę komunikacji bez pośredniego kopiowania, założony asynchroniczny model pracy, planowane użycie w trybie jądra i wiele innych czynników wpływających na wygodę użytkowania i wydajność. Udało się jednak połączyć te wszystkie elementy w spójną całość.
Stworzona biblioteka spełnia wszystkie wymagania postawione jej w fazie projektowania. Umożliwia wydajną komunikację bez pośredniego kopiowania i udostępnia mechanizmy wyższego poziomu ułatwiające jej używanie. Dzięki asynchronicznemu modelowi pracy jest łatwa w użyciu w trybie jądra i pozwala w czytelny sposób przedstawiać działanie aplikacji w postaci automatu skończonego o jasno określonych przejściach między stanami. Interfejs biblioteki jest jednolity dla trybu użytkownika i jądra. Możliwe jest również użycie wielu podsystemów komunikacyjnych, realizujących komunikację za pomocą różnych bibliotek i protokołów sieciowych.
Działanie ZCCL zostało przetestowane z użyciem protypowego podsystemu komunikacyjnego, opartego na bibliotece gniazd, oraz przykładowych aplikacji. Stworzone aplikacje pokazują, że za pomocą ZCCL można tworzyć w pełni asynchroniczne aplikacje oraz że jednolity interfejs w trybie jądra i użytkownika, w połączeniu z asynchronicznym modelem pracy, pozwala w łatwy sposób przenosić te aplikacje do trybu jądra.
Możliwe drogi rozwijania ZCCL to przede wszystkim opracowanie wydajniejszych podsystemów komunikacyjnych: stworzenie prawdziwego podsystemu komunikacyjnego bez pośredniego kopiowania opartego na VIPL oraz dopracowanie podsystemu SockZCCL w oparciu o wnioski wyciągnięte z przeprowadzonych testów. Niewątpliwie ważnym zadaniem jest stworzenie bardziej skomplikowanej aplikacji używającej ZCCL, na przykład sieciowego urządzenia pamięci masowej. Jednym z prostszych zadań, dzięki wydzielonej warstwie zależnej od platformy, powinno być przeniesienie ZCCL na inny system operacyjny. W dalszej kolejności można rozszerzyć interfejs ZCCL o operacje zdalnego zapisu czy zaimplementować nowe rodzaje kanałów komunikacyjnych o semantyce dostosowanej do konkretnych zastosowań.
Krzysztof Lichota 2002-06-24