我对他们如何对以下内容感兴趣:
(因为我的英语有些短语可能很奇怪:))
假设我们需要一个大型航空公司的软件,每个机场相隔200个机场,每个机场有10个软件客户端。
该系统使用3种轮胎结构。
是否只有一个中间轮胎(可能是应用程序服务器集群),所有客户端都连接到,或者每个机场都有自己的数据库,应用程序服务器(独立的相同系统),而且整夜都将dbs同步到中央仓库? / p>
如果所有客户都连接到相同的中间轮胎,并且这个轮胎距离非常远,那么它们如何处理连接错误?他们能承受互联网延迟吗?
此致
答案 0 :(得分:4)
我想只是一个FYI:对于一个真正的航空公司,使用2层方法(或多或少)。例如,最大的GDS(Amadeus)只需要一个表示层(用Java编码)和数据/通信层(一个副本(重度RAIDED)坐在一个地方)。这一点至关重要,因为实时准确性对于航空公司来说非常重要(例如,您需要将预订控制到座位级别,否则您将失去对库存的完全控制权)。此数据/通信层基于大型机,位于德国的单个数据中心,具有8个实时冗余备份。这使您可以了解拥有单个版本数据的重要性,无论其消耗在何处。 Amadeus几乎不使用任何分布式数据。能够处理一个数据库上的巨大交易量的原因是数据模型的简单性(例如乘客旅行的PNR概念)。因此......关键因素是:极高的可靠性,以及在简单的数据结构环境中工作的高速通信速度。救援!大型机和汇编程序!甚至还有一个定制的操作系统来完成所有这些:TPF--由IBM出售,其核心组件建立于40多年前。它提供超高的交易率和极端的稳定性。正如您所料,它相应地非常昂贵。
答案 1 :(得分:0)
答案 2 :(得分:0)
开发n层架构有许多不同的方法。他们选择的那个取决于他们的具体要求。
如果他们需要绝对确保即使没有互联网连接也能运行软件,并且最新数据并不重要,那么他们可以在每个位置使用数据库。
如果他们能够容忍网络连接问题,但他们需要确保所有数据都是最新的,那么它可能是一个Web应用程序,所有层都在一个位置,Web浏览器充当瘦客户端。 / p>
或者富客户端可以连接到中心位置的中间层应用程序服务器。
在任何情况下,连接问题都在软件领域之外 - 在这种情况下,与网络提供商建立服务级别协议(SLA)并安排备份连接以确保可靠的网络运行变得很重要。