J2ME и (с открытым исходным кодом) подписывание апплета для мобильных устройств (особенно телефонов) - что я могу сделать? - PullRequest
3 голосов
/ 06 января 2009

Я только что открыл J2ME, и мне нравятся возможности, которые он предоставляет. В настоящее время я работаю над простым приложением, и я хотел бы выпустить его как проект с открытым исходным кодом в будущем.

В рамках моего исследования J2ME и мобильных устройств я изучал подписание апплетов. Кажется, что люди, которые хотят создавать апплеты бесплатно, оказываются между рок-н-роллом и ужасным дерьмовым местом. Подписание апплета чрезвычайно дорого и чрезвычайно запутанно - и затраты не могут быть оправданы при бесплатном кодировании.

Существует огромное количество J2ME-совместимых устройств - думаю, было бы стыдно игнорировать их и просто терпеливо ждать следующей волны (например, Android).

Мне было интересно, есть ли у других людей какие-либо идеи о способах решения этой проблемы?

ОБНОВЛЕНИЕ: я нашел эту статью в блоге, которая суммирует проблему для заинтересованных ... http://javablog.co.uk/2007/08/09/how-midlet-signing-is-killing-j2me/

Я думал о создании некоммерческой зонтичной организации для разработчиков J2ME с открытым исходным кодом, которые хотят получить сертификат VeriSign (поскольку сертификат может подписывать код неограниченное количество раз). Я хотел бы собрать 500 долларов, а затем позволить членам группы поделиться купленным сертификатом. Имел быстрый чат с представителем VeriSign, и они думали, что идея может сработать (если организация зарегистрирована как юридическое лицо).

Однако, поскольку производители телефонов теперь, похоже, переходят на поддержку только корневых сертификатов UTI (которые можно получить только через программу «Java Verified») - это может быть не так полезно Я подумал, что это может быть ... если у кого-то есть идеи, было бы здорово услышать их.

Ответы [ 3 ]

3 голосов
/ 12 января 2009

Боюсь, что вы сражаетесь в битве, которую вы не можете выиграть. Использование ограниченных API становится все сложнее, и это не случайно. Как вы прочитали в записи блога, вы упомянули, что самая большая проблема - это операторы сетей. Даже если вы купите сертификат у Verisign или Thawte (который, кстати, дешевле), ваше приложение не будет работать на фирменных телефонах сетевых операторов, поскольку они имеют свои собственные правила CA.

Сначала разработчик мог установить собственный сертификат, но даже это сейчас невозможно. Это строгое правило предписывается производителями телефонов (например, Nokia) и распространяется на все телефоны (даже не фирменные). Я считаю, что это тоже не случайно, и в основном из-за давления со стороны сетевых операторов на производителей устройств.

Наконец, хотя MIDP 3.0 анонсировался годами, из этого ничего не вышло. Кажется, даже Sun верит, что J2ME только для игр.

Все это давно обсуждается на форумах J2ME. По общему мнению, операторы сетей не хотят, чтобы все имеющиеся на рынке телефоны работали как смартфоны, и могли запускать сторонние приложения. Тогда для всех будет очень легко использовать более дешевую альтернативу, основанную на веб-технологиях, вместо обмена SMS-сообщениями. Это может звучать как теория заговора, если вы новичок в мире J2ME, но имейте в виду, что сетевые операторы продают телефоны со своими собственными прошивками, которые блокируют даже основные функции (например, передачу фотографий через Bluetooth или использование MP3 в качестве мелодий звонка), чтобы заставить владелец пользуется платными услугами!

Я не знаю, изменится ли это сейчас, когда смартфоны (iPhone, Android, Windows Mobile) набирают обороты. Имейте в виду, что ограничения применяются также и к этим платформам (в частности, к Symbian, что также очень недружелюбно для открытого исходного кода).

1 голос
/ 09 января 2009

Я разработчик приложений J2ME и полностью согласен с вашим постом. Затраты на подписание мидлета просто недоступны для инициатив с открытым исходным кодом, и если вы не разрабатываете простые игры, вы рано или поздно в конечном итоге будете использовать ограниченные API для доступа к сокетам или Location API, просто чтобы назвать два из них. Это очень расстраивает, и если вы считаете, что политики разрешений не всегда представляют собой угрозу для разных устройств, дело обстоит хуже: на некоторых мобильных телефонах вы можете сказать ОС доверять мидлету entyre и никогда не беспокоить вас, другие продолжают спрашивать у вас разрешения каждый раз, когда вы вызываете ограниченный метод. Это трагично! Я благодарен за ваше предложение и думаю, что это будет большим достижением для разработчиков JavaME.

1 голос
/ 06 января 2009
  • Вы можете создать сертификат подписи что вы подписываете себя. Ваши пользователи имеют быть готовым доверять тебе.
  • Вы можете указать своим пользователям, как создать сертификат и самоподписаться с ним. Тогда пользователи должны иметь возможность доверять себе.
  • Есть более или менее открытые СА; вы должны быть готовы доверять им и убедите своих пользователей доверять им.

В учебнике по Java есть раздел о подписанных апплетах , который проведет вас по шагам.

...