Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조

Slides:



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

Beginning 자바 웹 서비스 웹 서비스 기술 강미란 Cyber-Infrastructure Research Lab Konkuk University.
Universal Plug And Play 를 이용한 홈 네트워크의 구현 게임 & 멀티미디어학과 전영균.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Unlocking Android 인텐트 (Intent) 2 Unlocking Android 인텐트 클래스 활용 3.
Ubiquitous Service 표준기술동향 (금) 넷젠테크㈜
웹 멀티미디어 컨텐츠 검색 방법 신은정.
김 형 진 전북대학교 IT응용시스템공학과 웹 서비스 개념과 기술 Chapter 김 형 진 전북대학교 IT응용시스템공학과.
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
XSD (XML Schema Definition)
Web Service XML Security
Web Server (JSP, Servlet 지원)
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
Python Bottle Web Framework
Web Service & Base Technologies
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
10장. 웹 서비스 공격 (Attacking Web Service)
Content Introduction XML Protocol What is an RPC? SOAP의 정의 SOAP의 장점
Overview : XML과 Database
델파이7 웹서비스 클라이언트 델파이7에서 C#으로 작성한 웹서비스 함수를 사용하기 위한 간략한 방법을 정리해 보았습니다.
10장. 에러 처리 제10장.
Introduction to Web Service Computing
웹 서비스 (Web Services).
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
무선 인터넷 서비스 유비쿼터스 환경 유비쿼터스 적용
UDDI [universal description, discovery, and integration]
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
Kasimov C언어 세미나 1st.
DB2.
1. 시멘틱웹(Semantic Web) Preview 항목 상세내역 개요 기출여부 관련KeyWord 추천사이트
Java Programming Language (4)
RFID/USN 활용을 통한 물류경쟁력 제고 방안
Web Services 웹서비스 도입 및 확산에 따른 기대효과 1.
멀티미디어 음악 교육 어플리케이션 시스템 개발
통합 유비쿼터스 서비스 환경 구현을 위한 RFID/USN과 웹서비스의 연계
강의 보조자료 & Homework #2 - 로그인과 이미지 카운터 만들기 -
Part 08 신 경향 기술 및 기타 1. IPTV 2. UDDI 3. 지그비 4. WIPI 5. HomeNetwork
X M L 컴퓨터공학과 윤 홍 국.
WSDL 전산게임학과 김헌철.
웹 서비스 (Web Services).
XML.NET XML 검색, 수정 프로그램 작성 2010 컴퓨터공학실험(Ⅰ)
SOAP 클라이언트 개발 Guide
Network Project 교수명 : 임효택 교수님 조 원 : 김 운기 김 민주
9장 JSP페이지의 에러처리 이장에서 배울 내용 : JSP페이지에서 에러를 처리하는 방법에 대해 학습해본다. 에러페이지를 사용한 에러처리의 문제점을 살펴보고, 현재 JSP2.0에서 권장하는 에러 처리 형태인 에러코드별 에러처리를 하는 방법에 대해 학습한다.
Network Security WireShark를 활용한 프로토콜 분석 II.
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
REST (REpresentational State Transfer)
컴퓨터III-인터넷 발표 일시 : (수) 발표자 : 김광호
전자세금계산서 제도 설명회 전자세금계산서 표준과 인증 인사말.
데이터 타입 이해 1. 컴플렉스 타입 2. 컴플렉스 타입의 확장 및 제한.
Web RSS 서비스 구축 조이름 : A 도상훈 김진범 정도영 공정호.
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
WSDL 의공학과 3학년 김 기 흔.
User Datagram Protocol (UDP)
- RSS Reader 페이지 작성 컴퓨터공학실험( I )
컴퓨터공학실습(I) 3주 인공지능연구실.
Introduction to Semantic Web 시맨틱 웹의 개요
XML-II (eXtensible Markup Language) DTD/DOM
C 프로그래밍 기초.
Ubiquitous Networks RFID & USN -
유비쿼터스 센서 네트워크.
SIMPLE CALL Client 사용설명서
이번 시간에는... 지난 시간까지 제 1장을 통해 모바일의 정의와 개념, 시작과 발전, 기술과 서비스 및 그 전략을 살펴봄으로써 모바일 산업에 대한 전반적인 이해를 쌓았습니다. 이번시간 부터는 제 2장 모바일 기술을 통해, 무선 인터넷을 위한 컨텐츠 제작 기술, 네트워크.
교육방법 및 평가방법 안내.
자바 5.0 프로그래밍.
JAXP, WEB Service, SOAP 김만수
웹 스크래핑.
자바 가상 머신 프로그래밍 Chapter 3. 메소드 작성하기 Pslab 오민경.
Presentation transcript:

Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조 iccaruss2@hotmail.com iccaruss@pcu.ac.kr

목차 USN 응용을 위한 디렉토리 서비스 기술 연구 소개 Web Service SOAP MIE

1. USN 응용을 위한 디렉토리 서비스 기술 연구 소개 과제명 USN 응용을 위한 디렉토리 서비스 기술 연구 연구 기간 2007. 3. 15 ~ 10. 31 연구 목표 센서 정보를 표준화 된 형태로 기술하기 위한 정보 표준 및 USN 센서 서비스에 대한 디렉토리 서비스 프로토콜 응용 표준 개발 연구 내용 XML 기반의 센서 정보 서비스 서술 언어 표준화 연구 센서 정보서비스에 대한 UDDI, X.500, LDAP 등을 기반한 디렉토리 서비스 구조 모델 개발 USN 응용 서비스를 위한 디렉토리 서비스의 프로토타입 구현 MIE

1. USN 응용을 위한 디렉토리 서비스 기술 연구 소개 USN (Ubiquitous Sensor Network) 필요한 모든 곳에 통신기능이 있는 센서를 부탁하고 이를 통해 사물의 인식 정보를 기본으로 주변의 환경정보(온도, 습도, 오염정보, 균열정보 등)까지 탐지해, 이를 실시간으로 네트워크에 연결해 정보를 관리하는 것 RFID Field Reader USN 응용서비스 Wireless Acccess Network Sensor Field Sink Node USN Service Flatform Sensor Field USN 응용서비스 Sink Node Gateway Wired Acccess Network USN 응용서비스 Sensor Field Sink Node MIE

2. Web Service 분산 컴퓨팅 분산 컴퓨팅의 문제점 컴퓨터 하드웨어 기술의 발전으로 컴퓨터의 성능이 강력해짐 하드웨어 가격이 저렴해짐 고비용의 중앙 집중형 컴퓨팅 환경에서 분산 컴퓨팅 환경으로 변모 분산 컴퓨팅의 문제점 연결 지향의 RPC(Remote Procedure Call) 프로토콜을 사용 연결 도중의 서버의 갑작스런 연결 끊김 비 활동중인 클라이언트로 인한 서버의 자원 낭비 연결 지향의 프로토콜은 방화벽을 통과하지 못함 프로토콜의 구조가 달라서 사용하기 힘들고 복잡함 플랫폼에 독립적이지 못하여 통신이 어려움 MIE

2. Web Service Web Service의 정의 IBM Microsoft SUN 표준화된 XML 메시징을 통하여 접근 가능한 네트워크 명령들의 집합을 기술한 인터페이스 Microsoft 다른 응용프로그램에 데이터와 서비스를 제공하는 응용프로그램 로직의 단위이며 표준 인터넷 프로토콜을 통하여 접근 가능하도록 프로그래밍된 응용프로그램 로직 SUN 사용자의 요청에 솔루션을 제공하기 위하여 임의로 찾아서 조합될 수 있는 소프트웨어 컴포넌트 MIE

유·무 웹 상에서 플랫폼과, 구현언어에 독립적인 컴포넌트 기반의 분산 컴퓨팅 서비스 2. Web Service 웹 서비스 유·무 웹 상에서 플랫폼과, 구현언어에 독립적인 컴포넌트 기반의 분산 컴퓨팅 서비스 웹 서비스의 특징 웹 서비스 시스템과 클라이언트는 지속적인 연결을 가지지 않음 사용하는 프로토콜은 XML 기반의 SOAP 기존의 다른 프로토콜로 구현된 분산 컴포넌트 환경을 통합 가능 구현 언어와 플랫폼에 독립적 MIE

2. Web Service 웹 서비스 기본 모델 웹 서비스 Service Broker Service Requestor 서비스의 등록 서비스의 발견 Service Requestor Service Provider 서비스의 호출 MIE

2. Web Service 역할별 행위에 대한 규약 XML (Extensible Markup Language) SOAP (Simple Object Access Protocol) 웹 서비스 메시지 규약 SOAP 1.2 권고안 발표, W3C, 2007.4.27 WSDL (Web Service Description Language) 웹 서비스 시스템에서 제공하는 기능들을 외부에 알려주는 인터페이스 언어 WSDL 1.1 권고안 발표, W3C, 2001.3.15 UDDI (Universal Description, Discovery, Integration) 웹 서비스에 대한 정보의 등록과 검색 UDDI 3.02, Technical Committee Draft, 2004.10.19 MIE

3. SOAP SOAP (Simple Object Access Protocol) SOAP의 장점 XML 언어를 이용한 분산 환경에서의 정보 교환을 위한 프로토콜 MS에서 제안, W3C에서 표준화 SOAP 1.1 권고안 발표 (2007년 5월 8일) SOAP 1.2 권고안 발표 (2007년 4월 27일) 문서의 교환에 사용 원격 함수를 호출하기 위해 사용 SOAP의 장점 경량(lightweight)의 프로토콜 (소형 가전 제품에도 적용 가능) 텍스트 기반의 XML을 사용하기 때문에 구현이 쉬움 인터넷 표준 프로토콜인 HTTP 프로토콜로 전송 방화벽을 쉽게 통과 MIE

3. SOAP SOAP의 구성 요소 봉투(Envelope) : 필수, <Envelope> 엘리먼트 사용 헤더(Header) : 선택, <Header> 엘리먼트 사용 바디(Body) : 필수, <Body> 엘리먼트 사용 봉투(Envelope) 헤더 (Header) 선택 옵션 메시지 내용에 대한 추가적인 기능을 기술 본문 (Body) 필수 메시지 내용을 기술 MIE

3. SOAP SOAP 메시지 구조의 실제 예 MIE <?xml version=“1.0” encoding=-kr”?> <Envelope> <!--Header 부분 (생략 가능) --> <Header> ~ <Header> <!--Body 부분(필수) --> <Body> ~ </Body> </Envelpoe> MIE

3. SOAP <Envelope> SOAP 메시지의 루트 엘리먼트 우편으로 편지를 보낼 때 사용하는 편지봉투의 역할 자식 엘리먼트로 <Header>와 <Body> 가 옴 네임 스페이스 SOAP은 XML문서이기 때문에 다른 마크업 언어를 포함 가능 주로 <Body>의 내용에 다른 마크업 언어가 옴 구별을 위한 네임스페이스가 필요 http://schemas.xmlsoap.org/soap/envelope/ 1.1버젼 http://schemas.xmlsoap.org/2001/12/soap-envelope 1.2버젼 MIE

3. SOAP <Header> 엘리먼트 클라이언트의 인증, 트랜잭션 관리 기능 등의 추가를 위해 사용 <Header> 엘리먼트의 자식 엘리먼트를 Header Entry라고 함 Header Entry는 QName을 사용하여 서술 Header Entry는 최종 수신자에서 처리될 수도 있지만, 중개자(Actor)에서도 처리될 수 있음 Header Entry의 루트 엘리먼트에는 두 가지 속성이 있음 속성명 설명 속성값 Actor 중개자(Actor) 중 누가 Header Entry를 처리할 것인가를 지정 Actor URI mustUnderstand 반드시 처리해야 됨을 지정 0 또는 1 MIE

3. SOAP <Header>의 사용 예 MIE <?xml version=“1.0” encoding=“euc-kr”?> <env:Envelope xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/”> <env:Header> <auth:authentication xmlns:auth=“http://www.mincheol.com/auth” env:actor=“http:////www.mincheol.com/auth” env:mustUnderstand=“1”> <userid>angel</userid> <password>abc12345</password> </auth:authentication> </env:Header> </env:Body> ~ </env:Body> </env:Envelope> MIE

3. SOAP <Body> 최종 수신자가 수신해야 하는 정보를 담고 있음 정보 원격 프로시저 호출 요청 원격 프로시저의 실행 결과 실행 시 발생한 에러 <Body>가 담고 있는 정보 역시 XML로 기술 자식 엘리먼트를 Body Entry라 지칭 Body Entry는 반드시 최종 수신자가 정의한 원격 프로시저에 대한 네임스페이스의 QName을 사용해야 함 MIE

3. SOAP Body의 사용 예 addk1(“기초에서 실무까지”, 29000); MIE <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:ns0=“http:///localhost:8080/book/webservice/wsdl/webservice”> <env:Body> <ns0:addBook1> <String_1>기초에서 실무까지 XML</String_1> <int_2>29000</int_2> </ns0:addBook1> </env:Body> </env:Envelope> addk1(“기초에서 실무까지”, 29000); MIE

3. SOAP Body Entry <Fault> 발신자가 보낸 SOAP 메시지는 처리 도중 오류가 발생할 수 있음 <Fault>는 SOAP 메시지를 처리하는 도중 발생한 오류 정보를 발신자로 보내는 응답 SOAP 메시지 내에 기술하기 위해 사용 <Fault>는 응답 SOAP메시지 안에만 올 수 있음 하나의 SOAP 메시지에 여러 개의 <Fault>가 올 수 없음 <Fault>의 자식 엘리먼트 <faultcode> <faultstring> <faultactor> <detail> MIE

3. SOAP <Fault>의 자식 엘리먼트 #1 <faultcode> 오류의 종류를 발신자에게 알려주는 오류 코드 오류 코드는 반드시 http://schemas.xml.org/soap/envelope/ 의 네임스페이스 접두사와 같이 사용해야 함 오류 코드 설명 VersionMismatch 요청 SOAP 메시지의 <Envelope>의 네임스페이스 명이 잘못되었을 때 MustUnderstand mustUnderstand 속성값이 1인 Header Entry를 중개자(액터) 또는 최종 수신자가 처리하지 못했을 경우 Client 클라이언트(발신자)의 요청 SOAP 메시지 정보가 불충분하여 처리할 수 없는 경우 Server 서버 측(수신자)에서 SOAP 메시지를 처리하는 도중 오류가 발생한 경우 MIE

3. SOAP <Fault>의 자식 엘리먼트 #2 <faultstring> 오류에 대한 간략한 설명을 기술 생략 가능 클라이언트 응용프로그램의 대화 상자에 표시할 오류에 대한 정보로 활용 <faultactor> 어디에서 오류가 발생했는지를 나타냄 중개자(액터)에서 오류가 발생했다면 꼭 기술해야 함 <faultactor>가 생략되면 최종 수신자에서 처리 도중 발생한 오류라 가정 <detail> 추가적인 오류 정보를 나태내고 싶을때 ex)오류가 난 소스코드 MIE

3. SOAP <Fault>의 사용 예 MIE <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“http://schema.xmlsoap.org/soap/envelope/”> <env:Body> <env:Fault> <faultcode>env:Server</faultcode> <faultstring> Internal Server Error (unexpected element type: expected={http:/www.w3.org/2001/XMLSchema}]string, actual={http://www.w3.org/2001/XMLSchema}string2) </faultstring> </env:Fault> </env:Body> </env:Envelope> MIE

3. SOAP SOAP 인코딩 encodingStyle 발신자가 SOAP 메시지를 생성할 때 <Envelope> 엘리먼트의 encodingStyle 속성값으로 어떤 표기법을 이용해서 데이터형을 지정햇는가를 명시 <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/” env:encodingStyle=“데이터형 표기법”> ~ </env:Envelope> MIE

3. SOAP 단순 타입(Simple Type) 표기법 XML Schema에서 지원하는 기본 데이터 형 문법 <엘리먼트 xsi:type=“xsd:데이터형”>데이터</엘리먼트> 자바 데이터형 XML Schema 단순 타입(Simple Type) boolean xsd:boolean byte xsd:byte short xsd:short int xsd:int long xsd:long float xsd:float double xsd:double String xsd:string MIE

addBook2(arrayOfString_1); 3. SOAP 복합 타입(Compound Type) 표기법 배열과 구조체를 나타내기 위한 타입 id : 이 배열의 참조를 위해 사용하는 속성 xsi:type : 이 엘리먼트가 배열형임을 나타냄 enc:arrayType : 데이터 타입과 배열의 크기 지정 <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:enc=“http://schemas.xmlsoap.org/soap/encoding/” xmlns:ns0=“http://localhost:8080/wsdl/webservice” env:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”> <env:Body> <ns0:addBook2> <arrayOfString_1 href=“#bookarray”/> </ns0:addBook2> <array id=“bookarray” xsi:type=“enc:Array” enc:arrayType=“xsd:string[3]”> <item>book1</item> <item>book2</item> <item>book3</item> </array> </env:Body> </env:Envelope> addBook2(arrayOfString_1); MIE

3. SOAP 구조체 표기법 <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:enc=“http://schemas.xmlsoap.org/soap/encoding/” xmlns:ns0=“http://localhost:8080/wsdl/webservice” xmlns:ns1=“http://localhost:8080/type/webservice” env:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”> <env:Body> <ns0:addBook3> <Book_1 href=#ID1”/> </ns0:addBook3> <book id=“ID1” xsi:type=“ns1:Book”> <title xsi:type=“xsd:string”>book1</title> <price xsi:type=“xsd:int”>29000</price> </book> </env:Body> </env:Envelope> MIE