분산된 소프트웨어 시스템을 설계하는 경우 시스템이 사용자 정의 개발 구성 요소로 구성되는지 또는 즉시 실행 가능한 Java ES 구성 요소로 구성되는지의 여부와 상관없이 여러 인프라 서비스를 통합해야 합니다. 이 서비스는 여러 수준에서 작동합니다.
그림 2–2에서는 솔루션 구조의 인프라 서비스 종속성을 보여줍니다. 이 그림에서 보여주는 차원은 그림 1–1의 인프라 서비스 계층이 확장된 것입니다. 그림 2–2의 서비스 계층 및 해당 계층 간의 종속성은 논리적 솔루션 구조의 중요한 차원을 구성합니다. 이러한 인프라 서비스는 Java ES 시스템 서비스 구성 요소를 이해하기 위한 개념적 기초를 제공합니다( 시스템 서비스 구성 요소 참조).
일반적으로 다음 그림에서 보여주는 서비스는낮은 수준의 플랫폼 서비스, 높은 수준의 응용 프로그램 서비스 및 다른 두 그룹 간의 위치로 이름이 지정된 미들웨어 서비스 그룹의 세 가지 그룹으로 분류됩니다.
서로 다른 인프라 서비스 수준을 설명하는 다음 설명에서는 해당되는 경우 Java 프로그래밍 언어 아티팩트를 참조하며 그림 2–2에서 보여주듯이 가장 낮은 수준에서 가장 높은 수준까지의 서비스를 나열합니다.
운영 체제 플랫폼. 컴퓨터에서 실행되는 프로세스에 대한 기본 지원을 제공합니다. 운영 체제는 Java 가상 시스템(JVMTM 시스템)을 지원하는 데 필요한 메모리, 스레드 및 기타 자원뿐만 아니라 물리적 장치를 관리합니다.
네트워크 전송. 다른 컴퓨터에서 실행되는 분산된 응용 프로그램 구성 요소 간의 통신을 위한 기본 네트워킹 지원을 제공합니다. 이러한 서비스에는 TCP 및 HTTP와 같은 프로토콜에 대한 지원이 포함됩니다. 다른 보다 높은 수준의 통신 프로토콜(메시징 수준 참조)은 이러한 기본 전송 서비스에 종속됩니다.
지속성. 정적 데이터(예: 사용자, 디렉토리 또는 구성 정보)와 동적 응용 프로그램 데이터(자주 업데이트되는 정보)의 액세스 및 저장에 대한 지원을 제공합니다.
메시징. 응용 프로그램 구성 요소 간의 동기 통신과 비동기 통신 모두에 대한 지원을 제공합니다. 동기 메시징은 실시간으로 메시지를 송수신하며 J2EE 구성 요소 간의 원격 메소드 호출(RMI) 및 웹 서비스와의 SOAP 상호 작용을 포함합니다. 비동기 메시징은 사용자가 바로 받을 준비가 되었는지에 관계 없이 메시지를 보내는 통신입니다. 비동기 메시징 사양(예: JMS(Java Message Service) 및 ebXML)은 안정성을 보장하며 다른 메시징 의미를 지원합니다.
런타임. 분산된 구성 요소 모델(예: J2EE 또는 CORBA 모델)에 필요한 지원을 제공합니다. 런타임 서비스에는 밀접하게 연결된 분산 구성 요소에 필요한 원격 메소드 호출 외에도 구성 요소 상태(라이프 사이클) 관리, 스레드 풀 관리, 동기화(mutex 잠금), 지속성 서비스, 분산 트랜잭션 모니터링, 분산 예외 처리 등이 포함됩니다 . J2EE 환경의 경우 이러한 런타임 서비스는 응용 프로그램 서버 또는 웹 서버의 EJB, 웹 및 메시지 구동 Bean 컨테이너에서 제공됩니다.
보안 및 정책. 응용 프로그램 자원에 대한 보안 액세스를 지원합니다. 이러한 서비스에는 단일 사인온 기능 외에도 분산된 자원에 대한 그룹 또는 역할 기반 액세스를 제어하는 정책에 대한 지원이 포함됩니다. 단일 사인 온을 사용하면 분산 시스템의 한 서비스에서 인증된 사용자를 시스템의 다른 서비스(J2EE 구성 요소, 비즈니스 서비스 및 웹 서비스)에도 자동으로 적용할 수 있습니다.
사용자 공동 작업. 엔터프라이즈 환경 및 인터넷 환경에서 사용자 간의 직접 통신과 공동 작업을 지원할 때 핵심 역할을 수행하는 서비스를 제공합니다. 이러한 서비스는 일반적으로 전자 메일 서버 또는 캘린더 서버와 같은 독립 실행형 서버에서 제공되는 응용 프로그램 수준의 비즈니스 서비스입니다
통합. 기존 비즈니스 서비스를 통합하는 서비스를 제공합니다. 포털에서처럼 서비스에 액세스하기 위한 공통 인터페이스를 제공하거나 작업 워크플로 내에서 조정하는 처리 엔진을 통해 서비스를 통합합니다. 통합은 다른 기업 간의 B2B(기업-기업) 상호 작용으로 수행될 수도 있습니다.
그림 2–2의 서비스 수준은 가장 낮은 수준의 운영 체제 서비스에서 가장 높은 수준의 응용 프로그램 및 통합 서비스에 이르기까지 인프라 서비스 상호 간의 종속성을 반영하고 있습니다. 각 서비스는 일반적으로 아래에 있는 서비스에 종속되고 위에 있는 서비스를 지원합니다. 그러나 그림 2–2에서는 인프라 서비스의 엄격한 계층화를 보여주지 않습니다. 높은 수준의 서비스는 중간 수준에 의존하지 않고 낮은 수준의 서비스와 바로 상호 작용할 수 있습니다. 예를 들어 일부 런타임 서비스는 사이에 있는 다른 서비스 수준 없이도 플랫폼 서비스에 바로 종속될 수 있습니다. 모니터링 또는 관리 서비스와 같은 다른 서비스 수준도 이 개념적인 그림에 포함될 수 있습니다.