【deepseek】FDC3 中【API部分】的详细解读

用户问的是关于FDC3的API部分的详细解读。首先,我需要回忆一下FDC3是什么。FDC3是Financial Desktop Connectivity and Collaboration Consortium的缩写,由FINOS维护,旨在为金融机构的桌面应用提供互操作性标准。主要涉及应用程序之间的通信,比如消息传递、上下文数据共享、应用启动等。

用户提到的是fdc3.finos.org中的API部分,所以需要确认最新的FDC3版本,可能当前是2.0版本。然后,我需要分模块解读API。通常,FDC3的API包括几个核心部分:Intents(意图)、Context Data(上下文数据)、Channels(通道)、App Directory(应用目录)以及Desktop Agent(桌面代理)。每个部分的作用和相互关系需要明确。

首先,Desktop Agent是关键,因为它是实现API的中介,负责协调应用间的通信。用户可能想知道如何使用Desktop Agent的方法,比如open、findIntent、broadcast等。需要详细说明每个方法的功能、参数和返回值,以及使用场景。

接下来是Intents和Context Data。这部分需要解释意图的作用,比如一个应用请求另一个应用执行某个操作,如查看报价。Context Data则是传递的数据结构,如Instrument类型,包含资产ID和名称等。可能需要举例说明如何定义和使用这些上下文数据。

Channels部分,分为全局通道和私有通道。全局通道用于广播上下文数据,所有应用都可以订阅,而私有通道可能用于点对点通信。需要解释如何加入通道、广播数据以及监听频道数据变化的方法。

App Directory是应用目录,用于发现可用的应用和它们支持的功能。用户可能需要了解如何查询应用目录,比如使用findIntent的方法来找到能处理某个意图的应用。

此外,可能还需要考虑安全性和权限控制,比如应用需要声明它们能处理的意图和上下文数据类型。同时,错误处理也是API的一部分,比如当没有找到处理某个意图的应用时如何处理。

用户可能是在开发金融应用时需要集成FDC3,所以实际示例和用例对他们会有帮助。比如,如何从交易应用发送一个上下文数据到图表应用显示图表,或者如何通过意图启动另一个应用执行特定操作。

需要检查是否有遗漏的API部分,比如监听器或事件处理,比如添加IntentListener或ContextListener,这些也是API的重要组成部分,用于接收和处理来自其他应用的消息。

最后,总结部分需要强调FDC3如何促进应用间的互操作性,以及使用这些API的最佳实践,比如正确声明支持的意图和上下文,处理多实例应用的情况等。

可能用户是开发人员,需要具体的代码示例,但问题中没有明确要求,所以详细解读每个API方法的功能和使用方式即可。同时,需要注意术语的准确性,比如Desktop Agent的具体实现可能因平台而异,但API保持一致。

FDC3(Financial Desktop Connectivity and Collaboration Consortium)是由FINOS(Fintech Open Source Foundation)主导的开放标准,旨在为金融行业的桌面应用程序提供统一的互操作性框架。其核心目标是通过标准化的API实现不同金融应用之间的通信、上下文共享和协作。以下是FDC3 API部分的详细解读,涵盖主要模块和功能:


1. Desktop Agent(桌面代理)

作用:Desktop Agent 是FDC3的核心中介,负责协调应用程序之间的通信。它通常由平台(如OpenFin、Glue42等)实现,开发者通过调用其API实现功能。

关键方法

  • open(app: TargetApp, context?: Context)

    打开另一个应用程序(或应用实例),并可选传递上下文数据。

    • TargetApp:目标应用标识(如{ appId: 'chartApp' })。
    • context:传递给目标应用的初始数据(如{ type: 'fdc3.instrument', id: 'AAPL' })。
  • findIntent(intent: string, context?: Context)

    查找能够处理指定意图(Intent)和上下文的应用。

    • 返回结果包含应用列表和异步执行方法(execute())。
  • broadcast(context: Context)

    向当前频道(Channel)广播上下文数据,所有订阅该频道的应用均可接收。

  • addContextListener(contextType: string | null, handler: ContextHandler)

    监听特定类型的上下文数据(若contextTypenull,则监听所有类型)。


2. Intents(意图)

作用 :定义应用程序可执行的操作(如查看报价、创建订单),实现跨应用的功能调用。

关键概念

  • Intent 类型 :预定义(如ViewChartStartCall)或自定义(需符合命名规范)。
  • Intent 解析 :通过findIntent()findIntentsByContext()解析到支持的应用列表。
  • Intent 执行 :通过raiseIntent()raiseIntentForContext()触发操作。

示例

javascript 复制代码
// 触发查看某股票图表的意图
const intentResult = await fdc3.raiseIntent('ViewChart', {
  type: 'fdc3.instrument',
  id: { ticker: 'AAPL' }
});

// 处理目标应用的返回结果
intentResult.addResultListener((result) => {
  console.log('Received result:', result);
});

3. Context Data(上下文数据)

作用:定义应用程序间传递的标准化数据格式,确保语义一致性。

常见上下文类型

  • fdc3.instrument :金融工具(如股票、债券),包含id(如{ ticker: 'AAPL' })和name
  • fdc3.contact:联系人信息。
  • fdc3.order:订单详情。
  • 自定义上下文 :可通过type字段扩展(如myApp.customContext)。

示例

javascript 复制代码
// 广播一个股票上下文
fdc3.broadcast({
  type: 'fdc3.instrument',
  name: 'Apple Inc.',
  id: {
    ticker: 'AAPL',
    ISIN: 'US0378331005'
  }
});

4. Channels(通道)

作用:提供发布-订阅模式的数据通信机制,支持全局频道和私有频道。

关键方法

  • getSystemChannels():获取系统预定义的全局频道列表(如"Red"、"Blue")。
  • joinChannel(channelId: string):加入指定频道。
  • getCurrentChannel():获取当前频道信息。
  • leaveCurrentChannel():离开当前频道。

使用场景

  • 全局频道:多个应用订阅同一频道,实时接收市场数据更新。
  • 私有频道 :点对点通信(需通过createPrivateChannel()创建)。

5. App Directory(应用目录)

作用:提供应用注册与发现的元数据服务,声明应用支持的Intent和上下文类型。

应用元数据示例

json 复制代码
{
  "appId": "chartApp",
  "name": "Chart Application",
  "intents": [
    {
      "name": "ViewChart",
      "displayName": "View Chart",
      "contexts": ["fdc3.instrument"]
    }
  ],
  "contexts": ["fdc3.instrument"]
}

目录查询

  • 通过findIntent()findIntentsByContext()从目录中解析匹配的应用。

6. 安全与权限

  • 声明式权限:应用需在清单中声明支持的Intent和上下文类型。
  • 用户授权:某些操作(如打开应用)可能需要用户确认。

典型使用场景

  1. 跨应用协作

    • 交易应用广播选中的股票,图表应用自动加载图表。
    • 邮件应用中的联系人触发通讯录应用拨打电话。
  2. 工作流自动化

    • 通过raiseIntent启动数据分析应用处理当前投资组合。
  3. 数据同步

    • 多个应用订阅同一频道,实时同步市场数据变更。

总结

FDC3 API 通过标准化通信协议,解决了金融桌面应用碎片化的问题,使得不同供应商的应用可以无缝协作。开发者需重点关注:

  1. Desktop Agent 的核心方法调用。
  2. IntentContext 的合理设计。
  3. 频道机制实现数据广播与订阅。

如需深入实践,建议参考FDC3官方文档及平台(如OpenFin)的具体实现示例。

相关推荐
Sendingab12 小时前
深入理解 DeepSeek Harness(dsh):让模型真正“动手干活“的开源 Agent 框架
智能体·deepseek·harness
大模型真好玩12 小时前
DeepSeek Harness 入门很简单(二)——DeepSeek Harness通用设置及Agent预设详解
人工智能·agent·deepseek
仙魁XAN17 小时前
【Codex + Deepseek】第 7 篇:如何把一个模糊想法变成可执行开发需求
人工智能·codex·deepseek·vibe coding
夏文强19 小时前
DeepSeek Harness 底层探秘:Cordis 元框架与「一切皆插件」的实现
人工智能·开源·大模型·agent·deepseek
仙魁XAN20 小时前
【Codex + Deepseek】第 2 篇:什么是 vibe coding:自然语言驱动开发的真实含义
人工智能·codex·deepseek·vibe coding
夏文强20 小时前
DeepSeek Harness 可追溯性实战:会话日志的 resume、fork 与 replay
人工智能·开源·大模型·agent·deepseek
怕浪猫1 天前
Agent 编排 Agent:DeepSeek Harness 的子代理与工作流系统有多强
agent·工作流引擎·deepseek
旺仔Sec1 天前
平安赠书活动第五期:DeepSeek V4-Flash正式版性能跃升,《DeepSeek-V4实战指南》一本书完整解锁AI生产力
deepseek
扉伟庆2 天前
API 网关真流式改造实战:长文翻译首字延迟从 15 秒级降到亚秒级
性能优化·sse·api网关·deepseek·流式输出
我才是银古3 天前
让 AI Agent 读写 Office 文档、看懂大图:几个绕开模型硬约束的工程技巧
deepseek·opencode