




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
110126一22002718分类号TP315UDC编号论文题目基于WEB的B2B电子商务平台的设计与实现研究生指导教师专业研究方向所在学院王俊义教授计算机应用技术2006年5月28日基于WEB的B2B电子商务平台的设计与实现摘要电子商务在现代商业模式中正在发挥着日益重要的作用,基于与国际接轨,整合业务流程,充分发挥集团购销优势的迫切需要,中国石油股份有限公司作为国内能源领域的龙头企业,组织开发了基于WEB的B2B大型商务网站,最终建成实现了网上虚拟交易平台,成为联结采购商与供应商的商务网络环境,是构建B2B电子商务平台的典型案例。本文对该系统所采用的面向对象的规划与设计的开发过程进行了详细的分析,同时对于该系统的技术核心基于EJB的中间件技术所遇到的问题,如客户端与后台业务对象存在较强的依赖关系,从而不利于系统的管理与维护以及客户端与服务器之间过多的方法调用降低了网络运行效率等问题,提出了构造三层应用模型的思路,并讨论了实现的总体方法。最后,对该系统作为典型的J2EE技术架构应用于电子商务平台的构建进行了总结,以获取相关项目开发的经验。关键词电子商务,WEB服务,中间件,J2EE,EJB,应用系统络内蒙古大学硕士学位论文ABSTRACTITISPLAYINGAVERYIMPORTANTEFFECTTHATTHEELECTRONICCOMMERCEISINTHEMODERNBUSINESSPATTERNFORCONTACTINGWITHINTERNATIONAL,INTEGRATINGBUSINESSPROCESSANDGIVINGFULLPLAYTOGROUPPURCHASE,ASTHEMAINSTAYENTERPRISEINTHEENERGYFIELD,PETROCHINACOMPANYLTDDEVELOPEDALARGESCALEB2BELECTRICBUSINESSNETWORKTHATBEENBASEDONWEB,BUILTAVISUALCOMMERCEENVIRONMENTTHATRELATETOBUYERANDSUPPLIER,ITISATYPICALEXAMPLETHATBUILDAB2BEBUSINESSPLATFORMINTHETHESISIHAVEADETAILEDDISCUSSABOUTTHEDEVELOPINGPROCESSTHATAPPLYTHE2OBJECTORIENTEDANALYSISANDDESIGNMETHOD,ANDDISCOURSETHEQUESTIONTHATBEENMETINTHEPROCESSOFDEVELOPINGTHESYSTEMBASEDONEJBTECHNOLOGYSUCHASTIGHTCOUPLING,WHICHLEADSTODIRECTDEPENDENCEBETWEENCLIENTSANDBUSINESSOBJECTSTOOMANYMETHODINVOCATIONSBETWEENCLIENTANDSERVER,LEADINGTONETWORKPERFORMANCEPROBLEMS,TOTHEABOVEPROBLEMS,THISPAPERPROPOSESTHETHREETIERAPPLICATIONMODELBASEDONEJB,ANDITSIMPLEMENTATIONMETHODISALSODISCUSSEDATLAST,WESUMMARIZETHEPROCESSOFDEVELOPING,ITISTHOUGHTASATYPICALUSEOFJ2EEARCHITECTURETOMAKEUPTHEEBUSINESSPLATFORMANDWEOBTAINTHEEXPERIENCEINTHECOURSEOFWORKKEYWORDSELECTRONICCOMMERCE,WEBSERVER,MIDDLEWARE,J2EE,EJB,APPLICATIONSYSTEM基于WEB的B2B电子商务平台的设计与实现目录第一章绪论111B2B电子商务平台概述与课题研究的背景L12主要研究内容113论文的内容及组织。,。,二,3第二章主要技术及系统架构介绍521多层设计,。二5211多层设计。二5212J2EE架构7213J2EE的API与组件922设计模式MVC体系结构1123面向对象开发技术在工程中的应用13第三章系统分析与设计。巧31系统应用环境1532电子商务系统分析的过程16321系统分析的基本思路16322需求用例分析17323系统需求1833基于EJB的多层系统架构分析与设计322331系统构架22332基于EJB构建电子商务系统存在的问题23333基于EJB的三层应用模型的技术框架2434基于EJB的三层应用模型的实现方法二。27341EJB应用组件层的实现27342子系统会话层的实现27343系统访问会话层的实现28344客户端方法调用的实现30345基于EJB的三层应用模型的优点,3435基于EJB的三层应用模型在电子商务中的应用35内蒙古大学硕士学位论文36WEB层设计38第四章系统实现。,。,二。二,4141系统运行环境二。41411界面开发运行环境41412商业逻辑开发运行环境。41413数据层开发运行环境。、,。二。二。,。二。4142总体实现方案4143WEB层的实现4344业务层的实现,。,。,二。4445数据层的实现与组件的部署。二57第五章总结二,58451工作总结,。,。二,二,二,。二,5852进一步的工作59致谢。,。61参考文献。,二,61基于WEB的B2B电子商务平台的设计与实现第一章绪论11B2B电子商务平台概述与课题研究的背景互联网的影响深刻广泛地渗透到了传统的商务及贸易领域,形成了风靡全球的电子商务EC,ELECTRONCOMMERCE。电子商务是指应用电子信息技术和现代INTERNET网络技术在客户、厂商及其他交易主体之间进行的、以信息为依托的商务活动,通过网上采购、网上销售、网上招投标等基于WEB的商务运作,可以大幅度提高交易速度、提升服务品质、降低成本,更好地为企业服务。EC已经在全世界得到了广泛的应用,本文针对构建多层结构的、分布式的、面向对象的基于J2EE平台的应用系统提出了一个典型的模型,给出了它的体系结构、组成、功能,并对平台所涉及的技术等方面作了重点研究。一个电子商务平台应为交易双方提供如下功能1对产品供应商来说,其主要功能是建立企业的主页面,提供全方位的技术托管服务,同时具备B2B电子商务交易功能,具有大型的商品数据库支持,能够定制产品目录,自动处理定单,能够实时报道深层交易信息,制定和发布产品价格,同时,能够通过规范化的虚拟交易市场进行动态报价。2对产品采购商来说,其主要功能是对于常规大宗战略物资,该平台能够提供多角度的商品搜索查询功能提供定制采购订单功能对于工程项目所需特定材料或设备,提供网上询价、招投标、反向拍卖等商务功能,并能够对供应商反馈价格信息实现自动处理及采购商主动确认功能,可以对定单执行状况、交货状态进行查询。为实现上述功能,一个典型的电子商务平台应由网络系统、软件系统、安全系统、产品配送系统、资金结算系统、客户服务系统等六大系统组成,其中前三个系统属于技术范畴,后面三个系统属于管理范畴。本文将针对其软件系统的开发进行深入的探讨。12主要研究内容为了更加有效地发挥集团采购、销售优势,整合中国石油现有的广泛的人力、物力以5及信息资源,由中国石油天然气股份有限公司组织开发了基于WEB的电子商务平台采购与销售平台,为集团内部下属的数十家油田、炼化企业及数千家供应商企业提供ASP应用服务内蒙古大学硕士学位论文供应商服务。作为其下属分公司,我们参与了该系统规划与设计的部分工作,并对各功能模块进行了应用级测试。电子商务在当前的网络时代获得了巨大成功,并将随着网络的普及和发展扮演越来越重要的角色。现在,电子商务已经从最初的静态电子商务发展到今天的动态电子商务。实时动态交互的电子商务应用能够适应企业不断变化的业务策略,修订电子商务流程及相关系统,它反映了在实时条件下实现应用动态集成的概念,体现出了电子商务的真正价值。动态电子商务为中国石油下属的诸多企业提供了一个灵活的软件和硬件平台,该平台是企业在全球市场竞争所需要的基础,把应用扩展来支持跨企业的业务流程。动态电子商务的特点是软件应该按照商务的过程而造型,设计成可重用的和柔性的组件。现在动态电子商务的开发一般采用分布式组件技术。目前广泛使用的分布式组件技术有CORBACCMCORBACOMPONENTMODEL技术、MICROSOFT的COM/DCOM/COM技术和SUN的EJBENTERPRISEJAVABEAN技术。这三种技术都可以用来开发电子商务,且各有其特点。本论文的工作是研究运行于WINDWOS操作系统下,基于WEB服务方式的电子商务平台的设计开发及实现,阐述了其核心技术一J2EE中间件技术在开发过程中所遇到的问题,并提出了相关的解决方案。该系统以电子商务网站的形式为电子商务的买卖双方提供服务,用户使用IE浏览器进行各种交易活动。这种运行平台操作界面简单明了,操作流程清晰,由于直接支持INTERNET,使用户无论身处何地都可以使用。该平台实际上就是典型的ASP应用服务提供商模式。在模型的规划设计过程中,主要研究的重点在以下的几个方面1技术的先进性电子商务系统的实现技术发展很快,而大型系统的构建过程需要一定的时间,为了使企业保持持久的竞争优势,电子商务系统应采用先进的技术成果,使系统有一个较高的起点,本系统采用了SUN公司的J2EE技术平台,采用EJBENTERPRISEJAVABEAN组件体系结构,结合JSP及SERVLET等成熟的服务器端开发技术,共同构建了多层结构的,分布式的,面向对象的JAVA系统。2通用性基于中国石油作为中国能源大型国企,其下属拥有数十家大中型分支企业的特点,本系统设计基点是通用性,最大限度减少客户端软件的配置复杂度,具体实施过程6中,只是由于地区系统管理员后台管理界面数据量过大,而采用了JAVAAPPLET技术生成本地页面外,客户端的前端操作只需要IE50浏览器的支持需开放网络防火墙特定端口即可。这样,不仅为中国石油下属企业提供了简单的软件需求,同时降低了作为供应商的全国数千家中小企业入围的技术门槛,使用户在不同的网络环境下,均可以很快地进入商务操作,充分基于WEB的B2B电子商务平台的设计与实现利用了INTERNET的通讯能力,方便快捷、安全地传送各种商务单证和文档,使得该系统成为实用型的电子商务交易平台,体现了开放务实的经营理念。3可扩充性该系统可被用于拥有大量成员企业的商务环境中,因此在设计中充分考虑到系统的可扩充性。首先是数据库的可扩充性,采用了ORACLE公司的数据库产品,利用分布式的数据库结构设计,可以用增加数据库服务器的方式来提高系统的容量和效率。WEB服务器的个数也可以随使用WEB界面的用户数增加而增加。可以增加个数以提高交易的处理能力。4安全性安全性包括通讯的隐密性、交易对象的身份确认、交易文档的完整性以及不可抵赖性等。该系统支持SSL安全套接协议以保证INTERNET上通讯的安全性,另外,该平台支持更高标准的安全系统,如SMARTCARD、数字签章等。另外,安全性还包括网站的数据安全性和物理安全性等,本系统采用了SAN存储区域网络架构对大量的并发数据流进行存储。后面各章中所提供的规划与设计过程分析将详细说明该电子商务平台是如何达到这些目标的,并针对J2EE核心组件EJB采用分层设计,以改善其应用性能提出初步的讨论及解决方案。最终的解决方案必须满足以下要求技术体系结构采用J2EE平台,支持多种数据库成本客户端尽可能低做到零维护成本。功能适应大型国有企业电子商务的需要。设计对象、模块划分合理,祸合度低,可重用。本论文将设计系统的架构。为系统或服务的特定层面推荐适合的技术和产品。做出符合功能性及非功能性操作需求的设计决策。为系统或服务选择合适的通讯机制。实现并验证系统13论文的内容及组织本文共分为五章。内蒙古大学硕士学位论文7第一章概述该系统建立的背景,从电子商务系统的需求出发陈述了课题的需求以及要实现的目标。第二章介绍开发所依据的理论根据、方法和技术,包括MVC设计模式和EJB20技术,同时讨论了开发过程中运用的面向对象的开发技术在工程实践中的应用。第三章在电子商务系统的需求分析的基础上,采用面向对象的分析设计方法,详细阐述了平台的系统架构选择及系统设计。第四章对系统平台框架、服务及接口的实现进行详细的阐述。第五章对所作的工作进行了简要的总结,并展望了进一步的工作。最后包括参考文献和致谢。基于WEB的B2B电子商务平台的设计与实现第二章主要技术及系统架构介绍本章介绍了进行该系统平台设计与开发所依据的理论根据、方法和技术。包括在系统架构设计时进行框架的选择上用到的多层设计理论和WINDOWS平台下的J2EE框架的介绍说明在详细设计时用到的面向对象的设计方法以及为提高设计效率而采用的设计模式的介绍在开发阶段软件开发方法的说明。21多层设计211多层设计由于采用了J2EE技术规范,系统在逻辑设计上采用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据它们所在的层分布在不同的机器上。事实上,SUN公司设计J2EE的初衷正是为了解决两层US模式的弊端,单纯就功能的观点来看,大部分企业级应用模型主要执行三种功能收集客户端输入信息,并将输入以数据形式储存,以及根据制定的操作过程指令来处理数据。这些工作能被分配到三层或更多层中,这也就是系统设计提供三层或多层应用程序的原因。基于J2EE规范的应用程序的分层结构如图21所示客户层WEB层业务层数据层FIG21J2EELOGICARCHITECTURE图21J2EE体系结构在上图中,JZEE共分为四层,分别是运行在客户端机器上的客户层、运行在WEB服务器上的WEB层、运行在EJB应用服务器上的业务层和运行在数据库服务器上数据_二_二_二_一_F7蔓4IIJC一一一一一一一一一一层,其中WEB层和业务层共同组成了J2EE应用的中间层。J2EE规范定义了相应层的组件1客户层应用客户端程序和浏览器是客户层组件。客户层组件可以是基于WEB方式的即作为WEB服务器的浏览器,也可以是基于传统方式的即独立的应用程序。一个WEB客户端由两部分组成由运行在WEB层的WEB组件生成的包含各种标记语言的动态WEB页面和接受从服务器传送来的页面并将它显示出来的WEB页面。一个WEB8客户端有时被称之为瘦客户端。瘦客户端一般不做象数据库查询、执行复杂的业务规则及连接传统应用程序这样的操作。当使用一个瘦客户端时,象这样的重量级的操作被交给了在J2EE服务器执行的EJB。这样就可以充分发挥J2EE服务器端技术在安全性、速度、耐用性和可靠性方面的优势。J2EE应用程序客户端运行在客户端机器上,它使得用户可以处理需要比标记语言所能提供的更丰富的用户界面的任务。具有代表性的是用SWING或抽象窗口工具包AWT建立的图形用户界面。应用程序客户端直接访问运行在业务层的EJB组件。2WEB层表达层WEB组件与基于WEB的客户端如WEB浏览器进行交互。J2EE中有两类WEB组件SERVLET组件和JSP组件。SERVLET是一个JAVA编程语言类,它可以动态地处理请求并作出响应。JSP页面是一个基于文本的文档,它以SERVLET的方式执行,但是它可以更方便地建立静态内容。3业务层作为解决或满足某个特定业务领域需要的逻辑的业务代码由运行在业务层的EJB来执行。一个EJB从客户程序处接收数据,对数据进行处理,再将数据发送到企业信基于WEB的B2B电子商务平台的设计与实现息系统层存储并从存储中检索数据,送回客户程序。运行在业务层的EJB依赖于容器来为诸如事务、生命期、状态管理、多线程及资源存储池等提供通常都是非常复杂的系统级代码。业务层通常又被称为EJB层。4数据层基础架构层数据层运行企业信息系统软件,包括企业基础设施系统,例如MIS系统、数据库系统及其他文档管理信息系统等。J2EE应用组件可能需要访问企业信息系统中的相关数据。在一个较为复杂的多层体系结构中,典型的操作模式为客户端的请求通过HTTP协议提交到远程服务器端SERVLET组件,SERVLET调用EJB的接口,EJB执行与数据库的交互及其它操作该数据库可以位于本地企业信息系统层,也可以位于商务网站服务器中,并将操作结果返回给SERVLET,SERVLET再将请求转发给JSP,最终由JSP生成活动页面反馈到客户端。212JZEE架构目前,JAVA2JAVA语言的一个版本平台有3个版本,分别是适用于小型设备和智能卡的MICRO版JAVA2PLATFORMMICROEDITION,J2ME、适用于桌面系统的标准版JAVA2PLATFORMSTANDARDEDITION,J2SE以及适用于创建服务器应用程序和服务的企业版JAVA2PLATFORMENTERPRISEEDITION,JZEE。J2EE是一种利用JAVA2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构,它是一整套功能非常健壮的开发企业级中间件的规范。J2EE技术的基础就是核心JAVA平台或J2SE,J2EE不仅巩固了J2SE中的许多优点,例如”编写一次、随处运行”的特性、方便存取数据库的JDBCAPI以及支持CORBA技术等等,同时还提供了对EJB,JAVASERVLET,JSP以及XML技术的全面支持。内蒙古大学硕士学位论文J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持EJB,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。J2EE为搭建具有可伸缩性、灵活性、易维护性的应用系统提供了良好的机制91保留现有的IT资产由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新开发新的系统就变得很重要,J2EE架构就可以满足用户的这种需要。J2EE拥有广泛的业界支持和一些重要的企业计算领域供应商的参与,对现有的客户提供了不用废弃己有投资的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,所以现有的操作系统和硬件也能被保留使用。2高效的开发J2EE允许把一些通用的、很繁琐的服务端任务交给中间件供应商去完成,这样开发人员可以集中精力在如何创建业务逻辑上,相应地缩短了开发时间。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件,因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台,这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中。3可伸缩性企业必须要选择一种服务器端平台,这种平台应能提供较好的可伸缩性去满足那些在他们系统上进行业务运作的大批客户。基于J2EE平台的应用程序可被部署到各种操作系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署,实现可高度伸缩的系统,满足未来商业应用的需要。基于WEB的B2B电子商务平台的设计与实现4稳定的可用性服务器端平台必须能全天候运转以满足公司客户和合作伙伴的需要,因为工NTERNET是全球化的,即使在夜间按计划停机也可能造成严重损失,若是意外停机,那会有灾难性后果。J2EE被部署到可靠的操作环境中,他们支持长期的可用性,这对实时性要求很强的商业系统至为重要。基于层次化组件模式的J2EE平台由于具有上述特性,己经成为企业级商业分布式网络计算的事实标准。213NEE的AP工与组件J2EE平台由一整套服务SERVICES、应用程序接口AP工S和协议构成,它对开发基于WEB的多层应用提供了强有力的功能支持,下面对J2EE中的13种技术规范进行简单的描述1EJBENTERPRISEJAVABEANEJB提供了一个框架来开发和实施分布式业务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。EJB是J2EE的核心部分。2JAVA远程方法调用RMI和RM工一工TOPRMI是JAVA语言自身提供的用来在分布式对象之间通信的机制,而RMI一工LOP是RM工可移植的扩展,可以应用工NTERNETINTERORB协议,并能够用来与CORBA集成。3JAVA命名和目录接口JNDIJNDI用于访问命名和目录系统,它提供了一致的模型来存取和操作企业级的资源,如本地文件系统或应用服务器中的对象。JNDI为应用程序提供标准的命名和目录操作方内蒙古大学硕士学位论文法。使用JNDI,一个JZEE应用程序可以存储和查找得到任何类型的命名JAVA对象。因为JNDI不依赖于任何特定的执行,应用程序可以使用JNDI访问各种命名目录服务,包括现有的各种诸如LDAP,NDS,DNS和NIS这样的命名目录服务。104JAVA数据库连接JDBC川BC是访问关系数据库的AP工,它为访问不同的数据库提供了一种统一的途径。通过JDBC可以从JAVA编程语言的方法中调用SQL命令,从而对数据库进行操作。5JAVA事务处理APIJTA和JAVA事务处理服务JTSJTA和JTS规范为组件提供了可靠的事务处理支持。JZEE体系结构提供了一个默认的自动提交以处理事务的提交和回滚。6JAVA消息服务JMSJMS是用于和面向消息的中间件相互通信的APIJMS允许J2EE应用程序建立、发送、接受和阅读消息,它使得建立连接简单的、可靠的和异步的分布式通信成为可育旨。7JAVASERVLETSERVLET是用来扩展WEB服务器功能的网络组件,它基于请求/响应机制。SERVLET从客户端例如WEB浏览器获得请求,然后,将响应结果返回客户端。8JSPJSP页面由HTML代码和嵌入其中的JAVA代码所组成。服务器在页面被客户端所请求以后对这些JAVA代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。9JAVAIDLJAVA工DL是SUN公司基于JAVA的对CORBA规范的实现,JAVAIDL允许与其他语言集成,而且它能够让分布式对象利用CORBA提供的全面服务。基于WEB的B2B电子商务平台的设计与实现10JAVAMAILJAVAMAIL是用于存取邮件服务器的AP工,它提供了一套邮件服务器的抽象类。JAVAMAIL服务可以使JAVA应用程序以一种平台无关的、协议无关的方式发送电子邮件。J2EE应用程序可以使用JAVAMAILAPI来发送EMAIL11J2EE连接器构架JCAJCA可以从一个J2EE部署访问现有企业信息系统。J2EE工具提供商和系统集成者使用JCA建立可以加入到任何J2EE产品的支持访问企业信息系统的资源适配器。一个资源适配器就是一个使得J2EE应用程序组件可以访问底层的资源管理器并与其实现交互的软件组件。12XMLEXTENSIBLEMARKUPLANGUAGEXML是一种可以用来定义其它标记语言的语言,它被用来在不同的业务过程中共享数据。XML使数据可以被任何程序和工具读取和处理。JAVAXML处理APIJAXP支持使用DOM,SAX和XSLT对XML文档进行处理。JAXP使得应用程序可以不依赖于特殊的XML处理执行来解析和转换XML文档。13JAVA认证和授权服务JARS在J2EE中,JAAS是执行与安全相关的操作的标准APIJAAS为J2EE应用程序提供了一个方法以为一个特定的用户或一组用户进行认证和授权。JARS是标准的可插入认证模块PAM结构的JAVA版本,它对JAVA2平台的安全认证框架进行了扩展以支持基于用户的安全认证。22设计模式一MVC体系结构设计模式DESIGNPATTERN概念的提出,是面向对象程序设计演化过程中的一个重要里程碑。设计模式使得人们可以更加简单和方便地去复用成功的软件设计和体内蒙古大学硕士学位论文11系结构,从而能够帮助设计者更快更好地完成系统设计。设计模式的概念最早起源于建筑领域关于城市规划和建筑设计的规范化设计方法中,但其观点实际上适用于所有的工程设计领域,其中就包括软件设计领域。设计模式是一条由三部分组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,就能重复使用该方案而不必做重复劳动。将设计模式引入软件设计和开发过程的目的在于充分利用己有的软件开发经验,这是因为设计模式通常是对于某一类软件设计问题的可重用的解决方案。优秀的软件设计师都非常清楚,不是所有的问题都需要从头开始解决,他们更愿意复用以前曾经使用过的解决方案,每当他们找到一个好的解决方案,他们会一遍又一遍地使用,这些经验是他们成为专家的部分原因。设计模式的最终目标就是帮助人们利用熟练的软件设计师的集体经验,来设计出更加优秀的软件。在长期的软件实践过程中,人们逐渐总结出了一些实用的设计模式,并将它们应用于具体的软件系统中,出色地解决了很多设计上的难题。源于SMALLTALK,并在JAVA中得到广泛应用的模型一视图一控制器MODELVIEWCONTROLLER,MVC体系结构,是目前最常见并被成功使用的一个设计模式,随着J2EE的逐渐成熟,正在成为J2EE平台上推荐的设计模型。MVC模式通常用在开发人机交互软件的时候,这类软件的最大特点就是用户界面容易改变,例如,要扩展一个应用程序的功能时,通常需要修改菜单来反映这种变化。如果用户界面和核心功能紧紧交织在一起,要建立这样一个灵活的系统通常是非常困难的,因为很容易产生错误。为了更好地开发这样的软件系统,系统设计师必须考虑下面两个因素用户界面应该是易于改变的,甚至在运行期间也是有可能改变的用户界面的修改或移植不会影响软件的核心功能代码。基于WEB的分布式电子商务系统在设计时宜于采用将模型MODEL、视图VIEW和控制器CONTROLLER相分离的思想。在这种设计模式中应用对象可以分为三类,一类是负责显示的对象,另一类对象包含商务规则和数据,还有一类接受请求,控制商务对象完成请求。上述对象可以用MVC设计模式分类处理。视图用来向用户显示信息,它获得来自模型的数据,决定模型以什么样的方式展基于WEB的B2B电子商务平台的设计与实现示给用户。同一个模型可以对应于多个视图,这样对于视图而言,模型就是可重用的代码。一般来说,模型内部必须保留所有对应视图的相关信息,以便在模型的状态发生改变时,可以通知所有的视图进行更新。模型用来封装商务逻辑与核心数据,它独立于特定的输出表示和输入行为,是执行某些任务的代码,至于这些任务以什么形式显示给用户,并不是模型所关注的问题。模型只有纯粹的功能性接口,也就是一系列的公开方法,这些方法有的是取值方法,让系统其它部分可以得到模型的内部状态,有的则是置值方法,允许系统的其它部分修改模型的内部状态。控制器是和视图联合使用的,它捕捉鼠标移动、鼠标点击和键盘输入等事件,将其转化成服务请求,然后再传给模型或者视图。整个软件的用户是通过控制器来与系统交互的,他通过控制器来操纵模型,从而向模型传递数据,改变模型的状态,并最后导致视图的更新。MVC设计模式将模型、视图与控制器三个相对独立的部分分隔开来,这样可以改变软件的一个子系统而不至于对其它子系统产生重要影响。例如,在将一个非图形化12用户界面软件修改为图形化用户界面软件时,不需要对模型进行修改,而添加一个对新的输入设备的支持,则通常不会对视图产生任何影响。应用了MVC设计模式的软件系统,其基本的实现过程是1控制器创建模型2控制器创建一个或多个视图,并将它们与模型相关联3控制器负责改变模型的状态4当模型的状态发生改变时,模型会通知与之相关的视图进行更新。23面向对象开发技术在工程中的应用面向对象的分析与设计OOA后者进行事务处理,同时提供对业务数据基于WEB的B2B电子商务平台的设计与实现的访问。层技术中层的划分没有统一的标准。如何使用都要看具体的情况才能够决定。作为一个电子商务平台。该系统要求能够同时处理大量用户的请求,用户的范围广。同时中间层逻辑十分复杂,不但需要对大量订单进行及时处理,而且动态交易系统需要长时间稳定的实时数据处理与传输,这就要求层级结构划分为更细的粒度。332基于EJB构建电子商务系统存在的问题J2EE和EJB在开发大型的企业应用系统中具有无可比拟的优势,它们提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求,通过提供统一的开发平台,降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持。虽然EJB技术在大型企业应用中得到了广泛的应用,但采用EJB技术开发的系统也存在着一些问题,这些问题将为系统的实际应用带来不便和麻烦。EJB系统存在的主要问题有层次之间联系过于紧密,客户端和后端的业务对象具有较强的依赖关系,不利于系统的管理和维护在客户和服务器之间太多的方法调用会导致网络性能方面的问题缺乏统一的客户访问机制,将业务对象暴露给客户端,可能会产生安全方面的问题。一个多层次的J2EE应用程序通常具有很多由EJB实现的服务器端对象,它们通常负责提供系统服务、数据信息等,也就是说作为业务对象,它们既包括相关的程序数据,也包括其程序逻辑。应用系统的用户需要访问业务对象来满足自己的需求,如果业务对象向用户提供接口,用户可以直接地与相关对象通信,但是这样一来,用户必须负责管理所调用的业务对象之间的关系,并且能够处理其间的业务流程。而且,如内蒙古大学硕士学位论文果用户和业务对象之间存在过于直接的交互,两者的联系就会过于紧密,同时也使得用户过于依赖业务对象的具体实现,并负责管理与交互过程有关的业务对象查找和创建,以及不同的对象间相互调用的关系,甚至一些时候用户还需要管理多次调用之间的事务管理环节。在用户需求不断增加时,用户与不同的业务对象之间的交互也会变越来越复杂,而业务对象可能需要一定内部的更新才能满足用户的需要,但是这样的话用户又需要根据业务对象实现的变化而做出相应的改变,这种情况将为应用系统带来相当大的麻烦。在访问EJB应用系统时,用户需要与远程对象进行交互。如果用户直接与所有相关的业务对象交互的话,将带来很大的网络负担因为对于每一个客户端的调用,都将产生一次远程的调用,而如果存在大量的系统用户,用户与对象间的交互就将为网络通信带来很大的压力,使系统性能受到很大破坏。如果用户可以直接访问后端的业务对象,18但是系统中又缺少一个统一的用户访问机制,那么这些访问很有可能变得杂乱无章,引起系统性能的下降,甚至导致一些安全方面的问题。333基于EJB的三层应用模型的技术框架针对EJB系统存在的上述问题,需要提供一个暴露给客户端的统一接口,客户端直接通过这个接口访问EJB中的方法,以降低客户端与EJB之间的藕合度将远程方法调用通过本地调用来实现,以减少网络开销,提高系统性能对业务对象间的复杂交互进行封装,使业务对象对于客户端来说是透明的,以避免客户端对业务对象的随意访问。为此,本论文提出了基于EJB的三层应用模型,其基本结构如图34所示。基于WEB的B2B电子商务平台的设计与实现系统访问会话层子系统会话层应用争鳗4THREE七翌图34基于EJB的三层应用模型基于EJB的三层应用模型将实际的应用系统分为三层,即系统访问会话层、子系统会话层和EJB应用组件层。实际应用中可将一个系统分解为若干个子系统,然后分别用子系统会话BEAN对子系统包含的会话BEAN和实体BEAN进行封装,最后,再用系统访问会话BEAN封装这些子系统。这样,客户端对EJB的方法调用可通过访问系统访问会话BEAN来实现。下面分别对这三层进行说明。1EJB应用组件层E皿应用组件层为服务器端业务对象,一般包括会话BEAN和实体BEAN,用来处理业务逻辑和业务数据。EJB应用组件层是最为重要的一层,因为大多数方法的实现是在这一层完成的,客户端对方法的大多数调用最终也要通过这一层来实现。由于要对EJB应用组件层进行封装,一般对EJB应用组件层的访问是通过本地接口实现的。EJB应用组件层的实现直接决定了系统的质量。2子系统会话层一个系统分为若干个子系统,每个子系统把一些相关的EJB组件封装在一起。子系统会话层由会话BEAN来实现,即使用会话BEAN包含一个工作流中所有相关对象的交互。这个会话BEAN负责管理业务对象,并向上层即系统访问会话层提供对子系统会内蒙古大学硕士学位论文话层的访问接口,会话BEAN可以处理底层对象的交互过程,并包含必须提供的接口,由此它屏蔽了复杂的对象交互。子系统会话BEAN也负责管理业务数据和业务对象之间的交互,并表达其中需要的业务逻辑,因此会话BEAN也可以管理业务对象之间的作用关系同时,根据工作流的需要,子系统会话BEAN也管理对象的创建、查找、修改和删除。子系统会话BEAN只是对通往子系统对象的接口进行抽象以使它们更易于使用。子系统会话层作为系统访问会话层和EJB应用组件层的中转站,起着承上启下的作用,如果由系统访问会话层直接管理EJB应用组件层,则由于大型企业系统EJB的数量多以及E皿之间的复杂交互,系统访问会话层对E皿应用组件层的直接管理将比变得很复杂且很难实现。3系统访问会话层系统访问会话层向客户端提供对系统访问的一个统一接口。这样,所有用户对系统的访问都通过系统访问会话层来实现。系统访问会话层由会话BEAN来实现,即由会话BEAN包含一个工作流中所有相关对象的交互。系统访问会话层负责子系统会话层业务对象之间的交互,并实现其中的业务逻辑,管理工作流中相关对象的生命周期,系统访问会话层在系统层次上对整个系统进行管理。对一般方法的调用,系统访问会话19层只是提供了一个客户对系统访问的接口,而不提供其方法的具体实现。系统访问会话BEAN只定义几个管理底层对象的管理方法和一个执行方法EXECUTE,易于管理和实现。客户可以调用本层的管理方法以进行粗粒度访问,也可通过调用执行方法EXECUTE以访问低层的方法。当客户通过EXECUTE方法进行方法调用时,首先定位此方法所属的子系统,调用此子系统的方法,由子系统会话层实现此方法或者由子系统会话层调用相应的EJB来实现此方法。随着计算机的存储和处理能力的不断增强,将一个或多个子系统包含的EJB部署基于WEB的B2B电子商务平台的设计与实现到同一JVM中成为可能。为最大限度地提高系统性能,基于EJB的三层应用模型要求对系统进行合理划分,以适当的粒度划分为多个子系统。若粒度过大,则子系统包含的EJB过多,不利于子系统的管理若粒度太小,则划分的子系统会过多,不利于系统访问会话层对子系统的管理。在部署EJB时,将访问频率高的一个或多个子系统与系统访问会话BEAN部署在同一JVM中,这样,可以对这些子系统进行本地访问,从而减少了网络开销,提高了系统性能。34基于EJB的三层应用模型的实现方法341EJB应用组件层的实现EJB应用组件层主要用于处理业务逻辑和业务数据,一般由会话BEAN和实体BEAN来实现。由于客户端对EJB应用组件层方法的调用是通过系统访问会话层和子系统会话层的接口实现而不是直接访问EJB,而每个子系统一般处于同一JVM中,所以EJB组件不需要提供远程接口,而只需提供本地接口。与业务过程相关的逻辑由会话BEAN处理,而与数据相关的逻辑则由实体BEAN处理。E皿应用组件层包含的是一些基本的EJB组件,这些组件实现系统的基本功能。EJB应用组件层是EJB技术规范的真正体现,其实现也应严格遵循EJB技术规范的规定和要求。342子系统会话层的实现子系统会话层是基于E邓的三层应用模型的中间层,主要用于对底层相关E邓的封装,且向上层即系统访问会话层提供服务。子系统会话层可包含多个EJB,且此层定义这些EJB的所有方法,这些方法一般是通过调用底层EJB来实现的。此外,子系统会话层还负责对底层的业务对象及其交互进行管理,所以还应定义一些管理方法,内蒙古大学硕士学位论文这些方法可以实现对系统的粗粒度访问。子系统会话层一般由会话BEAN来实现,此会话BEAN称为子系统会话BEAN。子系统会话层中的子系统会话BEAN与系统访问会话BEAN可部署在同一或不同的JVM中,而客户端对方法的调用是通过系统访问会话层实现的,所以子系统会话BEAN既要提供本地接口,也要提供远程接口。如果子系统会话BEAN与系统访问会话BEAN处于同一JVM中,则系统访问会话BEAN通过本地接口对子系统会话BEAN进行访问,否则,系统访问会话BEAN对子系统会话BEAN的访问要通过远程接口来实现。子系统会话BEAN可以是无状态会话BEAN,也可以是有状态会话BEAN,这依情况的不同而选择。在实现子系统会话层时,首先应该决定是用无状态会话BEAN还是有状态会话BEAN来实现,这主要取决于子系统会话层所建模的业务流程。如果一个业务流程只需要一次方法调用就可以实现其服务,那么就可以使用无状态会话BEAN来实现。如果一个业务流程需要多次方法调用来实现其服务时,一般使用有状态会话BEAN来实现这一流程,因为每次方法调用的状态信息都必须在会话BEAN中保存。343系统访问会话层的实现系统访问会话层为基于EJB的三层应用模型的最上层,也是直接面向客户端的层20次。系统访问会话层主要用于对子系统会话层进行封装,使客户端不直接对子系统会话层进行访问,以隐藏其实现,提高安全性。系统访问会话层负责对子系统会话层的业务对象及其交互进行管理,所以应定义一些管理方法实现低层对象的交互。系统访问会话层一般由会话BEAN来实现,此会话BEAN称为系统访问会话BEAN系统访问会话层直接暴露给客户端,客户端可直接访问系统访问会话层,也即客户端对系统访问会话层的访问是通过远程接口实现的。系统访问会话BEAN类要实现初始化方法EJBCREATE,当客户端调用系统访问会话28基于WEB的B2B电子商务平台的设计与实现HOME接口的CREATE方法时,触发EJBCREATE方法。在EJBCREATE方法中,首先生成各个子系统的本地接口实例或远程接口实例,这样可以通过这些实例实现对子系统会话层的访问。同样,系统访问会话BEAN类也要实现方法EJBREMOVE方法,在EJBREMOVE方法中,要释放初始化时生成的实例引用,设置这些实例引用为NULL系统访问会话BEAN除了实现生命周期方法和管理方法外,还需要定义另一个业务方法一EXECUTE方法,此方法是系统访问会话BEAN的核心方法。系统访问会话层通过EXECUTE方法定位客户端调用的方法所在的子系统,并由相应的子系统对客户端调用方法进行实现。EXECUTE方法定义如下PUBLICOBJECTEXECUTESTRINGSUBSYSTEM,STRINGMETHOD,OBJECTARGSEXECUTE方法有三个参数。第一个参数是一个字符串,此字符串是一个有意义的单词,表示调用方法所在的子系统,通过这个字符串可以定位此子系统。第二个参数也是一个字符串,表示客户端要调用的方法名称。第三个参数是一个对象数组,包含要调用方法的参数,如果调用方法没有参数,则可以为ARGS参数传递一个NULL或一个长度为0的数组。这样,通过第一个参数定位子系统,通过第二个参数和第三个参数可以生成一个METHOD对象,也即要调用的方法。然后调用该METHOD对象的INVOKE方法即可实现对客户端的方法调用。方法类METHOD在JAVALANGREFLECT包中,它定义了对方法进行的一些操作,其中最重要的一个方法是INVOKE方法。INVOKE方法定义如下OBJECTINVOKEOBJECTOBJ,OBJECTIARGS方法类对象通过这个方法调用真正的方法实现。与子系统会话BEAN相似,系统访问会话BEAN依照情况的不同可以是无状态会话BEAN,也可以是有状态会话BEAN。在实现系统访问会话层时,首先应该决定是用无状内蒙古大学硕士学位论文态会话BEAN还是有状态会话BEAN来实现,这主要取决于系统访问会话层的业务流程。如果一个业务流程只需要一次方法调用就可以实现其服务,那么就可以使用无状态会话BEAN来实现。如果一个业务流程需要多次方法调用来实现其服务时,则使用有状态会话BEAN来实现这一流程。作为客户端直接调用的系统访问会话BEAN,一般要保存客户端的状态,所以此会话BEAN一般为有状态的会话BEAN344客户端方法调用的实现基于EJB的三层应用模型只对客户端提供一个接口,客户端对EJB的方法调用都是通过系统访问会话层实现的。根据客户端调用的方法的不同,可有三种不同的实现方式。I客户端调用EJB应用组件层方法的实现客户端对EJB应用组件层方法的调用是通过系统访问会话层和子系统会话层实现的,其实现过程如图35所示。21基于WEB的B2B电子商务平台的设计与实现FIG35THEMETHEDINVOCATIONPROCESSOFEJBAPPLICATIONCOMPONENTTIERUNDERTHREETIERAPPLICATIONMODELBASEDONEJB图35基于EJB的三层应用模型下EJB应用组件层方法的调用过程客户端要调用EJB应用组件层的方法,首先利用CONTEXT对象查找系统访问会话HOME接口,通过调用HOME接口的。REATE方法获得系统访问会话远程接口。然后,客户端利用此远程接口对系统访问会话层进行方法调用,系统访问会话EJB对象调用系统访问会话BEAN的EXECUTE方法。EXECUTE方法首先通过子系统会话接口本地接口或远程接口查找子系统会话EJB对象,然后再利用此EJB对象调用子系统会话BEAN的相关方法。子系统会话BEAN通过本地接口调用EJB应用组件层的EJB方法,此EJB返回方法给EJB对象,然后返回方法调用的结果给子系统会话BEAN,子系统会话BEAN再将结果传递给系统访问会话层,最后把结果返回给客户端。通过对EJB应用组件层方法的调用,可以看出系统访问会话层和子系统会话层作为EJB应用组件层的封装,内蒙古大学硕士学位论文不进行具体的方法实现,方法最终由底层的EJB来实现。通过这种封装,实现了对底层EJB的隐藏和保护。2客户端调用子系统会话层管理方法的实现子系统会话层管理方法主要用于对子系统的EJB及其EJB之间的交互进行管理。客户端对子系统会话层管理方法的调用是通过系统访问会话层实现的,其实现过程如图36所示。FIG36THEMETHEDINVOCATIONPROCESSOFSUBSYSTEMSESSION_TIERUNDERTHREETIERAPPLICATIONMODELBASEDONEJB图36基于E皿的三层应用模型下子系统会话层管理方法的调用过程客户端要调用子系统会话层的管理方法,首先利用CONTEXT对象查找系统访问会话HOME接口,通过调用HOME接口的。REATE方法获得系统访问会话远程接口。然后,客户端利用此远程接口对系统访问会话层进行方法调用,系统访问会话EJB对象调用系统访问会话BEAN的EXECUTE方法。EXECUTE方法首先通过子系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 流动资金外汇借款合同范本
- 云南省石林彝族自治县2025年上半年事业单位公开遴选试题含答案分析
- 河北省任县2025年上半年事业单位公开遴选试题含答案分析
- 河北省清河县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年度内退员工离职后权益保障合同
- 2025年拖拉机驾驶培训与考核服务合同书
- 2025年船只租赁及港口操作服务合同范本
- 2025版外墙防水施工项目索赔处理合同
- 2025年抵押担保环保技术投资合同
- 2025版农业科技企业种植技术员聘用合同范本共3
- 无人机打药合同协议书
- 《肥胖症诊疗指南(2024年版)》解读课件
- 乡村振兴文化旅游发展规划
- 《油气输送管道完整性评估》课件
- 2025CSCO结直肠癌诊疗指南解读
- 电力隐患培训课件
- 2025报关单填制规范
- 装修巡检流程与注意事项
- 2025年《审计理论与实务(中级)》考前几页纸
- 北京高考英语一轮专项复习:词汇-高频短语(含解析)
- 现金入股协议合同
评论
0/150
提交评论