2014-02-24 12 views
0

소프트웨어 엔지니어링에서 "작업"과 "트랜잭션"이라는 용어 사이에 실제적인 차이점이 있습니까?작업 대 거래 - 실용적인 차이점은 무엇입니까?

웹 검색의 비트는 CICS에 너무 특정한 결과를 산출합니다. 관심 분야가 데이터베이스 관리 시스템 (그래프 데이터베이스, 객체 데이터베이스 등)에있는 반면 더 광범위하게 적용 할 수있는 대답이 더 좋습니다.

+1

태스크라는 용어 AFAIK는 데이터베이스 용어에 속하지 않습니다. 반면 거래라는 용어는 데이터베이스 (ACID 등)와 직접적으로 관련되어 있습니다. –

+0

그렇다면 각각의 시스템에서 2와 어떤 관계 또는 관계가 없거나 부분적 관계가 있음을 의미합니까? –

+0

하나의 레이어에는 트랜잭션 개념이 있고, 상위 레이어에는 작업 개념이 있습니다. 그러나 1이 다른 쪽을 감싸는지를 알아 내려고 노력하는 것은 레이어가 중재되어 있기 때문에 어려운 작업입니다. –

답변

0

용어 "작업"의 의미를 몇 가지 다음, 소프트웨어 공학의 개념의 수에 널리 적용 : 가장 높은 수준에

  1. 을, 작업은 단순히이 될 것입니다 무언가이다 done
  2. 동시 프로그래밍에서 작업은 일반적으로 실행 단위입니다. 일괄 작업에서 프로세스, 스레드 또는 무언가 일 수 있습니다.
  3. 특정 프레임 워크는 더 전문화 된 용어를 사용할 수 있습니다. 예를 들어, 해변 웹 프레임 워크 (Smalltalk로 작성)에서 태스크는 데스크톱 컴퓨팅에서 마법사처럼 작동하는 웹 사이트입니다. 한편

이 용어는 "거래"거의 항상 데이터베이스 의미 전달 (도메인 별 의미를 제외 을 물론, 예를 들어, 회계 소프트웨어에서 금융 거래). 따라서 트랜잭션은 일반적으로 시작, 커밋 및 중단 될 수 있으며 때때로 다시 시작됩니다.

트랜잭션은 (2)와 같은 태스크와 같이 동시 프로그래밍에 사용될 수 있습니다. 일반적인 예는 Software transactional memory이며이 동작은 명시 적입니다. GemStone/S OODB은 다음과 같습니다. 동시에 소프트웨어 트랜잭션 메모리 구현 인 데이터베이스입니다. 여기에서 작업과 트랜잭션은 사실상 동일합니다.

+0

매우 도움이되는 설명, 감사합니다. –