BizTalk Adapter for Oracle Database의 아키텍처 개요
Oracle Database용 Microsoft BizTalk 어댑터의 아키텍처에 대해 설명합니다.
Oracle 데이터베이스 어댑터 아키텍처를 이해하면 다음을 수행할 수 있습니다.
Oracle 데이터베이스 어댑터와 WCF(Microsoft Windows Communication Foundation) LOB(기간 업무) 어댑터 SDK 간의 관계를 이해합니다.
솔루션에서 데이터를 더 잘 보호할 수 있도록 보안 경계를 이해합니다.
Oracle 데이터베이스 어댑터 바인딩 속성을 이해합니다.
설치 문제를 해결합니다.
이 항목에서는 Oracle 데이터베이스 어댑터를 사용하여 Oracle 데이터베이스에서 작동하는 엔드 투 엔드 솔루션의 아키텍처에 대해 설명하고 Oracle 데이터베이스 어댑터의 내부 아키텍처에 대해서도 설명합니다.
어댑터 아키텍처 개요
Microsoft BizTalk Adapter for Oracle Database는 WCF(Windows Communication Foundation) 사용자 지정 바인딩입니다. 이 바인딩에는 Oracle 데이터베이스와의 통신을 가능하게 하는 단일 사용자 지정 전송 바인딩 요소가 포함되어 있습니다. Oracle 데이터베이스 어댑터는 Microsoft WCF(Windows Communication Foundation) LOB(기간 업무) 어댑터 SDK 런타임에 의해 래핑되며 WCF 채널 아키텍처를 통해 애플리케이션에 노출됩니다. Oracle Database 어댑터는 .NET용 Oracle 데이터 공급자(ODP.NET) 및 Windows용 ODAC(Oracle Data Access Components)의 일부인 Oracle 클라이언트를 통해 Oracle 데이터베이스와 통신합니다.
다음 그림에서는 Oracle 데이터베이스 어댑터를 사용하여 개발된 솔루션에 대한 엔드 투 엔드 아키텍처를 보여 줍니다.
어댑터 사용
Oracle 데이터베이스 어댑터는 Oracle 데이터베이스를 클라이언트 애플리케이션에 WCF 서비스로 노출합니다. 작업을 수행하고 Oracle 데이터베이스의 데이터에 액세스하기 위해 클라이언트 애플리케이션은 WCF 채널을 통해 ORACLE 데이터베이스 어댑터와 SOAP 메시지를 교환합니다. 이전 그림은 Oracle 데이터베이스 어댑터를 사용할 수 있는 네 가지 방법을 보여줍니다. 아래에 이 계정과 키의 예제가 나와 있습니다.
WCFchannel 모델 애플리케이션을 통해 WCF 채널 모델 애플리케이션은 WCF 채널 모델을 사용하여 Oracle 데이터베이스 어댑터와 직접 SOAP 메시지를 교환하여 Oracle 데이터베이스에 대한 작업을 수행합니다. WCF 채널 모델을 사용하여 Oracle Database 어댑터용 솔루션을 개발하는 방법에 대한 자세한 내용은 WCF 채널 모델을 사용하여 Oracle Database 애플리케이션 개발을 참조하세요.
WCF 서비스 모델 애플리케이션을 통해 WCF 서비스 모델 애플리케이션은 WCF 클라이언트에서 메서드를 호출하여 Oracle 데이터베이스에 대한 작업을 수행합니다. WCF 클라이언트는 Oracle 데이터베이스 어댑터에서 노출하는 작업을 .NET 메서드로 모델링합니다. Microsoft WCF(Windows Communication Foundation) LOB(기간 업무) 어댑터 SDK 또는 WCF ServiceModel 메타데이터 유틸리티 도구(svcutil.exe)를 사용하여 Oracle 데이터베이스 어댑터가 노출하는 메타데이터에서 WCF 클라이언트 클래스를 만들 수 있습니다. WCF 서비스 모델 및 Oracle 데이터베이스 어댑터에 대한 자세한 내용은 WCF 서비스 모델을 사용하여 Oracle 데이터베이스 애플리케이션 개발을 참조하세요.
BizTalk 수신 위치 또는 Microsoft BizTalk WCF-Custom 어댑터를 사용하도록 구성된 송신 포트를 통해 WCF-Custom 어댑터를 사용하면 WCF 확장성 기능을 사용할 수 있습니다. WCF-Custom 어댑터를 사용하여 Oracle DB 바인딩 및 수신 위치 또는 송신 포트에 대한 동작을 선택하고 구성할 수 있습니다. BizTalk Server 솔루션에서 Oracle Database 어댑터를 사용하는 방법에 대한 자세한 내용은 BizTalk 애플리케이션 개발을 참조하세요.
IIS 호스팅 웹 서비스를 통해. 이 시나리오에서는 어댑터를 사용하여 생성된 WCF 서비스 프록시가 표준 WCF Http 바인딩을 사용하여 IIS에서 호스트됩니다. 그러면 서비스 계약이 외부 사용자에게 웹 서비스로 노출됩니다. IIS는 런타임에 어댑터를 자동으로 호스트하며, 이 어댑터는 Oracle 데이터베이스와 통신합니다.
Oracle 데이터베이스 어댑터 및 ODAC는 항상 어댑터를 사용하는 애플리케이션 또는 서비스와 함께 In-Process에서 호스트됩니다.
Oracle 데이터베이스 어댑터 및 WCF
WCF는 클라이언트와 서비스 간의 채널을 통해 SOAP 메시지 교환을 기반으로 하는 프로그래밍 모델을 제공합니다. 이러한 메시지는 통신 클라이언트와 서비스에서 노출하는 엔드포인트 간에 전송됩니다. 엔드포인트는 다음으로 구성됩니다.
메시지가 수신되는 위치를 지정하는 엔드포인트 주소
메시지를 교환하는 데 사용되는 통신 프로토콜을 지정하는 바인딩
엔드포인트에서 노출하는 작업 및 데이터 형식을 지정하는 계약입니다.
바인딩은 메시지를 엔드포인트와 교환하는 방법을 정의하기 위해 서로 위에 쌓이는 하나 이상의 바인딩 요소로 구성됩니다. 최소한 바인딩은 엔드포인트와 메시지를 교환하는 데 사용되는 전송 및 인코딩을 지정해야 합니다. 엔드포인트 간의 메시지 교환은 하나 이상의 채널로 구성된 채널 스택을 통해 발생합니다. 각 채널은 엔드포인트에 대해 구성된 바인딩에 있는 바인딩 요소 중 하나의 구체적인 구현입니다. WCF 설명서에는 WCF 및 WCF 프로그래밍 모델에 대한 자세한 내용이 포함되어 있습니다.
Oracle Database용 Microsoft BizTalk 어댑터는 WCF 사용자 지정 바인딩인 Oracle DB 바인딩(Microsoft.Adapters.OracleDB.OracleDBBinding)을 노출합니다. 기본적으로 이 바인딩에는 Oracle 데이터베이스에서 작업을 수행할 수 있는 단일 사용자 지정 전송 바인딩 요소인 Oracle DB 어댑터 바인딩 요소(Microsoft.Adapters.OracleDB.OracleDBAdapter)가 포함됩니다.
Microsoft.Adapters.OracleDB.OracleDBBinding (Oracle DB 바인딩) 및 Microsoft.Adapters.OracleDB.OracleDBAdapter (Oracle DB 어댑터 바인딩 요소)는 공용 클래스이며 구성 시스템에도 노출됩니다. Oracle DB 어댑터 바인딩 요소가 공개적으로 노출되므로 Oracle 데이터베이스 어댑터의 기능을 확장할 수 있는 고유한 사용자 지정 WCF 바인딩을 빌드할 수 있습니다. 예를 들어 WCF 채널 또는 서비스 모델 솔루션에서 Enterprise SSO(Single Sign-On)를 지원하는 사용자 지정 바인딩을 구현할 수 있습니다. 이 작업을 수행하는 이유는 데이터베이스 작업을 단일 다기능 작업으로 집계하거나 사용자 지정 애플리케이션에서 구현한 작업과 Oracle 데이터베이스의 작업 간에 스키마 변환을 수행하기 위해서입니다.
Oracle 데이터베이스 어댑터는 Microsoft WCF(Windows Communication Foundation) LOB(기간 업무) 어댑터 SDK를 기반으로 하며 WCF LOB 어댑터 SDK 런타임을 기반으로 실행됩니다. WCF LOB 어댑터 SDK는 Oracle 데이터베이스 어댑터가 사용자 및 어댑터 클라이언트에 다양한 기능 집합을 제공하는 데 사용하는 소프트웨어 프레임워크 및 도구 인프라를 제공합니다.
Oracle 데이터베이스 어댑터 및 WCF LOB 어댑터 SDK
Microsoft BizTalk Adapter for Oracle Database는 WCF(Microsoft Windows Communication Foundation) LOB(기간 업무) 어댑터 SDK에서 제공하는 기능을 활용하고 Oracle Data Provider for .NET(ODP.NET)을 통해 Oracle 데이터베이스에 대한 연결을 제공하는 핵심 구성 요소 집합을 구현합니다.
WCF LOB 어댑터 SDK는 Oracle 데이터베이스 어댑터가 WCF(Windows Communication Foundation)와 인터페이스하는 소프트웨어 계층 역할을 합니다. ODP.NET Oracle 데이터베이스 어댑터가 Oracle 데이터베이스와 인터페이스하는 계층 역할을 합니다.
다음 그림에서는 Oracle 데이터베이스 어댑터, WCF LOB 어댑터 SDK 및 ODP.NET 내부 구성 요소 간의 관계를 보여 줍니다.
ODP.NET
Oracle 데이터베이스 어댑터는 ODP.NET 및 Oracle 클라이언트를 통해 Oracle 데이터베이스와 연결됩니다. 이러한 두 구성 요소는 모두 Oracle ODAC(데이터 액세스 구성 요소)의 일부입니다.
ODP.NET ADO.NET 인터페이스와 일치하는 Oracle 데이터베이스에 대한 데이터 공급자를 구현합니다. Oracle 데이터베이스 어댑터는 ODP.NET 노출되는 클래스를 사용하여 Oracle 데이터베이스에서 작동합니다.
Oracle 클라이언트는 Oracle 데이터베이스에 대한 연결을 제공합니다. Oracle 데이터베이스 어댑터에 대한 연결 URI를 제공하여 Oracle 데이터베이스에 대한 연결을 설정합니다. 다음 두 가지 방법으로 연결 URI를 지정할 수 있습니다.
tnsnames.ora 사용. 이 방법에서 어댑터 클라이언트에서 제공하는 연결 URI에는 tnsnames.ora 파일에 지정된 net 서비스 이름만 포함됩니다. 어댑터는 파일의 net service name 항목에서 서버 이름, 서비스 이름, 포트 번호 등과 같은 연결 매개 변수를 추출합니다. 이 방법을 사용하려면 Oracle 클라이언트를 실행하는 컴퓨터가 tnsnames.ora 파일에 Oracle 데이터베이스의 net 서비스 이름을 포함하도록 구성되어야 합니다.
tnsnames.ora를 사용하지 않습니다. 이 방법에서 어댑터 클라이언트는 연결 URI에서 직접 연결 매개 변수를 지정합니다. 이렇게 하려면 클라이언트 컴퓨터의 tnsnames.ora 파일에 net 서비스 이름이 있을 필요가 없습니다. 이 방법은 tnsnames.ora 파일이 클라이언트 컴퓨터에 있을 필요도 없습니다.
연결 URI에 대한 자세한 내용은 Oracle 데이터베이스에 대한 연결 만들기를 참조하세요.