트랜잭션 웹 응용 프로그램 디자인

트랜잭션 웹 응용 프로그램에서 가장 중요한 디자인 개념 중 하나는 비즈니스 프로세스와 실제 트랜잭션을 구분하는 것입니다. 비즈니스 프로세스는 판매 주 처리 같이 대부분의 조직에서의 일상적인 프로세스입니다. 실제 트랜잭션은 비즈니스 프로세스를 기록하는 데 사용되는 데이터 리소스를 실제로 업데이트하는 작업입니다. 비즈니스 프로세스는 일반적으로 둘 이상의 실제 트랜잭션으로 구성됩니다.

예를 들어 판매 주문을 처리할 때는 최소한 세 가지 다른 단계를 거쳐야 합니다.

각 단계는 시스템 디자인에 따라 하나 이상의 실제 트랜잭션을 나타냅니다.

인터넷의 연결 없는 특성 때문에 이 단계를 구분되는 실제 트랜잭션으로 분할해야 합니다. 실제 트랜잭션이 시작되면 다른 사용자가 트랜잭션이 완료될 때까지 이 트랜잭션에 참가하고 있는 리소스를 업데이트할 수 없게 됩니다. 위에서 설명한 전체 판매 주문 프로세스가 단 하나의 실제 트랜잭션으로 묶여 있다고 한다면 어떤 일이 일어날지 상상해 보십시오. 사용자는 제품에 대한 관심을 표명함으로써 트랜잭션을 시작할 수 있습니다. 이렇게 되면 고객의 계정이 잠기고 재고 데이터베이스에서는 이 제품이 더 이상 가용하지 않은 것으로 표시됩니다. 고객은 판매를 커밋하기 전에 다른 업무에 참가하기 위해 브라우저를 실행시킨 상태로 자리를 뜰 수 있습니다. 전체 주문이 하나의 실제 트랜잭션으로 처리되었기 때문에 고객이 커밋하거나 시스템이 비즈니스 규칙에 따라 주문을 발주할 때까지는 모든 리소스가 잠기게 됩니다. 이런 디자인은 웹에 사용되는 트랜잭션 처리 시스템에는 맞지 않습니다.

트랜잭션 웹 응용 프로그램의 디자인 요건은 항상 비즈니스 프로세스라는 관점에서 보게 됩니다. 따라서 비즈니스 프로세스를 실제 트랜잭션으로 분할하는 디자인 기술을 확립하는 것이 중요합니다. 한 가지 중요한 기술은 실제 트랜잭션을 항상 하나의 .asp 파일로만 제한하는 것입니다.

참고   비즈니스 프로세스는 여러 .asp 파일로 확장할 수 있지만 실제 트랜잭션은 그럴 수 없습니다.

다른 디자인 기술로는 트랜잭션이 대기 중인지 커밋되는지를 나타내기 위해 트랜잭션 리소스 내에 상태 코드를 사용하는 것입니다. 상태 코드를 포함시킴으로써 실제로 트랜잭션을 커밋하지 않고도 리소스를 예약할 수 있습니다. 비즈니스 프로세스가 완료되면 상태 코드를 변경하여 모든 대기 중인 리소스를 커밋하는 실제 트랜잭션을 추가로 시작할 수 있습니다. Crawford & Sons Custom Bicycle Company 사례 연구에서는 이 두 가지 원칙이 트랜잭션 웹 응용 프로그램의 구현에 영향을 주는 방식을 보여 줍니다.

(The following words are used by Search; they are not intended to be displayed on the page.)MSMQ

Crawford & Sons 웹 응용 프로그램

Crawford & Sons Custom Bicycle Company는 자전거를 수공으로 만들어 북미에 보급하는 회사입니다. 직원들은 웹 응용 프로그램을 통해 자전거 주문을 받기로 결정했습니다. Microsoft® SQL Server를 사용하여 고객과 재고 기록을 유지 관리하고 구성 요소 서비스로 등록된 비즈니스 논리 구성 요소를 이미 개발했습니다. 이제 이 회사는 고객이 단일 비즈니스 프로세스 영역 내에서 이 구성 요소에 액세스할 수 있도록 하는 .asp 파일을 개발해야 합니다. 다음 도표는 구분되는 실제 트랜잭션과 웹 응용 프로그램 디자인을 구성하는 .asp 파일을 보여 줍니다.

트랜잭션 예제

판매 주문 응용 프로그램은 네 개의 .asp 파일, Login.asp, Credit.asp, Inventory.asp, and Commit.asp로 구성됩니다. 각 실제 트랜잭션은 각각 하나의 .asp 파일로 표시됩니다. (각 .asp 파일에는 @Transaction = Required 지시어가 포함되어 있습니다.) Login, Credit, Inventory는 각각 Sales Order라는 COM 구성 요소와 상호 작용하여 주문을 받는 세 가지 단계를 달성하기 위한 메서드를 제공합니다.

고객이 판매를 커밋할 준비가 되면(즉 비즈니스 프로세스가 완료되면), Commit.asp는 전체 논리 트랜잭션을 데이터 리소스의 모든 상태 코드를 "대기중"에서 "완료"로 변경하는 하나의 실제 트랜잭션으로 그룹화합니다. 이 디자인은 웹의 연결 없는 특성과 통일적인 비즈니스 프로세스를 사용자에게 제공하기 위한 필요 조건 양자를 모두 수용합니다.

구성 요소 서비스 트랜잭션에 대한 자세한 내용은 트랜잭션 이해와 Platform SDK에서 "구성 요소 서비스" 및 "메시지 대기열" 설명서를 참조하십시오. 트랜잭션 스크립팅에 대한 예제를 보려면, ASP 예제에 있는 ASP 트랜잭션 서비스를 참조하십시오.


© 1997-2001 Microsoft Corporation. All rights reserved.