= 2010-12-12 = == Python RPC == * 上週東南亞會議與 Intel 的 Richard 討論 Tashi 的架構,他提到他是用 Python 來寫 RPC 溝通。實際上 Hadoop 也是靠 RPC 方式來作到分散式的架構,所以如何用 Python 來撰寫 RPC 似乎可以拿來作為後續改良 DRBL 相關佈署工具研發的參考。目前找了一下有 XML-RPC 與 JSON-RPC 兩種實作,紀錄如下: * [http://www.ibm.com/developerworks/webservices/library/ws-pyth9/? The Python Web services developer: Messaging technologies compared] - 比較 SOAP, CORBA, XML-RPC, 跟傳統的 socket 。 === RPyC == * 根據 [http://incubator.apache.org/tashi/documentation-single.html Tashi 單機安裝文件] * 需要安裝 RPyC 才行 * [http://en.wikipedia.org/wiki/RPyC 維基百科關於 RPyC 的介紹] * [http://www.ibm.com/developerworks/linux/library/l-rpyc/ IBM developerWorks 文章:Charming Python: Distributing computing with RPyC] - A native Python option for seamless control of many machines === XML-RPC === * [http://packages.python.org/qam/introduction.html QAM - A python RPC Framework using AMQP] - 支援 AMQP 的 Python RPC (居於 XML-RPC) * [http://omatic.net/?p=67 Arduino + Ethernet shield + XML-RPC + Python] - 這個人用 Arduino 搭配 XML-RPC 來作鋼琴的控制 === JSON-RPC === * 當然習慣訴求輕量化的我比較喜歡 JSON-RPC,但是若考慮安全性的話,就得注意是否支援加密了。 * 2009年有人曾經提過希望 Debian 可以打包 [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542166 python-jsonrpc],只是目前還沒有看到進展 * 目前看起來 JSON-RPC 標準的實作,放在 http://www.json-rpc.org 這個網站 - Python 的套件可以看 [http://json-rpc.org/wiki/python-json-rpc python-json-rpc] 的說明 * http://www.freenet.org.nz/dojo/pyjson/ 有另一個 Simple JSON RPC Server 的實作 * [http://www.simple-is-better.org/rpc/ RPC / JSON-RPC] - 這裡有寫一些關於 JSON-RPC 與 XML-RPC 的比較 * [http://developer.spikesource.com/wiki/index.php/Article:Accessing_JSON-RPC_with_Python Accessing JSON-RPC with Python] * 不確定 Tashi 是否用的是這個軟體 [http://webpython.sourceforge.net/docs/webpython_manual/reference/pyrpc.html webpython 的 pyrpc] == Web Service == * [http://pyjs.org/ Pyjamas] - Python Javascript Compiler, Desktop Widget Set and RIA Web Framework - 在查 RPC 的時候看到的,據說可以跟 Google Web Toolkit 作溝通 * [http://code.google.com/intl/zh-TW/webtoolkit/ Google Web Toolkit] - 建置、重複使用與維護龐大的 JavaScript 程式碼以及大量的 AJAX 元件,是一件相當困難而繁瑣的工作。Google Web Toolkit (GWT) 可讓開發人員使用 Java 程式設計語言,快速建置與維護複雜但高效能的 JavaScript 前端應用程式,藉此減輕開發人員負擔