模擬器設計--未完待續

來源:互聯網
上載者:User

最近跟同事討論電信系統特點的時候,特別提到系統介面太多了,開發起來各種交織,存在開發效率低的問題。針對這個問題,我想寫點對這幾年電信的理解和想法;

先引用別人一段對傳統系統和互連網系統的區別總結。

互連網應用不傳統資訊系統應用的區別

互連網應用

自行開發系統、快速迭代,持續傳遞,持續維護

直接到達用戶端,對接Mass使用者

業務逡輯簡單,Straightforward,一致性要求較低

系統內部模組間可以無標準(REST),效能/使用者體驗至上(KISS)

傳統資訊系統

多方開發,依賴整合商,基於版本交付和維護

 Vendor對接整合商,整合商對接終端使用者

業務逡輯複雜,系統要求穩定可靠,安全性要求較高

系統模組間依靠工業標準耦合,如應用逡輯和資料庫系統通過SQL耦合


針對電信行業,這個特點更為突出,針對以上特點分別描述:
1、多方開發:由於移動是不會自己開發系統,因此移動的各級系統、基站、網路設定大部分都承包到整合商,涵蓋計費、客服、營業、客戶管理、資源管理、網上營業廳、wap、寬頻施工、跨省功能、sp、代收費、各種夥伴、mas等,對於大的移動省各種子系統多達上百個;而各家公司的開發語言、網路通訊協定則不盡相同; 2、電信、移動、聯通是直接對接最用使用者,而整合商根據甲方的需求完成開發和支援; 3、商務邏輯複雜,一方面是地區限制、工號限制、歸屬限制、產品資費複雜、家庭集團業務複雜;而且各省的功能在細節上差異較大,有時候甚至是整體流程也不一樣;這3家廠商都是央企,也面對著全國的焦點,面對媒體的轟炸,變得十分敏感,甚至過度; 4、國際電信聯盟標準、各家電訊廠商制定的業務、技術規範,是這個行業最大的特點,每年一度的測試直接影響各省地區分公司的考核和整合商的准入;對與資料庫幾乎都是Oracle,對於中介軟體也是像Tuxedo這樣的重量級產品,伺服器大多都是昂貴的AIX、HP-UX、SUN-SALARY這樣的UNIX系統伺服器;而能支撐這一切的,就是因為電信使用者的高ARUP。
這幾年互連網技術的突飛猛進,讓我這種技術迷寵寵欲動。hadoop、雲端儲存、nosql、線上分析、緩衝系統、搜尋引擎、自動化測試、移動開發就像湖裡的魚一樣,而我則像站在湖邊卻沒有漁具的漁夫,只能滿足於天馬行空的看別人寫得各種系統應用執行個體和總結。經過一年的彷徨期和在新公司的體會,我逐漸意識到,千百個零不如一個壹。多大的船,捕多大的魚。這些都是互連網行業的產品,照套路搬過來肯定不行,只能學習他們的技術和方法。舉例來說,雲端運算拿到業務支撐就很難直接照搬,電信行業的使用者量是大,但是商務規則複雜,這些商務規則如果全部並存執行就是一種浪費,因為任意一條規則不通過,整個業務都不允許繼續執行;對於使用者資料來說,計費裝入記憶體是合理的,但是CRM等系統就沒有必要了,使用者一個月才辦理幾筆業務啊,這麼做是吃力費錢不討好;nosql呢?個人化資料還不是首要問題,太多的介面才是現在的問題,而介面太多怎麼又快又能保證事物的一致性呢?我曾經接觸幾個特別複雜和流程長的業務,都是橫跨好幾個整合商和集團boss及省boss系統,業務規範中允許逾時時間為60秒。
前些年,電信行業是資訊技術的領頭羊,而現在卻被互連網落下一大截,而且以後還會被落下更遠。隨著以後各行各業互動性的加強,現有系統的效能和易維護性都會面臨巨大的挑戰。特別是三網融合和全國統一一個boss系統,系統怎麼做?現有的架構肯定是不行的。而且這種業務和技術的發展方向也讓我產生懷疑。
有點扯遠了,回到主題。
面對這種現狀,怎麼去提高開發效率?特別是基於tuxedo的開發,逼著你不得不連著伺服器進行開發,有比這更難受的事情嗎? 開發環境是高度迭代的環境,可是在這種模式下大家都不能隨便搞,因為不是你一個人在用。我做完功能,想去壓測一下,不好意思,馬上就會有人來找你。ok,這個可以忍,晚上沒人了,我加班壓測總可以了吧! 可是等晚上了,你的功能調用資源介面了,但是資源介面又不通,你再等明天晚上吧!好容易等到了資源介面可以了,計費介面又出問題了,後面還有一級boss、簡訊營業廳,在這種共有的環境下,不是你更新代碼就是他更新代碼。你仔細算算,你一天有多少問題花費在環境上?你要問,不是說版本向下相容嘛? 是啊,可是我們在單元測試還沒通過呢,等通過了還是相容的。以上這些問題,在統一各省版本的要求下和c語言這種面向過程的工作方式下,會變得更加地焦作!
同樣的煩惱還來自前後台,我一直在思考一個問題,系統升級管介面什麼事情,為什麼介面也總跟著升級,而且我還覺得老系統的介面挺好看呢!還有對前台來說,資料是否正確跟我關係不大,只要保證流程和展示的方式是正確的,我幹嘛要等你背景程式開發完畢呢?假的也是可以的呀。
看到這裡,你或許猜到方案了,那就是題目要說的,做模擬器!模擬器不要太高的效能、不需要正式的流程,但是一樣可以類比正常的和異常的流程。還可以劈開第三方介面,單壓自己的程式。有模擬器後,就可以實現這種多介面程式的本地化開發了,就可以自己覺得升級不升級本地的開發庫和介面庫。
先基於以上的煩惱,整理出來一個簡單的需求吧
1、類比介面的正常流程的輸入和輸出,最好是可以配置的,這樣開發人員就可以根據需求返回不同的結果;
2、有部分校正規則,以確保主流程的暢通;
3、效能比提供介面方要高,這樣我的壓測資料就有參考性了。這個不難做到,畢竟什麼業務也沒有做;
4、介面之間可以相互調用,也可以調用我們的介面;
這樣是否夠了呢?? 不夠,最大的問題是tuxedo這個巨無霸,只在生產環境才有意義,對於開發和環境又有什麼意義呢?
對這個東西的類比,不是沒信心是不知道到底需要多大的工作量,雖然只是類比緩衝區互動、tpcall這樣簡單的功能,效能什麼的統統不用管!
或者不要這個東西,只有保證我們開發的架構能無縫對接即可。最近看了下有一個開源軟體可以類比tuxedo,叫tuxtone,回頭可以試試!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.