Introduction to Web Service Computing Internet Computing Laboratory @ KUT Youn-Hee Han
Real World 언어가 다르다 OS System 이 다르다 사상 및 정치 체계가 다르다 C, C++, Java, C#, VB, COBOL, Perl, … OS System 이 다르다 Windows, Solaris, AIX, HP_UX, Linux 사상 및 정치 체계가 다르다 .Net 계열, Java 계열 Web Service Computing
다름에 대한 대처 방법 1 방법 2 모든 언어를 익힌다 - 현실적으로 불가능 하다. 모든 언어를 익힌다 - 현실적으로 불가능 하다. 모든 체계에 익숙해 진다 – 역시 불가능하다. 모든 사상을 수용한다 – 사상 자체가 서로 상반되므로 분리가 불가피하다. 사상 통일 – 세계 정복 방법 2 동일한 언어 사용 - Java, XML, …(영어, 에스페란토어, …) 하나의 체계를 사용 – java(VM), .Net(CLR), … 다른 사상을 허용하되 통신은 표준적인 규약에 따른다. – HTTP, SOAP CLR: Common Language Runtime Web Service Computing
DEVELOPER EUTOPIA 새로운 언어는 배울 필요가 없고 표준적인 통신 방법만을 배우면 다른 모듈, 제품, 서비스와 결합이 가능하다. 로직은 자신이 알고 있는 언어로 자신 있게, 편하게 개발하고 무슨 기법/언어를 사용했는지와 관계 없이 대화가 가능하게 된다. 가능하면 통신 방법도 알 필요가 없음 더욱 좋겠다. Web Service Computing
Increasing adaptability and Flexibility 시스템 구현 (프로그래밍) 발전 과정 정보시스템 패러다임의 변화 1970년대: 로컬 머신 환경 1980년대: 클라이언트 서버 환경 1990년대: 분산 컴퓨팅 환경 2000년대: 서비스 중심 아키텍처 환경 Service Oriented Distributed Client-Server Monolithic 1970’s 2000’s Increasing adaptability and Flexibility 출처: “공공정보화 웹 서비스 도입방안 연구”, 한국전산원 Web Service Computing
시스템 구현 (프로그래밍) 발전 과정 Monolithic: 로컬 머신 환경 구조적&절차적 프로그래밍 컴퓨터 내부 자원만을 가지고 프로그래밍 구조적&절차적 프로그래밍 데이터와 프로시져가 분리가 안됨 함수를 호출하는 부분 호출된 함수가 실행되는 부분 인자로 전달 반환값으로 전달 Web Service Computing
시스템 구현 (프로그래밍) 발전 과정 Client Program Server Program Client Side 클라이언트 서버 (Client-Server) 환경 Client Program Server Program 서비스 요청 (인자 전달) Network 서비스 결과 (반환값 전달) Client Side Server Side Web Service Computing
Network 시스템 구현 (프로그래밍) 발전 과정 분산컴퓨팅 (Distributed Computing) 환경 System Transparency Network Web Service Computing
시스템 구현 (프로그래밍) 발전 과정 분산컴퓨팅 (Distributed Computing) 환경 Grid System PC Grid System based on P2P computing Web Service Computing
Welcome to EUTOPIA - SOA Service work done by one person or group that benefits another 기술이 아닌 가치를 창출하는 설계 Loose-Coupling(맞춤(tightly coupled)이 아닌) Architecture the principles of design and construction and ornamentation of fine buildings 여러 가지 요소를 유기적으로 결합하는 방법 Service Oriented Architecture (SOA) is an evolution of distributed computing and modular programming. wikipedia Web Service Computing
SOA의 요소 Service Broker Service Consumer Service Provider Find Publish Service Contract Service Consumer Service Provider Interact Client Server Web Service Computing
집 사고 팔기 over SOA 집 사고 팔기 without Service Broker (파는사람)집에 대한 사양/가격/위치 등에 대한 정보와 함께 웹이나 집앞에 광고를 낸다. (사는 사람)서핑을 하거나 아는 사람 소개 등으로 집을 찾는다. (사는 사람)직접 방문하여 집을 확인하고 주인과 흥정을 한다. (성사된 경우)수수료는 없다. 집 사고 팔기 with Service Broker (파는사람)집에 대한 사양/가격/위치 등에 대한 정보와 함께 부동산에 의뢰 (부동산 중개인)의뢰를 접수하고 구매광고를 웹이나 유리에 붙인다. (사는 사람)부동산을 방문하여 원하는 사양의 집을 찾는다. (부동산 중개인)집을 사러온 사람이 비슷한 사양을 찾을 때, 등록된 집이 있으면 소개한다. (성사된 경우)파는 사람과 사는 사람은 부동산 중개인에게 수수료를 낸다. Web Service Computing
SOA의 구현 SOA의 실현 방법 웹 서비스 컴퓨팅 (Web-Service Computing) Internet – WEB 검증되고 널리 분포되어 있고 표준적이며 많은 분야에서 활용되고 있다 프로토콜/언어 HTTP/SMTP XML 초기 SOA의 성과 – CORBA, DCOM, DCE, RMI, … 초기 SOA의 한계: 언어/플랫폼과 긴밀한 연결 (Tightly Coupled) Web Service Computing
Web-Service Computing - Definition Web Service Computing (A web-based distributed computing for ‘service’ sharing) Browser-based Simple Access Traditional Client/Server Model Application-based Interaction (XML) Distributed Computing (CORBA, JAVA RMI, DCOM) Agent-based + Semantic-Web Selling “Service” on the net Web-based Computing Service-based Computing Web Service Computing 웹을 구성하는 표준 프로토콜인 HTTP/TCP(UDP)/IP 를 기반으로 구조화된 데이터 (Structured Data) 전달이 가능한 XML을 활용하여 네트워크로 접근 가능한 연산, 어플리케이션, 서비스 컴포넌트들을 활용하는 Distributed Computing 기술 Web Service Computing
Features Web Service Computing 의 특징 Use standardized Internet protocols 표준화된 웹 기반 인터넷 프로토콜(HTTP, TCP/IP)을 통하여 구현 XML-based XML을 통하여 모든 Communication 이 이루어짐 XML Web Service Computing
Features Web Service Computing 의 특징 Vendor, Platform, Language에 독립적 다양한 OS, Programming languages 다양한 Hardware platforms Web Service Computing
Features Web Service Computing 의 특징 Component-based 하나의 웹 서비스는 대규모 웹 서비스의 일부 기능을 담당 Use directory service 웹 서비스는 디렉토리 (Directory)에 공시되고, 클라이언트는 디렉토리를 통하여 웹 서비스 검색 A gazetteer server provides services to convert a place name into a geographic location; A route server provides services to get the road route between two geographic locations; A map server provides services to get a base map on which the route is displayed; An overlay server provides a service to overlay the route on the map; and A display route server makes use of the services above to convert a road route request into a map displaying the route. 개발이 용이하고 시간을 단축시킴 Web Service Computing
How to work? Web Service Computing 의 구성 요소 Web Service Provider (웹 서비스 제공자) Web Service Broker (웹 서비스 중개자) Web Service Consumer (웹 서비스 사용자) UDDI FIND Publish (WSDL) Web Service Consumer Web Service Provider BIND (SOAP) UDDI: Universal Description, Discovery and Integration WSDL: Web Service Description Language SOAP: Simple Object Access Protocol Web Service Computing
웹서비스 공개 예 Google eBay Amazon 자사의 검색서비스를 타사이트 또는 어플리케이션에 활용할 수 있도록 웹서비스 API를 무료로 제공 eBay 자사의 경매 데이터베이스를 통해 비즈니스하고자 하는 파트너에게 웹서비스 API를 제공 Amazon 자사가 보유하고 있는 서적 DB, 카탈로그 검색서비스, 구매업무 등을 웹서비스로 외부에 공개 15%의 로얄티 지불 Web Service Computing
웹 서비스와 유비쿼터스 (1/3) 유비쿼터스 컴퓨팅 유비쿼터스 컴퓨팅 핵심 기술 웹 서비스 다양한 디바이스들이 실세계의 사물 및 환경과 상호연결하여 언제, 어디서나 이용할 수 있는 컴퓨팅 환경 제공 유비쿼터스 컴퓨팅 핵심 기술 하드웨어: 특히, Embedded System), 모바일 기술 네트워크: IPv6 소프트웨어: 웹 기술, 소프트웨어 기술 연구 취약 상태 웹 서비스 기존의 분산객체 미들웨어 기술들의 한계(통합성)를 극복 플랫폼 독립적인 애플리케이션 통합을 지원 유비쿼터스 컴퓨팅의 소프트웨어 통합 기반구조의 핵심 유비쿼터스 컴퓨팅에 있어서, 이 세가지 부류의 기술들은 각각 매우 중요하며, 각 기술들의 발전을 통해서 궁극적으로 우리가 원하는 유비쿼터스 IT 환경을 실현할 수 있게 되는 것이다. Web Service Computing
웹 서비스와 유비쿼터스 (2/3) 특징 다양한 장치(플랫폼)들과의 네트워크 연결 임베디드 OS + 미들웨어 모바일, 유선 랜 네트워크 P2P 분산 컴퓨팅 Web Service Computing
유비쿼터스 분산 컴퓨팅 + 웹 서비스 분산 컴퓨팅 유비쿼터스와 웹 환경을 위한 통합된 P2P 분산컴퓨팅 웹 서비스와 유비쿼터스 (3/3) 유비쿼터스와 웹 통합을 위한 분산 컴퓨팅 표준 유비쿼터스 웹 서비스 컴퓨팅 유비쿼터스 분산 컴퓨팅 + 웹 서비스 분산 컴퓨팅 유비쿼터스와 웹 환경을 위한 통합된 P2P 분산컴퓨팅 INTERNET Office Home Web Service Computing