3D轻量化引擎HOOPS Communicator中的反向代理

一、HOOPS Communicator概述

HOOPS Communicator由三个主要组件组成:Web查看器、服务器和数据创作工具

(1)Web GL Viewer:该组件嵌入在客户端的Web浏览器中,负责显示CAD数据、PMI视图、属性、测量、数据标记等。

服务器:通常被称为单个组件,它由三个不同的部分组成:流缓存服务器、HOOPS服务器和文件服务器

(2)HOOPS流缓存服务器:读取服务器上的流缓存数据并将其流式传输到查看器。流缓存是我们的文件格式,可实现大型数据集的高性能渲染。

(3)HOOPS Server:负责编排后端的流缓存服务器。

  • 文件服务器:主要是为了方便我们的用户启动和运行。许多人会用Apache或Nginx等更标准的东西来替换它。
  • 数据创作工具:允许您将数据引入系统的工具,例如CAD或多边形数据
  • 二进制:我们提供了一个名为Converter的二进制文件,大多数用户都在使用它。它包含大量命令行选项,因此您可以从CAD数据中挑选您想要的内容。

3D模型轻量化及格式转换解决方案icon-default.png?t=N5K3https://isite.baidu.com/site/wjz8psvc/275e648c-86f9-40a6-a112-5771ac5491f2

二、有关HOOPS服务器的更多信息

由于我们为许多不同的行业提供服务,因此我们尝试使我们的工具尽可能灵活。因此,新用户在开始时可能会感到困惑,不知道他们的选择是什么。以下是一些需要记住的快速注意事项:

  1. 您可以使用完全不需要服务器组件的Web查看器,我们称之为SCS查看和加载。基本上,您只需在运行时通过异步获取将SCS文件直接加载到 Web查看器中。
  2. 我们的大多数用户都使用客户端渲染,这只需要流缓存服务器组件。
  3. 您的应用程序可以选择自行管理流缓存服务器实例的生命周期。许多用户不想管理这些流缓存服务器的生命周期,因此他们使用HOOPS Server
  4. 我们不建议您使用提供的文件服务器投入生产,因为它主要是为了帮助您进行初始开发。

三、有什么问题?

流缓存服务器或ts3d_sc_server在其自己的端口上侦听。我们这样做是为了每个应用程序都可以动态分配资源。因此,如果用户加入,它将启动一个新的流缓存,当会话完成时,流缓存会意识到Web sock连接已断开,并自行关闭。在大多数Web应用程序中,标准Web流量仅限于端口80和443 (SSL),并且大多数Web应用程序只想保留其标准端口选项。如果我们要为200个并发用户开放200个端口,我们将开放许多非标准端口,这可能很难让您的IT团队同意。

四、什么是反向代理?

反向代理是客户端和后端服务器或服务之间的中介。因此,当网络请求传入时,反向代理会拦截该连接,然后决定执行某些操作。它可以提供静态内容、重写URL并将流量定向到后端服务器。

在这篇文章中,我们将讨论IP屏蔽或反向代理。如果您正在构建Web架构,我们建议您对反向代理的用途、它们的用途以及您可能使用它们的用途进行一些研究。此外,查看一些常用的软件可能会对您有所帮助。对于此示例,我们将使用nginx。Nginx应用广泛,是一个非常流行的开源工具。我们将使用Docker实例,但Apache可以做到这一点。

五、网络架构

在构建Web架构时,需要考虑多种方法和因素。用例、预期并发用户、数据大小和使用模式都在确定架构方面发挥着作用。评估Azure、Google Cloud和AWS等云服务提供商提供的可用工具非常重要。

要规划架构,建议首先在纸上概述它,然后探索所选云服务提供商提供的工具。负载均衡器、反向代理、容器管理、自动扩展组和Kubernetes是可能发挥作用的一些技术。人们很容易不知所措,因此建议从简单的架构开始,构建概念验证,并根据反馈和使用模式进行调整。

如果您在规划Web架构方面需要帮助,请随时在论坛中发帖或直接联系咨询团队。

六、Web架构示例
看一下这个示例设置。我们有外部用户Janet、Karen和Bradford。

他们通过网络服务器连接到我们的网络应用程序。该网络服务器将通过代理,然后代理将决定我收到的网络连接类型,并在那里做出决定。如果我们使用握手模式,它将通过API访问Web服务器,或者向Web服务器请求已启动且可以连接的服务器的URI。

因此,在这种情况下,我们将在这里连接到Nginx,我们将连接到HOOPS服务器,它将在后端启动流缓存服务器,然后使用需要的URL回复反向代理返回,然后返回,传回我们的Web服务器Web应用程序,然后该应用程序将启动Web工具。同样,它将通过代理连接到后端服务器,以便我们都通过标准端口。

快速说明一下,在我们继续之前,这里的所有内容都被布置为离散组件。今天您将看到我的网络服务器和反向代理是同一个。我们使用Nginx来完成这两件事。您可以在生产中执行此操作,也可以使用Nginx进行路由或使用其他技术进行Web服务器。由你决定。您甚至可能有两个Nginx实例,一个在一台物理机上运行,一个在另一台机器上运行并充当代理。

另外,请注意,我们在此图中使用了两种不同的处理方式。一种是其余握手模式,另一种是Web Socket代理模式。如果我们只是把它写在纸上,那就看起来像这样。因此,我们会让最终用户访问网络服务器,该服务器将访问代理。

在这种情况下,现在我们的反向代理实际上只代理一个端口,它将代理到后端的HOOPS服务器。你甚至不需要这样做。您可以将环服务器端口保持打开状态。在这种情况下,您将打开HOOPS服务器的端口80443和1182,然后您就不需要此处的反向代理。然而,这意味着您的HOOPS服务器对公众开放,这意味着任何人都可以ping或访问该服务器。理想的设置是让所有内容都通过防火墙后面的反向代理,并且只能通过代理访问。

代理的工作原理是直接访问HOOPS服务器,而不是进行REST调用来为我们提供正在运行的流缓存服务器的URL,而是为我启动服务器并直接连接我们。

在本例中,我们代理了两次。我们正在代理来自Web服务器的连接,该服务器将通过一个URL到达HOOPS服务器,供您通过该服务器进行所有连接。HOOPS服务器管理、启动和停止这些,然后通过此处代理连接回Web服务器。

七、练习

在视频的练习中,我们将引导您完成使用Docker、Nginx和HOOPS Communicator构建的示例设置。您还可以在下面的zip文件中找到示例代码。

【虚拟训练】反向代理和HOOPS Communicator

点击查看视频>>https://youtu.be/IbobMZqDYmU

猜你喜欢

转载自blog.csdn.net/Juvien_Huang/article/details/131413621
今日推荐