请各位对这样一个系统的开发提一些宝贵意见

02-11-17 tom2002
我们现在正准备做一个银行系统的项目,属于信息管理系统的性质。要实现信贷管理系统的主要工作流程,要具有统计查询和报表功能。该系统管理的贷款客户数大约有30万,因此与业务相关的数据表的数据量应该在十万到百万级。系统采用B/S架构,使用Weblogic做为应用服务器,数据库采用Informix。该银行由一家总行和100家下级机构组成,每家机构约有30个用户访问系统,系统的总用户量约为3000人,各家下级机构访问总行的方式一般为ISDN连接。请各位对这样一个系统的开发提一些宝贵意见。

是否一定要使用J2EE,普通的JSP+BEAN+CLASS的方式是否可行?

3000人的用户量,并发用户数大约是多少?

在这样一个用户量和数据量的情况下,系统有那些问题是必须考虑的?

是否有可供参考的成功案例?

Jevang
2002-12-08 02:10
This is a very interesting project, hope it's not too late to discuss the architecture design.

I was a IBM consultant with Bank of China for 2 years(93-94), build their nationwide credit card system, have some understanding and appreciation about the complexity of banking applications, so my suggestion is don’t mix business logic with your presentation logic, in that sense, don’t code too much inside your JSP or servlet.

One of the concern should be using Entity Bean or not, if you have lots of Business Objects, then represent them as Entity Beans maybe not be appropriate as it just too complicated and inflexible, I still think EJB2.0 is not mature and CMP is still not efficient. Just use java object, Message Driven Bean, SessionBean are good stuff, be careful when using anything that is stateful, memory/Garbage collection will always be a headache for large Java system development, so prepare test and tuning as early as possible.

We recently finished a J2EE, B/S based prototype in China, it's a equipment management system for Provincial government and all Subsidiary cities/counties, like regular banking system, it's a dispersed management: Each node can function independently but very often they need access information system wide, there also some hierarchical control from parent node to its sub nodes.

Technically it can be implemented as a single centralized system with only one server( or server cluster), or a completely self contained system that each node has its own server. Eventually we recommended them a mix approach: Divide the whole province into multiple regions; each region will have its own Server system. Note: our system topology is totally independent of business application logic, so it can be adjusted later.

We use Oracle/MySQL as DBMS, Weblogic/Jboss for AppServer, JSP( enhanced struts framework) for presentation, and we use JMS products to connect all systems together, in term of load, it has less than 3,000 users, but based on my past 6 years experience working with server side customer applications, even 3,000 concurrent users system is not a challenge to J2EE technology, but it does requires good design.

On top of the software mentioned above, we do use a set of tools/framework to improve efficiency instead of code from scratch, which is largely built by myself with help from friends, but I don’t want to say too much here as it sounds I am trying to sell you something.

I recently involved in a implementation for US Department of Labor, it’s B/S system, every Friday afternoon, there are about 17,000 users login into the system to process their timesheet.

Looking forward to hear from you to continue this interesting topic

Cheers

-Wanchun

banq
2002-12-08 20:55
当然使用J2EE

使用Jsp+javabean实际上就是将系统全部压宝在J2EE的WEB层,这样导致的结果就是很多机制需要你们自己完成,如事务跟踪 安全 负载平衡等,比如Jive就是这样,它自己做cache 自己采用了一个非开源的cluster产品。

另外注意,中国的系统有些特殊国情,就是报表很多,因此,前端目前还是推荐你使用PB 或Delphi来做报表输出,不要使用低级的JS或浏览器特殊脚本。

Jevang
2002-12-09 02:05
Panq,

You actually brings up another topic, reporting in Java, I am wonder who have experience with following software:

http://www.jinfonet.com/ Jreport

http://jcharts.sourceforge.net/

http://cewolf.sourceforge.net/

iceant
2002-12-09 13:18
Hehe.. maybe you will be interest in this product:

http://www.soft2web.biz/WebReport/index2.asp

It's developed by my friends.

Jevang
2002-12-09 13:34
Thanks for the link, at least I was impressed by what they claimed in front page.

Actually I am looking for reporting tool to integrated with my Transaction Engine(Topas running on top of EJB Server), if your friend is a technical person there, can you let me know how to contact him?

Thanks again

-Wanchun

wys1978
2002-12-09 18:28
banq,

还记得我原来推荐的ofbiz吗?现在新的2.0beta3加了你所说的在JSP+javabean上缺少的事务,负载等特性:

1.Service Framework里加上了transaction support,写事务支持的代码方便多了.

2.它的Cache也做到了cluster,是用JMS来实现的.

现在给我的感觉它就是一个轻量级的application server的框架,opensource的,很cool,推荐大家都看看:

http://www.ofbiz.org

wys1978
2002-12-09 18:31
Jevang,

我用过jcharts做过一些report,还不错,蛮方便的,还有一个opensource的chart tool看起来也不错:

http://sourceforge.net/projects/jfreechart 和cewolf不知道是什么关系.

iceant
2002-12-09 19:02
You can send me a mail, iceant@21cn.com, and I will told you how to contact with him.

Jevang
2002-12-10 11:20
To wys...

Cewolf is built on top of jfreechart, that's all I know about it.

banq
2002-12-12 13:21
to wys1978

那你觉得ofbiz走的这条路线(jsp+javabean)和J2EE区别就在于,没有使用EJB,这很让人困惑。EJB难道是重量级别的?

Jevang
2002-12-12 13:58
To Banq,

I think we just need to be cautious when designing system that heavily dependent on EJB( EntityBean, CMP ). Check SUN's latest j2ee blueprint sample Adventure XX( petsore replacement for j2ee1.4), they did not use EntityBean, which make sense for that type of application.

Since we have someone here interested in OFBiz, I would like repost a message that I had put on easyworkflow.org. thank for your time in advance.

**************************************************

Re: ofbiz-2.0-beta2-complete.zip 开发源码的工作流 Posted: Dec 10, 2002 2:07 PM

Reply

Hello all,

I am glad to see so many people show interests to OFBiz, though I am fairly new to it, I think it’s an excellent environment with comprehensive ground coverage for enterprise application development.

But I am here to talk about using OFBiz, I am looking for ideas or other forms of help beyond for my own project. Very appreciated for taking your valuable time to read through this lengthy message. To save some typing, I have attached one of my early posts at the end, to help you figure out what I am doing.

I am building a set of software call TopAS, it shares the same goal as OFBiz for developers, except it’s not mean to be an open source project. Shame on me! But I plan to make a living with it, so would be to the people work with me.

As long as you have basic concept of OFBiz, you can get a general idea about TopAS once you through feature comparison below.

Entity Engine: this is the core of OFBiz, the equivalent part in TopAS is TopAS Transaction Engine. There are many similarities between these two at concept level and from usage perspective. TopAS uses template( Velocity) driven code generator for Entity object, which is more like the original approach taken by OFBiz. While ViewObject in TopAS which is corresponding to ViewEntity in OFBiz, is fully dynamic code, like currently does in OFBiz.

Rule Engine: In TopAS it’s included inside Transaction Engine, right now it’s more constraint, raw data oriented rules( default value setting, constraint check, RI enforcement etc. ), business specific rules can be embedded into business object through event code and if you want global change, through template customization. This is one reason I keep Topas object as generated instead completely dynamic. Separate Rule Engine is nice especially when using it to host dynamic rules; this is pending task for Topas project.

Data Analysis: No off shell component in TopAS, I am looking for integration with a java server side-reporting tool.

Service Engine: Sort of existed in TopAS, A sophisticated Scheduler has been integrated into TopAS; Supporting two direction XML transformation (not SOAP ready yet ), high level integration with JMS is underway, for messaging, there are many classic processing patterns, my plan is providing them to developers as out of box services.

Workflow: This is the major piece missing from TopAS, and it’s the main reason I am here.

Most components provided by TopAS today is used to serve transaction logic, to effectively construct enterprise application, we have to manage high level process logic. Very often people just writing code to archive that, but I believe in following circumstances people do need specialized workflow software:

1> Process is complicated, may take a series of steps with many iterations or pause before finish and

2> Need coordination of different participants and

3> Need provide flexibility and tolerance to process change and

4> volume to be processed can't be too high

Multiple Transactions logic are chained by high-level process logic, so what I need is a Workflow engine that is seamlessly integrated with Transaction Engine.

Why don’t give up some of my stuff and work on improving OFBiz ?

I know OFBiz is open source and I do try to avoid reinvent the wheel, but the problem is there is big overlap between Entity Engine and Transaction Engine, With 7 years in building server technology and real projects, I know Topas can perform, it’s proven, but I don’t have the same level of confidence with OFBiz.

How about just integrated with Workflow engine

I am looking at it now, but my experience with workflow is very limited, only at usage level. In other word, I may able to taste if a sausage is good or not, but never trained to make sausage. Directly bundle with OFBiz WF engine has another obstacle that I had before with other product: redundant features exposed to end user, think about this:

OFBiz WF engine uses its entity Engine for persistence, Topas Transaction Engine has its own persistence for business object, the Scheduler has it own persistence layer to store tasks, when I plug-in a JDBC based log4j Appender for auditing, it has its own configuration for persistence. So you get my point, some kind of consolidation work need to be done.

浆糊,踏冰, Quake and many others here, I don’t know what on your agenda, but I know everyone is busy these days, I am hoping to get some good ideas, validations from you. Anything beyond that will be more than welcomed.

Attachment:

致所有对研究和应用J2EE开发环境的爱好者:

( 此文不是一篇简历,也不是做市场推销 )

自我介绍:

本人于1988年开始开发软件,(年仅十岁,玩笑) 在美国硅谷7年,从事多代Java产品的设计及实施:从客户端/服务器集成工具,而后是CORBA宿主应用服务器开发,以及近几年EJB服务器(IBM WebSphere 和BEA WebLogic)上事件交易逻辑引擎的设计。除核心产品开发外,我还成功帮助客户解决一系列难题,主要集中在设计,定制,系统优化等应用方面。

来这儿的目的:

认识一些新朋友,也许现在或将来我们在某些方面能够合作。

现在新的想法层出不穷,但许多技术实际被过分的工程化,而总体讲实际应用还很落后。此类问题在中国的软件应用领域尤为突出。

我想和一些愿意为J2EE平台开发部署付出激情和努力的朋友一起工作,通过自己的奋斗,使J2EE成为中国IT界主流的开发平台技术。对于我们这些J2EE的倡导者来说,无疑将得到一个更能发挥优势的环境。

我能出什么力:

说说容易,那出东西来。 我并不是让每一个人抱着长长的J2EE所有的技术细节清单,然后白天黑夜的学。只有少数天才可以掌握起全部,而象我这样智商刚过三位数的一般人根本想都别想。但从一个社会和工业的长远发展,有些工作是基础且重要的,而你或我可能为推动这些工作发展尽一份力。

1. 一个由一群有知识背景的,有献身精神Java爱好者支持的一个既专业又活跃,且相对紧密的Java社区。我浏览并跟踪一些国内的Java专业网站,如:http://www.itpub.net, http://www.javaresearch.org, http://www.chinajavaworld.com, http://www.smth.net 和http://www.huihoo.com 等,我想网站管理应花更大力把问提分类整理,便于寻找答案,提高效率。我看到初学者很多,对他们来说最有效的提高方式是在各地有常规的交流活动。

2. 确立一系列可应用的高效的软件产品套件,其功能可以含盖现今绝大部分企业级IT应用需求。

今天我们几乎可以在任何一个应用细节上找到一个或多个好的产品,但把它们集成在一起,却不那么简单。当考虑到中国的实际情况,支付能力成为一个重要因素。没有一个好的价格,产品是不能得以推广应用的。

受益开放源代码项目及技术的发展,今天可以免费获得或以相对的低的价格得到很多好的软件。现在的问题是许多软件都不是非常稳定,对集成则是更大的挑战。

我们选择好的产品是基于简单和高效。如果找到一个免费或能负担的软件产品,直接那来用就好了,可能需要修改其中的瑕疵,但不需要从新设计该产品。当然,如没有这样的软件,只能自己开发。我其实和你们多数人一样,喜欢自己创造些东西。

近两年来,在一些朋友的帮助下,我设计并搭建起一个J2EE的软件套件,并绑定了开放源代码一些产品成为一个易于开发部署的构架。

产品的核心部分命名为 “TopAS”,意思是“on Top of the Application Server” (在应用服务器之上。很多人都知道RAD(Rapid Application Development)的概念,它同样适用于J2EE开发的范畴。TOPAS 是个RAD的开发和执行环境。 根据我的开发经验,EJB,EntityBean, CMP还处于起步阶段,使用并非十分流畅,调试也相对复杂,规模开发较难形成。

Topas的功能象一个EJB容器,它使开发者很轻松的控制事件处理,保持状态,建立连接及调试。实际上,缺省的商业对象已经通过数据库图表和UML模型自动生成,Topas内含一个基于Netbean的设计工具,用于建模,运行机制设定,集成调试等。

如前面提到的, TOPAS集成进很多开放源代码软件,如:使用Ant编译,使用Jdom 来结实XML文档格式,用log4j来辅助审核监控,Struts用于Web,JUnit用于测试,而JMX则动态管理Topas的资源,如:内存缓冲,连接池,用户会话信息等。

我为迄今为止所做的感到满意,但只靠几个人要完成下面要实施的复杂繁重的项目是很困难的。我需要更多的软件天才加入到此富有挑战性项目中:

a. 工作流程引擎:未开始。我相信在中国未来几年内,这一领域将要起步。工作流程是个很成熟课题,我简要研究过几种基于开放源代码的工作流程引擎产品,都满全面,要做的是深入研究它们,找到将其与面向事物处理的服务功能绑定在Topas及应用服务器上。

b. 报表功能:未开始。与集成工作流程引擎相比,报表功能有易理解。基于开放源代码已有几种产品可进行评测。

c. WebService功能:虽然目前还是个假把式,但它却有意。Topas服务器内嵌XML适配引擎,这样XML格式信息便可与外部联络,要做的只是将其用软件工业标准模式如:“SOAP”, “UDDI”, “JAXB”等进行转化,这样异种系统就可以在企业范围内交换信息。

d. 可更新全局高速缓存:如Tangosol Inc,的产品“Coherense”可以在集群环境下满足大容量事件处理的需求。

e. JMS的性能调试:BEA Weblogic和JBossMQ已经完成了其中一部分任务。我更想挖掘其它开放源代码产品的技术特性,如OpenJMS, JORAM等,特别是它们在集群环境下的性能。

f. 支持Topas在IBM WebSphere5.0上运行,从技术的实现看,这是小菜一碟。

g. 企业级的进程安排管理。正努力完成完善。

如果你认为可以加入上面的一项或几项工作,或对上面的罗列的项目有什么建议,如添加一些新内容,我们都可以聊一聊。

老实讲,我也不知这种合作方式能否成功,但如果大家能本着创义进取的精神,加上一定程度奉献,共享的合作态度,我们会找到正确的方向的。此项目最终并非开放源代码,当涉及到代码的所有权,我们最终会达到互利互惠的效果。因为没有你们的加入,这些目标是不可能完成的。

在下两个星期内,我将在网站上发布Topas产品的详细资料,包括一个用Topas-Struts快速设计应用技术重新编写的PetStore演示程序,一个使用JMS技术的多点付费演示包及Topas应用服务器操作大量事件处理的演示。这些应用程序都在应用服务器如:BEA WebLogic及Jboss上,操作系统如:Windows, Linux, 数据库如:Oracle, MySQL上测试成功。

希望更多的高手能够加入到此项目的开发中,从而提升Topas 的功能。相信通过收集一些好的想法,我们会不断完善它的功能。使其性能更实用,开发者的效率也会得到提高。TOPAS的现状和将来是开放的,而不是限制于某家的封闭技术。

3. 希望多数J2EE爱好者能把精力放在使用,而且尽最大程度引导其他人使用J2EE的软件产品,产品是否中国原创这并不重要。我并不反对在中国的品牌下开发核心的产品,但我们应该考虑今天中国的市场到底需要什么,市场的需求―这才是推进新技术向前发展的唯一支持因素和唯一衡量J2EE成功与否的标准。现在市场的需求还不够大。

喜爱系统优化,对Java开发,网络,数据库,应用服务器支持感兴趣的朋友,我们可以发现许多共同点,多交流。

现在,我们已经有一个项目正在进行,另一个项目即将开始。如果能逐渐做大,欢迎更多的有天分的人才加入到我们的开发队伍中来。

联系我:

wanchun@jevang.com

banq
2002-12-12 16:31
非常棒,我办jdon的目的也是能建立一个高质量的java社区,然后大家能搞点东西。

你的想法很不错,根据我的经验,不同开源代码的几个系统整合是非常棘手的,有时比重新编制的挑战还要大。

wys1978
2002-12-12 17:39
> to wys1978

> 那你觉得ofbiz走的这条路线(jsp+javabean)和J2EE区别就在于 ,没有使用EJB,这很让人困惑。EJB难道是重量级别的?

jsp,javabean也是j2ee的一部分,区别从何谈起? EJB只不过是J2EE中很小的一部分,OFBiz它用到了J2EE里除了EJB以外大部分的技术(JTA,JMS,JNDI...).

我说的EJB是重量级是因为它笨重: 对程序员来说编程不方便, 对于系统来说消耗资源多, session bean或许还可以用在实际项目中, 但是Entity Bean更本不能用在现实的复杂数据环境中, 我从来没有看过一个"好"的系统是架在EJB上的(我接触的东西比较少,如果有请提供参考), 倒是看过很多软件公司卖"J2EE"的名号,说用了EJB, 我总是要反问:难道J2EE就只有EJB了吗?

和原来的主题离题了,我们另开主题讨论吧.

iceant
2002-12-12 19:05
Banq 说得不错,以前试着做 Tocmat 和 OpenEJB 的整合,虽然大家的设计思想都有嵌入式的服务系统这一点,但是整合的时候还是遇到了许许多多的困难,特别是 Classloader 的结构,带来了很多的问题

猜你喜欢