平臺和語言無關的網絡服務構建和調用框架:Apache Etch

jopen 10年前發布 | 11K 次閱讀 WEB服務/RPC/SOA Apache Etch

Etch 是一個跨平臺,語言和傳輸方式無關的框架用于構建和調用網絡服務。Etch工具集包含了一個網絡服務描述語言,一個編譯器,一個綁定庫用于各種編程語言。Etch還是一個傳輸無關,能夠基于需求和情況適用各種不同的傳輸方式。利用Etch,使得服務部署和消費變得不再困難,相比庫部署和消費。
etch-logo.png

  • 支持單向的和雙向的實時通信
  • 高性能和可伸縮性
  • 支持客戶端和服務器用不同語言編寫
  • 支持客戶端和服務器運行在不同的在各種環境下(如瘦Web客戶機,嵌入式設備,PC應用程序或服務器)
  • 支持任意增加新的語言綁定和新傳輸方式
  • 是快速和小,同時仍然具有足夠的靈活性,以滿足要求的
  • 最后,它必須易于使用。讓開發人員很方便實現和/或消費服務。

HelloWorld NSDL

module org.apache.etch.examples.helloworld

service HelloWorld {
    struct user (
        int id,
        string name
    )

    exception UserUnknownException (
        string mes
    )

    @Direction(Server)
    string say_hello(user to_whom) throws UserUnknownException

}
客戶端代碼:
String uri = "tcp://127.0.0.1:4001";
RemoteHelloWorldServer server = HelloWorldHelper.newServer( uri, null,new MainHelloWorldClient() );
server._startAndWaitUp( 4000 );
user u = new user(5, "Testuser");
System.out.println(server.say_hello(u));
server._stopAndWaitDown( 4000 );

項目主頁:http://www.baiduhome.net/lib/view/home/1407461538582

     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!