Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Web Service / SOAP 배재대학교 컴퓨터공학과 멀티미디어정보공학연구실 이 상 조"— Presentation transcript:

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

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

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

4 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

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

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

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

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

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

10 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

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

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

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

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

15 3. SOAP <Header>의 사용 예 MIE
<?xml version=“1.0” encoding=“euc-kr”?> <env:Envelope xmlns:env=“ <env:Header> <auth:authentication xmlns:auth=“ env:actor=“ env:mustUnderstand=“1”> <userid>angel</userid> <password>abc12345</password> </auth:authentication> </env:Header> </env:Body> ~ </env:Body> </env:Envelope> MIE

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

17 3. SOAP Body의 사용 예 addk1(“기초에서 실무까지”, 29000); MIE
<?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“ xmlns:ns0=“ <env:Body> <ns0:addBook1> <String_1>기초에서 실무까지 XML</String_1> <int_2>29000</int_2> </ns0:addBook1> </env:Body> </env:Envelope> addk1(“기초에서 실무까지”, 29000); MIE

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

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

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

21 3. SOAP <Fault>의 사용 예 MIE
<?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“ <env:Body> <env:Fault> <faultcode>env:Server</faultcode> <faultstring> Internal Server Error (unexpected element type: expected={ actual={ </faultstring> </env:Fault> </env:Body> </env:Envelope> MIE

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

23 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

24 addBook2(arrayOfString_1);
3. SOAP 복합 타입(Compound Type) 표기법 배열과 구조체를 나타내기 위한 타입 id : 이 배열의 참조를 위해 사용하는 속성 xsi:type : 이 엘리먼트가 배열형임을 나타냄 enc:arrayType : 데이터 타입과 배열의 크기 지정 <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“ xmlns:xsd=“ xmlns:xsi=“ xmlns:enc=“ xmlns:ns0=“ env:encodingStyle=“ <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

25 3. SOAP 구조체 표기법 <?xml version=“1.0” encoding=“UTF-8”?> <env:Envelope xmlns:env=“ xmlns:xsd=“ xmlns:xsi=“ xmlns:enc=“ xmlns:ns0=“ xmlns:ns1=“ env:encodingStyle=“ <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


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

Similar presentations


Ads by Google