2009-01-06 35 views
3

我刚刚发现了J2ME,我喜欢它提供的可能性。我目前正在研究一个简单的应用程序,我想也许将来将它作为一个开源项目发布。移动设备(特别是手机)的J2ME和(开放源代码)小程序签名 - 我该怎么办?

作为我对J2ME和移动设备研究的一部分,我研究了applet签名。看起来,那些想要免费创建小程序的人被夹在中间,摇滚乐和一个可怕的地方。 Applet签名非常昂贵且非常复杂 - 而且免费编码的代价是不合理的。

有大量J2ME兼容设备 - 我认为不得不忽略它们是一种遗憾,只是耐心等待下一波(例如Android)。

我想知道其他人是否有任何想法来解决这个问题?

更新:我发现这个博客文章,总结对于那些有兴趣的问题... http://javablog.co.uk/2007/08/09/how-midlet-signing-is-killing-j2me/

我想到了建立一个非营利性联盟组织谁想要一个威瑞信开源J2ME开发者证书(作为证书可以无限次地签署代码)。我打算提高500美元,然后让团队成员共享购买的证书。与VeriSign代表进行了快速交谈,他们认为这个想法可行(只要组织注册为法人实体)。

然而,由于手机制造商,现在似乎已经开始支持 UTI根证书(您只能通过“Java认证”计划获得) - 这可能不是因为我认为它可能是有用如果有人有任何想法,听到他们会很高兴。

回答

3

恐怕你正在为一场无法取胜的战斗而战。使用受限制的API越来越难,这不是偶然的。正如你在博客中看到的那样,你提到的最大的问题是网络运营商。即使您从Verisign或Thawte购买证书(顺便提一下),您的应用程序也不会在网络运营商品牌手机上运行,​​因为它们有自己的CA规则。

开始时,开发人员可以安装他/她自己的证书,但即使这样也不可能。这个严格的规定是由电话制造商(例如诺基亚)强制执行的,适用于所有电话(甚至没有品牌电话)。我相信这也不是偶然的,主要是因为网络运营商对设备制造商的压力。

最后,虽然MIDP 3.0已经公布多年,但没有任何真正的结果。看来,即使Sun相信J2ME仅适用于游戏。

所有这些已经在J2ME论坛中被广泛讨论了很长时间。普遍的共识是,网络运营商不希望市场上的每部手机都能作为智能手机运行,并能够运行第三方应用程序。那么对于每个人来说,使用一个更便宜的,基于网络的替代品而不是SMS消息将是非常容易的。如果您是J2ME领域的新手,这可能听起来像是一个阴谋论,但要记住,网络运营商使用自己的固件销售手机,这些固件甚至可以锁定基本功能(例如,通过蓝牙传输照片或使用MP3作为铃声)以强制所有者使用付费服务!

我不知道现在智能手机(iPhone,Android,Windows Mobile)的发展势头会不会改变。请记住这些限制也适用于这些平台(特别是Symbian,这对开源来说也非常不友好)。

1
  • 您可以创建自签名的签名证书 。你的用户有 愿意信任你。
  • 您可以指导您的用户如何使用它创建证书并自行签名。 然后用户必须能够自己信任 。
  • 有或多或少的开放CA;你 必须愿意信任他们和 说服你的用户信任他们。

Java Tutorial has a section on signed applets这会引导您完成这些步骤。

+0

谢谢,但这将适用于移动设备?例如,我有一台诺基亚6300,它被授权只接受少数已经由诺基亚预选的权威机构颁发的证书。摩托罗拉和SE有他们自己的名单。 – codeinthehole 2009-01-06 20:22:16

+0

我不知道如何。如果你不能让它接受其他证书,那么你很可能被搞砸了。 – 2009-01-06 23:28:32

1

我是一个J2ME应用程序开发人员,我完全同意你的文章。签署MIDlet的成本对于开源计划来说是无法承受的,并且除非您开发简单的游戏,否则您很快或最终将不得不使用受限制的API来访问套接字或位置API,以便命名其中的两个。这是非常令人沮丧的,如果你认为许可策略在各种设备上并不总是相同的,那么情况会变得更糟:在某些手机上,你可以告诉操作系统信任MIDlet,永远不会打扰你,其他的继续每次你打电话给受限制的方法时要求你允许。这是悲剧! 我rellay感谢您的建议,我认为这将是JavaME开发人员的一个伟大成就。