想象一下,你想设计一个网球预订系统。 你有5个网球俱乐部作为合作伙伴,没有在线api允许你在他们的一边检查法院是否被预定:你也必须建立这个部分。
每次预订都在他们身边,您希望我们的系统知道它。可能在我们的服务器上使用POST请求组建网球合作伙伴。
每次在我们的网站上进行预订时,我们都希望将预订推送到他们的系统。困难在于他们的系统需要在线并且可以从外部访问。 Ip可能会改变,我们必须使用dns更新程序。
如果他们的系统不可用,我们仍然接受预订,并回复到发送给俱乐部的“我确认预订/拒绝预订”链接的异步电子邮件。
我发现整个过程非常复杂,并且想知道在线酒店预订系统和酒店的工作方式。他们都有自己的数据开放和在线吗?
好处是数据会变得很大并且非常适合某些没有SQL;)就像沙发数据库
答案 0 :(得分:3)
这里有几个问题,让我试着解决每个问题......
由于这似乎是具有联合服务器的Internet应用程序,因此使用隐含的HTTP协议非常有意义。这可以通过Form POST,GET甚至REST-ful提交一些自定义数据结构来完成。最后,确切的使用方法需要归结为所传达信息的大小和复杂性。许多架构采用这些方法,并且经常将它们与加密,签名和/或编码的有效载荷组合以确保安全性。使用这些方法需要考虑的一个简短因素是,它们将要求您清楚地传达所有请求/响应消息格式,字段范围和变体,因为这些机制并非真正自我描述。另一方面,这些模式使用非常常见的协议,易于理解,易于实现,并且通常是在线上。
相比之下,具有非常复杂结构的体系结构通常选择使用基于WSDL的Web服务。同样由通用标准驱动,这些标准往往是自我描述的,本质上是可版本化的,尽管它们可能需要更多的时间和精力来实现。 Web服务有许多优点,这些优势由许多WS- *标准驱动,在您的案例中可能值得进一步研究。
至于预订流程......许多类似的架构将采用如下的编排模型:
对于SQL风格的DB注释,我不能说给定的信息量。话虽如此,我的直觉告诉我一个SQL风格的DB对于这个问题集是完全合理的。我有很多数据库,并且有很高的SLA。您暗示需要高可用性,基于SQL的数据库在这一领域有几十年的证明支持。
希望这有帮助。
答案 1 :(得分:0)
我认为您会发现大多数在线酒店预订系统并非真正上线。我的经验是那些提供在线预订系统的公司(不是酒店本身)也坚持酒店本身也使用相同的系统在线预订房间。
只要连接不是问题,一切都能正常工作 - 而在小型汽车旅馆的情况下通常会这样。当然,较大的酒店使用与航空公司相同的系统,并且他们有专门的通信链接。当然,保留在一台中央计算机上,并有适当的备份链接等等。
个别网球俱乐部很容易使用他们自己的数据库/网站提供他们自己的实时在线预订系统,例如MyCourts提供的程序,但是一旦你想连接多个俱乐部设施,那么你真的没有太多选择,除了拥有一个用户和俱乐部都必须用来预留设施的集中式服务器。