代码之家  ›  专栏  ›  技术社区  ›  Jorge Córdoba

远程UI应该使用SOA实现吗?

  •  2
  • Jorge Córdoba  · 技术社区  · 16 年前

    以前我们有桌面应用程序,但考虑到访问服务器(物理或远程)对于我们将其转换为的客户端来说是不可取的 这将在(理论上)24/7的时间内运行。

    现在,我们需要为该服务提供一个远程用户界面,以便保留旧的功能和旧的界面。

    为此,我们考虑了使用WCF开发几个SOA服务。我们将有一个用于配置的服务,另一个用于网络信息、统计等,这样所有服务的总和提供与旧接口相同的功能,但划分为不同的功能区域。

    我在SOA方面没有太多经验,所以,这种设计正确吗?SOA适合远程UI吗?应该只有一个服务还是应该有逻辑组?

    我们有几个应用程序可以访问服务中的部分信息,这就是我们进行逻辑划分的原因。

    编辑: 是否值得对谁可以连接以及早期可以访问的对象实施任何安全保护?我看到了一个很大的警告,但也许我错了。

    3 回复  |  直到 16 年前
        1
  •  2
  •   Andronicus    16 年前

    当你说“远程UI”时,我想你实际上是指你有一些操作是在远程服务器上执行的,但是通过API远程调用的。

    远程UI意味着userinterface正在服务计算机上运行,用户通过一个投影UI(例如,类似终端服务的东西)与服务交互。

    在SOA api中公开服务所做的工作可能是您想要采取的最佳途径。然后,您可以在Winforms、Silverlight、ASP.Net或将来的任何其他应用程序中实现UI。SOA对很多人来说都是如此之多的东西,但我喜欢将其视为系统中的边界点,其中各方都不知道另一方的实现细节。

    决定服务的粒度并不总是显而易见的,但是如果您试图考虑您提供给服务消费者的功能,而不仅仅是您目前负责实现的UI应用程序。这些事情当然不是一成不变的,随着事情的发展,你可以重构。单个应用程序可以使用多个服务,因此在这方面没有问题。

    在我工作的地方,我们通常先实现功能,然后再考虑安全问题。当然,您的安全需求是特定的,但是您需要考虑诸如所访问的数据的敏感性,或者用户可以通过服务调用的功能。如果该服务在您的网络内部使用或在internet上公开,则可能导致用户尝试恶意行为。例如,业务用户下载VisualStudio副本并创建自己的WCF客户端以造成破坏的可能性很小,但任何事情都是可能的。

        2
  •  1
  •   Matt Davis    16 年前

    听起来你走对了方向。您的问题本质上与我的问题相同,我设计我的问题的方式与您描述的基本相同-Windows服务承载三个WCF服务(到目前为止)和一个前端应用程序,供用户用于与WCF服务进行本地或远程交互。

    如果你没有Juval Lowy的书, Programming WCF Services IDesign.net ,以获取大量免费提供的WCF代码示例。

        3
  •  0
  •   shivaspk    16 年前

    我的观点是,对于前端用户界面,基于SOAP的web服务可能会很重,当负载增加时,性能可能会成为一个问题,相反,基于用户REST的前端服务和基于SOAP的业务逻辑和编排服务,以便实现具有良好性能的高度可扩展应用程序。

    我认为WCF同时支持SOAP和REST服务,REST服务是轻量级和技术中立的,因为它们基于普通HTTP。