分享
 
 
 

使用一个简单的webframe来解决EAI和分工合作问题

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

使用一个简单的webframe来解决EAI和分工合作问题

在前段时间的工作中,我们开发了一个面向最终客户的网站,网站的数据都是来自不同的系统的,这是一个带有EAI性质的项目,包括有:SQL Server数据库、Tuxedo Jolt服务、Tuxedo上运行的Corba服务、Socket。很自然的,会考虑使用EJB来访问这些后台系统,使用Servlet来访问EJB,使用JSP来显示结果。

在设计阶段,我们最头疼的问题是,我们只有两个初级经验的jsp/servlet人员,对j2ee的了解并不深入,同时有两个具有相当经验的j2ee开发人员。如果按照传统的方式,开发EJB,然后公布一个接口给web开发人员,再由web开发人员完成页面,效率很低又没有办法很好的维护。我们也简单考察了一些现有的技术,包括webservice、cocoon、mvc、tag技术等,发现都需要增加相当多的培训时间,所以我们决定做一个自己的webframe,这个webframe目前使用的版本,解决了以下两个重要问题:

² 把Web和EJB(完成EAI接口调用)开发人员的开发工作隔离开

² 可以更容易的与其他系统集成(EAI)

实际上,目前的webframe,实现的功能与webservice有不少相似之处。

完整的与EAI系统交互的工作流程

这个序列图简单描述了使用webframe的情况下,如何与一个EAI后台系统进行交互。

图中的xml message、Servlet和JSP View构成了简单的MVC模型。

Servlet把提交的数据转换为xml数据,webframe负责检查这些数据的合法性,同时判断应该把xml数据提交到哪一个EJB。EJB接收到xml数据后,与后台EAI系统连接,然后把结果也构造成xml数据,返回给webframe。

一般的,xml数据应当描述以下信息:

² 操作的用户,webframe做日志记录用以及判断该用户是否有操作权限用

² 该操作的编号,webframe用来判断对应的EJB JNDI Name用

² 操作的数据,webframe不处理这些数据,而由EJB来处理

² 返回的数据,webframe不处理这些数据,由JSP View来显示给User

可以看到,关键在于数据都是xml格式的,所以,在实现上,webframe和EJB中负责操作的方法,入参和出参都是String类型,也就意味着,所有负责EAI的EJB的Home Interface和Remote Interface是一致的。

webframe中最关键的事务处理类和方法:

package com.sztelecom.webframe.core;

/**

* 核心事务管理,负责前台和EJB会话管理

* @author Chen WenJing

* @version 1.0, Mar-27-2002

* @since JDK 1.3.1

*/

public class TransactionManager

{

/**

* 受理申请,根据xml描述分发到不同的EAI EJB

* 见WebUser.referApply()

* @param _sxml xml描述

* @return xml操作结果

*/

public String referApply(String _sxml)

{

}

}

EJB Home Interface:

package com.sztelecom.webframe.ejb.core;

/**

* 所有EAI EJB Home接口

*

* @author Chen WenJing

* @version 1.0, Mar-27-2002

* @since JDK 1.3.1

*/

public interface AgentHome extends EJBHome

{

Agent create() throws CreateException, EJBException, RemoteException;

}

EJB Remote Interface:

package com.sztelecom.webframe.ejb.core;

/**

* 所有EAI EJB Remote接口

*

* @author Chen WenJing

* @version 1.0, Mar-27-2002

* @since JDK 1.3.1

*/

public interface Agent extends EJBObject

{

/**

* 操作申请方法。

* @param _sxml xml描述

* @return xml操作结果。

*/

public String referApply(String _sxml) throws EJBException, RemoteException;

/**

* 查看EJB是否可用的方法。

* @return true

*/

public boolean isAvailable() throws EJBException, RemoteException;

}

EAI接口开发人员的职责

在使用webframe开发的情况下,EAI接口开发人员只需要完成EAI调用,同时给出xml请求数据和返回数据格式就可以了,更完整的情况下,可以给一个简单的调用例程。不同于传统的J2EE EJB开发,还需要让调用人员来关心Exception、AppServer地址、复杂的参数等问题。

web开发人员的职责

在使用webframe开发的情况下,web开发人员只需要知道xml数据的格式以及该操作的编号,就可以完成。Web开发人员完全不需要知道任何与EJB有关的知识,只需要掌握html、jsp和servlet就可以。

webframe中的关键类说明

核心处理类包括有:

TransactionManager完成事务管理,这个singleton的类负责与EAI EJB连接。

PlugInit接口是用来定义额外的初始化内容的,而实现这个接口的类名将在名为webframe.xml的配置文件中描述。

DBConnection类包装了数据库连接,数据库连接的地址或者是JNDI名在webframe.xml中描述。

EAI EJB的Home及Remote Interface

日志记录的类,Webframe包装了Log4j和Logkit的日志系统,它们都是Apache提供的,Logkit比Log4j提供了更多的定制空间,所以系统日志是Log4j记录的,而访问EAI EJB的应用日志,由Logkit来记录。

webframe初始化用的Servlet,所有配置信息,记录在webframe.xml文件中。

与用户有关的包括有:

WebUser类是一个实体类,记录登录的用户的各种状态和数据。

LoginRole接口是用户角色接口,而具体对应的用户角色类在webframe.xml中描述。

Validator接口是用户认证器接口,用来检查用户合法性,对应的用户认证器类在webframe.xml中描述。

LoginManager类管理用户的整个生存期。

webframe提供的功能列表

ü 完全符合j2ee规范,可以搭建在任何符合j2ee标准的web服务器中

ü 管理基本的数据库连接

ü 完善的日志系统,包括系统日志和EAI日志

ü 管理用户类型,且用户类型可以自定义

ü 负责EAI EJB访问分发,控制访问并发负载

ü 可自定义额外的初始化插件

ü 管理用户类型可用EAI EJB

ü 使用xml完成配置和EAI EJB访问数据

ü 管理用户生存期

ü 统一的用户登录入口

ü 统一的xml业务数据入口和出口

webframe展望

目前的配置文件webframe.xml还需要手工来修改,将提供console来修改配置文件。而目前修改配置文件需要重新启动服务器的情况也会得到解决。

webframe的最终目的是成为一个适应大多数情况的web-EAI系统基础平台,最大程度的减少培训成本,使不同角色的开发人员可以专心在各自的专有领域完成开发工作。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有