Supersynchronizacja

Przez dziesięciolecia patrzący w przyszłość technolodzy i wizjonerzy zakładali, że technologia doprowadzi do powstania pewnego rodzaju elektronicznej Biblioteki Aleksandryjskiej. W tym scenariuszu ogromne banki danych byłyby scentralizowanymi narzędziami informacyjnymi, do których dostęp zapewniałyby tanie, szybkie i wszechobecne źródła danych. Na przykład w Star Trek członkowie załogi korzystali z sieci bezprzewodowej, aby połączyć swoje trikordery z komputerem pokładowym statku kosmicznego Enterprise — tym magazynem wszystkich interesujących i istotnych rzeczy. A pierwotny Internet został stworzony nie po to, by rozpowszechniać informacje, ale jako ogromny system zdalnego dostępu, umożliwiający naukowcom w jednym miejscu dostęp do komputerów znajdujących się gdzie indziej. Nawet rok 1984 George'a Orwella przewidywał świat, w którym zapisy wiadomości i bieżących wydarzeń były przechowywane w stosunkowo niewielu miejscach; w ten sposób Winston Smith był w stanie zredagować przeszłość, aby oświadczenia Wielkiego Brata nigdy nie były błędne.





Ale rzeczywistość zmierza w innym kierunku. Zamiast wszechobecnej łączności ze scentralizowanymi bankami danych, zamiast tego budujemy infrastrukturę zoptymalizowaną pod kątem danych replikacja . Te same informacje są kopiowane do dziesiątek, setek, a nawet tysięcy miejsc na całym świecie i są utrzymywane na bieżąco dzięki ciągłym retransmisjom i aktualizacjom. Ludzie instynktownie działają w ten sposób – dlatego osoby współpracujące nad projektem mają tendencję do wymiany dokumentów za pośrednictwem poczty e-mail, zamiast umieszczania ich na centralnym serwerze. W końcu czasami jesteśmy połączeni z jednym z tych repozytoriów danych w szybkiej sieci, czasami jesteśmy połączeni w wolnej sieci, a czasami nie jesteśmy połączeni w ogóle. Ludzie lubią mieć własne kopie, a następnie aktualizować je na bieżąco, odwołując się do niezwykle potężnej koncepcji zwanej synchronizacją.

Przyszłość telewizji

Ta historia była częścią naszego wydania z listopada 2001 r.

  • Zobacz resztę numeru
  • Subskrybuj

Synchronizacja — skrót od synchronizacji — polega na tym, aby móc pobierać dane z jednego miejsca i inteligentnie je kopiować tam, gdzie mogą być potrzebne. A co najważniejsze, synchronizacja polega na śledzeniu zmian. Dobry system synchronizacji pozwala Tobie lub innym osobom na swobodne edytowanie oryginalnego dokumentu lub kopii, a następnie automatyczne rozpowszechnianie zmian wszędzie tam, gdzie są potrzebne. Najlepsze z tych systemów śledzą zmiany w miarę ich wprowadzania i umożliwiają zaawansowane cofanie — na przykład przywracanie danych do stanu z określonego dnia lub usuwanie wszystkich zmian wprowadzonych przez określonego autora. Synchronizacja nie jest nowym pomysłem, ale dopiero niedawno zaczęła się pojawiać jako kluczowa część sposobu, w jaki systemy komputerowe są uruchamiane. Technologia synchronizacji naprawdę nada ton przyszłym informacjom.



Obecnie wiodącą platformą synchronizacji jest system operacyjny Palm, który chwaliłem w przeszłości. W rzeczywistości jednym z głównych powodów popularności Palm jest technologia HotSync. Użytkownicy Palm mogą dodawać, usuwać lub zmieniać swoje książki adresowe, kalendarze spotkań lub inne bazy danych na swoich komputerach stacjonarnych lub komputerach z procesorami Palm. Włóż Palmę do podstawki i naciśnij przycisk HotSync, a zmiany zostaną automatycznie zreplikowane na drugim komputerze.

Ale HotSync na tym się nie kończy. Możesz na przykład zsynchronizować wiele komputerów stacjonarnych z tym samym Palmem, umożliwiając osobom w domu i pracy dostęp do Twojego kalendarza i aktualizowanie go — nawet jeśli nie ma między nimi połączenia sieciowego. Wszystko, co musisz zrobić, to nosić Palmę tam iz powrotem między domem a biurem, synchronizując się w obu lokalizacjach; inteligentne oprogramowanie zajmie się resztą. Jeśli zapomnisz zsynchronizować, to żaden problem — następnym razem system automatycznie się dostosuje.

Oczywiście technologia synchronizacji wykracza daleko poza Palmę i znacznie wykracza poza komputer stacjonarny jednej osoby. Program synchronizujący o nazwie Concurrent Versions System jest podstawą wielu udanych projektów rozwoju oprogramowania, od małych korporacji, w których kilku programistów pracuje nad tym samym projektem, po wielkoskalowe wspólne działania typu open source, w których biorą udział setki lub tysiące programistów. Technologia ta umożliwia pracę wielu osób jednocześnie nad tym samym programem. Każdy programista posiada osobistą kopię opracowywanego oprogramowania. Programista, który dodaje nową funkcję lub naprawia błąd, może zatwierdzić tę zmianę w repozytorium projektu. Inni programiści – albo w korytarzu, albo na całym świecie – mogą następnie zaktualizować swoje kopie i automatycznie zastosować zmiany. Kiedyś więcej niż jedna osoba pracowała nad jednym programem w tym samym czasie. Ale teraz równoczesny rozwój i naprawianie błędów to raczej reguła niż wyjątek. System Concurrent Versions System, oparty na koncepcji synchronizacji, znacznie przyspieszył rozwój oprogramowania.



Dla programistów open source, którzy chcą konkurować z oprogramowaniem komercyjnym, synchronizacja była zarówno przekleństwem, jak i błogosławieństwem. Niezwykle trudno jest zaprojektować aplikacje, które synchronizują się prawidłowo. Zaawansowane systemy synchronizacji wbudowane w komercyjne oprogramowanie bazodanowe, takie jak Oracle, umożliwiają budowanie ogromnych farm baz danych poprzez łączenie ze sobą dużej liczby zsynchronizowanych serwerów. Jak dotąd wiodące bazy danych typu open source, takie jak PostgreSQL i MySQL, zapewniają jedynie ograniczoną obsługę synchronizacji baz danych. Systemy open-source prawdopodobnie wkrótce nadrobią zaległości, ale technologia jest z natury trudna do opracowania.

Czasami synchronizowane źródło informacji jest ruchomym celem. Rozważ Usenet, oryginalny globalny system tablic ogłoszeń. Kiedy łączą się dwa serwery Usenet, zasadniczo synchronizują swoje artykuły. Jeśli artykuł znajduje się na jednym komputerze, ale nie na drugim, wykonywana jest kopia w celu wyeliminowania rozbieżności. W 1991 roku John Gilmore, jeden z założycieli Electronic Frontier Foundation, powiedział, że Usenet interpretuje cenzurę jako szkody i omija ją. Miał na myśli to, że każda uczelnia lub firma, która nie lubi artykułów publikowanych w Usenecie, może je usunąć ze swojego serwera, ale ponieważ artykuły przepływają przez sieć jako całość, żadna instytucja nie może zablokować dostępu informacji do świata .

W ostatnich latach wielu dziennikarzy reinterpretowało cytat Gilmore'a jako odnoszący się do Internetu, a nie Usenetu. Niestety zarówno dla Gilmore'a, jak i dla sprawy wolności słowa, ta zmiana sprawia, że ​​cytat jest niedokładny. Gdy artykuły są publikowane ze strony internetowej, zamiast przez Usenet, są one rzeczywiście dystrybuowane z centralnej lokalizacji – i ta centralna lokalizacja może podlegać cenzurze lub innym formom nacisku politycznego.



Operacje wymiany plików online, takie jak Napster i Gnutella, to tak naprawdę tylko bardzo duże usługi synchronizacji. Użytkownicy mają własne wizje tego, jakiej muzyki lub innych plików chcą, i synchronizują się i synchronizują, dopóki nie będą zadowoleni. W tym przypadku synchronizacja nie dotyczy pojedynczego pliku, ale kolekcji. Wyniki są jednak prawie takie same.

Pobieranie muzyki z usługi udostępniania plików zasadniczo różni się od pobierania informacji przez Internet. W przypadku sieci bardzo niewielu czytelników przechowuje i rozpowszechnia własne, długoterminowe kopie. To dlatego Napster i jego potomkowie zagrażają przemysłowi muzycznemu; Jak pokazał Usenet, powstrzymanie rozprzestrzeniania się danych przez system synchronizacji na dużą skalę może być niezwykle trudne. Rzeczywiście, jedną z wielkich zalet synchronizacji jest nadmiarowość: nawet jeśli kopia główna zostanie skasowana, synchronizacja niezmiennie pozostawia wiele innych kopii. Zjawisko to utrudnia osobom postronnym usuwanie lub kontrolowanie informacji udostępnianych przez synchronizację.

Zrozumienie zastosowań i mocy synchronizacji ma kluczowe znaczenie dla dokładnego przewidywania kierunku, w jakim Internet i handel elektroniczny prawdopodobnie będą się rozwijać. Większość ludzi lubi bezpieczeństwo, jakie daje posiadanie danych w wielu lokalizacjach, oraz szybkość, jaką daje natychmiastowy dostęp do danych na własnych komputerach. Dlatego produkty i usługi oferujące synchronizację będą prawdopodobnie lepiej radzić sobie na rynku niż usługi o podobnej cenie, które oferują szybki dostęp do danych przechowywanych w systemach zdalnych. Ludzie nie chcą po prostu korzystać ze strumienia danych; chcą mieć własną kopię informacji i chcą, aby były one aktualizowane. Ma to szerokie konsekwencje dla wszystkiego, od wideo na żądanie po bankowość domową. Od lat zajmuję się tzw. bankowością internetową z oprogramowaniem Quicken firmy Intuit: co kilka dni pobieram przez Internet najnowsze transakcje i poprawki mojego konta i dodaję je do mojego rejestru. Mój bank umożliwia mi również przeglądanie całego mojego wyciągu w Internecie. Czy zrezygnowałbym z samodzielnego pobierania transakcji? Nie w twoim życiu - czuję się bezpieczniej, mając własną kopię.



Synchronizacja ma również sens ekonomiczny. Dzięki synchronizacji nie jesteś tak bardzo zależny od drogiego, zawsze aktywnego i szybkiego połączenia sieciowego. Ten sam efekt można uzyskać dzięki lokalnej pamięci masowej i powolnym, a nawet przerywanym połączeniom sieciowym. Synchronizacja naprawdę odzwierciedla sposób, w jaki zbudowano świat, w przeciwieństwie do tego, jak myśleli eksperci i inżynierowie.

W rzeczywistości nawet Biblioteka Aleksandryjska została zbudowana dzięki synchronizacji. Każdy statek, który zawinął do Aleksandrii, był przeszukiwany w poszukiwaniu zwojów: jeśli jakieś zostały znalezione, statek nie mógł odpłynąć, dopóki zwoje nie zostały skopiowane. Niestety, setki tysięcy zwojów biblioteki zostały utracone, gdy zostały spalone przez Juliusza Cezara w 47 roku p.n.e., ponieważ nie zsynchronizowały kopii zapasowej.

ukryć