Введение в Java Card. Часть 1
Намиот Д.Е.
Сиховец Л.Б.
Эта статья открывает серию материалов,
подготовленных сотрудниками Inetique,
посвященных технологии смарт-карт и, в частности, технологии
Java Card.
Об авторах: к.ф.-м.н. Дмитрий Намиот
работает с Java технологиями последние 6 лет.
Лев Сиховец является Sun Certified Programmer for the
Java Platform 2, имеет более чем пятилетний опыт работы
с Java. В настоящий момент оба автора сотрудничают с
компанией Inetique, занимающейся разработками в области
Java. Вы можете связаться с авторами и получить дополнительную
информацию через сайт http://www.inetique.ru.
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: наследование,
виртуальные функции, перезагрузка методов, динамическое
создание объектов, области видимости.
|