Java Card Virtual Machine
Основное отличие от обычной виртуальной машины Java заключается в том, что JCVM представляет собой набор из двух компонент: то, что находится на самой карте (интерпретатор) и то, что находится вне карты (конвертор). Рабочий цикл может быть проиллюстрирован следующим рисунком:
Конвертор существует вне смарт-карты. Это Java приложение, работающее на пользовательском компьютере. Конвертор переводит обычные .class файлы (стандартный байт-код) в специальный формат CAP (converted applet)
CAP файл загружается в смарт-карту и далее исполняется интерпретатором. В дополнение к преобразованному байт-коду конвертор создает так называемый экспортный файл, который описывает доступные интерфесы сконвертированного класса. Все опции языка программирования, которые не поддерживаются спецификацией Java Card удаляются при конвертировании.
Собственно CAP файл содержит двоичное представление классов в пользовательском пакете. Фактически этот файл представляет собой Java архив (.jar файл). В архиве содержится информация о классах, выполняемый байт-код, информация о связывании и т.п. Байт-код, определемый CAP построен на основе стандартного Java байт-кода и оптимизирован для исполнения в условиях ограниченных ресурсов смарт-карты. CAP файл определяет двоичную совместимость приложений на платформе Java Card.
Экспортные файлы не загружаются непосредственно в смарт-карту и, следовательно, не используются интерпретатором. Их назначение есть поддержка процесса верификации. В некотором смысле они подобны файлам заголовков в языке C.
Экспортный файл содержит интерфейсов для конвертируемого пакета.описание Он содержит имена и области видимости для классов, а также области видимости и заголовки для всех методов. Также файл содержит информацию о связывании, необходимую для разрешения ссылок между пакетами приложения.
Как и файл заголовков в языке C (или как определение интерфейса в языке Java), экспортный файл не содержит реализации. Это дает возможность свободного распространения экспортных файлов, без раскрытия деталей реализации