标签: rpc

用于进程间调用的任何好的和简单的RPC库?

我需要使用内置C++类型的参数从客户端进程向服务器进程发送(可能是一个)简单的单向命令(因此序列化非常简单).C++,Windows XP +.

我正在寻找一个不需要复杂配置的库,提供简单的界面,不需要数小时的学习时间,也没有商业使用限制.解决简单问题的简单方法.

Boost.Interprocess对于这个简单的任务来说太低级了,因为它不提供RPC接口.套接字也可能是一种过度杀伤,因为我不需要在机器之间进行通信.关于DCOM,CORBA等人也是如此.命名管道?从未使用过它们,WinAPI上的任何好库?的openmpi?

c++ rpc interprocess

52
推荐指数
4
解决办法
4万
查看次数

最好的SOAP/REST/RPC Web API示例?你为什么喜欢他们?他们有什么问题?

在我的公司,我们开始分支到Web API来访问和更新我们的数据; 最初是为了合作伙伴,但未来很可能对公众有利.目前API的外观(例如SOAP,REST,RPC)是完全开放的,我们还没有做出任何决定,所以我对人们认为很好的Web API的例子以及你为什么这么认为感兴趣那.

我感兴趣的是使用不同语言的人的意见(我们可能会向使用多种平台的人提供API,特别是包括.NET,Java,ActionScript和JavaScript)关于您认为好的Web API例子,你有很好的经验.

我想谈谈的一些观点:

  1. 您更喜欢SOAP类型服务还是REST/RPC风格服务?我怀疑拥有平台支持的人(例如.NET,Java)会更喜欢SOAP,而使用没有平台支持的语言的人会更喜欢其他人,但我想验证这个假设.

  2. 您是否关心API是否实际上是REST还是它是一个普通的旧式RPC GET/POST?如果是这样,你为什么关心?API是否正确描述自身(即,如果它是RPC样式,并不声称是RESTful)更重要,而不是它实际上是两者之一吗?

  3. 我们需要验证谁在使用该服务.我一直在研究Amazon S3身份验证,它使用公共标识符和私有令牌,用于将请求的参数哈希到验证令牌中(这也类似于flickr).您以前是否使用过这种类型的身份验证,以及如何继续使用它?您是否发现有问题的哈希算法(即您的平台不支持)?您希望在HTTP标头或URI中发送散列吗?

  4. 如何处理版本控制?有一个/v1/类型子目录以便可以同时添加未来的版本,或者你会做一些不同的事情,如请求有效负载或查询中的版本,这是一个好主意吗?您期望支持的API版本需要多长时间(例如,如果引入了v2,那么您在v1的生命周期内的期望是什么).

此外,任何其他意见和要点将有用.

我故意对我们正在实施的API的实际类型保持模糊,因为我正在寻找人们认为好的API和实现机制的一般指导,所以这篇文章及其答案对更多人有用在将来.


注意:我已搜索过,无法找到关于此的一般性问题 - 它们似乎都特定于某种类型的API - 但如果它是重复的,请告诉我.此外,如果它应该是社区维基(我认为人们应该得到答案的信用,所以我没有做到一个)然后请让我知道,我会改变它.

rest rpc soap web-services

48
推荐指数
3
解决办法
2万
查看次数

政府向公众提供哪些公共API?

我偶然发现了NOAA的SOAP服务,它让我思考.政府还向企业和公众提供了哪些其他电子政务服务?我知道美国有很多API,但其他政府如欧盟呢.我不仅对SOAP感兴趣,而且对通过互联网向公众提供的任何远程过程调用(RPC)服务感兴趣.我不仅对数据源感兴趣,还对其他类型的API感兴趣.

api rpc soap xml-rpc egovernment

45
推荐指数
7
解决办法
4333
查看次数

44
推荐指数
5
解决办法
3万
查看次数

grpc和websocket之间有什么区别?哪一个更适合双向流连接?

我想以双向流方式开发客户端 - 服务器应用程序.

什么是更合适的技术 - grpc或websocket?

rest rpc websocket http2 grpc

44
推荐指数
2
解决办法
2万
查看次数

PHP中的REST与RPC

我正在构建自己的Ajax网站,我正在考虑REST和RPC.

如果我的服务器支持Servlets我只是安装persevere并结束问题,但我的服务器不支持Servlets.

RPC更易于编码(IMO),并且可以轻松地用PHP编写.我只需要一个数据库查询执行器.我正在使用Dojo Toolkit和JSON.

为什么我应该选择REST over RPC或RPC over REST?

php rest dojo rpc json

39
推荐指数
3
解决办法
3万
查看次数

GWT RPC应用程序中的异常

我使用GWT RPC和Hibernate使用eclipse环境从MySQL插入和检索数据.我在服务接口中编写了两个方法来插入和检索单个MySQL表中的数据.

该程序运行正常,但它提出了这个例外.

Exception in thread "UnitCacheLoader" java.lang.RuntimeException: Unable to read from byte cache
    at com.google.gwt.dev.util.DiskCache.transferFromStream(DiskCache.java:166)
    at com.google.gwt.dev.util.DiskCacheToken.readObject(DiskCacheToken.java:87)
    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at com.google.gwt.dev.javac.PersistentUnitCache.loadUnitMap(PersistentUnitCache.java:493)
    at com.google.gwt.dev.javac.PersistentUnitCache.access$000(PersistentUnitCache.java:92)
    at com.google.gwt.dev.javac.PersistentUnitCache$UnitCacheMapLoader.run(PersistentUnitCache.java:122)
Caused by: java.io.StreamCorruptedException: unexpected EOF in middle of data block
    at java.io.ObjectInputStream$BlockDataInputStream.refill(Unknown Source)
    at java.io.ObjectInputStream$BlockDataInputStream.read(Unknown Source)
    at java.io.ObjectInputStream.read(Unknown Source)
    at …
Run Code Online (Sandbox Code Playgroud)

java gwt rpc

34
推荐指数
1
解决办法
2万
查看次数

Haskell中的SOAP Web服务?

我必须写一堆小型的Web服务.它们必须由WSDL定义并通过SOAP-RPC工作,以便与现有的工作流引擎和服务注册表框架一起工作.但是,我可以在我选择的服务堆栈/平台上为它们提供服务.

我现在用Java编写它们,并不是太糟糕.但是,如果我能够在Haskell中编写这些服务,我认为我的生活可能会更容易.在Google上搜索,看起来曾经有其他人有同样的想法,并启动了一个名为"HAIFA"的项目.但是,看起来HAIFA已经维护了好几年了,我找不到任何其他框架支持用Haskell编写的服务作为SOAP Web服务.

有谁知道任何其他框架将允许我使用Haskell轻松编写基于SOAP的Web服务?

如果没有,是否有人手动完成此操作(即,使用来自hackage的XML库来处理传入的soap-rpc请求,并创建符合soap-rpc的回复)?这很难吗?任何陷阱?值得努力吗?

rpc soap wsdl haskell

33
推荐指数
1
解决办法
2048
查看次数

GWT RPC数据格式

Google Web Toolkits(GWT)RPC调用的数据格式如何显示以及如何传输IsSerializable对象.我知道Java Serializable传输某种二进制格式,但是这也是GWT的情况吗?(因为我不希望它与JavaScript兼容,或者至少需要一些额外的解析).

gwt rpc protocols

30
推荐指数
1
解决办法
1万
查看次数

每次获取,计数和查询操作会占用多少数据存储读取?

我在读在谷歌App Engine的群体很多用户(FIG1,Fig2,图三)不能找出其中的大量数据存储的读取他们的帐单报告从何而来.
您可能知道,数据存储读取的上限为每天50K操作,高于您必须支付的预算.

50K操作听起来像很多资源,但不幸的是,似乎每个操作(Query,Entity fetch,Count ..)都隐藏了几个数据存储读取.

是否有可能通过API或一些其他方法来知道,有多少数据存储读取背后都隐藏着共同的RPC.get,RPC.runquery呼吁?

在这种情况下,Appstats似乎没用,因为它只提供RPC细节而不是隐藏的读取成本.

有这样一个简单的模型:

class Example(db.Model):
    foo = db.StringProperty()    
    bars= db.ListProperty(str)
Run Code Online (Sandbox Code Playgroud)

和数据存储区中的1000个实体,我对这些操作的成本感兴趣:

items_count =  Example.all(keys_only = True).filter('bars=','spam').count()

items_count = Example.all().count(10000) 

items = Example.all().fetch(10000)

items = Example.all().filter('bars=','spam').filter('bars=','fu').fetch(10000)

items = Example.all().fetch(10000, offset=500)

items = Example.all().filter('foo>=', filtr).filter('foo<', filtr+ u'\ufffd')
Run Code Online (Sandbox Code Playgroud)

google-app-engine rpc profiling billing google-cloud-datastore

29
推荐指数
1
解决办法
6535
查看次数