Thursday, December 29, 2005

차세대 휴대폰 Java의 실상을 Sun가 말한다

Java 본래의 좋은 점을 살릴 수 있다
2005/12/27 19:55

문간 쥰이치씨.「편입 개발에서도 객체 지향의 좋은 점을 살리면 좋겠다」라고 말한다.

  휴대 전화기의 고기능화를 배경으로, 새로운 표준 API 세트 「MSA for CLDC」의 책정, Java 실행 환경의 CLDC로부터 CDC에의 이행, 멀티태스킹 기능에의 대응 등 「차세대의 휴대 Java」가 모습을 나타내고 있다.이러한 배경의 아래, Java의 좋은 점인 객체 지향을 살릴 수 있게 되었다.썬마이크로시스템에서 짜넣어 Java 분야를 담당하는 문간 쥰이치씨(Senior Manager, Mobile&Embedded Systems)에게, 휴대 전화기를 위한 Java 기술의 현상과 향후를 (들)물었다.(청자=호시 아키라 수컷)

──휴대 전화기를 위한 Java 기술의 도로지도에 대해 가르쳐주면 좋다.CLDC(connected limited device configuration)로부터 CDC(connected device configuration)에는, 어떠한 이치로 이행 하는 것인가.

문간씨 Java ME CLDC/MIDP(mobile information device profile)에서는, 통신 사업자마다의 대응을 한 결과적으로 조금씩 다른 독자 사양이 얼마든지 가능하게 되었다고 하는 반성이 있다.거기서, JTWI(JSR 185: Java Technology for the wireless industry)로서 API 세트를 굳힌 것이 2003년.Vodafone 3 G등에서 JTWI의 채용은 진행되고 있다.

 그 전에는, JTWI의 확장으로서 MSA for CLDC(JSR 248: mobile service architecture for CLDC)가 등장한다(Tech-On! 관련 기사 1).다만, MSA for CLDC의 API 세트를 전부 탑재하는 것이 아니라, 「JTWI 플러스」와 같은 형태로 부분집합을 탑재하는 경우도 나올지도 모른다.예를 들면 Bluetooth 기능이 없는 휴대 전화기에서는, 거기에 관련하는 API를 제외하기도 할 것이다.

──고급 지향기와 로앤드기에서는, API 세트를 구사하는 것인가.

문 간씨 MSA for CLDC는, 로앤드로부터 미들 클래스의 휴대 전화기 전용이라고 자리 매김을 한다.고급 지향 기종 전용은 MSA for CDC(JSR 249: mobile service architecture for CDC)가 된다.단지, 미정의 부분이 아직 많을 단계다.

──MSA for CDC는, MSA for CLDC를 포함하는 것인가.

문간씨 그렇다.MSA for CLDC 위의 어플리케이션은, MSA for CDC에서도 움직인다.즉 기존 Java 컨텐츠가 움직이도록(듯이) 한다.MSA for CDC에서는, 거기에 더해 네이티브·라이브러리를 호출할 수 있는 JNI(Java native interface)나, 리모트로부터의 디바이스 관리라고 하는 엔터프라이즈 집합의 기능이 더해진다.

 이상이, JSR(Java specification request)에서 본 휴대 Java의 도로지도라는 것이 된다.
「* Project」는 유스 케이스 선행의 어프로치

──NTT 도코모와 Sun Microsystems사가 공동으로 진행하고 있는 「*(Star) Project」(Tech-On! 관련 기사 2,관련 기사 3)(은)는, 어떠한 자리 매김이 되는 것인가.

문 간씨 MIDP와 DoJa(NTT 도코모가 정한 「i어플리」의 사양)의 「좋은 곳 잡기」를 하려는*(Star) Project의 목적이다.우선 유스 케이스(요구분석이기 때문에 유저의 목적을 기술한 것)를 생각해 요구 추출을 해 나가는 어프로치를 취하고 있다.JSR와 같이 우선 API를 정의해 실장해 나간다고 하는 어프로치는 아니다.

 어떤 유스 케이스를 생각하고 있을까이지만, 아이디어가 경합 타사에 새지 않도록 말하는 배려로부터 현시점에서는 이야기할 수 없다.단지, 기술적인 어프로치에 대해서는 어느 정도 진행된 단계에서 이야기할 수 있게 될지도 모른다.

──핀란드 Nokia Corp.(은)는 CDC에 열심이다.휴대 전화기 플랫폼의 「Series 60」에 CDC를 탑재한다라는 발표를 하고 있다(발표 자료).

문간씨 Nokia사의 것은 독자 사양이 되는 것은 아닌가.MSA for CDC는 늦는기 때문이다.
휴대 전화기에 CDC가 실리면 무엇이 바뀔까

──휴대 전화기에 CDC가 실리면, 무엇이 바뀌는 것인가.CDC에서는 풀 세트의 Java 가상 머신이 실리게 된다.

문간씨 실은, Java 가상 머신에 대해서는 CLDC와 CDC의 차이는 그다지 없어져 있다.

 CLDC 의 Java 가상 머신이 풀 세트의 Java 가상 머신 사양과 다른 점은, 프리베리파이(아르바이트 코드의 사전 검증) 된 컨텐츠(=Java 어플리케이션)를 움직이는 점이다.풀 세트의 Java 가상 머신의 경우는, 실행시에 아르바이트 코드 검증을 실시하지만, CLDC에서는 그 부담을 경감하고 있다.

 CLDC1.1(JSR 139: connected limited device configuration 1.1, 2003년 3월에 Final Release 공개)에서는, CLDC의 Java 가상 머신에도 에러 처리나 Weak Reference(주:약참조라고도 한다.오브젝트의 캐쉬를 실현하고 싶은 경우 등에 이용한다)라고 하는 기능이 들어 오고 있다(주:이 외 부동 소수점 연산도 더해졌다).Java 가상 머신의 기능으로서는 풀 세트의 Java와 그렇게 변하지 않는 것이 되어 있다.

 CDC가 되어 바뀌는 점이라고 하면, JNI와 시큐러티.JNI에서는, Java 프로그램으로부터 네이티브·프로그램을 부르는 것이 가능하게 된다.KVM(Java ME CLDC의 Java 가상 머신)에서는 네이티브·프로그램을 「친다」(일)것은 할 수 없었다.

 시큐러티 기능도, JDK1.1으로부터 JDK1.2로 이행했을 때와 같게 바뀐다.샌드 박스·모델 뿐이었던 것이, 보다 세입도의 시큐러티 관리가 가능하게 된다.

──예를 들면, 시큐러티 기능을 이용하고, 휴대 전화 기상의 OS기능을 호출하는 프로그램을 움직일 수 있게 된다고 생각해도 좋은 것인가.

문간씨 그렇다.JNI와 시큐러티 기능을 사용하면, 디바이스·드라이버에 액세스 하고, 예를 들면 카메라등의 하드웨어를 직접 취급하는 Java 프로그램을 만들어, 다운로드해 이용하는 것도 가능하게 된다.
multitasking VM는 CLDC판과 CDC판으로 어프로치가 다르다

──향후 등장하는 multitasking VM에 대해 가르쳐주면 좋다.

문 간씨 지금의 휴대 Java는 동시에 1개의 프로그램이 움직일 뿐(만큼)이지만, 이것을 복수 동시에 움직이도록(듯이) 한다.예를 들면, Java로 만들어진 메일 기능을 시작하고, 그 뒤에서 Java에 의한 player로 음악을 듣는다, 라고 하는 이용 방법이 가능하게 된다.

 그 실현 방법이지만, CLDC판과 CDC판에서는 다른 어프로치를 취한다.CLDC판의 multitasking VM는 「Symbian OS」와 같은 멀티태스킹이 아닌 OS상에서 실행하는 경우를 상정하고, 1개의 VM인스턴스 위에서 복수의 Java 어플리케이션을 관리한다.CLDC판의 multitasking VM는, Sun사의 휴대 전화를 위한 Java 실행 환경 「Sun Java Wireless Client」의 일부인 「CLDC HotSpot Implementation」로서 제품 출하중이다.이것은 기기 메이커 등에 향한 제품으로, 휴대 전화기의 최종 제품에 집어 넣을 수 있었던 예는 아직 없다고 생각한다.

 한편, CDC판의 multitasking VM는 고급 지향 기종 전용.편입 Linux와 같은 멀티태스킹 OS를 전제로 하고 있다.새로운 Java 어플리케이션을 시작할 때마다, 새로운 프로세스를 생성해 나가는 만들기가 되어 있다.멀티태스킹 대응의 어플리케이션·매니저(JAM:Java Application Manager)도 갖춘다.이 VM는, Sun사로부터 「CDC HotSpot Implementation」로서 제품 출하하고 있다.

──multitasking VM 위의 복수의 어플리케이션간의 제휴 수단은.

문 간씨 CDC판에는 「Xlet간 통신」의 인터페이스가 있다.CDC 위의 PBP(Personal Basis Profile)가 제공하는 어플리케이션 실행 형태의 Xlet끼리가 통신하는 구조다.CLDC판에서는, 어플리케이션간 통신 기능은 제공하고 있지 않다.
Java 본래의 좋은 점은 객체 지향에 있다

──이야기는 바뀌지만, 편입 개발 분야에서는, 개발 규모가 증대하는 것에 따라 「소프트웨어 위기」가 도래한다라는 염려가 있다.Java 기술이 이 상황을 개선할 수 있을 전망은 있을까.

문 간씨 개인적인 의견이라고 하는 것으로 이야기한다.우선, Java 언어를 사용하는 것 만으로는 어려울 것이다.기본은, 재이용 가능한 오브젝트를 제대로 만드는 것이다.거기에는, 디자인·패턴(프로그램 디자인 수법의 「정석」을 재이용 가능한 형태로 정리한 것)에 근거한 실장이 중요해진다.

 현재 상태로서는, 편입 Java 분야의 프로그램을 보면, 너무 예쁜 만들어로 되어 있지 않은 경우가 많다.그 때문에 개발 작업이 다음의 국면으로 옮겼을 때에, 같은 프로그램을 만들 필요가 나온다.작업의 중복을 회피하려면 , 설계가 소중하다.거기에는 디자인·패턴을 사용해 최초부터 재이용하기 쉽게 설계해 두는 것이다.

 엔터프라이즈 분야의 엔지니어링에서는, 개발 방법론, 디자인·패턴등과 단계적으로 객체 지향의 기술을 쌓아 올려 오고 있다.한편, 편입 Java의 분야는, 현재 상태로서는 거의 객체 지향의 메리트가 활용되지 않다고 생각된다.

 1 개의 이유로서 메모리 제약이 어려운 가운데 왔던 적이 있다.예를 들면 DoJa는, 1999년에 2년 후, 3년 후의 휴대 전화기는 이렇게 될 것이다, 라고 예측해 만든 사양.지금의 휴대 전화기는 당시와는 완전히 다른 능력을 갖추고 있다.

  개발자의 분들에게 기대하고 싶은 것은, 「편입이니까」라고 타협을 하지 않으면 좋겠다고 하는 것이다.최초의 DoJa 단말인, NTT 도코모의 「503 i시리즈」의 무렵은, 클래스를 늘리면 5 문자분 메모리가 증가한다든가, 메소드 1개로 몇 바이트 증가한다든가, 그렇게 말한 생각으로 메모리를 절약하고 있었다.이것으로는 객체 지향의 좋은 점을 살릴 수 없다.

 지금은, 그러한 방식으로부터 탈각할 때다.Java의 본래의 좋은 점, 즉 객체 지향의 기능을 사용하면 좋겠다.

호시 아키라 수컷=Tech-On!

0 Comments:

Post a Comment

<< Home