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
You actually brings up another topic, reporting in Java, I am wonder who have experience with following software:
Hehe.. maybe you will be interest in this product:
It's developed by my friends.
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?
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
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.
产品的核心部分命名为 “TopAS”，意思是“on Top of the Application Server” (在应用服务器之上。很多人都知道RAD（Rapid Application Development）的概念，它同样适用于J2EE开发的范畴。TOPAS 是个RAD的开发和执行环境。 根据我的开发经验，EJB，EntityBean, CMP还处于起步阶段，使用并非十分流畅，调试也相对复杂，规模开发较难形成。