MicroProfile-마이크로프로파일
MicroProfile은 여러 런타임에서 애플리케이션 이식성을 제공하는 마이크로 서비스를 함께 구성하는 Java EE API 및 기술 모음을 말합니다.
현제 기준으로 3.1을 제공하고 있습니다.
Java EE의 성숙으로 인해 릴리스 케이던스가 느려져 마이크로 서비스 커뮤니티에 비해 너무 느려졌습니다.
그러나 이것은 Java Enterprise 기술이 마이크로 서비스 개발에 사용되는 것을 막지 못했습니다.
실제로 Java EE의 마이크로 서비스에는 많은 노력이 이미 들어갔습니다.
각 공급 업체가 마이크로 서비스를 수행하는 올바른 방법에 대한 자체 의견을 구현하면서 공간이 조각화되고 있습니다.
응집력을 찾지 못하면 벤더 조각화가 불가피한 결과라는 것이 분명했습니다. 따라서 공급 업체와 사용자 그룹간에 마이크로 서비스를보다 잘 수행 할 수 있도록 안내하는 협업이 시작되었습니다.
Java EE 전체 프로파일이 마지막으로 30 개가 넘는 API로 커짐에 따라 ‘마이크로’라고 부르는 것을 만들 때, 특히 대부분의 API. 더 얇고 더 나은 솔루션을 찾아야했습니다.
목표
이러한 동기 부여 중에서 오픈 소스 프로젝트에 참여하는 모든 사람들이 추구하고자하는 4 가지 주요 목표가있었습니다.
이러한 목표는 다음과 같이 요약 할 수 있습니다.
- 마이크로 서비스 공간에 대한 일관된 접근의 필요성을 해결하기위한 방법으로 공급 업체와 구현 자들 사이의 조각화를 피하십시오 . 결과적으로 마이크로 서비스에 대한 공통 전략을 통해 서버 공급 업체간에 마이크로 서비스 상호 운용성이 발생합니다.
- 게으른 합의 를 통해 신속하게 구축 하여 신속한 개발 및 반복이 가능합니다. 이로 인해 고주파 방출 케이던스가 발생하여 커뮤니티의 빠른 전환이 필요합니다.
- Eclipse 조직의 프레임 워크를 통해 Java EE 공간에서 더 많은 오픈 소스 기술을 작성 합니다. 이를 통해 조직은 해당 기술을 JSR 형식으로 옮길 때 사양 리드 역할을 수행 할 수 있습니다.
- 그리고 궁극적 인 목표는 것입니다 공급 자바 커뮤니티 프로세스 와 (JCP) 사양 요청 (JSR) 개발자와 기업에 의존하고 실제로 할 수있는 현명한 방법 및 구현에 의해 백업합니다.
Java EE가 헤비급이라는 인식에 도전
Java Enterprise Edition에 대한 기존의 인식은 무겁고 번거롭고 배포가 느리다는 것입니다.
이는 초기의 많은 부분에서 사실이었습니다.
그러나 Eclipse MicroProfile 노력 덕분에 그 인식은 성공적으로 도전 받고 있습니다.
MicroProfile 개발자 자원 페이지에서 아키텍처 컨퍼런스 애플리케이션 키 코드 샘플을 통해 MicroProfile Java EE 애플리케이션의 경량 특성을 테스트하는 데 사용할 수 있습니다.
키 코드 샘플은 4 개의 마이크로 서비스와 프론트 엔드 애플리케이션으로 구성됩니다.
프레젠테이션에서 각 마이크로 서비스는 MicroProfile 아키텍처를 사용하여 개발되었으며 4 개의 참여 공급 업체 서버 중 하나에 배포되었습니다
maven 플러그인은 애플리케이션을 WAR로 컴파일하고 서버 런타임을 사용하여 JAR로 패키지합니다.
java -jar 명령을 사용하여 명령 행을 통해 시작됩니다.
CDI 중심 프로그래밍 모델
컨텍스트 및 의존성 주입 사양은 자바 EE 생태계에서 가장 강력하고 기능이 풍부한 사양의 하나이며, 종종 다른 API로 활용된다.
가장 강력한 기능 중 두 가지는 인터셉터와 옵저버입니다.
인터셉터는 감사, 로깅 및 보안과 같은 비즈니스 로직과 직교하는 교차 절단 작업을 수행합니다.
이는 개발자가 요구하는 모든 종류의 마이크로 서비스 속성에 필수적인 기능입니다.
베이크 인 이벤트 알림 모델은 관찰자 패턴을 구현하여 시스템 전체에서 활용할 수있는 강력하고 가벼운 이벤트 알림 시스템을 제공합니다.
이러한 기능 외에도 서버와 클라이언트의 예상되는 디커플링 (종속성 주입의 본질)과 Bean의 수명주기 정의, 유형 안전 주입, 범위, 생산자 방법, 한정자 및 완전한 CDI 사양을 포함한 전체 CDI 사양을 얻을 수 있습니다.
타사 통합을 허용하는 서비스 공급자 인터페이스 (SPI).
이 API가 기본 Java EE 마이크로 서비스에 대한 핵심 종속성으로 선택된 이유는 분명합니다.