An introduction to web 2 0 and web service computing
This presentation is the property of its rightful owner.
Sponsored Links
1 / 67

An Introduction to Web 2.0 and Web Service Computing PowerPoint PPT Presentation


  • 63 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

An Introduction to Web 2.0 and Web Service Computing

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


An introduction to web 2 0 and web service computing

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

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

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 platform1

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 Service is a trend

Web 2.0 and Web Service Computing


Seven principles of web 2 0

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 Mindmap

Web 2.0 and Web Service Computing


Web 1 0 model traditional model

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 2 0 model

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

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

Participation

Web 2.0 and Web Service Computing


Contents production by user participation

UCC(User-Created Contents)

Contents Production by User Participation

Text

Video

Photo

Audio

Web 2.0 and Web Service Computing


Ucc services

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

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

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

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

Collective Intelligence – From Tagging to Folksonomy

Traditional Classification  Hierarchical-enumerative

Web 2.0 and Web Service Computing


Collective intelligence from tagging to folksonomy1

Collective Intelligence – From Tagging to Folksonomy

Web 2.0 Classification  Tagging

Web 2.0 and Web Service Computing


Collective intelligence from tagging to folksonomy2

Collective Intelligence – From Tagging to Folksonomy

Tagging is easy!

Web 2.0 and Web Service Computing


Collective intelligence from tagging to folksonomy3

Collective Intelligence – From Tagging to Folksonomy

Tag Cloud

Web 2.0 and Web Service Computing


Collective intelligence from tagging to folksonomy4

Collective Intelligence – From Tagging to Folksonomy

Folk: 일반 대중들 + Taxonomy: 분류법

Web 2.0 and Web Service Computing


Collective intelligence from tagging to folksonomy5

Collective Intelligence – From Tagging to Folksonomy

Web 2.0 and Web Service Computing


Collective intelligence recommendation

Collective Intelligence – Recommendation

So many

Recommendations!

Web 2.0 and Web Service Computing


Collective intelligence recommendation1

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 recommendation2

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 recommendation3

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


Contents production consumption

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


Personalization

Personalized News

Personalization

Personalized Search

Personalized Homepage

Web 2.0 and Web Service Computing


Personalization1

Personalization

Web 2.0 and Web Service Computing


The long tail

The Long Tail

http://www.wired.com/wired/archive/12.10/tail.html?pg=3

Web 2.0 and Web Service Computing


The long tail1

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

Wikipedia

Web 2.0 and Web Service Computing


Wikipedia1

Wikipedia

  • [Wikipedia의 기본 방침]

  • 편견을 배제한다.: 중립적인 관점에서 내용 작성

  • 저작권을 침해하지 않는다.: 저작권이 보호되는 자료는 올려지지 않는다.

  • 백과사전 이외의 목적은 없다.

  • 다른 회원에게 경의를 표한다.

    • : Wikipetiket

Wikipedia

An article

작성

추가

추가 및 수정

수정

Radical Trust (진보적 성선설)에 입각한 Collective Intelligence의 전형적인 결과물

Web 2.0 and Web Service Computing


Openness

Openness

Web 2.0 and Web Service Computing


Developers real world

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

How to Handle It?

  • 방법 1

    • 모든 언어를 익힌다 - 현실적으로 불가능 하다.

    • 모든 체계에 익숙해 진다 – 역시 불가능하다.

    • 모든 사상을 수용한다 – 사상 자체가 서로 상반되므로 분리가 불가피하다.

    • 사상 통일 – 세계 정복

  • 방법 2

    • 동일한 언어 사용

      • Java, XML, …(영어, 에스페란토어, …)

    • 하나의 체계를 사용

      • java (VM), .Net (CLR), …

    • 다른 사상을 허용하되 통신은 표준적인 규약에 따른다.

      • HTTP, SOAP

Web 2.0 and Web Service Computing


Developer utopia

Developer Utopia

  • 새로운 언어는 배울 필요가 없고…

  • 표준적인 통신 방법만을 배우면 다른 모듈, 제품, 서비스와 결합이 가능하면…

  • 로직은 자신이 알고 있는 언어로 자신 있게…

  • 편하게 개발하고 무슨 기법/언어를 사용했는 지와 관계 없이 대화가 가능하게 되면…

  • 가능하면 통신 방법도 알 필요가 없으면…

Web 2.0 and Web Service Computing


Welcome to eutopia

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 - 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


Features

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


Features1

Features

  • Web Service Computing 의 특징 (2/3)

    • Component-based

      • 하나의 웹 서비스는 대규모 웹 서비스의 일부 기능을 담당

    • Use directory service

      • 웹 서비스는 디렉토리 (Directory)에공시되고, 클라이언트는 디렉토리를통하여 웹 서비스 검색

개발이 용이하고 시간을 단축시킴

Web 2.0 and Web Service Computing


Features2

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

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 work1

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 Applications vs. Web Services

Web 2.0 and Web Service Computing


Rpc corba java rmi dcom vs web services

RPC(CORBA, Java RMI, DCOM) vs. Web Services

Web 2.0 and Web Service Computing


Example hello world

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 world1

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 world2

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 world3

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


Example hello world4

Example – Hello World

  • 웹 서비스 개발 (4/6)

    • RMI interface 배치 기술자 (DD, Deployment Descriptor) 작성

      • Tie 클래스 및 WSDL 문서를 자동 생성하기 위해 jaxrpc-ri.xml문서 작성

      • WEB-INF에 저장

<?xml version="1.0" encoding="UTF-8"?>

<webServices

version="1.0"

xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/dd"

targetNamespaceBase="http://localhost:8080/helloWS/webservice/wsdl"

typeNamespaceBase="http://localhost:8080/helloWS/webservice/type">

<endpoint

name="webservice"

interface="hello.HelloIF"

implementation="hello.HelloImpl"/>

<endpointMapping

endpointName="webservice"

urlPattern="/webservice"/>

</webServices>

Web 2.0 and Web Service Computing


Example hello world5

Example – Hello World

  • 웹 서비스 개발 (5/6)

    • Sun-web.xml 작성

    • build.xml 작성 (개발 루트 디렉토리에 저장)

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.0 Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-0.dtd">

<sun-web-app>

<context-root>/helloWS</context-root>

</sun-web-app>

<project name="helloWS" default="default" basedir=".">

<property name="is.war.module" value="true" />

<import file="../../bp-project/main.xml" />

</project>

Web 2.0 and Web Service Computing


Example hello world6

Example – Hello World

  • 웹 서비스 개발 (6/6)

    • 웹 서비스 시스템 WAR파일 만들기

      • asant

      • dist 디렉토리에 helloWS.war 생성

    • Tie 클래스 밑 WSDL문서를 WAR파일에 추가

      • wsdeploy.bat 사용

      • dist 디렉토리에서 다음 실행

        • wsdeploy –o helloWSD.war helloWS.war

      • helloWSD.war 생성

    • 웹 컨테이너에 배치하기

      • helloWSD.war를 직접 autodeploy 디렉토리로 복사

    • 웹서비스 확인

      • http://localhost:8080/helloWS/webservice

Web 2.0 and Web Service Computing


Example hello world7

Example – Hello World

  • 웹 서비스 클라이언트 개발 (1/3)

    • config.xml 문서 생성 필요

    • Stub 클래스 생성

      • wscompile –gen:client –d “생성될 stub 위치” config.xml

      • Example

        • wscompile –gen:client –d . config.xml

<?xml version="1.0" encoding="euc-kr"?>

<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">

<wsdl location=“WSDL 문서를 다운받을 수 있는 URL"

packageName=“인터페이스 패키지명"/>

</configuration>

형태

<?xml version="1.0" encoding="euc-kr"?>

<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">

<wsdl location="http://localhost:8080/helloWS/webservice?WSDL"

packageName="hello"/>

</configuration>

Example

Web 2.0 and Web Service Computing


Example hello world8

Example – Hello World

  • 웹 서비스 클라이언트 개발 (2/3)

Web 2.0 and Web Service Computing


An introduction to web 2 0 and web service computing

개발된 웹 서비스 이용하기

  • 웹 서비스 클라이언트 개발 (3/3)

    • 클라이언트 프로그램 작성

      1. 컴파일: javac –d . HelloClient.java

      2. 실행: java hello.HelloClient

package hello;

import javax.xml.rpc.Stub;

public class HelloClient {

public static void main(String[] args) {

try {

Webservice_Impl webservice = new Webservice_Impl();

Stub stub = (Stub) webservice.getHelloIFPort();

HelloIF hello = (HelloIF) stub;

String greet = hello.sayHello(“YH HAN");

System.out.println(greet);

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

Web 2.0 and Web Service Computing


Open api

Open API

  • Open API

    • an application program interface which enables developers to create new applications that utilize other (web)node’s resources (data and functions) and integrate them so that they provide clients with a new experience.

  • Google commences it!

Web 2.0 and Web Service Computing


Open api1

Open API

  • Open API Example with Google

package com.google.soap.search;

public class GoogleGo {

public static void main(String args[]) throws Exception {

GoogleSearchService_Impl webservice = new GoogleSearchService_Impl();

GoogleSearchPort searchPort = (GoogleSearchPort) webservice.getGoogleSearchPort();

GoogleSearchResult r = searchPort.doGoogleSearch(

"Gkk9/zVQFHIPOjMt5LtYCAn9UDZzBZWN", //java.lang.String key

args[0], //java.lang.String query_word

1, 10, //int start, int maxResults

false, null,//boolean filter, java.lang.String restrict

false, //boolean safeSearch

null, //java.lang.String lr

"UTF-8",//java.lang.String ie

"UTF-8"//java.lang.String oe

);

ResultElement[] re = r.getResultElements();

for (int i = 0 ; i < re.length ; i++) {

System.out.println("---");

System.out.println(re[i].getTitle());

System.out.println(re[i].getURL());

System.out.println(re[i].getSnippet());

}

}

}

Web 2.0 and Web Service Computing


Open api2

Open API

  • Amazon activates it!

Web 2.0 and Web Service Computing


Open api3

Open API

  • Amazon makes money by Open API

Web 2.0 and Web Service Computing


Open api4

Open API

  • Naver starts to serve it!

Web 2.0 and Web Service Computing


Open api5

Open API

  • Naver starts to serve it!

Web 2.0 and Web Service Computing


Open api6

Open API

  • Egloos also starts to serve it!

Web 2.0 and Web Service Computing


Openness mashup

Openness & Mashup

  • Openness

    • Data by RSS

    • Service by Open API

  • Mashup

    • Website or web application that seamlessly combines content from more than one source into an integrated experience

    • Examples

      • Google News : News aggregation

      • Newsmap : News visualization (Using Google News)

      • WingBus : Travel info service (Aggregating blog posts on traveling)

      • Housingmaps.com = Google Maps + Craigslist

      • Amazon Light = Amazon + Other Searches + Yahoo News + …

      • Chicago Crime Map = Google Maps + CPD's Citizen ICAM Web site

      • Aladdin TTB Review = Aladdin + Blog APIs

Web 2.0 and Web Service Computing


Openness mashup1

Openness & Mashup

  • Housingmaps.com

Web 2.0 and Web Service Computing


Openness mashup2

Openness & Mashup

  • xwire.co.kr

Web 2.0 and Web Service Computing


Mashup ecosystem

Mashup Ecosystem

Web 2.0 and Web Service Computing


  • Login