计算机网络问题:比较二层和三层架构客户服务器模式,分析各自特点,以及适用场合。
1、简单说client直接访问DBserver为两层结构。
client通过中间件等应用服务器访问DBserver为三层结构。
三层结构比两层结构安全。
2、可以这样理解:客户端程序访问服务器的结构叫两层结构。中间加一个事务逻辑处理封装的中间件作为沟通就是三层结构,这样可以均衡数据负载!
3、拷贝一些基础知识你看一下。(没有)
附:相关知识
现代社会的软件开发体系结构简单概括就是N层体系结构,这里的N大于等于1。换而言之就是:单机体系(N=1)、Client/Server结构体系(N=2)、多层体系结构(N>2)。下面我们就对这几种体系结构进行简单的介绍和比较。
单机体系:这种软件适用于单机状态,一般情况下是针对某一种单一的应用,如字典软件、翻译软件等等。这种开发方式不适用于综合管理系统的开发。
C/S结构:c/s结构是在局域网上发展起来的,它具有数据集中管理的能力,在出现之初确实解决了很多计算机发展的难题,同时随着4GL语言的发展,用户的界面也比较丰富,在CLIENT端的事物处理能力也使整个系统的性能得到全面的提高,并使管理信息系统(MIS:Management Information System)得到快速的发展。其大概的图例见图1。
我们根据两层结构体系的概念来分解C/S结构的话,可以将他分为表现层(也叫表达层)和数据层。数据层提供数据存放的载体,而表现层则通过一定技术将数据层中数据取出,进行一定的分析并以某一种格式向用户进行显示。在两层体系结构中,表现层对数据库进行直接操作,且大部分的商业处理逻辑(Business Logic,数据之间的关系规则)也在表现层中实现.
图1:Client/Server 体系结构示例
三层体系结构:三层体系结构是N层体系结构的典型,所谓的三层体系结构就是将原来在两层体系结构中的商业逻辑部分从数据层和表现层中提炼出来,形成中间件服务器,所以三层就是:表现层、商业逻辑层(Business Logic)、数据层。在此之外,还有一种系统结构就是分布式系统,其结构系统图见图2。
图2:分布式系统的结构示意图
在分布式系统中,其介于客户端和数据端之间的仅仅是一个应用服务器,它管理客户端的软件,但不做性能调整,比如每一个客户端调用时均产生一个新的数据库连接,而不能够将连接保持形成一个连接缓冲池。虽然在分布式应用中已经结合了一些商业处理逻辑,但是并没有真正改变原来的C/S体系结构。
在三层体系结构中,表现层将主要提供与客户的交互功能,数据层提供系统中的所有的数据保存载体,而商业逻辑层将整个系统中的商业处理逻辑整和在一起,形成中间件,在三层中。中间件起了承前启后的作用,表现层将客户端的请求通过IDL调用中间件,中间件在将其转化成数据处理原则,并从数据库中获得相应的数据,返回给客户端的软件,转换成客户要求的方式显示。关于三层体系结构的示意图见图3。
图3:三层体系结构示意图
我们已经简单的介绍了C/S结构和三层体系结构,有关的优点已经昭然若揭,为了更好的让您了解两者的区别,我们将两者进行一些比较。
C/S结构的缺点:
缺乏有效的集权控制:在众多的C/S软件中我们不难看出,所有的构件不能够在一个地点(如一台机器)进行统一的管理,而不得不将他们分化在各个CLIENT的应用中,使得维护和安全保密均很困难。
缺乏安全性:在分散的计算机系统中,控制信息的访问安全是非常困难的,由于客户端经常需要对一些敏感的数据进行分析导致安全漏洞很容易发生。
客户端工作量重:当将一个应用中的所有的商业逻辑全部在各个客户端来实现的时候,仅仅是使用桌面电脑的客户端资源将发生不堪负载的情况。
软件的重用性差:由于C/S结构下的应用软件一般均是根据操作系统进行定制,且开发工具也是有一定的限定,一旦需要改变某一个要素的话,很可能只能重做,例如原来用C语言来开发,现在需要转向PB进行开发,那么,原来的所有工作都需要重新来过。
随着应用的不断复杂,桌面电脑将需要不断的升级以适应系统的性能需求,甚至有时侯会完全超出桌面系统能够承受的限度。例如:诸如多线程和对称多重处理技术等先进操作系统的特性可能不能在标准桌面电脑系统中提供,不通过访问具有这些技术的服务器,客户端的桌面系统将可能永远不能获得这些新的技术的性能。
针对这些问题,三层体系结构给予了很好的解决方案。
在三层体系结构中,提供在客户端和服务器端进行应用功能的分割,系统通过应用将用户定义的界面系统从商业处理逻辑中分割出去。通过将商业处理逻辑集中在中间件服务器中,将能够减小客户端的工作量并使敏感数据访问控制变得简单。
在三层结构中,客户端将与服务器端的数据变化隔离,简单的说,商业处理逻辑不受客户端的用户界面的改变而影响。三层体系中有一个非常重要的特性就是系统具有良好的组件重用性,例如在PB中开发的组件,可以在VC中进行使用。
1 服务器客户机结构概述
11 服务器客户机结构的介绍
WinCC 客户机/服务器结构(Client/Server结构,以下简称C/S结构)是一种在网络基础上,以数据库管理为后援,以微机为工作站的系统结构。这种结构将任务合理分配到客户机端和服务器端,降低了系统的通讯开销,充分的利用了两端硬件环境优势。WinCC 可组态含有多个客户机和服务器的C/S系统,从而更有效地操作和监控大型系统,通过在多个服务器中分配操作和监控任务,平衡了服务器的使用率,从而使性能得到更大的改善。
图1 图2
12 与操作系统的兼容性
对于安装,必须满足操作系统和软件组态的某些要求,不同版本的WinCC 服务器客户机与操作系统的兼容性参考以下链接:
8795716
13 服务器客户机结构的限制条件
服务器端:
每台WinCC 服务器上都必须安装“WinCC Server”授权
客户机端:
根据需求可以分为客户机,Web 客户机和瘦客户机。
表1
1) 中央归档服务器会被视为一个服务器。但它无法被同时当作操作单元使用。
2) 如果服务器也作为操作单元使用,则此服务器的客户机数目会减少到四个。
3) 混合组态: 32 个客户机 + 3 个 Web 客户机
4) 混合组态: 50 个 Web 客户机 + 1 个 WinCC 客户机(也适合工程用途)
2 服务器客户机结构组态介绍
21 服务器客户通讯前提
> 网络连接正常
客户机/服务器系统中所有计算机都必须通过网络(局域网)相互连接。
可以通过Ping 命令 查看通讯是否正常
最好使用ping 来查看通讯是否正常
因为IP 地址和计算机名称的映射需要通过NETBIOS 解析完成,在某些情况下ping IP地址并不能确保整体网络连接正常,更多信息请参考Microsoft MSDN相关文档
连接正常如下图:
图3
> 分配Windows 用户权限
服务器客户机使用相同的用户名(推荐)
服务器端
用户◊本地用户和组◊管理工具◊1) 点击Windows 开始菜单
图4
2) 创建一个新用户或者使用默认Administrator, 为用户分配Administrators ,SIMATIC HMI和 SQLServer2005MSSQLUSER$$WinCC三个用户组。并且为该用户设置密码
图5
客户机端:
创建或者使用与服务器端相同的用户名和密码,检查这个用户是否属于Administrators ,SIMATIC HMI和 SQLServer2005MSSQLUSER$$WinCC三个用户组 服务器客户机使用不同的用户名
服务器端
本地用户和组◊管理工具◊1) 点击Windows 开始菜单
2) 创建一个新用户或者使用默认Administrator, 为用户分配Administrators ,SIMATIC HMI和 SQLServer2005MSSQLUSER$$WinCC三个用户组。并且为该用户设置密码
3) 添加客户机登陆用户的用户名到服务器用户列表中并为其设置与客户机登陆用户相同的密码,依照步骤二为这个用户添加三个用户组。(注意:添加的是客户机登陆用户用户名而不是计算机名称)
图6
客户机端
检查客户机的登陆用户是否属于Administrators ,SIMATIC HMI和
SQLServer2005MSSQLUSER$$WinCC三个用户组
注意:
> Windows登陆用户必须有密码,否则会造成用户权限的限制
> 禁用来宾(Guest )用户的访问
22 客户机类型介绍
WinCC 的客户机对服务器的访问方式可以分为多用户系统和分布式系统
多用户与分布式系统的特性:
表2
23 多用户系统
特点:
多个操作站通过过程驱动器连接访问服务器上的项目。在多用户情况下,客户端没有必要组态项目,服务器负责实现所有公共功能
组态步骤
1) 在服务器上创建类型为“多用户项目”的新项目。
图7
2) 在项目里组态必需的项目数据(画面、归档、变量……)
3) 在项目的计算机属性中添加远程访问的客户机计算机名称,并组态相应的启动,参数属性
图8
4) 在项目中组态客户机的登录用户和权限(此处的登录用户为WinCC 项目的登录用户) WinCC 项目管理器→用户管理器
创建客户机的登录用户,为此用户分配1000 远程激活,1001远程组态权限
图9
5) 在服务器上生成服务器数据包
WinCC 项目管理→服务器数据右键→隐含更新(确保自动导入选上)→创建服务器数据包
图10
6) 在服务器上激活项目
7) 在客户机上通过网上邻居或者Simatic Shell浏览服务器项目, 激活项目
以Simatic Shell为例:
找到服务器的项目选择互连,再弹出的登陆对话框中输入在步骤3中建立的具有1000,1001权限的用户名和密码
图11
注意:
如果在Simatic Shell中看不到服务器计算机。
> 检查网络的连接状况
> 检查计算机是否属于相同的工作组
> 检查Simatic Shell的设置中默认网卡的设置是否正确
图12
> 重新注销登录用户
24 分布式系统
特点:
分布任务在多个服务器上,减轻单个服务器负荷,客户机具有自己的项目,可以浏览多个服务器上的数据,服务器所更新的数据将通过数据包导出特性传送到客户机。使大型系统获得更好的性能。
组态步骤:
1) 在每个服务器上创建类型为“多用户项目”的新项目。
图13
2) 在服务器项目里组态必需的项目数据(画面、归档、变量……)。
单个服务器所承担的任务可根据技术或功能等方面进行分配:
> 技术方面: 每个服务器对过程/系统的指定区进行管理。
> 功能方面: 每个服务器在运行时完成整个过程中的某个指定任务,例如报警记录或归档。
3) 组态具有远程组态能力的客户机,必须在服务器项目中添加此客户机计算机名称
4) 在服务器上生成服务器数据包
WinCC 项目管理→服务器数据右键→隐含更新(确保自动导入选上)→创建服务器数据包
图14
5) 在客户机上创建类型为“客户机项目”的新项目
图15
6) 客户机项目加载所需要的服务器数据(数据包)
通常,服务器数据包将以名称“pck”存储在目录“\\\\Packages\”中。
图16
7) 在客户机项目中组态服务器数据
图17
注意:
并不是所有的数据都包含在数据包内(eg 菜单和工具栏,全局脚本,报表编辑器,用户管理器,交叉索引)如果客户机想要执行以上服务器数据内容,则需要在客户机端组态相应内容或者将服务器相应内容拷贝到客户机对应文件夹下。
3 常见问题
Q :多用户系统下客户机打开服务器项目提示“服务器项目不可用”的可能原因?
图18
A :1 服务器端项目没有打开
2 检查客户机端的Guest 来宾用户是否关闭
Q : 多用户系统下打开服务器项目提示“数据库上下文不存在或者无效”?
图19
A :项目在创建时缺少相应用户权限,请检查创建项目的用户是否属于ADMINISTRATORS 用户组。
Q :多用户系统下打开服务器项目提示“用户没有执行该操作的权限”
图20
A :请检查服务器客户机的登陆用户是否属于Simatic HMI用户组
Q :打开服务器文件夹提示没有相应访问权限
图21
A :当前登录用户没有权限访问这个文件夹,检查这个文件夹的共享权限和安全权限,保证当前的登陆用户能够访问这个文件夹。
Q :客户端打开服务器项目提示“Server is not available”
A :打开“Workstation Configuration”设置成“Multi-user system”
Q :错误消息“Not enough server memory available for this command"
A :IRPStackSize ,操作系统所使用的 I/O 请求数据包 (IRP) 中堆栈数目太少所造成的,一般来讲是在安装防火墙后,在启动WinCC 项目的时候有可能出现,可以修改注册表来人为的增大堆栈数目
Q :客户机定义了启动画面(服务器端),但是启动项目提示找不到起始画面?
A :1 检查此时WinCC 图形编辑器中的画面是否存在,如果编辑器中的画面也丢失,有可能是病毒关闭了此用户的共享权限,建议查杀病毒,重新生成服务器数据包。
2 检查服务器和客户机的用户是否设置了密码,如果没有,添加相同的密码。
0条评论