1. Introducing OSGi

OSGi 소개

자바를 위한 동적 모듈 시스템을 OSGi 프레임워크라고한다.
module, lifecycle, services 로 나누어 알아볼 수 있다.

우선 OSGi 에 대한 이해가 필요하겠다.

  • 모듈화를 위한 자바 Built-in support 이해
  • OSGi 기술 소개와 OSGi가 Java modularity 를 어떻게 개선시키는지 살펴보자. 
  • 마지막으로 다른 기술들과 관련하여 OSGi에 대한 위치를 파악해보자. 
작은 기기부터 거대한 엔터프라이즈 서비스까지 개발되어온 자바 플랫폼은 정말 성공한 케이이다. 하지만 Object-Oriented 데이터 캡슐화를 넘어 모듈화 지원은 이 플랫폼에서 지원하지 않았다. 그런 지원의 부재는 문제일까 아닐까? 그렇기 때문에 잘 만들어진 대부분의 프로젝트는 이런 문제들을 가지고 있게 되었다. 
  • 논리적 구조를 구현한 프로그래밍(정확히 이해는 안가지만 아무튼)
  • 여러개의 Class loaders
  • 내부 컴포넌트간의 Serialization

하지만 이런 기술들은 쉽게 깨지거나, 에러를 발생 시키기 마련이다.
왜! 컴파일, 런타임 시점의 확실히 체크하는 것들이 없기 때문이다.
그 결과 애플리케이션의 여러 라이프사이클의 단계 각각에 나쁜 영향을 초래한다.

  1. 개발 - 독립적인 부분으로 나누어 개발할 수 없다. 
  2. 배포 - 시스템 분석,이해 불가
  3. 실행 - 동작하고 있는 여러 시스템들을 점진적 개발 또는 관리 할 수 없다. 

기존의 방식으로 해결하려 하면 어렵고 힘들것이 분명하다.
Java 에서 모듈화를 제공한다면 좀 더 애플리케이션 구현에 집중할 수 있지 않을까?

"Welcome to the OSGi Service Platform"
OSGi Service Platform는 Java 플랫폼의 부족한 모듈화 지원을 세상에 알림으로서 표준화를 정의하였다. 그리고 끊임없는 지원으로 service-oriented programming model (SOA)를 소개하였다. SOA를 통해 Interface와 구현체를 완벽히 분리하고자 했다.

그럼 OSGi에 대해서 좀 더 살펴보자.

  • 이글을 다 보고나면, 옆에 분께 자바기술의 집합체중 OSGi 기술의 역할과 
  • 왜! OSGi 기술이 제공하는 부분에 대해 java에서 제공/발표하지 않는지 설명을 해주세요!

"What is OSGi?"

it’s a modularity layer for the Java platform.

“What do you mean by modularity?”
소프트웨어 어플리케이션을 논리적은 부분으로 각각 분리해놓은 코드
아.. 이래도 몬지 잘 모르겠는 OSGi
왜 OSGi 나날히 인기가 높아지는지 이해하기 위해 모듈화된 어플리케이션을 만드는데 있어 Java의 제약사항들을 이해하는것이 중요하겠다.

그럼 요 제약사항들은 다음 글로~ 고고!


  • 단어

모듈화(여기서는 서비스내의 역할과 프로세스를 상황에 맞게 변화할 수 있는 능력이라고 정의하겠다)

댓글

가장 많이 본 글