Introduction To Web Services

  • Uploaded by: Thanachart Numnonda
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Introduction To Web Services as PDF for free.

More details

  • Words: 1,708
  • Pages: 14
1

บทท 2 เวบเซอรวส: มาตรฐานเพอการพฒนา SOA เวบเซอรวส (Web Service) อาจไมไดเปนเรองใหมแลว และคนวงการไอท!สวนใหญเรมเขาใจเทคโนโลย! เวบเซอรวสด!ข&'น มาตรฐานตางๆ ของเวบเซอรวสเรมเปนท!ยอมร+บก+นมากข&'นและกลายเปนมาตรฐานหล+กในการ พ+ฒนาเซอรวสส.าหร+บ SOA แตการพ+ฒนาเวบเซอรวสส.าหร+บประย/กตใชงานจรงในองคกรย+งเพงเรมตนและ ว+ตถ/ประสงคในการพ+ฒนาย+งไมช+ดเจนน+ก แตเมอม!การกลาวถ&งการพ+ฒนาสถาป2ตยกรรมเชงบรการ (SOA) ภายใน องคกรก+ น มากข&' น โดยเฉพาะความตองการขององคกรท! จะท. า การเชอมโยงระบบภายในองคกร (Internal Enterprise Application Integration) จ&งท.าใหองคกรสนใจจะน.าเทคโนโลย!เวบเซอรวสเขามาชวยในการพ+ฒนา โปรแกรมตางๆ มากข&น' บทความน!'จะเปนการแนะน.าเทคโนโลย!เวบเซอรวส ประโยชน และมาตรฐานตางๆ ของเวบเซอรวส การ พ+ฒนาเวบเซอรวสโดยใชเทคโนโลย!จาวา (Java Technology) 2.1

ความหมายของเวบเซอรวส

กอนท!จะกลาวถ&งความหมายของเซอรวส (Service) หรอบรการในแงของเทคโนโลย! เราลองมาพจารณา ความหมายของบรการหรอกระบวนการธ/รกจ (Business Process) ท!องคกรตางๆ ท+'งภาคร+ฐและเอกชนตางให บรการก+บประชาชน ล7กคา พน+กงาน หรอค7คา ต+วอยางเชนบรการท!พน+กงานหนาเคาทเตอรของธนาคารสามารถให บรการแกล7กคาอาจม!หลากหลายอาทเชน บรการฝาก/ถอนเงน บรการแลกเปล!ยนเงนตราตางประเทศ หรอบรการ ดานสนเชอเปนตน บรการแตละบรการอาจจะม!กระบวนการในการท.างานท!ซ+บซอนแตกตางก+น แตในม/มมองของ ล7กคาจะไมสนใจวาบรการน+น' ม!ขน+' ตอนการท.างานอยางไร แตจะม!ว+ตถ/ประสงคหล+กเพอใหบรการน+น' เสรจส'นและ ไดผลล+พธออกมาตามท!ล7กคาขอใชบรการน+น' ๆ ความหมายของเซอรวสในแงของซอฟตแวร กม!ค/ณ ล+กษณะเชนเด!ยวก+บบรการท+วๆ ไป กลาวคอเปน ซอฟตแวรคอมโพเนนท (Software Component) ท!อาจเปน ฟ2งกช+น หรอ โมด7ล ท!ม!กระบวนการการท.างาน ภายใน สามารถร+บอนพ/ตเขามาเพอประมวลผล และจะสงผลล+พธกล+บออกไป ซอฟตแวรเซอรวสเหลาน!'เราอาจ ก.าหนดเปนกระบวนการทางธ/รกจ (Business Process) กลาวคอจะเปนฟ2งกช+นท!ท.าเฉพาะการประมวลผลซ&งจะ ไมเก!ยวของก+บสวนแสดงผล (Presentation Logic) นอกจากน!'ดวยเทคโนโลย! Distributed Computing ท.าให สามารถท!จะพ+ฒนาซอฟตแวรเซอรวสเพอเร!ยกใชจากระยะไกล (remote) ผานระบบเครอขายไดโดยใชเทคโนโลย! เฉพาะดาน (proprietary technology) อาทเชน RMI, CORBA หรอ DCOM

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

2

ต+วอยางการใชงานของซอฟตแวรเซอรวสโดยใช Distributed Computing จะเปนไปด+งแสดงในร7ปท! 2.1 ซ& งจะเหนไดวาม! ร ะบบ Back-end ตางๆ เชน Airline Reservation System และ Hotel Reservation System ท!ม!ซอฟตแวรเซอรวสตางๆ อย7 ผ7ใชดาน Front-end ท!จะเปนผ7ใชบรการเซอรวส (Service Requester) ซ&งอาจเร!ยกใชจากอ/ปกรณตางๆ เชน คอมพวเตอร หรอโทรศ+พทเคลอนท! (Mobile Phone) จะสามารถเร!ยกใช ซอฟตแวรเซอรวสเหลาน!'ผานผ7ใหบรการเซอรวส (Services Provider) ซ&งท.าหนาท!เปน Middleware การเร!ยก ใชเซอรวสเหลาน!' อ าจเปนการเร! ย กใชจากผ7 ใชโดยตรงหรอเร! ย กใชโดยโปรแกรมซอฟตแวรคอมโพเนนท (Program to Program) จากอ/ปกรณท!ใช นอกจากน!'ในกรณ!ท! ไมทราบชอหรอเซอรวสท! ม! อย7 เราสามารถท! จะ คนหาซอฟตแวรเซอรวสเหลาน!'ไดจาก Registry ท!ท.าหนาท!เกบรายละเอ!ยดของซอฟตแวรเซอรวสตางๆท!ม!อย7 โดยผ7ใหบรการเซอรวสจะท.าหนาท!ลงทะเบ!ยนรายละเอ!ยดของเซอรวสไว ท+'งน!'การคนหาเซอรวสผาน Registry สามารถท.าไดอ+ตโนม+ตโดยใชค.าส+งในโปรแกรมดานผ7ใชบรการเซอรวส

รปท 2.1 ซอฟตแวรเซอรวสโดยใช Distributed Computing เวบเซอรวสจะใชหล+กการของซอฟตแวรเซอรวสของ Distributed Computing แตจะใชโปรโตคอลท!ม! มาตรฐานกลาง (Standard Protocol) ท! อย7 ในร7 ป แบบ XML (eXtensible Markup Language) และจะเปน

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

3

ซอฟตแวรคอมโพเนนทท!ใหบรการผานระบบอนเตอรเนตโดยใชโปรโตคอลการสอสารมาตรฐานเชน TCP/IP, HTTP หรอ SMTP ได Gartner Research ไดใหค.านยามของเวบเซอรวสไวด+งน!' ”เวบเซอรวสคอ ซอฟตแวรคอมโพเนนทแบบ loosely coupled ท!สงบรการผานเทคโนโลย!อนเตอรเนตท!ม!มาตรฐาน” ค/ณล+กษณะพ'นฐานของเวบเซอรวสม!ด+งน!' • เวบเซอรวสเปนซอฟตแวรคอมโพเนนทท!ระบ/ต.าแหนงโดยใช URI • อนเตอรเฟสและการตดต+'งของเซอรวสจะนยาม อธบาย และคนหาโดยใช ภาษา XML • เวบเซอรวสสน+บสน/นการเร!ยกใชจากซอฟตแวรประย/กตอนๆ ผานโปรโตคอลอนเตอรเนต • เวบเซอรวสใชเอกสารแบบ XML ในการสงขาวสาร (Message) ระหวางผ7ใหบรการและผ7ใช • เวบเซอรวสชวยในการเชอมโยงโปรแกรมประย/กตตางแพลตฟอรม (Cross-platform Integration) ผานอนเตอรเนต • น+กพ+ฒนาสามารถพ+ฒนาเวบเซอรวสไดโดยใชโปรแกรมภาษาคอมพวเตอรใดๆกไดเชน Java, ASP C# หรอ PHP เปนตน • เวบเซอรวสจะไมรวมถ&งการจ+ดการสวนแสดงผลเหมอน HTML • เวบเซอรวสจะเปนซอฟตแวรคอมโพเนนทแบบ loosely couple ด+งน+'นแตละคอมโพเนนทจะเปน อสระและม!ฟ2งกช+นท!สมบ7รณในต+ว • เราสามารถท!จะคนหาและเร!ยกใชเวบเซอรวสจาก registry ท!เปนแบบ public หรอ private โดยใช มาตรฐานกลางเชน UDDI และ ebXML • เวบเซอรวสสามารถท!จะเร!ยกใชโดย client ตางๆ ไดเชน คอมพวเตอร โทรศ+พทเคลอนท! หรอ พ!ด!เอ 2.2

เหตผลของการพฒนาเวบเซอรวส

เวบเซอรวสจะแตกตางก+บโปรแกรมประย/กตบนเวบ (Web Application) และ Distributed Computing (Distributed Application) ท+' ง น!' เ พราะโปรแกรมประย/ ก ตบนเวบ จะเปนโปรแกรมเพอใหผ7 ใช (End User) สามารถโตตอบก+บโปรแกรมผานเวบไซตได ไมใช Distributed Computing ท!เปนซอฟตแวรเซอรวสและไม สามารถเร!ยกใชจากผ7ใชท!หลากหลายได สวนขอจ.าก+ดของ Distributed Computing คอจะย&ดตดก+บโปรโตคอล เฉพาะเชน RMI หรอ CORBA และโปรโตคอลเหลาน!' เ ปนแบบไบนาร! (Binary Protocol) จ& ง ผ7 ก อย7 ก+ บ เทคโนโลย!ใดเทคโนโลย!หน&ง ด+งน+'นจะเหนไดวาเวบเซอรวสไมใชแนวคดใหม เพ!ยงแตเปล!ยนร7ปแบบโปรโตคอล และหล+กการบางอยางท!เคยใชใน Distributed Computing เหต/ผลส.าค+ญท!ควรเลอกพ+ฒนาเวบเซอรวสมากกวา การพ+ฒนาโปรแกรมประย/กตบนเวบและ Distributed Computing คอ

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

4

• • • •

เวบเซอรวสใชโปรโตคอลท!เปนมาตรฐานโดยใชร7ปแบบ XML เราสามารถเร!ยกใชเวบเซอรวสโดย XML-based RPC จ&งท.าใหสามารถเร!ยกผาน Firewall ซ&งแตก ตางก+บกรณ!ของเทคโนโลย!แบบกระจาย เวบเซอรวสสน+บสน/นการท.างานรวมก+นของโซล7ช+น ท!ขามแพลตฟอรมและใชภาษาคอมพวเตอรท! ตางก+นได โดยการสงขาวสารแบบ XML เวบเซอรวสสน+บสน/นการการเร!ยกใชจากซอฟตแวรประย/กตอนๆ ผานโปรโตคอลอนเตอรเนต ซ&ง แตกตางก+บโปรแกรมประย/กตบนเวบท!เปนการเร!ยกโดยตรงจากผ7ใช

จ/ดเดนของการพ+ฒนาเวบเซอรวสสามารถท!จะสร/ปไดด+งน!' • • • • • •

2.3

การเชอมโยง (Interoperable): สน+บสน/นการเชอมโยงก+นระหวางโปรแกรมประย/กตท!หลากหลาย (Heterogeneous Applications) ได โดยใชมาตรฐานเวบท!เปนกลาง ลดคาใชจาย (Economical): สน+บสน/นการน.าซอฟตแวรคอมโพเนนทกล+บมาใชใหม (reuse) และ ไมตองย&ดตดก+บเทคโนโลย!เดม อ+ตโนม+ต (Automatic): สน+บสน/นการการเร!ยกใชจากโปรแกรมโดยตรง โดยไมตองโตตอบก+บผ7ใช เขาถ&งได (Accessible): สามารถท!จะเร!ยกใชโปรแกรมเดม (Legacy) หรอโปรแกรมภายในผานเวบ ได ใชไดตลอด (Available): สน+บสน/นการเร!ยกใชไดท/กท! ท/กอ/ปกรณ และท/กเวลา ขยายได (Scalable): ไมไดจ.าก+ดขนาดของโปรแกรมหรอจ.านวนของระบบตางๆ

โมเดลการทางานของเวบเซอรวส

กระบวนการการท. า งานของเวบเซอรวสจะม! ข+'น ตอนการท.า งานเชนเด! ย วก+ บ ซอฟตแวรเซอรวสท! ใช Distributed Computing ด+งอธบายในร7ปท! 2.1 ซ&งเราสามารถท!จะแบงบทบาทองคประกอบของเวบเซอรวสได เปนสามสวน โดยท+'งสามองคประกอบม!ความส+มพ+นธด+งแสดงในร7ปท! 2.2 และสามารถอธบายไดด+งน!' • ผ7ใหบรการ (Service Provider): ผ7ใหบรการจะม!หนาท!ในการพ+ฒนาและตดต+'งเวบเซอรวส และเปน ผ7ท!นยามความหมายของเซอรวสและลงทะเบ!ยนเซอรวสก+บ Service Registry • ผ7 ใชบรการ (Service Requester): ผ7ใชบรการจะเปนผ7 เร! ย กใชเวบเซอรวส โดยอาจท. า การคนหา เซอรวสจากเซอรวสไดเรกทอร! แลวท.าการเร!ยกใชเซอรวสจากผ7ใหบรการ • Service Registry: หรออาจเร!ยกวา Service Broker ม!หนาท!ในการร+บลงทะเบ!ยนและชวยในการ คนหาเวบเซอรวส Service Registry จะเกบรายละเอ! ย ดของเวบเซอรวสตางๆเชน นยาม และ

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

5

ต. า แหนงของเวบเซอรวส ท.า หนาท! คลายก+ บ สม/ ด โทรศ+ พ ทเพอชวยใหผ7 ใชบรการสามารถคนหา เซอรวสท!ตองการได

รปท 2.2 โมเดลการทางานของเวบเซอรวส 2.4

มาตรฐานหลกของเวบเซอรวส

มาตรฐานหล+กของการพ+ฒนาเวบเซอรวสจะประกอบไปดวยมาตรฐานตางๆด+งน!' XML, WSDL, SOAP และ UDDI รายละเอ!ยดของแตละมาตรฐานม!ด+งน!'

2.4.1 Extensible Markup Language (XML) XML เปนมาตรฐานท!ทาง W3C (World Wide Web Consortium) ประกาศใหเปนมาตรฐานของขอม7ล

เมอเดอนก/มภาพ+นธ ป? 1998 โดย XML จะอย7ในร7ปของไฟลขอความท!ใช Unicode และสามารถท!สรางร7ปแบบ ในการท!จะแสดงขอม7ลท!ซ+บซอนในร7ปแบบของขอความท!สามารถอานไดงาย ในป2จจ/บ+น XML ไดกลายเปน มาตรฐานส.าค+ญส.าหร+บการก.าหนดโครงสรางขอม7ล เน'อหา และร7ปแบบของขอม7ลของเอกสารอเลกทรอนกส และ ย+งม!การพ+ฒนาเพอใหสามารถแลกเปล!ยนขอม7ลระหวางหนวยงาน โปรแกรมประย/กต ระบบ และอ/ปกรณตางผาน ทางอนเตอรเนตไดอ!กดวย

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

6

2.4.2 Simple Object Access Protocol (SOAP) SOAP ท.าหนาท!เปนโปรโตคอลขาวสาร (Message Protocol) ส.าหร+บการแลกเปล!ยนขอม7ลระหวางผ7ให

บรการและผ7ใชบรการ โดย SOAP องมาจากภาษา XM:โครงสรางของ SOAP จะประกอบไปดวย • SOAP Envelope: ใชในการอธบายขาวสาร ระบ/เน'อหา และกระบวนการจ+ดการขอม7ล • SOAP Transport: ใชในการอธบายโปรโตคอลการสงขอม7ลเชน HTTP หรอ SMTP • SOAP Encoding: ใชในการอธบายการเขารห+สเพอจ+บค7ชนดขอม7ล (data type) ท!ใชใน โปรแกรมประย/กตก+บ XML elements โปรโตคอล SOAP เปร!ยบเสมอนจดหมายท!ใชในการสอสาร แตย+งตองใชโปรโตคอลในการสอสารอนๆ เชน HTTP ในการท.าหนาท!สงจดหมาย SOAP เปนโปรโตคอลแบบขอความ ซ&งแตกตางก+บโปรโคคอล IIOP ของ CORBA หรอ JRMP ของ RMI ท!เปนโปรโตคอลแบบไบนาร! จ&งท.าให SOAP สามารถท!จะใชสงขอความ ขามแฟลตฟอรม และระบบตางๆ ได และเวอรช+นลาส/ดของ SOAP คอ 2.0 การสงขอความ SOAP ม!สองร7ปแบบคอ SOAP-RPC และ SOAP-Document โดย SOAP-RPC ใช ในการสงขอความเพอใชเร!ยกเมธอดหรอ procedure ซ&งโดยมากจะเปนร7ปแบบ synchronous โดย SOAP จะสง SOAP Request และขอม7ลตางๆ เพอเร!ยกใชเมธอดในการประมวลผล และจะรอใหไดผลล+พธการประมวลผลท! สงกล+บมาแบบ SOAP Response สวน SOAP-Document ใชในการสงขาวสารหรอขอม7ลในร7ปแบบ XML ระหวางผ7ใหบรการและผ7ใชบรการ โดยสามารถสงไดท+'งแบบ Synchronous และ Asynchronous Listing ท! 2.1 แสดงต+วอยางการใช SOAP เร!ยกโอเปอเรช+น calculateTax ของเวบเซอรวส TaxServices และผลล+พธท!สงกล+บมา SOAP Response Listing ท! 2.1 ต+วอยาง SOAP Resquest/Response <soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ws/"> <soapenv:Body> <ns1:calculateTax> 730000.0 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://ws/"> <soapenv:Body> <ns1:calculateTaxResponse> 89500.0

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

7



2.4.3 Web Services Description Language (WSDL) WSDL เปนภาษา XML ท!ใชอธบายเวบเซอรวส โดยจะแบงการอธบายเวบเซอรวสเปนสองสวนด+งน!' • •

สวนท! เปนนามธรรม (Abstract) เพออธบายโอเปอเรช+ น (Operation) อนพ/ ต และเอาทพ/ ต พารามเตอร สวนท!เปนร7ปธรรม (Concrete) เพออธบายโปรโตคอลของเนตเวอรค ต.าแหนงของจ/ดปลายทาง (Endpoint Address) และ ร7ปแบบของขอม7ล

ในป2จจ/บ+น W3C ไดออกขอก.าหนดส.าหร+บ WSDL เปนเวอรช+น 2.0 แตค.าส+งบางค.าส+งจะไมสอดคลอง ก+บเวอรช+น 1.0 ด+งน+'นการจะเร!ยกใช WSDL ควรม!การตรวจสอบวาเครองมอท!ใชพ+ฒนาสอดคลองก+บเวอรช+น ใด WSDL สามารถเปร!ยบเท!ยบไดก+บ Java interface ท!ใชใน RMI หรอ ภาษา IDL (Interface Description Language) ท!ใชใน CORBA ส.าหร+บ Distributed Computing Listing ท! 2.2 แสดงต+วอยางของ WSDL เพออธบายเวบเซอรวสท!ชอ TaxServices เราจะเหนไดวาใน

สวน Abstract จะม!แทค (tag) ท!ชอ <message> และ <portType> ในการอธบายโอเปอเรช+นชอ calculateTax และระบ/ อ นพ/ ต และเอาทพ/ ต พารามเตอร ในสวน Binding จะม! แ ทค เพออธบายวาเซอรวสน!' ใ ช โปรโตคอล SOAP-Document บน HTTP และ แทค <service> เพอระบ/จ/ดปลายทางของเซอรวสน!'วาอย7ท! URL ชอ http://localhost:8180/WSDemo/TaxServicesService Listing ท! 2.2 ต+วอยาง WSDL ของ TaxServices <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://ws/" name="TaxServicesService"> <xsd:schema> <xsd:import namespace="http://ws/" schemaLocation="http://localhost:8180/WSDemo/TaxServicesService/__container$publishing$subctx/WEBINF/wsdl/TaxServicesService_schema1.xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/> <message name="calculateTax"> <part name="parameters" element="tns:calculateTax"/> <message name="calculateTaxResponse">

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

8

<part name="parameters" element="tns:calculateTaxResponse"/> <portType name="TaxServices"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <soap:operation soapAction=""/> <soap:body use="literal"/> <soap:body use="literal"/> <service name="TaxServicesService"> <port name="TaxServicesPort" binding="tns:TaxServicesPortBinding"> <soap:address location="http://localhost:8180/WSDemo/TaxServicesService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/>

2.4.4 Universal Description, Discovery and Integration (UDDI) UDDI เปนการนยามร7 ป แบบและกลไกส. า หร+ บ registry ท! ใชในการเกบและประกาศขอม7 ล เก! ยวก+ บ

เวบเซอรวสโดยใชภาษา XML โดยท! UDDI จะเปร!ยบเสมอนสม/ดโทรศ+พทหนาเหลองท!องคกรธ/รกจตางๆ ใช ระบ/และโฆษณาหมายเลขโทรศ+พทขององคกรเพอใหผ7ใชโทรศ+พทคนหาได โดยท+วไป Service Registry จะใช UDDI เปนมาตรฐานเพอใหผ7ใหบรการสามารถลงทะเบ!ยนประกาศเวบเซอรวสได และผ7ใชบรการกสามารถจะ ตดตอก+บ UDDI Registry เพอคนหาเซอรวสท!ตองการและเร!ยกใชจากผ7ใหบรการตอไป ขอม7ลใน UDDI จะประกอบไปดวยรายละเอ!ยดเก!ยวก+บองคกร (businessEntity) รายละเอ!ยดเก!ยวก+บ เซอรวส (businessService) รายละเอ! ย ดเก! ยวก+ บ การตดตอ (bindingTemplate) URL ส. า หร+ บ การเร! ย กใช เซอรวส (accessPoint) และขอม7ลอางองไปย+ง WSDL (tModelInstanceInfo) มาตรฐาน UDDI ลาส/ดเปน เวอรช+น 3.0 นอกจากน!'เราย+งสามารถท!จะแบง Registry ไดเปนสองประเภทคอ public registry ซ&งเปน registry ท! เปAดใหใชท+วไปท+'งภายใน และภายนอกองคกร ก+บ private registry ซ&งเปน registry ท!เปAดใหใชเฉพาะภายใน การควบค/มด7แล public registry จะเปนไปไดยากกวา จ&งท.าใหองคกรสวนมากจะเรมตนการพ+ฒนาจาก private

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

9

registry กอน

2.5

มาตรฐานอ!นๆ ของเวบเซอรวส

มาตรฐาน WSDL, SOAP และ UDDI เปนเพ! ย งมาตรฐานพ' น ฐานของเวบเซอรวส การพ+ ฒ นา เวบเซอรวสในทางปฏบ+ตจ.าเปนตองพจารณาเรองอนเชน ความปลอดภ+ย Transaction หรอ Messaging เปนตน ด+งแสดงในร7ปท! 2.3 ซ&งแสดงต+วอยางมาตรฐานเวบเซอรวสอนๆ ตามฟ2งกช+นของการท.างาน โดยจะม!มาตรฐานท! ส.าค+ญ อาทเชน

รปท 2.3 มาตรฐานต#างๆ ทเกยวของก%บเวบเซอรวส • • • •

WS-Addressing: มาตรฐานท!ใชรวมก+บ SOAP Header ในการระบ/โปรโตคอลการสอสารและ

ระบบขาวสาร (Messaging Systems) WS-Security: มาตรฐานท!เปนโครงสราง (Framework) เพอเชอมตอก+บเทคโนโลย!ระบบความ ปลอดภ+ยตางๆ SAML: Security Assertion Markup Language เปนมาตรฐานท!ทาง OASIS ก.าหนดข&น ' เพอ สน+บสน/นการท.า Single Sign On (SSO) และ Authentication WS-BPEL: มาตรฐานส.าหร+บการประกอบ (orchestration) กระบวนการทางธ/รกจ (Business

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

10

Process) โดยใชค.าส+งท!เปนภาษา XML •

WSRP: Web Services for Remote Portal มาตรฐานส.าหร+บการเร!ยกใช Web Services จาก

เวบทา (Portal) 2.6

การพฒนา SOA โดยใช&เวบเซอรวส

แมการพ+ ฒ นาสถาป2 ต ยกรรมเชงบรการ (Service Oriented Architecture หรอ SOA) ในย/ ค แรกจะ สามารถท. า ไดโดยใชเทคโนโลย! อ นๆ อาทเชน CORBA, Java RMI และ DCOM หรอสามารถใช MOM (Message Oriented Middleware) เพอพ+ฒนา SOA ในร7ปของการแลกเปล!ยนขอม7ลของสถาป2ตยกรรม EAI ท! นยมใชท+ วไป แตในป2 จ จ/ บ+ น การพ+ ฒ นา SOA โดยใชเทคโนโลย! เ วบเซอรวสเรมไดร+ บ การยอมร+ บ มากกวา เทคโนโลย!อนๆ ดวยเหต/ผลด+งน!' • เวบเซอรวสองอย7ก+บมาตรฐานท!เปAดเชน SOAP, WSDL, UDDI และมาตรฐานเวบเซอรวสอนๆ ท.าใหองคกรตางไมจ.าเปนท!จะตองลงท/นก+บโซล7ช+นท!ใชเทคโนโลย!เฉพาะ และปCองก+นการผ7กขาด โดยผ7ผลตรายใดรายหน&ง • เวบเซอรวสสน+บสน/นการเชอมโยงก+บโซล7ชน + ของผ7ผลตตางๆ ท.าใหชวยลดตนท/น • เวบเซอรวสสน+บสน/นการเชอมโยงระบบ แพลตฟอรม และโซล7ชน + ตางๆท+'งภายในองคกร ระหวางองคกร และภายนอก ร7ปท! 2.4 แสดงต+วอยางการพ+ฒนา SOA โดยใชเทคโนโลย!เวบเซอรวส สรางเซอรวสจากเทคโนโลย!ท!ตาง ก+นคอ IMS, CORBA, Java EE และ Workflow โดยม!สถาป2ตยกรรมแตละสวนด+งน!' • Business Service Tier : ประกอบดวยเซอรวสท!พ+ฒนามาจากเทคโนโลย! IMS, CORBA และ โปรแกรม Workflow และม!เวบเซอรวสท!พ+ฒนาโดยใชเทคโนโลย!Java EE • Business Access Tier : จะม! Service Registry (เชน UDDI) ส.าหร+บการลงทะเบ!ยนและ คนหาเวบเซอรวส ด+งน+น' จ&งตองม! Legacy gateways เพอแปลงเซอรวสท!ใชเทคโนโลย!ใหเปน เวบเซอรวสส.าหร+บ IMS, CORBA และใช WebSphere MQ เพอแปลง Workflow ใหเปน เวบเซอรวส • Communication Infrastructure : จะใชโปรโตคอล SOAP บน HTTP และ SOAP ท!ใช มาตรฐาน WS-Reliable Messaging • Client/Presentation : ต+วอยางน!แ' สดงการใชโปรแกรมแสดงผลท!พ+ฒนาโดยเทคโนโลย! .NET

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

11

รปท 2.4 ต%วอย#างการพ%ฒนา SOA โดยใชเทคโนโลยเวบเซอรวส 2.7

การพฒนาเวบเซอรวสโดยใช&เทคโนโลย'จาวา

การพ+ฒนาเวบเซอรวสสามารถแบงไดตามบทบาทของผ7เก!ยวของคอ การพ+ฒนาเพอเปนผ7ใหบรการ การ พ+ ฒ นาเพอเปนผ7 ใชบรการ และการพ+ ฒ นาส. า หร+ บ Service Registry เทคโนโลย! จ าวาท! สามารถจะพ+ ฒ นา เวบเซอรวสไดจะอย7ในแพลตฟอรมท!เปน Java EE โดยใน Java EE 5 ไดก.าหนดค.าส+ง API ส.าหร+บภาษาจาวาใน การเร!ยกใช XML ตางๆ ด+งน!' •



เปนช/ ด ค. า ส+ งภาษาจาวาเพอพ+ ฒ นาให บรการเวบเซอรวสและเร!ยกใชเวบเซอรวส โดยจะสน+บสน/นมาตรฐานตางๆของ W3C เชน SOAP และ WSDL และสน+ บ สน/ น การสงขอม7 ล ท+' ง แบบ Asynchronous และ Synchronous พรอมท+' ง ท.าการ binding ขอม7ลโดยใช JAXB ด+งน+'นน+กพ+ฒนาโปรแกรมสามารถใชภาษาจาวาสรางและเร!ยก เวบเซอรวสได โดยไมจ.าเปนตองพ+ฒนา SOAP หรอ WSDL เอง JAXB (Java Architecture for XML Binding) เปนช/ดค.าส+งภาษาจาวาเพอท.าการจ+บค7 (mapping) ขอม7ลท!เปนภาษา XML ก+บออปเจคท!เปนจาวาคลาส JAX-WS (Java API for XML-Based Web Services)

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

12



JAXP (Java API for XML Processing) เปนช/ดค.าส+งภาษาจาวาเพอแปล แปลง ตรวจสอบความ

ถ7กตอง และคนหา เอกสารหรอไฟลท!เปนภาษา XML •

SAAJ (SOAP with Attachments API for Java) เปนช/ ด ค. า ส+ งภาษาจาวาเพอสน+ บ สน/ น การสง

เอกสาร XML ผานอนเตอรเนต • •

เปนช/ดค.าส+งส.าหร+บพ+ฒนาเวบเซอรวสเชนเด!ยวก+บ JAX-WS แตจะใชส.าหร+บ J2EE เวอรช+น 1.4 และสน+บสน/น SOAP 1.1 WSIT (Web Services Interoperability Technology) เปนช/ ด ค. า ส+ งภาษาจาวาเพอเชอมโยง ระหวาง Java EE และ .NET 3.0 ชวยในการพ+ฒนาโปรแกรมผานสถาป2ตยกรรม SOA JAX-RPC (Java API for XML-Based RPC)

ส.าหร+บแพลตฟอรม Java SE จะม! API ส.าหร+บ XML อย7ในเวอรช+น 6 (Java SE 6) โดยจะม!ช/ดค.าส+ง JAX-WS 2.0 JAXB 2.0 และ SAAJ 1.3 การพ+ฒนาเพอใหบรการเวบเซอรวสจะตองใชแพลตฟอรม Java EE ซ!ง Server ท!เปน Java EE จะมอง การใหบรการเวบเซอรวสเปนเพ!ยงพอรตหรอชองทาง (channel)หน&งในการบรการเซอรวส ด+งน+น' จ&งไมม!ผลท.าให สถาป2ตยกรรมเปล!ยนไป และสามารถน.าคอมโพเนนทของ Java EE (เชน Session Bean) ท!ม!อย7มาพ+ฒนาเปน เวบเซอรวสไดโดยงาย นอกจากน!'การพ+ฒนาเวบเซอรวสบนเทคโนโลย!จาวา ย+งสามารถท!จะไดใชจ/ดเดนของ แพลตฟอรม Java EE ในดานความปลอดภ+ ย ความเชอม+ น (Reliability) และการรองร+ บ ผ7 ใชจ. า นวนมาก (Scalability)

เวบเซอรวสคอพอรตหน& งในแพลตฟอรม Java EE ซ& งจะท. า งานภายใน Java EE Container โดย container จะเปน Runtime environment ของคอมโพเนนทท! เปนเวบเซอรวส โดยม! ค. า ส+ ง JAX-WS หรอ JAX-RPC ในการท!จะตดตอก+บ Runtime environment อ!กช+'นหน&ง โดยท+วไปเราสามารถท!จะสรางคอมโพเนน ทของเวบเซอรวสไดสองประเภทด+งแสดงในร7ปท! 2.5 คอ • เวบเซอรวสแบบ Web-tier (โดยใช Servlet endpoint) ต+วอยางเชน Tomcat หรอ Axis • เวบเซอรวสแบบ EJB-tier (โดยใช Session Bean endpoint) ต+วอยางเชน Sun Java Application Server

การพ+ฒนาเวบเซอรวสส.าหร+บหนวยงานขนาดเลกอาจสามารถท.าไดโดยใช เวบเซอรวสแบบ Web-tier แต หากตองพ+ฒนาเพอรองร+บผ7ใชจ.านวนมากจ.าเปนตองใช เวบเซอรวสแบบ EJB-tier ด+งน+'นผ7พ+ฒนาเวบเซอรวสโดย ใชเทคโนโลย!จาวาควรจะม!ความเขาใจเรอง Application Server และสามารถพ+ฒนา EJB ได

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

13

รปท 2.5 Java Web Service Components แมหล+กการของเวบเซอรวส จะองอย7ก+บมาตรฐานตางๆ แตการพ+ฒนาเวบเซอรวสโดยใชเทคโนโลย! จาวา สามารถท.าไดโดยไมตองพ+ฒนาโปรโตคอล SOAP หรอ WSDL โดยตรง นอกจากน!'ยง+ ม!เครองมอเพอใหสามารถ พ+ฒนาโปรแกรมไดโดยงายเชน NetBeans 5.5 ผ7ท!สนใจจะพ+ฒนาเวบเซอรวสโดยใช NetBeans สามารถด7ราย ละเอ!ยดเพมเตมไดจากบทความ Java Web Services ท! url ชอ http://www.thaijavadev.com/soa/JCAPS/pdf-files/JAX-WS.pdf

2.8

บทสรป

เวบเซอรวสเปนซอฟตแวรคอมโพเนนท ท!ใหบรการผานเทคโนโลย!อนเตอรเนตโดยใชมาตรฐานเปAด มาตรฐานพ'นฐานของเวบเซอรวสประกอบดวย XML, SOAP, WSDL และ UDDI เวบเซอรวสเปนเทคโนโลย!ท! เหมาะสมในการน.าไปพ+ฒนา SOA ท+'งน!'เนองจากใชมาตรฐานเปAดและไมผ7กตดอย7ก+บเทคโนโลย!ใดเทคโนโลย! หน&ง แตการพ+ฒนาเวบเซอรวสในทางปฏบ+ตย+งตองค.าน&งถ&งมาตรฐานอนๆอ!กมากเชนเรองความปลอดภ+ย เรา สามารถท!จะพ+ฒนาเวบเซอรวสโดยใชเทคโนโลย!จาวาได ซ&งจะม!จ/ดเดนในดานความปลอดภ+ย ความเชอม+น และ ความสามารถในการรองร+บผ7ใชจ.านวนมาก

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

14

เอกสารอางอง 1) Ramesh Nagappan, Robert Skocaylas and Rima Sriganesh, Developing Java Web Services, Wiley, 2003 2) Eric Newcomer and Greg Lomow, Understanding SOA with Web Services, Addison-Wesley, 2005 3) Thomas Erl, Service-Oriented Architecture Concepts Technology and Design,Prentice Hall, 2005 4) Shan Shin, Web Services Overview, http://www.javapassion.com/webservices

เวบเซอรวส: มาตรฐานเพอการพฒนา SOA

Thanachart Numnonda and Thanisa Kruawaisayawan

Related Documents


More Documents from ""