[發案] C/C++ XML Web Service

看板CodeJob作者 (meowyih)時間13年前 (2011/08/04 08:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
凡是「*[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)
文章代碼(AID): #1EEUTsGG (CodeJob)