可否讨论一下一个资产管理系统的解决方案

系统的结构图大致如图:

我如下解决这个问题:

该系统将基于J2EE构筑一个web-based的应用,而读手持设备的逻辑将由Applet通过JNI调用底层的设备驱动模块来完成。

大家有何自己的看法吗?多谢了

前面好像你说过,手持终端和主机是JMS方式,其它都是web-based方式。
手机终端这里其实是JMS的客户端,客户端不一定使用Java编制,因此,你不一定要使用applet和JNI了,C或其它系统可以直接和JMS服务器打交道,传送的消息是XML文本式样的。

在消息系统中,一个消息生产过程(producer )开始运行,发送一个消息到目标,不必担心消息接受方是否在运行。反过来,消息接受方能够在生产处理过程(producer )写入信息后再读取这个消息。因为producer方 和consumer方都只依赖于目的地,不是彼此依赖地,因此称为松耦合。

松耦合对于你这样的系统极其重要,是架构设计主要因素。

抱歉,我没把问题说清楚,这个项目与前面一个不一样,以下是需求:
AMS APPLICATION
It will be a networked application allow for multi-user which have the following functions
a) Administrative Module
- Add /Edit User
- Setting Of User Rights (3 Cat : Administrator, Technical Support and User)
b) Report Module
- Loan Report Function
- Reporting Query By Location or Equipment Function
- Fault Report Function
c) Inventory Module
- Allow item creation with information like asset number, description, location,
brand, etc.
- Edit and delete of item information
- Stocking taking module where data will be downloaded to local AMS Station
- Loan item function
- Return item function
d) Stock-take Module
- Stocking taking module where data will be downloaded to local AMS Station
- Upon downloading of data collected during stocktaking exercise, asset location
will be verify against database information
- Allow Administrator to make editing if any mismatch of location
e) Fault / Maintenance Module
- Allow fault reporting of item
- View of reported item
- Update on status of faulty item

我准备把操作手持设备的模块做成ActiveX嵌入到Web页面,理由是,手持设备生产商可能只提供了windows API,所以不用考虑平台问题,而用ActiveX操作windows API相对比较容易。而ActiveX的功能也比较单一,就是和手持设备通信并监听其事件,读出来的数据也相对简单,简单到可以用字符串表示,然后把该字符串传递给某个jsp页面,其他的功能则全部由java实现。

Administrative Module
Report Module
Inventory Module
可以使用Web应用实现。

Stock-take Module涉及子系统之间的通讯,建议使用JMS会更好一些。

谢谢bang的回复。

JMS有利于解决一些类型的问题,但这里可以不用它。从上面这个图可以看出来,应用程序只需部署在headquater,而各workstation只需浏览器即可。

这里只是探讨一下。

因为我发现你需求中有分站和数据中心数据拷贝,如何保证数据中心的数据更新后,分站的数据能够及时更新?使用JMS非常合适,数据中心作为publisher,数据更新后,发送一个消息到topic,各个分站作为subscriber,获得消息,得到最新数据,然后更新自己的本地数据。

仅仅供参考。

hi,Bang,thanks a lot. 可能是我们对需求的不同理解造成了解决方案的不同,这个需求的确比较hign level,等我们和用户进一步沟通,得出详细SRS后,再做定夺。

我觉得不用这么麻烦吧.我们公司也在做这个项目.不过对手持的产品我们用的是直接内置在手持扫描的系统.直接用VC写程序.用它来通过GPRS连接数据库进行更新操作

虽然我也是JAVA程序员但我不认为这样会跟JAVA的系统有冲突.我会单独做一个BS的网站跟数据库交互.手持的用于业务员在外面进行数据采集.可能我不是太了解吧.我刚工作了不久.对这个项目的理解还不全面.欢迎大家多提些意见.