請教各位:CTI IVR領域該應用那些設計模式?
一個呼叫中心的IVR系統,該用什麼模式呢? ivr系統應該是一個狀態機模型,裡面充斥著各種線路控制的狀態和事件(空閒,震鈴,掛機,放音,錄音,加入會議,離開會議,兩通道連線。。。。。)不過總的來說,線路部分的狀態和事件不會很多,並且是不會經常變化的,可以看成是固定的就那幾個。 然後,做應用的時候,業務邏輯引入的自定義狀態就不可預料了。如何進行解耦?如何保證底層線路控制部分的純潔不被業務邏輯所破壞?IVR系統是一個實時性要求很高的系統,同時也是一個併發量很高的系統(絕對不能用一個通道一個執行緒的方法,只能用狀態機輪詢)。IVR系統的底層可以是各個廠家的語音卡,可以是各個廠家的交換機,可以是來自IP的呼叫,甚至是簡訊,郵件等各種資源。這些應該要和業務邏輯完全分離。 我設想的是用分散式的程式來解耦。外圍的線路資源(如語音板卡)做成獨立的一個程式,不參與業務邏輯,做成一個只會做事,而不知道為什麼做的“傻瓜”。 業務邏輯單獨也是一個程式,和資料庫打交道的也單獨做成一個程式。。。。這樣,處理業務邏輯的程式就是一個依照業務邏輯發號命令,但是不知道如何具體實現這些命令的人(COMAND模式?),其他的各類資源閘道器都和這個業務程式打交道,各資源閘道器彼此之間不打交道(中介模式?)。 如此思路下,那麼一個業務流程的執行就大概如下了: 業務程式執行流程,發現需要對使用者放音,就發個包(SOCKET通訊)給板卡程式,發現需要執行一個儲存過程,就發個包給資料庫程式,發現需要發條簡訊,就發個包給簡訊程式,發現需要做****,就發個包給&&&&. 這樣,板卡程式就只管聽命令,對指定的通道放音,錄音,加入會議之類。然後把底層線路的變化事件發包給業務程式,資料庫程式也是,只管按要求執行儲存過程,然後把結果發包給業務程式,簡訊。。。。等等。這樣,整個系統就很容易擴充了,並且外圍的程式也很容易編寫,用三匯卡,就作個三匯卡函式封裝的板卡程式,用AVAYA交換機,就做個對應的交換機程式。要IP應用,就做個IP閘道器程式等等。 然後,問題就是,這個最核心的業務程式怎麼設計啊?該用那些模式來例項化業務流程?如何維護每個例項的狀態?等等,期待大家的討論,謝謝
相關文章
- 請教banq大哥,領域模型的設計模型
- 請教banq老師怎樣學習DDD領域建模和設計模式設計模式
- IVR伺服器與CTI伺服器VR伺服器
- 新來的,請教領域驅動設計如何入門?
- 各位高手,請教
- 請教banq老師和各位大哥,以下需求應該怎麼分析
- 請問各位高手:如果想從普通程式設計師提高為系統設計者,應該學那些東東?多謝程式設計師
- 領域驅動設計戰術模式--領域事件模式事件
- 你應該使用領域驅動設計嗎? - codeopinion
- 領域驅動設計戰術模式--領域服務模式
- 請教板橋老師關於領域驅動開發設計問題
- socket or webserver 請教各位同仁WebServer
- 請教各位spring高手Spring
- 請教如何下手學習設計模式設計模式
- 請教bang--關於設計模式設計模式
- 關於waf,請教各位高手。
- .NET應用架構設計—適當使用活動記錄模式代替領域模型模式應用架構模式模型
- 請教賬單領域的實體,值物件與服務的設計問題.物件
- ===請教各位我該採用什麼樣的J2ee開發架構===架構
- 《UML和模式應用》與《領域驅動設計.軟體核心複雜性應對之道》模式
- 請教設計一個流程多變的模式模式
- 請教有關template設計模式的問題設計模式
- 請教一個DAO設計模式的問題設計模式
- 請教一下各位struts高手
- 請教各位高手一個問題
- 停止教條式的領域驅動設計 - CodeOpinion
- 我的j2EE該怎麼學??請各位高手不吝賜教!!
- 請教各位:我想用struts框架來做一個練習,在我的機子上應該???框架
- 請問各位道友?jive學習應該哪些東西?
- JMS 的應用場景有那些?有什麼好處?望各位大蝦執教。 Banq老師賜教!
- 領域驅動設計戰術模式--值物件模式物件
- 領域驅動設計--戰術模式簡介模式
- DDD領域驅動設計:領域事件事件
- 請教各位前輩 Flex+Ejb3.0Flex
- 領域驅動設計DDD應用心得
- Linux 應用領域Linux
- nodejs應用領域NodeJS
- 請問這種情況應該用什麼模式?模式