Rus Eng
Решения
Технологии
Дискуссии
Компания
 
Rambler's Top100
©Copyright iNetique
info@inetique.ru

 

Очевидно, что большая часть информации, представленной на карте должна сохраняться после отключения питания (изъятия карты из устройства чтения). Это свойство и есть одна из основных функций смарт-карт. Для этого используется постоянная память, такая как EEPROM. При отключении питания происходит просто задержка исполнения виртуальной машины, а все данные сохраняются. Когда в следущий раз карта снова будет помещена в устройство чтения, JCRE перезапускает виртуальную машину, загружая сохраненные данные из постоянной памяти.

Необходимо отметить, что это именно перезапуск, а не возобновление работы с той точки, где было выключено питание. Вместе с тем этот перезапуск отличается от начальной инициализации тем, что созданные ранее апплеты и объекты сохраняются.  Если в процессе перезапуска будут обнаружены незавершенные транзакции, то соответствующие им модификации данных будут отменены. Таким образом JCRE всегда будет находиться в согласованном состоянии.
 

 

Сессии

Время, в течение которого карта находится в кард-реадере (CAD) называется сессией. Во время сессии JCRE поддерживает обмен информацией между смарт-картой и хост-приложением (приложением на рабоочей станции, к которой присоединен кард-реадер). Используемый протокол пересылает пакеты данных (так называемый APDU – application protocol data unit) между картой и хост приложением. Каждый пакет содержит либо команду хост приложения, либо ответ от смарт-карты.
 
После команды reset JCRE входит в цикл ожидания до поступления нового пакета от хост-приложения. Хост посылает команды, используя последовательный интерфейс или UCB.

После поступления команды JCRE либо выбирает апплет которому передается управление, либо прямо передает команду текущему апплету. Апплет отрабатывает полученную команду и возвращает управление JCRE.

 

Опции JCRE

Помимо собственно поддержки Java JCRE обеспечивает также следущее:

  • постоянные и временные объекты – по умолчанию, создаваемые объекты являются постоянными и сохраняются между сессиями. Вместе с тем, апплет может создавать и временные объекты, время жизни которых определяется сессией.
  • атомарные операции и транзакции - виртуальная машина Java Card обеспечивает атомарность операций записи для отдельных полей объекта (класса). То есть, значение всегда либо будет изменено, либо будет произведен откат к предыдущему состоянию. Несколько операций записи могут быть объединены в транзакцию. В таком случае либо все поля будут изменены, либо ни одно из них.
  • изоляция апплетов и механизмы разделения данных – JCRE обеспечивает изоляцию апплетов. Каждый апплет работает в собственном системном пространстве. Соответственно, поведение одного апплета не оказывает влияния на поведение других. Для организации разделения данных JCRE поддерживает специальный безопасный механизм.