标签: corba

RMI和CORBA的差异?

我正在学习决赛,并且有一些关于RMI和CORBA的问题.这些是从学习指南中获取的讨论问题,因此没有真正的应用背景.

  1. 为什么RMI和CORBA基于TCP?问题表明要根据调用语义来回答.

到目前为止我所想到的是TCP将比UDP更可靠,而在RMI/CORBA中,我们需要网络可靠性.我还读到了TCP深深嵌入本机Java网络类的地方.我对此声明没有信心,因为CORBA可以用任何语言实现.

  1. 讨论RMI和CORBA名称服务之间的区别.

我对这个问题有点困惑,因为我到目前为止所读到的是RMI和CORBA是融合技术,RMI可以访问CORBA对象.我现在如何理解,名称服务似乎非常相似,任何差异都不值得注意.

  1. 为什么RMI需要显式动态调用而不像CORBA?

我没想出任何东西.

我意识到我问了三个不同的问题,但它们似乎都有关系.

java corba rmi

8
推荐指数
1
解决办法
3502
查看次数

gRPC和CORBA有什么区别?

我在开发SOAP和REST Web服务(在java平台中)方面有着丰富的经验.我试图理解gRPC和CORBA在各个方面的区别,除了它们都能在分布式环境中实现平台中立的通信方式.无论如何,这两个概念的目标/目的在哪里以及如何不同?

提前致谢.

rpc corba grpc

8
推荐指数
2
解决办法
2491
查看次数

使用CORBA进行Java/C++互操作的最佳ORB是什么?

我有一个用Java编写的客户端 - 服务器应用程序,使用CORBA进行通信.使用的ORB是orbd,Java6平台提供的ORBd.我必须用另一个用C++编写的实现替换Java服务器实现.那么问题是,在CORBA库的自由源实现中,哪个更好地与这个ORB互操作?我应该替换Java ORB还使用C++库提供的ORB吗?

目标是在使用新的C++实现替换已经运行的服务器时,可以轻松平滑地进行转换.还有什么我应该考虑的吗?

c++ java corba

7
推荐指数
1
解决办法
7197
查看次数

从IDL生成java(避免默认包)

我正在使用大型遗留C++代码库,其中包含许多IDL文件,这些文件具有在任何模块之外声明的所有类型和常量.

对于C++,这会导致代码生成到全局命名空间 - 丑陋但可以接受.

现在我正在尝试添加Java客户端以通过CORBA进行连接.但是,对于Java,从IDL生成的类型(使用适用于java的Sun/Oracle IDL编译器:idlj)位于java 默认包中,因为它们不在IDL模块中.这会导致Java编译错误,因为从默认包导入是非法的.

我正在寻找解决问题的最简单方法.

我考虑过以下几点:

  1. 在所有类型周围放置一个模块声明.我目前正在使用这个解决方案,但根据受影响的类型数量以及对大型遗留C++代码库的影响,这非常痛苦.
  2. 使用-pkgPrefix或-pkgTranslate选项.到目前为止,我无法弄清楚如何做到一般这个,因为你必须指定一个模块翻译来自或指定类型添加前缀.-pkgPrefix可以用于特定类型,但我们有数百种类型,我宁愿不为每个编译文件专门列出-pkgPrefix选项...
  3. 使用pragma指令?我不知道有人可以使用,但希望大师可以指明方向?
  4. ????

我发现如果没有包含所有类型的现有模块,很难相信没有简单的方法强制IDL在Java包中.我希望我只是错过了显而易见的事!

编辑:

  • IDL-to-Java编译器是idlj.
  • 添加了以下示例.
  • 更新了项目#2(上面),以澄清为每种类型使用-pkgPrefix是不可行的(除非它可以合理地编写脚本?)

例:


Foo.idl

struct Foo
{
  .
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

Foo.java :( 注意没有指定包,这意味着默认包):

public final class Foo implements org.omg.CORBA.portable.IDLEntity
{
  .
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

ClassUsesFoo.java:

package com.sigh;

import Foo;  // <-- this is an error
public class ClassUsesFoo
{
     private Foo f;
};
Run Code Online (Sandbox Code Playgroud)

java corba idl

7
推荐指数
1
解决办法
1819
查看次数

使用JAVA(IOM Bridge)将变量插入SAS.我应该使用CORBA存根和JDBC还是有其他选择吗?

这是我的代码段的一部分

WorkspaceConnector connector = null;
WorkspaceFactory workspaceFactory = null;
String variableListString = null;
Properties sasServerProperties = new Properties();
sasServerProperties.put("host", host);
sasServerProperties.put("port", port);
sasServerProperties.put("userName", userName);
sasServerProperties.put("password", password);
Properties[] sasServerPropertiesList = { sasServerProperties };
workspaceFactory = new WorkspaceFactory(sasServerPropertiesList, null, logWriter);
connector = workspaceFactory.getWorkspaceConnector(0L);
IWorkspace sasWorkspace = connector.getWorkspace();
ILanguageService sasLanguage = sasWorkspace.LanguageService();
//send variable list string
//continued
Run Code Online (Sandbox Code Playgroud)

我需要通过IOM桥将"variableListString"发送到SAS服务器.Java SAS API没有给出明确的方法.使用CORBA和JDBC是最好的方法吗?给我一个提示如何做到这一点.有没有其他方法可以做到?

java corba jdbc sas

7
推荐指数
1
解决办法
318
查看次数

我应该使用CORBA,MessagePack RPC还是Thrift,还是完全不同的东西?

我正在为一个新的硬件设备编写软件,我希望任何一种新的第三方应用程序能够访问它们.

该软件将是一个本机进程(C++),应由第三方游戏和想要支持硬件设备的应用程序进行调查.这些第三方应用程序还应该能够在订阅的基础上从本机进程接收事件.因此,除了原生流程之外,我还将为第三方开发人员提供"连接器"库,以便他们可以选择的所有平台/语言(Java,C++,Python等)嵌入到他们的应用程序中,以便他们可以轻松连接几乎没有任何额外的代码需要由他们写的设备.我想针对所有台式机/笔记本电脑操作系统平台,并且非常了解我想要公开的功能,但理想情况下我不想太过困难(即我希望它能够从客户端和服务器中优雅地扩展观点).

我正在寻求未来的可靠性,性能,可维护性以及未来的跨平台/语言灵活性,以及​​按顺序开发的简易性.

我该怎么用?

CORBA,MessagePack-RPC,Thrift还是完全不同的东西?

(因为它的许可,我省略了ICE)

rpc cross-platform corba thrift interprocess

6
推荐指数
1
解决办法
5239
查看次数

什么是CORBA的真实例子?

什么是使用CORBA的情况的例子?是否只是使用界面语言(例如Java)与所有应用程序"对话"?

corba

6
推荐指数
1
解决办法
8359
查看次数

Ada/C/++分布式应用程序

我正在尝试评估一些技术,以实现一些Ada模块与一些C++/OpenGL模块之间的通信过程.有一个(Windows XP)Ada应用程序使用COM与C++应用程序通信,但我打算将COM切换到新技术.提出了一些建议,例如直接套接字,DSA,Polyorb,Corba和DSS/Opensplice.

  • DSA似乎只是Ada -implemented(不确定)
  • 根据http://polyorb.ow2.org/,Polyorb在2006年的最后一次实施
  • Corba有人认为,证明其实现简单应用程序的复杂性可能不够简单
  • DSS/Opensplice似乎只是实现了C/C++,因此应该完成Ada绑定.它也看起来也不是很简单.

我个人喜欢COM,但由于迁移,我宁愿采用套接字选项,因为它简单,接口架构可以非常容易地实现.

那你觉得呢?您能否对这些技术发表评论,甚至建议其他更多?

非常感谢.

sockets com corba ada dss

6
推荐指数
1
解决办法
1102
查看次数

将CORBA应用程序迁移到现代Java技术(Rest/SOAP/EJB)

我需要将传统CORBA系统迁移到任何最新的Java技术.我面临的主要问题是在所提出的系统中提供长期事务(db).目前,客户端(Swing App)保留CORBA服务对象并在实际提交/回滚所有txn之前执行多个db txn.服务层通过out保持连接对象的状态以完成事务.

我想在我的新系统(REST/WS)中重现这种机制,以便Swing客户端/ Web(未来)可以像现在一样工作.

例如:

try {
    service1.updateXXData(); // --> insert in to table XX
    service2.updateUUData()  //--> insert in to table UU
    service1.updateZZData(); // --> insert in to table ZZ
    service2.updateAAData(); // --> insert in to table AA

    service1.commit(); //  con.commmit();
    service2.commit(); // con.commmit();

}
exception(){
    service1.rollback(); // con.rollback();
    service2.rollback(); // con.rollback();
}
Run Code Online (Sandbox Code Playgroud)

现在我想将CORBA迁移到任何现代技术,但我仍然逍遥法外,为此寻找解决方案.(关注的是客户端不希望对服务层或数据库层进行任何更改),他们只是想删除CORBA.

我可以选择几种

  1. 将CORBA迁移到RMI - >以便当前系统所需的更改最小化,但事务管理,连接池,保留状态需要自行完成.

  2. 将CORBA迁移到有状态EJB - >比较RMI所需的更多更改,但更好,因为我可以使用容器管理的连接池,以更好的方式维护状态.

  3. 将CORBA迁移到有状态Web服务(SOAP) - >更具未来感,但需要进行大量更改 - 我怎样才能将IDL转换为WSDL,并将调用委托给实现层

  4. 将CORBA迁移到REST - >如果可能,最需要 - 但迁移所需的时间很长,从UI层到服务层需要进行代码更改.

非常感谢你提前

java ejb corba rmi ws-transaction

6
推荐指数
1
解决办法
933
查看次数

是否可以从nodejs可靠地使用CORBA?

我正在考虑从通过 CORBA 调用与 C++ 交互的 Java servlet 转移到 NodeJS 后端,但我只发现了两个不完整的项目来在 Nodejs 上实现 CORBA。NodeJS 架构是否存在某些使其与 CORBA RPC 不兼容的问题?如果没有,是否有一些资源可以帮助您在 NodeJS 中开始使用 CORBA?

corba node.js

6
推荐指数
0
解决办法
1427
查看次数

标签 统计

corba ×10

java ×5

rmi ×2

rpc ×2

ada ×1

c++ ×1

com ×1

cross-platform ×1

dss ×1

ejb ×1

grpc ×1

idl ×1

interprocess ×1

jdbc ×1

node.js ×1

sas ×1

sockets ×1

thrift ×1

ws-transaction ×1