Beginning 자바 웹 서비스 웹 서비스 기술 강미란 Cyber-Infrastructure Research Lab Konkuk University.

Slides:



Advertisements
Similar presentations
Daum Open API Blog API 소개 MashupCamp2008 | 고영민 다음커뮤니케이션 커뮤니티개발 2 팀.
Advertisements

Beginning 자바 웹 서비스 SOAP 강미란 Cyber-Infrastructure Research Lab Konkuk University.
XML with JAVA. chapter 07 : chapter 07 : XML 스키마 Ⅰ XML 스키마 Ⅰ.
1. Section I. 웹 프로토콜과 로그의 이해 1. 웹 프로토콜 1.1 통신 절차 1.2 HTTP Request 1.3 HTTP Response 2. 웹 로그 2.1 W3C 유형 2.2 NCSA 포맷 2.3 로그 분석 2.
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
라포르시안 뉴스레터 e마케팅 소개서 ㈜올댓닥터스
Web Services & WSDL.
Next SMS서비스 소개서 다음인터넷세상.
Introduction to Servlets
Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조
제1장 C#의 기초 1.1 .NET Framwork 1.2 .NET Environment 1.3 C# 소개.
WAP, Stinger, Bluetooth 순천향 대학원 전산학과 1학기 정재헌.
2 장 인터넷의 구성 및 접속.
APPEON SOLUTION INTRODUCTION.
Web Service XML Security
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
Python Bottle Web Framework
Web Service & Base Technologies
이번 시간에는... 지난 시간에는 모바일 응용 프로토콜의 첫번째 시간으로, 모바일에 사용되는 다양한 응용 프로토콜과 모바일 웹 서비스 응용 프로토콜로써 XML 및 SMIL 동기화 멀티미디어 통합 언어에 대해 알아보았습니다. 이번 시간에는 모바일 응용 프로토콜, 그 두번째.
10장. 웹 서비스 공격 (Attacking Web Service)
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
자바 서버 API와 서블릿 데이타베이스 실험실 이찬섭, 박용문.
Introduction to Web Service Computing
웹 서비스 (Web Services).
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
2 장 인터넷의 개요.
UDDI [universal description, discovery, and integration]
Web Servers (IIS & Apache)
10. About TCP / IP SPARCS 08 우성필.
Java RMI (Remote Method Invocation)
Domain Name System (DNS)
1강 01장. 웹과 자바.
Chapter 02 웹의 이해.
NTAS 소개 (Network Transaction Application Server)
임베디드 프로그래밍 Lecture #
Web Services 웹서비스 도입 및 확산에 따른 기대효과 1.
7장 목차 7.1 멀티미디어 네트워킹 응용 7.5 다양한 서비스 클래스 제공 7.2 스트리밍 저장 오디오 및 비디오
Embeded 기초 다지기 2015년 10월 26일 intern Sally
(Network Transaction Application Server)
제 23 장 WWW 23.1 하이퍼텍스트와 하이퍼미디어 23.2 브라우저 구조 23.3 고정 문서 23.4 HTML
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
Network Management 김대환 김태훈 김숙흔 이근민.
Part 08 신 경향 기술 및 기타 1. IPTV 2. UDDI 3. 지그비 4. WIPI 5. HomeNetwork
네트워크 관리 개요 및 SNMP Protocol 동작 과정
WSDL 전산게임학과 김헌철.
웹 서비스 (Web Services).
Network Programming(1)
SOAP 클라이언트 개발 Guide
Network Security WireShark를 활용한 프로토콜 분석 II.
Open API - Naver (Application Programming Interface )
나라장터 사용 방법 공공기관 구매위탁을 위한 사용자 등록 사용자 등록 절차 수요기관 조달청
REST (REpresentational State Transfer)
CGI (Common Gateway Interface)
컴퓨터III-인터넷 발표 일시 : (수) 발표자 : 김광호
전자세금계산서 제도 설명회 전자세금계산서 표준과 인증 인사말.
Transmission Control Protocol (TCP)
WSDL 의공학과 3학년 김 기 흔.
NTAS 소개 (Network Transaction Application Server)
CGI (Common Gateway Interface)
User Datagram Protocol (UDP)
- RSS Reader 페이지 작성 컴퓨터공학실험( I )
Internet Computing KUT Youn-Hee Han
Internet & WWW Protocols
SIMPLE CALL Client 사용설명서
이번 시간에는... 지난 시간까지 제 1장을 통해 모바일의 정의와 개념, 시작과 발전, 기술과 서비스 및 그 전략을 살펴봄으로써 모바일 산업에 대한 전반적인 이해를 쌓았습니다. 이번시간 부터는 제 2장 모바일 기술을 통해, 무선 인터넷을 위한 컨텐츠 제작 기술, 네트워크.
Java RMI (Remote Method Invocation)
웹 스크래핑.
SQL Server Reporting Services Feature
Presentation transcript:

Beginning 자바 웹 서비스 웹 서비스 기술 강미란 Cyber-Infrastructure Research Lab Konkuk University

목차 HTTP WSDL – 웹 서비스를 사용하는 Client 측 개발자를 위해 웹 서비스를 어떻게 기술할 것인가 –WSDL 파일로부터 Java Class 생성

The HTTP Protocol (1) HTTP 는 TCP/IP 의 Application 계층에 속한다 HTTP client 는 TCP 방식으로 HTTP 서버와 통신한다 서버와 연결된 후, client 는 서버에 HTTP 요청 을 전송한다 POST /item HTTP/1.1 Host: Content-Type: text/plain Content-Length: 200

The HTTP Protocol (2) Client 로 부터 HTTP 요청을 받으면, 서버는 요청내 용을 처리하고 HTTP 응답을 client 에 보낸다 HTTP 응답은 요청에 대한 처리결과를 나타내는 상 태코드를 포함한다 200 OK Content-Type: text/plain Content-Length: 200 위 예제에서 상태코드는 200 이다 이는 HTTP 요청이 정상 처리되었음을 나타낸다 서버가 페이지를 표시했습니다 요청한 페이지가 없습니다 서버를 일시적으로 사용하실 수 없습니다.

The HTTP Protocol (3) HTTP 상태 코드 – –1 xx - 조건부 응답 Client 에게 계속 진행할 것을 요구하는 상태 코드입니다. –2 xx - 성공 서버가 요청을 성공적으로 처리했음을 의미합니다. –3 xx - 리디렉션 요청을 완료하려면 추가 조치가 필요합니다. 이 상태 코드는 일반적으로 리디렉션에 사용됩니다. 리디렉션 < 5 –4 xx - 클라이언트 오류 요청에 오류가 발생하여 서버가 이 요청을 처리하지 못할 가능성이 높음 을 나타냅니다. –5 xx - 서버 오류 이 상태 코드는 서버가 요청을 처리하려 할 때 내부 오류가 발생했음을 나타냅니다. 이 오류는 주로 요청이 아니라 서버와 관련이 있습니다.

SOAP HTTP Binding HTTP + XML = SOAP SOAP 요청은 HTTP POST 나 HTTP GET 방식으로 전송된다 The HTTP POST 는 두개 이상의 HTTP headers 를 정의한다 –Content-Type 와 Content-Length

Content-Type SOAP 요청 / 응답에서의 Content-Type header 는 메시지의 MIME (Multipurpose Internet Mail Extensions) 타입과 XML body 에서 사용 되는 character encoding (optional) 을 명시한 다 문법 Content-Type: MIMEType; charset=character-encoding 예제 POST /item HTTP/1.1 Content-Type: application/soap+xml; charset=utf-8

Content-Length SOAP 요청 / 응답에서의 Content-Length header 는 body 의 byte 수를 명시한다 문법 Content-Length: bytes 예제 POST /item HTTP/1.1 Content-Type: application/soap+xml; charset=utf-8 Content-Length: 250

SOAP 예제 StockQuote 예제에서, 서버에 전송되는 getQuote 서비스에 대한 요청 SOAP 요청은 “ticker ”parameter 를 전송하 고 서버로부터 그에 대한 Price 를 받게 된다 getQuote 서비스에 대한 네임스페이스는 " 이다

The SOAP request POST /InStock HTTP/1.1 Host: Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <soap:Envelope xmlns:soap=" “ soap:encodingStyle=" IBM

A SOAP response HTTP/ OK Content-Type: application/soap; charset=utf-8 Content-Length: nnn <soap:Envelope xmlns:soap=" “ soap:encodingStyle="

WSDL 의 필요성 (1) XML 문서는 데이터에 대한 의미를 포함한다 XML 형식의 SOAP 메시지도 해석 가능하다 12

WSDL 의 필요성 (2)  서비스 요청자 관점에서,  예제 : ◦ 사용자가 POSubmission 서비스를 호출하고자 한 다 ◦ 어떤 메시지를 보내야 할까 ?  SOAP 에 대해 이미 알고 있을 수는 있지만 이는 메시지 전 송 프로토콜일뿐, 실질적인 메시지에 대해서는 알지 못한 다  SOAP envelop 내부 body 에 포함할 데이터에 대해서 알지 못한다  SOAP Envelope 내 body 에 들어갈 내용에 대한 포맷에 대 해서도 알수 없다 13

WSDL 개요 WSDL –Web Services Description Language WSDL 은 XML 문서이다 WSDL 는 Web services 를 설명한다

WSDL 문서 구조 definition of types definition of a message.... definition of a port definition of a binding.... definition of a service....

WSDL 구조 추상적 정의와 구체적인 바인딩이 분리되어 기술 – 추상적 요소는 binding 요소를 통해 SOAP 과 같은 실제 프로토콜에 연결 이런 구조는 WSDL 의 재사용을 목적 – 한 WSDL 정의에서 다른 WSDL 정의를 사용할 수 있다. – 추상적 요소와 바인딩 요소가 다른 WSDL 요소와 매핑됨 추상적 정의 (abstract definition) –types : WSDL 안에서 쓰이는 데이터 타입 –message : 메소드 호출을 위한 메소드의 매개변수 –operation : 서비스 호출을 위한 메소드 용법 –portType : operation 의 집합 구체적인 바인딩 (concrete binding) –binding : 메소드 호출을 위한 전송 프로토콜 –port : 웹 서비스 위치 –service : port 의 집합

요소 WSDL 정의에서 최상위 요소 참조되는 요소를 구별하기 위해 네임스페이스 를 지정 전형적인 요소의 예

WSDL 접두사와 네임스페이스 Prefix 네임스페이스 URI 정의 wsdl sdl 표준 XML 스키마 soap12 sdl/soap12 SOAP1.2 네임스페이스 http sdl/http WSDL HTTP GET & POST 바인 딩에 대한 WSDL 네임스페이스 mime sdl/mime WSDL MIME 바인딩에 대한 WSDL 네임스페이스 xsd Schema XSD 에서 정의한 스키마 네임스페이스 xsi Schema-instance XSD 에서 정의한 인스턴스 네임스페이스 tns 사용자 정의현재 WSDL 에서 정의한 요소를 위한 네임스페이스

요소 요소는 웹 서비스에서 사용되는 메시지 에 대한 추상적인 요소를 표현한다. 실제 구현은 요소를 사용하여 정의 요소는 하나 이상의 자식 요소인 를 사용한다. 요소 – 에 정의한 데이터 타입을 참조 – 직접 XML 스키마의 데이터 타입을 참조할 수 있다. – 의 속성 element : XML 스키마를 이용하여 정의된 요소 (element) 를 참조 할 때 사용 type : XML 스키마를 이용하여 정의된 타입 (simple type, complex type) 을 참조할 때 사용

은 웹 서비스의 인터페이스를 정의 하는 부분이다. 은 하나 이상의 을 포 함한다. 은 한 개의 메소드를 정의한다. 의, 은 각각 메소 드의 매개변수와 반환값을 정의한다. – 에서 정의한 메시지를 매개변수와 반 환값으로 지정한다.

Operation 의 4 가지 형태 One-way – 오퍼레이션이 요청을 받을 수 있으나 응답을 보내지 않 는다. Request-Response – 오퍼레이션이 요청을 받고 응답을 보낸다. – 가장 많이 사용 Solicit-Response – 오퍼레이션이 요청을 보내고 응답을 기다린다. –CORBA 나 RMI 의 call-back 에 해당 Notification – 오퍼레이션이 요청을 보내고 응답을 기다리지 않는다.

Request-Response 의 예 Java 의 다음 메소드를 WSDL 로 표현 public String getQuote(String ticker); // Java

바인딩 (binding) 바인딩 : 인터페이스 정의와 실제 프로토콜을 매핑시키는 과정 요소를 사용하여 에서 정의한 operation 과 메시지를 실제 전송 프로토콜과 매핑시킨다. 요소가 포함하는 요소 – –, – 바인딩 프로토콜 –SOAP –HTTP –MIME

SOAP 바인딩의 예

SOAP 메시지 타입과 전송 프로토콜을 정의한다. SOAP 메시지 타입 –style 속성으로 정의 rpc 와 literal –rpc 메시지 타입 WSDL 에서 정의한 메소드 이름과 매개변수는 RPC 를 위한 SOAP 메시지 형태로 변환 –literal 메시지 타입 SOAP 메시지가 문서 타입으로 기본값 WSDL 에서 정의한 메시지를 XML 형태 그대로 SOAP 바디에 담 는다. 전송 프로토콜 –transport 속성으로 전송 프로토콜 지정 – 앞의 예제에서 전송 프로토콜로 HTTP 지정

style 과 soapAction 두 개의 속성이 있다. style 속성 – 의 style 속성과 동일 – 에 style 속성이 없으면 의 style 속성을 물려받음 soapAction 속성 –SOAP 메시지의 전송 프로토콜로 HTTP 가 사용될 때 HTTP 헤더값인 SOAPAction 헤더 값을 정하기 위해 사용 –HTTP 이외에 다른 프로토콜이 사용되면 이 속성을 사용할 수 없다.

WSDL 에서 정의한 내용이 어떻게 인코딩되어 SOAP 바디에 나타날지 정의한다. use 속성 encodingStyle 속성 <soap:body encodingStyle= “ encoding” encoding namespace= “ use=“encoded”/>

의 자식 요소인 는 웹 서비스가 제공되는 주소를 알려준다. 요소는 여러 개 정의가 가능 – 한 웹 서비스가 여러 포트를 통해서 접근이 가능하다. 각각의 는 에서 기술했던 바인드 형에 해당한다.

WSDL - definitions <definitions name=“BookStore” targetNamespace=“ store.wsdl” store.wsdl xmlns:tns=“ xmlns:xsd=“ xmlns:xsd1=“ xmlns:soap=“ xmlns:wsdl=“ schemas.xmlsoap. org/wsdl”> schemas.xmlsoap. org/wsdl

WSDL – message, portType

WSDL - binding

WSDL – service