成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Java的通信機制及與C API的集成

開發 后端
本文講解了如何在HTTP協議下實現Java和C之間的交互,是一篇對Java的通信機制及與C API的集成思路探索的好文章。

一個C語言開發的中間件,通過API暴露給二次開發及插件應用。現在由于對其應用的需求變得日趨復雜,而且正在脫離Unix的管理環境,走向基于JWS這樣的BCS管理。有朋友推薦我用JNI,但這樣一是增加了耦合度,二是讓Java睡在JNI感覺不太安穩。在認知了上下兩層的系統平臺后,問題變得明朗起來:如何在HTTP協議下實現Java和C之間的交互?

思路:

先從Java的角度入手,Java間的通信方法:

1 通過URL,Applet/JWS訪問被影射到URL的動態資源(Servlet)

2 通過URL,Applet/JWS訪問共享的靜態資源(Server定期更新靜態資源)

3 通過序列化和反序列化,實現簡單對象的傳輸(比如Resin的Hessian框架就提供了這種通信的方式)

4 通過一些工具做代碼生成,利用Web Services實現客戶端和服務端的交互

此外脫離HTTP,還可以做RMI,socket編程

現在問題是通信的一端由Java變成了C/C++, 于是, 解決方案1需要把動態資源由CGI來定義,而方案3變得不再適用。于是方案有:

1 通過URL,Applet/JWS訪問被影射到URL的動態資源(CGI)

2 通過URL,Applet/JWS訪問共享的靜態資源(Server定期更新靜態資源)

3 通過一些工具做代碼生成,利用Web Services實現客戶端和服務端的交互
  
解決方案:

現在針對上文提出的3中通信方式中的1和3談一談實現的方法,2的實現方案比較靈活,需要發揮大家的想象力了:)

針對CGI:

首先CGI可以配置在各種主流的服務器中作為后端的腳本運行。大家可能對Servlet更熟悉一些。

CGI可以用腳本寫,也可以用C來實現。CGI被觸發后,通過系統的環境變量來獲得輸入,在處理完畢后向標準輸出中輸出結果。

由此可以想見,Web服務器在接受到來自HTTP協議的請求后,首先把請求的參數獲取到,然后設置到環境變量里。

根據對訪問的URL的解析和服務器自身的配置,找到服務于請求的CGI程序的位置,然后執行這個程序。

這個程序被執行后通過環境變量得到了服務器先前設置在環境變量中的參數。在經過一些復雜的邏輯操作后,向標準輸出輸出結果。

這個輸出又被Web服務器所捕獲,轉而傳遞回請求的客戶端。

更多關于CGI的知識和理解,大家可以通過google來尋找答案

上述CGI的方式可以讓我們直接獲取到結果,但是方案比較原始和基礎。其缺點有:

1 需要自己制定類型傳輸協議,做封裝和拆封,否則只支持字符串

2 我們不會為了要用C的API就給它裝一個或者自己實現一個Web服務器的,這讓我們的底層程序顯得蠢笨而冗余。我們希望能有一個超薄的Server外殼,

在對API封裝后,通過某個端口進行開放即可。

針對Web Servcies:

Based on上面的兩個不足,我們只能把希望寄托在Web Services身上了,

筆者在這里推薦給大家的是在C/C++很著名的Web Services工具gSOAP。

通過這個工具,我們可以做到:

1 一個Stand-alone的服務器外殼

2 一個根據API程序自動生成的Web Services服務

3 一個WSDL描述符文件

【編輯推薦】

  1. PHP與Java集成開發詳解
  2. 從VC++移植到GCC后的語法差異
  3. Java與C++編程的不同
責任編輯:佚名 來源: IT專家網
相關推薦

2015-06-16 10:44:42

2009-07-16 09:46:20

iBATIS Log機

2022-09-08 09:59:23

API網絡安全

2020-09-30 06:47:22

Kotlin機制

2011-03-10 15:22:08

訪問控制機制Java

2011-07-01 10:52:49

C++構造函數賦值操作

2009-07-20 09:53:43

Java混合編程

2012-06-28 14:21:20

2009-07-01 18:46:26

2017-12-14 21:45:39

2019-08-15 10:17:16

Webpack運行瀏覽器

2011-07-26 10:46:04

HTML 5

2023-12-11 07:21:12

SPI機制插件

2009-09-04 17:44:35

2024-05-06 12:16:09

2018-08-24 15:15:58

2010-03-18 19:06:35

Java socket

2017-05-15 13:40:20

瀏覽器http緩存機制

2009-07-24 17:22:22

CLR 4.0安全模型

2009-07-09 16:33:06

eclipse jvm
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久一区二区三区 | 国产高清免费视频 | 午夜久久久 | 成人免费片 | 免费黄色大片 | 久久久久国产精品免费免费搜索 | 久久综合久久久 | 亚洲一区免费视频 | 欧美视频在线播放 | 欧美视频网 | 另类亚洲视频 | 亚洲精品中文字幕在线观看 | 99re在线视频精品 | 国产精品一区二区无线 | 久久久精品 | 午夜小影院 | 伊人精品久久久久77777 | 视频一区二区三区中文字幕 | 亚洲欧美高清 | 免费在线观看黄网站 | 看av电影 | 国产精品爱久久久久久久 | 99精品一区二区 | 看毛片的网站 | 欧美日韩亚洲一区 | 一级午夜aaa免费看三区 | 久热爱| 久久精品欧美一区二区三区不卡 | 91在线一区二区三区 | 蜜臀久久99精品久久久久久宅男 | 久久综合九色综合欧美狠狠 | 国产精品久久久久久久久婷婷 | 欧美一级久久 | 国产精品久久久久久久久久久久久 | 国产一区久久 | 久久精品国产一区二区三区不卡 | 久久综合一区二区三区 | 亚洲国产日韩欧美 | 精品国产综合 | 亚洲一区 中文字幕 | 日韩精品一区在线观看 |