SIM Toolkit Applet

Một phần của tài liệu NGHIÊN CỨU PHÁT TRIỂN CÁC DỊCH VỤ TRONG THIẾT BỊ DI ĐỘNG TRÊN NỀN CÔNG NGHỆ SIM TOOLKIT VÀ KHẢ NĂNG ỨNG DỤNG VÀO MẠNG VIỄN THÔNG VIỆT NAM (Trang 44 - 46)

Định nghĩa

SIM Toolkit Applet [8] là một Java Card Applet với cỏc cỏc tớnh năng như sau:

Nú cú thể đăng ký cỏc sự kiện với SIM Toolkit Framework, như nhận một Envelope Menu Selection , Envelope SMS-PP, v.v…

SIM Toolkit Framework sẽ xỏc định sự kiện xuất hiện và thực hiện kớch hoạt cỏc Applet nào đó đăng ký sự kiện đú.

Khi được kớch hoạt, cỏc Applet cú thể thực hiện hành động như gửi cỏc lệnh yờu cầu ME thực hiện như gửi cỏc lệnh Proactive Command.

Hoặc cỏc Applet cú thể truy nhập hệ thống file GSM bằng cỏch sử dụng API. Để cú thể cài đặt cỏc Applet trờn thẻ SIM và trao đổi dữ liệu với nú, người ta đó định nghĩa một mụi trường Java Card hỗ trợ GSM gọi là SIM Toolkit Framework. SIM Toolkit Framework này bao gồm JCRE, Toolkit Registry, Toolkit Handler, và File System. JCRE sẽ chọn một Applet tương ứng và gửi APDU để xử lý. Toolkit Registry quản lý tất cả cỏc thụng tin đăng ký của cỏc Toolkit Applet. Toolkit Handler quản lý sự tồn tại của System Handler và giao thức Toolkit.

Cấu trỳc SIM Toolkit Applet

Một ứng dụng SIM Toolkit Applet bao gồm cỏc hàm chớnh như sau: import sim.toolkit.*;

import sim.access.*;

import javacard.framework.*;

private static SIMView sim;

private final static byte HIGH_PRIORITY = (byte)0x01; // Constructor of the applet

private AppletLoad() {

// Get the GSM application reference

SIMView gsmFile = SIMSystem.getTheSIMView(); // Register to the SIM Toolkit Framework

ToolkitRegistry reg =TookitRegistry.getEntry(); }

// Method called by the JCRE at the installation of the applet public static void install(byte bArray, short bOffset, byte blength) {

AppletLoad app = new AppletLoad(); app.register();

}

// Method called by the SIM Toolkit Framework public void processToolkit(byte event)

{

// Get the handler references

EnvelopeHandler envHdlr = EnvelopeHandler.getTheHandler(); ProactiveHandler proHdlr = ProactiveHandler.getTheHandler(); switch(event)

{..} }

// Method called by the JCRE, once selected public void process(APDU apdu)

{

// Handle the Select AID apdu if(selectingApplet()) return;

switch (apdu.getBuffer()[1]) {

// Specific APDU for this applet to configure the MenuTitle from SelectItem case (byte)MY_INSTRUCTION: if(apdu.setIncomingAndReceive() > (short)0) { Util.arrayCopy(apdu.getBuffer(),(short)0x0005,menuTitle,(short)0x0000,(short)0x0006); } break; default: ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED); }

Ứng dụng SIM Toolkit bao gồm một hay nhiều Applet khỏc nhau được đúng gúi thành một file .cap. File .cap này sẽ được tải vào SIM qua đường cỏp nối cú đầu đọc gọi là SIM Card Reader hoặc qua OTA do nhà quản trị mạng di động thực hiện. (adsbygoogle = window.adsbygoogle || []).push({});

Ứng dụng SIM Toolkit xõy dựng dựa trờn nền Java Card cú hỗ trợ cỏc gúi lập trỡnh Java chuẩn. Cỏc gúi sim.toolkit, sim.access là cỏc API theo chuẩn GSM 03.19.

Gúi sim.toolkit định nghĩa cỏc lớp Handler cho phộp ứng dụng thực hiện cỏc chức năng phỏt hành lệnh, nhận trả lời từ Handset, xử lý cỏc thao tỏc thụng tin nhận được, cung cấp cỏc giao tiếp ToolkitInterface, ToolkitConstant chứa cỏc hằng số như mó lệnh TAG, giỏ trị cỏc sự kiện và cỏc dịch vụ đăng ký.

Gúi sim.access cung cấp cỏc dịch vụ truy cập hệ thống file GSM, cho phộp ứng dụng trong SIM cú thể chọn và đọc nội dung của một file GSM thụng qua lớp SIMView.

Trong cỏc thành phần của ứng dụng, phương thức install() được truy cập bởi JCRE như một thủ tục cuối cựng trong tiến trỡnh cài đặt một Applet, cỏc tham số cài đặt được cung cấp trong tham số của phương thức. Cỏc tham số được sử dụng để thiết lập cỏc thực thể ứng dụng Applet. Mỗi Applet được cài đặt vào SIM cú một AID (Application Identifier) duy nhất được tạo khi tải ứng dụng vào SIM.

Khi xõy dựng ứng dụng SIM Toolkit cần xỏc định khả năng hỗ trợ của từng loại SIM, khả năng hỗ trợ thực thi ứng dụng của điện thoại di động. Tuy cỏc thụng số như phiờn bản của cỏc gúi SIM API sẽ được cung cấp bởi cỏc nhà cung cấp SIM nhưng do cỏc gúi SIM API đó được chuẩn hoỏ thành GSM 03.19 nờn thụng thường SIM API đều hỗ trợ cỏc hàm và phương thức như nhau. Đặc tớnh hỗ trợ thực thi ứng dụng trờn Handset là tuỳ chọn đối với những nhà sản xuất Handset khỏc nhau, thụng thường với cỏc điện thoại phase 2+ đều hỗ trợ cỏc lệnh được định nghĩa trong chuẩn GSM 03.19.

Khi triển khai ứng dụng thụng thường tập trung vào cỏc vấn đề như:

Giới hạn kớch thước ứng dụng trong SIM. Điều này chỉ phụ thuộc vào khụng gian cũn lại trong bộ nhớ EEPROM, thụng thường ứng dụng SIM cú kớch thước < 10 KByte.

Số lượng cỏc mục trong thực đơn tối đa cho một ứng dụng. Do lệnh hiển thị thực đơn từ SIM lờn Handset được đúng gúi dạng TLV được chứa chỉ trong một đơn vị dữ liệu APDU cú độ dài phần dữ liệu tối đa 249 byte nờn khi hiển thị thực đơn với số lượng lớn mục thực đơn con cần chỳ ý điều này.

Một phần của tài liệu NGHIÊN CỨU PHÁT TRIỂN CÁC DỊCH VỤ TRONG THIẾT BỊ DI ĐỘNG TRÊN NỀN CÔNG NGHỆ SIM TOOLKIT VÀ KHẢ NĂNG ỨNG DỤNG VÀO MẠNG VIỄN THÔNG VIỆT NAM (Trang 44 - 46)