10. GCF 프로그래밍(1)

 

 

 

 

GCF(Generic Connection Framework)

J2ME는 기존의 풍부한 환경에서의 프로그래밍과 다르다. 보다 다양하고 제한된 환경에서의 프로그래밍을 고려해야 한다. 이런 환경에서의 입출력과 네트워크에 대한 문제를 고려한 스펙이 GCF이다.

GCF는 network 연결을 실행하는 무선기기들이 쉽게 실행될 수 있게 한다. 그것은 CLDC와 CDC 부분으로 되어있고, javax.microedition.io package안에 존재한다.

광범위한 기기들에게 호환이 될 수 있게 네트워크 와 I/O를 추상화 하여 Interface로 제공함.

 

<J2ME 환경>

1. CPU : 수백 MHZ

2. 메모리 : 1~10M

3. 하드디스크 : 유(수십 MB) or 무

4. 네트워크 속도 : 144kbps

 

이런 네워크환경에서 기존 자바와의 큰 차이점은

java.io.net를 사용할 수 없다는 점,

메모리 제약,

TCP/IP, WAP, iMode, IrDA, Bluetooth라는 새로운 통신방법에 대한 지원,

파일 시스템이 존재하지 않는 입출력 메커니즘을 하나로 통합할 필요성이 존재하기 때문에 새로운 개념의 입출력과 네트워크를 정의한 GCF를 소개.

 

<GCF 설계 목표>

: 서로 다른 형태의 입출력 형태를 일관성있게 지원.

: 서로 다른 형태의 프로토콜을 일관성 있게 지원.

: 어플리케이션 이식성 향상.

: 표준 자바 클래스 라이브러리와 상위 호환

: 더 작은 메모리 풋프린트를 가짐

 

javax.macroedition.io 패키지에 모든 클래스 포함.

 

 

위의 그림을 보면, TCP/IP, WAP, iMode, IrDA, Bluetooth등 7개의 인터페이스를 추상화 하였다.

1. Connection Interface

: GCF에서 가장 기본이 되는 최상위 인터페이스로서 단지 열리고 닫힐 수만 있다.

2. StreamConnectionNotifier Interface

: 연결이 설정할 때까지 기다리기 위해 사용되는 연결형 Connection이다.

3. DatagramConnection Interface

: UDP/IP 통신을 위한 데이터그램 종단을 표현하기 위한 연결형 Connection를 생성한다.

4. InputConnection, OutputConnection Interface

: 데이터를 읽고 쓰기 위한 장치를 지정하는 인터페이스.

5. StreamConnection Interface

: InputConnection, OutputConnection Interface에서 파생되어 Connection 인터페이스를 실제로 구현하는 클래스를 위한 논리적인 출발점을 제공.

6. ContentConnection

: StreamConnection에서 MIME 데이터의 입력과 출력을 담당하는 3개의 메소드를 추가 파생.

7. HttpConnection

: ContentConnectiion으로부터 파생, Hand set 등의 프로파일인 MIDP 스펙에 정의. 이것은 HTTP 1.1 프로토콜을 지원하기 위한 메소드와  상수를 포함하고 있다. 이 인터페이스는 모든 MIDP 실제 장치에 구현시 구현해야한다. 따라서, HttpConnection을 사용할 경우 MIDP를 구현한 모든 장치에서 사용할수 있는 장점이 있다.

Posted by '김용환'
,