Content Introduction XML Protocol What is an RPC? SOAP의 정의 SOAP의 장점

Slides:



Advertisements
Similar presentations
Beginning 자바 웹 서비스 SOAP 강미란 Cyber-Infrastructure Research Lab Konkuk University.
Advertisements

.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
컴퓨터와 인터넷.
CHAP 22. 블루투스.
Oozie Web API 기능 테스트 이승엽.
Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조
SOAP (Simple Object Access Protocol)
Ⅰ. 클라이언트 스크립트 Ⅱ. 서버 스크립트 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
PHP입문 Izayoi 김조흔.
웹 서비스 (Web Services).
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
Load Balancing L4와 L7은 어떻게 동작할까?.
18장. 방화벽 컴퓨터를 만들자.
웹 애플리케이션 아키텍쳐 웹 클라이언트 서버 요청 응답 전송 애플리케이션 데이터베이스 커넥터 N-계층.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
31강 JAVA 네트워크 JAVA 네트워크 InetAdress, URLConnection 클래스 Socket의 이해
Chapter 7. RAS(전화접속,VPN) & IAS
8장. 원격지 시스템 관리하기.
Visual Basic .NET 처음 사용하기.
Chapter 21 Network Layer: ARP, ICMP (IGMP).
소리가 작으면 이어폰 사용 권장!.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
웹 서비스 (Web Services).
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
10장. 예외처리.
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
CHAP 12. 리소스와 보안.
Wireless Java Programming
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
컴퓨터III-인터넷 발표 일시 : (수) 발표자 : 김광호
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
RMI Messenger 지도 : 김정배 교수님 조봉진.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
WSDL 의공학과 3학년 김 기 흔.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
웹디자인
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
데이터 베이스 DB2 관계형 데이터 모델 권준영.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
12강. 컨트롤러 컨트롤러 클래스 제작 요청 처리 메소드 제작 뷰에 데이터 전달
JAXP, WEB Service, SOAP 김만수
Introduction to JSP & Servlet
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
MIDP 네트워크 프로그래밍 ps lab 김윤경.
08. 소프트웨어 아키텍처 설계 전략 명지대학교 융합소프트웨어학부 김정호 교수.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
.Net FrameWork for Web2.0 한석수
소리가 작으면 이어폰 사용 권장!.
Network Lab. Young-Chul Hwang
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
CHAP 15. 데이터 스토리지.
CODE INJECTION 시스템B 김한슬.
8주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
7 생성자 함수.
UDDI 의공학과 이시우.
JAVA 프로그래밍 16장 JNLP.
AJAX? Cho Hyun Min.
소리가 작으면 이어폰 사용 권장!.
Presentation transcript:

Content Introduction XML Protocol What is an RPC? SOAP의 정의 SOAP의 장점 Envelope Encoding rule Web Service

1.Introduction SOAP Simple Object Access Protocol XML 프로토콜 중 하나 즉, 분산 컴퓨팅을 수행하는 수단을 말함.

What is the XML Protocol-(1) 목적 분산 환경에서의 에플리케이션간 데이터 교환 Component Model로써의 XML 기존 컴포넌트 기술의 상호운용성 문제 XML은 플랫폼 및 프로그래밍 언어에 독립적 DOM/SAX와 같은 표준 API를 통한 접근 방법을 제공하고, XML 스키마에 의해 Datatype 확장가능 HTTP protocol 사용에 따른 웹으로의 이식용이

What is the XML Protocol-(2) 데이터 교환 시 Data Capsulation RPC와 같은 외부 함수 호출의 지원 비 구조적 데이터에 대한 Serialization HTTP 프로토콜을 그대로 이용

XML Protocol 메시지 구조 XML Protocol 메시지는 Header와 Body로 구성된 Envelope으로 구성 XML Protocol Envelope XML Protocol Header XML Protocol Block XML Protocol Body XML Protocol Body에 대한 추가적인 설명과 옵션을 정의하는 Meta Data XML Protocol Processor가 XML Protocol 메시지를 처리할 때 작업의 논리적 단위(fault존재) 최종 XML Protocol 수신측에 전송될 Content를 포함

XML Protocol의 종류 WDDX(Web Distributed Data eXchange) 단점 프로그래밍 언어 사이에서의 복잡한 데이터 구조를 교환하기 위해 고안됨 XML을 이용하여 데이터 직렬화를 통한 데이터 전달 직렬화 된 메세지는 데이터에 대한 타입정보와, 변수명, 변수 값을 포함. 단점 데이터 직렬화에 대한 방법만이 정의되어 있다 RPC Call의 기능이 없다 XP Binding이 HTTP로 한정되어 있고 지원하는 데이터 타입 또한 한정되어 있다

XML Protocol의 종류 XML-RPC RPC기능을 XML로 구현 Remote Machine의 method 호출을 XML로 캡슐화하여 전달하고 결과 역시 XML로 전달받음 기존 HTTP 프로토콜을 그대로 이용 HTTP POST방식을 기반으로 구현 XML을 이용함으로써 프로그래밍 언어에 독립적 방화벽에서 특정 프로토콜에 대한 거부를 피하면서 분산 환경을 지원 자체 데이터 타입을 이용함에 따른 상호 운용성을 보장 할 수 없음

What is an RPC?-(1) RPC(Remote Procedure Call) 한 컴퓨터에 있는 코드가 다른 컴퓨터에 있는 코드를 호출하는 것 필요사항 호출하고 싶은 코드가 들어있는 위치 해당 코드가 필요로 하는 파라미터들, 존재한다면 그 파라미터들의 형식 프로시저가 리턴하는 데이터, 존재한다면 그 데이터들의 형식

What is an RPC?-(2) RPC사용의 예 Business Object Web Server Database RPC사용의 예 하나의 애플리케이션을 실행하기 위한 코드가 여러 대의 컴퓨터에 흩어져 있는 분산 시스템(distributed system)을 설계할 필요가 있는 경우 다음과 같이 서버들을 분리하여 각각의 서버들을 통신을 하게 할 필요가 있다. 비즈니스 로직 객체를 위한 서버 프리젠테이션 로직 객체를 위한 서버 데이터베이스 서버

RPC Protocol DCOM IIOP Java RMI COM(Component Object Model)을 기반으로 한 분산 COM(Distribute COM) COM 프로그래밍 모듈을 확장하여 에플리케이션이 원격 컴퓨터에 들어 있는 COM객체를 호출 할 수 있도록 해준다. Microsoft에 의존적 IIOP Internet Inter-ORB Protocol 플랫폼에 중립적 Java RMI Java Remote Method Invocation Java가 제공하는 분산 컴퓨팅에 사용할 수 있는 시스템 어떤 플랫폼에서도 사용할 수 있다.

SOAP의 정의 Simple Object Access Protocal 스펙에서는 “분권 및 분산 환경에서 정보를 교환하는 가벼운 프로토콜”이라고 정의 한 컴퓨터에서 다른 컴퓨터로 정보를 전달할 때, 그 정보를 XML로 표현하는 표준적인 방법을 제공 ▶XML로 markup한 다음, 보통 HTTP로 전송되는 프로토콜을 정의

SOAP의 장점 SOAP은 플랫폼, 언어, 벤더 중립적이다. SOAP은 XML과 (일반적으로) HTTP를 사용하여 구현되기 때문에 특정 벤더에 의존적인 툴을 사용하지 않고도 어떤 플랫폼, 어떤 언어로도 SOAP 요청을 쉽게 전송하고 처리할 수 있다. 구현이 매우 쉽다. SOAP은 다른 프로토콜보다 훨씬 덜 복잡하게 설계되어 있다. SOAP서버는 Web Server, ASP, CGI Script 중 어떤 것을 이용해서도 쉽게 구현할 수 있다. 방화벽(Firewall)에서도 안전하다. 프로토콜로 HTTP를 사용하고 있다고 가정하면 SOAP 메시지는 별도의 조작 과정을 거치지 않고도 방화벽을 넘어서 전달 될 수 있다.

SOAP의 작동원리-(1) SOAP의 규정 RPC가 전송되는 방법에 대한 규칙. SOAP 스펙은 어떤 네트워크 프로토콜을 사용해도 상관없다 하지만, 통상적으로 사용하는 HTTP에 맞는 특정한 규칙들이 포함된다. 전송되는 XML의 전체적인 구조. 이를 envelope라고 부른다. SOAP을 통해 오고 가는 모든 정보들은 envelope안에 포함된다. 데이터가 XML로 어떻게 표현되어야 하는가에 대한 규칙들. 이것을 encoding rule이라 한다.

SOAP의 작동원리-(2) Network 전송 대부분 HTTP프로토콜을 사용한다. SOAP에 HTTP를 사용하는 이유 HTTP는 이미 널리 구현되어 있으며, 이해하기 쉬운 프로토콜이다. 자체가 가지고 있는 요청/응답 패러다임이 RPC와 잘 들어맞는다. 이미 대부분의 방화벽이 HTTP에서 작업할 수 있도록 설정되어 있다. HTTP는 보안 소켓 레이어(Secure Socket Layer, SSL)를 이용하여 쉽게 보안을 구축할 수 있다.

Envelope-(1) 데이터를 SOAP서버에 보낼 때, 그 데이터는 반드시 특정한 방식으로 표현되어야 서버가 그 데이터를 이해할 수 있다. <Envelope>,<Body>:require <Header>:option <Fault>:error가 발생했을 때만 require 모든 속성(encodingStyle, mustUnderstand, actor):option <Envelope> SOAP의 Envelope 네임스페이스인 http://schemas.xmlsoap.org/soap/envelope/에 속하는 요소 <Body> SOAP메시지의 main body를 포함하는 요소이다. 실제의 RPC호출들은 <Body>요소의 직계 자식으로 쓰이게 되고, 이를 body entry라고 한다.

Envelope-(2) <Header> MustUnderstand 속성 SOAP메시지에서 호출하고 있는 프로시저에 의해 정의되는 내용 이외의 부가적인 정보를 넣어 줄 필요가 있을 때 사용된다. <Header>에 들어가는 요소들을 header entry라고 한다. MustUnderstand 속성 SOAP서버가 헤더에 있는 메시지를 처리하는 것이 절대적으로 필요한 것인지 아닌지를 규정하는 데 사용된다. 이 속성 값이 “1”인 경우 헤더 엔트리가 필수가 되지만, “0”인 경우 헤더 엔트리는 옵션이 된다.

Envelope-(3) actor속성 <Fault> SOAP메시지가 몇 개의 애플리케이션을 통해 최종 목적지에 전달될 때, 중간에 있는 컴퓨터를 SOAP intermediary라 한다. 특정 SOAP intermediary를 거칠 때 수행될 필요가 있는 SOAP헤더들에 대해 규정해 줄때 actor 속성을 사용 이 값은 URI이며, 각각의 intermediary를 고유하게 식별한다. <Fault> 메시지 처리에 필요한 리소스가 충분하지 않거나, 잘못된 파라미터가 전달되거나, SOAP 요청을 제대로 이해하지 못하는 경우 SOAP서버가 클라이언트에 오류를 알리는 fault코드를 리턴

Envelope-(4) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"> <SOAP-ENV:Header> <head-ns:someHeaderElem xmlns:head-ns="some URI" soap:mustUnderstand="1" soap:actor="some URI"/> </SOAP-ENV:Header> <SOAP_ENV:Body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > <some-ns:someElem xmlns:some-ns="some URI"/> <!--or--> <SOAP-ENV:Fault> <faltcode/> <faltstring/> <faultactor/> <detail/> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

SOAP Message SOAP Envelope SOAP Header Block SOAP Body SOAP 페이로드

encoding rule 개발자들에게 SOAP이 유용한 것이 되기 위해서는 SOAP Body안에서도 이와 같은 종류의 데이터형들에 대한 정보를 전달할 수 있는 수단이 제공되어야 할 필요가 있다. 따라서, SOAP스펙에 일단의 encoding rule들에 대한 내용이 포함되었다. 이 rule들은 SOAP메시지를 통해 전송되는 XML에 복잡한 데이터 형식 및 직렬화된 객체들을 사용할 수 있도록 해준다.

Web Service SOAP이 단순히 원격 프로시저 호출을 가능하게 하는 분산 컴퓨팅의 문제의 일부분을 가능하게 하는 것이라고 하면, Web Service는 SOAP을 통해 프로시저를 사용하고 싶으면, 그 프로시저가 위치하는 곳(URL)은 어디이고, 그 프로시저가 정확하게 어떤 정보를 전달해야 하는 지(SOAP 메시지의 바디형식은 어떻게 되는지)를 알 수 있는 기능과 그 밖에, 프로시저가 어떤 정보를 리턴하는지에 대하여 알 수 있는 기능들을 제공한다. WSDL(Web Service Description Language) 웹 서비스와 그 이외의 시스템 사이에 계약을 맺을 수 있게 하는 XML기반 언어 UDDI(Universal Discovery, Description, and Integration) 웹 서비스들을 등록할 수 있게 해주어서 사용자들이 다른 웹 서비스들을 찾을 수 있게 해준다.