C# 在服务器/azure上运行和处理函数,然后发送回应用程序并显示

C# 在服务器/azure上运行和处理函数,然后发送回应用程序并显示,c#,windows,wcf,web-services,function,C#,Windows,Wcf,Web Services,Function,我试图用metro UI为Window 8构建一些应用程序,因为Window 8很快将在平板电脑上运行,现在我知道我的应用程序需要大量的处理能力,因此,我想到了一些想法,如果我可以在服务器上制作高性能的进程该怎么办;让另一个VPS或Azure处理函数,然后将处理后的函数结果发送回Windows 8 Metro UI应用程序 我提到的高性能功能: 人脸图像识别-在服务器上识别人脸,然后告知结果 生成图像-一些用户上传的图像将放置水印并重新生成新图像 裁剪图像-像facebook一样,从大图像裁剪

我试图用metro UI为Window 8构建一些应用程序,因为Window 8很快将在平板电脑上运行,现在我知道我的应用程序需要大量的处理能力,因此,我想到了一些想法,如果我可以在服务器上制作高性能的进程该怎么办;让另一个VPS或Azure处理函数,然后将处理后的函数结果发送回Windows 8 Metro UI应用程序

我提到的高性能功能:

  • 人脸图像识别-在服务器上识别人脸,然后告知结果
  • 生成图像-一些用户上传的图像将放置水印并重新生成新图像
  • 裁剪图像-像facebook一样,从大图像裁剪面部
  • 编辑图像-如果裁剪不正确或对齐有问题
  • 过滤数据-来自用户的大量数据,需要过滤然后插入到服务器
  • 和其他人

我脑子里想的是什么,WCF?但我以前从未详细了解过。。在这个问题上有什么要研究的关键词吗??谢谢你的回复=D

基本上,任何允许应用程序和服务器之间通信的技术都可以满足您的要求。如果您实现了这两个方面,您可以定义任何相关方面,如协议、安全性等

关于Azure和WCF:

是的,你可以通过Azure上的WCF实现你的要求。。。Azure和WCF本身并不知道任何关于图像或类似事物的事情-这取决于您实现任何您想要的

即使没有Azure,您也可以使用WCF。。。基本上,WCF内置了一些对负载平衡/路由等的支持,因此您甚至可以为繁重的工作设置一些webfarm

WCF可以使用不同的协议-一些协议对于其他平台更具可移植性(例如,可用于iOS或Android的HTTP/SOAP),另一些协议更具性能(例如基于二进制TCP的协议…)。有些更为防火墙友好(如http)等。 选择哪一个取决于你需要什么

关于地铁:

Metro应用程序可以用C#、JavaScript等实现——根据您的情况,可以选择将其实现为HTML5/JavaScript客户端和WCF/C#服务器端的组合

关于图像编辑等:

如何实现这一点取决于您希望为用户提供的功能。。。有些事情可以通过使用缩小版的图像客户端(如红眼校正)来实现,有些事情相当复杂(如高端颜色校正),因为它们需要几个方面(高分辨率、颜色管理等)

有几个基于.NET的图像处理库(免费和商用),它们提供了多种与图像相关的功能。。。有些具有特定于云的接口(http和/或一些UI控件等)。在云(Azure或类似)中使用库之前,请确保检查许可

编辑图像/过滤器数据是一个广泛的领域,因此不够具体。。。比较图像(在脸方面)似乎意味着你想做一些识别。。。这是一个非常复杂和广泛的领域,但很可能与.NET

因为你没有给出用例/场景的细节,所以很难给出任何具体的建议。。。请随意添加更多细节,以便答案更具体

更新-根据评论,OP希望基本上实现类似于facebook上人脸识别的功能:

在我看来,实现类似facebook的人脸识别是一个非常大的项目。。。识别算法很复杂,“好的”通常是内部开发的,而不是出售/授权给其他人。。。因此,您必须找到一些高质量的图像处理库,并在该库的基础上开发/实现您的算法。这类算法有一些很好的起点,但基本上你需要做大量的工作来增强/完善它们。。。为此,您需要大量的测试数据/图像等

至于水印,这是另一个复杂的领域。。。有些技术是开源的,大多数都不够健壮,这取决于你想要实现什么。。。水印的安全性存在很大差异。。。它是否需要足够强大,以便有人打印和扫描回来?还是有人在屏幕上拍照?还是仅仅为了缩放

另一个方面是法律方面的问题。。。这些算法的几个相关方面已获得专利,这意味着您可能需要获得适当的许可证。。。隐私是实现此类应用程序时需要牢记的另一个法律方面

更新2-根据评论:

用于实现在服务器上调用函数并返回结果的流程的一些通用搜索术语是“SOAP”、“WCF”、“WebService”、“JSON”

您可以找到一些一般信息:


基本上,任何允许应用程序和服务器之间通信的技术都可以满足您的要求。如果您实现了这两个方面,您可以定义任何相关方面,如协议、安全性等

关于Azure和WCF:

是的,你可以通过Azure上的WCF实现你的要求。。。Azure和WCF本身并不知道任何关于图像或类似事物的事情-这取决于您实现任何您想要的

即使没有Azure,您也可以使用WCF。。。基本上,WCF内置了一些对负载平衡/路由等的支持,因此您甚至可以为繁重的工作设置一些webfarm

WCF可以使用不同的协议-一些协议对于其他平台更具可移植性(例如,可用于iOS或Android的HTTP/SOAP),另一些协议更具性能(例如基于二进制TCP的协议…)。有些更为防火墙友好(如http)等。 选择哪一个取决于你需要什么

关于地铁:

Metro应用程序可以b