HRP专业版技术白皮书金蝶医疗卫生软件有限公司2012年2月提要提要本白皮书阐述金蝶HRP专业版的技术特性本白皮书阐述金蝶HRP专业版的应用部署方案本白皮书阐述金蝶HRP专业版的系统维护方案本白皮书阐述金蝶HRP专业版的应用模式方案未经金蝶医疗卫生软件有限公司书面许可,本白皮书任何部分的内容不得被复制或抄袭用于任何目的。本白皮书的内容在未经通知的情形下可能会发生改变,敬请留意。本文中提到的所有其他公司、产品名称可能是相应所有者的商标或注册商标,仅用于-I-标识的目的除以下已经声明之外,本白皮书提及一些产品或技术还可能是以下或其它产品供应商的权益。目录1.概述..12.金蝶HRP专业版的技术特性..2总体..2三层架构..2WindowsDNA结构特性.3MS.NETFramework..6金蝶HRP专业版系统的结构特性..10金蝶HRPBOS.13概念.14技术价值.15业务价值.15快速配置特性.163.金蝶HRP专业版的应用部署方案.21基本部署方案.21中间层服务器..23HR/Web服务器..24数据库服务器..25客户端.26软件配置.27网络环境.28高级部署方案.28SQLServer高可用群集.284.金蝶HRP专业版的系统维护方案.29系统性能维护.29性能监测.30性能检测警报..33性能调整.34硬件升级.35系统安全维护.35系统安全概论..35环境安全.36软件系统安全性.37HRP专业版系统的安全设置..46与操作系统的安全机制相结合.47中间层的安全策略.47数据库端的安全策略.47HRP专业版身份认证应用方案..47域用户登录方式.48-II-命名身份登录方式.48网络安全..49系统安全措施..49网络方案.52防火墙技术..53VPN技术.53故障与恢复.55网络及设备.56服务器..56系统备份..57系统备份.57AD备份.57数据库备份..585.金蝶HRP专业版的应用模式方案.58集中式应用.58分布式应用.59远程传输方案..59应用案例说明..60-III-1.1.概述概述为规范卫生部部(属)医院综合运营管理工作,有效控制‘人’、‘财’、‘物’全方位管控,加强成本核算与控制,提高医院绩效,依据《医院会计制度》(财会[2010]27号)、《医院财务制度》(财社[2010]306号)和有关财经法律法规,根据全国医院市场调查分析,金蝶医疗推出HRP专业版,满足中小型医院的新医改需求。但中小医院搞信息化和大医院相比有“三难”:第一,缺资金。大医院搞信息化动辄几百万、几千万甚至上亿,而中小医院总的资产还没有那么多,肯定用不起。第二,缺技术。有些中小医院这几年因为经济效益比较好,也攒了一些钱,想干但缺乏必要的技术支撑,不知道怎样有效的组织。第三,缺人才。中小型医院缺熟悉信息化方面的工程师,在纷繁芜杂的各种计算机技术环境中,难以让信息系统在医院实际应用中立竿见影的生效。金蝶医疗软件为中小医院信息化量身定制的金蝶HRP专业版系统,以极高的性能价格比,成熟稳定的技术架构,有效地解决了中小医院信息化的难题。并且通过金蝶HRP专业版独具的快速实施、快速配置、快速应用、快速见效的“四快”特性,为医院的信息化管理能够根据用户的需求变化做出调整,快速地构建新的应用,提供了有效保障。提升医院竞争优势,帮助医院快速、从容地应对变化。除了资金、技术、人才的制约外,软件提供厂商同时还面临着应用程序需求方面的广泛挑战。譬如: 应用程序可能通过广域网(WAN)或Internet分布在全世界范围内; 用户和应用程序的连接可能是非持续性和低速的。例如,用户可能使用笔记本电脑,每天只有部分时间连接到医院的网络上。客户可能通过Internet和低速的调制解调器连接; 应用程序所需数据可能存储在多台机器上。这些机器可能分布在不同的地方,并且可能不是全天可用; 对现存的硬件和软件的投资必须加以权衡。用户可能装备有不同类型的机器,这些机器的功能也不尽相同。新的应用程序可能需要与运行在不同平台上的现有应用程序交互操作。综合考虑这些因素,在本白皮书中,我们将从金蝶HRP专业版系统的技术特性、应用部署、系统维护、应用模式几个方面,对金蝶HRP专业版系统的分布式应用解决方案,在技术上进行全面的阐述。12.2.金蝶金蝶HRPHRP专业版的技术特性专业版的技术特性总体金蝶HRP专业版系统的主要技术特点: 基于WindowsDNA和.Net技术架构 基于主流的MicrosoftSQLServer32位/64位数据库 支持国际化(多语言) 完善的基础服务(对象管理及访问、权限、安全、消息、BOTP、工作流) 全面的支持工具(界面定义、对象定义、报表定义、多语言工具、后台事务定义等等) 敏捷(开放、可重构、可重用、可扩展)、集成金蝶HRP专业版的部署模型: Windows客户端(支持XP/2000/2003/Vista等主流Windows操作系统) 客户端支持动态更新(AutoUpdate),能自动更新系统补丁。 Asp.net的Web网页客户端 支持组件负载均衡(CLB)和网络负载均衡(NLB) 访问支持HTTP(广域网)及TCP(局域网) 通过WebService支持第三方的应用集成三层架构金蝶HRP专业版系统是基于WindowsDNA(WindowsDistributedinterNetApplication)技术架构的分布式应用系统。金蝶公司1997年开始研究三层结构技术,1998年应用于K/3系列产品的研发,1999年5月推出业界第一个真正三层结构的ERP产品。经过近7年的潜心研究和大量的客户验证,现在三层结构技术在金蝶HRP专业版系统中的应用已经逐渐的成熟、稳定,成为金蝶软件提供给中小医院用户的性价比最好的医院ERP系统。WindowsDNA技术特性WindowsDNA的核心是将Web和Client/Server应用程序开发模型通过组件对象模型(COM)进行集成。WindowsDNA的服务通过COM以一种统一的方式提供给应用程序使用。这些服务包括组件管理、动态HTML、Web浏览器和服务器、脚本、事务、消息队列、安全、目录、数据库和数据访问、系统管理和用户界面。2WindowsDNA包含了Web计算的一套完整的、开放的方法。它基于许多重要的、来自标准化组织的标准,如W3C和IETF的标准。遵守开放协议和接口可以容易地与其它厂家的方案集成,同时提供了对现存系统的广泛互操作性。由于WindowsDNA基于COM和开放的Internet标准,程序员可以使用任何语言或工具生成兼容的应用程序。COM提供了一个现代的、独立于语言的对象模型,提供了在应用架构各层上的应用程序互操作性。通过COM,程序员可以通过软件组件来扩充程序的任意部分,这些组件可以用C++、VisualBasic®、Java或其他语言编写。由于这种开放的方法,WindowsDNA支持很多的开发工具,包括来自微软、Powersoft®和其他厂家的开发工具。.WindowsDNA结构特性WindowsDNA的结构设计对应用程序最大化: 自主性 可靠性 可用性 可扩展性 互操作性自主性应用程序自主性指管理重要资源的能力。应用程序需要重要资源以独立可靠地运行其功能。RDBMS连接、主机连接、和事务都是重要资源的实例。应用程序自主性无疑是WindowsDNA应用程序设计中最重要的方面之一,也是两层、三层结构设计中最不同的方面之一。在典型的两层结构程序中,客户直接访问程序的重要资源,并且可以自由地使用这些资源。3两层结构的客户/服务器程序是非自主性的,即客户直接访问程序的重要资源,并且在需要时自由使用这些资源。因为客户可以直接访问程序的重要资源,程序无法保护自己免受破坏行为或其他意外行为的破坏,因此破坏了程序的总体稳定性。比如,一个恶意客户也许有意耗尽程序重要资源,阻止其他客户工作。这样的攻击会使无抵抗的程序变得毫无用处。WindowsDNA程序,不允许客户直接访问重要资源,客户发送请求到特定的被信任的组件(执行者)来进行程序设置的业务操作(比如,收入所得税计算,订单处理等)。举个例子,采购订单执行者可以进行必要的操作在一个订单中增加一行:保证仓库中有货、计算销售税、运输费用等。通过强迫客户发送请求到执行者来执行业务操作,重要资源通过一种信任的、定义的方式来使用,WindowsDNA程序保证对自己资源的完整控制,从而提高了程序的稳定性。因为执行者是被信任的组件,通过它们对重要资源直接访问,这意味着它们必须注意使用重要资源的方式。在执行者以任何客户的名义进行任何操作前,它必须验证正在发送请求的客户的有效性,验证该客户被授权执行该操作,检测客户请求的正确语法与数据有效性。任何不合法的请求立即会被否定。可靠性可靠性指应用程序提供准确结果的能力。然而,在一个多用户环境下返回准确结果并不容易。例如,一个程序设计用来转账,即一个账户借、同时另一个账户贷。尽管看起来是一个简单操作,请设想当借操作完成后,系统硬件或软件失败了,贷操作没有完成。或者设想这样的情况,两个用户每个人同时将一个账户的收支平衡提高50元,但每个人读到的原始值均为100,那么经过操作后的值为150,得到了错误结果,应该是200!为了保证结果准确,执行者应该作为MTS的一部分进行业务操作,MTS用于管理事务(Transaction)处理。事务(Transactions)保证状态传输遵循原子性(Atomic)、一致(Consistent)、隔离(Isolated)、持久(Durable)——即(ACID)原则。4 原子性(Atomic)操作保证操作序列完全完成或不执行。因此对最前面的案例,借、贷操作必须同时成功才能完成整个的操作;否则,系统回到原始状态。 一致(Consistent)改变保证资源的内部完整性。例如,从主表中删除记录,如果存在关联记录,将会违反数据库的参照完整性。 隔离(Isolated)变化表现为顺序的,一个接一个,两个变化不同时发生。 持久(Durable)指将变化的结果保存的能力,通常是保存到硬盘,改变的结果可以恢复,一旦系统失败。由于事务会锁定记录来保证ACID,它们应该作为重要资源,即客户不允许直接访问。设想当用户开始一个事务,他离开办公室去喝咖啡!被事务锁定的任何记录都无法访问,直到用户回来或系统超时。因此要维护程序的自主性,WindowsDNA程序应该把事务(Transactions)作为重要资源。可用性可用性指程序可以响应客户的时间。程序的可用性依赖于很多超出程序员控制的因素——硬件可用(硬盘、网卡等)、软件可用(数据库、Web服务器、队列系统等)和网络可用。提高软硬件可用性,WindowsDNA应用应当减少任何潜在的单点失败,可以采用冗余系统。WindowsDNA程序应当安装在拥有RAID、多网卡、多控制器的硬件上,使用MicrosoftClusterServer(MSCS)进行群集。WindowsDNA程序可以通过MicrosoftMessageQueueServices(MSMQ)仿真提升网络的可用性。MSMQ提供了存储转发功能,允许在网络失败时将消息暂存在本地机器上。一旦消息进入MSMQ等待发送,MSMQ会经常、重复地试发每个消息,直到消息发出或超时。这种方式可以保证消息的传输,比基于会话的网络通信服务(如DCOM和RPC)有明显的优势。而且,MSMQ支持动态路由,MSMQ可以动态地选择网络用于发送消息。通过增加用于消息传输的网络,程序增加了成功路由消息的机会。动态路由也是MSMQ优于基于会话传输的特点。可扩展性可扩展性的理想目标是取得针对额外资源的线性吞吐量的增长,即允许程序在任何地点支持十到上万的用户,只需通过简单地增加、减少资源来扩展程序。吞吐量(Throughput)指在特定时间内完成的工作量(以事务数来衡量),以每秒的事务数(tps)来衡量。可扩展性用来衡量资源增长可以取得多少吞吐量的改变。提高扩展性,程序员必须集中于增加吞吐量的提升。WindowsDNA程序取得扩展性的另外方法为使用MSMQ作为信使到执行者和执行者到执行者的通信手段。使用MSMQ,增加吞吐量只需增加服务器来处理队列中的请求。5多个服务器处理队列中的工作效率高且提供真正的动态负载均衡。互操作性互操作性指程序访问其它平台上的程序、数据或资源。许多医院环境中有不同的硬件、软件系统,根据医院的需要,它们必须在一起协同工作。为取得最大的互操作能力,WindowsDNA程序必须依赖于: MicrosoftActiveX®DataObjects(ADO)或OLEDBforuniversaldataaccess; ExtensibleMarkupLanguage(XML)来与其他程序共享数据; DCOM访问UNIX和MultipleVirtualStorage(MVS)系统上的程序; MSMQ访问其他平台上的消息队列系统; 在MultipleVirtualStorage(MVS)系统上,COMTransactionIntegrator(COMTI)执行CustomerInformationControlSystems(CICS)(LU6.2)或InformationManagementSystems(IMS)事务。MS.NETFramework.NETFramework是Microsoft公司提供的一种计算平台,它简化了在高度分布式Internet环境中的应用程序开发。.NETFramework旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。 按照工业标准生成所有通信,以确保基于.NETFramework的代码可与任何其他代码集成。.NETFramework具有两个主要组件:公共语言运行库和.NETFramework类库。公共语言运行库是.NETFramework的基础。可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NETFramework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新创新的应用程序(如Web窗体和XMLWebservices)。.NETFramework可由非托管组件承载,这些组件将公共语言运行库加载到它们的进6程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NETFramework不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。例如,ASP.NET承载运行库以为托管代码提供可伸缩的服务器端环境。ASP.NET直接使用运行库以启用ASP.NET应用程序和XMLWebservices(本主题稍后将对这两者进行讨论)。InternetExplorer是承载运行库(以MIME类型扩展的形式)的非托管应用程序的一个示例。使用InternetExplorer承载运行库使您能够在HTML文档中嵌入托管组件或Windows窗体控件。以这种方式承载运行库使得托管移动代码(类似于Microsoft®ActiveX®控件)成为可能,但是它具有只有托管代码才能提供的重大改进(如不完全受信任的执行和安全的独立文件存储)。下面的插图显示公共语言运行库和类库与应用程序之间以及与整个系统之间的关系。该插图还显示托管代码如何在更大的结构内运行。公共语言运行库的功能公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。至于安全性,取决于包括托管组件的来源(如Internet、医院网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。7运行库强制实施代码访问安全。例如,用户可以相信嵌入在Web页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络。这样,运行库的安全性功能就使通过Internet部署的合法软件能够具有特别丰富的功能。运行库还通过实现称为通用类型系统(CTS)的严格类型验证和代码验证基础结构来加强代码可靠性。CTS确保所有托管代码都是可以自我描述的。各种Microsoft和第三方语言编译器生成符合CTS的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以.NETFramework为目标的语言编译器使得用该语言编写的现有代码可以使用.NETFramework的功能,这大大减轻了现有应用程序的迁移过程的工作负担。尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够继续使用所需的COM组件和DLL。运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时(JIT)编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能。最后,运行库可由高性能的服务器端应用程序(如Microsoft®SQLServer™和Internet信息服务(IIS))承载。此基础结构使您在享受支持运行库宿主的行业最佳医院服务器的优越性能的同时,能够使用托管代码编写业务逻辑。.NETFramework类库.NETFramework类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。这不但使.NETFramework类型易于使用,而且还减少了学习.NETFramework的新功能所需要的时间。此外,第三方组件可与.NETFramework中的类无缝集成。例如,.NETFramework集合类实现一组可用于开发您自己的集合类的接口。您的集合类将与.NETFramework中的类无缝地混合。正如您对面向对象的类库所希望的那样,.NETFramework类型使您能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用.NETFramework开发下列类型的应用程序和服务:8 控制台应用程序。 WindowsGUI应用程序(Windows窗体)。 ASP.NET应用程序。 XMLWebservices。 Windows服务。例如,Windows窗体类是一组综合性的可重用的类型,它们大大简化了WindowsGUI的开发。如果要编写ASP.NETWeb窗体应用程序,可使用Web窗体类。客户端应用程序开发客户端应用程序在基于Windows的编程中最接近于传统风格的应用程序。这些是在桌面上显示窗口或窗体从而使用户能够执行任务的应用程序类型。客户端应用程序包括诸如字处理程序和电子表格等应用程序,还包括自定义的业务应用程序(如数据输入工具、报告工具等等)。客户端应用程序通常使用窗口、菜单、按钮和其他GUI元素,并且它们可能访问本地资源(如文件系统)和外围设备(如打印机)。另一种客户端应用程序是作为Web页通过Internet部署的传统ActiveX控件(现在被托管Windows窗体控件所替代)。此应用程序非常类似于其他客户端应用程序:它在本机执行,可以访问本地资源,并包含图形元素。过去,开发人员将C/C++与Microsoft基础类(MFC)或应用程序快速开发(RAD)环境(如Microsoft®VisualBasic®)一起使用来创建这样的应用程序。.NETFramework将这些现有产品的特点合并到了单个且一致的开发环境中,该环境大大简化了客户端应用程序的开发。包含在.NETFramework中的Windows窗体类旨在用于GUI开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。例如,.NETFramework提供简单的属性以调整与窗体相关联的可视属性。某些情况下,基础操作系统不支持直接更改这些属性,而在这些情况下,.NETFramework将自动重新创建窗体。这是.NETFramework集成开发人员接口从而使编码更简单更一致的许多方法之一。和ActiveX控件不同,Windows窗体控件具有对用户计算机的不完全受信任的访问权限。这意味着二进制代码或在本机执行的代码可访问用户系统上的某些资源,例如GUI元素和访问受限制的文件,但这些代码不能访问或危害其他资源。由于具有代码访问安全性,许多曾经需要安装在用户系统上的应用程序现在可以通过Web安全地部署。您的应用程序可以在像Web页那样部署时实现本地应用程序的功能。9服务器应用程序开发在托管领域中,服务器端应用程序是通过运行库宿主实现的。非托管应用程序承载公共语言运行库,后者使您的自定义托管代码可以控制服务器的行为。此模型在获得主服务器的性能和可伸缩性的同时提供给您公共语言运行库和类库的所有功能。下面的插图显示在不同服务器环境中运行托管代码的基本网络架构。在应用程序逻辑通过托管代码执行时,服务器(如IIS和SQLServer)可执行标准操作。以客户机为中心的桌面厂商为什么要转移到更多地以网络为中心的模式上来?按照SteveBallmer的说法:这是用户所希望的!更进一步,这也是将来用户所希望的。在一个以服务器为中心的环境中分发应用程序减少了客户端的管理、简化了程序的更新和安装,并且会对移动计算环境提供更好的支持。对网络管理员来说,以客户机为中心的模型难于支持,而对家庭用户而言更是如此。要生存得更长久,以客户机为中心的计算将由基于服务器的模型进行补充。金蝶HRP专业版系统的结构特性“一套软件、两个面孔、三层结构”,简短的一句话,清楚地表述了金蝶HRP专业版系统的基本特征。三层结构概述了HRP专业版系统是一个典型的三层结构应用;两个面孔指的是前端系统包括GUI和WEB两种产品系列,客户可以根据实际情况灵活选择。下面是HRP专业版系统结构示意图:10下面将对HRP专业版系统在三个层次上的实现分别进行描述。表示层这是直接与最终用户打交道的一层,即我们常说的客户端。它的主要作用是接收用户的指令或者数据输入,提交给业务逻辑层做处理,同时负责将业务逻辑层的处理结果显示给用户。由于客户端并不处理复杂的业务逻辑等操作,相比传统的C/S结构对客户端的资源要求要低一些。金蝶HRP专业版系统在表示层有两种表现形式,GUI和WEB,GUI指的是依赖于Windows的桌面应用,它可以充分利用Windows的服务,提供丰富的用户界面,在交互性方面首屈一指,但是它对客户机配置以及网络带宽要求较高。WEB指的是完全基于IIS和浏览器的应用,它的显著特点是客户端免安装,对客户机配置和网络带宽的要求较低,典型的瘦客户应用,缺点是在用户交互性方面不如GUI应用。无论是GUI还是WEB的客户端,都通过相同的业务逻辑层来完成业务逻辑的检查,从而保证了整个应用的客户端无关性。无论是用GUI还是用WEB最终完成的是同样工作,看到的是同样的结果,存储的是完全一致的数据。用GUI系统录入数据,然后利用WEB系统查询,不会有任何问题,反之亦然。作为表示层,金蝶的HRP专业版系统提供了两套解决方案,一个是GUI系统,另一类是WEB系统。它们是为满足不同的应用环境而设计的,它们之间有哪些差异?分别适用于什么样的应用场合?实际应用过程中如何选型?下面的内容将对这些方面进行阐述。GUI系统(又称桌面应用系统),这是一种非常成熟的应用方式,无论是操作系统还是开发工具都对开发完善的桌面应用提供了丰富的资源和手段。GUI版本的系统可以提供丰富的用户界面,有着非常好的交互能力,可以完成复杂的系统功能。HRP专业版系统的所有子系统中,除了EIS(决策信息系统)、HR(人力资源系统)只提供了WEB版本以外,其它的子系统全部都有GUI版本。但是GUI系统需要在客户端安装程序,会带来11一些维护和升级的问题,GUI系统对系统资源的要求也较高,包括电脑的硬件配置以及网络带宽。在WindowsDNA架构下,GUI系统通过DCOM和中间层通讯,DCOM是一个基于标准DCERPC协议的跨机器的组件调用协议,一次组件调用往往要动态创建多个连接,客户端和应用服务器之间会周期性地通过发送“ping”消息确定双方可以正常通讯,这会消耗较大的网络流量。HRP专业版系统的一个具体功能往往会触发多个中间层的组件调用,因而对网络带宽消耗较大,而且这种动态的连接方式,不能在防火墙的NAT方式下工作,从而限制了它在Internet上的应用。WEB系统是一套基于Internet浏览器来执行的系统,实际的系统安装在由IIS管理的WEB服务器上,客户端不需要执行额外的安装程序,只需简单地下载安装一些组件即可很好地运行,当系统升级时,我们只需要升级服务器端的程序就可以了,客户端不用作任何升级动作,另外WEB是一个非常好的信息查询平台,而且WEB系统学习和操作都比较简单方便。但是WEB系统也面临一些问题,那就是交互性方面相对GUI系统比较薄弱,在一些技术实现上比较复杂的系统或功能在WEB实现起来还很困难,或者难以达到GUI系统的高度,不过一部分HRP专业版WEB系统的功能已经可以和GUI系统媲美。WEB系统对客户的资源和网络资源的要求都较低,因为它是通过HTTP协议来传送数据的,所有的业务处理操作和组件调用都在WEB服务器和中间层之间进行,客户端和WEB服务器之间只传递用户的数据输入和执行结果,因此它在慢速的广域网环境有着很好的表现,在Internet上有很好的应用。我们在实际应用的过程中,可以依照具体的环境和要求做出适当的选择,基本原则是:在局域网环境,考虑将GUI系统作为主要的应用平台,WEB系统可以辅助作为信息查询的平台。在广域网或者Internet应用环境,如果WEB系统可以满足要求,应尽量选择WEB系统作为应用平台,也可以考虑结合两种方式使用,以避免带宽导致的瓶颈。业务逻辑层业务逻辑层(中间层)的主要任务是负责接收表示层的数据请求,将这些请求进行必要的业务逻辑检查(包括权限检查),再将请求分解成不同的数据层操作,然后将处理结果返回给表示层。业务逻辑层是HRP专业版系统最重要的一个层次,核心的业务处理都是通过这一层来实现的。业务逻辑层由各个系统的不同的业务组件构成,在WindowsDNA架构下,这些组件在MTS或者COM+环境中运行,以获得事务保护、组件管理等特性。HRP专业版系统的所有业务组件依据系统的不同划分成不同组件包,通过这种划分来隔离子系统,避免子系统之间的相互影响,同时也便于实现系统的按模块分布。依业务规模的不同,业务逻辑层要承受的负荷会有较大的差异,客户端的数目、业务的复杂程度都会对其造成一定的影响。由于WindowsDNA架构的可扩展性,使得HRP专12业版系统的关键业务处理可以分布到多台服务器来处理,从而提供良好的伸缩方案。中间层的分布有两种策略,静态和动态。1、静态分布策略。指的是在多台服务器上安装HRP专业版的中间层,通过执行HRP专业版客户端机器上的组件配置工具,静态地将多个客户端指向某个固定的中间层。这种方式适合于.