서비스 지향 아키텍처 및 자바 ME

Java ME 2007/04/10 18:04 Posted by Sun
저자 Eric Giguere
: Eric Giguere는 자바 ME에 대해 광범위한 저서를 기록한 저자이자 소프트웨어 개발자입니다




오늘날 많은 모바일 애플리케이션은 하나 이상의 서버측 애플리케이션을 사용해야 한다. 이러한 애플리케이션은 하나 이상의 외부 애플리케이션 도움 없이는 기능할 수 없거나 부분적으로만 기능할 수 있다. 이러한 모바일 애플리케이션은 효과적으로 분산 애플리케이션이 된다.

자 바 ME 개발자는 항상 HTTP를 통해 연결된 사용자 정의 프로토콜을 사용하여 분산 애플리케이션을 빌드한다. 종단간 자바가 가능한 경우(통신 경로의 끝점 모두가 자바 애플리케이션인 경우), 일반적으로 해당 애플리케이션은 일련화된 사용자 정의 자바 개체 형태로 데이터를 교환한다. 자세한 내용은 CLDC 기반 프로필에서 개체 직렬화를 참조한다.

분 산 컴퓨팅 아키텍처에 대한 일반적인 문제는 분산 애플리케이션의 여러 부분들이 서로 긴밀하게 연결되어 있다는 것이다. 데이터 전송에 사용자 정의 개체 일련화를 사용하는 앞의 접근방법은 이런 문제가 있다. 편리하고 간단하기는 하지만 프로토콜을 이해하는 특정 서버에만 연결할 수 있고 해당 프로토콜을 변경하려면 해당 서버의 재구성이 필요하다. 하지만 현실적으로는 매우 제한된 프로그래밍 환경에 대한 코드를 작성할 경우 클라이언트와 서버를 긴밀하게 연결하는 코드를 작성할 수 밖에 별다른 방법이 없다. 하지만 메모리 및 프로세서 성능에 대한 제약조건이 제거되면서 좀더 유연한 서비스 지향 아키텍처로의 전환이 가능해지고 있다.

서비스 지향 아키텍처(SOA) 라는 용어는 애플리케이션의 여러 구성요소 사이에 느슨한 연결이 가능한 분산 컴퓨팅의 유형을 가리킨다. SOA 모델에서는 서비스가 플랫폼 독립적인 방식으로 제공되며 데이터가 휴대 및 확장 가능한 형식으로 교환된다. 서로 다른 서비스를 발견하고 관리하는 방법들도 있다.

서비스 지향 아키텍처 아래에 노출된 서비스를 사용하는 애플리케이션은 해당 서비스의 구현 방법과 독립되어 있는데 이는 자바 인터페이스가 애플리케이션 내에 사용되어 해당 구현에서 추상화를 완화시키는 방법과 매우 유사하다. 느슨한 연결은 여러 제공업체의 서비스를 사용할 수 있게 하여 새롭고 흥미로운 방식의 서비스 연결을 통해 애플리케이션 개발자가 좀더 유연하게 애플리케이션을 빌드할 수 있다. 이미 유사한 시장이 서비스 제공업체 간에 개발되고 있다. 예를 들어, 아마존 같은 회사들은 데이터 저장 및 대기열 처리를 위한 사용량별 지불 서비스를 제공하고 있다.

웹 서비스는 서비스 지향 아키텍처의 기반으로 흔히 사용된다. HTTP에 대한 보편적 지원을 활용하여 인터넷에 연결된 거의 모든 유무선 장치로부터 액세스 가능한 서비스를 생성할 수 있다. HTTP 위의 추상화 계층은 일반적으로 REST(Representational State Transfer) 또는 SOAP(Simple Object Access Protocol)인데 클라이언트와 서버 사이의 데이터 교환 및 서비스 호출에 사용된다.

자 바 ME는 장치 제약 조건이 데스크탑 환경에 비해 아직도 매우 한정적이므로 서비스 지향 아키텍처에서 클라이언트 애플리케이션 개발에 특히 적합하다. 따라서 많은 비용이 드는 작업을 외부 시스템으로 전가하는 것이 중요하므로 웹 서비스를 통해 이러한 시스템과 통신해야 한다.

공교롭게도 HTTP 지원은 거의 모든 자바 ME 환경에 존재한다. CLDC(Connected Limited Device Configuration)는 MIDP(Mobile Information Device Profile) 및 IMP(Information Module Profile)의 일부로 이를 포함하고 CDC(Connected Device Configuration)는 핵심 구성 기능으로 이를 포함한다.

HTTP 지원은 첫 번째 단계일 뿐이다. 일반적으로 XML 구문 분석기는 웹 서비스 호출에 의해 반환된 데이터를 구문 분석하기 위해 필요하다. HTTP와는 달리 XML에 대한 자바 ME 지원은 보편적이지 않다. 하지만 구문 분석기는 J2ME 웹 서비스 규격 옵션 패키지 또는 kXML 같은 오픈 소스 프로젝트를 통해 모든 자바 ME 환경에 포함하여 사용할 수 있다.

REST 기반 서비스는 느슨하게 정의되어 있으므로 데이터(서비스 호출의 URL 내에 주로 임베드됨)를 marshal하고 서비스를 호출(간단한 HTTP 호출)하며 응답(주로 XML 문서)을 unmarshal하기 위해 사용자 정의 코딩이 필요하다.

SOAP 기반 서비스는 보다 복잡한 의미를 가지고 있으므로 HTTP 통신 및 XML 구문 분석 이외의 추가 지원을 필요로 한다. J2ME 웹 서비스 규격은 해당 XML 지원을 확장하여 XML 기반 원격 프로시저 호출용 자바 API(JAX-RPC)의 하위 집합을 포함한다. SOAP 1.1 서비스는 이 JAX-RPC 하위 집합을 사용하여 호출될 수 있다. 자바 ME에 대한 JAX-RPC를 포괄적으로 살펴보려면 자바 ME용 웹 서비스 하위 집합 API 이해를 참조한다.

J2ME 웹 서비스 규격을 포함하지 않는 장치에서는 kSOAP 오픈 소스 패키지가 유사한 기능을 제공한다.

자바 ME 개발자는 이러한 도구를 사용하여 SOA 기반 애플리케이션의 범위를 모바일 장치로 확장할 수 있다.

"Java ME" 카테고리의 다른 글

2007/04/10 18:04 2007/04/10 18:04

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/369

댓글을 달아 주세요

  1. 김광현  수정/삭제  댓글쓰기

    좋은 내용 감사드립니다.

    2007/09/07 16:54
  2. 이우철  수정/삭제  댓글쓰기

    항상 좋은 정보 감사합니다.. 자바와 오픈소스에 대한 개념이 잡힙니다

    2007/09/07 19:59
  3. 고진구  수정/삭제  댓글쓰기

    쉬운 예제와 설명 잘 읽었읍니다. 큰 도움이 되겠어요.

    2007/09/09 23:05
  4. 권미자  수정/삭제  댓글쓰기

    많은것을배우고갑니다.

    2007/09/12 18:18
  5. 조진영  수정/삭제  댓글쓰기

    잘 보고 갑니다^^

    2007/09/17 02:26
  6. 박정숙  수정/삭제  댓글쓰기

    좋은 정보 감사해요~

    2007/09/19 03:46
  7. 진정미  수정/삭제  댓글쓰기

    좋은 정보 많이 얻고 가요~

    2007/09/19 23:08
[로그인][오픈아이디란?]

◀ Prev 1  ... 274 275 276 277 278 279 280 281 282  ... 626  Next ▶