问题标签 [ice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - 有人比较过 WCF 和 ZeroC ICE 吗?
ZeroC 的 ICE (www.zeroc.com) 看起来很有趣,我有兴趣查看它并将其与我们现有的使用 WCF 的软件进行比较。特别是,我们的 WCF 应用程序使用服务器回调(通过 HTTP)。
有谁比较过吗?进展如何?我对性能方面特别感兴趣,因为现在互操作性对我们来说并不是什么大问题。谢谢!
c# - 任何使用 C# 和 ZeroC ICE 的经验
我听说它在跨平台互操作和性能方面要好得多。
corba - Zircon Zircomp 与 ZeroC Ice 有何不同?
目前有没有人在使用Zircon Zircomp?他们的技术与ZeroC ICE 之类的技术有何不同?他们是否试图解决相同的问题域?他们的目标受众有何不同?
附加问题:如果我可以在 Ice 和 CORBA 之间进行选择,根据您的经验,我应该选择 Ice 吗?
.net - 在 .net 中使用 SIP 保持活力
我正在创建一个需要在 .NET 中实现 SIP 协议的应用程序。我们有客户端-服务器设置,客户端不断向服务器发送保持活动消息。我们只能使用 SIP 协议或 ICE 支持的任何其他协议。
有人可以帮助我实现这一点。我对这些协议不太了解,但我非常了解 .net。一些示例代码会有很大帮助。
maven-2 - maven的冰格插件
目前我将不得不从 Maven 调用 Ant 任务,如下所示:
http://maven.apache.org/plugins/maven-antrun-plugin/usage.html
python - Django,如何生成没有模型的管理面板?
我正在构建一个相当大的项目,基本上包括以下内容:
服务器 1:基于冰的服务。Glacier2 用于会话处理。防火墙允许访问 Glacier2。
服务器 2:通过 Glacier2 提供 Ice 服务的 Web 界面(读取、公开)。通过 Glacier 2 提供 Ice 服务的管理界面。
我关心的一点是网络界面。我想使用 Django,因为它既是用 python 编写的,又具有非常有用的自动管理面板生成器。
Web 界面不访问任何数据库。它通过 Glacier2 路由器连接到服务器 #1 上的 Ice 服务,并使用这些服务公开的 API 来操作数据。
您可能知道,Django 中的管理员生成依赖于 Django 的 ORM 的使用;我没有使用它,因为我没有要访问的数据库。
所以我需要生成管理面板,但是,我需要拦截任何“db-access”调用并将它们转换为 Ice 服务调用,而不是像 ORM 通常那样进行标准数据访问,然后获取服务的输出(如果有),将其转换为 ORM 通常返回的任何内容并将控制权返回给 Django。
任何人都知道我怎么能做到这一点?我需要子类化什么?有什么具体的想法吗?
谢谢你的时间。
c - 如何使用 pthread_atfork() 和 pthread_once() 重新初始化子进程中的互斥锁
我们有一个 C++ 共享库,它使用ZeroC 的 Ice库进行 RPC,除非我们关闭 Ice 的运行时,否则我们会观察到子进程挂在随机互斥体上。Ice 运行时启动线程,有许多内部互斥体,并为服务器保留打开的文件描述符。
此外,我们有一些自己的互斥锁来保护我们的内部状态。
我们的共享库被数百个内部应用程序使用,因此我们无法控制进程何时调用 fork(),因此我们需要一种方法来安全地关闭 Ice 并在进程 fork 时锁定我们的互斥锁。
在pthread_atfork()上阅读关于处理互斥锁和内部状态的 POSIX 标准:
或者,一些库可能只提供一个子例程,将库中的互斥锁和所有相关状态重新初始化为某个已知值(例如,最初执行图像时的状态)。但是,这种方法是不可能的,因为如果互斥锁或锁仍处于锁定状态,则允许实现对互斥锁和锁的 *_init() 和 *_destroy() 调用失败。在这种情况下,子例程无法重新初始化互斥锁和锁。
在 Linux 上,此测试 C 程序从子 pthread_atfork() 处理程序中的 pthread_mutex_unlock() 返回 EPERM。Linux 需要将 _NP 添加到 PTHREAD_MUTEX_ERRORCHECK 宏中才能编译。
这个程序是从这个好线程链接的。
鉴于在孩子中解锁或销毁互斥锁在技术上是不安全或不合法的,我认为最好有指向互斥锁的指针,然后让孩子在堆上创建新的 pthread_mutex_t 并单独留下父的互斥锁,从而拥有一个小内存泄漏。
唯一的问题是如何重新初始化库的状态,我正在考虑重置 pthread_once_t。可能是因为 POSIX 有一个 pthread_once_t 的初始化程序,它可以重置为其初始状态。
在上面的 child() 示例中,我只通过复制使用 PTHREAD_ONCE_INIT 初始化的新 pthread_once_t 来重置 pthread_once_t。只有在子进程中调用库函数时才会创建新的 pthread_mutex_t。
这是 hacky 但也许是处理这个绕过标准的最好方法。如果 pthread_once_t 包含一个互斥体,那么系统必须有一种方法可以从其 PTHREAD_ONCE_INIT 状态对其进行初始化。如果它包含指向在堆上分配的互斥锁的指针,那么它将被迫分配一个新的并在 pthread_once_t 中设置地址。我希望它不会将 pthread_once_t 的地址用于任何可以解决此问题的特殊情况。
在 comp.programming.threads 组中搜索pthread_atfork()显示了很多很好的讨论,以及 POSIX 标准真正为解决这个问题提供了多少。
还有一个问题是应该只从 pthread_atfork() 处理程序调用异步信号安全函数,而且似乎最重要的是子处理程序,其中只完成了一个 memcpy()。
这行得通吗?有没有更好的方法来处理我们共享库的要求?
middleware - 使用 ZeroC 中间件
我目前正在研究各种中间件解决方案,这些解决方案将使我能够创建能够相互通信的各种语言的应用程序。
ZeroC 产品套件似乎很理想,因为它提供了一种与语言无关的方式来定义数据和对数据进行操作的服务(通过其 Slice IDL),并提供对所有主流语言的支持。它似乎还提供了许多我们想要的其他东西,例如负载平衡、网格计算和托管部署。
但是,我的 google-fu 让我失望了,我无法从使用它来实现系统的人那里找到信息。我正在寻找使用它的项目的反馈,以及他们遇到的问题/成功。我也对评估它并选择不使用它(以及为什么)的项目的反馈感兴趣。
scala - ZeroC Ice 在 Scala 中“检查过的演员表”
ZeroC Ice for Java将每个 Slice 接口Simple
转换为(除其他外)代理接口SimplePrx
和代理SimplePrxHelper
。如果我有一个(所有代理的基本接口),我可以通过使用静态方法ObjectPrx
检查它是否真的有接口:Simple
SimplePrxHelper
我想写一个方法castTo
,这样我就可以用
或者
就我所见,Scala 的类型系统的表达力不足以让我定义castTo
. 它是否正确?
c++ - MSVC 放弃使用“致命错误 C1060:编译器堆空间不足”的模板繁重代码
我正在尝试使用 MSVC (2010) 编译一些相对模板繁重的代码,它最终以fatal error C1060: compiler is out of heap space
.
整个事情只是一个翻译单元,相比之下,gcc 很容易处理它(在 VM 内,资源显着减少)。
任何提示要寻找什么?是否有任何相关的编译器选项?