모듈이나 플러그인 기반 시스템을 개발할 때 어떻게 시작해야 하나요?

StackOverflow https://stackoverflow.com/questions/78004

  •  09-06-2019
  •  | 
  •  

문제

나는 전적으로 모듈 기반의 시스템을 개발하려고 합니다.시스템 기반에는 플러그인에 대한 정보를 찾고, 플러그인을 시작하고, 해당 모듈이 통신할 수 있는 방법을 제공할 수 있는 지원이 있어야 합니다.이상적으로는 새 모듈을 마음대로 삽입하고 사용하지 않는 모듈을 꺼낼 수 있어야 하며, 가능한 경우 모듈은 서로의 기능을 사용할 수 있어야 합니다.

이 시스템은 다양한 모듈에서 많은 일이 발생하고 다른 모듈이 이를 기반으로 작업을 수행할 수 있는 시뮬레이션 시스템의 기반으로 사용해야 합니다.

제가 개발하려는 시스템은 Java로 개발될 예정입니다.제가 보기에 저는 이름, 어떤 이벤트가 발생할지 등의 정보로 모듈을 설명하는 XML을 포함하는 각 모듈에 대한 하위 폴더가 있는 폴더를 만들려고 합니다.이 문제를 해결하려면 사용자 정의 ClassLoader를 작성해야 할 수도 있습니다.

문제는 내 아이디어가 실제로 효과가 있을지 모르겠고, 물론 작동하는 프로토타입을 만들 계획이라는 것입니다.그러나 저는 이전에 진정한 모듈식 시스템에 대해 작업한 적이 없으며 이 문제를 해결하는 가장 좋은 방법이 무엇인지 잘 모르겠습니다.

어디서부터 시작해야 할까요?이런 종류의 시스템을 개발하는 동안 발견되는 일반적인 문제와 함정이 있습니까?격리를 유지하면서 모듈이 서로 통신하도록 하려면 어떻게 해야 합니까?(즉, 모듈을 제거하고 해당 모듈을 사용하고 있던 다른 모듈은 정상 상태를 유지합니다)어디서부터 시작해야 할지에 대한 아이디어를 얻을 수 있는 가이드, 사양 또는 기사가 있습니까?Java 기반이면 더 좋겠지만 이것이 필수 사항은 아닙니다. 제가 지금 찾고 있는 것은 코드가 아니라 아이디어이기 때문입니다.

어떤 피드백이라도 감사하겠습니다.

도움이 되었습니까?

해결책

꼭 살펴보셔야 할 것 OSGi.되는 것을 목표로 합니다. 그만큼 Java용 구성요소/플러그인 메커니즘.이를 통해 코드(소위 번들)를 모듈화하고 런타임 시 번들을 업데이트할 수 있습니다.또한 다른 번들의 원치 않는 액세스로부터 구현 패키지를 완전히 숨길 수도 있습니다.API만 제공하세요.

Eclipse는 OSGi를 구현하고 사용하는 최초의 주요 오픈 소스 프로젝트였지만 이를 완전히 활용하지 못했습니다(다시 시작하지 않고 플러그인 설치/업데이트 없음).하지만 처음부터 시작한다면 플러그인 시스템을 위한 아주 좋은 프레임워크를 제공할 것입니다.

아파치 펠릭스 완전한 오픈 소스 구현입니다(그리고 다음과 같은 다른 구현도 있습니다). 이클립스 춘분).

다른 팁

자세히 설명하지 않고도 살펴봐야 합니다. OSGI 또는 Eclipse RCP 프레임워크에 익숙해지면 명심해야 할 몇 가지 기본 개념도 얻을 수 있습니다.

또 다른 옵션은 서비스로더 Java 1.6에 추가되었습니다.

이를 수행하는 방법은 다양하지만 Reflection을 사용하면 간단한 작업을 수행할 수 있습니다.파일의 XML 파일 이름을 작성합니다(실제로는 클래스임).그러면 어떤 유형인지 확인하고 리플렉션을 통해 다시 만들 수 있습니다.클래스에는 외부 파일/클래스가 실제로 모듈 중 하나인지 확인할 수 있는 공통 인터페이스가 있을 수 있습니다.여기에 대한 정보가 있습니다. 감상.

이 SourceForge와 같은 사전 코딩된 프레임워크를 사용할 수도 있습니다.링크 텍스트 이는 모듈/플러그인을 생성하는 첫 번째 좋은 단계를 제공할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top