Web Service 개요 강사 : 김기영 강의 내용 SOA Web Services 관련 사이트 www.softforum.com 2 Real World 언어가 다르다 정치 체계가 다르다 사상이 다르다 언어(C, C++, Java, C#, VB, COBOL, Perl, …)가 다르다 OS System(Windows(es), Solaris, AIX, HP_UX, Linux(es), Mainframe(s) …)이 다르다 사상이(C, .Net, Java) 다르다 www.softforum.com 3 다름에 대한 대처 모든 언어를 익힌다 - 현실적으로 불가능 하다. 모든 체계에 익숙해 진다 – 역시 불가능하다. 모든 사상을 수용한다 – 사상 자체가 서로 상반되므로 분리가 불가피하다. 사상 통일 – 세계 정복 동일한 언어 사용 - Java, XML, …(영어, 에스페란토어, …) 중립적인 체계를 사용 – java(VM), .Net(CLR), … 다른 사상을 허용하되 통신은 표준적인 규약에 따른다. – HTTP, SOAP www.softforum.com 4 DEVELOPER EUTOPIA 새로운 언어는 배울 필요가 없고 표준적인 통신 방법만을 배우면 다른 모듈, 제 품, 서비스와 결합이 가능하다. 로직은 자신이 알고 있는 언어로 자신 있게, 편하게 개발하고 무슨 기법/언어를 사용했는 지와 관계 없이 대화가 가능하게 된다. 가능하면 통신 방법도 알 필요가 없음 더욱 좋겠다. www.softforum.com 5 Welcome to EUTOPIA SOA(Service-Oriented Architecture) 초기 SOA의 성과 – CORBA, DCOM, DCE, RMI, … 초기 SOA의 한계 – 언어/플랫폼과 긴밀한 연결 이상적인 SOA를 위해서는 서비스의 위치나 기법을 미리 알 필요 없이 이 용 가능해야 한다. Service work done by one person or group that benefits another(WordNet) 기술이 아닌 가치를 창출하는 설계 Loose-Coupling(맞춤(tightly coupled)이 아닌) Architecture the principles of design and construction and ornamentation of fine buildi ngs 여러가지 요소를 유기적으로 결합하는 방법 www.softforum.com 6 SOA의 요소 Service Broker Find Publish Service Contract Service Consumer Service Provider Interact Client Server www.softforum.com 7 집 사고 팔기 (파는사람)집에 대한 사양/가격/위치 등에 대한 정보와 함께 부동산에 의뢰 (부동산 중개인)의뢰를 접수하고 구매광고를 웹이나 유리에 붙인다. (사는 사람)부동산을 방문하여 원하는 사양의 집을 찾는다. (부동산 중개인)집을 사러온 사람이 비슷한 사양을 찾을 때, 등록된 집이 있으 면 소개한다. 5. (사는 사람)직접 방문하여 집을 확인하고 주인과 흥정을 한다. 6. (성사된 경우)파는 사람과 사는 사람은 부동산 중개인에게 수수료를 낸다. 1. 2. 3. 4. 1. (파는사람)집에 대한 사양/가격/위치 등에 대한 정보와 함께 웹이나 집앞에 광 고를 낸다. 2. (사는 사람)서핑을 하거나 아는 사람 소개 등으로 집을 찾는다. 3. (사는 사람)직접 방문하여 집을 확인하고 주인과 흥정을 한다. 4. (성사된 경우)수수료는 없다. www.softforum.com 8 SOA의 구현 Infra. 가장 오픈 되고 신속한 환경 공용 프로토콜과 언어 오픈 환경 Internet – WEB • 검증되고 • 널리 분포되어 있고 • 표준적이며 • 많은 분야에서 활용되고 있다 프로토콜/언어 HTTP/SMTP XML www.softforum.com 9 Web SOA – Web Services Service Registry 찾기(Find) 등록(Publish) UDDI_find_xxx UDDI_save_xxx WSDL Service Requestor Service Provider 연결(Bind) XML www.softforum.com 10 웹 서비스 상호 운용성 스택 SOAP, WSDL, UDDI, WSEL, WSFL, … 이들을 어떻게 연결하고 , 어떻게 사용하는 지에 대한 것 – 강의 목표 Wire Stack Data format – XML, URL encoding • Data format definition – XML Schema Wire format • XML Protocol : XML-RPC, SOAP • Transfer protocol : HTTP, SMTP, FTP, Jabber, … Description Stack WSDL – What, How, Where 구문 수준의 Interface – 의미(semantics)가 통해야 하고 공통언어와 명확한 표현을 사용 Discovery Stack UDDI – service type, service provider, categorization Discovery/Publish mechanism is also Web Services www.softforum.com 11 Web Services Web기반위에 XML프로토콜을 사용하여 플랫폼과, 구현 언어에 독립적인 컴 포넌트 기반의 분산 컴퓨팅 기술 문서 중심의 메시징과 RPC를 모두 지원 HTTP와 SMTP같은 오픈 인터넷 프로토콜들을 통해 동작 어플리케이션 통합의 문제를 해결하는 테두리 내에서 발전 기업 내에서도 의미가 있지만, e-Business 어플리케이션 통합의 문제에서는 웹 서비스가 가장 적합 www.softforum.com 12 웹 서비스의 특징 지속적인 연결을 가지지 않는다 안정적,리소스 절약/느림 상태 정보를 유지하지 않는다 세션 관리가 어려움 XML 기반의 SOAP을 사용한다 유연함/느림 기존의 다른 프로토콜로 구현된 분산 컴포넌트 환경을 통합시킬 수 있다 인터넷상에서의 분산 컴퓨팅이 가능하다 방화벽 통과 보안과 인증이 필요 www.softforum.com 13 Web Applications vs Web Services Web Applications Web Services 비고 사람 <-> 기계 기계 <-> 기계 자동화 Protocol HTTP XMLP HTTP, SMTP, FTP, Jabber 데이터 출력 HTML XML GUI HTML과 Script N/A Client Browser(사람) 어플리케이션 Interaction www.softforum.com 14 RPC vs Web Services RPC Web Services 비고 tight loose Connectionoriented dependency Platform/Language N/A 기능 RPC RPC, 메시징 속도 빠름 느림 상태관리 상태 종속 상태 없음 Protocol 전용 HTTP, SMTP, FTP, Jabber Internet Service 어려움 쉬움 coupling Stateless www.softforum.com 15 Link http://wwws.sun.com/ http://wwws.sun.com/software/learnabout/webservices/index.html http://msdn.microsoft.com/ http://www-106.ibm.com/developerworks/ http://www.alphaworks.ibm.com/ http://www.netegrity.com/solutions/solutions.cfm?page=wsOverview http://www.w3c.org http://www.oasis-open.org/home/index.php http://www.ws-i.org/ http://www.ietf.org/ http://www.xmethods.com/ http://www.webservices.org/ http://www.apache.org www.softforum.com 16