2010년 1월 초 SpringSource는 dm Server가 Eclipse 프로젝트에 참여하여 Java 모듈화의 새해 첫 장을 열 것이라고 발표했습니다. OSGi는 지난 한 달 동안 계속해서 성장하여 2010년이 Java 모듈화의 해가 될 것임을 알렸습니다.
InfoQ 뉴스: 2010년 1월 Java 모듈화에 대한 최신 진행 상황. (원제: "Bundle.update: A Year of Modularity" http://www.infoq.com/cn/news/2010/01/year-of-modularity )
51CTO 편집자 추천: OSGi 시작하기
dm 서버가 Eclipse로 마이그레이션됨
가장 큰 소식은 의심할 여지 없이 Eclipse Virgo 프로젝트 제안입니다(여기에서 51CTO 관련 보고서 참조). 현재 dm 서버 버전은 2.0.0입니다. 이는 다음 2.1 버전이 Eclipse에서 개발 및 출시될 것임을 의미합니다.
기존 프로젝트와 새로운 제안의 중요한 차이점 중 하나는 프로토콜입니다. 이는 dm Server가 현재의 EPL 대신 향후 EPL을 기반으로 한다는 의미이며 이는 비즈니스 관행에 더 도움이 되는 계약입니다. 목표는 소프트웨어 개발에 대한 이러한 접근 방식을 장려하면서 커뮤니티 기여를 높이는 것입니다.
현재 기업용 OSGi와 dm Server는 많은 사람들의 관심을 불러일으켰고, 이를 둘러싼 혁신은 멈추지 않았습니다. 이러한 관심은 OSGi 서비스 플랫폼의 동적 모듈 기능을 준수해야 하는 얼리 어답터 및 프로젝트에서 특히 높습니다. 그러나 주류 개발 팀(단지 문제를 줄이고 가능한 한 빨리 엔터프라이즈 애플리케이션을 구축하려는)의 경우 현재 엔터프라이즈 OSGi를 채택하는 데 드는 비용이 단기적인 이점을 초과할 수 있습니다. 엔터프라이즈 OSGi가 주류 엔터프라이즈 애플리케이션 개발 방법의 사실상 표준이 되기 전에 이 문제를 고려해야 합니다.
OSGi와 Equinox를 소개하는 신간 출간
이번 주에는 OSGi와 Equinox를 소개하는 새로운 책이 출판되었습니다. 이 책은 Eclipse RunTime 시리즈의 첫 번째 책이기도 합니다. 이 책은 OSGi를 통해 모듈식 Java 애플리케이션을 구축하는 방법을 소개합니다. 책의 예제는 Equinox를 기반으로 하지만 다른 OSGi 플랫폼에서 개발하려는 개발자에게도 유용합니다.
또한 이 책은 특정 샘플 코드를 통해 시리즈의 후속 책에 대한 길을 닦는 목적으로 처음부터 끝까지 Toast 샘플 프로젝트를 구현합니다(이 책을 읽은 개발자가 다른 책을 빠르게 시작할 수 있도록). 이 책은 네 부분으로 구성되어 있습니다. 첫 번째 부분은 OSGi 개요, Toast 예제 구축 가이드, 세 번째 부분에서 OSGi의 세부 사항을 자세히 살펴보고 마지막으로 참고 문헌입니다.
ECF 원격 서비스 개발 완료
최근 Eclipse Communications Framework 프로젝트에서는 REST, WS-*, JMS, XMPP, Skype 및 ECF Generic 구현을 포함한 다양한 이기종 프로토콜을 통해 VM 전체에서 OSGi 서비스를 연결할 수 있는 OSGi 원격 서비스 사양을 구현했습니다.
그뿐만 아니라 ZeroConf, SLP, 정적 파일 기반 탐지 등 다양한 탐지 메커니즘이 있습니다.
OSGi 원격 서비스의 Apache Felix 구현도 출시되었습니다(Apache CXF). 이는 OSGi의 참조 구현이기도 합니다. 그러나 이 구현은 WS-* 전송 계층을 통한 액세스에 중점을 두는 반면 ECF는 전송 계층과 독립적입니다. 구현에 관계없이 최종 사용자와 개발자가 사용하는 API는 동일합니다. 이를 통해 사용자는 런타임에 구현을 교체할 수 있습니다.
Enterprise Expert Group 작업이 곧 완료됩니다.
최근 Peter Kriens는 OSGi Enterprise Expert Group이 곧 완성될 것이라고 발표했으며, 많은 Java EE 기능을 제공하는 Enterprise Expert Group 초안 4도 얼마 전에 출시되었습니다. OSGi DevCon과 EclipseCon이 열리는 올해 3월에 최종 버전이 출시될 것으로 예상하는 이유가 있습니다.
EEG는 OSGi를 통해 JNDI 스타일 조회를 위한 새로운 쿼리 메커니즘을 제공하고, JMX를 사용하여 OSGi 런타임, JTA, JPA 및 데이터 소스를 통한 데이터베이스 액세스를 관리하며 원격 서비스 및 서비스 구성 요소 아키텍처 관리도 제공합니다. 또한 새로운 배포 번들인 WAB가 출시되어 웹 애플리케이션 번들이 WAR과 같은 컨테이너에 설치될 수 있습니다. InfoQ는 EEG 결과가 공개되면 이에 대한 심층적인 내용을 제공할 것입니다.
WebSphere, 알파 버전 출시
IBM WebSphere는 한동안 OSGi를 기반으로 개발되었으며 최근에는 OSGi 애플리케이션의 Alpha 버전을 출시했습니다. 이 애플리케이션은 Apache Aries를 기반으로 하며 OSGi Blueprint 컨테이너(SpringSource에서 제안한 Eclipse Gemini와 유사)를 포함합니다. 이들 프로젝트는 모두 Enterprise Expert Group의 초점이기도 한 JNDI 및 JTA가 직면한 일부 문제를 해결하기를 희망합니다.
이러한 컨테이너는 OSGi 런타임의 경계를 확장하여 여러 애플리케이션을 수용합니다. 앞으로 애플리케이션은 OSGi 중첩 프레임워크를 통해 분할될 것입니다(웹 애플리케이션 서버가 WAR을 분할하는 방법과 유사). 그러나 웹 애플리케이션 서버(WAR은 완전히 분리되어 코드를 공유할 수 없음)와 달리 WAB는 OSGi 런타임을 통합할 수 있으므로 프라이빗 번들 및 서비스를 사용하는 것처럼 쉽게 코드와 서비스를 공유할 수 있습니다.
Tycho는 Maven을 사용하여 OSGi를 구축합니다.
최근 Sonatype은 Maven 3의 새 버전을 사용하여 Tycho 0.6.0을 출시했습니다. Tycho는 Maven POM에 종속성이 존재한다고 가정하는 대신 OSGi Manifest.MF를 기반으로 종속성을 추론할 수 있는 Maven 빌더 세트입니다. 이를 통해 POM 우선(매니페스트가 자동으로 생성되는 경우) 또는 매니페스트 우선 OSGi 번들을 생성할 수 있습니다.
Maven을 사용하는 대부분의 OSGi 개발자(Apache Felix를 사용하는 개발자 등)는 POM 우선 개발 방법에 더 익숙하지만 매니페스트 우선 개발 방법은 이를 보완하는 것이며 Eclipse PDE(플러그인 개발)를 통해 더욱 발전할 수 있습니다. 환경). OSGi 번들을 편리하게 개발하세요.
많은 Eclipse 프로젝트 중에서 EGit과 인큐베이션 프로젝트 Tigerstripe는 Ant 대신 Maven을 사용하여 구축되었습니다.
Maven 프로젝트는 광범위한 리팩토링을 거쳐 Google Guice를 사용하는 Maven 3으로 이동하고 있습니다. 또한 Maven 저장소(Sonatype에서 관리)의 성공은 다중 종속성이 있는 Java 개발이 어렵지 않음을 입증합니다. 또한 OSGi 번들 리포지토리(예: OBR 및 SpringSource 리포지토리)를 사용하는 사람들이 점점 더 많아지고 있으며 다양한 제공업체에 분산될 수 있습니다. OSGi 리포지토리의 통합 세트를 제공하는 주제에 대한 탐구 연구가 현재 진행 중입니다(Nexus의 도움으로 Tycho에서 사용됨). 실험적 저장소는 Bundles.sonatype.org 및 osgi.sonatype.org에 있습니다. 향후 목표는 OSGi 번들을 Maven JAR만큼 쉽게 사용할 수 있도록 다양한 형식(OBR, P2 등)에 대한 액세스를 제공하는 것입니다.
민첩하고 POSH
OSGi 번들만 얻는다면 OSGi 번들 파서를 사용하는 것이 더 나은 선택이 될 것입니다. 최근 Paremus는 OSGi 번들을 구하고 다운로드하기 위한 파서인 Nimble을 출시했습니다.
Paremus는 POSH(Paremus OSGi Shell)를 Nimble 파서에 바인딩합니다. 이렇게 하면 동일한 명령 세트를 사용하여 일반 OSGi 프레임워크를 초기화하고 관리할 수 있으며(이렇게 하면 Felix, Equinox 및 Knopflerfish의 테스트가 단순화됨) Nimble의 도움으로 Dave처럼 OSGi 런타임을 빠르게 시작할 수 있습니다. Savage가 설명을 하더군요. 다음 두 줄의 명령을 통해 Spring 기반 OSGi 웹 애플리케이션을 설치하고 실행할 수 있습니다.
posh -kc "repos -l springdm;add org.springframework.osgi.samples.simplewebapp@active " open http://localhost:8080/simple-web-app/ 관심 있는 독자는 DZone에서 Nimble에 대해 자세히 알아볼 수 있습니다.
OSGi UK 사용자 그룹 및 OSGi DevCon London
OSGi UK 사용자 그룹은 활발하게 활동하고 있으며 회원 수는 100명이 넘습니다. 가장 최근 강의는 Marcel Offerman(Luminis)과 Graham Charters(IBM)의 강의입니다. 강의와 관련된 영상과 자료는 며칠 내로 홈페이지에 게시될 예정입니다.
강의의 첫 번째 부분은 원격을 포함한 여러 장치에서 OSGi 사용을 단순화하는 것을 목표로 하는 인큐베이션 프로젝트 Apache ACE에 대한 소개였습니다.
재사용 가능한 구성요소로부터 소프트웨어를 조립하는 과정에서 해결하기 가장 어려운 문제는 점점 더 늘어나는 연결된 장치에 소프트웨어를 배포하는 방법입니다. 장치의 소프트웨어 스택이 이기종이어서 동시에 다른 구성 요소가 필요한 경우 상황은 더욱 악화됩니다. 본 강의에서는 휴대폰부터 클라우드의 노드까지 모든 것을 다루는 Apache ACE(오픈소스, OSGi 기반 솔루션)를 기반으로 소프트웨어 구성 요소를 다양한 유형의 장치에 배포하는 방법을 소개합니다.
Apache Ace 프로젝트는 작년 초 Luminis가 기증한 소프트웨어를 기반으로 하며, 이 소프트웨어는 On-ship Radar 시스템, 현장 X-Ray 장비, CMS 소프트웨어 업데이트 및 프로토콜 관리, 공항 수하물 처리 등 많은 실제 프로젝트에 적용되었습니다. 시스템.
두 번째 강의에서는 Apache Tuscany를 예로 들어 OSGi 원격 서비스(OSGi 4.2에 이미 포함되어 있음)와 이것이 SCA(Service Component Architecture)와 상호 작용하는 방법을 소개했습니다.
Java 모듈화 개념 및 현황 요약
OSGi 및 WebSphere 애플리케이션 예제에 대한 포괄적인 요약
애플리케이션 서버가 OSGi에 의존하면서 Sun의 JSR 294가 중단되었습니다.
질문에 답하기 위한 모듈화 프로그래밍의 장점과 구현 원칙에 대한 개요: JSR 294, 가시성 및 유용성.
OASIS는 SCA(Service Component Architecture) 사양을 개발하기 위해 노력해 왔습니다. SCA는 수많은 구현 기술(EJB, BPEL, C++, COBOL 등), 바인딩(웹 서비스, JMS, IIOP 등) 및 정책(WS-Policy 등)을 포괄하는 이기종 SOA 프로그래밍 모델을 제공합니다.
이번 강의에서는 OSGi 원격 서비스와 서비스 컴포넌트 아키텍처 기술에 대해 간략하게 소개한 후, OSGi 애플리케이션이 원격 서비스를 통해 여러 SCA 구현 기술, 바인딩, 정책 프레임워크에 접근할 수 있도록 이 둘을 통합하는 방법에 대해 이야기했습니다.
다가오는 OSGi DevCon London 및 JAX London 컨퍼런스 일정이 발표되었습니다. 이 제안은 오늘 종료되지만 OSGi UK 사용자 그룹 회원은 추가 할인을 받을 수 있습니다.
요약
점점 더 많은 대형 서버 시스템이 OSGi를 채택할 것이 분명하며, 동시에 OSGi도 중소 규모 시스템에 진출하기 시작할 것입니다. 빌드 도구가 계속 발전함에 따라 개발자는 동시에 다양한 IDE에서 OSGi 번들을 개발할 수 있으며, OSGi 번들을 공유하기 위한 새로운 리포지토리도 등장하고 모듈식 Java 애플리케이션 개발이 점점 더 쉬워질 것입니다. 이를 바탕으로 Kirk Knoernschild는 다음과 같이 주장합니다. 2010년은 Java 모듈화의 해가 될 것입니다.