자바 ME 플랫폼은 구성, 프로필 및 옵션 패키지로 구성됩니다. 옵션 패키지는 구성 및 프로필과 같은 API 집합입니다. 그러나 프로필과 달리 옵션 패키지는 전체 애플리케이션 환경을 정의하지는 않습니다. 옵션 패키지는 항상 구성이나 프로필과 함께 사용되며, 프로필의 일부로 정의할 만큼 보편적이지 않거나 각기 다른 프로필에서 공유해야 하는 장치 기능을 지원하도록 런타임 환경을 확장합니다.
SMS(Short Message Service) 메시지 송수신을 위한 클래스 집합인 WMA(Wireless Messaging API)에 대해 살펴 보겠습니다. WMA는 옵션 패키지이기 때문에 MIDP를 지원하는 휴대폰뿐만이 아니라 SMS 기능을 갖춘 모든 자바 ME 장치에 포함할 수 있습니다. WMA가 MIDP 같은 특정 프로필의 일부였다면, 해당 프로필 및 그 수퍼세트로 그 용도가 제한되었을 것입니다.
옵션 패키지는 프로필 및 구성과 마찬가지로 JCP(Java Community Process)을 통해 지정됩니다. 따라서 참조 구현(RI)과 테스트 호환성 툴킷(TCK)을 자체적으로 가지고 있습니다.
어떤 옵션 패키지가 사용 가능한가는 자바 런타임 환경의 공급업체(주로 장치 제조업체)가 제어합니다. 어떤 구성이 사용되고 어떤 프로필이 사용 가능한가를 제어하는 주체도 이 공급업체입니다.. 일반적으로 옵션 패키지를 런타임 환경의 일부로 장치에 미리 로드하지 않으면 사용이 불가능합니다. 옵션 패키지 사양이 완료된 후 패키지 구현이 상용 장치에 나타나기까지는 어느 정도의 시간이 걸립니다.
애플리케이션 개발자에게 있어 옵션 패키지는 자바 컴파일러의 클래스 경로에 추가할 또 하나의 자바 클래스 집합일 뿐입니다. 이러한 클래스는 애플리케이션 패키지에 포함되지 않으며, 해당 옵션 패키지를 지원하는 장치의 런타임 환경에 포함됩니다.
옵션 패키지 유무를 확인하려면 해당 옵션 패키지 전용의 클래스가 있는지를 테스트합니다.
...
public static boolean isWMAPresent(){
try {
Class.forName(
"javax.wireless.messaging.MessageConnection" );
return true;
}
catch( Exception e ){
return false;
}
}
...
테스트할 클래스를 신중하게 선택합니다. 예를 들어, java.rmi.Remote 인터페이스가 있다고 해서 RMI 옵션 패키지(JSR 66)가 지원되는 것은 아닙니다. 왜냐하면 Personal Basis Profile에 동일한 인터페이스가 inter-Xlet 통신 지원의 일부로 포함되기 때문입니다.
애플리케이션이 작동하는 데 옵션 패키지가 필요할 경우, 애플리케이션이 해당 옵션 패키지의 존재 여부를 검사하고 패키지가 없으면 정상적으로 종료해야 합니다. 의미가 불분명한 Class not found 오류와 함께 애플리케이션이 종료된다면 사용자에게 혼란을 주게 됩니다.
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
한국 썬 마이크로시스템즈 서울시 강남구 삼성동 159-1 무역센터 아셈타워 15-16층(135-798)
Copyright 1994-2008 Sun Microsystems, Inc.
댓글을 달아 주세요