Orodha ya Yaliyomo[Ficha][Onyesha]
WhatsApp ni programu ya ujumbe wa kijamii ambayo inaruhusu watumiaji kubadilishana ujumbe na mtu mwingine.
Umewahi kufikiria jinsi WhatsApp inavyofanya kazi?
Je, ni dhana gani zinazotegemeza uumbaji na uendeshaji wake?
Nakala hii itapitia misingi ya WhatsApp muundo wa mfumo.
Pia tutapitia usanifu wa jumla wa WhatsApp, ambao unaweza kutumika kutengeneza aina yoyote ya programu ya gumzo.
Kwa hivyo, bila ado zaidi, wacha tuangalie muundo wa mfumo wa WhatsApp!
1. Mahitaji Muhimu
WhatsApp ni teknolojia hatari sana ambayo inatumiwa na watu wengi duniani kote. Kwa hivyo, inapaswa kuundwa vizuri ili kuwa karibu kila wakati kutegemewa na kufanya kazi.
Kwa hivyo, ni muhimu kuamua mahitaji muhimu ya mfumo.
Haya ndio mahitaji ya chini kwa mtumaji wa WhatsApp:
- Ina uwezo wa kuwezesha mwingiliano wa moja kwa moja.
- Kukubali ujumbe na kuonekana mara ya mwisho kunawezekana (Umetumwa, Umewasilishwa, na Umesomwa).
- Ruhusu usimbaji fiche kutoka mwisho hadi mwisho na usaidizi wa midia (picha/video).
Hebu tujue ni kiasi gani huduma yetu muhimu inahitaji.
2. Uwezo wa Kukadiria
Kusudi letu ni kuunda jukwaa linaloweza kushughulikia idadi kubwa ya trafiki. Chukulia kuwa SMS bilioni 10 zinatumwa kwa siku. Tunayo:
- Kila siku, SMS bilioni 10 hutumwa na watu bilioni moja.
- Katika kilele cha msongamano (kwa sekunde), watu 700,000 walikuwa hai (wastani wa 6X)
- Wakati wa matumizi ya kilele, ujumbe milioni 40 hupitishwa kwa sekunde.
- Urefu wa wastani wa ujumbe ni vibambo 160: 10B * 160 = 1.6TB ya data inatolewa kila siku.
- Chukua miaka kumi ya huduma kama mfano: 10 * 1.6B * 365 PB
- Programu nzima itaundwa na huduma ndogo, ambayo kila moja itafanya kazi maalum. Chukulia kuwa kutuma ujumbe huchukua milisekunde 20 na kwamba kuna miunganisho 100 inayofanana kwa kila seva. Kwa hivyo, idadi inayotarajiwa ya seva za gumzo inahitajika = (ujumbe wa gumzo kwa sekunde Muda wa kusubiri)/ miunganisho inayofanana kwa kila seva = 40M * 20ms / 100 = 8000 seva.
3. Usanifu wa hali ya juu
Mfumo huu umejengwa juu ya huduma mbili za msingi. Huduma ya gumzo na huduma ya mpito, kwa mfano. Huduma ya gumzo hushughulikia trafiki yote inayotokana na ujumbe wa mtandaoni wa watumiaji. Wakati huo huo, huduma ya muda hushughulikia trafiki wakati mtumiaji yuko nje ya mtandao.
Ikiwa mtumiaji yuko mtandaoni, huduma ya gumzo inasimamia kuwasilisha ujumbe.
Itathibitisha ikiwa mpokeaji wa ujumbe yuko mtandaoni au la; ikiwa mpokeaji yuko mtandaoni, huduma hii itatoa ujumbe mara moja; ikiwa mpokeaji hayuko mtandaoni, huduma ya mpito itamtumia ujumbe watakaporejea mtandaoni.
Huduma ya mpito huweka eneo tofauti la kuhifadhi kwa ajili ya kuweka data inayoweza kufikiwa kwa muda hadi mtumiaji wa nje ya mtandao aunganishe tena.
Kubuni API za Kiwango cha Juu
Huduma hii ina API mbili za kiwango cha juu zinazofanya kazi za kutuma na kusoma ujumbe. Mfumo unaweza kutekelezwa kwa kutumia usanifu wa REST.
Vigezo vya kutuma ujumbe
API hii itatumika kutuma ujumbe kati ya watumiaji wawili.
Vigezo vya mazungumzo
API hii inatumika kuonyesha soga za mazungumzo. Zingatia hili kitu cha kwanza unachokiona unapofungua WhatsApp. Tungependa kupata ujumbe chache tu kwa mtumiaji mmoja katika hoja moja ya API. Ili kushughulikia hili, vigezo vya kukabiliana na kuhesabu ujumbe vinahitajika.
Je, ni kazi gani za vipengele kama vile kuonekana mara ya mwisho, tiki moja na tiki mbili?
Jukumu muhimu katika kupeleka huduma hizi ni huduma ya kukiri. Vipengele hivi viliundwa kwa kuwa huduma hii inaendelea kutoa na kuthibitisha majibu ya uthibitisho.
- Jibu moja: Ujumbe kutoka kwa Mtumiaji A unapomfikia Mtumiaji B, seva hutuma tiki moja ikikiri kwamba ujumbe umetumwa.
- Jibu mara mbili: Baada ya ujumbe wa seva kutumwa kwa Mtumiaji B kupitia muunganisho unaofaa, Mtumiaji B atakubali kupokea ujumbe kwa seva. Seva itampa Mtumiaji A kibali kingine. Matokeo yake, tiki ya duplicate itaonekana.
- Jibu la bluu: Mtumiaji B atatuma kibali kingine kwa seva baada ya kuangalia ujumbe. Kisha seva itamtumia Mtumiaji A ujumbe wa ziada wa kukiri. Jibu la bluu litaonekana kwenye skrini ya Mtumiaji A baada ya hapo.
- Mara ya mwisho kuonekana: Utaratibu wa mapigo ya moyo unawajibika kikamilifu kwa kipengele kilichoonekana mara ya mwisho. Kila sekunde 5, mpigo wa moyo hutumwa kwa seva, ambayo hufuatilia hali ya mwisho ya kila mtumiaji kuonekana katika jedwali ambalo linaweza kufikiwa kwa urahisi na mtumiaji mwingine yeyote.
4. Kubuni vipengele muhimu
Mwingiliano uliobinafsishwa
Hii ni sehemu muhimu ya huduma ya Chat. Mtumiaji anaweza tu kutuma ujumbe kwa mtumiaji mwingine kwa kutumia huduma hii. Wacha tuangalie jinsi hii inavyofanya kazi:
Chukulia Jay anataka kuwasiliana na Aayush. Jay ameunganishwa na seva ya mazungumzo ambayo anapokea ujumbe. Jay anapokea uthibitisho kutoka kwa seva ya gumzo kwamba ujumbe ulitumwa. Seva ya gumzo sasa inaomba maelezo kutoka kwa hifadhi ya data kuhusu seva ya gumzo ambayo Aayush imeunganishwa. Seva ya gumzo ya Jay sasa inasambaza ujumbe huo kwa seva ya gumzo ya Aayush, na Aayush anapokea ujumbe huo kupitia mfumo wa kusukuma. Aayush sasa anatuma ukiri kwa seva ya gumzo ya Jay, ambayo inamjulisha Jay kwamba ujumbe umewasilishwa. Ikiwa Aayush alisoma ujumbe huo tena, uthibitisho mpya kwamba ujumbe ulikuwa umesomwa uliwasilishwa kwa Jay.
Hali ya Shughuli ya Mtumiaji
Mara ya mwisho mtu alipokuwa hai ni kipengele cha kawaida cha wajumbe wa papo hapo.
Mfumo wa kudumisha muunganisho kati ya mteja na seva umeonyeshwa kwenye mchoro huu. Soketi za wavuti zilitumiwa kuanzisha muunganisho wa pande mbili kati ya seva na mteja. Viunganisho hivi hutuma mapigo ya moyo, ambayo hutumiwa kufuatilia hali ya shughuli ya mtumiaji.
Faragha ya Mwisho-Mwisho
Usimbaji fiche kutoka mwanzo hadi mwisho ni kipengele muhimu kinachohakikisha kuwa watumiaji wanaozungumza pekee ndio wanaoweza kusoma mawasiliano. Ufunguo wa umma unashirikiwa kati ya watumiaji wote wanaohusika katika mawasiliano na ni muhimu ili kudumisha usimbaji fiche wa Mwisho-hadi-Mwisho. Fikiria kuwa kuna watumiaji wawili kwenye chaneli, Jay, na Aayush, ambao wanawasiliana.
Jay ana ufunguo wa umma wa Aayush, na Aayush ana ufunguo wa umma wa Jay na ufunguo wao wa faragha ambao haukushirikiwa. Kwa hivyo, wakati Jay anatuma ujumbe huo, anausimba kwa njia fiche kwa ufunguo wa umma wa Aayush, ambao unaweza tu kusimbua kwa ufunguo wa faragha wa Aayush.
Vile vile, Jay ataweza tu kusimbua mawasiliano ya Aayush. Kwa hivyo, ni Jay na Aaysuh pekee wataweza kuona mawasiliano ya kila mmoja wao, na seva itafanya kazi kama lango katika mchakato mzima.
5. Vikwazo
Kila mfumo unakabiliwa na malfunction. Ili kudhibiti idadi kubwa kama hiyo ya trafiki, huduma lazima iendelee kufanya kazi na kustahimili makosa kila wakati ili kuepusha vikwazo. Kwa sababu huduma yetu inategemea kabisa seva za Gumzo na Muda mfupi, lazima tutatue masuala yote yanayotokana na utendakazi wao.
Kushindwa kwa Seva ya Gumzo: Huu ndio moyo wa mfumo wetu. Watumiaji wanapokuwa mtandaoni, huwa na jukumu la kudhibiti na kuwasilisha ujumbe. Kwa hivyo, mfumo huu unadumisha viungo na watumiaji wake.
Matokeo yake, ikiwa huduma hii itashindwa, usanifu wote utateseka. Kuna njia mbili za kudhibiti kushindwa kwa seva ya gumzo. Njia moja ni kuhamisha miunganisho ya TCP hadi kwa seva nyingine, wakati nyingine ni kuruhusu watumiaji kuanza miunganisho kiotomatiki katika tukio la upotezaji wa muunganisho.
Kushindwa kwa Hifadhi ya Muda mfupi: Sehemu nyingine inayokabiliwa na kushindwa ambayo inaweza hatimaye kuharibu huduma nzima ni hifadhi ya muda mfupi. Ujumbe unaoelekea kwa watumiaji wa nje ya mtandao hupotea ikiwa huduma hii itashindwa.
Tunaweza kuzuia upotezaji wa ujumbe kwa kunakili hifadhi ya muda ya kila mtumiaji. Kwa hivyo, nakala inaweza kuajiriwa kuchakata vitendakazi kila mtumiaji anaporudi mtandaoni. Iwapo seva asili itafikiwa, matukio asilia na nakala ya uhifadhi wa mpito wa mtumiaji huunganishwa kuwa duka moja.
6. Mbinu za uboreshaji
Ukamilifu: Ili kutoa uzoefu wa mteja usio na mshono na ulioboreshwa, huduma ya messenger lazima iwe ya wakati halisi. Kwa hivyo, muda wa kusubiri lazima upunguzwe kwa kuakibisha sehemu ya data inayopatikana mara nyingi. Tunaweza kuweka akiba hali ya shughuli ya mtumiaji na mazungumzo ya hivi majuzi kwenye kumbukumbu kwa kutumia akiba iliyosambazwa kama vile Redis.
upatikanaji: Tunahitaji huduma yetu ipatikane muda mwingi. Mfumo wetu lazima ustahimili makosa, kwa hivyo tunaweza kuweka nakala kadhaa za ujumbe wa mpito ili ujumbe wowote unaopotea uweze kurejeshwa kwa haraka kutoka kwa nakala zake. Kwa hivyo, upatikanaji wa mfumo hauwezi kuhatarishwa.
Hitimisho
Mfumo wetu sasa unaauni uwezo chache tu, lakini tunaweza kuupanua kwa urahisi ili kuongeza gumzo za kikundi ili kusambaza ujumbe kwa watu kadhaa. Unaweza pia kutoa uwezo wa kupiga simu na video. Mfumo huu pia unaweza kutengenezwa hivi kwamba watumiaji wanaweza kuchapisha masasisho ya hali au masimulizi na kusomana.
Nilijitahidi kukupa muhtasari wa hali ya juu wa muundo wa mfumo wa WhatsApp. Natumai umeifurahia na utaitumia vyema.
Acha Reply