웹서비스 컴퓨팅 정리
웹서비스 컴퓨팅
분산 컴퓨팅
메인 프레임
대형컴퓨터는 통계 데이터나 금융 관련 전산업무 등 복잡한 자겁을 처리하는 컴퓨터.
Client/Server Model
비용 절감의 요구로 인하여 메인 프레임에 집중되어 있던 기능을 여러 대의 워크스테이션으로 분산.
이들을 네트워크로 연결하여 서로 통신하는 것이 중요 요소가 된다.
서버의 일부 기능을 클라이언트에 분산
client/Server 모델의 문제점
낮은 생상성 및, 애플리케이션이 복잡해짐에 따라 데이터 페킷 정의가 요구됨
MiddleWare
클라이언트와 서버 사이에 데이터 패킷 생성 및 전달.
개발자는 애플리케이션 비지니스 로직에 관련된 핵심 코드만을 작성
Socket Api, TCP/IP 오류 처리등을 고려할 필요 없음
Stub
전송 데이터를 준비하고 수신한 데이터를 변환해 올바른 해석을 할 수 있도록 지원하여 처리 결과를 교환하는 모듈
원격 프로시저 호출(RPC)
네트워크 상에 연결된 원격 컴퓨터와의 프로시저 호출
호출된 프로세저는 수행된 결과를 클라이언트 프로세스에 전달
DCE RPC 동작
프린트 다시 보기
Object Request Broker
객체 지향 미들웨어 핵심 기술
local 및 원격지에 위치한 객체들 사이의 통신을 담당하는 핵심 기술
다른 컴퓨처의 프로그램을 네트워크를 통해 호출할수 있는 미들웨어
RPC의 형태를 기본적으로 수용
재사용성의 특성을 가짐
CORBA : Common Object Request Broker Architecture
Application 사이에서 위치, 만든 사람과 상관없이 상호간 통신을 보장하고 분산 객체의 상호 운용을 위한 통신 미들웨어 역활을 수행
클라이언트 객체가 orb라는 소프트웨어 버스를 사용하여 원격지 서버의 메소드를 호출하고 그 수행 결과를 받도록 함.
COM(Component Object Model)
인터페이스를 통해 각 개체들간의 상호운용을 가능하게 하는 객체기반 프로그래밍 규격
바이너리 수준의 표준
객체 계승의 개념은 없다.
Marshelling
Com객체의 인터페이스 포인터 위치를 프로세스 공간 하나에 존재하는것처럼 포장화는 과정
Java RMI
분산되어 존재하는 객체 간의 메세지 전송을 가능하게 하는 프로토콜.
RMI registry를 통해 현재 사용 가능한 서버 객체의 정보를 얻음.
자바 rmi 서버 객체에 대한 참조 획득 후, 주소 공간에서 메소드 호출 방식으로 서버 객체의 메소드 사용
분산 객체의 문제점
복잡하고, 트랜잭션, 보안을 추가하기 위한 과정 매우 복잡.
연결지향형이며, 방화벽 문제가 있다.
웹서비스 아키텍처
웹서비스 기본 블록
검색, 기술, 호출
JIT 통합
웹 서비스 시스템
- 컴포넌트의 동적인 바인딩과 분리 가능
- 네트워크에 있는 다른 협업 컴포넌트들에게 자신의 메시징 API를 알리고 메시지에 맞추어 동작하는 기능을 캡슐화
- 서비스는 애플리케이션이 협업의 동적 바인딩을 하도록 서비스 검색을 이용해서 메시지 마샬링
애플리케이션 디자인 작업
- 특정 기능을 수행하기 위해 네트워크 서비스의 기능 기술
런타임 어플리케이션 수행
- 협업에 대한 요구사항을 실제 서비스 검색의 임력으로 사용
- 실제 서비스를 수행하기 위해 협업에 대한 메시지 전송
이러한 어플리케이션은 또 다른 서비스가 된다.
서비스를 합쳐서 새로운 서비스를 창조하고 이 서비스를 다시 검색하고 협업 가능
서비스 지향을 위한 조건
필요없을 때 서비스는 삭제되어야함.
웹 서비스는 인트라넷 또는 인터넷 저장소에 발행되어야 함
웹 서비스의 인터페이스와 호출 메소드가 정의되고 생성
웹 서비스 아키텍처 스택
Discovery stack - 웹 서비스 검색
Discrption stack - 웹 서비스 기술
wire stack - 프로토콜 역활
SOAP
분산 환경에 있는 peer들 사이에 정형화된 정보와 구조를 주고받을 수 있도록 경량화된 프로토콜 정의
웹 서비스 호출을 책임.
확장성이 좋은 메시지 포맷 프로토콜.
xml기반의 통신 프로토콜
서로 다른 컴퓨터 사이에서 os, 프로그래밍 환경, 객체 모델 프레임워크가 달라도 정보 교환이 가능
soap에서 정의하는것
메시지 교환하기 위한 방식
xml 스키마에 기반한 내부 데이터 인코딩 방법
모듈화된 패키지를 만드는 방법
soap 메시지 포맷
통신할 컴퓨터 주소
envelope
- 메시지의 송신자와 수신자에 대한 정보
- 메시지 자체에 대한 정보
soap와 다른 분산 프로토콜 비교
corba 또는 orb
- 객체 실행, 생명주기 관리, 성능향상을 위한 객체 폴링.
soap
- 수많은 분산 프로토콜들과 용이하게 동작할 수 있는 최대한 가볍고 공통적인 부분만 수용한 프로토콜.
soap vs rpc
soap
- 객체지향 프로그래밍에 기반
- 메소드를 실행하여 그 결과값을 반환한다.
- 원격지에 위치하는 객체의 메소드 실행과 관련된 기술
RPC
- 네트워크에서 요청할 수 있는 메시지 기반
- 메시지 기반의 원격지에 위치하는 프로시저를 호출하기 위한 기술
soap 사용 경우
복잡하고 사용자 정의가 가능한 데이터 타입을 이용하여 의사소통하거나
애플리케이션이 메시지를 처리하기 전 먼저 메시지를 분성해야 할 필요가 있거나
메시지를 유연하게 처리하고 싶을 때
RMI, IIOP
RMI
- 자바를 사용하여 원격지 컴퓨터에 있는 객체가 분산 네트워크 안에서 상호작용 할 수 있도록 해 주는 기술
IIOP
- 다른 프로그래밍 언어로 작성된 분산 프로그램이 네트워크를 통해 서로 통신할 수 있도록 해준다.
SOAP 호출 과정
프린트 보기.