/ We know how

WebAssembly (WASM) – czy to rewolucja ukryta w przeglądarce?

Technologie mające największy wpływ na rozwój cyfrowych procesów biznesowych można podsumować jednym słowem: wydajność. Tyczy się to zarówno rozwiązań związanych z automatyzacją procesów, w tym z udziałem RPA i Chmury, jak i wszelkich metod mających na celu zwiększenie dostępności do aplikacji. Jednym z najpopularniejszych obecnie sposobów jest zaś wykorzystanie przeglądarek internetowych wspomaganych przez maszyny wirtualne, takie jak np. WebAssembly.

 

 

WebAssembly (WASM) – definicja

 

WebAssembly (lub WASM) to niezależny od języka i platformy format kodu binarnego. Może on zostać wykonany po stronie klienta, w jego przeglądarce (z użyciem interfejsu API sieci Web) lub na maszynie wirtualnej. Wydajność WebAssembly jest zbliżona do natywnej, zaś sam standard zachowuje kompatybilność z istniejącymi ekosystemami. Co więcej, pliki binarne zajmują naprawdę niewiele miejsca (czasem są to pojedyncze kilobajty). Nie jest to bez znaczenia, jeśli w grę wchodzą urządzenia mobilne, ograniczone mocą baterii.

 

Choć technologia ta jest stosunkowo młoda (jej premiera miała miejsce w 2017 roku), nietrudno o znalezienie przykładów WebAssembly w sieci. Jednym z nich jest program AutoCAD firmy Autodesk, który jest wykorzystywany do dwuwymiarowego i trójwymiarowego komputerowego wspomagania projektowania. Wpisując w wyszukiwarkę frazę „WebAssembly demo” można z kolei sprawdzić m.in. jak WASM współpracuje z JavaScript oraz przekonać się, że na ogół działa szybciej (od 10 do nawet 800%).

 

Bardzo dobrze spisuje się także główny framework. Blazor WebAssembly pozwala bowiem nie tylko uruchomić np. C#, ale i w łatwy sposób manipulować DOM przeglądarki, dzięki czemu stanowi konkurencję chociażby dla Angular. Aplikacja może być też aktywowana po stronie serwera.

 

 

Jakie są zalety korzystania z WASM? Bezpieczeństwo WebAssembly (WASM)

 

WASM został stworzony z myślą o osiągnięciu prawie natywnych prędkości. Jest przy tym czytelny, bezpieczny i łatwy do debugowania. Do niewątpliwych zalet należy też wspomniana już niezależność językowa i platformowa – WebAssembly działa we wszystkich najpopularniejszych przeglądarkach (Mozilla Firefox, Google Chrome, Safari oraz Edge). To samo tyczy się sprzętu.

 

Koszt opracowania i utrzymania samego oprogramowania również będzie niski. Wynika to z faktu, że dystrybucja aplikacji ogranicza się do przeglądarki i jednocześnie obejmuje wszystkie możliwe systemy operacyjne. Przejście z opcji desktopowej na webową także nie będzie wiązało się z dużymi wydatkami z uwagi na to, że można wykorzystać już istniejący kod. Sam format jest zaś rozwiązaniem typu open-source.

 

 

Czy istnieją duże wady korzystania z WASM?

 

Należy jednak pamiętać, że WebAssembly jest technologią stosunkowo nową i posiada jeszcze pewne ograniczenia, które utrudniają podjęcie decyzji o jej wdrożeniu. Należą do nich m.in.:

 

  • brak bezpośredniego dostępu do internetowych interfejsów API,
  • brak wielowątkowości,
  • brak obsługi wyjątków,
  • brak funkcji tzw. odśmiecania pamięci,
  • brak wsparcia przez starsze przeglądarki.

 

 

Do czego używane jest WebAssembly? Przykłady użycia WebAssembly

 

Technologia WebAssembly skupia się głównie na zadaniach mocno obciążających procesor. Może być więc z powodzeniem stosowana w przypadku:

 

  • gier,
  • streamowania i edycji zdjęć oraz plików audio i wideo,
  • sztucznej inteligencji,
  • uczenia maszynowego, które nierzadko stanowi nieodzowną część automatyzacji wprowadzania danych,
  • wirtualnej i rozszerzonej rzeczywistości,
  • aplikacji P2P,
  • rozwiązań IoT, których sercem jest najczęściej Chmura,
  • progresywnych aplikacji webowych,
  • rozszerzania aplikacji desktopowych o wersje webowe,
  • aplikacji mobilnych,
  • modernizacji starszych aplikacji (stworzonych np. w Silverlight).