【一起学UniGUI】--UniGUI的界面与程序架构(4)

1、【统一的界面】
        uniGUI是统一的图形用户界面,简称统一GUI。之所以称为统一的是因为它在所有带有Web浏览器的设备中提供了相同的UI体验。无论设备、操作系统、CPU和显示器是什么,在所有具有兼容Web浏览器的设备上,用户体验都是相同的。它允许在选择客户端设备方面有很大的*。客户端设备可以是Windows PC、OSX设备、Linux PC、智能手机、平板电脑,甚至是树莓派!

       当然,这个特性并不是uniGUI独有的。这种平*立性是任何Web应用程序都可以提供的。

【一起学UniGUI】--UniGUI的界面与程序架构(4)

2、【程序架构】
      下图表示uniGUI服务器的内部架构。每个uniGUI服务器都有一个服务模块(ServerModule)的副本,每个服务器只创建一个ServerModule,还有多个会话(session),这些会话根据用户活动状态动态创建和销毁。

       uniGUI会话(session)包含一个名为主模块(MainModule)的特殊模块,它为每个会话(session)自动创建。它还包含一个名为MainForm的主窗体,它是Web应用程序的主要入口点。如果项目包含一个LoginForm(登录窗体),它将在主窗体(MainForm)之前被**,以便为用户登录提供可靠和安全的方式。当然,每个会话还可以包含一些额外的模块和窗体。

       每次用户打开Web应用程序的新实例时,服务器都会创建一个新会话。会话将保持**状态,直到用户注销、关闭浏览器/页面或超时为止。每个会话都保持运行的Web应用程序的完整状态,因此uniGUI会话被称为有状态的。您可以将每个会话看作Web应用程序的私有副本,它与服务器地址空间中的其他会话共存,但与所有其他会话隔离。服务器使用一个惟一的“SessionID”标识来创建每个会话,该SessionID可以正确地将客户机请求与会话关联起来(SessionID始终是AJAX请求的一部分)。

       如果uniGUI应用程序只是一个ISAPI模块,那么正在运行的服务器将实例化一个ISAPI处理程序。如果没有Web服务器,则运行中的服务器将启用其内部Web服务器。在这两种情况下,对活动Web服务器的所有请求最终都将进入正确的会话(uniGUI应用程序内部集成有Web服务器,使用顺序为先外面Web服务器再内部集成的Web服务器)。

【一起学UniGUI】--UniGUI的界面与程序架构(4)