某财经大学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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值