[概要] Ice 全能的RPC框架 - 灵活

Ice是个好东西,希望国内能普及

[概要] Ice 全能的RPC框架

Flexible[Ice官方]
灵活[Ice官方]

Ice is Flexible
Make synchronous and asynchronous invocations using TCP, UDP, SSL/TLS, WebSockets, and Bluetooth. Bidirectional connections allow a server to reuse a connection established by a client to make callbacks.
Ice 是灵活的
使用TCP,UDP,SSL / TLS,WebSockets和蓝牙实现同步和异步调用。 双向连接能力允许服务器利用客户端建立的连接进行回调。

Synchronous and Asynchronous
Ice supports both synchronous (blocking) and asynchronous (non-blocking) invocations. With a synchronous invocation, the caller's thread blocks until the RPC has completed. An asynchronous invocation allows the caller to continue using the thread while the RPC is in progress and to be notified of the result.

同步和异步调用
Ice支持同步(阻塞)和异步(非阻塞)方式的调用。同步调用,即允许调用者的线程一直阻塞到RPC完成。异步调用,即允许调用者在RPC正在处理时继续使用线程,然后通知调用者处理结果。

On the server side, Ice supports both synchronous and asynchronous dispatch. The default is synchronous dispatch, where a server's thread reads the request, then locates and executes the implementation. With an asynchronous dispatch, the server's thread gives a callback to the implementation and is immediately available for additional requests. The implementation provides the result asynchronously through the callback.

在服务器端,Ice支持同步和异步调度。 缺省值是\color{red}{同步}分派(这个有点坑),即服务器的线程读取请求,然后定位并执行实现。 通过异步调度,服务器的线程提供功能实现的回调,并且可以立即用于其他请求。 通过回调实现结果的异步。

Bidirectional Connections
An Ice connection normally allows requests to flow in only one direction. If your application requires the server to make callbacks to a client, the server usually establishes a new connection to that client in order to send a callback request. Network restrictions often prevent a server from being able to create a separate connection to the client, such as when the client resides behind a firewall.

双向连接
Ice连接通常允许单向发起请求。 如果您的应用程序要求服务器对客户端进行回调,则服务器通常会建立与该客户端的新连接,以便发送回调请求。 但是网络限制通常会阻止由服务器端发起的与客户端的单独连接,比如客户端位于防火墙后面。

A bidirectional connection offers a solution. Requests may flow in both directions over a bidirectional connection, allowing a server to send callback requests to a client over the client's existing connection to the server.

如何解决这个问题?双向连接提供了一种解决方案。 请求可以通过双向连接在两个方向上流动,即允许服务器通过客户端与服务器的现有连接向客户端发送回调请求。

Code Generation
A Slice compiler will map each Slice type to a default type in the target language. You can also customize this mapping. For example, a Slice sequence<string> becomes by default a std::vector<string> in C++ and a String[] in Java. Slice metadata allows you to generate another compatible type, such as std::list<string> in C++ and java.util.List<String> in Java.

代码生成
Slice编译器会将每个Slice类型映射到目标语言中的原生类型。 您还可以自定义此映射规则。 例如,Slice中的Sequence<string>默认情况下变为C ++中的std :: vector <string>和Java中的String []。 当然,Slice元数据允许您生成另一个兼容类型,比如C ++中的std :: list <string>和Java中的java.util.List <String>。

Dynamic Invocation and Dispatch
Besides static invocation and dispatch, which rely on compiled Slice definitions, Ice supports dynamic invocation and dispatch, which delay the decision as to which types are used for communication until run time. This feature permits you to create applications (such as routers and protocol bridges) that must deal with Slice types that are unknown at compile time.

动态调用和调度
除了静态调用和调度(依赖于已经编译的Slice定义)之外,Ice还支持动态调用和调度,这会延迟决定在运行时使用哪些类型进行通信。 此功能允许您创建必须处理编译时未知的Slice类型的应用程序(如路由器和协议桥)。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容