在SOA项目中使用Service Bus体系结构的优缺点是什么?
您建议使用哪些建议的开源服务总线平台?
提前致谢
我想为Android制作公共交通应用程序.我面临的第一个问题是如何创建一条公交路线并向用户展示.
我有一个巴士站坐标列表.我明白了,我必须生成编码折线.使用这个工具在这里.我怎么才能在这条路线上显示停靠点,因为我添加的地点比公交站点更多,因为我想要正确地沿着道路前进.如果我只添加公交车站,那么它直接连接它们我不想实现.
如果有人做过或有知识的话,请指导我正确的方向.
问候,邪恶
我知道 在.NET服务总线队列与Azure队列服务之间进行选择
提供了一些关于何时使用队列进行Web /辅助角色和Azure服务总线的答案,但我只是开始研究Azure并且正在寻找更彻底的东西.
它说"NET服务总线更专门用于集成系统,而不是提供通用的可靠消息系统".
只是想知道我是否可以澄清这个?这是否意味着在单独的远程应用程序之间进行通信时最好使用服务总线队列,并且在Web /工作者角色之间进行通信时,使用常规Azure队列.
谢谢
我正在使用Windows Azure Service Bus中继来使用basicHttpRelayBinding公开位于内部的WCF服务 .
对于每个请求,Web服务将使用实体框架从SQL数据库中获取一些数据,然后将结果转换为IEnumerable,最后将响应发送到客户端.
一切正常,我可以从托管在云端的Web和工作者角色中使用此Web服务,但每隔一段时间我就会在等待服务响应时收到504网关超时错误.这只发生在执行时间超过30 - 40秒的查询中.
正在进行一些研究,我发现这可能是由于作为网关/代理的服务器与链中的某个服务器上游之间的通信速度缓慢,但我不确定是否有任何方法可以增加超时值所以我们没有得到504错误.
任何帮助将非常感激.
在阅读了几个CiA规范后,我仍然难以理解CANopen中的PDO映射,过程映像和过程数据交换.
我知道SDO用于预操作状态下的配置设置,并且具有协议开销(因为它可以传输超过8个字节的数据).
在运行状态下,PDO非常适合过程数据的输入和输出.PDO只能传输最多8个字节的数据.
存在11位的COB-ID,其具有功能代码和节点编号.由于节点号使用7位,因此我们最多可以有127个节点(对于CANopen 2.0A网络).
但是有四个TPDO和四个RPDO令我感到困惑.为什么需要多个TPDO和RPDO?在我读取设备配置文件的某个地方可以使用6000h到6FFFh的条目来描述设备参数和设备功能,并且在此范围内可以描述多达8个不同的设备.但是网络中可能有127个节点,那么这8个设备是什么?
我是Otto的新手,我在与Dagger依赖注入器和JobManager一起完成其功能时遇到了严重的麻烦.每当我启动我的应用程序时,我都会收到相同的错误消息:
"java.lang.RuntimeException: Unable to resume activity {sdos.juanjosemelero.pruebaormlite2/sdos.juanjosemelero.pruebaormlite2.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.squareup.otto.Bus.register(java.lang.Object)' on a null object reference"
[...]
"Caused by java.lang.NullPointerException:
Attempt to invoke virtual method 'void com.squareup.otto.Bus.register(java.lang.Object)' on a null object reference".
Run Code Online (Sandbox Code Playgroud)
它引用的线是这一行:
bus.register(this);
Run Code Online (Sandbox Code Playgroud)
这是我的活动:
public class MainActivity extends ActionBarActivity {
@Inject Bus bus;
@Override
protected void onResume() {
super.onResume();
bus.register(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
bus.unregister(this);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的匕首注射模块:
@Module(
injects = {MainActivity.class}, …Run Code Online (Sandbox Code Playgroud) 是否有一般的I2C命令来查看设备在初始化一次后是否仍然存在?例如OLED显示器.我之所以这样做的原因是为了避免主程序冻结(当设备断开连接时),因为库代码中存在无限循环,例如Wire库.
在启动MCU时,我想检查设备是否可用,并在设备可用时进行初始化.我用这个功能这样做,工作得很好.....
bool MyClass::isPnpDeviceAvailable( uint8_t iAddress, bool bIsInitOnce = false )
{
// Try to start connection
Wire.beginTransmission( iAddress );
// End connection without STOP command if already is initialized
return ( Wire.endTransmission( !bIsInitOnce ) == 0x00 ); // No Error?, return true
}
Run Code Online (Sandbox Code Playgroud)
....但是,当我想检查设备是否仍然存在时,在执行更新之前,当我这样做时:
// 1.
if( isPnpDeviceAvailable( 0x3C, true ))
{ /* Cause program hang */ }
// 2.
if( isPnpDeviceAvailable( 0x3C ))
{ /* Cause display to turn off */ }
Run Code Online (Sandbox Code Playgroud)
是否有通用命令,说/只发送一个"Hello,你在那里"并等待回复而不发送START和STOP命令而不中断设备/总线状态?
这是我用附件(可选的PNP I2C)显示器制作的原型设备.
我想在我的一个 Scala 应用程序中实现某种消息总线。其特点是:
我计划做的是将所有节点和总线本身实现为标准 Scala actor。例如我想定义Subscriber这样的特征:
trait Subscriber[M <: Message[_]] {
this: Actor =>
def notify(message: M)
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,混合此特征应该已经注册了该类型的订阅M。
那么这个想法有道理吗?有没有更好的方法来实现消息总线?
我遇到的问题是使用低级API 在C中专门打印出dbus方法调用的响应.我是C的libdbus新手,但在python-dbus上做了一些工作.
我设置代码的方式,python dbus守护进程运行我想要调用的方法.其中一些返回一个字符串.我想要一个C程序连接到会话总线,调用方法,打印出答复并退出.
这就是我目前所拥有的:
#include <stdio.h>
#include <dbus/dbus.h>
static void send_dbus_message (DBusConnection *connection, const char *msg)
{
DBusMessage *message;
//initialize the message
message = dbus_message_new_signal ("/org/example/foo/bar",
"org.example.foo.bar",
msg);
//send the message
dbus_connection_send (connection, message, NULL);
//deallocate the message
dbus_message_unref (message);
}
int main (int argc, char **argv)
{
DBusConnection *connection;
DBusError error;
//init error message
dbus_error_init (&error);
connection = dbus_bus_get (DBUS_BUS_SESSION, &error);
if (!connection)
{
printf ("Connection to D-BUS daemon failed: %s", error.message); …Run Code Online (Sandbox Code Playgroud) systemd 221 中的总线 API。当我为系统总线中的对象请求名称时,它会打印出一条错误消息,指出“权限被拒绝”。我以 root 身份运行输出文件。“sd_bus_request_name(bus, "net.poettering.Calculator", 0)” 行抛出错误:“无法获取服务名称..:权限被拒绝”
我认为 root 应该有权获取对象的名称。有谁知道如何解决这个问题?
先感谢您。
这是来自http://0pointer.net/blog/the-new-sd-bus-api-of-systemd.html的示例代码:
int main(int argc, char *argv[]) {
sd_bus_slot *slot = NULL;
sd_bus *bus = NULL;
int r;
r = sd_bus_default_system(&bus);
if (r < 0) {
fprintf(stderr, "Failed to connect to system bus: %s\n", strerror(-r));
goto finish;
}
/* Install the object */
r = sd_bus_add_object_vtable(bus,
&slot,
"/net/poettering/Calculator",
"net.poettering.Calculator", /* interface name */calculator_vtable,
NULL);
if (r < 0) {
fprintf(stderr, "Failed to issue method call: %s\n", …Run Code Online (Sandbox Code Playgroud)