Configuration :
Trong môi trường J2ME, một ứng dụng được viết cho một profile riêng biệt nào đó, profile này lại mở rộng từ một configuration. Vì thế, tất cả các đặc điểm của
một configuration sẽ được giữ lại trong profile có thể được sử dụng bởi ứng dụng
viết cho profile này.
Một configuration định nghĩa một nền Java cho các thiết bị có các đặc tính tương tự nhau (chẳng hạn như về bộ nhớ, tốc độ xử lý,…). Một configuration sẽ xác
định :
• Các tính năng của ngơn ngữ Java được hỗ trợ.
• Các tính năng của máy ảo Java được hỗ trợ.
• Thư viện chuẩn và các API .
Nói một cách đơn giản, một configuration định nghĩa một đặc tả mà các nhà sản xuất thiết bị và những người xây dựng profile phải tuân theo. Tất cả các thiết bị có chung đặc tính (bộ nhớ, tốc độ xử lý) phải “đồng ý” cài đặt đúng các đặc điểm
được xác định và những người xây dựng profile chỉ được sử dụng các đặc tính được định nghĩa trong configuration. Một lập trình viên viết chương trình game cho điện
thoại Samsung thì có thể sửa đổi chương trình của mình một cách tối thiểu nhất để có thể chạy trên điện thoại Nokia. Qua đây ta thấy khẩu hiệu “Write Once, Run
Anywhere” của Java đã khơng cịn đúng nữa, nhưng chúng ta cũng phải đánh giá
cao sự nỗ lực của Sun trong việc tạo ra một môi trường phần mềm chung cho vô số
chủng loại thiết bị di động có trên thị trường. Hiện nay Sun đã đưa ra 2 dạng
Configuration :
a) CLDC - Connected Limited Device Configuration :
CLDC được thiết kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bị này thông thường là máy nhắn tin, máy điện thoại di động và PDA. Các thiết bị này có giao diện đơn giản, bộ nhớ khoảng 32K đến 512 KB bộ nhớ, băng thông nhỏ, trong các thiết bị này, việc truyền thơng trên mạng khơng dựa vào giao thức TCP/IP. Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java Wireless ), dạng như cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ như là Midlet.
b) CDC - Connected Device Configuration :
CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng vẫn yếu hơn các hệ thống máy để bàn sử dụng J2SE. Các thiết bị thuộc loại này bao gồm các hộp điều khiển TV, tivi Internet, điện thoại Internet, các thiết bị giải trí, định hướng. Các thiết bị này có giao diện phong phú, bộ nhớ nhiều hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn, băng thơng lớn và sử dụng giao thức TCP/IP.
Cả 2 dạng cấu hình kể trên đều chứa máy ảo Java (Java Virtual Machine) và tập hợp các lớp (class) Java cơ bản để cung cấp một môi trường cho các ứng dụng J2ME. Tuy nhiên, chú ý rằng đối với các thiết bị cấp thấp, do hạn chế về tài nguyên như bộ nhớ và bộ xử lý nên không thể yêu cầu máy ảo hỗ trợ tất cả các tính năng như với máy ảo của J2SE, ví dụ, các thiết bị thuộc CLDC khơng có phần cứng hỗ trợ các phép tính tốn dấu phẩy động, nên máy ảo thuộc CLDC không được hỗ trợ kiểu float và double.
CLDC CDC
RAM 32K….512K ≥ 256K
ROM 128K….512K ≥ 512K
Nguồn năng lượng Có giới hạn (nguồn pin) Không giới hạn
Network Chậm Nhanh
Bảng 2-1 : Phân loại CLDC và CDC
Hình vẽ sau minh họa quan hệ giữa CLDC, CDC và Java 2 Standard Edition (J2SE). Theo đó, chúng ta thấy một phần lớn các chức năng trong CLDC và CDC có được do thừa kế từ Java 2 Standard Edition (J2SE). Mỗi lớp được thừa kế từ
J2SE phải giống hoặc gần giống với lớp tương ứng trong J2SE. Thêm vào đó,
CLDC và CDC có một số đặc tính khác được thiết kế cho các thiết bị nhúng mà
J2SE khơng có (ví dụ như các thành phần giao diện).