Siła linuksa a otwarte standardy

Rosnąca popularność systemów wykorzystujących oprogramowanie open source jest oczywistym faktem. Tandem Linux/Apache to ok. 70% serwerów w Internecie. Spośród 10 najszybszych maszyn (z prowadzącym IBM Blue Gene włącznie) na liście Top500 ( http://www.top500.org ), osiem pracuje pod kontrolą Linuksa. Budowane są instalacje, w których na jednej maszynie klasy mainframe pracuje kilkaset wirtualnych systemów Linux. Wobec takich faktów trudno jest dalej dyskutować, czy jest to system skalowalny czy też nie oraz czy nadaje się do pracy w instalacjach profesjonalnych.

Rosnąca popularność systemów wykorzystujących oprogramowanie open source jest oczywistym faktem. Tandem Linux/Apache to ok. 70% serwerów w Internecie. Spośród 10 najszybszych maszyn (z prowadzącym IBM Blue Gene włącznie) na liście Top500 (http://www.top500.org ), osiem pracuje pod kontrolą Linuksa. Budowane są instalacje, w których na jednej maszynie klasy mainframe pracuje kilkaset wirtualnych systemów Linux. Wobec takich faktów trudno jest dalej dyskutować, czy jest to system skalowalny czy też nie oraz czy nadaje się do pracy w instalacjach profesjonalnych.

Propagatorzy rozwiązań open source jako główną zaletę wskazują przede wszystkim udostępnienie kodu źródłowego oraz brak opłat licencyjnych. Największą zaletą rozwiązań open source jest jednak wpisana w samą jego ideę otwartość systemu, gdyż dostęp do kodu źródłowego ma znaczenie przede wszystkim dla programistów rozwijających konkretne projekty, a koszt wdrożenia powinien być w każdym przypadku kalkulowany indywidualnie.

O wiele większe znaczenie ma wykorzystywanie przez rozwiązania open source powszechnie akceptowanych, udokumentowanych oraz otwartych standardów. Jeśli weźmiemy pod uwagę jedynie rozwiązania sieciowe, to jeszcze 10 lat temu na rynku walczyło wiele protokołów (IPX/SPX, NetBEUI, Banyan Vines itp.). Powodowało to oczywiście trudności w łączeniu różnych systemów sieciowych.

Obecnie powszechnie stosowanym standardem sieciowym jest TCP/IP. Można mieć wiele wątpliwości czy jest to rozwiązanie najlepsze pod względem parametrów technicznych. Z podobną sytuacją mamy do czynienia w przypadku sieci Ethernet. A jednak oba te rozwiązania stały się powszechnie obowiązującymi standardami dzięki ich otwartości, powszechnej akceptacji oraz udokumentowaniu.

Czym jest system otwarty?

Składniki systemu otwartego

Składniki systemu otwartego

Instytut inżynierii oprogramowania Carnegie Mellon University (http://www.sei.cmu.edu ) definiuje otwartość systemu jako zestaw współpracujących ze sobą elementów sprzętowych i programowych oraz ludzi, który został zaprojektowany zgodnie ze zdefiniowanymi wymaganiami, jest złożony jedynie z komponentów, których łącza odpowiadają w pełni przyjętej specyfikacji, oraz zawiera pełną specyfikację łączy (interfejsów) między komponentami. Specyfikacja ta powinna być w pełni zdefiniowana i szeroko akceptowana, dostępna publicznie bez ograniczeń oraz zarządzana (np. uaktualniana) zgodnie z przyjętymi założeniami.

Zgodnie z powyższą definicją systemem otwartym może być zarówno system komercyjny, opracowany na indywidualne zamówienie, jak i open source, a także system, który wykorzystuje wszystkie te rozwiązania. Publiczna dostępność specyfikacji szeroko rozumianych łączy (zarówno protokołów, jak i formatów plików) umożliwia bowiem współpracę poszczególnych elementów między sobą w chwili obecnej oraz zabezpiecza możliwość dołączania komponentów, które pojawią się w dającej się przewidzieć przyszłości. Warto zwrócić uwagę, że otwartość systemu w myśl powyższej definicji nie wymaga wcale dostępu do kodu źródłowego, a jedynie otwartej specyfikacji i zgodności interfejsów.

Większość standardów jest obecnie ustalana na zasadzie powszechnego konsensusu - dotyczy to standardów sieciowych (działalność IEEE -http://www.ieee.org ), protokołów (IETF -http://www.ietf.org ), formatów dokumentów (OASIS -http://www.oasis-open.org ) i podobnych. Idea otwartości jest stosowana przy projektowaniu i budowie systemów na potrzeby obronności USA (prace Cyrusa Anzaniego i innych) oraz z powodzeniem sprawdza się w praktyce, umożliwiając wykorzystywanie różnych platform sprzętowych, a także łączenie oprogramowania komercyjnego (COTS - Commercial off-the-Shelf), wolnego (FOSS - Free Open Source Software) oraz opracowywanego na indywidualne zamówienie (CODS - Customized on-Demand Software).

W swej fundamentalnej pracy zatytułowanej "The Test and Evaluation Challenges of Following an Open System Strategy" - ITEA Journal IX/X.2001 Vol. 22 No. 3 wspomniany już Cyrus Anzani zestawia cechy systemów otwartych i zamkniętych (fragment tego opisu publikujemy w tabeli). Po lekturze tego dokumentu wnioski narzucają się same. To właśnie dzięki otwartym standardom uzyskaliśmy możliwość powszechnej komunikacji (w tym także sieciowej). Postęp wprowadzania otwartych, udokumentowanych i powszechnie akceptowanych standardów jest łatwy do zauważenia - po sieciach i protokołach transmisyjnych przyszedł czas na dokumenty. Wyraźnym tego sygnałem jest opracowanie Open Document Standard przez OASIS oraz zamknięcie głosowania nad tym standardem ze stuprocentową jego akceptacją w dniu 30 kwietnia 2005 r.

Open source i open system

Linux Virtual Server Project - gpl

Linux Virtual Server Project - gpl

Oprogramowanie open source nie musi wcale a priori spełniać wymagań stawianych systemowi otwartemu. Jednakże przyjęty "bazarowy" model rozwoju tego oprogramowania wymusza wręcz stosowanie otwartych oraz udokumentowanych interfejsów, ponieważ bez spełnienia tego warunku rozproszony rozwój technologiczny byłby w ogóle niemożliwy.

Co ważne, oprogramowanie open source w miarę możliwości stara się również dostosowywać do standardów zamkniętych (proprietary standards) - często nawet z braku innych możliwości stosując metodę "reverse engineering". Rezultaty są w wielu przypadkach bardzo zachęcające - wystarczy chociażby wymienić dostępne na licencji GPL oprogramowanie rdesktop (http://www.rdesktop.org ). Pozwala ono na korzystanie z usług terminalowych systemu Microsoft Windows Server NT/2000/2003 wraz ze wszystkimi rozszerzeniami użytkownikom systemów Unix i Linux. Innym przykładem może być wykorzystujący system Linux "Load Balancer" projektu Linux Virtual Server (www.linuxvirtualserver.org), który pozwala także na równoważnie obciążenia serwerów . Takich oczywistych przykładów jak implementacja protokołu SMB (popularna SAMBA) nie trzeba chyba wymieniać.

Należy także oddać sprawiedliwość producentom oprogramowania komercyjnego - np. Microsoft Virtual Server czy też oprogramowanie firmy VMware pozwalają na uruchomienie jako systemów "gości" zarówno MS Windows 2000/2003, jak i Linux.

Bój o otwartość standardów wydaje się prawie rozstrzygnięty. Pozostaje jednak najważniejsza dla przeciętnych użytkowników kwestia - wymiana dokumentów. Jak dotychczas Microsoft odmawia uznania standardu OpenDocument v.1.0, motywując to jego rzekomym niedopracowaniem (przedstawiciele tej firmy nie brali jednak udziału w końcowym głosowaniu nad postacią standardu). Wydaje się jednak, że ten (zrozumiały skądinąd) opór nie będzie trwał wiecznie i otwarty standard (być może w zmodyfikowanej postaci) zwycięży. Microsoft potrzebował przecież dość sporo czasu, aby zaakceptować protokół TCP/IP (wprowadzono go oficjalnie dopiero w Windows 95 OSR2).

Potrzeba otwartego standardu dokumentów biurowych jest oczywista. Za przykład precedensu można podać postępowanie redakcji czasopisma "HiFi i Muzyka", która oficjalnie ogłasza, że nie akceptuje poczty elektronicznej z załącznikami w formacie Worda (doc) i wymaga stosowania polskich liter zgodnie z tablicą kodową ISO 8859-2.

Rozsądek zwycięży?

Cechy systemu zamkniętego

Cechy systemu zamkniętego

Wydaje się, że dla integratora i użytkownika systemu przedstawione fakty oznaczają same dobre wiadomości. Otwarte standardy upraszczają realizację nawet skomplikowanych projektów, gwarantują bezproblemową komunikację oraz wydłużają czas eksploatacji systemów, a także ułatwiają ich modernizację. To właśnie dzięki otwartym standardom możemy korzystać z usług Internetu oraz innych systemów komunikacji komputerowej. Na początku lat 90. połączenia Uniksa z Novellem podejmowali się jedynie najwięksi komputerowi guru. Dziś ten problem praktycznie nie istnieje.

Sprawiły to właśnie otwarte standardy, od których powszechnego stosowania w moim przekonaniu nie ma już odwrotu, a im prędzej je wszyscy wprowadzimy - tym lepiej. Technologia MOSA (Modular Open System Approach) została zaakceptowana przez Ministerstwo Obrony USA (DoD - Department of Defense Directive 5000.1) jako zalecona do stosowania przy integrowaniu systemów biznesowych i inżynierskich. Podobnych przykładów, również w Unii Europejskiej, można podać znacznie więcej.

Jeden z ciekawszych projektów - analizę możliwości wykorzystania oprogramowania open source w systemach służących do kontroli ruchu lotniczego - przedstawił Jean-Luc Hardy z organizacji Eurocontrol na ostatnich warsztatach Calibre (http://www.calibre.put.poznan.pl ), które odbyły się w Krakowie 18 października 2005 r.

Również i w Polsce mamy się czym pochwalić w zakresie realizacji idei systemów otwartych. To właśnie dzięki precyzyjnemu zdefiniowaniu łączy (interfejsów) pomiędzy elementami systemu był możliwy sukces wdrożenia bezdyskowych końcówek sieciowych wykorzystujących system Linux w Ministerstwie Finansów. Przygotowanie i umieszczenie w SIWZ odpowiednich i szczegółowych tabel umożliwiło wykonanie oprogramowania, które współpracuje zarówno z systemem POLTAX (tryb znakowy), jak i z serwerami Microsoft Windows 2003. Rozwiązanie to jest jednym z większych projektów terminalowych na świecie - łącznie jest wykorzystywanych ponad 18 tys. bezdyskowych końcówek graficznych. Stosowane są one nie tylko jako końcówki POLTAX-u - pracownicy mają również do dyspozycji zarówno , jak i OpenOffice oraz oprogramowanie specjalizowane. Należy podkreślić, że część oprogramowania została udostępniona już po dostawie końcówek i jego integracja nie sprawiła większych problemów. Potwierdza to słuszność wybranej i konsek-wentnie realizowanej koncepcji systemu otwartego.


TOP 200