Chỷỳng 4 : Xớy dỷơng phớỡn mùỡm xỷờ lđ cơc goơi cho gateway
1. Lỷơa choơn mư hịnh lớơp trịnh
Xõc ắnh mư hịnh lớơp trịnh lađ mươt qịt ắnh rớịt quan troơng trong qũ trịnh thiùịt kùị ỷõng duơng. Qịt ắnh mư hịnh lớơp trịnh ăũng ăựưn seụ lađm tựng tđnh hiùơu quă ca ỷõng duơng, ăưỡng thỳđi lađm giăm thỳđi gian phõt triùớn nụ.
Trỷỳõc tiùn ta tịm hiùớu mươt sưị khõi niùơm mư hịnh lớơp trịnh sau: + Mư hịnh lớơp trịnh ăỳn lỡng (Single-threaded): Chỷỳng trịnh chú duđng mươt lỡng duy nhớịt ăùớ ăiùỡu khiùớn hoaơt ăương cho mươt hay nhiùỡu thiùịt bừ.
+ Mư hịnh lớơp trịnh ăa lỡng ( Multi-threaded): Chỷỳng trịnh duđng nhiùỡu lỡng, mưỵi lỡng ăiùỡu khiùớn cho mươt hay nhiùỡu thiùịt bừ.
+ Mư hịnh lớơp trịnh ăưỡng bươ (Synchronous): Trong mư hịnh lớơp trịnh nađy, lỡng s bừ khõ laơi mưỵi khi mươt hađm ặỳơc goơi cho ăùịn khi hađm ăõ ặỳơc thỷơc hiùơn xong.
+ Mư hịnh lớơp trịnh bớịt ăưỡng bươ (Asychronous): Trong mư hịnh lớơp trịnh nađy, lỡng húơc tiùịn trịnh sau khi goơi hađm s tiùịp tuơc thỷơc hiùơn cửng viùơc cuờa nụ trong khi hađm ặỳơc thỷơc hiùơn. Mưỵi khi hađm
thỷơc hiùơn xong, nụ s thưng bõo cho ỷõng duơng bỳời mửơt sỷơ kiùơn (event).
Dỷơa trùn cãc khõi niùơm cỳ sỳờ ăụ, Dialogic cung cớịp cho chng ta mươt sưị mư hịnh lớơp trịnh sau:
+ Mư hịnh lớơp trịnh ăưỡng bươ ăỳn lỡng. + Mư hịnh lớơp trịnh ăưỡng bươ ăa lỡng.
+ Mư hịnh lớơp trịnh bớịt ăưỡng bươ ăỳn lỡng. + Mư hịnh bớịt ăưỡng bươ ăa lỡng.
Cõc mư hịnh lớơp trịnh Dm3 cung cớịp
Mư hịnh ăưỡng bươ ăỳn lỡng
Mư hịnh lớơp trịnh nađy chú mang tđnh chớịt thỷờ nghiùơm, kiùớm tra nhanh chụng nhỷơng khõi niùơm, chỷõc nựng ăỳn giăn. Mư hịnh nađy chú cho phờp ăiùỡu khiùớn duy nhớịt cho mươt thiùịt bừ taơi mươt thỳđi ăiùớm. Duđng mư hịnh nađy cụ thùớ b sụt nhỷơng sỷơ kiùơn phõt ra tỷđ thiùịt bừ trong khi mửơt hađm ăang thỷơc hiùơn. Vị vớơy, thỷơc tùị mư hịnh nađy khưng ặỳơc õp duơng.
Mư hịnh ăưỡng bươ ăa lỡng
Trong mư hịnh nađy, mưỵi thiùịt bừ chừu sỷơ quăn lđ ca mươt ca mươt lỡng. Khi mươt hađm trong lỡng ăụ ặỳơc thi hađnh thị hùơ ăiùỡu hađnh s ặa lỡng ăụ vađo traơng thõi ngỷđng taơm thỳđi trong khi cãc lỡng khõc vớỵn hoaơt ăương. Khi hađm ặỳơc thỷơc hiùơn xong, hùơ ăiùỡu hađnh ăõnh thỷõc lỡng ăụ dớơy vađ tiùịp tuơc xỷờ lđ cõc cửng viùơc tiùịp theo. Mử hịnh nađy cụ ỷu ăiùớm lađ khưng phăi xớy dỷơng cõc mõy traơng thõi, dùỵ dađng khi lớơp trịnh vị thùị cho phờp phõt triùớn chỷỳng trịnh nhanh chụng. Ăớy lađ mư hịnh ăỳn giăn nhớịt cụ thùớ duđng ặỳơc trong thỷơc tùị cuờa mửơt loaơt cõc săn phớớm Dm3.
Mư hịnh nađy tưỡn taơi rớịt nhiùỡu nhỷỳơc ăiùớm:
- Mưỵi thiùịt bừ chừu sỷơ ăiùỡu khiùớn ca mươt lỡng, nùn khi sưị thiùịt bừ tựng lùn thị viùơc quăn lđ ăưỡng bươ giỷơa cõc lỡng lađ rớịt khụ khựn vađ kờm hiùơu quă. Mư hịnh nađy ăođi hi mươt lỷỳơng lỳõn tađi ngn ca hùơ
ăiùỡu hađnh. Vị vớơy, mư hịnh nađy bừ haơn chùị vùỡ sưị lỷỳơng thiùịt bừ cụ thùớ quăn lđ.
- Hoaơt ăương ỳờ chùị ăươ ăưỡng bươ nùn mưỵi lỡng s bừ khõ laơi khi goơi hađm, khưng thùớ thỷơc hiùơn cõc cưng viùơc khõc.
- Khi mươt lỡng ăang bừ khõ laơi, nụ khưng cụ khă nựng nhớơn cõc sỷơ kiùơn phõt ra mươt cõch khưng thùớ ăõn trỷỳõc tỷđ thiùịt bừ.
Vớơy mư hịnh nađy chú sỷờ duơng thđch hỳơp cho nhỷơng thiùịt bừ cụ cõc sỷơ kiùơn xăy ra khưng ăưỡng thỳđi vađ cụ thùớ xõc ắnh trỷỳõc ặỳơc.
Mư hịnh bớịt ăưỡng bươ ăa lỡng
Khi ỷõng duơng ýu cớỡu ăiùỡu khiùớn mươt sưị lỷỳơng lỳõn thiùịt bừ, mư hịnh nađy ặỳơc khịn nghừ õp duơng. Trong mư hịnh nađy, ta phăi taơo ra nhiùỡu lỡng, mưỵi lỡng quăn lđ nhiùỡu thiùịt bừ vađ cụ cõc mõy traơng thãi cho tỷđng thiùịt bừ ăụ. Cõc lỡng khưng bừ khõ laơi khi thỷơc hiùơn hađm. Cãc hađm ặỳơc goơi s tră laơi giõ trừ ngay lớơp tỷõc cho phờp lỡng tiùịp tuơc xỷờ lđ. Khi hađm ặỳơc thỷơc hiùơn xong, nụ s thưng bõo mươt sỷơ kiùơn ăùớ mõy traơng thõi xỷờ lđ.
Khi sỷờ duơng mư hịnh nađy ýu cớỡu phăi sỷờ duơng cỳ chùị ăưỡng bươ ca Window NT I/O Completion Port, cãc sỷơ kiùơn cuờa Dm3 vađ Window seụ ặỳơc gựưn vỳõi I/O Completion Port. Ăùớ lớịy cõc sỷơ kiùơn nađy ra, ta goơi hađm GetQueuedCompletionStatus() ăùớ lớịy sỷơ kiùơn tỷđ hađng ăỳơi cuờa I/O Completion Port.
Ûu ăiùớm ca mư hịnh nađy lađ
- Sỷờ duơng tađi nguýn hùơ thửịng đt hỳn so vỳõi mư hịnh ăưỡng bươ, ngỷng cụ thùớ quăn lđ sưị lỷỳơng rớịt lỳõn thiùịt bừ.
- Cung cớịp khă nựng ăiùỡu khiùớn tưịi hỳn cho cõc ỷõng duơng Dm3. - Giaờm sỷơ quă tăi ca hùơ thưịng do phăi chớn ăưới qua laơi giỷơa cõc lỡng.
- Cho phờp chaơy mươt phớỡn ca ỷõng duơng trong mươt lỡng ăiùỡu khiùớn nhiùỡu thiùịt bừ.
- u cớỡu sỷơ sựưp xùịp, ăưỡng bươ hõ giỷơa cõc lỡng phỷõc taơp.
- u cớỡu phăi xớy dỷơng cõc mõy traơng thõi.
Mư hịnh bớịt ăưỡng bươ ăỳn lỡng
Thỷỳđng quăn lđ hiùơu quă vỳõi sưị lỷỳơng thiùịt bừ khưng qũ lỳõn, d lớơp trịnh hỳn so vỳõi mư hịnh bớịt ăưỡng bươ ăa lỡng do trõnh ặỳơc sỷơ phỷõc taơp khi phưịi hỳơp ăưỡng bươ giỷơa nhiùỡu lỡng.
Mư hịnh nađy cụ nhỷơng ỷu ăiùớm nhỷ sau:
- Ăửơ phỷõc taơp đt hỳn so vỳõi mư hịnh bớịt ăưỡng bươ ăa lỡng.
- Quăn lđ cụ hiùơu quă do viùơc chú duđng mươt lỡng duy nhớịt ăùớ quăn lđ tớịt că cãc thiùịt bừ.
- Ăỳn giăn hõ viùơc nhớơn nhiùỡu sỷơ kiùơn ăưỡng thỳđi tỷđ nhiùỡu thiùịt bừ.
- Sỷờ duơng ủt tađi nguýn hùơ thưịng so vỳõi cõc mư hịnh ăưỡng bươ.
- Mư hịnh nađy cng cụ nhỷỳơc ăiùớm lađ phỷõc taơp hỳn so vỳõi cõc mư hịnh ăưỡng bươ, ăođi hi phăi xớy dỷơng cho mưỵi thiùịt bừ mươt mõy traơng thãi.
- Mư hịnh khưng ăưỡng bươ vỳõi cõc cỳ chùị lớơp trịnh ca Windows
Mư hịnh khưng ăưỡng bươ vỳõi cỳ chùị Callback ca Windows
Mư hịnh nađy cho phờp mươt ỷõng duơng khưng ăưỡng bươ nhớơn cõc băn tin vùỡ sỷơ kiùơn thưng qua k thơt quăn lđ sỷơ kiùơn chớn ca Windows. Cõc mư hịnh khưng ăưỡng bươ cho phờp xớy dỷơng cõc ỷõng duơng phỷõc taơp ặỳơc dùỵ dađng hỳn, cụ hiùơu quaờ cao hỳn trong viùơc quăn lđ tađi ngn hùơ thưịng bựỡng cõch quăn lđ nhiùỡu thiùịt bừ trong cuđng mươt lỡng duy nhớịt.
Mư hịnh nađy cho phờp gựưn chựơt vỳõi k thơt lớơp trịnh giao diùơn ăưỡ hoaơ ca Windows, cung cớịp lỡng xỷờ lđ ăỳn ăưịi vỳõi tớịt că cõc băn tin vađ cãc sỷơ kiùơn cuờa Windows vađ Dialogic.
Mư hịnh khưng ăưỡng bươ vỳõi cỳ chùị ăưỡng bươ ca Windows NT
Mử hịnh lớơp trịnh nađy cho phờp mươt ỷõng duơng khưng ăưỡng bươ nhớơn sỷơ kiùơn thưng qua cỳ chùị ăưỡng bươ chớn ca Win32. Win32 cung cớịp hai cỳ chùị ăưỡng bươ lađ ResetEvents vađ I/O Completion Port. Trong mư hịnh nađy, ỷõng duơng thưng bõo vỳõi thỷ viùơn chớn ca Dialogic ăùớ bõo mươt ăiùớm ăỳơi ca ngỷỳđi sỷờ duơng khi mươt sỷơ kiùơn xịt hiùơn trùn thiùịt bừ. Khi nhớơn ặỳơc băn tin ăụ nụ goơi cõc hađm thao tõc sỷơ kiùơn chớn ca Dialogic ăùớ xỷờ lđ sỷơ kiùơn.
Mư hịnh nađy cho phờp kùịt hỳơp chựơt ch vỳõi cõc thiùịt bừ khãc sỷờ duơng cỳ chùị ăưỡng bươ hõ cõc sỷơ kiùơn ca Win32 nhỷ thiùịt bừ Dm3 cuờa Dialogic hay cãc thỷ viùơn Sokets cuờa Windows.
Mư hịnh lớơp trịnh õp duơng cho bađi tõn
Viùơc lỷơa choơn mư hịnh lớơp trịnh ặỳơc Dialogic khịn nghừ theo baờng sau:
Ăựơc ăiùớm ỷõng duơng Mư hịnh lớơp trịnh ặỳơc choơn
Chỷỳng trũnh phỷõc taơp.
Hoaơt ăương giỷơa cõc thiùịt bừ quan hùơ chựơt ch vỳõi nhau theo tỷđng ăửi mửơt.
Quăn lđ viùơc giao tiùịp vỳõi mửơt sửị lỷỳơng lỳõn thiùịt bừ. Chỷỳng trịnh ýu cớỡu phăi xớy dỷơng mõy traơng thõi. Chỷỳng trịnh ăỳơi nhiùỡu thiùịt bừ trùn mươt lỡng duy nhớịt
Mư hịnh khưng ăưỡng bươ.
Cụ kùị hoaơch phõt triùớn, tđch hỳơp thiùịt bừ Dm3 vỳõi cãc thiùịt bừ khõc.
Mư hịnh khưng ăưỡng bươ ăa lỡng.
Khưng cụ kùị hoaơch phõt triùớn, tđch hỳơp thiùịt bừ Dm3 vỳõi cãc thiùịt bừ khãc.
Mư hịnh khưng ăưỡng bươ ăỳn lỡng.
Chỷỳng trịnh ăỳn giăn.
Mưỵi lỡng ăiùỡu khiùớn mươt thiùịt bừ. Mư hịnh ăưỡng bươ ăa lỡng Chỷỳng trịnh taơi mươt thỳđi ăiùớm chú giao tiùịp vỳõi mửơt thiùịt
bừ duy nhớịt. Mư hịnh ăưỡng bươ ăỳn lỡng.
Hịnh 4.1 Lỷơa choơn cõc mư hịnh lớơp trịnh
Ăựơc ăiùớm ca chỷỳng trịnh xỷờ lđ cơc goơi cho gateway VIPGate lađ chú phăi quăn lđ mươt sưị đt kùnh thoaơi, cõc sỷơ kiùơn nhớơn ặỳơc tỷđ cõc kùnh thoaơi ặỳơc xỷờ lđ phuơ thơc vađo traơng thõi cơc goơi hiùơn taơi. Mựơt
khõc ăùớ sỷờ duơng tađi ngn hùơ thưịng cụ hiùơu quă thị mư hịnh ăưỡng bươ lađ khưng khă thi. Ăùớ cho viùơc lớơp trịnh ặỳơc ăỳn giăn, nhanh chụng ta chú duđng mươt lỡng duy nhớịt ăùớ quăn lđ tớịt că cõc kùnh thoaơi.
Vị vớơy, ăưịi vỳõi ỷõng duơng nađy ta sỷờ duơng mư hịnh lớơp trịnh bớịt ăưỡng bươ ăỳn lỡng vađ sỷờ duơng cỳ chùị ăưỡng bươ chớn cuờa Windows NT thửng qua I/O Completion Port.