0

我是一名 Java 开发人员,正在尝试将我的 Camel 驱动后端 (SOA) 上的端点和路由建模为顶点和边图。

例如,如果我有一个以 ActiveMQ 队列开头的 Camel 路由,将其消息出列并将它们传递给 JavaBean,然后将它们传递给,例如,消息最终被消费到数据库中的 Web 服务端点,那么我们具有三个连接端点(“顶点”)的路线:

  • ActiveMQ 队列
  • JavaBean
  • 网络服务

此外,两条单独的路由(“边”)连接这些顶点(队列 -> bean 和 bean -> Web 服务)。

查看 JUNG2 的edu.uci.ics.jung.graph包,我们看到很多图形类型:

  • 抽象图
  • 抽象类型图
  • 代表森林
  • 委托树
  • DirectedOrderedSparseMultigraph
  • 有向稀疏图
  • 有向稀疏多图
  • 图形装饰器
  • 可观察图
  • 有序KaryTree
  • 有序稀疏多图
  • 设置超图
  • 排序稀疏多图
  • 稀疏图
  • 稀疏多图
  • 无向有序稀疏多图
  • 无向稀疏图
  • 无向稀疏多图

如果有人精通 JUNG2(和/或一般的图形结构),那么在如何将 Camel 端点/路线表示为图形的列表中是否有“明显的赢家”?

javadocs 非常模糊,在 Google/Wikipedia 上查找这些对象只会搅动很多我不完全理解的核心图论。

4

2 回答 2

0

听起来您想用图表对服务跃点进行建模,并在其上滚动您自己的执行引擎。与现有 ESB 相比,这可能具有以下优势:(a) 服务编排的设计更加自然,(b) 将为大量复杂的编排实现运行时性能效率。

对于这样的事情,有向图就足够了,至少在您有更复杂的用例之前。排序和排序不会很有用,特别是如果您的编排是动态的。

好奇你是怎么做的...

于 2012-11-17T02:09:57.740 回答
0

除了可能知道骆驼的人(我不知道)之外,您还没有真正描述过您的要求。但是,听起来您有定向关系,因此您将需要 DirectedGraph。听起来你也有不同类别的关系。我不清楚您是否希望在单个图表或多个图表中表示所有关系类别;我也不知道两个顶点是否可以通过多个边连接(如果是这样,您将需要一个 Multigraph)。

于 2012-04-24T04:20:28.400 回答