gpt4 book ai didi

Java实现: Discussion of Approach Desired

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:24 26 4
gpt4 key购买 nike

问题

我想实现TransparencyChecker Interface,它将验证网络中的任何交易所是否都可以使用来自其他交易所的所有交易信息。

问:TransparencyChecker Inferface 如何实现?

问题背景

证券交易所决定相互共享交易信息。如果一个交易所想要与另一交易所共享信息,它安装传出网络链接以转储所有事务。网络链接是单向的,交易所也共享交易,这使得从传入网络链接收到。

代码

interface Exchange {

/**
* Returns list of names of exchanges which receive all trading information
* from this exchange.
* @return list of exchanges
*/
Set<String> getOutgoingConnections ();

/**
* Name of the exchange
* @return name
*/
String getName ();
}

interface TransparencyChecker {

/**
* Checks the transparency of the network. The network is the
* collection of exchanges and each of them has a unique name.
* @param exchanges list of exchanges in the network
* @return true if all trading information is available for every exchange
*/
boolean isTransparent (Set<Exchange> exchanges);

}

最佳答案

问题:验证来自其他交易所所有交易信息是否可用

这里有几个问题,我将重点关注一个:“所有信息均可用”,但简单地提一下另外两个问题

  1. 我们如何知道“全部”的含义?每个交易所都需要弄清楚它应该处理哪些其他交易所。在现实世界中,该列表可能每天都会发生变化(不同的交易所可能会因公共(public)假期而关闭),并且由于时区差异而每小时都会发生变化。因此,获取应该在场的人员名单可能很棘手。
  2. 交换是什么意思?您很可能不会拥有代表 Exchange 的一台机器。交易所的几位代表中的一位“可用”可能就足够了。

这让我想到了首要问题:“可用”是什么意思?让我们只关注 ExchangeA 和 ExchangeB(如果 A 和 B 能够达成一致,那么无论我们使用什么规则,我们都可以扩展到 A->C、A->D、B->C 等。)我们可以考虑 A 决定 B 是否可用的几种不同含义:A 能否在网络级别 ping B? A 最近是否收到了来自 B 的消息(多近?),A 能否理解从 B 收到的消息?也许B需要发送几条消息来描述它的状态,我们都收到了吗?这些消息是否合理?

我建议 A 可以通过在某个商定的时间间隔接收来自 B 的消息来确定 B 的可用性。这些消息可能像

一样简单
"Hello, I'm B, at 13:15 GMT on 21st January 2011, I am functioning correctly"

或更复杂

"Hello, I'm B, at 13:15 GMT on 21st January 2011, I am about to send you my current status,
it will comprise 3 messages including this one. Data XXX, YYY ..."
"2 of three messages from B, at 13:15 GMT on 21st January 2011, Data XXYX, QQQ ..."
"3 of 3 from B, at 13:15 GMT on 21st January 2011, Data PPP, QQQ ..."

现在 A 必须解释这些“心跳”。假设消息每 5 分钟到期一次,而消息已经 8 分钟没有到达 - 这很糟糕吗?假设一条消息丢失,但其余所有消息均已送达?假设有些交付无序?您需要定义您的规则。您需要假设网络确实偶尔会出现故障,会发生小的延迟。

接下来会出现各种问题,例如 B 如何知道告诉 A 其可用。也许 Pub/Sub 方法是合适的?或者应该有一个所有交易所都与之对话的中央注册表,并且每个交易所只询问注册表“每个人都起来了吗?”

关于Java实现: Discussion of Approach Desired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com