Tuesday, December 23, 2008

JavaCard quick notes

Những ai đã biết đến Java thì chắc hẳn cũng biết Sun đã phân Java ra làm 3 nền (platform) chính: Standard (Java SE), Enterprise (Java EE) và Micro (Java ME) . Tuy nhiên hiện nay có 2 hướng phát triển của Java có thể vươn ra thành 1 platform mới, đó là JavaCard và JavaFX .

Về JavaFX thì đã có giới thiệu sơ trong bài RIA , tuy nhiên triển vọng của JavaFX không khả quan lắm, khi 2 đối thủ cạnh tranh là Silverlight và Flex/OpenLaszlo đã vượt lên hẳn.

Còn JavaCard vẫn là 1 lĩnh vực mới mẻ ở VN , tuy nhiên tiềm năng rất lớn, vì có thể xây dựng hệ thống bán lẻ, hệ thống máy tự động (kiểu ATM cho ngân hàng), cũng như chính phủ điện tử. FYI, công ty lợi nhuận lớn nhất ở Hoa Kỳ năm ngoái là, không phải Microsoft vì MS chỉ đứng khoảng hạng 10, chính là WalMart , hệ thống bán lẻ giá rẻ toàn nước Mỹ. Bây giờ một số công ty VN bắt đầu tính đến thị trường này, và nước ngoài cũng có công ty ngấp nghé nhảy vào làm, vì thế JavaCard có tiềm năng khó lường.


Xin đưa lên vài bài dịch của bạn Trịnh Quốc Hùng để các bạn hiểu hơn về JavaCard .



=== Cài đặt plugin JCOP (3.1) cho Eclipse ===

Xin đặt vài dòng giới thiệu ngắn ngủi, JCOP - JavaCard OpenPlatform - khởi nguồn do IBM nghiên cứu - với tên gốc là JavaCard - là một bộ khung lập trình để phát triển cho công nghệ các loại thẻ thông minh (smart card), cho phép lập trình trên các loại thẻ có chip xử lý nhỏ mà ta đã thấy ứng dụng của chúng trong thực tế ngày nay: sim điện thoại, thẻ ngân hàng, thẻ nhân viên thông minh...
Nhưng sau năm 2007, IBM ngừng đầu tư và chuyển giao công nghệ cho hãng NXP Semiconductors - một trong những tập đoàn hàng đầu thế giới về công nghệ thẻ bao gồm cả thẻ "không tiếp xúc" (contactless). Từ đó, công cụ này có tên mới là JCOP với các version phát triển 1.0, 2.1 , 3.1, 4.1... Ngày nay, công cụ này không còn được tìm thấy trên mạng, mà nó chỉ được chuyền tay qua các thành viên hoặc được cấp từ chính hãng NXP với điền kiện có đăng ký hợp đồng. Dưới đây mình sẽ liệt kê từng bước cài đặt JCOP 3.1 thành công:


Điều kiện :
- Eclipse IDE từ version 3.2 đến 3.3.1, dùng khác các version này không đảm bảo build CAP file thành công.
- JCOP plugin for Eclipse version 3.1.2 , tool này bạn phải tự tìm hoặc đăng ký với NXP Semiconductors.


Thực hiện:
- Sau khi giải nén và khởi động IDE Eclipse.
  1. Chọn menu Help > Software Updates > Find and Install
  2. Trong hộp thoại Install/Update, chọn Search for new features to install và chọn Next
  3. Chọn nút nhấn New Archived Site . . . và chỉ đường dẫn đến file n
  4. Chọn liên tiếp Open -> OK -> Finish
  5. IDE Eclipse sẽ đòi hỏi khởi động lại.
Sau khi khởi động thành công, trong mục New Project sẽ có thêm cấp project "JavaCard Project". Nếu thấy mục này, coi như bạn đã cài đặt thành công plugin JCOP for Eclipse.


=== Tạo một JavaCard Project ===

theo các bước sau
  1. Trong menu New -> Project...
  2. Tại hộp thoại New Project, chọn mục JavaCard Project và chọn Next.
  3. Tại hộp thoại Java Card Project, điền thông tin Project Name và chọn Next.
  4. Tại đây bạn đã có thể chọn Finish. Nhưng mình thì thích đi từng bước hơn.
  5. Nếu chọn Next, bạn sẽ có thể chọn các chuẩn configuration card xác định cho loại project của mình (Java Card 2.2.1, JavaCard 2.1.1, Global Platform, ...)
  6. Chọn Next, chọn mục "Create a JavaCard Application using ...", chọn item "Basic JavaCard applet".
  7. Điền thông tin Package và Applet ClassName. Package là gói chứa đựng các Applet. Applet là gói ứng dụng sẽ được cài lên các chip xử lý.
  8. Chọn Next, điền thông tin PackageAID và AppletAID. Đây là mã xử lý của Package và Applet trên chip. Lưu ý: PackageAID và AppletAID được đặt tên dưới dạng chữ số hexadecimal. Chiều dài cho cả Package AID và AppletAID là 5 bytes. (bạn có thể đọc thêm thông tin trong tài liệu "Smart Card Handbook" để nắm vững hơn)
  9. Chọn Finish.
  10. Tới đây là bước kiểm tra bản quyền của NXP, cử sổ activate code sẽ hiện cho bạn 3 action activate: Đăng ký 1 activate code mới, sử dụng thẻ được cung cấp bới NXP để activate hoặc nhập lại 1 activate code đã được cung cấp bới NXP. Nếu không qua được bước này thì coi như quá trình tìm hiểu JavaCard, cardlet buộc phải chấm dứt.

Xong 9 bước trên vẫn chưa xong, mục đích là phải build được file có đuôi là .cap mới có thể upload vào thẻ. Dưới đây là các bước để Run/Debug project, trong quá trình Run/Debug thành công, file .cap sẽ được build và đặt ở thư mục "../bin" của project.
  1. Trong menu Run -> Open Run/Debug Dialog..
  2. Tạo mới một "JavaCard Application" và đặt các cấu hình phù hợp cho project.
  3. Chọn Run/Debug.

Kết quả trong cửa sổ JCOP Shell:


chú ý dòng : "cm> upload -b 250 .... .cap" là đường dẫn đến file cap đã được build thành công.
"cm> install -i abababab01 -q C9#() abababab00 abababab01"
-
abababab00 là tên packageAID
-
abababab01 là tên appletAID

"cm> card-info" cho thông tin card sau khi upload applet thành công.

Đến đây xem như bạn đã có thể tạo được một card applet (.cap) . Công việc kế tiếp sẽ còn nhiều cam go, nhưng đến đây mình cần phải dừng lại để suy ngẫm, đúc kết lại những gì mình đã làm được. Làm ly cafe nào.

4 comments:

hung.trinh said...

hello, mình là Trịnh Quốc Hùng, tác giả của bài viết này. Rất hân hạnh được làm quen với bạn. Mong được chia sẻ kinh nghiệm

Unknown said...

chào anh. Em đã đọc bài viết của anh về Java Card. Em đang tìm hiểu về công nghệ này nhưng do mới tìm hiểu nên chưa hiểu sâu về lĩnh vực này lắm. Anh có thể post thêm bài nói về Java Card được không a? À anh có tài liệu gì chia sẻ cho em ít được không ạ? Em cảm ơn anh trước nha!

Phan Tấn Vũ said...
This comment has been removed by the author.
Phan Tấn Vũ said...

chào anh. Em đã đọc bài viết của anh về Java Card. Em đang tìm hiểu về công nghệ này nhưng do mới tìm hiểu nên chưa hiểu sâu về lĩnh vực này lắm. Anh có thể post thêm bài nói về Java Card được không a? À anh có tài liệu gì chia sẻ cho em được không ạ? Em cảm ơn anh trước nha!
anh có thể mail cho em: ngoclan0488@yahoo.com
thanks!!!