Object-Oriented Servers

Download Report

Transcript Object-Oriented Servers

Object-Oriented Servers
Types and Characteristics of Servers
Transaction Servers
Database Servers
Native Servers
Pathways to OO servers
Summery
Object-Oriented Servers
다수의 사용자가 여러 개의 프로그램을 실행시킬 수 있는 컴퓨터
객체는 서버측에도 유용하게 사용될 수 있다.

최근까지 객체는 클라이언트측에만 유용한 것으로 여겨져 왔다.
서버에서 객체 사용의 이점

객체는 복잡하고 변화하는 시스템을 관리할 수 있도록 한다.




기존의 시스템은 이러한 관리가 힘들다.
객체의 캡슐화와 재사용성이 이러한 관리를 가능하게 한다.
프로그래머에게 유지비용을 최소화 하고 변화에서 분리한다.
Fat-client가 한계에 도달했다.

객체지향 프로그램 로직은 서버측에 위치할 수 있다.
서버의 특성과 형태
Transaction Servers : 호스트 기반 TP monitor을 이용
Database Servers : 클라이언트/서버 환경에서 가장 널리 사용되는 서버
Native Servers : 운영체제 위에서 직접 운영되는 서버



위의 세 모델은 각각이 장점과 단점을 가지고 있다.
어느 한 모델이 현재의 엔터프라이즈 시스템에 최적이진 못하다.
객체와 서버의 결합은 오늘날 서버가 직면하고 있는 한계를 극복할 수 있는 기회를 제공
한다.
트랜잭션 서버
TP 시스템 예.



Customer Information Control System : 데이터 관리를 위한 IBM 시스템
IMS/TM
TUXEDO : AT&T Bell 연구소에서 개발한 unix TP 모니터
TP 시스템은 규모가 크다.

이종의 컴퓨터 환경이나 지역적으로 멀리 떨어져 있다.
클라이언트는 서버에 저장되어 있는 원격 프로세서를 요구하여 처리한다.
전통적인 TP 서버 : 서버가 UI를 가지는 서버와 가지지 않는 서버

UI-heavy 시스템




UI를 가지지 않는 서버




OO program

클라이언트에게 사용자 인터페이스를 제공한다.
클라이언트는 I/O터미날로 동작하고 작업에 대한 로직을 가지지 않는다.
Mainframe 시스템이 이 모델을 이용한다.
클라이언트는 프로그램 가능한 워크스테이션에서 동작한다.
일괄처리나 message-driven 서버
사용자 인터페이스 처리의 overhead를 방지한다.
3세대언어(3GL)언어로 코딩한다.
TP 모니터에서 실행되는 3GL 프로그램
Database
클라이언트가 서버에 요구사항을 보내면 서버는 그것을 처리한다.
[email protected]
2
Object-Oriented Servers
The TP Monitor
트랜잭션 처리를 위한 operating system이 트랜잭션 모니터
TP 모니터의 두 가지 기능

트랜잭션 관리 기능


ACID 특징을 가진다.

Atomicity(원자성) : 모든 트랜잭션은 그 하위의 부동작이 모두 완료 돼야지만
트랜잭션이 성공할 수 있다.

Consistency(일관성) : 한 트랜잭션이 실행된 후 그 트랜잭션은 안정된 상태를
유지해야 한다. 즉 일관된 결과가 나와야 한다.

Isolation(고립성) : 트랜잭션의 효과는 트랜잭션이 완료될 때까지 다른 모든 트
랜잭션에 영향을 받으면 안된다.

Durability(영속성) : 트랜잭션이 완료된 후 그 효과는 변할 수 없다. 또한 시스
템의 고장에도 영향을 받지 않는다.
리소스 관리 기능

메모리나 저장공간, 프로세스와 같은 리소스를 적절히 이용할 수 있도록 한다.

리소스 관리 중 프로세서 관리가 가장 중요하다.

서버 프로세서의 시작이나 , 프로세서에게 작업을 보내고 그들의 실행상황을 지
켜보고 일을 균형있게 처리할 수 있도록 한다.
트랜잭션의 처리 순서를 관리하고 트랜잭션의 완료와 복귀, 복구 기능을 조정한다.

위의 기능을 관리하기 위해 2단계 완료 프로토콜을 가진다.


1단계 : 하위 조정자에게 그들의 자원을 완료할 준비가 됐는지 물어보고 그 상태를 상위
조정자에게 알리도록 요청한다.
2단계 : 모든 조정자에게 완료 신호를 보내어 트랜잭션을 완료한다. 만일 하나의 조정자
라도 완료에 실패하면 모든 조정자에게 RollBack신호를 보내고 복귀한다.
Advantages and Disadvantage
장점



많은 수의 클라이언트을 지원한다.(트랜잭션을 짧은 시간에 처리하고 긴 시간동안 데이
터베이스를 잠그는 것을 방지한다.)
다중 리소스 관리자를 관리한다.
메모리와 같은 시스템 리소스의 효과적인 이용과 트랜잭션 실행 순서를 관리한다.
단점



트랜잭션 모니터는 모든 트랜잭션 프로그램이 완료되어야만 한다.
프로그램이 실행되는 곳의 위치가 트랜잭션인지 아닌지를 결정된다.
TP 모니터 외부에 클라이언트가 있기 때문에 클라이언트를 보호할 수 있다.
OO Transaction 서버
객체화 트랜잭션 서버


호스트 시스템에 존재하는 TP 모니터는 객체화 되고 워크스테이션과 Pc에 전달된다.
검증된 기술을 가진다.
[email protected]
3
Object-Oriented Servers
객체 TP 모니터


TP 모니터의 서비스와 객체/콤퍼넌트 모델과 합병한다.
마이크로소프트의 트랜잭션서버와 IBM CBSerises
트랜잭션 서버의 고려사항
어떤 시스템에도 작업 가능해야 한다.


트랜잭션 처리의 제약이 없어야 한다.
오버헤드를 고려해야한다.
요즈음의 TP모니터는 집중형에서 분산형으로 바뀌고 있다.


장점 : 다중 트랜잭션 처리가능
단점 : 확정성이나 신뢰성이 부족
TP 환경에서 객체 기술을 실현하기 위해 더 많은 연구가 필요하다.
Database 서버
데이터를 접근하는데 있어서 SQL 명령을 사용한다.
어플리케이션 로직은 클라이언트에 위치하고 SQL 명령의 처리는 서버에서 한다.
SQL
Tables & rows

Fat-client 시스템(그림)

모든 객체는 클라이언트에 위치한다.
TP-Lite서버로 불리기도 한다.



간단한 요구사항에 간단한 답변을 한다.
긴 답변을 요구할 경우에는 적절하지 못하다.
쇠퇴하고 있는 모델
Stored Procedures
요구사항과 결과의 크기를 줄이기 위한 방법
데이터베이스에 procedure를 포함시킨다.
네트워크 트래픽을 감소시킨다.
한계



언어가 개발자의 특성에 따라 다르다.
모든 트랜잭션을 보호하진 못한다.
사건처리에 약하다
[email protected]
4
Object-Oriented Servers
Advantages and Disadvantage
장점



설치가 간단하다.
시스템 처리 능력을 향상시킨다.
C/S 개발 도구를 통합할 수 있다.
단점



유일한 리소스 관리자의 관리를 받는다.
많은 프로그램이 클라이언트에 위치한다.
제약을 가진다.
OO Database Servers
Object-oriented database management system(ODBMS)


객체지향 개념을 가진다.
클라이언트 사이드 객체지향 언어를 사용하여 구현한다.
Objectified database server


관계 데이터베이스를 가지고 기존의 구조에 객체화 구현한다.
Stored procedures나 데이터베이스의 확장을 통하여 구현한다.(O-R DBMS)

OO 생성자로 관계형 데이터베이스를 확장한다.
OO stored procedures
Native Servers
운영체제의 상위에서 직접 실행된다.
Remote Procedure Call
TP 모니터의 제어로 동작하는 것이 아니라 데이터베이스와 같은 하나의 리소스와 상호
작용 한다.
다른 서버와 다르게 긴 시간 동안 동작한다.(예, 프린터 서버)
Native server
Advantages and Disadvantage
장점



긴 시간동안 동작한다.
클라이언트 동작 에 맞추어 동작한다.
구조가 쉽고, OO디자인을 자연스럽게 사상한다.
단점


Native server를 위한 트랜잭션 지원이 아직 완전하지 못하다.
지원되는 상업 개발 도구가 완전하지 못하다.
[email protected]
5
Object-Oriented Servers
OO Native Servers
3GL 언어를 사용하는 것보다 간결하게 동작한다.

제약사항이 다른 서버에 비해 적다.
트랜잭션 지원이 TP 모니터 보다 좋다.
Pathways to OO Servers
OO Server로 변화하기 위해서는 시간이 필요하다.


OO Server는 변화에 보수적이다.
Critical-mass 상황에 부딪친다.
OO tramsaction servers
Transaction Servers
Objectified
transaction Servers
Object TP monitor
OO database servers
Database Servers
Objectified
transaction Servers
O-R DBMS
Objectified database Servers
ODBMS
Native Servers
OO native servers
Objectified native
Servers
Object native server
[email protected]
6
Object-Oriented Servers
Critical Mass
Standards : 일반적인 표준이 필요하다.
Customers and application : 사용자는 언제라도 새로운 기술을 받아들일 수 있다.
Language and tools : 하나의 프로그래밍 언어와 개발도구를 필요하다.
Summary
트랜잭션 서버는 트랜잭션 관리와 리소스 관리를 해야한다.
데이터베이스 서버는 데이터를 액세스하고 데이터베이스에 프로시쥬어를 포함시켜 실
행된다.
Native 서버는 운영체제의 맨 상위에서 작동한다.
[email protected]
7