Innowacyjne open source

Dostawcy komercyjnego oprogramowania chcą abyśmy wierzyli, że ruch open source niczego nie tworzy sam, lecz naśladuje istniejące rozwiązania i wypuszcza produkty, które nie potrafią sobie poradzić na wolnym rynku. Cyfrowa waluta, webowy desktop, interfejs dla sieci społecznościowych czy automat do uaktualniania łatek - prezentujemy kilka nowych projektów pokazujących, jak innowacyjne mogą być rozwiązania korzystające z open source.

Twierdzenie, że open source nic nie wnosi do świata oprogramowania jest dużą przesadą. Przecież sporo popularnego oprogramowania używanego w świecie WWW - od przeglądarek Firefox i Chrome po Apache Web Server i języki skryptowe, takie jak Perl, Python czy Ruby - zaczynało swój żywot jako projekty open source.

Nie tylko sektor komercyjny, ale również ruch open source ma swój wkład w rozwój oprogramowania. Wiele projektów podejmowanych przez uczelnie, luźno powiązane społeczności, indywidualnych twórców, eksploruje różne obszary zastosowań, stając do konkurencji z głównym nurtem firmowych produktów oprogramowania. A oto kilka przykładów nowych idei w oprogramowaniu, które być może będą do kupienia kiedyś u dostawców komercyjnych, ale już dzisiaj można je mieć jedynie od społeczności open source - i to za darmo.

Bitcoin - cyfrowa waluta

Próby zbudowania alternatywnej waluty dla e-commerce podejmowane były niejednokrotnie, ale żadna z nich nie może się równać z koncepcją Bitcoin. Jej twórca, Satoshi Nakamato, nazwał ją "kryptowalutą", ponieważ opiera się na kryptografii klucza publicznego w uwierzytelnianiu elektronicznych transakcji handlowych, przeprowadzanych w układzie "peer-to-peer" w sposób całkowicie anonimowy i bezpieczny. W odróżnieniu od dotychczasowych prób stworzenia "cyfrowej waluty", nie ma tu dedykowanych serwerów zarządzających transakcjami oraz żadnego centralnego urzędu wydającego certyfikaty. Wszystkie funkcje bankowe są rozproszone między indywidualnymi węzłami w sieci P2P Bitcoin.

Pojawia się tu oczywisty problem: jak kontrolować inflację, kiedy nikt nie zarządza dostawą pieniędzy? Odpowiedź jest zaskakująco prosta: Bitcoin opiera się na czymś w rodzaju cyfrowego standardu złota. Pieniądz cyfrowy jest tworzony tylko wtedy, kiedy użytkownik wnosi coś, co ma materialną wartość: np. cykle CPU, które są używane w projektach przetwarzania siatkowego. Im więcej cykli wnosi się do puli, tym bardziej przyrasta zawartość cyfrowego portfela - chociaż stosowane są odpowiednie przepustnice zapobiegające, aby użytkownicy z szybkimi procesorami zbyt łatwo nie nabijali sobie kabzy.

Zdecydowanie najefektywniejszym sposobem gromadzenia waluty cyfrowej jest jej wymiana z innymi użytkownikami za towary i usługi, które mogą być czymkolwiek - od elementów wirtualnych po gry online czy używane samochody ze świata rzeczywistego. Przewaga nad istniejącymi systemami płatności polega na tym, że Bitcoin jest rozproszony i zdecentralizowany - nikt nie może zawetować wymiany handlowej i nie istnieje żaden pośrednik pobierający opłaty za transakcje. Użytkownicy nie muszą nawet ujawniać swojej rzeczywistej tożsamości, żeby przeprowadzić transakcje Bitcoin. W tym sensie jest to nie tylko oprogramowanie open source Bitcoin, ale także waluta wymienna.

eyeOS -webowy desktop

Zestawy pracy zespołowej, takie jak Google Docs i Zoho, cieszą się ostatnio dużym zainteresowaniem zarówno z powodu łatwości utrzymania, jak i możliwości korzystania z pamięci masowej w chmurze. Jednak dostępne oferty tego typu rozwiązań mają tę samą wadę: aby korzystać z takich aplikacji trzeba przechowywać swoje dane poza własnymi serwerami i w niektórych przypadkach godzić się na to, że dane te będą indeksowane w celach marketingowych.

Użytkownicy poszukujący elastyczności aplikacji cloud, ale jednocześnie preferujący pozostawienie sobie pełnej kontroli nad danymi, mogą spróbować eyeOS. Aplikacja oferuje pełny, webowy desktop, zbudowany w oparciu o łatwo dostępne technologie open source, m.in. Apache i PHP, co oznacza, że można używać jej w wersji hostowanej albo zainstalować kopie na własnych sprzęcie.

Jednak eyeOS jest czymś więcej niż tylko gotowym pakietem aplikacyjnym. Została oparta na strukturze RIA (Rich Internet Application), a ponieważ jest open source, to może być niemal dowolnie dostosowywana. Użytkownik może używać eyeOS nie tylko do projektowania swojej aplikacji webowej, ale także konfigurować interfejs użytkownika dodając specjalizowane widgety lub tworząc odmiany desktopów szyte na miarę dla swoich klientów i pracowników.

Na obecnym etapie opracowania eyeOS nie stanowi alternatywy dla tradycyjnych desktopów dla wymagających użytkowników. Jednak może być alternatywą np. dla aplikacji help desk lub call center. Co ważniejsze, w dobie coraz powszechniejszych podręcznych terminali webowych, takich jak iPad czy urządzenia Google Chrome OS, eyeOS może zapewniać pomost między tradycyjnym użytkowaniem desktopów, a interfejsem webowym.

Social Desktop - interfejs sieci społecznościowych

Aplikacje przeglądarkowe odgrywają coraz większą rolę w codziennym przetwarzaniu danych. Tym, co coraz bardziej przyciąga użytkowników do Weba jest praca w sieciach społecznościowych. Portale takie jak Facebook, Flickr czy Twitter - pozwalają na podłączanie komputerów użytkowników do wspólnej sieci i współpracę w nowy, dotychczas niespotykany sposób.

Jednak nie wszyscy są przekonani, że pełny kliencki interfejs przeglądarki jest niezbędny do zapewnienia takiej współpracy. Co więcej, niektórzy uważają go za niepotrzebny. Jeżeli sieci społecznościowe staną się centralnym wzorcem użytkowania PC, to powinny wymusić zintegrowanie ich styku z użytkownikiem bezpośrednio w systemie operacyjnym.

Przyjrzymy się koncepcji "Social Desktop". Gnome i K Desktop Enviroment (KDE) to dwa główne systemy graficznego interfejsu użytkownika (GUI) dla desktopów Linux. Poczynając od wersji 4.3, KDE dostarczany jest z narzędziami pozwalającymi użytkownikowi lokalizować i komunikować się z innym użytkownikami KDE w sieci lokalnej. Pomysł opierał się na tym, aby pomóc użytkownikom KDE w budowaniu lokalnych społeczności, które będą dzielić się poradami i uwagami na temat zarządzania i utrzymywania systemów Linuks.

To z pewnością skromne początki, ale oprócz tych pierwotnych celów, istnieje ambitny plan znacznie szerszego połączenia użytkowników KDE. Specyfikacja Open Collaboration Services (OCS) określa API, który pozwala dostawcom usług sieci społecznościowych na łączenie ich oferty z desktopami KDE.

Specyfikacja jest otwarta i obecnie prowadzonych jest kilka prac nad niezależnymi serwerami wspierającymi ten API. Niebawem można spodziewać się desktopów linuksowych z interfejsem sieci społecznościowych wbudowanych w system operacyjny, podczas gdy komercyjne systemy operacyjne nadal cedują tę rolę na przeglądarki.

Ksplice - łatanie bez restartu

Jeszcze nie tak dawno użytkownicy komputerów byli obciążeni obowiązkiem troszczenia się o aktualność łatek bezpieczeństwa i innych uaktualnień oprogramowania. Oznaczało to konieczność monitorowania wielu witryn dostawców oprogramowania w celu poszukiwania nowych uaktualnień i następnie pobierania ich i instalowania ręcznie. Było to zajęcie czasochłonne i ryzykowne, ponieważ destrukcyjny z natury proces uaktualniania często zniechęcał do systematycznego wprowadzania łatek. Obecnie automatyczne mechanizmy uaktualniania są normą i zadanie utrzymywania aktualnych poprawek oprogramowania jest znacznie ułatwione.

Nadal jednak uaktualnienie samego systemu operacyjnego może być sprawą skomplikowaną. Kiedy update dotyczy sterownika urządzenia lub załatania luki w usłudze jądra systemu, pomyślne zakończenie tego procesu w pracującym systemie operacyjnym wymaga zazwyczaj przeładowania komputera. Jeśli proces ten przeprowadzany jest na serwerze obciążonym dużym ruchem, to może poważnie zakłócić normalny tryb pracy ośrodka.

Ksplice daje tu użytkownikom systemów Linux pewną alternatywę. Jest to technika pozwalająca na tworzenie specjalnych łatek binarnych, które mogą być stosowane bezpośrednio na pracującym jądrze Linuksa. Nie jest wtedy wymagane przeładowanie systemu, a system przerywa prace tylko na chwilę, kiedy to Ksplice zawiesza operacje, aplikuje łatki i następnie wznawia normalne przetwarzanie - prawie tak, jakby nic się nie wydarzyło.

Aplikacja ma jednak pewne ograniczenia. Jeżeli łatka wprowadza istotne zmiany, np. w sposobie przechowywania i pobierania danych przez jądro, potrzebny jest dodatkowy kod wspomagający Ksplice do wykonania takiego przejścia. Ponieważ jednak tego rodzaju zmiany są rzadkie w praktyce, Ksplice można uznać za aplikację zdolną do stosowania większości łatek bezpieczeństwa niemal z zerowym czasem wyłączenia maszyny z działania. Spróbujmy to osiągnąć z Windows czy Mac OS X!


Zobacz również