首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端服务器体系结构的最佳解决方案

客户端服务器体系结构的最佳解决方案
EN

Stack Overflow用户
提问于 2021-07-27 17:15:43
回答 1查看 157关注 0票数 0

我有一个应用程序,它有两个逻辑部分。

  1. 用Python编写的核心算法专有逻辑。
  2. 桌面上的Winform应用程序。

由于安全问题,我不希望在客户端公开我的核心算法。因为它是用python编写的,所以想让它在服务器上使用,而我的Winform (C#.net)可以通过某种方式连接到服务器。

请建议一些架构图来实现这一点,这样我就可以保护我的核心算法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-27 23:09:19

我能想到的最明显的解决方案是将Python算法托管在*aaS解决方案上,并通过API公开您的算法。

在*用于Python的aaS提供者方面,有大量的选项,例如,Azure函数可能是您的一个选项。Azure / GCP / AWS这样的平台的一个优点是,它们非常成熟,将拥有通过API公开算法、管理安全性等所需的所有工具。

快速入门:使用Visual代码用Python在Azure中创建函数

基本架构

对于整个体系结构,简单地说,您只需将应用程序指向公开算法的API。

  • 蓝色元素:您的代码/系统。
  • 绿色元素:*aaS运行时环境、主机、网络、存储等。

在上面的图表中,我假设:

  • 当您将算法迁移到*aaS平台上时,您将为其创建一个适当的API,以便桌面应用程序能够以合理的方式调用它。
  • 您正在使用类似Azure函数(作为运行时)的东西,它可以作为API托管算法,直接暴露在互联网上。
  • 您的桌面应用程序有一个层,它可以很好地处理服务访问--就像您对数据库访问代码所做的那样,这样它就不会散落在应用程序中。
  • 您有一个配置文件(或其他一些机制),它允许应用程序的操作符指向该算法所在的位置。

生产体系结构

上面的(简单的)体系结构可以工作,但它不是产品级。

  • 蓝色元素:您的代码/系统。
  • 绿色元素:*aaS运行时环境、主机、网络、存储等。
  • Red元素: DNS / networking,它可能位于您的*aaS提供者之外,或者位于它内部(或两者兼而有之)。

描述:

  • 类似于简单的体系结构,只是在请求到达*aaS平台的情况下,添加了某种API网关,并实现了您的服务。这样,您就可以在不影响使用者的情况下交换服务实现。一个合适的API网关还将提供更完整的管理和操作功能。
  • 例如,www.myawesomepythonalgorithm.net允许您控制发送给哪个* was提供者服务流量,假设您希望从Azure切换到GCP (假设服务URL结构是相同的)。
  • 保安!没有显示在图表上,但您可能需要决定如何保护算法免受未经授权的访问。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68549210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档