3.1客户管理域客户管理域的事务属于在线处理类事务(OLAP),主要的事务包括客户下新的定单、修改定单、查询某个定单的状态、或者查询某个客户的所有定单等。定单的来源包括一般客户和公司客户(分销企业),公司客户的定单称为大定单(BigOrders)。当系统接收到新的定单,需要通过公司管理域,查询客户的信用状况,根据用户是分销商、第一次客户还是老客户,来决定不同的折扣率。已经下的定单还可以进行修改,客户可以查看自己的定单,销售人员则可以查看所有客户的定单。
3.2制造过程管理域
制造过程管理域管理企业的生产线活动。生产的成品称为部件(Widgets),由构件(Components)组装而成。部件和构件,统称为零件(Pans)。生产线的类型有两种,包括计划生产线(PlannedLines)和大定单生产线(LargeOrderLines)。计划生产线按照事先规定的数量和生产速度,生产部件;而大定单生产线则根据客户的大定单来进行生产。具体的生产过程由工作单(WorkOrder)来进行驱动。工作单描述某种类型的部件的数量及其说明。计划生产线的作用,是模拟现实中的根据预测来进行生产的活动,而大定单生产线则模拟现实中的根据客户定单进行生产的情形。当工作单进入系统,系统查询BOM(BillofMaterials,是对生产某个部件需要什么构件以及数量的描述),并且从库存中凋出相应的构件。当部件在生产线上移动,数据库里的部件状态相应进行更新。当工作单完成,数据库的工作单状态随即改变,零件库存量相应做出更新。如果某种构件的库存用光了(可以设置库存警戒线),系统向供应发出购买定单。
3.3供应链管理域
供应链管理域负责和供应商的交互事务。它负责根据所需要汀购的零部件、订购的数量、供应商的报价等信息,决定联系哪个供应商。供应链管理域随即向选定的供应商发送一个采购单(PurchaseOrder)。采购单包含采购的零部件类型和数量、收货地址、以及发货的截止时间等信息。当供应链管理域接收到相应的零部件后,则往制造管理域发送更新库存的消息,由之更新库存。
3.4公司内部信息管理域
公司内部信息管理域负责管理客户、零件、供应商等信息。客户的信用信息,包括其信用额度等,保存在公司内部信息管理域的独立数据库里,通过这样的信息部署,保证了最大的信息安全。当客户下新定单的时候,系统需要检查其信用信息,这个请求来自客户管理域,发到公司内部信息管理域,由其处理,并返回结果。给客户的折扣信息也在这里进行计算。
通过以上的分析,各个管理域具有明确的管理职责,有些事务需要跨越多个管理域才可以完成,各个域之问的调用关系通过消息来驱动。系统有可能访问外部信息源,比如向供应商订购零部件等,这样的事务,不仅是跨越系统内各个管理域的、而且是跨越不同系统的事务。由此可见,EcPerf模拟了一个复杂的实际电子商务应用。
3.5应用架构
与供应商的交互事务,使用JavaServlet技术来实现,称为SupplierEmulator,部署到不同的机器上。SupplierEmulator模拟系统向供应商发送零部件采购单,以及收到零部件的交互事务。SupplierEmulator从供应链管理域的Buye6es会话Bean接收定单,经过一定时间的定单处理(睡眠一段时间,时间的长度是定货到发货的平均时间),然后把订购的零部件发送给RreceiverSes会话Bean,图2描述了各个软件模块的关系。
工作负载由一个多线程Java程序(EcPerfDriver)来生成。EcPerfDriver可以在多个客户端机器上运行,模仿多用户的并发访问。数据的持久化通过EJB技术的实体Bean来实现,系统持两种持久化方法,包括BMP(BeanMaIlagedPersistency)和CMP(ContainerManagedPersistency)。
图2SupplierEmulator的交互通过没置事务导入速率(TransactionIn胁tionRate),指定每秒钟负载牛成器生成的新定单数量,以及每秒种在制造管理域安排生产的工作单数量。性能以每分种执行的商业操作来进行表示Bbops/min(BenchmarkBusinessOpemtionsperMinute),分别对客户管理域和制造域每分钟完成的操作数量进行度量,然后加权汁算出来。4测试与优化测试套件以J2EE技术(EJB)来实现,部署到测试系统上。测试系统的硬件和软件配置如图3所示。
图3测试系统的软件和硬件配置对J2EE电子商务系统进行优化,有不同的设计模式可以遵循。我们把讨论的重点放在数据的持久化、对象缓存、以及数据库连接的缓冲池管理等几个关键问题上,即对数据存取进行优化。
信息发布:广州名易软件有限公司 http://www.myidp.net