Tutustu WebAssembly WASI Socketsin tehoon standardoidussa, turvallisessa ja alustariippumattomassa verkkokommunikaatiossa, joka mahdollistaa siirrettävät sovellukset selaimen ulkopuolella.
WebAssembly WASI Sockets: Turvallisen ja siirrettävän verkkokommunikaation mahdollistaminen
Tietojenkäsittelyn maailma suosii yhä enemmän siirrettävyyttä ja tietoturvaa. Vaikka WebAssembly (Wasm) on mullistanut suorituksen selaimessa, sen potentiaali ulottuu paljon verkon rajoja pidemmälle. WebAssembly System Interface (WASI) on avain, joka avaa tämän laajemman potentiaalin, ja WASI:n sisällä nouseva socket-rajapinta on valmis muuttamaan tapamme lähestyä verkkokommunikaatiota siirrettävissä sovelluksissa.
Tämä kattava opas syventyy WebAssembly WASI Socketsin yksityiskohtiin, tutkien niiden peruskäsitteitä, etuja, käyttötapauksia ja tulevaisuutta, jota ne edustavat kehittäjille maailmanlaajuisesti. Navigoimme standardoitujen verkkorajapintojen maisemassa, ymmärrämme tietoturvavaikutukset ja tarjoamme käytännön näkemyksiä tämän tehokkaan teknologian integroimiseksi projekteihisi.
WebAssemblyn evoluutio ja järjestelmärajapintojen tarve
Alun perin WebAssembly suunniteltiin keinoksi tuoda korkean suorituskyvyn koodia verkkoselaimeen, mutta se on kehittynyt monipuoliseksi binääriseksi käskyformaatiksi. Sen keskeiset edut – nopeus, tietoturva ja kieliriippumattomuus – tekevät siitä houkuttelevan kohdekielen käännettäväksi laajasta joukosta ohjelmointikieliä, kuten C, C++, Rust, Go ja monet muut.
Jotta Wasm-moduulit voivat kuitenkin olla vuorovaikutuksessa alla olevan käyttöjärjestelmän kanssa ja suorittaa järjestelmätason tehtäviä, kuten tiedostojen I/O:ta tai verkkokommunikaatiota, tarvittiin standardoitu rajapinta. Tässä kohtaa WASI astuu kuvaan. WASI tarjoaa modulaarisen järjestelmärajapinnan, jonka avulla Wasm-moduulit voivat olla vuorovaikutuksessa isäntäympäristöjen kanssa turvallisella ja ennustettavalla tavalla, riippumatta alla olevasta käyttöjärjestelmästä tai laitteistosta.
Miksi WASI on elintärkeä verkkokommunikaatiolle
Verkkokommunikaatio on perustavanlaatuinen vaatimus useimmille nykyaikaisille sovelluksille. Perinteiset lähestymistavat sisältävät usein käyttöjärjestelmäkohtaisia API-rajapintoja (kuten Berkeley-soketit Unix-tyyppisissä järjestelmissä tai Winsock Windowsissa) tai kielikohtaisia kirjastoja. Tämä johtaa:
- Siirrettävyyden puute: Yhden käyttöjärjestelmän verkkopinoa varten kirjoitettu koodi vaatii usein merkittäviä muutoksia toimiakseen toisessa.
- Tietoturvahuolenaiheet: Suora pääsy raakoihin verkkosoketteihin voi aiheuttaa haavoittuvuuksia, jos sitä ei hallita huolellisesti.
- Toimittajalukko: Tiettyihin kirjastoihin tukeutuminen voi luoda riippuvuuksia, joista on vaikea irtautua.
- Monimutkaisuus: Eri verkkoprotokollien ja -konfiguraatioiden hallinta eri alustoilla lisää kehityksen monimutkaisuutta.
WASI pyrkii abstrahoimaan nämä monimutkaisuudet tarjoamalla kyvykkyyspohjaisen tietoturvamallin ja standardoidun joukon rajapintoja. Verkkokommunikaation osalta tämä tarkoittaa tavan määrittämistä, jolla Wasm-moduulit voivat aloittaa ja hallita yhteyksiä ilman tarvetta tuntea alla olevan käyttöjärjestelmän toteutuksen yksityiskohtia.
Esittelyssä WebAssembly WASI Sockets
WASI Socket -ehdotus, jota usein kutsutaan nimellä WASI-Sockets tai sen taustalla olevat ehdotukset, kuten WASI-Network, pyrkii standardoimaan verkko-I/O:n WebAssembly-moduuleille. Ydinidea on määrittää joukko funktioita, joita Wasm-moduulit voivat kutsua suorittaakseen verkkotoimintoja, kuten:
- Verkkosokettien luominen (TCP, UDP).
- Sokettien sitominen osoitteisiin ja portteihin.
- Tulevien yhteyksien kuuntelu.
- Yhteyksien hyväksyminen.
- Yhteyden muodostaminen etäisäntiin.
- Datan lähettäminen ja vastaanottaminen.
- Sokettien sulkeminen.
Ratkaisevaa on, että WASI toimii kyvykkyyspohjaisella tietoturvamallilla. Tämä tarkoittaa, että Wasm-moduulilla ei ole luontaista pääsyä verkkoon. Sen sijaan isäntäympäristö (esim. Wasm-ajonaikainen ympäristö kuten Wasmtime tai Wasmer, tai JavaScript-ympäristö WASI-tuella) myöntää moduulille nimenomaisesti kyvykkyyksiä. Verkkoyhteyden osalta tämä tarkoittaisi luvan myöntämistä tiettyjen porttien avaamiseen tai tiettyihin osoitteisiin yhdistämiseen.
WASI Socketsin keskeiset käsitteet
Ydinkäsitteiden ymmärtäminen on elintärkeää WASI Socketsin tehon käsittämiseksi:
- Verkkokyvykkyydet: Isäntäympäristö sanelee, mihin verkkoresursseihin Wasm-moduuli voi päästä käsiksi. Tämä hienojakoinen hallinta parantaa tietoturvaa estämällä luvattoman verkkotoiminnan.
- Standardoitu API: WASI määrittelee yhtenäisen joukon funktioita ja tietorakenteita verkkotoiminnoille, abstrahoiden pois käyttöjärjestelmäkohtaiset erot.
- Siirrettävyys: WASI Socket -tuella käännetyt Wasm-moduulit voivat toimia missä tahansa isäntäympäristössä, joka toteuttaa WASI-määrityksen, riippumatta alla olevasta käyttöjärjestelmästä.
- Tapahtumapohjainen I/O: Monet WASI-ehdotukset suosivat asynkronisia, tapahtumapohjaisia I/O-malleja, jotka ovat erittäin tehokkaita samanaikaisten verkkoyhteyksien käsittelyssä.
WASI Socketsin edut
WASI Socketsin käyttöönotto tarjoaa lukuisia etuja kehittäjille ja organisaatioille, jotka rakentavat siirrettäviä, turvallisia ja skaalautuvia sovelluksia:
1. Parannettu siirrettävyys ja alustojen välinen yhteensopivuus
Tämä on epäilemättä merkittävin etu. Wasm-moduuli, joka on suunniteltu kommunikoimaan verkon kautta WASI Socketsin avulla, voidaan ottaa käyttöön erilaisissa ympäristöissä – pilvipalvelimilla, reunalaitteilla, IoT-alustoilla ja jopa muissa käyttöjärjestelmissä – ilman muutoksia. Tämä vähentää dramaattisesti kehitys- ja ylläpitokustannuksia, jolloin tiimit voivat keskittyä ydinliiketoiminnan logiikkaan alustakohtaisten verkko-ongelmien sijaan.
Esimerkki: Kuvittele Rustilla kirjoitettu mikropalvelu, jonka on kommunikoitava tietokannan tai toisen palvelun kanssa. Käyttämällä WASI Socketsia tämä Rust Wasm -moduuli voi toimia Kubernetesin orkestroimassa säiliössä Linuxissa, Windows-palvelimella tai jopa pienessä sulautetussa laitteessa, jossa on reaaliaikainen käyttöjärjestelmä, käyttäen kaikkialla samaa verkkokoodia.
2. Vankka tietoturvamalli
WASI:n kyvykkyyspohjainen tietoturva on mullistava. Toisin kuin perinteiset sovellukset, joilla on usein oletusarvoisesti laaja verkkoyhteys, WASI-moduuleille on myönnettävä luvat nimenomaisesti. Tämä:
- Minimoi hyökkäyspinta-alaa: Haitalliset tai kompromettoituneet Wasm-moduulit eivät voi mielivaltaisesti käyttää verkkoa.
- Mahdollistaa hienojakoisen hallinnan: Isännät voivat määritellä tarkalleen, mitä portteja moduuli voi kuunnella tai mihin IP-osoitteisiin se voi yhdistää.
- Vähentää riskiä epäluotettavissa ympäristöissä: Epäluotettavan koodin ajaminen tulee huomattavasti turvallisemmaksi, kun verkkoyhteyttä valvotaan tiukasti.
Esimerkki: Serverless-ympäristössä funktion saattaa olla tarpeen hakea dataa ulkoisesta API:sta. Serverless-alusta voi myöntää Wasm-funktiolle kyvykkyyden yhdistää vain kyseisen API:n tiettyyn verkkotunnukseen, estäen sitä pääsemästä muihin internetin osiin.
3. Parempi suorituskyky ja tehokkuus
WebAssembly itsessään on suunniteltu lähes natiivitason suorituskykyä varten. Yhdistettynä tehokkaisiin WASI-rajapintoihin verkko-I/O:ta varten, Wasm-moduulit voivat saavuttaa korkean suoritustehon ja matalan latenssin. Lisäksi suuntaus kohti asynkronista I/O:ta WASI-ehdotuksissa sopii hyvin yhteen nykyaikaisten verkkopohjelmoinnin paradigmojen kanssa, mikä mahdollistaa yhden Wasm-instanssin tehokkaan monien samanaikaisten yhteyksien käsittelyn ilman perinteisten säiemallien aiheuttamaa kuormitusta.
4. Kieliriippumattomuus ja yhteentoimivuus
Kehittäjät voivat kirjoittaa verkkointensiiviset komponenttinsa haluamillaan kielillä (Rust, Go, C++ jne.), kääntää ne WebAssemblyyn ja sitten ajaa ne isäntäympäristössä. Tämä mahdollistaa:
- Olemassa olevien koodikantojen hyödyntäminen: Siirrä vanhoja verkkosidonnaisia sovelluksia tai kirjastoja siirrettävämpään muotoon.
- Monikieliset arkkitehtuurit: Rakenna monimutkaisia järjestelmiä, joissa eri komponenteista, jotka on kirjoitettu eri kielillä ja käännetty Wasmiin, voivat kommunikoida saumattomasti WASI Socketsin kautta.
Esimerkki: Python-sovellus saattaa käyttää WASI-käännettyä C++-kirjastoa korkean suorituskyvyn verkkopakettien käsittelyyn, ja molemmat komponentit ovat vuorovaikutuksessa WASI Sockets -rajapinnan kautta yhteisessä ajonaikaisessa ympäristössä.
5. Uusien käyttötapausten mahdollistaminen
Siirrettävyyden, tietoturvan ja suorituskyvyn yhdistelmä avaa ovia innovatiivisille sovelluksille:
- Reunajärjestelmät (Edge Computing): Monimutkaisten verkkopalveluiden käyttöönotto suoraan reunalaitteilla minimaalisilla ajonaikaisilla riippuvuuksilla.
- Serverless-funktiot: Erittäin suorituskykyisten, turvallisten ja siirrettävien serverless-funktioiden luominen, jotka voivat olla vuorovaikutuksessa ulkoisten palveluiden kanssa.
- Pilvinatiivit sovellukset (Cloud-Native Applications): Sellaisten mikropalveluiden rakentaminen, jotka ovat aidosti siirrettävissä eri pilvipalveluntarjoajien ja ympäristöjen välillä.
- IoT-laitteet: Verkkosovellusten kehittäminen resurssirajoitteisille laitteille, jotka vaativat tiukkaa tietoturvaa ja ennustettavaa toimintaa.
WASI Socketsin nykytila ja tulevaisuus
WASI-määritys kehittyy edelleen, ja WASI Sockets on aktiivisen kehityksen alue. Vaikka yhtä, yleisesti hyväksyttyä WASI Socket API -standardia ei vielä ole, useat ehdotukset ja toteutukset tasoittavat tietä.
Merkittäviä pyrkimyksiä ovat:
- WASI-Network: Tämä on laaja ehdotus, jonka tavoitteena on määritellä kattava verkkorajapinta WASI:lle, kattaen eri osa-alueita perussokettien lisäksi.
- Ajonaikaisympäristökohtaiset toteutukset: Wasmtime, Wasmer ja muut ajonaikaiset ympäristöt työskentelevät aktiivisesti omien toteutustensa ja ehdotustensa parissa WASI-verkkokyvykkyyksille, usein osallistuen laajempaan WASI-standardointityöhön.
On tärkeää huomata, että WASI-ekosysteemi on dynaaminen. Kehittäjien, jotka haluavat käyttää WASI Socketsia, tulisi pysyä ajan tasalla viimeisimmistä kehitysaskelista ja valitsemansa Wasm-ajonaikaisen ympäristön tukemista API-rajapinnoista.
Haasteet ja huomioon otettavat seikat
Valtavasta lupauksesta huolimatta on olemassa haasteita, jotka on otettava huomioon:
- Standardien kypsyys: WASI on vielä nuori, ja socket-rajapinnat voivat muuttua standardien kypsyessä. Tämä voi tarkoittaa, että varhaisten omaksujien saattaa joutua mukauttamaan koodiaan määritysten kehittyessä.
- Ajonaikaisympäristöjen tuki: Kaikki Wasm-ajonaikaiset ympäristöt eivät vielä täysin tue WASI-verkkokyvykkyyksiä. On ratkaisevan tärkeää varmistaa, että valitsemasi ajonaikainen ympäristö tarjoaa tarvittavat ominaisuudet.
- Työkalut ja ekosysteemi: Vaikka WASI Socketsin ympärillä olevat työkalut kehittyvät nopeasti, ne ovat vielä vähemmän kypsiä kuin vakiintuneiden verkkokehysten työkalut.
- Virheenjäljitys (Debugging): Verkkongelmien virheenjäljitys Wasm-ympäristössä voi joskus olla monimutkaisempaa kuin perinteisten natiivisovellusten virheenjäljitys.
Käytännön esimerkkejä ja käyttötapauksia
Tutkitaan joitakin käytännön skenaarioita, joissa WASI Sockets loistavat:
1. Siirrettävän verkkopohjaisen mikropalvelun rakentaminen
Kuvittele luovasi Rustilla mikropalvelun, joka toimii yksinkertaisena HTTP-palvelimena. Sen sijaan, että luotettaisiin alustakohtaisiin HTTP-kirjastoihin, jotka saattavat sitoa sen tiettyihin käyttöjärjestelmäkäyttäytymisiin, voimme pyrkiä käyttämään WASI Socketsia (kun standardoitu API on täysin saatavilla) tai ajonaikaisympäristökohtaisia verkkorajapintoja.
Käsitteellinen Rust-esimerkki (havainnollistava, todellinen WASI Sockets API voi poiketa):
// TÄMÄ ON PSEUDOKOODIA JA KUVAA KÄSITETTÄ.
// Todellinen WASI Sockets API vaihtelee meneillään olevien ehdotusten mukaan.
use std::net::Ipv4Addr;
use wasi_networking::SocketAddress;
use wasi_networking::TcpListener;
fn main() {
let addr = SocketAddress::new(Ipv4Addr::new(127, 0, 0, 1), 8080);
let listener = TcpListener::bind(addr).expect("Sitominen epäonnistui");
println!("Kuunnellaan osoitteessa {}", addr);
for stream in listener.incoming() {
match stream {
Ok(mut stream) => {
println!("Uusi yhteys: {}", stream.peer_addr().unwrap());
let mut buffer = [0; 1024];
stream.read(&mut buffer).unwrap();
println!("Vastaanotettu: {}", String::from_utf8_lossy(&buffer));
stream.write(b"Hei WASI Socketsista!").unwrap();
}
Err(e) => {
eprintln!("Virhe yhteyden hyväksymisessä: {}", e);
}
}
}
}
Tämä Rust-koodi, käännettynä WebAssemblyyn WASI-tuella, voitaisiin sitten ajaa missä tahansa yhteensopivassa Wasm-ajonaikaisessa ympäristössä. Isäntäympäristö myöntäisi tarvittavan kyvykkyyden sitoutua porttiin 8080 localhostissa.
2. Reunajärjestelmäsovellusten kehittäminen
Reunalaitteilla on usein rajalliset resurssit ja tiukat tietoturvavaatimukset. WASI Sockets mahdollistaa kevyiden, verkkoyhteyksillä varustettujen sovellusten käyttöönoton, jotka voivat kommunikoida turvallisesti ilman raskaita käyttöjärjestelmäriippuvuuksia.
Harkitse IoT-yhdyskäytävää, joka kerää dataa antureilta ja välittää sen keskuspalvelimelle. Tämä yhdyskäytävä voisi ajaa C:stä tai Go:sta käännettyä Wasm-moduulia, joka käyttää WASI Socketsia turvallisen TLS-yhteyden muodostamiseen taustajärjestelmään. Isäntäjärjestelmä (esim. laitteen käyttöjärjestelmä) myöntäisi Wasm-moduulille luvan avata lähtevän yhteyden tiettyyn palvelinosoitteeseen.
3. Serverless-funktioiden ominaisuuksien parantaminen
Serverless-funktiot ovat lyhytikäisiä ja suunniteltu tiettyihin tehtäviin. Kun nämä tehtävät sisältävät verkkoyhteyksiä (esim. ulkoisten API:en kutsuminen, viestijonojen kanssa toimiminen), WASI Sockets voi tarjota turvallisemman ja siirrettävämmän tavan saavuttaa tämä.
Go:lla kirjoitettu serverless-funktio, käännettynä Wasmiin, voisi käyttää WASI Socketsia datan hakemiseen kolmannen osapuolen palvelusta. Serverless-alusta, toimien isäntänä, injektoisi WASI-kyvykkyyden, joka sallii lähtevät yhteydet vain sallittuun verkkotunnukseen. Tämä parantaa serverless-suoritusympäristön tietoturvaa.
4. Turvallinen vuorovaikutus tietokantojen kanssa
Monien sovellusten on oltava vuorovaikutuksessa tietokantojen kanssa. Tietokanta-asiakkaan tai välityspalvelimen rakentaminen Wasm-moduulina WASI Socketsin avulla tarjoaa merkittäviä etuja. Moduuli voidaan kirjoittaa suorituskykyisellä kielellä, kuten Rust tai C++, kääntää Wasmiin ja sitten ajaa eri konteksteissa. Isäntä myöntäisi sille kyvykkyyden yhdistää tietokantapalvelimen IP-osoitteeseen ja porttiin.
Esimerkki: Wasm-ajonaikaisessa ympäristössä toimiva web-sovelluskehys saattaa käyttää Wasm-moduulia tietokantayhteytenään. Tämä Go:sta käännetty Wasm-moduuli käyttää WASI Socketsia yhteyden muodostamiseen PostgreSQL-tietokantaan, varmistaen, että yhteys muodostetaan turvallisesti ja ajonaikaisen ympäristön myöntämillä nimenomaisilla luvilla.
Miten aloittaa WASI Socketsin käyttö
WASI Socketsin käytön aloittaminen sisältää muutamia keskeisiä vaiheita, jotka kehittyvät standardien kypsyessä:
1. Valitse Wasm-ajonaikainen ympäristö
Valitse WebAssembly-ajonaikainen ympäristö, joka tukee aktiivisesti WASI:a ja, mikä tärkeintä, sen verkkokyvykkyyksiä. Suosittuja vaihtoehtoja ovat:
- Wasmtime: Nopea, kevyt Wasm-ajonaikainen ympäristö, jonka on kehittänyt Bytecode Alliance.
- Wasmer: Wasm-ajonaikainen ympäristö, joka painottaa helppokäyttöisyyttä ja laajaa alustatukea.
- Node.js (WASI-tuella): Viimeisimmissä Node.js-versioissa on kokeellinen WASI-tuki, joka mahdollistaa Wasm-moduulien ajamisen Node.js-ekosysteemissä.
Tarkista valitsemasi ajonaikaisen ympäristön dokumentaatiosta WASI-verkkotuen nykytila ja niiden tarjoamat erityiset API-rajapinnat.
2. Valitse ohjelmointikieli ja työkaluketju
Valitse kieli, joka kääntyy WebAssemblyyn ja jolla on hyvä WASI-integraatio. Kielet kuten Rust, Go ja C/C++ ovat erinomaisia valintoja. Varmista, että työkaluketjusi (kääntäjä, linkkeri) on konfiguroitu tuottamaan Wasm-moduuleja WASI-kohteilla.
3. Toteuta verkkologiikka WASI API:en avulla
Kirjoita verkkokommunikaatiologiikkasi, abstrahoiden tarvittaessa pois standardikirjaston verkkorajapinnoista ja käyttämällä sen sijaan ajonaikaisen ympäristösi tai yhteisön kirjastojen tarjoamia WASI-verkkorajapintoja.
Tämä sisältää usein:
- Verkkokyvykkyyksien hankkiminen isännältä.
- WASI-funktioiden käyttäminen sokettien luomiseen, sitomiseen ja yhdistämiseen.
- I/O-operaatioiden käsittely asynkronisesti.
4. Konfiguroi isännän luvat
Kun ajat Wasm-moduuliasi, konfiguroi isäntäympäristö myöntämään tarvittavat verkkokyvykkyydet. Tämä tehdään tyypillisesti komentorivilippujen tai Wasm-ajonaikaisen ympäristön konfiguraatiotiedostojen kautta.
Esimerkiksi Wasmtimea käytettäessä saatat määrittää:
wasmtime run --dir=. --network=host your_module.wasm
Tai hienojakoisemmin, jos tietyt verkkokyvykkyysliput ovat tuettuja:
wasmtime run --allow-network=127.0.0.1:8080 your_module.wasm
(Huom: Tarkka syntaksi verkkokyvykkyyksille on vielä kehitteillä ja riippuu ajonaikaisen ympäristön WASI-verkkokehityksen toteutuksesta.)
5. Testaa ja ota käyttöön
Testaa Wasm-moduulisi perusteellisesti kohdeympäristössä varmistaaksesi, että verkkokommunikaatio toimii odotetusti ja että tietoturvakäytännöt ovat oikein voimassa. Ota Wasm-artefaktisi käyttöön valitsemassasi isäntäympäristössä (esim. serverless-alustalla, reunalaitteella, säiliöorkestroijassa).
Siirrettävien verkkopohjaisten sovellusten tulevaisuus
WebAssembly WASI Sockets edustaa merkittävää askelta kohti aidosti siirrettävää ja turvallista järjestelmätason ohjelmointia. Kun WASI-standardit kypsyvät ja käyttöönotto kasvaa, voimme odottaa näkevämme:
- Standardoitu WASI Socket API: Yhtenäinen ja laajasti hyväksytty API verkkokommunikaatiolle kaikissa WASI-yhteensopivissa ajonaikaisissa ympäristöissä.
- Rikas kirjastoekosysteemi: Kirjastoja, jotka abstrahoivat WASI Socketsia, tehden verkkosovellusten rakentamisesta vieläkin helpompaa eri kielillä.
- Integraatio pilvinatiivien työkalujen kanssa: Saumaton integraatio Wasm-moduulien kanssa orkestroijien, kuten Kubernetesin, ja serverless-alustojen kanssa.
- Uudet kehitysparadigmat: Mahdollistaa kehittäjille sovellusten ajattelun siirrettävinä, hiekkalaatikoiduina moduuleina, jotka voivat olla turvallisesti vuorovaikutuksessa verkon kanssa.
Kyky kirjoittaa verkkotietoista koodia kerran ja ajaa sitä missä tahansa, turvallisesti ja tehokkaasti, on voimakas ehdotus. WASI Sockets on tämän liikkeen eturintamassa, luvaten avata uusia joustavuuden ja innovaation tasoja kehittäjille maailmanlaajuisesti.
Yhteenveto
WebAssembly WASI Sockets ei ole vain asteittainen parannus; se on perustavanlaatuinen elementti seuraavan sukupolven siirrettäville, turvallisille ja tehokkaille ohjelmistoille. Abstrahoimalla käyttöjärjestelmäkohtaisten verkkorajapintojen monimutkaisuudet ja pakottamalla vankan tietoturvamallin, WASI Sockets antaa kehittäjille mahdollisuuden rakentaa sovelluksia, jotka voivat toimia johdonmukaisesti laajassa joukossa ympäristöjä. Pilvinatiiveista mikropalveluista ja serverless-funktioista reunajärjestelmiin ja IoT-laitteisiin, tämän teknologian vaikutus tulee olemaan syvällinen.
Kun WASI-ekosysteemi jatkaa kypsymistään, WASI Socketsin omaksuminen on avainasemassa organisaatioille ja kehittäjille, jotka pyrkivät rakentamaan tulevaisuudenkestäviä, kestäviä ja erittäin siirrettäviä sovelluksia. Matka on kesken, mutta päämäärä – maailma, jossa koodi toimii kaikkialla, turvallisesti ja luotettavasti – on hyvin saavutettavissa, kiitos WASI Socketsin kaltaisten innovaatioiden.