基于ssh的电信数据采集与整合正文.doc

上传人:知****量 文档编号:86750388 上传时间:2023-04-14 格式:DOC 页数:40 大小:699.04KB
返回 下载 相关 举报
基于ssh的电信数据采集与整合正文.doc_第1页
第1页 / 共40页
基于ssh的电信数据采集与整合正文.doc_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《基于ssh的电信数据采集与整合正文.doc》由会员分享,可在线阅读,更多相关《基于ssh的电信数据采集与整合正文.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于SSH的电信数据采集与整合序 言本课题采用由亚信公司提供的“电信用户管理和计费系统NetCT OSS” 该系统是一个典型的基于Unix平台、Mysql数据库、Web界面,以Java语言实现的大型软件项目,是为电信运营的IP计费服务的。该系统运行于Tomcat平台,采用JavaEE架构、Struts框架,Hibernate、Spring技术及Mysql数据库,并成功运行于Sun Solaris UNIX及Windows2000环境下。该系统主要分为用户自服务管理模块,管理员管理模块,用户管理等模块,资费模块,帐单和帐务模块以及数据采集与整合模块。本论文主要阐述的是该系统下的两个模块,数据采集

2、与整合。数据采集与整合是整个系统的后台实现,功能是定期采集(采集系统)原始计费日志文件,并将采集的数据封装整合,然后通过Socket将数据传送到数据采集服务端;中数据采集服务端将数据保存到Mysql数据库当前时间所对应的t_daily_x表中,最后周期性进行数据的整合(整合系统)。该课题在设计中要解决的主要问题就是在采集过程中,如何解决数据匹配问题,如何将采集到的有效数据封装成我们需要的结构并输出到网络另一端,由接收端将数据插入到数据库中,如何在数据库中进行周期整合,产生系统所需要的各个表。指导这些问题解决的思想就是文件读写、socket编程和UNIX下的作业操作。在设计中主要用到的语言以及技

3、术主要是Java、jdbc。之所以选择这些语言及技术,一方面是因为在电信运营支撑系统中,安全性有着很关键的作用,安全性直接影响着整个系统的使用,另一方面是在Java语言中,已经存在对日志文件读取的各种方法,可以很方便的实现采集。考虑到数据采集与整合的这些诸多特点,所以在做该子系统时选择了Java、jdbc等语言和技术。第1章 概述 1.1 课题的背景及意义随着网络的不断发展,网络几乎进入了家家户户。查资料需要网络,看新闻需要网络,看电影需要网络,买东西也需要网络,网络给人们带来的方便无处不在,人们需要使用网络的愿望也越来越大。无法想象人们离开网络会是什么样的。现阶段,要想上网就必须向网络运营商

4、申请代理服务器,随之而产生的问题就是计费和管理问题。另一方面为了让用户更放心的使用网络运营商的代理服务器,让用户随时可以查询自己的信息及使用情况,方便网络运营商管理一系列的复杂事物,以及处理大量的数据,我们设计了本系统。系统只针对电信运营商出租的实验室,即服务器。基于SSH电信系统是利用J2EE平台下的WEB技术设计和运行。通过读取服务器日志文件采集数据然后整和到数据库中,供用户和管理员使用.其中持久层采用封装了JDBC的Hibernate框架,数据库采用Mysql,利用Struts框架作为控制器,页面显示采用JSP技术,并且用Spring框架整合Hibernate、Struts,完成企业级应

5、用。 1.2 课题内容及目标基于SSH的电信系统的后台数据服务模块分为数据采集和数据整合模块。数据采集模块负责读取数据服务器日志文件,并进行过滤,将符合要求的数据存入数据库;数据整合端负责将数据库中的原数据按年、月、日进行数据整合,并将整合后的数据存入数据库中。1.3 开发及运行环境基于SSH的电信系统的后台数据服务模块在开发时采用C/S架构,使用Myeclipce6.0的运行环境;服务器和客户机都采用Windows XP操作系统;数据库服务器是Mysql5.0 ; 第2章 系统分析和设计2.2系统设计思想 随着网络的不断发展,网络几乎进入了家家户户。查资料需要网络,看新闻需要网络,看电影需要

6、网络,买东西也需要网络,网络给人们带来的方便无处不在,人们需要使用网络的愿望也越来越大。无法想象人们离开网络会是什么样的。现阶段,要想上网就必须向网络运营商申请代理服务器,随之而产生的问题就是计费和管理问题。另一方面为了让用户更放心的使用网络运营商的代理服务器,让用户随时可以查询自己的信息及使用情况,方便网络运营商管理一系列的复杂事物,以及处理大量的数据,我们设计了本系统。系统只针对电信运营商出租的实验室,即服务器。基于ssh的电信计费系统是利用J2EE平台下的WEB技术设计和运行.通过采集数据然后整和到数据库中,供用户和管理员使用.其中持久层采用封装了JDBC的Hibernate框架,数据库

7、采用Oracle,利用Struts框架作为控制器,页面显示采用JSP技术,并且用Spring框架整和Hibernate、Spring,完成企业级应用。2.2系统功能描述:WEB系统可供用户和管理员查询相关内容。通过登录该系统,用户可以完成查询帐单,修改个人信息,浏览电信运营商提供的各种资费服务。管理员可以完成查询所有用户帐单,修改管理员信息,对用户进行管理(开通,关闭,删除用户帐号),对管理员进行管理(开通,关闭,删除管理员帐号),修改资费项目,查看电信服务器运行情况。采集模块每小时执行一次,从日志文件中循环读取数据,过滤掉不符合要求的数据,采集符合要求的数据并将数据封装成bIDR结构发送到中

8、央服务器端。整合模块根据采集到的数据进行整合并插入到各个表中,每小时执行一次。 2.3 需求分析: 各模块功能:资费管理:增、删、改、查资费信息(指定价格)管理员管理:增、删、改、查管理员信息用户管理:增、删、改、查用户信息(开通帐号,修改自身信息和需求)帐单查询:按月生成用户月计费帐单帐务查询:按月生成帐务月、年统计报表(对自己业务的查询,对服务器查询,管理)采集模块:定期采集(次/小时)原始计费Log(wtmpx)文件,整理成bIDR数据清单,并上传给中心处理系统。中心处理系统(接收系统)侦听并收集采集系统发送的数据信息bIDR,并将数据保存的数据库表t_detail_X 。整合模块:按小

9、时合并清单表t_detail_X生成所有用户计费数据日表t_day_X;按天合并日表t_day_X生成所有用户计费数据月表t_month_X;按月合并月表t_month_X生成所有用户计费数据年表t_year_X;按小时合并清单表t_detail_X生成所有Lab_IP数据日表t_day;按天合并日表t_day生成所有Lab_ip数据月表t_month;按月合并月表t_month生成所有Lab_ip数据年表t_year;1、用户管理需求:用户开通管理:管理用户登陆Open Lab的帐号,包括帐号开通、暂停(加锁)、恢复、删除。用户资料管理:管理用户资料,包括姓名(单位)、身份证号码、住址及资费

10、信息等。用户信息:ID,姓名、帐务帐号/密码、Open Lab帐号/密码、状态(正常/暂停/关闭)、联系电话、Email、开通日期、停止日期、付款方式(现金/邮寄/支票/转帐/电子银行)、证件号码、职业(学生/IT从业人员/非IT从业人员)、国籍(中国/美国/加拿大/日本/英国/澳大利亚/其他)、性别(男/女)、单位、联系地址、邮政编码。注意:本系统一个用户对应一个帐务帐号,可以对应多个Open Lab帐号。2、管理员管理需求:管理员开通管理:管理用户登陆NetCT OSS的帐号,包括帐号开通、暂停(加锁)、恢复、删除。管理员资料管理:管理管理员资料,包括姓名、身份证号码、住址等。管理员权限管

11、理:改变管理员的各类权限。管理员信息:ID,姓名、帐号(一个)、密码、状态(正常/暂停/关闭)、联系电话、Email、开通日期、停止日期、权限注意:一个用户对应一个帐号。3、帐单管理需求:整合系统按月生成用户月帐单。帐单信息 用户标识信息:帐单ID,姓名、帐号、状态(正常/暂停/关闭)、联系电话、Email、开通日期.帐务信息:帐号、日期、登录时长、本月费用帐单明细:登录时间退出时间时长4、帐务管理需求:按月、年分别生成月帐务信息统计报表和年帐务信息统计报表。月帐务信息生成一个计费月周期中,每一天的帐务信息。月帐务信息:日期时长费用年帐务信息生成一个计费年周期中,每一月的帐务信息。年帐务信息:

12、月份时长费用5、资费管理需求:用户可以通过登录系统来查询电信公司所提供的一些资费信息,以方便用户来使用。管理员通过登录系统可以根据公司运营情况来向其中增、删、改资费信息。资费信息:资费ID,资费名称,月租,使用费,描述6、采集模块需求:所需系统文件:计费Log文件数据库表 资料信息表:用户信息、管理员信息、资费信息、URL信息数据存储表:明细表、日表、月表、年表7、整合模块需求:所需数据库表:用户消费明细表、日表、月表、年表产生数据库表:服务器被使用量的日表、月表、年表业务模型:用户首先通过3A服务器验证后,可以使用出租实验室,并记录用户的登录与退出信息,信息经过加工处理生成系统所需数据持久化

13、在数据库中,供管理和查询,如下图:2.4 系统概要设计2.4.1 系统模块划分:该系统包括两个子系统:数据采集与整合系统与WEB系统。在数据采集与整合系统中又可分为数据采集模块与数据整合模块。数据采集与整合系统中的数据采集模块主要功能是将电信服务器上的计费文件中所有用户的消费记录采集并且整理出来,然后插入到数据库中。从功能上讲,该系统共分为三个模块,分别是采集模块,入库模块和网络模块。从部署运行方面讲该采集系统分为客户端和服务器端两个部分。客户端部署在电信服务器上,用于采集和整理计费文件中的原始记录并把结果发送到服务器端。服务器端用于接收从客户端发送过来的数据,并持久化到数据库中相应的表中。数

14、据整合模块主要功能是将数据库中的用户原始的消费数据进行整合,形成可供用户和管理查询的帐单,如日清单,月报表,年报表,以及仅供管理员查询的帐务清单,主要用于考察电信服务器的运行情况。该子系统是电信运营支撑系统中的后台实现,也是WEB系统的依赖。WEB系统是整个电信运营支撑系统的表现,是和用户进行交互的部分。该系统可供用户和管理员查询相关内容。通过登录该系统,用户可以完成查询帐单,修改个人信息,浏览电信运营商提供的各种资费服务。管理员可以完成查询所有用户帐单,修改管理员信息,对用户进行管理(开通,关闭,删除用户帐号),对管理员进行管理(开通,关闭,删除管理员帐号),修改资费项目,查看电信服务器运行

15、情况。根据以上功能,该系统可分为六个模块,用户管理模块,管理员管理模块,用户自服务模块,帐单管理模块,资费管理模块,帐务管理模块。2.4.2 业务流程图:通过底层的采集与整合模块将系统所需要的数据插入到数据库当中,供用户及管理员使用。由图可看出,用户想使用Openlab服务器就必须通过3A服务器的验证,验证通过则允许使用并记录日志。在web部分用户可以通过登录系统来查询及修改自己的信息,管理员可以管理相应的信息。如用户管理和计费管理2.4.3 总体架构图:DailyMonthlyYearORACLE中央处理系统采集系统LogRouterSwitch工作站帐务查询系统用户管理系统ADM管理系统D

16、BS数据整合系统BIDR采集系统解析日志文件中的信息,把对我们有用的信息采集回来,封装成一个结构传输到中央处理系统,然后持久化到数据库当中,经过整合这些数据,再分别存储到不同的表中,供系统使用。通过登录系统,用户可完成相应的操作,包括查询自己的消费信息,修改自己的一些信息等等。管理员则可对用户、业务及服务器进行管理。2.4.4 课题相关模块2.4.4.1 系统部署图:下图中“中央处理器”模块包括:数据采集服务端、数据整合端,也包括存储数据的数据库。采集部署图查询和管理部署图2.4.2.2 部署、用例与组件图用例图用例描述用例名称查询月帐单描述管理员可以进行月账单查询用例参与者管理员前置条件管理

17、员已经登录成功 基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在上月的总的费用的列表基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在某年某月总的费用的列表,因为帐务帐号很多,不利于查看,在此页面上有分页的功能,在列表下方有上一页和下一页的链接和选择页码的拉列表框,可以直接点击这两个链接或直接在列表框里选择页码来跳转到帐单列表页面,显示指定页面的信息基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在某年

18、某月总的费用的列表,在此页面中有查询某帐务帐号在某年某月的功能,操作流程是,在页面上方有文本提示写着帐务帐号,后边有一个文本框,在里面填写你要查询的帐务帐号名,后边还有两个下拉列表框,后边文本提示分别写着年、月,在这两个下拉列表框里分别选中你要查询的年和月,然后点击查询按钮完成操作,如果输入的帐务帐号存在,就会在列表页面显示此帐务帐号在某年某月总的费用,如果在帐务帐号文本框里没有输入会查某年某月所有帐号总的费用其他事件流无异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询月帐单明细描述管理员可以进行月账单明细进行查询用例参与者管理员前置条件管理员已经登录成功 基本

19、事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在某年某月总的费用的列表,在每个帐务帐号的总费用之后都会有一个明细的链接,直接点击链接就会进入帐单明细页面 ,此页面会显示该帐务帐号上所有业务帐号上发生的所有费用的明细信息其他事件流无异常事件流无后置条件无组件图帐务管理模块:用例图用例描述用例名称查询月总计清单描述管理员浏览服务器的月使用时长清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则显示当前月前一月以小时为单位的所有服务器一整月总计使用时间长度列表页面. 基

20、本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则显示当前月前一月以小时为单位的每台服务器一整月总计使用时间长度列表页面. 管理员可以选择年份和月份,查看指定某年某月的以小时为单位的所有服务器一整月总计使用时间长度列表异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询年总计清单描述管理员浏览服务器的年使用时长清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则进入服务器月总计列表页面,管理员可点击页面上方服务器年帐务查询链接,进入服务器年总计列表页面,在该页面显示以小时为单

21、位的所有服务器去年总计使用时间长度.基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则进入服务器月总计列表页面,管理员可点击页面上方服务器年帐务查询链接,进入服务器年总计列表页面,在该页面管理员可以选择一个年份,查看指定年的以小时为单位的所有服务器一整年总计使用时间长度异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询月详细清单描述管理员浏览服务器一月每日的使用时长清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,进入月帐务总计页面.在该页面中管理员点击要查看明细的服务器

22、项最后的详细清单链接,进入月帐务明细页面,在该页面中显示出指定服务器在指定月份中每一天被访问的时长信息。异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询年详细清单描述管理员浏览服务器一年每月使用时长的清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则进入服务器月总计列表页面,管理员可点击页面上方服务器年帐务查询链接,进入服务器年总计列表页面, 在该页面中管理员点击要查看明细的服务器项最后的详细清单链接,进入年帐务明细页面,在该页面中显示出指定服务器在指定年份中每个月被访问的时长信息。异常事件

23、流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无组件图2.5 课题设计思想:本人所负责模块的设计思想是从记录有用户登录与退出信息的文件中读取信息,并经过解析,提取出有效信息,并封装成我们所需要的结构,通过SOCKET编程将采集到的数据提交到中央处理系统,经过处理插入到数据库的原始数据表中。然后经过整合,分别整合成符合系统需求所需要的各个表中,供系统使用,如图1:serverT_DETAIL_XprocOpenlab1Openlab3Openlab6Openlabclient采集系统detailyeardetailmonthsdetaildayDetailyear_xDetailmo

24、nth_xDetaildays_x整合系统图1:采集与整合设计模型2.6 课题详细描述:用户首先需要访问3A服务器(Authentication:认证,Authorization:授权,Accounting:记账,UNIX系统本身就可以作为3A服务器),3A服务器根据其中事先已经记录的用户名(UNIX下:/etc/shadow)及密码(UNIX下:/etc/passwd)进行校验。验证通过则3A服务器允许用户登录。登录成功后,用户可以使用出租实验室,并生成一个LOG文件。同时将用户的登录与退出的所有信息记录到文件中(UNIX系统中的/var/adm/wtmpx),该文件中记录的数据包括用户名,

25、用户ID,用户IP,进程号,登录类型,状态,时间,SESSION ID等信息,这些都是为后面的数据采集做准备。数据采集主要是解析3A服务器记录的用户上、下网数据形成用户登录数据,通过SOCKET方式将数据从3A服务器发送至中央处理系统,中央处理系统将收到的数据进行持久化处理保存到Mysql数据库里对应的表(details_x:x代表一个月中的每一天)中。在这个过程中所要解决的问题有:(1)如何从文件中读取数据;(2)如何过滤并选择对我们有用的数据;(3)如何匹配同一个用于上、下网的信息,以及采集过程中有可能产生的其它问题 (4)怎样将选择的数据封装成我们所要的结构,并传输到中央处理系统中。数据

26、整合模块,将details_x表中的数据整合到detaildays_x中,x代表一个月中的第几天;将detaildays_x表中的数据整合到detailmonths_x表中,x代表一年中的第几个月;将detailmonths_x表中的数据整合到detailyears_x表中,x代表每一个年。另一方面,将details_x表中的数据整合到detaildays,detailmonths,detailyears三个表中,这三个表分别存放的是每个服务器在一天、一个月以及一年中的使用量,这三张表只能供管理员来使用。这些操作需要在数据库中通过写存储过程和定制作业来完成。需要说明的是上面的几张表,detai

27、ldays_x表是用户计费数据日表(统计当天每小时每个服务器上的每个用户的总时长)每条数据记录的是:一个服务器上的一个用户某一小时的总时长对于一个服务器上的一个用户,最多有24条记录;detailmonths_x表是用户计费数据月表(统计当月每天每个服务器上的每个用户的总时长)每条数据记录的是:一个服务器上的一个用户某一天的总时长对于一个服务器上的一个用户,最多有31条记录;detailyears_x表是用户计费数据年表(统计当年每月每个服务器上的每个用户的总时长)每条数据记录的是:一个服务器上的一个用户某一月份的总时长对于一个服务器上的一个用户,最多有12条记录。采集模块从日志文件中采集数据

28、并封装成一个结构,然后将这个结构传送到中央处理系统中,然后插入到明细表中,如图2左半部分所示。由采集模块插入到数据库中的数据是一些零碎的,比较详细的记录,这些数据对用户来说是没什么用处的,需要由整合模块整合到各个表中以供用户使用。整合模块首先将由采集模块采集到的数据按服务器IP,用户登录IP和用户名分组,然后将分组查询到的数据统计后插入到天表中,进而再将天表中的数据整合到月表,月表中的数据整合到年表。需要说明的一点就是整合模块将用户消费的原始数据信息整合成了两套表,一套表包括detaildays_x,detailmonths_x,detailyears_x。这些表供用户使用,用来查询自己的消费

29、信息;另一套表包括detaildays,detailmonths,detailyears。这套表供管理员来使用,用来统计各服务器的使用情况,为企业的决策提供依据,如图1右半部分所示。这两套表是系统中资费管理模块,帐单查询模块,帐务查询模块赖以运行的基础。details_X采集客户端bIDR/var/adm/wtmpxUnix Log Server采集服务端按小时合并用户数据按小时合并Lab数据Detailsdays_XDetaildays按天合并用户数据按天合并Lab数据Detailsmonths_XDetailsmonths按月合并用户数据按月合并Lab数据Dtailyears_XDtail

30、syears图2:采集与整合数据流程2.5 数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能够有效地储存数据,满足各种用户的应用需求.由于整个电信运营支撑系统的功能很复杂,并且要存取大量的数据,因此简单的使用文件来存储和管理数据显然是不明智的。因此,本系统采用Mysql数据库来存储和管理数据。根据系统需求分析需要创建以下的数据表来存储数据。基于SSH的电信系统的后台数据的采集与整合模块涉及到的数据库设计:1、details_x表用于保存从采集系统传过来的数据,由中央处理系统负责插入到数据库中。31张表字段名称数据类型说明Login_nameVa

31、rchar(20)用户登录姓名Login_ipVarchar(128)用户登录IPLogin_datetimestamp用户登录时间Logout_datetimestamp用户退出时间Lab_ipVarchar(128)服务器IPTime_durationlong时长2、detaildays_x表是用来统计用户计费数据日表,31张表字段名称数据类型说明Login_nameVarchar(20)用户登录名Login_ipVarchar(128)用户登录IPLogout_datetimestamp统计日期Lab_ipVarchar(128)服务器IPTime_durationlong时长3、det

32、ailmoths_x表是用来统计用户计费数据月表,12张表字段名称数据类型说明Login_nameVarchar(20)用户登录名Login_ipVarchar(128)用户登录IPLogout_datetimestamp统计日期Lab_ipVarchar(128)服务器IPTime_durationlong时长4、detailyears_x表是用来统计用户计费数据年表,2005-2014年10张表字段名称数据类型说明Login_nameVarchar2(20)用户登录名Login_ipVarchar2(128)用户登录IPLogout_datetimestamp统计日期Lab_ipVarch

33、ar2(128)服务器IPTime_durationlong时长5、detaildays是用来存储服务器一天之内的被使用量,该表只能由管理员使用字段名称数据类型说明Logout_datetimestamp统计时间lab_ipVARCHAR2(128)服务器地址time_durationlong使用总时长6、detailsmoths是用来存储服务器一月之内的被使用量,该表只能由管理员使用字段名称数据类型说明Logout_datetimestamp统计时间lab_ipVARCHAR2(128)服务器地址time_durationlong使用总时长7、detailyears是用来存储服务器一年之内的

34、被使用量,该表只能由管理员使用字段名称数据类型说明Logout_datetimestamp统计时间lab_ipVARCHAR2(128)服务器地址time_durationlong使用总时长第3章 技术准备3.1 Java平台标准版(Java 2 Platform,Enterprise Edition) Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。3.2 Java平

35、台企业版(Java 2 Platform,Enterprise Edition) JavaEE是一种用来开发分布式企业软件应用系统的平台。Java语言从创生之日起,就获得广泛接纳,经历了巨大的发展。越来越多的技术都成了Java平台的一部分,为了适应不同的需要也开发出了很多全新的API和标准。最终,Sun公司联合了多家业界巨头,在开放的Java社区组织名义下,把所有与企业开发相关的标准整合起来,构成了JavaEE平台。对于企业,JavaEE平台有很多优势:JavaEE为企业级运算的许多领域(比如数据库连接、企业业务组件、面向消息的中间件(MOM)、Web相关组件、通信协议以及互操作性)设立了标准

36、。JavaEE促进人们基于开放的标准来开发软件;如此构建的系统实现,出自名门、安全稳固,因此JavaEE构成了一种可靠的技术投资。JavaEE是一种标准的开放平台,基于此开发的软件组建能够在不同厂商的产品中相互移植,从而避免了被一家厂商锁定。在软件开发过程中采用JavaEE能够缩短开发周期,使产品尽快投放市场这是因为,系统地很多底层架构和基础部分都已经有产品厂商按照JavaEE规范标准实现出来了,因此大多数IT企业可以不再开发中间件,集中尽力构建符合自己商业需要的应用。JavaEE提高了程序员的生产力,因为对于一个会Java语言的程序员来说很容易就能学会基于Java语言的JavaEE技术。所有

37、企业软件开发能够在JavaEE平台上、利用Java语言完成。JavaEE增进了现存各种异构系统之间的互操作性。3.3 Java swing图形界面Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 图形用户接口( GUI )库最初的设计目的是让程序员构建一个通用的 GUI ,使其在所有的平台上都能够正常的显示。但是比较遗憾的是 AWT 产生的是在各系统看来都同样欠佳的图形用户接口, JAVA1.2 为老

38、的 java1.0 AWT 添加了 java 基础类( JFC ),这是一个被称为 “Swing” 的 GUI 的一部分。 Swing 是第二代 GUI 开发工具集, AWT 采用了与特定平台相关的实现,而绝大部分 Swing 组件却不是。 Swing 是构筑在 AWT 上层的一组 GUI 组件的集合,为了保证可移植性,它完全用 Java 语言编写,与 AWT 相比, Swing 提供了更完整的组件,引入了许多新的特性和能力。 Swing 提供了更多的组件库,如: JTable , JTree , Jcombox 。 Swing 也增强了 AWT 中组件的功能。正是因为 Swing 具备了如此

39、多的优势所以我们以后在开发中都使用 Swing 。 JComponent 类是 Swing 组件的基类,而 JComponent 继承自 Container 类,因此,所有的 Swing 组件都是 AWT 的容器。 Swing 采用了 MVC 设计模式。 设计模式: 当你解决一个问题时你不需要从头做起,取而代之的是,你应该参考过去的经验,或者向专家咨询意见,设计模式是一种方法,该方法以一种结构化的形式提供专家意见。设计模式的灵感来自于建筑学设计模式。设计模式已经成为文化的一部分,当你谈论 MVC 或 “ 观察者模式时 ” 全世界的程序员都明白你的意思,因而,模式已经成为讨论设计问题的有效方法。

40、 Swing 采用了 mvc 模式, awt 事件模型采用了 “ 观察者 ” 模式 。MVC 【模型视图控制器】模式: 该模式同其他许多设计模式一样,都遵循面向对象的设计中的一个基本原则:不让对象具有太多的功能,如对于按钮来说不要让一个按钮类完成所有的事情,替代的方法就是让一个对象负责组件的观感,而另一个对象负责存储内容, mvc 模式实现三个独立的类: 模型存储内容; 视图显示内容; 控制器处理用户输入 mvc 模式明确规定了三个对象如何进行交互。模型存储内容,它没有任何用户界面。对于一个按钮来说,内容非常简单,它只是一组标志,用来说明按钮是否按下,是否启用等。对于一个文本框来说内容稍稍复杂

41、,它是容纳当前文本的一个字符串对象。这个内容和视图的内容并不一致如果内容长度大于文本框的显示长度,那么用户只能看到的就是只有文本框显示的那一部分。 mvc 模式总结:模型存储完整内容,视图给出了内容的可视化表示【完整或者不完整】,控制器负责处理用户输入事件,如鼠标点击和键盘事件等,然后它决定是否把这些事件转化成对模型或视图的改变。控制器作用举例:如果用户在一个文本框中按下了一个字符键,那么控制器就会调用模型中的 “ 插入字符 ” 命令,然后模型告诉视图进行更新,而视图永远不会知道文本为什么改变了,但是如果用户按下了一个光标键,那么控制器会通知视图进行卷屏滚动。卷动视图对实际文本不会有任何的影响

42、,因此模型永远不会知道该事件的发生。 Mvc 模式的一个优点是 : 一个模型可以有多个视图,其中每个视图可以显示完整内容的不同部分或不同方面。如果作为程序员来使用 Swing ,则不需要考虑 mvc 的体系结构,每个用户界面元素都有一个包装类(如 Jbutton 和 JTextField ),来保存模型和视图。 3.3 JDBC技术介绍JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据

43、此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的

44、优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。 Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的

45、方法。而 JDBC 正是作为此种用途的机制。 JDBC 是个低级接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。高级接口是对用户友好的接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。 JDBC API 既支持数据库访问的两层模型(C/S),同时也支持三层模型(B/S)。在两层模型中,Java applet或应用程序将直接与数据库进行对话。这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行 通讯。用户的SQL语句被送往数据库中,而其结果将被送回给用户。数据库可以位于另一台计算机上,用户通过网络连接到上面。这就叫做客户机/服务器配置,其中用户的计算机为客户机,提供数据库的计算机为服务器。网络可以是 Intranet(它可将公司职员连接起来),也可以是 Internet。 在三层模型中,命令先是被发送到服务的中间层,然后由它将SQL 语句发送给数据库。数据库

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁