보안관리(Security)

advertisement
비사모:VB 2차세미나
Microsoft
Transaction
Server
이건복
Agenda




Welcome !!!!
MTS Overview
ADO
Demo !!!
2-Tier 응용프로그램 구성

2 Tier 클라이언트/서버




서버가 데이터 보관
클라이언트에 코드관리
각 클라이언트마다
서버Database접속
App
소규모에 적당


확장성 부족
비효율적 자원활용
App
App
App
3-Tier 응용프로그램 구성
UI

3 Tier 클라이언트/서버




클라이언트는 UI
미들Tier에서 코드관리
미들Tier에서 DB 접속
대규모에 적합


확장성 우수함
효율적 자원활용
UI
UI
UI
UI
UI
UI
UI
UI
3-Tier 응용프로그램
3-Tier 응용프로그램 구성(예:WEB)
전통적 서버객체 작성시 문제점 ..
WorkDesktop
group
1 user 2 users
DepartEnterDivision
Internet
ment
prise
100s
1000s 10,000s 100,000s
Shared Data
Connections
Security
Context
Multithreading
Load Balancing
Msg Q’ing
Multithread
Multinode
High Avail
Multisite
MTS 를 사용하면 ……
WorkDesktop
group
1 user 2 users
DepartEnterDivision
Internet
ment
prise
100s
1000s 10,000s 100,000s
Transaction Server
ActiveX Components
MTS의 구조
Client
Process
Local
Client
IFoo
Proxy
Class
Factory
Wrapper
S
t
u IFoo Context
b
Wrapper
Class
Factory
CompIFoo onent
Context
Server
Process Server Process Exec
COM or DCOM
- COM code
- Transaction Server code
- Client Application code
- Server Application code
MTS의 구조

MTS Executive - mtxex.dll

provides run time services




MTS Explorer - mtsexp.exe



1 Server Process per package
Cannot have same component in 2 packages
Resource Managers


Uses mtsadmin.dll for Automation Objects
Server Processes - mtx.exe


Thread Management
Context Management
Resource Pooling
SQL Server 6.5
Resource Dispensers


ODBC Connection Pooler (odbc.dll)
Shared Property Manager (mtxspm.dll)
MTS의 주요 역할






분산 응용프로그램 개발을 위한 Infra제공
Transaction 관리 (TP-Monitor)
객체요구 처리 (Object Broker)
자원의 최적화(Resource pooling)
보안관리(Security)
관리 용이(Administrator)
Transaction 관리 (TP-Monitor)

프로세스 관리


트랜잭션 관리



서버 프로세스 시작, 서버에 작업 분산 공급,
서버의 실행에 대한 모니터링, 로드 밸런싱
각 트랜잭션이 시스템적으로 ACID 보장.
자원에 대한 일치성, 실행 실패, 연결 단절, 부하
벨런싱, 동기화에 대한 고려 불 필요.
3 계층 구조 지원

데이터베이스와 GUI와는 상호 독립적인
에플리케이션 프로세스로 운영 되도록 한다.
Transaction 특성





ACID : Atomicity(원자성), Consistency(일치성),
Isolation(고립성), Durability(내구성)
원자성 : 트랙잭션 하의 모든 작업이 완료되어야
Commit된다것을 보장. 모든 작업이 완료되지
않으면 해당 트랜잭션은 Rollback된다는 의미.
일치성 : 트랜잭션 종료 후 시스템이 정확한 상태
유지, 종료가 아니면 실행 이전 상태로 Roll-Back.
고립성 : 동시에 수행되는 다른 트랜잭션에 영향을
받지 않는다.
내구성 : 트랜잭션에 대한 실행이 종료되어 커밋이
이루어진 후에는 그 효과는 지속됨.
Transaction Server의 주요 Option




Requires a Transaction
해당 MTS 컴포넌트는 반드시 트랜잭션하에서
실행.
Requires a new transaction
독립된 새로운 트랙잭션 생성
Support Transaction
Client의 트랙잭션 컨텍스트 하에서 실행될 수 있다.
Client 트랜잭션의 컨텍스트를 상속 받아 수행.
Client 트랜잭션이 없다면 트랜잭션에 참여하지
않음.
Does not support Transaction
트랜잭션 컨택스트하에서 수행되지 않음.
Transaction 프로그래밍 지침










서버는 상태를 유지할 필요가 없다는 것을 나타내기
위해 가능한 자주 SetComplete을 호출
MTS의 Active상태는 Server에 의해 관리
서버는 가능한 한 늦게 데이타베이스 컨넥션과 같은
서버 리소스를 구하고 빨리 반환
서버는 role보안 모델을 사용
서버는 적절한 때마다 트랜잭션을 사용
가능한 한 Call-by-value로 매개변수 사용
COM개체 자체를 넘겨주거나 리턴하는 것을
피하라.
데이타베이스 커서를 생성하여 사용하는 것을
피하라.
서버는 아파트먼트 스레딩 모델을 사용하라.
(VB는 STA만 지원)
MTS 컴포넌트는 Stateless하는 것이 바람직하다.
Transaction 관리 (TP-Monitor)
객체요구 처리 (Object Broker)

객체에 대한 관리




클라이언트의 객체 요청에 대한 처리



Thread creation
Storage allocation
객체 lifetime관리 (Just In Time 활동)


Registry points to MTX.EXE, not object’s own DLL
InProcServer32 replaced by LocalServer32
LocalServer32 points to: MTX.EXE -p:{GUID}
stable - deallocated - reconstructed
객체 활동속성 조정가능



In the caller’s process
On this server
On a different server
자원의 최적화(Resource pooling)

동일 프로세스에서만 가능
Thread 1
Thread 2
...
Node - Components
1 Say When
They’re Done
l
Thread N
Process # Y
Thread 1
Thread 2
...
l
Thread N
Process # X
Recycle Resources
- Processes
- Threads
Node - Memory
2 - Database
Connections
- Network Sessions
- Component
Instances
보안관리(Security)


DCOM 보안상에서 동작
선언적(Declarative)





Roles (Avoid NT Impersonation)
Roughly maps to NT User Accounts
Simple with no programming
Use Explorer to define roles and privileges
프로그램적(Programmatic)

Access security at runtime using IObjectContext
and/or ISecurityProperty interfaces

IsCallerInRole()
IsSecurityEnabled()

보안관리(Security)
If (lngAmount > 500 Or lngAmount < -500) Then
If Not GetObjectContext.IsCallerInRole("Managers") Then
Err.Raise Number:=APP_ERROR, Description:=
"Need 'Managers' role for amounts over $500"
End If
End If
패키지(Package)




관련된 객체의 집합
프로세스(process)단위
신뢰의 범위
Deployment 단위
Package-1
Package-2
Microsoft
Transaction
Server
패키지(Package)
객체(Component) 작성

개발툴 선정
Visual Basic®, Visual C++®, Visual J++™
MicroFocus COBOL, and Others…

Single-User용 객체 작성
개발자는 업무개발에 더 많은 시간을 투여할 수 있음


DLL로 컴파일
MTS에 DLL등록(객체)
객체(Component) 등록
X/OPEN DTP(분산 트랜잭션 처리)



트랜잭션 처리를 위한 소프트웨어 아키텍쳐
응용프로그램(Application Program -AP)
자원관리자(Resource Manager-RM)


오라클,사이베이스,인포믹스,DB/2
트랜잭션관리자(Transaction Manager-TM)

Tuxedo(BEA),Encina(IBM),TopEnd(NCR),OpenUTM(SNI)
Application Program (AP)
tx_begin
tx_commit
tx_rollback
TX Interface xa_start
xa_prepare
Transaction
xa_rollback
Manager
XA Interface
(TM)
RMSql
Interface
Resource
Managers
(RM)
OLE Tx(OLE Transactions)




마이크로소프트사의 트랜잭션관리를 위한 프로토콜
Com
X/OPEN의 TM과 MTS는 다른 Tx를 가진다
SQL서버나 MSMQ등은 XA Transaction Managers
( Tuxedo)의 RM이 될 수 있다.
Client
Application
Application
OLE Tx
SetAbort
SetComplete
Tuxedo
XA
Resource Manager API
Microsoft DTC
OLE Tx
MS SQL Server
Transaction
Manager
OLE Tx
Resource
Manager
SQL
Server
Database
MTS의 확장- RM

MTS1.0 지원 RM


SQL(OLE TX)
MTS2.0 지원 RM





XA지원(DTC-to-XA mapper인테페이스)
 오라클,인포믹스,사이베이스,DB/2..
COMTI
MSMQ
Microsoft Exchange
Windows NT Directory
MTS의 확장- TM


IBM CICS, IMB 지원
Unix TP-Monitor


Tuxedo(BEA),Encina(IBM),
TopEnd(NCR),OpenUTM(SNI)
MTS 데 모
Download