C hỷỳng 3: Xớy dỷơng gateway giỷụa maơng PSTN vađ maơng IP
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 quýịt ắnh rớịt quan troơng trong quã trũnh thiùịt kùị ỷõng duơng. Quýịt ắnh mử hũnh lớơp trũnh ăũng ăựưn seụ lađm tựng tủnh hiùơu quaờ cuờa ỷõng duơng, ăửỡng thỳđi lađm giaờ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 luửỡng (Single-threaded): Chỷỳng trũnh chú duđng mửơt luửỡ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 luửỡng ( Multi-threaded): Chỷỳng trũnh duđng nhiùỡu luửỡng, mửợi luửỡ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, luửỡng seụ bừ khoã 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, luửỡng hoựơc tiùịn trũnh sau khi goơi hađm seụ 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õ seụ 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 chũng ta mửơt sửị mử hũnh lớơp trũnh sau:
+ Mử hũnh lớơp trũnh ăửỡng bửơ ăỳn luửỡng. + Mử hũnh lớơp trũnh ăửỡng bửơ ăa luửỡng. + Mử hũnh lớơp trũnh bớịt ăửỡng bửơ ăỳn luửỡng. + Mử hũnh bớịt ăửỡng bửơ ăa luửỡng.
Cãc mử hũnh lớơp trũnh Dm3 cung cớịp
Mử hũnh ăửỡng bửơ ăỳn luửỡ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 giaờ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ùớ boờ 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 luửỡng
Trong mử hũnh nađy, mửợi thiùịt bừ chừu sỷơ quaờn lủ cuờa mửơt cuờa mửơt luửỡng. Khi mửơt hađm trong luửỡng ăõ ặỳơc thi hađnh thũ hùơ ăiùỡu hađnh seụ ặa luửỡng ăõ vađo traơng thãi ngỷđng taơm thỳđi trong khi cãc luửỡ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 luửỡ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 phaờ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 giaờn nhớịt cõ thùớ duđng ặỳơc trong thỷơc tùị cuờa mửơt loaơt cãc saờ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 cuờa mửơt luửỡng, nùn khi sửị thiùịt bừ tựng lùn thũ viùơc quaờn lủ ăửỡng bửơ giỷụa cãc luửỡng lađ rớịt khõ khựn vađ kẽm hiùơu quaờ. Mử hũnh nađy ăođi hoời mửơt lỷỳơng lỳõn tađi nguýn cuờa 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ùớ quaờn lủ.
- Hoaơt ăửơng ỳờ chùị ăửơ ăửỡng bửơ nùn mửợi luửỡng seụ bừ khoã 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 luửỡng ăang bừ khoã laơi, nõ khửng cõ khaờ nựng nhớơn cãc sỷơ kiùơn phãt ra mửơt cãch khửng thùớ ăoã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 xaờy ra khửng ăửỡng thỳđi vađ cõ thùớ xãc ắnh trỷỳõc ặỳơc.
Mử hũnh bớịt ăửỡng bửơ ăa luửỡ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 khuýịn nghừ ãp duơng. Trong mử hũnh nađy, ta phaời taơo ra nhiùỡu luửỡng, mửợi luửỡng quaờ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 luửỡng khửng bừ khoã laơi khi thỷơc hiùơn hađm. Cãc hađm ặỳơc goơi seụ traờ laơi giã trừ ngay lớơp tỷõc cho phẽp luửỡng tiùịp tuơc xỷờ lủ. Khi hađm ặỳơc thỷơc hiùơn xong, nõ seụ 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 phaời sỷờ duơng cỳ chùị ăửỡng bửơ cuờa 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 cuờa 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ùớ quaờn lủ sửị lỷỳơng rớịt lỳõn thiùịt bừ.
- Cung cớịp khaờ nựng ăiùỡu khiùớn tửịi hỳn cho cãc ỷõng duơng Dm3. - Giaờm sỷơ quaờ taời cuờa hùơ thửịng do phaời chuýớn ăửới qua laơi giỷụa cãc luửỡng.
- Cho phẽp chaơy mửơt phớỡn cuờa ỷõng duơng trong mửơt luửỡng ăiùỡu khiùớn nhiùỡu thiùịt bừ.
- Yùu cớỡu sỷơ sựưp xùịp, ăửỡng bửơ hoã giỷụa cãc luửỡng phỷõc taơp. - Yùu cớỡu phaời xớy dỷơng cãc mãy traơng thãi.
Mử hũnh bớịt ăửỡng bửơ ăỳn luửỡng
Thỷỳđng quaờn lủ hiùơu quaờ vỳõi sửị lỷỳơng thiùịt bừ khửng quã lỳõn, deụ lớơp trũnh hỳn so vỳõi mử hũnh bớịt ăửỡng bửơ ăa luửỡng do trãnh ặỳơc sỷơ phỷõc taơp khi phửịi hỳơp ăửỡng bửơ giỷụa nhiùỡu luửỡ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 luửỡng.
- Quaờn lủ cõ hiùơu quaờ do viùơc chú duđng mửơt luửỡng duy nhớịt ăùớ quaờn lủ tớịt caờ cãc thiùịt bừ.
- Ăỳn giaờn hoã 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 cuụng cõ nhỷỳơc ăiùớm lađ phỷõc taơp hỳn so vỳõi cãc mử hũnh ăửỡng bửơ, ăođi hoời phaờ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 cuờa Windows
Mử hũnh khửng ăửỡng bửơ vỳõi cỳ chùị Callback cuờa Windows
Mử hũnh nađy cho phẽp mửơt ỷõng duơng khửng ăửỡng bửơ nhớơn cãc baờn tin vùỡ sỷơ kiùơn thửng qua kyụ thuớơt quaờn lủ sỷơ kiùơn chuớớn cuờa 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 quaờn lủ tađi nguýn hùơ thửịng bựỡng cãch quaờn lủ nhiùỡu thiùịt bừ trong cuđng mửơt luửỡng duy nhớịt.
Mử hũnh nađy cho phẽp gựưn chựơt vỳõi kyụ thuớơt lớơp trũnh giao diùơn ăửỡ hoaơ cuờa Windows, cung cớịp luửỡng xỷờ lủ ăỳn ăửịi vỳõi tớịt caờ cãc baờ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ửơ cuờa 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ửơ chuớớn cuờa 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 chuớớn cuờa Dialogic ăùớ bão mửơt ăiùớm ăỳơi cuờa ngỷỳđi sỷờ duơng khi mửơt sỷơ kiùơn xuớịt hiùơn trùn thiùịt bừ. Khi nhớơn ặỳơc baờn tin ăõ nõ goơi cãc hađm thao tãc sỷơ kiùơn chuớớn cuờa Dialogic ăùớ xỷờ lủ sỷơ kiùơn.
Mử hũnh nađy cho phẽp kùịt hỳơp chựơt cheụ vỳõi cãc thiùịt bừ khãc sỷờ duơng cỳ chùị ăửỡng bửơ hoã cãc sỷơ kiùơn cuờa 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 toãn
Viùơc lỷơa choơn mử hũnh lớơp trũnh ặỳơc Dialogic khuýị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 cheụ vỳõi nhau theo tỷđng ăửi mửơt.
Quaờ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 phaờ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 luửỡ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 luửỡ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 luửỡng.
Chỷỳng trũnh ăỳn giaờn.
Mửợi luửỡng ăiùỡu khiùớn mửơt thiùịt bừ. Mử hũnh ăửỡng bửơ ăa luửỡ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 luửỡng.
Hũnh 4.1 Lỷơa choơn cãc mử hũnh lớơp trũnh
Ăựơc ăiùớm cuờa chỷỳng trũnh xỷờ lủ cuửơc goơi cho gateway VIPGate lađ chú phaời quaờ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ơ thuửơc vađo traơng thãi cuửơc goơi hiùơn taơi. Mựơt
khãc ăùớ sỷờ duơng tađi nguýn hùơ thửịng cõ hiùơu quaờ thũ mử hũnh ăửỡng bửơ lađ khửng khaờ thi. Ăùớ cho viùơc lớơp trũnh ặỳơc ăỳn giaờn, nhanh chõng ta chú duđng mửơt luửỡng duy nhớịt ăùớ quaờn lủ tớịt caờ 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 luửỡng vađ sỷờ duơng cỳ chùị ăửỡng bửơ chuớớn cuờa Windows NT thửng qua I/O Completion Port.