兩個月C++實習總結篇
阿新 • • 發佈:2019-01-01
實習時間:2012-08-27 到2012-10-24 將近兩個月的實習時間。
工作背景介紹:
首先看一下專案的整體架構。通過圖來介紹一下專案負責的部分:
專案的需求任務是工作流引擎,因為使用Java工作流比較方便,因此,公司選擇使用普元平臺做了基於普元平臺的工作流引擎。通過圖,可以觀察到客戶乃是C++系統,我們做的工作流引擎是相當於客戶C++系統的一個外掛而已。並且客戶的C++系統已經投入使用中了。
為了使公司中的Java引擎能夠相容嵌入到客戶的C++系統中,基於這個需求下,我的工作任務誕生了——中間部分的C++通訊客戶端。
專案技術分析:
整體的架構有了,通過圖,大概能夠知道我負責的C++通訊客戶端這塊的大概技術要求了。中間部分就相當於協調者,協調的主要任務就是通訊。
通過這個小內容技術分析,目的不是吹噓技術,更不是炫耀自己的技術或公司或客戶。而是真實的表達出目前市場技術形勢以及技術需求,需求有了,才會有明確的學習目標。
首先:C++通訊客戶端<——>Java工作流引擎
通訊方式共有三種:
根據業務的需求,通過後臺Java返回的結果,呼叫本地的業務視窗。通過webserivce,每次都是在伺服器端彈出,而不是客戶端,所以webserivce這種方式失敗。為了實現這個業務功能,所以直接讓C++客戶端呼叫,就可以實現客戶端彈出相應的業務視窗。因此,JSP需要與C++打交道。所以,通過寫js事件,呼叫C++方法,即可實現。
這部分通訊,需要JS與C++通訊。主要實現的是Iimdispatch介面。主要是根據名稱,迴圈查詢相應的id,然後通過id,查詢相應的方法。
還有,C++通訊客戶端<——>客戶C++系統
C++之間的通訊,主要是通過函式依賴完成。函式依賴,也就是通過靜態連結庫或動態連結庫方式載入。只要從事C++的,這部分也算是常識了。
這部分重點不是函式依賴,而是socket通訊。
因此socket通訊,這部分內容,也是我們需要掌握的。
無論是windows底層的socket32 api,還是mfc封裝的Csocket,原理都是一樣的,只不過,mfc封裝的Csocket或java封裝的socket,相對於socket32簡單些。
在通訊的過程中,使用udp方式,因為udp相對於tcp簡單,不需連線,不許監聽,但是有優點,就會有缺點。udp不如tcp安全。
但是,udp依然可以做到tcp的三次握手。由於業務的需要,在udp之上,又添加了tcp連線。只要udp用的合適,用的好,與tcp無差別。
其中,內部還涉及到了解析xml,建立xml,這部分的內容也是為通訊做準備。
在技術分析這塊,只要總體介紹了工作專案中應用到的技術,而沒有具體介紹,在後期部落格中會有相應的詳細介紹,目的:記錄工作經驗,同樣方便別人。
生活篇
雖然在公司天天加班,但是公司的氛圍還是挺好的,嘻嘻,都是一幫剛畢業的”北京青年“。餐桌上有說有笑,有搶有奪,飯後有打有鬧。呵呵,所以心情還是挺愉悅滴。
自我感覺,自己還是挺重感情的,喜歡結交朋友,喜歡水滸中的英雄好漢,喜歡桃園三結義,喜歡古惑仔情義。感覺自己就像個男孩子,但是喜歡情義的我,其實,內心也並不寬廣。但是吧,生氣一會,就沒事了。
這次實習的公司,認識了新的朋友,無論是搞安卓的小李子(李衝),還是搞java web的小楚子(楚福偉),還是實習生喜洋洋(陳陽羊),還有最後實習走轉行的郝峰o(︶︿︶)o ,還有搞怪的,經常送我小耳釘的人事部的雪娜,還有跟他們合夥對抗“敵人”—王國濤。還有就是不愛說話的技術蠻深的小吳(組長),還有……
突然實習結束,有種捨不得的感覺。喜歡跟他們一塊吃飯,喜歡在餐桌上一起打鬧,喜歡飯後聊天……
在客戶那邊,接觸最多的也就是小曹了,感覺技術很高,尤其是思維敏捷。在C++上,同樣幫助我很多。
可回來的匆忙,無論是公司還是客戶,一些可愛的朋友,都沒有見面道別……
北京之旅,收穫很多。知識,信心,朋友人氣……
其實,我對知識並不是太看重,知識,技術,是永遠學不完的,只要會學習,想學習,沒有學不會的。
- webserivce,與語言無關的介面。並且是個基於w3c標準。其中,在專案中,我就是通過webserivce來實現C++與Java通訊的。其中,C++客戶端使用的soap或gsoap。
- JNI方式。統稱為Java Native Interface,Java本地呼叫方式。JNI標準已經是Java平臺的一部分,允許Java與其他的語言進行通訊,一般情況下,主要是為了C或C++設計的。只要他們約定好介面就行。 在JNI方式中,因為本地呼叫,所以在Java宣告方法時,是使用native關鍵字,說明是非Java語言實現。具體的方法實現則是在C++或C中。
- socket通訊