Niedługo miną dwa lata od oficjalnego wdrożenia serwisu OnetLajt, a historia prac nad prototypem serwisu sięga roku 2005. Warto o tym trochę więcej napisać, bo o ile sam serwis cieszy się sporym uznaniem to chyba bardzo mało wiadomo na temat zarówno genezy serwisu jak i technologii, jaka stoi z tyłu.

Pierwsze podejście – WAP 1.0

Warto wspomnieć, że pierwsze podejście do technologii internetu w telefonach Onet miał dużo wcześniej, w okolicach roku 2000-2001. Wtedy powstał serwis wap.onet.pl, mało tego – korzystając z boomu technologii WAP i tego, że pojawiały się w sieci serwisy w tej technologii, zaoferowaliśmy naszym użytkownikom „odwapiacz” – czyli coś w rodzaju emulatora komórki, za pomocą którego można było oglądać serwisy WAP w zwykłej przeglądarce (prawdopodobnie sam odwapiacz działał jako applet javy).

Trzeba przyznać, że było to dość kuriozalne – firmy robiły specjalne serwisy dostosowane do korzystania z nich za pomocą telefonu komórkowego, a my zrobiliśmy usługę umożliwiającą korzystanie z nich za pomocą komputera. Ale też trzeba przypomnieć, że wtedy opłaty za transfer danych przez komórkę były horrendalne i nasz odwapiacz dawał użytkownikom możliwość posmakowania jak ta usługa wygląda, bez narażania się na zawał przy odbiorze rachunku za komórkę.

Przypuszczam, że każdy kto spróbował korzystania z WAP 1.0 bardzo szybko przekonał się że nie ma w tym nic ekscytującego. Malutkie ekrany, mieszczące kilkadziesiąt znaków, jednobitowy kolor (czyli zwykle piksel czarny lub zielony do wyboru), takie same bitmapy (jednobitowe!) i do tego opłaty, które czyniły rzeczywiste korzystanie z tych serwisów – na prawdziwym telefonie – rozrywką dla bogaczy, to wszystko sprawiło że technologia praktycznie się nie przyjęła i bardzo szybko moda na WAP przeminęła.

Drugie otwarcie

W okolicy roku 2005 powoli zaczęto przebąkiwać że może czas wrócić do tematu internetu w komórce. Telefony były już trochę lepsze, pojawiły się smartfony, Windows CE (zwane później Windows Mobile) miało już wersję 5.0. Mimo wszystko było sporo wątpliwości – porażka WAP 1.0 wiele osób nastawiła bardzo negatywnie do całej koncepcji.

Ostatecznie projekt jednak ruszył, nie bez znaczenia bylo wsparcie ze strony Prezesa Onetu, który od zawsze był miłośnikiem nowinek technologicznych, oraz nowego dyrektora IT – Pawła Leżańskiego, który wcześniej zajmował stanowisko prezesa DrQ, firmy mającej duże doświadczenie we współpracy z operatorami telefonii kommórkowej. To właśnie Paweł wymógł na piszącym te słowa kierującym podówczas działem R&D, przygotowanie prototypu serwisu, który początkowo składał się po prostu z gorących wiadomości ze strony głównej – z kilku podstawowych działów tematycznych.
Zanim jednak powstał prototyp, musieliśmy podjąć decyzję co do wykorzystywanej technologii.

Technologia

Kluczowe w serwisach takich jak OnetLajt jest dostosowanie treści do urządzenia, na którym będzie wyświetlana. Po pierwsze, urządzenia mają różne funkcjonalności – różne rozmiary ekranu, różną ilość kolorów, różne czcionki do wyboru, niektóre umieją wyświetlać tabelki, jeszcze inne poprawnie obsługują CSS, ale są i takie gdzie trzeba sobie radzić przy bardzo ograniczonych funkcjach przeglądarki.

Dodatkowo, nawet gdy potrafimy tworzyć różne wersje serwisu z różnymi parametrami, pozostaje kwestia jak rozpoznać, jakie parametry ma urzędzenie, które właśnie prosi nas o stronę. Istnieje (lub może raczej istniało) kilka standardów, mających na celu przekazywanie informacji o parametrach urządzeń, wykorzystujących różne pola w nagłówkach zapytania HTTP. Problem w tym, że tam gdzie mamy więcej niż jeden standard, tam tak naprawdę standardu nie mamy. Szczególnie, że jak się okazało – bardzo wiele urządzeń nie stosuje żadnego z tych standardów.

W tej sytuacji aby rozpoznać urządzenie zdecydowaliśmy się opierać wyłącznie na polu User-Agent: które można faktycznie uznać za standard – nie spotkałem się jak do tej pory z urządzeniem ani przeglądarką, która by takiego pola nie dodawała do każdego zapytania. Apropos przeglądarek – trzeba pamiętać że oprócz tego że mamy tysiące urządzeń wyposażonych w przeglądarki internetowe, to jakby tego było mało często jedno urządzenie umożliwia korzystanie z kilku przeglądarek – np. na większość telefonów komórkowych można zainstalować przeglądarkę Opera Mini. Na szczęście zazwyczaj przeglądarka oprócz tego, że się przedstawia, to dopisuje do nagłówka User-Agent informacje o urządzeniu na którym pracuje – co umożliwia dostosowanie strony do jego parametrów.

Oczywiście od rozpoznania urządzenia do informacji o jego możliwościach jeszcze daleka droga. Tutaj na szczęście przyszło nam z pomocą gotowe rozwiązanie – znaleźliśmy dostępną na otwartej licencji bazę dnych o parametrach urządzeń o nazwie WURFL. Jest to projekt, będący odpowiedzią na problemy z jakimi jak widać nie tylko my się borykaliśmy. Baza ta zawiera z jednej strony zestaw kilkudziesięciu atrybutów określających parametry urządzeń, z drugiej wzorce pola User-Agent, umożliwiajace powiązanie tego co podaje nam przeglądarka z rekordem zawierającym wartości dla wszystkich parametrów. Dodatkowo baza jest zbudowana hierarchicznie (trochę na zasadzie CSS) co ułatwia jej tworzenie i aktualizację – jeżeli np. firma wypuszcza na rynek nowy model telefonu, to wystarczy albo znaleźć opis ogólny np. dla danej serii i zdefiniować tylko te parametry, które nie są tam zdefiniowane – albo np. wyjść od innego telefonu o możliwie zbliżonych parametrach i zdefiniować różnice.

Ważne też jest to, że baza WURFL tworzona jest przez całe środowisko, dzięki czemu nowe modele telefonów są tam bardzo szybko dopisywane, często jeszcze zanim pojawią się na rynku.
Pozostało nam zatem dopisać serwer aplikacyjny udostępniający funkcję odczytu parametrów na podstawie danej wartości parametru User-Agent i mogliśmy już przystąpić do prac nad serwisem – na początek wiadomościami.

Prototyp

Pierwsze wersje OnetLajt były mocno ograniczone jeżeli chodzi o dostosowywanie do urządzeń. Niestety nie zachował się kod źródłowy z tamtego okresu, ale z tego co pamiętam, mieliśmy 3 lub 4 wersje strony – na podstawie parametrów z bazy WURFL następował wybór jednej z tych wersji (np. „xhtml w szerokości 180px”, albo „html szerokości 320px”). Były to wersje robione pod konkretne modele telefonów – zazwyczaj takie, które były w posiadaniu kadry zarządzającej naszych spółek. Bo warto zaznaczyć, że pierwszymi użytkownikami naszego serwisu były właśnie zarządy spółek, co niewątpliwie nadało projektowi dużego priorytetu (pamiętam też sytuację, gdy ściągaliśmy specjalnie z Zurychu telefon, który był nie do dostania w Polsce a używał go jeden z członków naszej rady nadzorczej – i miał na nim problemy z naszym serwisem).

Jako ciekawostkę wspomnę, że początkowo przygotowaliśmy też wersję w formacie WML (WAP 1.0), ponieważ jeden z dyrektorów IT miał wtedy starą dobrą Nokię 6310i, która wymagała tego formatu. Tak się jednak złożyło, że na kilka dni przed ukończeniem wersji WML Janusz dostał nowy telefon (coś z Windows CE), zatem straciliśmy jedynego użytkownika i format WML, ze względu na bardzo ograniczone możliwości, został szybko zarzucony.

Ten etap projektu to był typowy „proof of concept”, czyli celem było pokazanie że się da to zrobić i że produkt rzeczywiście jest atrakcyjny dla użytkowników. Przy czym jak widać, celowaliśmy głównie w użytkownika biznesowego. Efekt został osiągnięty w 120% – każdy kto raz skorzystał z serwisu pozostawał jego stałym użytkownikiem, a każda przerwa w działaniu serwisu (w końcu był to prototyp) powodowała masę telefonów do zespołu. Pojawiały się też wnioski o rozbudowę dostępnych usług (przypominam – początek to po prostu zestaw gorących newsów).

W tej sytuacji mogliśmy zakończyć prace nad prototypem i przymierzyć się do bardziej dojrzałej wersji serwisu, przeznaczonej do udostępnienia wszystkim użytkownikom internetu. Ale o tym, napiszę w następnym odcinku :)

Piotr Piątkowski
Knowledge Manager