`

某财经大学java老师布置的作业,你会吗?

阅读更多
这是某财经大学java老师布置的作业,你会吗?
Java 程序设计—Assignment 1
Dead line : (06/05/2008) 上课之前
分数将在考试前公布

提交方式:光盘或者软盘,所有的代码要打印出来(A4)一起交上来,第一页写清楚班级、姓名、学号。

相关规定:
1迟于规定时间交作业0分。(如果你按时交上来哪怕没有任何东西,会按照相关规定打分,至少应强于0分。)
2如果你的确有非人力不可抗拒原因没有按时交作业,请提前跟我提前打招呼,酌情处理最后的分数。
3 Plagiarism(抄袭) 是严格禁止的。如果发现取消期末考试资格。

非常抱歉以上的规定,但这是你们应该知道并且应该遵守的。那么,我这次作业想让你们做什么呢?

通过Java Socket level 完成一个应用层协议XA protocol, XA protocol 本身是一个事务处理的典型实例,但由于我们没有讲JavaEE 没有讲Java如何实现Transcation所以评分标准里面不含有事务那一部分,只是实现协议的基本内容就可以了。


参与者1: 大胖银行,有两个账户,Scofield 和 Burrows ,每人有若干 美元 而且他们各自有在小瘦银行的账户
参与者2:  小瘦银行,有两个账户,Bagwell 和 Sucre ,每人有若干美元,并且各自有在大胖银行的账户
注: 银行有保存账户状态的能力,能够保存命令,并且能把他们存到硬盘或者数据库作为持久化的手段
参与者3: 事务协调者
参与者4:事务的发起者他有两个主要功能:1 int doABalance(bank,account)//返回账户余额
2 boolean doATransfer(bankFrom,accountFrom,bankTo,accountTo)//返回成功或者失败



自己按照我的UML(Sequence Diagram)编写代码,你可以在处理不同参与者的action的时候不采用完全的XA protocol但如果有跨行的行为必须采用完全的XA protocol协议。所以以此看来 instigator 即是bank的客户端也是事务协调者(co-ord)的客户端。而银行是Instigator的服务器端但是coordinator的客户端。而coordinator是银行和Instigator的服务器端

*1有能力的同学可以采用transcation的方式来处理dobalance和 doTransfer两个动作,因为XA protocol本身就是transcation的典型应用

*2如果有的同学能力更强可以考虑一下情况的处理:
1 转帐时一方没有足够的资金
2 一个银行在交易之前down掉了(用timeout这种情况)
3 一个银行在coordinator发出commit指令之后失败了,需要恢复数据
(老师说若实在不会可将自己的思想说明一下)


提交格式:
1 4个角色的代码
2 总结出协议是怎样应用的
3 显示出正确的结果来显示整套系统运转正常
4 有能力的同学完成*1 *2并给出方案或者代码中具体实现出来
5 写出Instruction告诉我如何使用你的系统,一定要写清楚

例如:zip 你的文件包括(编译好的.class文件jar包也可以)当然要包括Java文件,我解压缩到D盘根目录,读你的instruction,并且运行在D盘根目录。
你可以留下一些调试代码(有意义的)来说明你的意图。
你还可以创建一些.bat文件让我直接运行。而不用按照你的特殊的输入格式。
最后一点你的代码每一个方法最好有注释采用/**java doc*/的方式,或者直接生成javadoc 文档.
关于IDE你可以自主选择当然最好是业界常用的Eclipse(免费),当然InteliJ IDEA,Jbuilder,Together甚至Netbeans(免费)也是不错的选择但注意支持正版。


评分标准:
清楚的Instruction -                 10%
清楚的协议实现             20%
代码的完成质量-                 40% (包括清楚地注释和良好的面向对象编程方式)
转账功能正常完成 -         20%
余额功能正常完成-         10%
*附加分:Transcation,Failure design或实现 20%


Good Luck
马森
4/11/2007
1
3
分享到:
评论
1 楼 justjavac 2008-04-27  
期待中.........

期待高手出现...........

相关推荐

Global site tag (gtag.js) - Google Analytics