平台和语言无关的网络服务构建和调用框架:Apache Etch
jopen
10年前
Etch 是一个跨平台,语言和传输方式无关的框架用于构建和调用网络服务。Etch工具集包含了一个网络服务描述语言,一个编译器,一个绑定库用于各种编程语言。Etch还是一个传输无关,能够基于需求和情况适用各种不同的传输方式。利用Etch,使得服务部署和消费变得不再困难,相比库部署和消费。
- 支持单向的和双向的实时通信
- 高性能和可伸缩性
- 支持客户端和服务器用不同语言编写
- 支持客户端和服务器运行在不同的在各种环境下(如瘦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 );