[發案] C/C++ XML Web Service
凡是「*[30m」開始的行,都請使用 Ctrl + y 刪除。
請注意:發案人須主動更改標題[]內與內文之案件狀態(發案,成案,結案),
案件狀態、發案人、聯絡方式1、有效時間、專案說明為必填項目,
如果對於發案文章格式有不清楚的地方,請參考置底文章:[發案] 發案範例
案件狀態:發包中
發案人: 站內信
聯絡方式1: 站內信
聯絡方式2:
有效時間: 2011/8/20
專案說明: 說明於文末
預算:20萬 ~ 50萬 (視討論的 project scope 大小而定)
接案者要求:1. 由於需要和現存的 C API 整合, 希望專案是以 C/C++ 完成,
另一個備用解決方法是用 JNI 把 C 包起來,
再套用 Apache + Cocoon 之類的 Solution,
但還是以 C/C++ 優先考量
2. 需提供源碼與基本文件, 並開放未來更動的權利
接受新手承案否:否
附註:目標是建立一個簡單的 "Web Service",
雖然名稱是叫 Web Service,
但實際上其功能比較接近可以處理 XML 的 HTTP Server,
基本架構如下:
| Server
======================================================
|
+-----------+ Socket/SSL Binary File +---------+
|XML |--------------------------> | | Web/AP Base Tool
|Text | | Text |C Library| ---Init/Shutdown/Reload
+-----------+ | .----------- | |
|Binary File| | | +---------+
+-----------+ | | Text +--------+
| .-----------> | |
+-----------+ | SQL |Database|
|XML/Text |<-------------------------- | |
+-----------+ Socket/SSL Data +--------+
| |
| |
| Web/AP Base Tool
| Add and Delete Record
這是預期中的架構, 這個專案只包括 Server-side 的實作與建立的部份,
Client 端只是單純的看 Spec 將定義的 XML 送到 Server 中並等待回應,
不需要用到 SOAP, 其中粉紅字的部份功能可以刪減,
這部份也是專案預算的 range 的討論範圍
Server 包括的功能有:
1. 對外的 XML Query function (預期會有頻繁的 Queries)
2. 對內的客戶管理與流量統計
3. C API 的控制介面
現存的 C API 包括 init/shutdown/add data/remove data,
需要有基本的 UI 讓 Server 管理者可以重啟和管理 C Library
4. Database 資料的增減與管理
5. Web Server 的安全管理
Server 的 XML Query 邏輯如下
1. Server 收到從 Socket/SSL 傳來的 Query XML, 類似於
<QUERY>
<CMD="QUERYTYPE_XXX">
<CLIENTID>51231243242</CLIENTID>
<USERID>3242323524</USERID>
<DATA>...Some Base 64 Data about 100K</DATA>
</CMD>
<QUERY>
2. Server 判斷 CLIENT ID 是存在且尚未過期, USERID 是否合法,
並記錄下這次的連線供未來統計流量或次數之用
3. 如果是合法的 Query, Server 將 DATA 部份抽出, 還原成 Binary Data,
呼叫 C API 將 Binary Data 轉成不超過 1KB 的的文字或 ID
4. 利用 3 所得到的文字或 ID, Query Server 內的 SQL Database,
取得相關文字資料
5. 將 4 從 Database 取得的資料, 用同樣的 Socket/SSL 回傳給 Client 端,
回傳的 XML 類似於
<RESPONSE>
<STATUS="OK">
<NAME>資料1</NAME>
<ID>資料2</ID>
<COMMENT>資料3</COMMENT>
</STATUS>
</RESPONSE>
基本的概念是這樣, spec 的細節部份請再跟我連絡
其他如 Database 表單的複雜度或 C API 與 DB 的 Web/AP base UI 的難度,
是需要討論預算和時間後再共同決定
有興趣的請寫信給我吧 ^_^
外部流程如下:
(以下內容鼓勵結案後填寫,可以詢問接案人願不願意暴光接案身份)
結案意見:
接案人:
評價(0-10):
說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.131.72
※ 編輯: meowyih 來自: 61.57.131.72 (08/04 09:57)