【问题标题】:Building webservices and integrating an ESB for an ASP.Net application?为 ASP.Net 应用程序构建 Web 服务并集成 ESB?
【发布时间】:2012-02-24 22:52:55
【问题描述】:

我们有一个 ASP.Net C# 应用程序,它需要某种形式的 Web 服务实现才能与其他应用程序集成。目前我们一直在研究 servicestack 并使用 ESB,例如骡子。

我正在尝试找出将像 Mule 这样的 ESB 集成到我们的 ASP.Net 应用程序中的最佳方法。

我们是否需要在我们的 ASP.Net 应用程序中构建一个 Web 服务以便 ESB 可以与之集成?

如果是,那么选择与 ASP.Net 应用程序和 Mule 兼容的 Web 服务类型(例如 REST、WCF、SOAP、Servicestack)的好方法是什么?

【问题讨论】:

    标签: asp.net web-services rest esb mule


    【解决方案1】:

    这听起来倒退了。您需要集成哪些功能,您想提供哪些功能?

    Web 服务与其实现是分离的,如果您试图以一种可互操作的方式公开您的系统功能,以便广泛的客户端可以访问它,那么您会选择使用 Web 服务。

    您在 Web 服务中执行的操作取决于您,例如,您可以连接您的 ESB。没有什么能阻止你这样做。 ServiceStack 还支持在现有 ASP.NET(或 MVC 应用程序)中托管,请参阅 Hello World example 了解配置 ServiceStack 的不同方式。

    REST / RPC 与 Web 服务的设计有关,ServiceStack 支持这两种模型。即,如果您想在使用不同 HTTP 动词调用服务时提供不同的实现,则从 RestServiceBase 继承。如果您希望使用相同的实现,无论它是如何调用的,请继承 ServiceBaseThis article 展示了 REST 与 RPC/SOAP 之间的区别 - 以及如何在 ServiceStack 中支持这两者。

    因此,如果您公开单个操作(或希望支持 SOAP)使用 ServiceBase,如果您公开一个“资源”并允许使用不同的 HTTP 动词对其进行管理,则使用 RestServiceBase

    【讨论】:

    • 我们希望与其他 esb 集成,因此我们认为实现我们自己的是最好的方法。那么实现 Web 服务是与 esb 集成的最佳方式吗?
    • 正如mythz 所说,这是倒退的。 ESB 与您的应用程序集成,而不是相反。 ESB 可以使用不同的方法在任何级别进行集成:Web 层、API、数据库、消息传递、目录中的文件......
    • 好的,但是对于当前形式的这个 asp.net 应用程序,ESB 如何与它集成?
    • @lanks Web 服务可以像门面一样用来解耦客户端,这样他们就可以参与到您的 ESB 中而无需承担 ESB 依赖性。这两种技术无论如何都不相关,Web 服务可以接受外部请求并将其推送到您的 ESB。它可以追溯到您想要实现的目标 - 关于这是否是所需的方法。即,为什么要将 ESB 集成到您的应用程序中?它存在吗?还是必需的?
    • @lanks 它可以很简单,就像一个 HTTP 应用程序/x-www-form-urlencoded POST 到您现有的表单处理程序之一。或者直接连接到您应用的数据库。
    【解决方案2】:

    我们是否需要在我们的 ASP.Net 应用程序中构建一个 Web 服务,以便 ESB 可以与之集成吗?

    通常情况正好相反。像 Mule 这样的集成中间件使用大量协议只是为了能够在不更改现有系统的情况下连接到它们。

    如果是,那么选择 Web 服务类型的好方法是什么 (例如 REST、WCF、SOAP、Servicestack)将与 ASP.Net 应用程序和 Mule?

    如果您的应用程序确实没有可用于集成的预先存在的通道(甚至不是简单的 Web 表单 HTTP POST?真的吗?)并且您想公开一个 API 以便集成中间件可以连接到它,请选择映射到您正在创建的 API 样式的架构/技术(REST 用于面向资源的 API,SOAP 用于面向 RPC 的 API)。

    【讨论】:

    • 有 Web 表单页面 (.aspx),所以我想 ESB 可以将数据发布到这些页面?我对这个概念不太熟悉。我一直认为提供与外部系统集成的最佳方式是通过 Web 服务 API,例如REST/SOAP。
    • 当然可以,但有时您无法修改正在运行的系统:这时 ESB 能够处理多种协议的能力就派上用场了。但是,如果您计划为您的应用创建 API,那么就去做并使用它。
    • 最初的想法是我们将使用 ESB 而不是创建 API。我做了一些研究并得出结论,将 ESB 连接到我们的应用程序的最佳方式是使用 API。但是,如果可以使用表单发布方法,那么我认为这将是最简单的方法。
    • 我肯定会首先尝试按原样集成应用程序,并且只有在无法解决修改应用程序的情况下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2014-09-10
    • 2020-10-08
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    相关资源
    最近更新 更多