Короткий навчальний посібник з розробки на Java Card – навчальний курс з IDE NetBeans

Зміст
Вимоги
Для роботи з цим навчальним курсом потрібні програмне забезпечення та ресурси, перелічені нижче.
| IDE NetBeans | 6.8 |
| Пакет Java Card SDK | 3.02 |
| Модуль Java Card, що підключається, для середовища NetBeans | 1.3 |
| Комплект для розробки програм на мові Java (JDK) | Версія 6 |
Налаштування середовища проекту
Примітка. Модуль Java Card, що підключається, працює в будь-якій операційній системі, але емулятор Java Card Reference Implementation доступний тільки для Windows. Тим не менш, можна налаштувати його як платформу Java на інших операційних системах, вказавши в середовищі NetBeans на RI, встановлений у розділі Windows, у системах Mac або Linux, однак у такому разі не буде можливості запуску програм.
Встановлення модулів, що підключаються в IDE NetBeans
- Завантажте та встановіть IDE NetBeans 6.8.
- Після встановлення в меню "Сервіс" виберіть "Підключені модулі".
- Під заголовком Available Plugins знаходяться два модулі, що підключаються, пов'язаних з Java Card: Java Card і Java Card Runtime Bundle.
- Java Card є модуль, що підключається, що додає підтримку проектів Java Card до IDE NetBeans.
- Java Card 3.0.2 Runtime Bundle потрібно лише за відсутності встановленої копії Java Card Reference Implementation.

Реєстраціяплатформи Java Card
Якщо Java Card 3.0.2 Runtime Bundle був завантажений за допомогою диспетчера модулів, то пакет Java Card SDK вже налаштований в якості платформи. Однак, якщо платформу було завантажено з веб-сайту java.sun.com, можна використовувати меню Tools > Java Platforms, щоб додати платформу Java Card у середу IDE так само, як додається будь-яка платформа Java.

Після налаштування платформа Java Card з'являється на вкладці "Служби" у середовищі IDE. Якщо вкладка "Служби" не відображається, виберіть "Служби" в меню "Вікна".

На одній "платформі" може бути кілька "пристроїв". Проект розгортається конкретному пристрої конкретної платформи.
Загальні відомості про типи проектів Java Card

Класичний аплет - традиційний аплет Java Card для невеликих пристроїв, як аплети Java Card 2.0 і раніше. Класична бібліотека подібна до класичних проектів аплетів, але без аплету, просто код, який потрібно помістити на пристрій, який може розділятися між аплетами.
Розширений аплет і бібліотека — те саме з розширеним API Java Card 3.0, тобто. з можливістю використання java.lang.String та іншого. Завантажувальний шлях до класів відрізняється для класичних та розширених проектів, тому, наприклад, автозавершення коду не пропонуватиме java.lang.String у класичних проектах, але буде у розширених.

Проекти веб-додатків – це найбільш цікава та захоплююча функція Java Card 3.0. Користувачі отримують проект схеми з реалізованим сервлет і доступ до повного API сервлета. З цими програмами простіше працювати, ніж з аплетами - на стороні клієнта не потрібен додатковий код для взаємодії з пристроєм, достатньо веб-браузера.Програми можна тестувати локально за допомогою Reference Implementation та веб-браузера.

Робота з проектом
У цьому навчальному курсі буде створено веб-проект.
У новому веб-проекті введіть ім'я проекту "Веб-додаток Card" та вкажіть шлях до проектів NetBeans. Натисніть кнопку "Готово". Проект відображається на вкладці "Проект".
Клацніть правою кнопкою миші вузол проекту на вкладці "Проект" і виберіть пункт "Властивості" в контекстному меню. У розділі "Виконати" вікна "Властивості проекту" можна змінити платформу та пристрій для розгортання проекту. Натисніть кнопку "Закрити", щоб зберегти зміни.
Робота з веб-програмою Java Card схожа на роботу з будь-яким веб-програмою, що розгортається в контейнері сервлетів. Натисніть кнопку "Виконати" на панелі інструментів, щоб запустити приклад "Hello World". Під час запуску програми Java Card відкривається веб-браузер з вихідним повідомленням сервлета: Hello from webapplication1.MyServlet.

При запуску проектів з типом аплетів в IDE NetBeans можна використовувати два зручні інтерфейси: виведення даних у командному рядку та консоль Java Card. Консоль використовується для взаємодії з аплетом. Можна надсилати дані у шістнадцятковому форматі та отримувати відповідні повідомлення.
Порада. RI містить додаткові зразки проектів, які готові до відкриття та запуску в IDE NetBeans.

Використання особливих можливостей модулів, що підключаються
Java Card включає два "магічні" поняття, відсутні в інших платформах Java:
Ідентифікатори додатків (AID) Ці унікальні ідентифікатори виглядають так: //aid//720A75E082/0058AEFC20. Перша частина шістнадцяткового коду - ідентифікатор постачальника (його можна отримати в InternationalStandards Organization (ISO); друга частина – унікальне значення, обране розробником. Ідентифікатори AID використовуються для ідентифікації класів аплетів, пакетів Java (тільки для класичних аплетів та бібліотек), унікальних екземплярів аплетів (можна розгортати один аплет багаторазово на одному пристрої – ідентифікатор AID екземплярів буде використовуватися для вибору аплета).Сценарії APDU Це сценарії надсилання даних аплету. Вони містять велику кількість набраного вручну шістнадцяткового коду; сценарій повинен вибрати конкретний екземпляр аплету та надіслати йому дані. Замість написання сценарію можна використовувати консоль Java Card.
Хоча ці два моменти досить складні, модулі NetBeans, що підключаються, допомагають абстрагуватися від цих складностей наступним чином:
Під час створення проекту автоматично створюються коректні значення AID аплету, AID класичного пакета та один AID екземпляра.
При переході на вкладку 'Аплети' діалогового вікна 'Властивості проекту' проект сканує його шлях до класів для всіх знайдених підкласів аплету карт Java Card:

Після їх виявлення можна вибрати в діалоговому вікні аплети, які дійсно розгортаються, та налаштувати значення AID, параметри розгортання тощо. Введені значення перевіряються середовищем IDE, тому ввести некоректні дані складно.

Якщо потрібно розгортати два екземпляри одного аплета, можна налаштувати і таку поведінку. Однак у простих випадках, коли потрібно розгортати лише один екземпляр, немає необхідності замислюватись про це.

Для тестування аплетів не потрібно писати вручну сценарії APDU – можна використовувати консоль для прямої взаємодії з аплетами.


"AID пакет" для класичних проектів (в яких може бути тільки один пакет Java) також обробляється середовищем IDE, але є можливість налаштування.

Частина всіх значень AID у проектах присвоєний організацією ISO ID постачальника (RID). Для прискорення початку роботи середовище IDE генерує випадкове значення RID, придатне для розробки та тестування. За наявності офіційного RID, можна ввести його в меню "Сервіс & Параметри", і воно буде використовуватися для всіх нових проектів. Натисніть кнопку "Створити" у вікні "Властивості проекту" для оновлення значень у існуючих проектах.

Взаємодія з пакетами SDK сторонніх постачальників
В даний час засобами підтримується тільки Java Card 3.0.2 Reference Implementation, але вони мають API для інтеграції карт постачальників. Визначення платформи та пристрою – прості файли властивостей, що імпортуються сценарієм складання.