Data Mining Laboratory, Univ. of Seoul Software Engineering :Introduction to Web Services
Data Mining Laboratory, Univ. of Seoul 2 목차 프로그래밍 환경의 발전 Web Services 개요 Web Services 전망 Web Services 프로그래밍 예제
Data Mining Laboratory, Univ. of Seoul 3 What is Web Services? Component Technology Web Services Web Technology
Data Mining Laboratory, Univ. of Seoul 4 프로그래밍 환경 발전 (1/5) 정보시스템 패러다임의 변화 1970 년대 : 로컬 머신 환경 1980 년대 : 클라이언트 서버 환경 1990 년대 : 분산 컴퓨팅 환경 2000 년대 : 서비스 중심 아키텍처 환경 출처 : “ 공공정보화 웹 서비스 도입방안 연구 ”, 한국전산원 Service Oriented Distributed Client-Server Monolithic 1970’s 2000’s Increasing adaptability and Flexibility
Data Mining Laboratory, Univ. of Seoul 5 프로그래밍 환경 발전 (2/5) 로컬 머신 환경 컴퓨터 내부 자원만을 가지고 프로그래밍
Data Mining Laboratory, Univ. of Seoul 6 구조적 프로그래밍 함수를 호출하는 부분 호출된 함수가 실행되는 부분 인자로 전달 반환값으로 전달
Data Mining Laboratory, Univ. of Seoul 7 프로그래밍 발전 (3/5) 클라이언트 서버 환경 Client Program Server Side Client Side Server Program 서비스 요청 ( 인자 전달 ) 서비스 결과 ( 반환값 전달 ) Network
Data Mining Laboratory, Univ. of Seoul 8 프로그래밍 발전 (4/5) 분산컴퓨팅 환경 Network
Data Mining Laboratory, Univ. of Seoul 9 프로그래밍 발전 (5/5) 서비스 중심 아키텍처 (Service-Oriented Architecture, SOA) 서비스들의 모임과 이들의 연결성을 강조하는 추상적 개념 데이터 통합 어플리케이션 통합 서비스 지향 아키텍처를 구현한 기술들 RPC, CORBA, DCOM, RMI 등 웹 서비스 서비스 지향 아키텍쳐의 개념을 현실적으로 구현한 것
Data Mining Laboratory, Univ. of Seoul 10 Web Services 기초 다양한 OS, Programming languages 다양한 Hardware platforms
Data Mining Laboratory, Univ. of Seoul 11 The Web Today: The Human-centric Web
Data Mining Laboratory, Univ. of Seoul 12 Web services: The Application-centric Web
Data Mining Laboratory, Univ. of Seoul 13 Web services: The Application-centric Web Inventory application Inventory application Service Registry Service Registry Web server Service description Order status service 1 Discover services 2 Retrieve service description 3 Invoke remote service
Data Mining Laboratory, Univ. of Seoul 14 서비스 기반 아키텍처 기본 구성요소 서비스 제공자 (Service Provider) 서비스 사용자 (Service Consumer) 서비스 중개자 (Service Broker) 기본 오퍼레이션 서비스 등록 (Publish) 서비스 검색 (Find) 서비스 연결 (Bind) FIND Publish BIND Service Provider Service Consumer Service Broker
Data Mining Laboratory, Univ. of Seoul 15 Web Services 구조 웹 서비스 컴포넌트 Web Service Provider ( 웹 서비스 제공자 ) Web Service Broker ( 웹 서비스 중개자 ) Web Service Consumer ( 웹 서비스 사용자 ) FIND Publish (WSDL) BIND (SOAP) UDDI Web Service Provider Web Service Consumer
Data Mining Laboratory, Univ. of Seoul 16 Web Services 컴포넌트 Web Service Provider ( 웹 서비스 제공자 ) 웹 서비스를 운영하며 제공 UDDI 레지스트리에 사용 가능한 웹 서비스 등록 Web Service Broker ( 웹 서비스 중개자 ) 서비스 중개자는 제공자와 소비자 사이에서 제공자가 서비스를 출판하고 이를 소비자가 검색할 수 있도록 편의를 제공 Web Service Consumer ( 웹 서비스 사용자 ) 서비스 브로커를 통해 원하는 웹 서비스의 위치를 발견 및 사용 웹 서비스 제공자를 통해 웹 서비스와 연결
Data Mining Laboratory, Univ. of Seoul 17 Web Services 오퍼레이션 Publish ( 등록 ) 서비스 제공자는 서비스 브로커 (UDDI) 에 사용 가능한 웹 서비스 등록 Find ( 검색 ) 웹 서비스 사용자는 원하는 웹 서비스를 발견하기 위해 서비스 브로커 검색 Bind ( 연결 ) 웹 서비스 사용자는 원하는 웹 서비스에 접근 및 호출 하기 위해 웹 서비스 제공자와 협의 및 연결
Data Mining Laboratory, Univ. of Seoul 18 Web Services 핵심 기술
Data Mining Laboratory, Univ. of Seoul 19 SOAP 예제 XML-based protocol for exchanging information between computers RPCs transported via HTTP A simple weather service: Request
Data Mining Laboratory, Univ. of Seoul 20 SOAP 예제 A simple weather service A simple weather service: Request
Data Mining Laboratory, Univ. of Seoul 21 WSDL 예제 Describe the public interface for the weather service
Data Mining Laboratory, Univ. of Seoul 22 WSDL 예제 C:\\Java clients.DynamicInvoker getWeather 10016http://localhost:8080/wsdl/WeatherService.wsdl 실행결과 Reading WS 이 Document from ‘ 이 /Weatherservice.ws 이 ’ Executing operation getWeather Result: Temperature: 65 Done !
Data Mining Laboratory, Univ. of Seoul 23 웹서비스 공개 예 Google 자사의 검색서비스를 타사이트 또는 어플리케이션에 활용할 수 있도록 웹서비스 API 를 무료로 제공 eBay 자사의 경매 데이터베이스를 통해 비즈니스하고자 하는 파트너에게 웹서비스 API 를 제공 Amazon 자사가 보유하고 있는 서적 DB, 카탈로그 검색서비스, 구매업무 등을 웹서비스로 외부에 공개 15% 의 로얄티 지불
Data Mining Laboratory, Univ. of Seoul 24 Web Services 플랫폼
Data Mining Laboratory, Univ. of Seoul 25 웹 서비스와 유비쿼터스 (1/3) 유비쿼터스 컴퓨팅 다양한 디바이스들이 실세계의 사물 및 환경과 상호연결하여 언제, 어디서나 이용할 수 있는 컴퓨팅 환경 제공 유비쿼터스 컴퓨팅 핵심 기술 하드웨어 : 특히, Embedded System), 모바일 기술 네트워크 : IPv6 소프트웨어 : 웹 기술, 소프트웨어 기술 연구 취약 상태 웹 서비스 기존의 분산객체 미들웨어 기술들의 한계 ( 통합성 ) 를 극복 플랫폼 독립적인 애플리케이션 통합을 지원 유비쿼터스 컴퓨팅의 소프트웨어 통합 기반구조의 핵심
Data Mining Laboratory, Univ. of Seoul 26 웹 서비스와 유비쿼터스 (2/3) 특징 다양한 장치 ( 플랫폼 ) 들과의 네트워크 연결 임베디드 OS + 미들웨어 모바일, 유선 랜 네트워크 P2P 분산 컴퓨팅
Data Mining Laboratory, Univ. of Seoul 27 웹 서비스와 유비쿼터스 (3/3) 유비쿼터스와 웹 통합을 위한 분산 컴퓨팅 표준 유비쿼터스 분산 컴퓨팅 + 웹 서비스 분산 컴퓨팅 유비쿼터스 웹 서비스 컴퓨팅 유비쿼터스와 웹 환경을 위한 통합된 P2P 분산컴퓨팅 INTERNET Home Office
Data Mining Laboratory, Univ. of Seoul 28 웹 서비스와 그리드 (1/2) 그리드 컴퓨팅 지리적으로 분산된 컴퓨터 시스템, 대용량 저장 장치 등의 자원들을 초고속 네트워크에 연결해 가상적 초대형 컴퓨팅 기능 제공 컴퓨팅 파워, 컨텐츠 관리, 애플리케이션, 스토리지 등의 공유 및 분산 협업 서비스 제공 OGSA (Open Grid Service Architecture) 표준 그리드 환경에서 소프트웨어 통합을 위해 웹 서비스를 인프라 자원 통합 기술로 사용
Data Mining Laboratory, Univ. of Seoul 29 웹 서비스와 그리드 (2/2) 웹 서비스 형태로 변화하는 그리드 서비스 Web Service Resource Framework
Data Mining Laboratory, Univ. of Seoul 30 Developing web service Service request perspective Step 1: Find services via UDDI Step 2: Retrieve service description file Step 3: Create SOAP client Step 4: Invoke remote service
Data Mining Laboratory, Univ. of Seoul 31 Developing web service Service provider perspective Step 1: Create core functionality Step 2: Create a SOAP service wrapper Step 3: Create WSDL service description Step 4: Deploy service Step 5: Register new service via UDDI
Data Mining Laboratory, Univ. of Seoul 32 피보나치 웹 서비스 소개 실습 웹 서비스 정의 입력 값에 따른 피보나치 수열 [Fibonacci sequence] 결과값을 전달하는 서비스 웹 서비스 기술 사용 SOAP : 피보나치 수열 서비스 호출과 결과 수신을 위한 방법으로 사용 WSDL : 피보나치 수열 서비스 의 인터페이스 제공 ( 서비스 호출 방식 제공 ) 방법으로 사용 UDDI : 피보나치 수열 서비스 제공자를 검색하기 위한 방법으로 사용
Data Mining Laboratory, Univ. of Seoul 33 피보나치수열 [Fibonacci sequence] 실습 웹 서비스 정의 제 1 항과 제 2 항을 1 로 하고, 제 3 항부터는 순차적으로 앞의 두 항을 취하는 수열 특정 항의 피보나치 수를 구한다 예시 입력 값 : 5 일 경우 결과 값 : 1, 1, 2, 3, 5 => 5 가 반환
Data Mining Laboratory, Univ. of Seoul 34 서비스 인터페이스 정의 피보나치 수열의 합을 구하는 웹 서비스 Parameter : int ( 피보나치 수열의 범위 ) Return : int ( 피보나치 수 )
Data Mining Laboratory, Univ. of Seoul 35 서비스 시나리오 흐름도 Internet Web Server Fibonacci Web Service other Web Services SOAP Message 개인 기업
Data Mining Laboratory, Univ. of Seoul 36 서비스 아키텍처 Client Program UDDI SDK 라이브러리.NET BCL 라이브러리 UDDI Server Service API HTTP 프로토콜 SOAP 프로토콜 IIS HTTP Server ASP.NET Runtime Fibonacci Service
Data Mining Laboratory, Univ. of Seoul 웹 서비스 어플리케이션 구축
Data Mining Laboratory, Univ. of Seoul 38 실습 웹 서비스 어플리케이션 구축 프로세스 피보나치 수열 서비스 서비스 구현 피보나치 수열 알고리즘 서비스 구현 피보나치 수열 서비스 등록 (publish) Microsoft UDDI 서버에 서비스 등록 클라이언트 프로그램 개발 UDDI SDK 를 이용한 UDDI 서비스 검색 VS.NET 을 사용하여 WSDL 내용에 대한 Proxy 코드 생성.NET BCL 라이브러리를 이용한 서비스 호출 부분 개발
Data Mining Laboratory, Univ. of Seoul 39 실습 웹 서비스 구현 프로젝트 생성 Web Service 를 만들기 위한 프로젝트를 생성 프로젝트 형식의 Visual C# 프로젝트 선택 템플릿의 ASP.NET 웹 서비스 선택 “ 로 작성
Data Mining Laboratory, Univ. of Seoul 40 피보나치 수열 서비스 구현
Data Mining Laboratory, Univ. of Seoul 41 피보나치 수열 서비스 컴파일 및 확인 Compilation 결과 실행 테스트
Data Mining Laboratory, Univ. of Seoul 42 피보나치 수열 서비스 실행 확인 실행 결과 : XML 기반의 반환 값 출력
Data Mining Laboratory, Univ. of Seoul UDDI SDK 를 사용한 웹 서비스 등록
Data Mining Laboratory, Univ. of Seoul 44 UDDI 연결 UddiConnection 객체를 통해 UDDI 의 각 접근 점 (Access Point) 들과 연결 Access Points Private UDDI Server InquireURLhttp://servername/uddi/inquire.asmx PublishURLhttp://servername/uddi/publish.asmx ExtensionURLhttp://servername/uddi/extension.asmx Business UDDI Server InquireURLhttp://uddi.microsoft.com/inquire PublishURLhttp://uddi.microsoft.com/publish ExtensionURLhttp://uddi.microsoft.com/extension.asmx Test UDDI Server InquireURLhttp://test.uddi.microsoft.com/inquire PublishURLhttp://test.uddi.microsoft.com/publish ExtensionURLhttp://test.uddi.microsoft.com/extension.asmx
Data Mining Laboratory, Univ. of Seoul 45 인증처리 UDDIAuthentication UDDI Server 를 통한 단일 기반 인증 사용 시
Data Mining Laboratory, Univ. of Seoul 46 businessEntity 구조 정의 및 등록 businessEntity 객체 UDDI 의 businessEntity 구조를 정의 웹서비스를 제공하는 업체 또는 개체에 대한 정보 SaveBusiness 객체 businessEntity 객체정보를 UDDI 에 등록 실제 UDDI 에 등록되는 businessEntity 의 XML 정보
Data Mining Laboratory, Univ. of Seoul 47 businessService 구조 정의 및 등록 businessService 객체 UDDI 의 businessService 구조를 정의 비즈니스가 제공하는 세부 서비스에 대한 설명 정보 SaveService 객체 businessService 객체정보를 UDDI 에 등록 UDDI 에 등록되는 BusinessService 객체의 XML 정보
Data Mining Laboratory, Univ. of Seoul 48 tModel 구조 정의 및 등록 TModel 객체 UDDI 의 tModel 구조를 정의 웹서비스에서 사용되는 기술표준 ( 통신프로토콜, 보안 매커니즘 등 ) 및 기술정보에 대한 참조리스트를 정의 SaveTModel 객체 TModel 객체 정보를 UDDI 에 등록
Data Mining Laboratory, Univ. of Seoul 49 UDDI 에 등록되는 TModel 객체의 XML 정보
Data Mining Laboratory, Univ. of Seoul 50 UDDI 서버의 등록 결과 Private UDDI Server 의 웹 서비스 게시 관리자 화면 공급자 정보와 tModel 의 등록정보를 확인할 수 있다.
Data Mining Laboratory, Univ. of Seoul 웹 서비스 클라이언트 구현
Data Mining Laboratory, Univ. of Seoul 52 피보나치 웹 서비스 클라이언트 구현 프로젝트 형식의 Visual C# 프로젝트를선택 템플릿의 Windows 응용 프로그램 선택
Data Mining Laboratory, Univ. of Seoul 53 Web Service 의 웹 참조 추가 하기 프로젝트 -> 웹 참조 추가 를 선택 URL 창에 “ 프로젝트명 /asmx 파일이름 ” 의 형태로 입력한다.( 예 : ) Service1 에 대한 설명 확인 후 참조 추가 선택
Data Mining Laboratory, Univ. of Seoul 54 웹 참조 추가 확인 하기 클래스 View 에서 선택한 웹서비스에서 제공해주는 클래스와 메소드를 확인 가능 솔루션 탐색기 -> Web references 에 가보면 localhost 가 추가 되어 있음을 확인
Data Mining Laboratory, Univ. of Seoul 55 Window Form 작성 해당 Component 의 name attribute 를 정의 txtInput btnCal txtResult
Data Mining Laboratory, Univ. of Seoul 56 Source 웹 참조 추가를 한 후 웹 서비스로 제공해 주는 객체는 일반 객체를 생성하는 방 법과 동일한 방법으로 생성
Data Mining Laboratory, Univ. of Seoul 57 결과 화면
Data Mining Laboratory, Univ. of Seoul The End