670 likes | 848 Views
An Introduction to Web 2.0 and Web Service Computing. Internet Computing Laboratory @ KUT Youn-Hee Han http://icl.kut.ac.kr. Thanks for Jaesun Han and KAIST Google SIG ( http://www.web2hub.com ). The Origin of Web 2.0. New Conference?. Question: What are the characteristics of
E N D
An Introduction toWeb 2.0 and Web Service Computing Internet Computing Laboratory @ KUT Youn-Hee Han http://icl.kut.ac.kr Thanks for Jaesun Han and KAIST Google SIG (http://www.web2hub.com)
The Origin of Web 2.0 New Conference? Question: What are the characteristics of web companies surviving dot-com collapse? (Amazon, eBay, Yahoo, Google, etc) Web 2.0 and Web Service Computing
Web as Platform Definition “I'm talking about the emergence of what I've started to call Web 2.0, the internet as platform.... it's about the way that web sites like eBay, Amazon, and Google are becoming platforms with rich add-on developer communities” http://www.oreillynet.com/pub/wlg/5630 Tim O'Reilly Sep. 21, 2004 Web 2.0 and Web Service Computing
Web as Platform Definition “웹이 소프트웨어 플랫폼처럼 스스로 자생하고 생존하는 시스 템으로 진화 하고 있다.” “데이터를 기반으로 Open API를 통해 개발자 커뮤니티를 생성 하며 가벼운 비즈니스 모델로 모든 이용자들이 혜택을 받고 있 다.” 차세대 인터넷 웹 2.0 컨퍼런스, ㈜다음커뮤니케이션 R&D 팀장, 윤석찬2006.02.15~16 Web 2.0 and Web Service Computing
Web Service is a trend Web 2.0 and Web Service Computing
Seven Principles of Web 2.0 1. The Web as Platform 2. Harnessing Collective Intelligence 3. Data is the Next Intel Inside 4. End of the Software Release Cycle 5. Lightweight Programming Models 6. Software Above the Level of a Single Device 7. Rich User Experiences -from Tim O’Reilly’s “What is Web 2.0?” Web 2.0 and Web Service Computing
Web 2.0 Mindmap Web 2.0 and Web Service Computing
Web 1.0 Model (Traditional Model) Contents Providers Centralized Information Production Information Producer Consume Information Consumer Users Web 2.0 and Web Service Computing
Web as Platform Web 2.0 Model Providers Contents mashup (web services, RSS) tagging Openness Participation Users social network Web 2.0 and Web Service Computing
Web 2.0 Application • [Seven Ways to Explicitly Trigger Network Effect] • Network Enable Your Application • Enable Data Sharing • Linkify Everything In Your Web 2.0 App • Syndicate Your Content • Turn Your Application Into a Platform • Open Up Inside Your Site • Build a Viral Social Architecture Web 2.0 and Web Service Computing
Participation Web 2.0 and Web Service Computing
UCC(User-Created Contents) Contents Production by User Participation Text Video Photo Audio Web 2.0 and Web Service Computing
UCC Services Text Photo Audio Video podcasting photo storing & sharing video storing & sharing blog & wiki Web 2.0 and Web Service Computing
Expansion of User Participation User-Created Media User-Created Software P2P Network User-Generated Network WiFi Community for free WiFi access User-Generated Infrastructure Web 2.0 and Web Service Computing
Collective Intelligence “Crowd's collective intelligence will produce better outcomes than a small group of experts (Users add value)” Network effects from user contributions “The promoters of Web 2.0 venerate the amateur and distrust the professional.” Nicholas Carr- 하바드비즈니스리뷰 전편집장 Web 2.0 and Web Service Computing
Collective Intelligence – Google PageRank [The Philosophy of PageRank] PageRank relies on the uniquely democratic nature of the web by using its vast link structure as an indicator of an individual page's value. In essence, Google interprets a link from page A to page B as a vote, by page A, for page B Web 2.0 and Web Service Computing
Collective Intelligence – From Tagging to Folksonomy Traditional Classification Hierarchical-enumerative Web 2.0 and Web Service Computing
Collective Intelligence – From Tagging to Folksonomy Web 2.0 Classification Tagging Web 2.0 and Web Service Computing
Collective Intelligence – From Tagging to Folksonomy Tagging is easy! Web 2.0 and Web Service Computing
Collective Intelligence – From Tagging to Folksonomy Tag Cloud Web 2.0 and Web Service Computing
Collective Intelligence – From Tagging to Folksonomy Folk: 일반 대중들 + Taxonomy: 분류법 Web 2.0 and Web Service Computing
Collective Intelligence – From Tagging to Folksonomy Web 2.0 and Web Service Computing
Collective Intelligence – Recommendation So many Recommendations! Web 2.0 and Web Service Computing
Collective Intelligence – Recommendation • Pandora (www.pandora.com) • Created by the Music Genome Project • The most comprehensive analysis of music • Over the past 6 years, the songs of over 10,000 different artists are analyzed the musical qualities of each song one attribute at a time. • Musical Genome (Hundreds of musical attributes) • melody, harmony, rhythm, instrumentation, orchestration, arrangement, lyrics, singing and vocal harmony, etc Web 2.0 and Web Service Computing
Collective Intelligence – Recommendation Collaborative Filtering 4) Request Recommendations 1) Submit Ratings 6) Select Items & Predict Ratings C.F. Engine 5) Identify Neighbors 2) Store Ratings 3) Compute Correlations Ratings Correlations Web 2.0 and Web Service Computing
Collective Intelligence – Recommendation Collaborative Filtering User-Item Matrix Meg & David: similarity -0.59 Meg & Amy: similarity 0.67 Meg & Joe: similarity 0.47 Recommendations for Meg: Movies 7 Web 2.0 and Web Service Computing
Text Photo Audio Video Contents Production Consumption Contents (User-Created Contents, Ready-Made Contents) Contents Consumption Recommendation Recommendation, Search, Tagging • Searching • Discovering (links, tags, directories) • Recommended Long Tail Personalization Web 2.0 and Web Service Computing
Personalized News Personalization Personalized Search Personalized Homepage Web 2.0 and Web Service Computing
Personalization Web 2.0 and Web Service Computing
The Long Tail http://www.wired.com/wired/archive/12.10/tail.html?pg=3 Web 2.0 and Web Service Computing
The Long Tail • The Long Tail • Coined by Chris Anderson • Infrequent events (the long tail) can cumulatively outweigh the initial portion of the graph, such that in aggregate they comprise the majority • Overcoming space-time limitation of offline market • Long Tail in Online Ads Market Web 1.0 : DoubleClick Web 2.0 : Google AdSense Web 2.0 and Web Service Computing
Wikipedia Web 2.0 and Web Service Computing
Wikipedia • [Wikipedia의 기본 방침] • 편견을 배제한다.: 중립적인 관점에서 내용 작성 • 저작권을 침해하지 않는다.: 저작권이 보호되는 자료는 올려지지 않는다. • 백과사전 이외의 목적은 없다. • 다른 회원에게 경의를 표한다. • : Wikipetiket Wikipedia An article 작성 추가 추가 및 수정 수정 Radical Trust (진보적 성선설)에 입각한 Collective Intelligence의 전형적인 결과물 Web 2.0 and Web Service Computing
Openness Web 2.0 and Web Service Computing
Developers’ Real World • 언어가 다르다 • C, C++, Java, C#, VB, COBOL, Perl, … • OS System 이 다르다 • Windows, Solaris, AIX, HP_UX, Linux • 사상 및 정치 체계가 다르다 • .Net 계열, Java 계열 Web 2.0 and Web Service Computing
How to Handle It? • 방법 1 • 모든 언어를 익힌다 - 현실적으로 불가능 하다. • 모든 체계에 익숙해 진다 – 역시 불가능하다. • 모든 사상을 수용한다 – 사상 자체가 서로 상반되므로 분리가 불가피하다. • 사상 통일 – 세계 정복 • 방법 2 • 동일한 언어 사용 • Java, XML, …(영어, 에스페란토어, …) • 하나의 체계를 사용 • java (VM), .Net (CLR), … • 다른 사상을 허용하되 통신은 표준적인 규약에 따른다. • HTTP, SOAP Web 2.0 and Web Service Computing
Developer Utopia • 새로운 언어는 배울 필요가 없고… • 표준적인 통신 방법만을 배우면 다른 모듈, 제품, 서비스와 결합이 가능하면… • 로직은 자신이 알고 있는 언어로 자신 있게… • 편하게 개발하고 무슨 기법/언어를 사용했는 지와 관계 없이 대화가 가능하게 되면… • 가능하면 통신 방법도 알 필요가 없으면… Web 2.0 and Web Service Computing
Welcome to EUTOPIA • SOA(Service-Oriented Architecture) • 초기 SOA의 성과 – CORBA, DCOM, DCE, RMI, … • 초기 SOA의 한계 – 언어/플랫폼과 긴밀한 연결 • Service • work done by one person or group that benefits another • 기술이 아닌 가치를 창출하는 설계 • Loose-Coupling(맞춤(tightly coupled)이 아닌) Web 2.0 and Web Service Computing
Web-Service Computing - Definition • Web Service Computing • 웹을 구성하는 표준 프로토콜인 HTTP/TCP(UDP)/IP 를 기반으로 • 구조화된 데이터 (Structured Data) 전달이 가능한 XML을 활용하여 • 네트워크로 접근 가능한 연산, 어플리케이션, 서비스 컴포넌트들을 활용하는 Distributed Computing 기술 Web ServiceComputing(A web-based distributedcomputing for ‘service’ sharing) Traditional Client/Server Model Browser-based Simple Access Distributed Computing (CORBA, JAVA RMI, DCOM) Application-based Interaction (XML) Agent-based + Semantic-Web Selling “Service” on the net Service-based Computing Web-based Computing Web 2.0 and Web Service Computing
XML XML Features • Web Service Computing 의 특징 (1/3) • Use standardized Internet protocols • 표준화된 웹 기반 인터넷 프로토콜(HTTP, TCP/IP)을 통하여 구현 • XML-based • XML을 통하여 모든 Communication 이 이루어짐 Vendor, Platform, Language에 독립적 Web 2.0 and Web Service Computing
Features • Web Service Computing 의 특징 (2/3) • Component-based • 하나의 웹 서비스는 대규모 웹 서비스의 일부 기능을 담당 • Use directory service • 웹 서비스는 디렉토리 (Directory)에공시되고, 클라이언트는 디렉토리를통하여 웹 서비스 검색 개발이 용이하고 시간을 단축시킴 Web 2.0 and Web Service Computing
Features • Web Service Computing 의 특징 (3/3) • Interact through abstracted Interfaces (service description) • 추상화된 인터페이스 (Interface)를 통해서 웹 서비스의 기능이 보여짐 • 약속된 계약사항만 준수하면 모든 동작이 수행됨 Provider의 비즈니스 로직(Logic) 변경 용이 Web 2.0 and Web Service Computing
How to work? • Web Service Computing 의 구성 요소 Broker UDDI: Universal Description, Discovery and Integration WSDL: Web Service Description Language SOAP: Simple Object Access Protocol SearchRequest Publish SearchResult Consumer Provider Service Call & Receive Result Web 2.0 and Web Service Computing
How to work? • Web Service Computing 의 동작 방식 BrokerUDDI 레지스트리 1) UDDI를 준수하여제공 서비스 및 WSDL 문서의 URL 공개 2) UDDI를 준수하여제공 서비스 및 WSDL 문서의 URL를 얻어옴 SearchRequest Publish 3) WSDL문서요청 및 전송 SearchResult ConsumerJAVA, C#, C++등의 응용프로그램 Provider웹 서비스 시스템 Service Description Remote Procedure Call & Receive Result 4) SOAP을 통한호출 및 결과 전송 Web 2.0 and Web Service Computing
Web Applications vs. Web Services Web 2.0 and Web Service Computing
RPC(CORBA, Java RMI, DCOM) vs. Web Services Web 2.0 and Web Service Computing
Example – Hello World 웹 서비스 클라이언트 개발자 WSDL 문서 코드 생성 클라이언트 클래스 작성 스텁 클래스 생성 웹 서비스 시스템 원격 프로시저 호출 요청 SOAP 메시지 클라이언트 객체 Sub Tie 원격 프로시저 원격 프로시저 응답 SOAP 메시지 JAX-RPC 라이브러리의 지원 웹 서비스 개발자 JAX-RPC: Java API for XML-Based RPC Web 2.0 and Web Service Computing
Example – Hello World • 웹 서비스 개발 (1/6) • 원격 인터페이스 작성 • 클라이언트가 호출할 수 있는 원격 프로시저 정의 • 패키지를 적용하여 작성 • Java.rmi.Remote인터페이스 상속 • 접근 제어자는 반드시 public으로 한다. • 반환형과 인자형은 JAX-RPC가 지원하는 데이터 타입이어야 함 • 메소드는 java.rmi.RemoteException을 반드시 throws 해야 한다 . package hello; import java.rmi.*; public interface HelloIF extends Remote { public String sayHello(String s) throws RemoteException; } Web 2.0 and Web Service Computing
Example – Hello World • 웹 서비스 개발 (2/6) • 구현 클래스 작성 • 원격 인터페이스를 implements한 클래스 • 패키지를 적용하여 작성 • 접근 제어자는 반드시 public으로 한다. • 생성자는 인자가 없는 디폴트 생성자 형태로 작성 package hello; public class HelloImpl implements HelloIF { public String sayHello(String s) { return "Hello " + s + "!"; } } Web 2.0 and Web Service Computing
Example – Hello World • 웹 서비스 개발 (3/6) • 웹 응용프로그램 배치 기술자 작성 • 배치 기술자(web.xml) 작성 • http://java.sun.com/dtd/web-app_2_3.dtd 참고 • WEB-INF에 저장 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>helloWS</display-name> <session-config> <session-timeout>60</session-timeout> </session-config> </web-app> 이후 Tie 클래스 및 WSDL을 만들 때 필요 Web 2.0 and Web Service Computing