<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>无人喝彩Beta &#187; java</title>
	<atom:link href="http://kmlzkma.com/archives/tag/java/feed" rel="self" type="application/rss+xml" />
	<link>http://kmlzkma.com</link>
	<description>每个人都在各自的空间里狂悲狂喜，依旧无人喝彩。</description>
	<lastBuildDate>Fri, 23 Apr 2010 07:21:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>移动书店</title>
		<link>http://kmlzkma.com/archives/109</link>
		<comments>http://kmlzkma.com/archives/109#comments</comments>
		<pubDate>Fri, 21 Jul 2006 10:27:00 +0000</pubDate>
		<dc:creator>kmlzkma</dc:creator>
				<category><![CDATA[dev]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://blog.csdn.net/kmlzkma/archive/2006/07/21/954474.aspx</guid>
		<description><![CDATA[参加了MOTOROLA的新亮点挑战赛，没有入围，还是写出来吧，算对自己有个交待。 做&#60;移动书店&#62;的主要原因是为移动拍卖平台做准备，现在这个也没法做了，唉。这个系统是spring+hibernate+j2me，数据库 用的是大象PostgreSQL 8.1，开始时候用的mysql，结果到最后出现BUG，郁闷了我好几天，还好大象能用。从33月份开始做，到5月末基本结束，6月看了个世界杯，到7月 实在不爱弄了，随便测试了几下，弄点测试用例，文档都是抓图。在整个过程中有几个难点的地方，大概1个是hibernate颗粒度和j2me的一致性问 题，1个是j2me做缓存于分页时的问题。隔太久想不起来了，边写边想吧。 首先这个软件要完成的功能是网上买书，类似在线购书的功能基本 上都可以实现，用户可以通过手机而不用电脑可以查书，买书，评书，可以下订单，查询订单，基本上满足了用户需要，完成度还是比较高的。没有对安全性做过多 的处理，1方面需要加密的数据十分少，2来做https的协议怕时间上完不成，本来想做完有时间就试试，结果赶上万恶的世界杯。。。开发环境是 eclipse，虽然官方要求用NetBeans，可没用过也不爱用，eclipse+eclipseMe+MyEclipse,myeclipse不知 道用到多少功能，用着用着就不好事了，后来都是ant解决的。 首先这是开始菜单，没工夫做9宫图，用个list了事，一样方便。 这里基本上是按照SmartTicket的套路，MVC，多线程，查询表，想必这些都已经是J2ME做软件的经典套路了。进入之后是两个进程，一个用Gauge显示进度，另1个做网络通讯获取数据。这里测试用例很简单，只分了几个类： 别看少，手工输入起来够我受的，各种数据。。。 然后得到图书列表，懒得找书，就用了一个原是数据做了循环 这个列表做了缓存。只在第一次访问时候到服务器取，后来都是到RMS。 选择一本书进入： 这里只选取了典型数据，像什么“字数”的就懒得做了。每本书都做了缓存。由于屏幕有限，所以书的信息可以做成用户定制，只选取用户关心的数据。这里没有实现这个功能，有所保留。 然后是详细的信息： 显示封面有些问题，下面再说。书评，勘误，打分，基本满足需要吧。 然后是查书： 挺好用的。当然可以做的更复杂，我这里做的不好，耦合太多，因为闲麻烦，针对hibernate翻页传递了几个参数，不通用，如果后台换掉hibernate，这里就不好弄了，下次改进，如果有下次的话。 购物车： 购物车里的项显示起来比较别扭，当买了几本书的时候，名字又长，数量和价钱就会显的很乱，用ChoiceGroup也没有更多的办法。 查询订单： 自己YY的订单形状，可能这些信息够用了吧。买过的书也都有记录，可以查询，跟这个类似，就不贴图了。 书店信息： 把 焦点放在电话号码上理论上是可以拨号的，不过模拟器不支持，不知道烧到手机中能行不。用了缓存，因为想到用户如果是到银行汇款，那么打开手机查看书店帐号 的时候，如果需要上网可能没有信号，所以做成脱机的，可脱机的不知道书店什么时候会更新导致数据不一致，所以加了一个“更新”按钮，手动更新。由于 http连接没有推技术，不能自己更新，只好这么做，当然要用注册机的话比较先进，可我费劲。要说可以用注册机的地方多了去了，书店发货的时候可以发一条 通知手机开机，要不发短信也行。如果现实应用的话，很多地方还值得推敲。 书店新闻系统和系统属性： 做的很简单，要复杂的可以用走马灯在顶上做广播，属性也可以做得细点，包括上面说得用户定制书目信息。 用户注册和登陆窗口： 注 册的邮编地址什么的在提交表单的时候会自动填入，在涉及到个人信息的时候都会要求先登陆。这里如果不是自动登陆，那么手机不会保存任何用户信息，所以说是 非常安全的，除非你刚登陆手机就被人抢了。如果是自动登陆，当手机丢失的之后就处于不设防状态，个人信息，电话，住址什么的都是存在服务器端，但这时密码 还是安全的，得不到密码只能使用也不能更改，如果有个GPS什么的就好了，可以把小偷的位置传到服务器，没准还能抓到。当然要改进这个也非常容易。比如加 开机密码，到服务器端验证，那么即使别人捡到手机，也进不去。所以这个系统没有做本地加密，因为我找不到需要加密的数据。要说不安全，只有连接不安全，用 https就好多了。计算方式这里比较模糊，如果是传统的到邮局到银行汇款那么没有任何问题，如果是直接通过手机进行银行转账那么就需要很小心，这里我没 有做这些东西，因为我不清楚到底会是怎么转。如果把个人信用卡存在本地，那么会危险一些，即使加密了；存在服务器端用户自己不放心，书店也不放心，所以这 个基本不存在可能。所以我试想会不会有种手机钱包什么的，对应到手机上，然后让客户输入手机银行的密码进行转账，这样可能安全些，但具体是什么样我也不清 楚，就想象了一个“手机转账”。平时没消费的习惯，对这些不了解，可能已经有一些合理科学的方式存在吧，呵呵，当然一切都是建立在连接安全上。 j2me本身很简单，这里看图就可以知道大部分情况，里面复杂的地方就是缓存。如果只是单独做一下缓冲那么很容易，但为了保持数据的一致性使事情复杂起 来，有些时候不禁要问，这个到底用不用缓冲。开始的时候觉得可以为用户省钱，什么都 缓冲，后来考虑分页的时候，对缓冲的算法提出了更高的要求。首先很多活动使需要验证用户是否登陆，这里又分成几个步骤，首先在一个全局变量中判断是否登 陆，如果没有登陆在系统属性里找到是否自动登陆，如果是自动登陆那么需要到RMS中找到相应的位置，提取用户名和密码，那么还要判断这个用户名和密码是否 有效，如果无效则转到登陆界面，重新登陆；有效就用这个在背景里练到服务器验证。如果 没有登陆还需要注册那么就先注册再登陆，然后再回到原始菜单，这里有个栈记录窗口顺序，为了可复用性这里需要很好的设计每个窗口。这里懒得用UML图了， 因为我可能转行了，连程序都不写了。不行，有MM上线了，有时间接着写吧。]]></description>
			<content:encoded><![CDATA[<p>参加了MOTOROLA的新亮点挑战赛，没有入围，还是写出来吧，算对自己有个交待。 做&lt;移动书店&gt;的主要原因是为移动拍卖平台做准备，现在这个也没法做了，唉。这个系统是spring+hibernate+j2me，数据库 用的是大象PostgreSQL 8.1，开始时候用的mysql，结果到最后出现BUG，郁闷了我好几天，还好大象能用。从33月份开始做，到5月末基本结束，6月看了个世界杯，到7月 实在不爱弄了，随便测试了几下，弄点测试用例，文档都是抓图。在整个过程中有几个难点的地方，大概1个是hibernate颗粒度和j2me的一致性问 题，1个是j2me做缓存于分页时的问题。隔太久想不起来了，边写边想吧。</p>
<p>首先这个软件要完成的功能是网上买书，类似在线购书的功能基本 上都可以实现，用户可以通过手机而不用电脑可以查书，买书，评书，可以下订单，查询订单，基本上满足了用户需要，完成度还是比较高的。没有对安全性做过多 的处理，1方面需要加密的数据十分少，2来做https的协议怕时间上完不成，本来想做完有时间就试试，结果赶上万恶的世界杯。。。开发环境是 eclipse，虽然官方要求用NetBeans，可没用过也不爱用，eclipse+eclipseMe+MyEclipse,myeclipse不知 道用到多少功能，用着用着就不好事了，后来都是ant解决的。</p>
<p>首先这是开始菜单，没工夫做9宫图，用个list了事，一样方便。<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/1.jpg" alt="开始菜单" /><br />
这里基本上是按照SmartTicket的套路，MVC，多线程，查询表，想必这些都已经是J2ME做软件的经典套路了。进入之后是两个进程，一个用Gauge显示进度，另1个做网络通讯获取数据。这里测试用例很简单，只分了几个类：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/2.jpg" alt="" /><br />
别看少，手工输入起来够我受的，各种数据。。。<br />
然后得到图书列表，懒得找书，就用了一个原是数据做了循环<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/3.jpg" alt="" /><br />
这个列表做了缓存。只在第一次访问时候到服务器取，后来都是到RMS。<br />
选择一本书进入：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/4.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/5.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/6.jpg" alt="" /><br />
这里只选取了典型数据，像什么“字数”的就懒得做了。每本书都做了缓存。由于屏幕有限，所以书的信息可以做成用户定制，只选取用户关心的数据。这里没有实现这个功能，有所保留。</p>
<p>然后是详细的信息：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/10.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/8.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/9.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/12.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/13.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/14.jpg" alt="" /><br />
显示封面有些问题，下面再说。书评，勘误，打分，基本满足需要吧。</p>
<p>然后是查书：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/15.jpg" alt="" /><br />
挺好用的。当然可以做的更复杂，我这里做的不好，耦合太多，因为闲麻烦，针对hibernate翻页传递了几个参数，不通用，如果后台换掉hibernate，这里就不好弄了，下次改进，如果有下次的话。</p>
<p>购物车：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/16.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/17.jpg" alt="" /><br />
购物车里的项显示起来比较别扭，当买了几本书的时候，名字又长，数量和价钱就会显的很乱，用ChoiceGroup也没有更多的办法。</p>
<p>查询订单：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/18.jpg" alt="" /><br />
自己YY的订单形状，可能这些信息够用了吧。买过的书也都有记录，可以查询，跟这个类似，就不贴图了。</p>
<p>书店信息：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/19.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/20.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/21.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/22.jpg" alt="" /><br />
把 焦点放在电话号码上理论上是可以拨号的，不过模拟器不支持，不知道烧到手机中能行不。用了缓存，因为想到用户如果是到银行汇款，那么打开手机查看书店帐号 的时候，如果需要上网可能没有信号，所以做成脱机的，可脱机的不知道书店什么时候会更新导致数据不一致，所以加了一个“更新”按钮，手动更新。由于 http连接没有推技术，不能自己更新，只好这么做，当然要用注册机的话比较先进，可我费劲。要说可以用注册机的地方多了去了，书店发货的时候可以发一条 通知手机开机，要不发短信也行。如果现实应用的话，很多地方还值得推敲。</p>
<p>书店新闻系统和系统属性：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/23.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/25.jpg" alt="" /><br />
做的很简单，要复杂的可以用走马灯在顶上做广播，属性也可以做得细点，包括上面说得用户定制书目信息。</p>
<p>用户注册和登陆窗口：<br />
<img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/24.jpg" alt="" /> <img src="http://p.blog.csdn.net/images/p_blog_csdn_net/kmlzkma/26.jpg" alt="" /><br />
注 册的邮编地址什么的在提交表单的时候会自动填入，在涉及到个人信息的时候都会要求先登陆。这里如果不是自动登陆，那么手机不会保存任何用户信息，所以说是 非常安全的，除非你刚登陆手机就被人抢了。如果是自动登陆，当手机丢失的之后就处于不设防状态，个人信息，电话，住址什么的都是存在服务器端，但这时密码 还是安全的，得不到密码只能使用也不能更改，如果有个GPS什么的就好了，可以把小偷的位置传到服务器，没准还能抓到。当然要改进这个也非常容易。比如加 开机密码，到服务器端验证，那么即使别人捡到手机，也进不去。所以这个系统没有做本地加密，因为我找不到需要加密的数据。要说不安全，只有连接不安全，用 https就好多了。计算方式这里比较模糊，如果是传统的到邮局到银行汇款那么没有任何问题，如果是直接通过手机进行银行转账那么就需要很小心，这里我没 有做这些东西，因为我不清楚到底会是怎么转。如果把个人信用卡存在本地，那么会危险一些，即使加密了；存在服务器端用户自己不放心，书店也不放心，所以这 个基本不存在可能。所以我试想会不会有种手机钱包什么的，对应到手机上，然后让客户输入手机银行的密码进行转账，这样可能安全些，但具体是什么样我也不清 楚，就想象了一个“手机转账”。平时没消费的习惯，对这些不了解，可能已经有一些合理科学的方式存在吧，呵呵，当然一切都是建立在连接安全上。</p>
<p>j2me本身很简单，这里看图就可以知道大部分情况，里面复杂的地方就是缓存。如果只是单独做一下缓冲那么很容易，但为了保持数据的一致性使事情复杂起 来，有些时候不禁要问，这个到底用不用缓冲。开始的时候觉得可以为用户省钱，什么都 缓冲，后来考虑分页的时候，对缓冲的算法提出了更高的要求。首先很多活动使需要验证用户是否登陆，这里又分成几个步骤，首先在一个全局变量中判断是否登 陆，如果没有登陆在系统属性里找到是否自动登陆，如果是自动登陆那么需要到RMS中找到相应的位置，提取用户名和密码，那么还要判断这个用户名和密码是否 有效，如果无效则转到登陆界面，重新登陆；有效就用这个在背景里练到服务器验证。如果 没有登陆还需要注册那么就先注册再登陆，然后再回到原始菜单，这里有个栈记录窗口顺序，为了可复用性这里需要很好的设计每个窗口。这里懒得用UML图了， 因为我可能转行了，连程序都不写了。不行，有MM上线了，有时间接着写吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://kmlzkma.com/archives/109/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
