1、1资产维修管理系统项目摘 要随着不断变化的技术的出现,有效地管理信息,节约维护成本,成为管理信息技术的必要性。在市场上存在着各种各样的维护软件产品,可以有效地管理设备。但通常这些维护软件产品并不总是满足组织的所有要求。例如,大多数在市场上的维护软件产品在管理硬件和软件资产方面效果不错,但未能捕捉到非电脑数据,如电话系统和办公材料,也不支持在 MAC 环境下的异构网络。在这种情况下,开发一个良好的系统,有助于提供良好的界面,更简便的更新和更低的维护成本是很重要的。本文正是关于作者从事类似系统的工作。该系统被称为资产维修管理系统(AMMS) 。关键词:IT 维护;接口;报告;数据录入表单;SQL
2、数据库第 1 章 引言技术发展迅速,往往伴随着 IT 基础设施的复杂性的增加。不同的公司和组织期待在同一时间获得竞争优势,因此,基础设施的复杂性是必须解决的。信息通信有限公司,是德国斯图加特的一个著名的电信公司,希望有软件能管理公司的信息资源,提供更快的访问信息速度和降低其成本。为此,笔者创建了一个第一时间关联 SQL 数据库来存储信息,然后创建一个接口来通过 JavaScript,PHP 和 HTML 提取、下载、输入、修改的数据库的系统。系统界面包括报告和在 HTM 格式下的数据报表。该系统已被命名为“资产维修管理系统(AMMS) 。第 2 章 AMMS 系统要求信息通信有限公司需要管理
3、hardware,software 等有形资产的信息,也需要管理user、room、computer backups、office supplies 跟 office keys 等无形资产的信息。从 user 开始,信息通信有限公司需要跟踪 user ID、user 姓名、地址、联系电话、办公电子邮件地址,电子邮件密码和个人备份编码。hardware 资产,则 hardwareID,hardware 名称,hardware 描述,购买说明,购买日期和经销商将必须保存。对于 software,softwareID,使用者 ID,hardware 标识,software 名称,software 描
4、述,购买说明,购买日期和经销商将必须保存。对于 computer backups,信息通信有限公司想要管理信息的备份数,user ID,hardware ID,backup 说明时间及其日期。2对于 office keys,key ID、user ID、密钥描述、购买说明、购买日期、经销商和用户持续时间的关键等信息将要要保存。对于 office supplies,公司希望存储 ID 信息,office supplies 的名称,补充描述,采购说明、购买日期、经销商、office supplies 将用于办公的日期,在供应将被使用后的状态是什么。对于 telephones,本机号码、分机号码、补
5、片号码、购买说明、购买日期、经销商和电话描述等信息将需要保存。对于 room,信息通信有限公司要管理使用办公室的 userID,hardware ID,电话标识、office supplies ID。为了满足信息通信有限公司的要求,无论是在定制的解决方案上或商业产品上,比较各种产品将是不可或缺的。因此,作者得出的预测结果是,有必要对一些商业产品在市场上可用的商业产品的利弊进行判断。第 3 章 相关商业产品的调查评价在市场上可获取到各种维护软件,包括 the Nimbus, GPMate, Imaging Symantec Ghost 7.5 , Novell Zenworks 3.2, IT
6、Asset Management System, Snow Inventory 2.07, Jlocator, ManageSoft, Syslist, Asset Manager 和 MAXIMO MainControl.Nimbus 软件:优点:Nimbus 软件适合管理各种 IT 设备,如服务器、交换机、路由器、网络服务、电子邮件和图形显示器 1 。缺点:Nimbus 软件相当复杂。在维护方面更多需要的是硬件如 CPU,内存,显示器,硬盘,打印机等,软件如操作系统、微软 Office、杀毒软件等。GP Mate:优点:GP Mate 软件是适合于支持维护工作的命令,可以分配多向任务 2
7、。缺点:GP Mate 需要大量的人力。在信息通讯有限公司,作者只被分配做的工作是维护。Symantec Ghost and Novell ZENworks:优点:Symantec Ghost 有效的管理大型软件,而 Novell ZENworks 有效的管理小型软件。缺点:这是一个复杂的系统,利用 Symantec Ghost 和 Novell ZENworks 分别管理大型和小型软件。资产管理系统(AMS):优点:资产管理系统(AMS)是一个支撑管理电脑、显示器、打印机、软件的安装的3简易工具 3 。缺点:在 Mac 环境下,AMS 缺乏支持异构网络的能力和输入非 PC 的数据,如电话系统
8、信息、办公材料。Snow Inventory 2.07:优点:Snow Inventory 2.07 产生的最详细的报告,列出了哪些硬件在工作站和软件已经安装 4 。缺点:就像 AMS,Snow Inventory 2.07 库存在 Mac 环境下缺乏支持异构网络的能力和输入非 PC 的数据,如电话系统信息、办公材料。Jlocator:优点:Jlocator 不仅能够找到物理上的资产在哪,还把信息资产都集中保存在一个地方 5 。缺点:就像 AMS 跟 Snow Inventory 2.07,Jlocator 缺乏支持异构网络的能力和输入非 PC 的数据,如电话系统信息、办公材料。ManageS
9、oft:优点:ManageSoft 跟踪和分析软件和硬件资产,降低 IT 成本,提高 IT 服务水平 6 。缺点:就像 AMS 跟 Snow Inventory 2.07 和 Jlocator,managesoft 缺乏支持异构网络的能力和输入非 PC 的数据,如电话系统信息、办公材料。Syslist:优点:Syslist 可以快速搜索组织库存的有用的信息,如序列号、IP 地址或一些已安装软件的电脑。与 AMS, Snow Inventory, Jlocator 和 ManageSoft 不一样的是, Syslist 是唯一可以容纳非 PC 的数据如电话系统信息、办公材料为 7 。缺点:Sys
10、list 不支持 UNIX 和 Linux 环境,也不支持在 Mac 环境下异构网络。Asset Manager:优点:Asset Manager 记录完整的硬件和软件信息,包括类型,制造商,串行和条形码号码,配置,物理位置,受让人等 8 。缺点:就像 AMS, Snow Inventory, Jlocator and ManageSoft, Asset Manager 缺乏支持异构网络的能力和输入非 PC 的数据如电话系统信息、办公材料。MAXIMO MainControl:优点:MAXIMO MainControl 不仅有助于一个知道资产的位置,并且有助于 IT 基础设施的完全控制,可以添
11、加、移动或移除所需的设备和软件 9 。缺点:就像 AMS, Snow Inventory, Jlocator, ManageSoft 和 Asset Manager, MAXIMO MainControl 缺乏支持异构网络的能力和输入非 PC 的数据如电话系统信息、办公材料。-A.比较市场产品分析4所有的资产软件资产都提供较低的维护成本,尤其是 Snow Inventory, ManageSoft, Syslist, Asset manager 跟 Maximo MainControl 。GP Mate 是唯一的可以支持维护工作订单 2 的软件。例如 Nimbus 软件,Symantec Gh
12、ost, Novell Zenworks, Snow Inventory, Jlocator and Syslist 等资产管理软件通过网络进行资产维护,ManageSoft 跟 Maximo MainControl 通过库存 3-6-9提供资产维护。所有的软件都有库存支持,历史报告和问题报告选项。而只有 Nimbus 软件提供服务水平协议 1 ,非 PC 的数据到数据库输入只能通过 Syslist 7 。在异构的网络环境中,没有一个软件提供 MAC 支持。基于以上分析,Syslist 是满足大多数的维护要求在信息通信的理想者,因为它不仅支持管理硬件和软件资产,而且它捕获非 PC 的数据。B.
13、进行/购买讨论而在 Unix / Linux 环境下,Syslist 有助于捕捉数据,非 PC 数据的数据,它不支持在 Mac 环境下的异构网络,这是公司管理的一个重要标准。此外,拥有 16 +许可的 Syslist,对于通信有限公司来说,每个许可将覆盖 100 个系统,而大约需要支付 35 个使用者的费用(在撰写本文时) ,将花费 197 美元35约每年 6000 美元,从经济角度来看,不是很理想 7 。对于 Syslist 要求 Linux / Apache Web 服务器运行 PHP 和 MySQL 4.2.1 需要额外的软件 7 。公司已经拥有并安装所需的工具软件如 PHP 和微软 S
14、QL Server。所以不想覆盖上类似的软件工具,并承担了额外的支出。根据这些理由,虽然它成功地成为一个会议 INFOCOM 的 IT 管理要求的赢家 ,但Syslist 被拒绝了。因此,一个使用 Javascript / HTML 界面的定制开发决策,即资产和维修管理系统(AMMS)被提出来了。第 4 章 数据库设计A.实体关系模型5图 1 实体关系图根据系统要求,需要被包括在内的是userall,hardware_asset,telephone_asset,office_supply 和 office_key。这些资产中的每一个都是一个实体,代表一个数据库表。具体每个表与其他表如何关联可通
15、一个实体关系图看到,如图 1 所示。从这个图可以看出,Room 跟 UserAll, Office_Supply, Hardware_Asset and Telephone_Asset 有紧密联系。 (名字的是“UserUAll”而不是“User” 是因为“User”是 SQL ServerUse 保留的关键字,已用于研究创建数据库) 。Room 是一个关系,链接到UserAll, Office_Supply, Hardware_Asset 和 Telephone_Asset。如图 2 所示的关系模式,对于每个用户,可以有许多 hardware assets, office supplies
16、跟 telephones。另一方面,一个 Hardware_Asset, 一个 Telephone_Asset 以及一个 Office_Supply 只可以属于一个用户。并且 UserAll, Hardware_Asset, Telephone_Asset 跟 Office_Supply存在以下关系 1-n-m-o。Backup 和 Software_Asset 也与 UserAll 和 Hardware_Asset 有关系(n-m) 。这是因为每个用户都可以在许多硬件访问软件,而且每个管理员用户也可以备份许多硬件资产。另一方面,一个硬件可以通过一个以上的管理用户和一个硬件资产的软件可以被许多
17、用户访问。在 UserAll 表 user 与 office_key 拥有一对多关系(1-m) ,因为一个用户可能有多个办公室主键,然而一个办公室主键可能只属于一个用户。B.系统中不同的数据库表之间的关系6图 2 不同的数据库表之间的关系现在已经设计了实体关系模型,数据库可以通过关系模式设计,显示系统中不同的数据库表之间的关系。在 ER 模型中,实体对象如 Hardware_Asset, UserAll, Telephone_Asset, Office_Supply 和 Office_key 以及 Room, Backup, Software_Asset成为有关联的独立数据库表,如图 2 所示
18、。第 5 章 图形化用户界面设计下一步是设计一个图形用户界面(GUI) 。A.界面设计图 3 界面的首页界面设计有 2 个选项按钮:User Asset Relation 和 Room Asset Relation7图 4 报告的第二页(对应 User Asset Relation)在点击 User 资产关系时,这是对应的输出。有一个为 User 的组合框和另一个为Asset 的组合框。一种资产和相对应的一个用户可以在这里选择。图 5 User Asset 关系的资产选择资产下拉框的选项包括 hardware、software、backup、telephone、office supply、of
19、fice key、room 和 user info。通过点击从资产下拉框选择和从用户下拉框选择,所有资产信息,包括 hardware、software、backup、telephone、office supply、office key、room 和 user info 等信息,跟相应的所有用户。它将简单地对所有这些信息进行汇总。现在,通过选择 User 的 All 跟选择资产,如hardware、software、backup、telephone、office supply、office key、room 和 user info 等来观察发生了什么,这是有点期待的。如果选择 Asset 的 h
20、ardware 和 Use 的 All,就出现下面的页面。8图 6 hardware 资产选项例如,选择 hardware,所有的复选框都会出现。检查每一个硬件,例如,中央处理器,内存,硬盘,显示器或打印机,并点击下一步将显示对应用户的特定硬件信息。类似上述步骤,从资产下拉框选择 hardware 和从用户下拉框选择 All 或者选择其他选择用户名称。例如,如果资产下拉框选择“hardware”和从用户组下拉框中选择“托马斯 F”,该页面对应于图 6 将照常进行。在“All”上打勾,单击“Next” ,用户将能够看到所有的 hardware 对应于托马斯F。在检查任何其他选项,如中央处理器,内
21、存等,并单击“Next” ,用户将查看所有的特定硬件信息对应于托马斯 F。如果用户从资产下拉框选择“software”和从用户下拉框中选择“All” ,用户将查看以下页面。图 7 software 资产选项与上述的硬件选项相比,这里是一些软件选项,可以检查单独和“All”的用户可以查看特定的软件信息。最多可选择一个最大的选项和相应的信息查看。否则选中“All”可以选择查看所有的软件信息。假设用户选择“All”从软件中间页和“All”从用户组合框,然后将获得输出。这里的一部分,对应于托马斯 F 的软件信息。该表实际上是一个长长的列表,所有的9用户名称显示其相应的软件信息。同样,如果用户从资产下拉
22、框中选择“software” ,用户下拉框中的“托马斯 F”等特定的用户名称,可以查看所有的软件选项信息,可以查看对应于特定用户的信息。但是,如果用户选择 backup、telephone、office supply、office key、room 或user info,就没有中间页,但下拉框文件页直接指向对应的表信息。与信息通信有限公司的用户对应的 telephone 最终表格报告信息的一部分。到目前为止,已经解释过 User 与 Asset 的关系。报告设计的类似步骤适用于图 3 中的按钮 Room 跟 Asset 关系。该界面上有关系到 Room 的资产选项,如hardware,tele
23、phone,office supply 和 user info。从 Asset 选择“All”和从 Room选择“All” ,用户将能够查看与 room 对应的所有的 hardware,telephone,office supply 和 user info。用户可以从 Asset 下拉框中只选择 hardware,telephone,office supply 或 user info,并在 Room 组合框中选择“All” ,将显示对应 Asset 的某一选项的所有 room 的信息。也可以从 Room 组合框中选择特定的 room ID 来查看信息。B.数据输入表单设计这种设计是典型的格式,
24、如图 8 所示。图 9 是身份验证表单,在输入用户跟登录密码后点击身份验证表单上的 next 按钮后,将会出现图 8 的界面。为表 userall 录入数据的格式如图 10 所示。在 userall 数据输入表单上的按钮“Insert Row”、 “Edit Row”, “Delete Row”、 “Previous Row”和“Next Row”的功能如他们的名字所示。 “View Table”按钮可用于查看点击 insert row、edit row 或 edit row 按钮后的结果。10图 8 主表单其他数据输入的格式形式对应剩余的数据库表如 Room, Hardware_Asset,
25、 Software_Asset, Backup, Telephone_Asset, Office_Supply 以及 Office_key 与 UserAll 数据输入格式相似。图 9 身份验证表单11图 10 对于 UserAll 数据输入表单第 6 章 报表实现最终报告可以查看(按照 SEC 诉)每个 user 在使用的资产或在每个 room 内的硬件/软件资产信息,以及中间页上的硬件/软件的选项信息,如 CPU,内存,硬盘等硬件信息或者操作系统,MS Word,在以 MS PowerPoint 等软件信息。是为了把 user 的数据传到中间页,这意味着可以通过 cookies 把数据从一
26、个页面到另一个 JavaScript 中的 10 。然后中间页链接到连接着 SQL Server 的 PHP 页面,并且使用相关的 SQL 查询,来查看硬件/软件信息。例如,选择“All”用户选项,跟选择“All”硬件选项后跳转的中间页,链接到下面这段 PHP 代码。代码 1 查看硬件信息12在上面的代码中,首先创建 SQL Server 的连接变量$myServer,$myUser 跟$myPass。$myServer 是服务器名称的变量;$ myUser 是用户名的变量;$ myUser 是密码的变量。这里提到的一个数据“ITInfo1” 。它代表着在 SQL Server 初始化时所有的
27、关系,如图 2 所示。下一个 SQL 语句建立是从选择表 UserAll, Hardware_Asset 跟 Room 的属性。这些表之间的关系可以清楚地在图 2 中看到。SQL 语句是通过函数 mssql_query(),将一个$query 的输出传递给$result。上述步骤的实现,通过从 Asset 下拉框选择“hardware”和从 User 下拉框中选择用户名称。类似于在硬件信息上显示软件信息的实现步骤。查看其他资产,如 backuo、telephone 等,没有中间的页面而直接链接到 PHP 页面。显示这些结果的 PHP 代码类似于代码 1 所示。第 7 章 项目设计的实现HTML
28、,JavaScript,PHP 和 Microsoft SQL Server 等软件工具可以用来实现报表和数据窗体。对于不同的数据库表的数据窗体都有按钮来实现插入、编辑,前一行,下一行等功能和通过输入的条件来展示相应的数据表。除了上一行和下一行的按钮,所有的按钮都直接指向按钮点击连接到 SQL Server 和执行相应的功能的 sql 语句如插入、更新、删除等。实现前一行和下一行是有点复杂,因为在这些按钮的点击,他们通常针对JavaScript 的方法,这里的 JavaScript 变量 currow(当前行)后被减少或增加需要传递回 PHP 网页服务器作为请求的一部分。内联框架的创建需要根据
29、 PHP 页面,以能够按钮能实现插入、编辑,删除与文本框保持对目标的 PHP 页面,并对 extboxes 的值而动态变化,而上一行,下一行跟查看表的按钮在点击时保持静态的页面。通过创建一个内联框架以目标 PHP 页面为出发点,可以把 JavaScript 变量(currow)返回到 PHP 作为从请求 javascript 函数实现之前的行或下一行的参数。使用将 JavaScript 变量传到 PHP 的服务器上的方法是因为 JavaScript 是客户端和 PHP 是服务器端,但是直接用 PHP 访问JavaScript 变量是不可能的。换句话说,先执行 PHP 代码,再把数据传输到客户端
30、,然后在执行 JavaScript 方法 11 。在表单文件 insert.php 中,通过 insert button 对 userall 数据进行输入的 PHP 代码如下:代码 2 insert button codeinsert.php 文件的 insert button code 中,$_pos 用于取的在窗体文本框 userall内的值,如图 10 所示。一旦取到文本框的值,将建立 SQL 的 insert 语句,并赋值给$query4,并且把$query4 的返回结果赋值给$result4,然后执行 mssql_query 函数如代码2 所示。同样的代码为“删除行” 、 “编辑行”
31、和“userall 数据输入窗体视图表”按钮,如下图所示。代码 3 detete row 按钮代码 4 edit row 按钮代码 5 view table 按钮14在 index.php 文件中,在 JavaScript 的 Next Row button 的代码如下所示:var curRow=0;function clickNextButton(form) if(curRow=-1)alert(“End of records“);elsecurRow+;if(curRow0) elsecurRow-;代码 6 Next Row button如果 currow 值大于零、小于数据库的记录数,
32、JavaScript 的变量 currow 将通过服务器并作为请求返回 dbpage2.php,否则 currow 的值减一。类似的代码和逻辑适用于上Previous Row button。第 8 章 结论与未来展望AMMS 系统接口到一个由数据输入窗体和报表构成的 SQL 数据库。AMMS 系统可以有效地管理信息通信公司的设备,并且具有良好的更新和维护成本低等特点。虽然这已经取得了总体上的预期目标,仍有未来的也有需要改善的地方。未来在数据输入表单中的一个特征是,当特定输入用户通过数据输入形式对实际数据库进行更改时,将有更改日期的历史。这将有助于跟踪用户通过输入数据在数据库中进行编辑的数据,记
33、录修改日期。另一个特征,如用户名可以通过文本输入框作为检索 userall 记录的条件。用户名在设计时被当作表的主键,当一个用户名被删除时将导致数据表内的相关数据与其他表中的外键也被删除。然而,一个特殊的情况下,当用户信息被删除,与用户对应的 room 数据和 office 主键数据仍然会存在,使得用户的 ID 属性在 office_key 表内为空。在未来的情况下,这可以被设计,当用户信息被删除,在他/她的硬件上的软件信息仍然存在。这说明未来的发展将使用户通过数据输入表单输入数据的操作更容易,防止再次插入现有的信息。虽然公司已经拥有一个作者开发的成本较为低廉的管理系统,但该系统在未来将面临众
34、多问题,包括技术维护成本,维护成本,更新 PHP,通过浏览器来升级操作系统,以及在内部成本不变的情况下,用户人数从大约 35 用户升级(在撰写本文时)100 或更多用户。15第 9 章 致谢作者感谢经理和主管托马斯弗兰兹(信息通信有限公司,斯图加特,德国) ,让其得以参加信息通信公司系统项目的工作,也感激主管科赫教授(Dorothee 斯图加特应用科学大学)和 Pawel Wojnar(信息通信公司)在工作提供有价值的指导和建议。引用1 Converse software (2004), Service Level Managementwithin reach,2 A Converse Sof
35、tware White paper, ,Accessed August 20043 GP Solutions Inc (2004), GPMate Software , ,Accessed August 20044 J.Kreutzkaamp, L. Hagge, E. Deffur, A. Gellrich, B. Schulz (2003), Experience with an IT Asset Management System (pdf), Electronic Report, Desy, Hamburg, Accessed August 20045 Ntverk Communica
36、tions (2003), Inventory this (pdf), IDG International Data Group, Electronic Report, Accessed August 20046 Luca D.(1999) , Java-Based Mobile Asset Location (pdf) , IEEE Monet, Electronic Report, Accessed August 20047 ManageSoft Corporation (2004), ManageSoft, The Software management Company, , Acces
37、sed August 20048 S Company (2004), Syslist Software, A Hardware and Software Inventory Management, http:/ Accessed August 20049 EdenCompany(2004),AssetManager,http:/ Accessed, Sep 200410 MRO Software Inc (2004), MAXIMO MainControl for IT Asset Management (pdf), Maximo MainControl brochure, Accessed August 200411 Code Punks Web Tutorial (2004), Cookies in JavaScript, Aaronz WebWorkz, http:/codepunk.hardwar.org.uk/ajs26.htm, Accessed October 200412 Webmaster W (2004), JavaScript and PHP, http:/ Accessed Dec 20041