Architektura systemu operacyjnego Windows Phone 7 z perspektywy aplikacji « Pabloware + Windows Phone

Pabloware + Windows Phone

Niezależny blog firmy Pabloware o systemie Windows® Phone 7

Architektura systemu operacyjnego Windows Phone 7 z perspektywy aplikacji

Architekturę systemu operacyjnego Windows Phone 7 można z punktu widzenia budowania aplikacji pod ten system podzielić na kilka podstawowych obszarów, które zostaną omówione w tym wpisie.

Architektura systemu operacyjnego z perspektywy aplikacji

Jądro

Jądro Windows Phone 7 bazuje na jądrze Windows CE 6.0, w stosunku do którego zostało wzbogacone m.in. o stronicowanie pamięci oraz o warstwy bezpieczeństwa, sieci i przechowywania danych. W jego skład wchodzą także sterowniki do wymienionych w poprzednim wpisie czujników telefonu oraz do multimediów i Wi-Fi.

Model aplikacji

Model aplikacji Windows Phone 7 cechuje:

  • znany z technologii Silverlight i XNA format pliku XAP, zawierający całą aplikację (są to pliki DLL oraz manifest i zasoby, w tym ikona aplikacji, skompresowane w formacie ZIP);
  • licencjonowanie z wykorzystaniem usługi Marketplace (użytkownik końcowy nie może zainstalować aplikacji inaczej, niż poprzez usługę Marketplace, aczkolwiek w wersji 7.1 za jej pośrednictwem można będzie dystrybuować aplikacje także do zamkniętego kręgu odbiorców), ponadto kod każdej aplikacji (oczywiście skompilowany do pośredniego języka Common Intermediate Language, CIL platformy .NET) jest przed jej umieszczeniem w usłudze Marketplace sprawdzany przez firmę Microsoft, a następnie podpisywany cyfrowo;
  • aktualizacje aplikacji zawsze zatwierdzane przez użytkownika w usłudze Marketplace, chociaż poza tym będące całkowicie zautomatyzowane;
  • izolacja każdej aplikacji w piaskownicy, przy czym autorzy systemu używają terminu „komora”, ang. chamber – są, bowiem cztery typy komór, a aplikacje (pochodzące spoza firmy Microsoft) znajdują się w komorach o najmniejszych przywilejach (LPC, ang. Least Privileged Chamber) co oznacza, że każda aplikacja nie ma dostępu do plików każdej innej aplikacji (oczywiście poza swoimi), zarówno jeśli chodzi o pliki uruchomieniowe, jak i pliki danych (ani używanej przez nią pamięci operacyjnej), nie ma także dostępu do plików systemu operacyjnego, co ma zapewnić bezpieczeństwo;
  • w wersji 7.1 zapowiadana jest możliwość współdzielenia danych między aplikacjami za potwierdzeniem użytkownika, ale w praktyce na razie ma to być jedynie odczyt danych z dwóch aplikacji systemowych: kontaktów i kalendarza, więc jedynym miejscem integracji danych pozostaje chmura.

Model interfejsu użytkownika

Model interfejsu użytkownika Windows Phone 7 dziedziczy po sieci WWW sposób nawigacji w historii pomiędzy stronami aplikacji (za co odpowiedzialna jest warstwa powłoki systemu), z zastrzeżeniem, że nie jest możliwe przechodzenie wprzód w historii, można się tylko cofać. Związany z tym sposób przechodzenia między aplikacjami ma zapewnić wrażenie spójności aplikacji i systemu operacyjnego. Ponadto podzielenie funkcjonalności aplikacji na niewielkie obszary (strony) umożliwia, bardziej adekwatne do możliwości, dysponowanie ograniczonymi zasobami telefonu komórkowego.

Pomocny w takim sposobie nawigacji jest wątek Kompozytora (ang. Composer). Jest to wątek o wysokim priorytecie, odpowiedzialny za rendering (choć w wersji 7.1 odpowiadać będzie także za obsługę dotyku, co ma przyspieszyć czas reakcji telefonu na dotyk). Ten wspólny wątek renderingu umożliwia tworzenie płynnych animacji przejść między aplikacjami i ponieważ jest niezależny od głównego wątku aplikacji (zwanego wątkiem interfejsu użytkownika), zapewnia płynność raz uruchomionych animacji w aplikacjach.

Wątek Kompozytora (podobnie jak cały system) do renderingu wykorzystuje procesor karty graficznej, bo jak wspomniano w poprzednim wpisie, do minimalnych wymagań sprzętowych systemu należy GPU zgodny z DirectX 9. Zdaniem autora, niesie to oczywiście tę samą korzyść, jak na komputerach PC, na których wykorzystanie GPU pozwala odciążyć CPU. Jest to szczególnie istotne, jeśli weźmiemy pod uwagę, że na telefonach komórkowych czas CPU jest jeszcze cenniejszy.

Integracja z chmurą

System Windows Phone 7 w odróżnieniu od Windows Mobile 6 nie umożliwia obecnie synchronizacji danych z komputerem PC poprzez USB ani bluetooth, w związku z tym możliwa jest jedynie synchronizacja poprzez usługi w chmurze. Jest to przykład, jak ważna jest dla tego systemu chmura. Świadczy o tym również udostępnienie aplikacjom integracji z usługami takimi jak:

  • notyfikacje typu „pchnij” (ang. push notifications), które pozwalają zmniejszyć zużycie baterii, w sytuacji, gdy aplikacja musiałaby periodycznie sprawdzać, czy na serwerze dostępne są nowe dane (usługa wykorzystuje do tego celu serwer pośredniczący firmy Microsoft, do którego powinien zostać, jako zapytanie, wysłany sygnał o dostępności nowych danych, który to sygnał jest następnie przekazywany do aplikacji);
  • lokalizacja, która wykorzystując Wi-Fi pozwala uzyskać informację o lokalizacji szybciej, niż z systemu AGPS (wynika z tego, że łącznie system korzysta z trzech faktycznych źródeł informacji o lokalizacji: GPS, sieć komórkowa i Wi-Fi);
  • wyszukiwarka i mapy bing, dla których dostępne są kontrolki mapy oraz API wyszukiwarki;
  • Windows Live ID, będąca usługą logowania znaną również pod nazwą .NET Passport;
  • Xbox LIVE, użyteczna w zakresie np. wymiany danych o wynikach gry na koncie użytkownika.

Środowisko uruchomieniowe aplikacji

W systemie Windows Phone 7 środowisko uruchomieniowe aplikacji bazuje na znanej z .NET Framework bibliotece uruchomieniowej CLR (ang. Common Runtime Library). Jednakże nie są oczywiście dostępne wszystkie języki platformy .NET. Jedynym językiem, w którym obecnie można pisać aplikacje jest język C#. Natomiast w wersji 7.1 dodatkowo dostępny będzie język VB.NET.

W skład środowiska uruchomieniowego wchodzą również dwie biblioteki odpowiedzialne za renderowanie interfejsu użytkownika aplikacji: Silverlight i XNA (opisane już w poprzednim wpisie). Ponadto trzecim elementem, na którym można budować interfejs użytkownika jest tandem HTML i JavaScript, renderowany przez wbudowaną w system przeglądarkę Internet Explorer 8, dostępną dla aplikacji jako komponent, podobnie jak ma to miejsce w biurkowej wersji Windows (w Windows Phone 7.1 będzie to wersja 9 przeglądarki, wyposażona w obsługę sprzętowego renderingu HTML 5).

Kolejnym składnikiem środowiska uruchomieniowego aplikacji są podstawowe API systemu operacyjnego, dające dostęp do obszarów takich, jak np.: wyposażenie telefonu, akcja tworzenia nowej wiadomości e-mail w systemowym programie pocztowym, i in. (w wersji 7.1 API mają być jeszcze znacząco rozbudowane, np. o obsługę wielozadaniowości). Oczywiście jest dostępna również najbardziej podstawowa biblioteka Base Class Library (BCL), wspólna z innymi platformami .NET, co zapewnia przenośność skompilowanego kodu między tymi platformami, pod warunkiem, że kod ten ogranicza się do obszarów niezwiązanych z konkretnym systemem operacyjnym (np. klasy danych aplikacji).

Środowisko uruchomieniowe aplikacji pozwala w wersji 7.0 systemu przechowywać dane w formie dowolnych plików, umieszczonych w wydzielonym dla każdej aplikacji obszarze, poprzez API Isolated Storage, które w podobnej formie znane jest z technologii Silverlight. Natomiast w wersji 7.1, system dodatkowo udostępnia obsługę danych strukturalnych, poprzez wbudowany silnik bazodanowy SQL Server CE (z dołączonym ORM, umożliwiającym obsługę zapytań LINQ to SQL, ale bez obsługi bardziej rozwiniętej technologii Entity Framework).

No Responses to “Architektura systemu operacyjnego Windows Phone 7 z perspektywy aplikacji”

Kanał RSS z komentarzami do tego wpisu. TrackBack URL

Leave a Response