Модераторы: AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем этот раздел 
:(
    Опции темы
v2v
Дата 16.1.2008, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



наверное моя тема будет первой в этом разделе.
Итак мой вопрос к создателям : 
"Зачем этот раздел?"  smile

Добавлено через 3 минуты и 27 секунд
Добавлено

сам на него и отвечу
Цитата

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

Интеллектуальные карты (смарт-карты) представляют собой сегодня одни из самых маленьких вычислительных устройств. Например, вы можете встретить устройство с 24 Kb памяти. Естественно, в таких условиях возможна поддержка только некоторого подмножества языка Java.

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

В дополнение к собственно языку Java технология Java Card поддерживает среду исполнения, что влючает в себя вопросы работы с памятью карты, передачи данных, безопасности и выполнения программ. Для Java Cards эта среда соответствует стандарту ISO 7816.

Основная задача этой среды есть строгое разделение собственно смарт-карты и Java приложения. Среда служит своеобразным прокси-сервером, скрывающим от приложения детали собственной реализации. Взаимодействие с программой осуществляется через стандартизованные интерфейсы высокого уровня.

Приложения, написанные для платформы Java Card называются апплетами. Название было выбрано из схожести модели выполнения со стандартными апплетами, исполняемыми в виртуальной машине Java (JVM) веб-браузера.

Платформа Java Card включает в себя три части:

    * Виртуальную машину Java Card 2.1 Virtual Machine (JCVM). Спецификация определяет подмножество языка Java и спецификацию JVM, подходящую для смарт-карт.
    * Программные интерфейсы Java Card 2.1 Application Programming Interface (API). Спецификация описывает Java пакеты и классы для программирования смарт-карт
    * Программные интерфейсы Java Card 2.1 Application Programming Interface (API). Спецификация описывает Java пакеты и классы для программирования смарт-карт 

Подмножество языка программирования

Как уже было отмечено выше, в силу ограничений по доступной памяти, платформа Java Card поддерживает только выделенное подмножество языка программирования Java. Оставлены только самые необходимые для программирования опции. Вместе с тем, это по-прежнему объектно-ориентированный язык, и это по-прежнему Java. Например, что поддерживается:

    * короткие примитивные типы данных: boolean, byte, short
    * одномерные массивы
    * пакеты, классы, интерфейсы и исключительные ситуации
    * объектно-ориентированные свойства Java: наследование, виртуальные функции, перезагрузка методов, динамическое создание объектов, области видимости. 

Не поддерживаются:

    * длинные примитивные типы данных: long, double, float
    * символы и строки
    * многомерные массивы
    * динамическая загрузка классов
    * сборка мусора
    * многопотоковость
    * сериализация и клонирование объектов 

В этом языковом ограничении возможны вариации. Так, например, на некоторых устройствах поддерживается сборка мусора. 

http://citforum.univ.kiev.ua/hardware/articles/jcard.shtml


--------------------
PM   Вверх
Kangaroo
Дата 16.1.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 1
Всего: 104



Цитата(v2v @  16.1.2008,  22:33 Найти цитируемый пост)
"Зачем этот раздел?"

Что-то я не разу не видел вопроса по этой теме на форуме...  smile 


--------------------
Lost....
PM MAIL MSN   Вверх
v2v
Дата 17.1.2008, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



плохо искал!
один есть 
http://forum.vingrad.ru/forum/topic-17924/...card/index.html



--------------------
PM   Вверх
Samotnik
Дата 17.1.2008, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 2
Всего: 191



Цитата(v2v @  17.1.2008,  00:03 Найти цитируемый пост)
один есть 

+1 !!!       smile     да! 1  вопрос,  рещает, создавать новый  раздел  или  нет   smile  smile  smile 

PM MAIL   Вверх
Alexandr87
Дата 17.1.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



ИМХО, раздел нужен.
PM Jabber   Вверх
v2v
Дата 17.1.2008, 09:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



его надо было назвать "Java Безопасность" тогда можно было бы перенести в него всё jsse.

Это сообщение отредактировал(а) v2v - 17.1.2008, 09:37


--------------------
PM   Вверх
javastic
Дата 17.1.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: нет
Всего: 27



Всё очень просто. Появились люди которым эта тема интересна, а в рунете особо форумов нормальных нет по Джава Карду.
Так что мы будем первыми. Готовится несколько статей и материалов.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Kangaroo
Дата 17.1.2008, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 1
Всего: 104



Цитата(javastic @  17.1.2008,  09:59 Найти цитируемый пост)
Всё очень просто. Появились люди которым эта тема интересна, а в рунете особо форумов нормальных нет по Джава Карду.
Так что мы будем первыми. Готовится несколько статей и материалов.

Вот, наконец-то объяснили.
Спасибо, будем просвещаться. Ждем интересных статей  smile 


--------------------
Lost....
PM MAIL MSN   Вверх
Samotnik
Дата 17.1.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 2
Всего: 191



Kangaroo,  Ага,   хоть что - то пояснили, уже  клева!  smile 
PM MAIL   Вверх
Alexandr87
Дата 17.1.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Цитата(v2v @  17.1.2008,  12:25 Найти цитируемый пост)
его надо было назвать "Java Безопасность" тогда можно было бы перенести в него всё jsse.

+1
имхо, слишком специфичный раздел. Боюсь, что новые темы будут появляться очень редко.
PM Jabber   Вверх
AntonSaburov
Дата 18.1.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Я почитал про Java Card - вообщем думаю, что можно попробовать отдельный раздел вытянуть. Он конечно достаточно специфический, но я очень подозреваю, что на самом деле он может быть ничуть не хуже чем J2ME.

Начал готовить материал кое-какой. Хотелось бы посоветоваться с теми, кто тоже готовит материал - что они собираются делать. Я честно собрался вольно переводить кое-какой материал с официального сайта Sun Microsystems. Дальше посмотрим.

Так что будем раскручиваться. Может кто и заинтересуется и раздел начнет расти.
PM MAIL WWW ICQ   Вверх
nornad
Дата 18.1.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



Цитата(v2v @  17.1.2008,  02:33 Найти цитируемый пост)
Платформа Java Card включает в себя три части:

    * Виртуальную машину Java Card 2.1 Virtual Machine (JCVM). Спецификация определяет подмножество языка Java и спецификацию JVM, подходящую для смарт-карт.
    * Программные интерфейсы Java Card 2.1 Application Programming Interface (API). Спецификация описывает Java пакеты и классы для программирования смарт-карт
    * Программные интерфейсы Java Card 2.1 Application Programming Interface (API). Спецификация описывает Java пакеты и классы для программирования смарт-карт 

И где ж тут три части? Копипаст рулит  smile 
Цитата(v2v @  17.1.2008,  02:33 Найти цитируемый пост)
* сборка мусора

Ура! Наконец-то сишникам радость - теперь можно будет удалить созданный объект вручную и со стопроцентным успехом. Хотя бы в Java Card smile

Добавлено через 3 минуты и 15 секунд
Цитата(AntonSaburov @  18.1.2008,  15:36 Найти цитируемый пост)
Может кто и заинтересуется и раздел начен расти.

Ну, лично мне интересно. Только вот сферы реального приложения пока нет. Если кроме статей появится инфа о том, как в домашних условиях енто дело опробовать - будет антереснее. А так... так у нас пока не слышал, чтобы требовалось что-то подобное. Ну, правда, у нас и не мегаполис.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
AntonSaburov
Дата 18.1.2008, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата(nornad @  18.1.2008,  12:41 Найти цитируемый пост)
И где ж тут три части? Копипаст рулит

Ну ошибся, бывает. Но там действительно три части - забыли про Java Card Runtime Environment.

Добавлено через 2 минуты и 2 секунды
Цитата(nornad @  18.1.2008,  12:41 Найти цитируемый пост)
Только вот сферы реального приложения пока нет. Если кроме статей появится инфа о том, как в домашних условиях енто дело опробовать - будет антереснее.

Мне тоже это интересно стало. Кстати в Питере в метро используются бесконтактные смарт-карты. Сейчас уже даже в наземном транспорте кондукторы проверяют такие проездные спец-девайсом.

Так что думаю, что это уже не за горами.
PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 18.1.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата(v2v @  16.1.2008,  23:33 Найти цитируемый пост)
http://citforum.univ.kiev.ua/hardware/articles/jcard.shtml 

Ну статья вообщем не новая - аж 2002 года. Кстати спецификация 2.1 тоже уже очень не новая - аж 1999 года.

Я смотрел спеку 2.2.2 - она датирована мартом 2006.

Цитата(nornad @  18.1.2008,  12:41 Найти цитируемый пост)
Ура! Наконец-то сишникам радость

В новой спецификации 2.2.2 я такого не нашел - что нет сборщика. Искал, искал, но пока не обнаружил. Нашел только вот такое:
Aside from its persistent nature, the Java Card virtual machine is just like the Java virtual machine.

Persistance nature - это означает, что при исчезновении питания JVM на карте не уничтожается как процесс - "она запущена всегда".
Мало того, JavaCard JVM восстанавливает хип (даже не восстанавливает, а просто его использует, т.к. он тоже не уничтожается), который был во время отключения. Если конечно использоваться будет тот же апплет. Если другой - ну значит его загрузит JVM и он "поедет"
PM MAIL WWW ICQ   Вверх
nornad
Дата 18.1.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



Цитата(AntonSaburov @  18.1.2008,  15:57 Найти цитируемый пост)

Так что думаю, что это уже не за горами. 

Ну, то, что в Питере и Москве меня интересует постольку поскольку. В нашей деревне енто дело может и через двадцать лет только появиться. Хотя, в общих чертах познакомиться с технологией интересно. А ежели ещё и найти, как в домашних условиях поиграться - вообще классно будет.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
AntonSaburov
Дата 18.1.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата(nornad @  18.1.2008,  15:00 Найти цитируемый пост)
А ежели ещё и найти, как в домашних условиях поиграться - вообще классно будет.

Вот поучим, посмотрим - может и правда в домашних условиях сделаем что-нибудь.
PM MAIL WWW ICQ   Вверх
v2v
Дата 18.1.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



Цитата(AntonSaburov @  18.1.2008,  15:23 Найти цитируемый пост)

Вот поучим, посмотрим - может и правда в домашних условиях сделаем что-нибудь. 

не так то просто будет... для реализации работы с java card ведь нужно ещё спец. hardware:
как минимум считыватель (стоимостью от 10у.е.) ну и карточка (стоимостью от 3у.е.) ... так что не каждый себе может такое позволить , для того , что-бы "просто попробовать" что это такое...


--------------------
PM   Вверх
Alexandr87
Дата 18.1.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



А что, эмуляторов нет?

PM Jabber   Вверх
v2v
Дата 18.1.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



хмм. не подумал... действительно наверное есть... но ведь эффект не тот smile


--------------------
PM   Вверх
AntonSaburov
Дата 18.1.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Эмулятор есть - думаю, что на следующей неделе выдам первый материал.
PM MAIL WWW ICQ   Вверх
v2v
Дата 18.1.2008, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



действительно есть, и на сколько я понял он входит в java card developer kit 

was is das:
Цитата

The Java Card Development Kit provides a complete, standalone development environment in which applets written for the Java Card platform can be developed and tested. It includes :
    * Programming tools essential to the development and deployment of Java Card applications
    * Emulation and simulation components that comply fully with the latest Java Card Platform Specification, including the newest cryptographic features
    * Sample source and documentation designed to help Java Card developers bring secure and interoperable smart cards applications to market quickly


вообщем кто хочет поигратся качайте JCDK , читайте java доки и запускайте примерчики.

AntonSaburov, на самом деле, я думаю щас было бы более интересно разобрать тему (возможности) 6й явы. а также рассмотреть бессплатные java framework - и, по крайне мере для меня. ведь материала на эти темы в рунете тоже нету (очень мало).

Это сообщение отредактировал(а) v2v - 18.1.2008, 16:22


--------------------
PM   Вверх
nornad
Дата 18.1.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



Цитата(v2v @  18.1.2008,  18:38 Найти цитируемый пост)
как минимум считыватель (стоимостью от 10у.е.) ну и карточка (стоимостью от 3у.е.) ...

Ну, я к таким ценам готов. Чтобы поиграться - хватит, думаю, карточек 10 (если они не перепрограммируются). Итого - от 40 уёв. В принципе, сносно для баловства. Зато при случае можно будет подключиться к какому-нибудь проекту.
Цитата(v2v @  18.1.2008,  19:11 Найти цитируемый пост)
разобрать тему (возможности) 6й явы. а также рассмотреть бессплатные java framework - и, по крайне мере для меня. ведь материала на эти темы в рунете тоже нету (очень мало).

А я бы непрочь глянуть на что-нибудь начальное по Hibernate + EJB3 на русском. Получив базу можно и на инглише что-то глядеть, но базу лучше на русском. Кстати, извиняюсь за офтоп - может, такое уже есть где? Глядел сегодня литературу на форуме и особо не нашёл. Да и не особо тоже - только инглиш. smile


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
v2v
Дата 18.1.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



Цитата(nornad @  18.1.2008,  16:56 Найти цитируемый пост)
В принципе, сносно для баловства. Зато при случае можно будет подключиться к какому-нибудь проекту.

сабж не сильно сложный.. если голова есть можно и без баловства подключатся).  smile 
в своё время занимался схожей темой на сях.


--------------------
PM   Вверх
AntonSaburov
Дата 18.1.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата(v2v @  18.1.2008,  16:11 Найти цитируемый пост)
разобрать тему (возможности) 6й явы

Да вообщем-то писал уже - http://forum.vingrad.ru/articles/topic-191562.html

Цитата(nornad @  18.1.2008,  16:56 Найти цитируемый пост)
А я бы непрочь глянуть на что-нибудь начальное по Hibernate + EJB3 на русском.

По Hibernate пока нет, а некоторые наметки по EJB 3.0 (самые простые) я делал Студенческий отдел кадров - части 11, 12, 13

И давайте не будем флеймить - и так уже достаточно много. Здесь обсуждаем Java Card. Раздел новый, пробный. Может месяца через 3-4 и закроем из-за непопулярности.
PM MAIL WWW ICQ   Вверх
v2v
Дата 18.1.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 1
Всего: 56



Цитата(AntonSaburov @  18.1.2008,  18:50 Найти цитируемый пост)
Да вообщем-то писал уже - http://forum.vingrad.ru/articles/topic-191562.html

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


Цитата

• PersonalJava. PersonalJava является подмножеством стандартной платформы Java, спроектированной для поддержки среды обработки информации, ограниченной в ресурсах.
• Java Card. Платформа Java Card является подмножеством платформы PersonalJava, которая определяет минимальную конфигурацию Java, требуемую для поддержки приложений Java, работающих со смарт-картами.

что получается jc является частью j2me ?


--------------------
PM   Вверх
Alexandr87
Дата 19.1.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: нет
Всего: 39



Цитата(nornad @  18.1.2008,  18:00 Найти цитируемый пост)
В нашей деревне енто дело может и через двадцать лет только появиться.

деньги налом получаете? интернет -банкингов нет? e-cash нет? мобильников тоже нет? Кстати у вас водительские удостоверения в караганде старого образца?
PM Jabber   Вверх
AntonSaburov
Дата 21.1.2008, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 1
Всего: 118



Цитата(v2v @  18.1.2008,  22:31 Найти цитируемый пост)
что получается jc является частью j2me ? 

Нет - Java Card является подмножеством Java со своими особенностями. С J2ME можно сказать не имеет ничего общего - условно конечно. Язык все-таки JAVA.
Но основные концепции - другие совсем.
PM MAIL WWW ICQ   Вверх
firstone
Дата 22.1.2008, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 25.9.2007
Где: Кровью залитая Св ятая Земля

Репутация: 5
Всего: 7



Доброго времени суток, господа программисты!

Пожалуй это я стал инициатором. И я премного благодарен администрации форума за то, что поддержали идею. Как правильно заметил AntonSaburov, в Рунете нет ни одного нормального ресурса по этой технологии, а ведь она ой как проста! 

О себе: Программист в компании OTI (www.otiglobal.com) занимающийся преимущественно разработкой офф-кард сервисов и апплетов для Java Card (пусть слово апплет вас не вгонит в заблуждение. В JC апплет - это программа, которая записывается на smart card).

Моя конечная цель - показать насколько это просто (и дешево) создавать самому приложения на smart cards. Представляете! Вы сможете сами написать программу для входа в Линукс при помощи smart card! И у кого не будет такой карты не сможет ничего сделать! В общем, применений можно найти уйму.

Просьба: я не живу в СНГ уже 9 лет и посему мой русский хромает (в добавок я дислект  smile ), поэтому если кто-нибудь видит ошибку в моих статьях, очень прошу ее исправить.

Надеюсь наше пионерство пойдет далеко.

Удачи!

Добавлено через 3 минуты и 7 секунд
Чтобы вас не мучали сомнения, скажу, что цена смарт карты (engineer sample card) ~ $5, 
Smart card reader - уже почти стандартное устройство. А кроме этих двух компонент вам более ничего не надо!
--------------------
В программировании я конфуцианец. В жизни я либерал-демократ. В душе я буддист.Добавлено через 1 минуту и 9 секундА на самом деле я лентяй.
PM MAIL   Вверх
javastic
Дата 22.1.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: нет
Всего: 27



Ну вот и славненько! Видите как форум пошел развиваться, значит не зря письма писал. =))


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Bulat
Дата 25.1.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Цитата(AntonSaburov @  18.1.2008,  18:50 Найти цитируемый пост)
И давайте не будем флеймить - и так уже достаточно много. Здесь обсуждаем Java Card. Раздел новый, пробный. Может месяца через 3-4 и закроем из-за непопулярности. 

Стоять не трогать. Я хоть сейчас абсолютно на перле, но яву не забываю, как не забывается первая любовь smile Если будет побольше интересного чтива, а главное чтоб было понятно какую это может принести пользу, не только индивидуально тебе, а в целом.


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Samuil
Дата 29.1.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

Репутация: нет
Всего: 6



firstone, уважаю. 
Приведи пожалуйста самый простенький пример на JC, как Hello World и как его откомпилить. Эта тема заинтересовала многих, и я думаю им тоже будет интересно.
Заранее благодарен.

Это сообщение отредактировал(а) Samuil - 29.1.2008, 11:40


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
nornad
Дата 29.1.2008, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



Цитата(Alexandr87 @  19.1.2008,  11:21 Найти цитируемый пост)
деньги налом получаете? интернет -банкингов нет? e-cash нет? мобильников тоже нет? Кстати у вас водительские удостоверения в караганде старого образца? 

Удостоверения - не знаю, машины нет, прав тоже. Да и не горю желанием машину приобретать - на дорогах и без меня гонщиков валом.
Деньги у нас всё чаще карточками, но в магазин у нас с карточкой ходить неудобно - редко, где принимают.
Интернет-банкинга у нас нет. Точнее, были попытки у пары банков, но это ТАК удобно, что все их нафиг послали.
e-cash у нас только вебмани, да и те всего в нескольких точках в городе. Добавим, что продают их не весь день, а только в определённые часы и за бешенные деньги (курс бакса процентов на 20 выше, чем в обменнике, если покупать и несколько ниже, если продавать) - выходит, что и их практически нет. smile
Вот я и говорю - деревня. smile)))



--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
firstone
Дата 30.1.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 25.9.2007
Где: Кровью залитая Св ятая Земля

Репутация: 5
Всего: 7



Здравствуйте, Samuil.

Попытаюсь по максимуму объяснить как и что работает, но все же необходимо написать отдельную статью.
И так, любая программа для Java Card (тут я имею в виду физическую карту) есть класс наследуемый от абстрактного класса javacard.framework.Applet. Есть минимальный набор методов, которые должны быть реализованы для того, чтобы обеспечить загрузку апплета в память карты и его функционирование, а именно:
  • public static void install(byte[] bArray, short bOffset, byte bLength) - этот метод вызывается при создании объекта апплета в памяти карты (instantiation)
  • public void process(APDU apdu) - этот метод вызывается при каждой посылке APDU (см. статью "Смарт Карты. Общие сведения") апплету. Эти данные передаются как параметр. Далее функция process обрабатывает данные посланные ей в зависимости от требований. Эта функция может также послать необходимые данные обратно офф-карт сервису.

Для того, чтобы лучше понять следующее Вам желательно ознакомиться со статьей "Смарт карты. Общие сведения".

И так, самый простой апплет будет следующего вида:

Код

package ru.vingrad.forum.javacard.test;

import javacard.framework.APDU;
import javacard.framework.Applet;
import javacard.framework.ISO7816;
import javacard.framework.ISOException;

public class Test extends Applet {

    public static void install(byte[] bArray, short bOffset, byte bLength) {
        // GP-compliant JavaCard applet registration
        new Test().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
    }

    public void process(APDU apdu) {
        // Good practice: Return 9000 on SELECT
        if (selectingApplet()) {
            return;
        }

        byte[] buf = apdu.getBuffer();
        switch (buf[ISO7816.OFFSET_INS]) {
        case (byte) 0x00:
            break;
        default:
            // good practice: If you don't know the INStruction, say so:
            ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
        }
    }
}


И так, давайте посмотрим, что у нас есть. 
Метод install не использует опциональные параметры установки апплета, которые могут быть посланы. Единственное, что он производит - это обязательную регистрацию самого апплета в реестре смарт карты (Java Card Run-time Environment). Таким образом смарт карта будет "знать", что у нее установлен этот апплет. Каждый апплет должен иметь уникальное имя AID (Application ID) которое сохраняется в коде аплета (после компиляции) и в реестре JCRE после регистрации. Еще одна важная вещь, касающаяся установки апплетов. Вся память, которая когда-либо потребуется нашему апплету должна быть (настоятельно рекомендовано) выделена при установке. Ресурсы памяти у смарт карты ограничены и не могут быть выделены при каждом new. 

Метод process на первый взгляд немного посложнее. В первой проверке (if (selectingApplet()) ... ) проверяется, не была ли последняя команда  SELECT (определена в ISO/IEC 7816-4) запущена для выборки этого самого апплета. Дело в том, что для того, чтобы послать что-то определенному апплету, необходимо его заведомо выбрать командой SELECT. Это объясняется тем, что на одной карте могут быть установлены несколько апплетов.
Далее мы получаем все байты посланного APDU в массив buf. По хорошему после этого нам бы следовало проверить первый байт (CLA - класс команды APDU) на предмет его принадлежности к поддерживаемым CLA значениям нашего апплета, но мы этого не делаем для простоты примера. Далее мы проверяем значение второго байта APDU - INS (INStruction  code - код команды). INS определяет команду, которую нужно выполнить будь то получить какие-либо данные персонализации (имя, фамилия, номер студента, аддресс и т.д.), послать какие-либо данные или выполнить любую другую операцию (например отнять от текущего баланса стоимость телефонного разговора).
Как видно из примера единственный поддерживаемый код - 00. При получении этого кода наш апплет ничего не делает.
Особого внимания заслуживает ситуация default. Поскольку память у смарт карты ограничена несколькими десятками килобайтов, ее нельзя попросту использовать, как ОЗУ у ПК. Поэтому мы не можем просто так создать объект класса ISOException. Для того, чтобы выкинуть exception, необходимо воспользоваться предлагаемым методом: throwIt.

Ну что ж, давайте порпобуем скомпилировать и установить на карточку нашу программу.
Прежде всего несколько слов о компиляции. Нужно использовать транслятор для Java версии 4. после того, как мы получили .class файл, его необходимо сконвертировать утилитой от SUN (в пакете JC Development Kit) в .cap файл. Далее этот файл загружается на карту. Процесс загрузки описан в открытом стандарте Global Platform и Java Card Specification. Я написал свой собственный uploader. В последующих статьях я буду детально описывать формат .cap файла и каким образом он должен быть переслан на карту.

И так, после загрузки и установки апплета, выберем его по его AID:
Код

 => 00 A4 04 00 07 A0 00 00 02 47 55 55 00             .........GUU.
 (17027 usec)
 <= 90 00                                              ..
Status: No Error

Сразу объясню что и как. Здесь стрелочка => указывает на то, что данные были посланы карте, а стрелочка <= - на получение данных с карты.
И так, первая команда: 00 A4 04 00 07 A0 00 00 02 47 55 55 00. Если Вы читали мою первую статью, то должны знать, что:
CLA: 00 - класс команд ISO
INS: A4 - инструкция (команда) SELECT (см. ISO/IEC 7816-4 раздел 7.1.1)
P1: 04 - первый параметр команды SELECT (выбрать по имени аппликации, т.е. AID)
P2: 00 - второй параметр (выбрать при первом или единственном случае)
Lc: 07 - длина поля Data (в нашел случае содержит AID)
Data: A0 00 00 02 47 55 55 - поле Data хранит AID нашего апплета (я задал его изначально).
Le: 00 - количество байт в сообщении response на это APDU.

Обратите внимание, что код возврата - 9000, т.е. карта сообщает об успешном выполнении операции (команды SELECT).

Далее мы можем уже послать команду непосредственно нашему апплету.:
Код

 => 80 00 00 00 00                                     .....
 (16044 usec)
 <= 90 00                                              ..
Status: No Error

Давайте посмотрим, что это за команда. На самом деле она нигде не определена.
CLA: 80 - выбрал его просто так
INS: 00 - единственный код инструкции, который поддерживает наш апплет.
P1: 00 - я не определял никаких параметров для инструкции
P2: 00 - || --- || --- || --- || --- || --- || --- || --- || --- || --- || --- || --- || --- || ---
Обратите внимание, здесь нет опциональных полей Lc и Data.
Наш апплет работает. На наш запрос вернулся ответ 9000 - индикатор успешного выполнения операции.
Давайте попробуем вызвать ошибку. Сделать это просто - послать любой другой код инструкции, например 01:
Код

 => 80 01 00 00 00                                     .....
 (16004 usec)
 <= 6D 00                                              m.
Status: INS value not supported


Ч.т.д.

Надеюсь этот пример пролил немного света на технологию Java Card.
Если что-то непонятно, или понятно но не до конца, спросите. Я буду рад Вам помочь.

С уважением, firstone.
--------------------
В программировании я конфуцианец. В жизни я либерал-демократ. В душе я буддист.Добавлено через 1 минуту и 9 секундА на самом деле я лентяй.
PM MAIL   Вверх
firstone
Дата 30.1.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 25.9.2007
Где: Кровью залитая Св ятая Земля

Репутация: 5
Всего: 7



nornad, доброго времени суток!

Скоро у вас (в Казахстане) появятся новые водительские удостоверения. На картах будут установлены апплеты Java Card. Наша компания учавствует в этом проекте.



Это сообщение отредактировал(а) firstone - 30.1.2008, 15:45
--------------------
В программировании я конфуцианец. В жизни я либерал-демократ. В душе я буддист.Добавлено через 1 минуту и 9 секундА на самом деле я лентяй.
PM MAIL   Вверх
LSD
Дата 30.1.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: нет
Всего: 537



Цитата(firstone @  30.1.2008,  14:15 Найти цитируемый пост)
Каждый апплет должен иметь уникальное имя AID (Application ID) которое сохраняется в коде аплета (после компиляции) и в реестре JCRE после регистрации.

Я не увидел его в коде апплета. AID как-то генерируется компилятором (наподобие serialVersionUID) или просто здесь пропущен?

Цитата(firstone @  30.1.2008,  14:15 Найти цитируемый пост)
Метод install не использует опциональные параметры установки апплета, которые могут быть посланы. Единственное, что он производит - это обязательную регистрацию самого апплета в реестре смарт карты (Java Card Run-time Environment).

Можно поподробней о входных параметрах, и что за метод был вызван в коде? И надо обязательно реализовывать его как static?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
firstone
Дата 30.1.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 25.9.2007
Где: Кровью залитая Св ятая Земля

Репутация: 5
Всего: 7



Приветствую, LSD.

Цитата(LSD @  30.1.2008,  18:11 Найти цитируемый пост)
Я не увидел его в коде апплета. AID как-то генерируется компилятором (наподобие serialVersionUID) или просто здесь пропущен?

Это скорее я неправильно выразился. 
Всего есть 3 разных AID на карте, если мы загружаем апплет:
1) для package (появляется после загрузки package'а)
2) для класса апплета (появляется после загрузки package'а)
3) для объекта апплета (появляется только после установки - install)

В одном package могут быть несколько апплетов. При установке необходимо указать AID package, AID класса апплета и AID нового объекта апплета. AID package и AID класса сохраняются в скомпилированном коде .cap файла. Туда его записывает программа-конвертор (есть программы, которые и компилируют и конвертируют). Когда package и класс(ы) апплета(ов) записываются на карту, они регистрируются но с помощью специальных APDU команд. Далее при установке, указывается еще один AID - для объекта апплета.

Цитата(LSD @  30.1.2008,  18:11 Найти цитируемый пост)
Можно поподробней о входных параметрах, и что за метод был вызван в коде? И надо обязательно реализовывать его как static? 

Входные параметры могут содержать информацию о, например, количестве необходимой памяти для апплета. Если вам известно, что в процесс персонализации карты (т.е. записи в нее информации о уже конкретном человеке) будет использовано до 14кб для фотографии лица, то в методе install нужно будет выделить этот буфер.

Извините, я не понял Ваш вопрос касательно "что за метод был вызван в коде?". Если вы о register, то у него есть два перегрузчика:
Код

protected final void register(byte[] bArray,
                              short bOffset,
                              byte bLength);
protected final void register();

Первый метод получает AID для объекта апплета и регистрирует его. Второй берет AID класса апплета и регистрирует объект с тем же AID.

Касательно Вашего третьего вопроса - ответ да. Когда вызывается метод install, объект апплета еще не инстанциирован (или как там по-русски будет instantiated). В классическом случае именно install должен вызвать конструктор апплета.

Надеюсь это немного помогло Вам.

Добавлено через 6 минут и 38 секунд
Все же я забыл сказать. Все AID прописываются вручную.
--------------------
В программировании я конфуцианец. В жизни я либерал-демократ. В душе я буддист.Добавлено через 1 минуту и 9 секундА на самом деле я лентяй.
PM MAIL   Вверх
LSD
Дата 5.2.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

Репутация: нет
Всего: 537



Цитата(firstone @  30.1.2008,  19:10 Найти цитируемый пост)
1) для package (появляется после загрузки package'а)

Под package подразумевается .cap файл или package-и Java?


Цитата(firstone @  30.1.2008,  19:10 Найти цитируемый пост)
Если вы о register, то у него есть два перегрузчика:
...

Да я об этом.

Тогда мне непонятен код примера:
Код

public static void install(byte[] bArray, short bOffset, byte bLength) {
  // GP-compliant JavaCard applet registration
  new Test().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
}

мы получили AID, а вот дальше делаем с ним, что-то странное. Почему мы просто не передаем полученный AID методу register самого апплета?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
firstone
Дата 6.2.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 25.9.2007
Где: Кровью залитая Св ятая Земля

Репутация: 5
Всего: 7



Добрый вечер, LSD.

Извиняюсь за отсутствие. Работа, жена, дети...

К сожалению у меня не получается ответить полно в одном посте. Поэтому получается диалог.

Цитата(LSD @  5.2.2008,  15:09 Найти цитируемый пост)
Под package подразумевается .cap файл или package-и Java?

Package-и Java. Каждый такой package должен содержать один или более апплетов.
Тут важно еще уяснить терминологию. В серии стандартов ISO 7816 определена следующая иерархия: Executable Load File под ним могут быть несколько Executable Load File Modules. Так вот этот Executable Load File = package, а Executable Load File Module = applet. Ну а application = instance of applet. 

Цитата(LSD @  5.2.2008,  15:09 Найти цитируемый пост)

Тогда мне непонятен код примера:

ОК. Дело в том, что я упустил тут кое что. Посмотрите на прототип метода install:
Код

public static void install(byte[] bArray, short bOffset, byte bLength) {...}

Здесь первый параметр содержит в себе три составляющих, а именно:
  • bArray[0] = длина (Li) AID объекта апплета (instance),
  • bArray[1..Li] = AID объекта апплета,
  • bArray[Li+1]= длина (Lc) контрольных данных,
  • bArray[Li+2..Li+Lc+1] = контрольные данные,
  • bArray[Li+Lc+2] = длина (La) данных апплета,
  • bArray[Li+Lc+2..Li+Lc+La+1] = данные апплета 

AID объекта апплета уже обсуждалось.
Контрольные данные - это в принципе привилегии (privileges) для апплета (т.е. перечень специальных действий которые ему разрешается выполнять). Обычно 1-3 байта
Данные апплета = параметры для апплета (определяются разработчиком)

--------------------
В программировании я конфуцианец. В жизни я либерал-демократ. В душе я буддист.Добавлено через 1 минуту и 9 секундА на самом деле я лентяй.
PM MAIL   Вверх
jmdonetsk
Дата 18.4.2011, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 17.4.2011

Репутация: нет
Всего: нет



firstone,  а можно поподробнее ( или ткнуть где почитать)
Интересно :
   -  взял пример "Hello Java Card world", но там все заканчивается на самом интересном месте : "Давайте теперь запустим наше приложение на карте."   smile  на карту записываю ( использую  eclipse и jcop tool ) но как запустить апплет ?
- еще было бы интересно узнать как выполнить этот апплет с помощью клиента написанного на C++ или Delphi

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java Card | Следующая тема »


 




[ Время генерации скрипта: 0.2706 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.