PowerPoint Template

Download Report

Transcript PowerPoint Template

Web Service Technology
(JAVA EE)
Add Your Company Slogan
Using Netbeans
MFEC (Genius Evolution Team)
Version 1, Year 2014
Company Logo
By Pornpan P.
ระยะเวลาและ
เนื้อหาในการอบรม
Agenda I
วันที่ 15 มีนาคม 2014
1. ช่วงเช้า
Install Program
 Install JDK 1.6 , Set Environment
(JAVA_HOME and Path)
 Netbeans IDE, Glassfish
Application Server
 Configuration Glassfish application
server with Netbeans IDE
 Install MySQL 5.0, Install SQLFont
 SoapUI
Agenda I
วันที่ 15 มีนาคม 2014
2. ช่วงเช้า
Introduction Web Service
 Introduction to Java EE Architecture
Overview
 Introduction to SOA
 Introduction to Web Service (JAXRPC, JAX-WS, JAX-RS (REST))
 XML Technology
 SOAP, WSDL and UDDI
Agenda II
วันที่ 15 มีนาคม 2014
2. ช่วงเช้า
 Web Service using Top-down
Design
 Web Service Asynchronous
 Web Service Securing (Security)
 Lab : Calling External PTT Web
Service by soapUI tools
 Lab : Create Web Service Project
(Hello Web Service)
Agenda II
วันที่ 15 มีนาคม 2014
1. ช่วงบาย
่
 Create Web Service technology
in StrutsCrudWeb
 service method : getStudentAll
 service method :
getStudentByID
2. ช่วงบาย
่
 Create Struts Project for invoke
Web Service provider
Topic 1
Web Service Overview
Topic 1 : Web Base Overview
ประเภทของโปรแกรม
 Imperative or Structure Programming
C, C++
 PASCAL


OOP
Programming)


(Object-Oriented
Java, .Net
COP
Programming)
(Component-Object
Topic 1 : Web Base Overview
วิวฒ
ั นาการของ Application
การพัฒนา Application มีดงั นี้
 Stand Alone Application
 Network
Application (LAN, MAN,
WAN)
 Client-Server
 Peer-To-Peer
 Web-Base Application
 Distributed Application
Topic 1 : Web Base Overview
Stand Alone Application
Topic 1 : Web Base Overview
Network Application (LAN)
Topic 1 : Web Base Overview
Network Application (MAN)
Topic 1 : Web Base Overview
Network Application (WAN)
Topic 1 : Web Base Overview
Web-Base Application
Topic 1 : Web Base Overview
Web-Base Application
JAVA EE Modules
J2ee Modules เป็ นหน่วยของ
โ ป ร แ ก ร ม ที่ ส า ม า ร ถ บ ร ร จุ ห ล า ย ๆ
components ที่ท างานหน้ าที่ค ล้ าย ๆ
กัน หรือ ท างานร่วมกัน เพื่อ น าไปใช้
งานคือ Deploy ได้โดยถือ ว่าเป็ นหนึ่ ง
หน่วย
J2EE modules
ทุก ๆ
modules จะต้ องถู ก บี บ อัด ไว้ เป็ นไฟล ์
jar หรือ war ขึน
้ อยูกั
่ บประเภทของ
module นั้น และต้องมี deployment
descriptor เป็ นไฟล xml สาหรับบอก
JAVA EE Application
1. Web Modules เป็ น modules
สาหรับบรรจุไฟลของ
Servlets, JSP tag,
์
Applets, java classes/jar, html/xml pages
หรือไฟล ์ resources อืน
่ ๆ ทีจ
่ ะถูกอ้างถึงได้
เช่น ไฟลรู์ ปภาพและเสี ยง web
modules
ต้องถูกสร้างเป็ น Web Archive file หรือเรียก
ไฟล ์ war ซึง่ ไฟลต
์ ้องมีนามสกุลเป็ น .war ในทุก
ๆ ไฟล ์ war
ต้องมีไ ฟล ์
deployment
descriptor ชือ
่ web.xml
2.
EJB
Modules เป็ น modules
JAVA EE Application
3. Java Modules เป็ น modules
สาหรับโปรแกรม java ทีเ่ รียกใช้งาน ejb
ดังนั้นจึงเรียกวา่ j2ee application clients
ซึง่ Java
ตองสร
างเป็
นไฟล ์ jar และมีไฟล ์
้ EE Application
้ (.ear file)
deployment
descriptor ชือ
่ applicationapplication.xml
client.xml
Java module (.jar file)
web module (.war file)
ejb module (.jar file)
web.xml
Servlet
application-client.xml
ejb-jar.xml
JSP
EJB
EJB
Java class
Java jar
Struts Framework (MVC : Model,
View, Controller)
Topic 1 : Web Services Overview
Distributed Application
Topic 1 : Web Services Overview
Web Application Evolution – EJB

Enterprise JavaBeans เป็ น Server Side Component ทีม
่ ไี ว ้
สำหรับ Distributed Programming มี 3 อย่ำงคือ
้
 Multiple Access Client : สำมำรถ access เข ้ำใชงำน
EJB
่ งทำง เชน
่ Swing Application, Applet และ
ได ้หลำยชอ
Web Application
 Transaction Management : จะมี EJB Container ทีเ
่ ป็ น
ตัวกลำงจัดกำร Transaction โดยที่ Program ไม่ต ้อง
manage transaction เอง
 Scalability
Topic 1 : Web Services Overview
Web Application Evolution – EJB
Enterprise JavaBeans ประกอบด ้วย 3 ข ้อ ดังนี้
 Session Bean เป็ น Service Bean เป็ น EJB ทีเ
่ น ้นถึงกำร
กระทำของ Business Logic มี 2 ประเภท คือ
 Stateless Session Beans คือ ไม่มก
ี ำรเก็บค่ำ Status ใน
กำรติดต่อไว ้
 Statefull Session Beans คือ มีกำรเก็บค่ำ Status ในกำร
้
ติดต่อไว ้เสมอ เพือ
่ ใชประโยชน์
ในกำรทำ Transaction
 Entity Bean เป็ น Persistent ของข ้อมูลระหว่ำง Application
Layer กับ Database Layer หรือเรียกอีกอย่ำงว่ำเป็ น EJB ที่
เน ้นถึงสงิ่ ทีต
่ ้องกำรเก็บข ้อมูลมีอยู่ 2 ประเภท คือ
 CMP
(Container Managed Persistent) ซงึ่ จะให ้
Container เป็ นตัวจัดกำรทำให ้แทน
Topic 1 : Web Services Overview
Web Application Evolution – EJB
Enterprise JavaBeans ประกอบด ้วย 3 ข ้อ ดังนี้
ดังนั น
้ หมำยควำมว่ำจะใช ้ EJB Container ไป Call กับ
่ Hibernate, EJB QL, HQL หรืออืน
Database เอง เชน
่ ๆ
***ไม่มป
ี ั ญหำในกำรเปลีย
่ น Database แต่มป
ี ั ญหำในกำร
เปลีย
่ น Application Server
 BMP
(Bean
Managed
Persistent) ซงึ่ จะให ้
Programmer ทำกำรเขียนโปรแกรม SQL เองเพือ
่ ติดต่อ
กับ Database เอง
***ไม่มป
ี ั ญหำในกำรเปลีย
่ น Application Server แต่ม ี
ปั ญหำในกำรเปลีย
่ น Database
 Message Driven Beans
EJB + Struts Architecture
Java EE AppServer
Multiple Access Cliente
Web Container
People
Java Web Service WSDL
Struts Action
Mobile
Business Layer Persistence Layer
-Date Service
-Class
-Class
-DAO
-BEAN
Studnet
Web Aplication
SOAP
Local interface lookup
Teacher
EJB Container
Session Bean
Employee
Remote Lookup
Java Application
Database
RMU News Broadcasting with Distributed Programming
JAVA EE Architecture
Topic 1 : Web Services Overview
JAVA EE Standard Services – containers
Different containers
requirement:
have
different
service
Topic 1 : Web Services Overview
ปัญหาทีเ่ กิดขึน
้ ? จึงต้องมีเทคโนโลยี Web
Service
Topic 1 : Web Services Overview
Why is SOA + Web Service ?
Topic 1 : Web Services Overview
Introduction to SOA
จุดเริม
่ ต้นสถาปัตยกรรมของ
SOA
เกิดจาก
แบบจาลอง ทีป
่ ระกอบด้วย 3 ส่วนประกอบที่
สาคัญ ดังนี้ :
 Service
Provider หรือผู้ให้บริการ คือ
Applications ที่ จั ด เ ต รี ย ม บ ริ ก า ร ไ ว้ ใ ห้
Application อืน
่ เรียกใช้
 Service Requester หรือผู้ร้องขอบริการ คือ
Application ทีข
่ อบริการจาก
Application
ทีป
่ ระกาศ (Publish) บริการไว้
Topic 1 : Web Services Overview
Concept to SOA
Topic 1 : Web Services Overview
Introduction to SOA
แนวคิดเชิงบริการ (ServiceOriented) คือแบบแผนการออกแบบ และ
พัฒ นาซอฟต ์แวร ์ที่ อ ยู่ บนพื้ น ฐาน ของ
Service ซึ่ ง เป็ นแนวคิด ที่ต อบสนองความ
ต้องการทางธุ ร กิจ ในอนาคต โดยท างาน
อยู่บนมาตรฐานเปิ ด ที่ไ ด้ รับ การยอมรับ
แนวคิดดังกลาวถู
ก น ามาประยุก ตใช
่
่
์ ้ เพือ
สนั บ สนุ นการออกแบบคุ ณ ลัก ษณะของ
Topic 1 : Web Services Overview
Introduction to SOA
สถาปัตยกรรมซอฟตแวร
์
์ (SOA) คือ ?
 สถาปั ต ยกรรมซอฟต ์ แวร ์
(Software
Architecture) ซึ่ ง อ ยู่ บ น พื้ น ฐ า น ข อ ง
แนวคิด เชิง บริก าร
(ServiceOrientation) โ ด ย นิ ย า ม ถึ ง วิ ธ ี ก า ร ใ ช้
Service ที่ มี ค ว า ม เ ป็ น อิ ส ร ะ ต่ อ กั น
(Loosely Coupled) หรือการเชือ
่ งโยง
Service แ บ บ ห ล ว ม ๆ ท า ใ ห้ ก า ร
Topic 1 : Web Services Overview
Introduction to SOA

สนับสนุ นการนา Service ทีพ
่ ฒ
ั นา
ไว้แลวกลั
บมาใช้ใหม่ (Reuse) ทา
้
ให้สามารถรองรับความต้องการของ
ผู้ ใช้ ซอฟต ์แวร ์ และกระบวนการ
ทางธุรกิจ (Business
Process)
ซึ่ ง เกิด จากการท างานร่ วมกัน ของ
Service ตามลาดับทีผ
่ ู้ใช้งานทาการ
Topic 1 : Web Services Overview
Introduction to SOA

SOA มาจากเทคโนโลยีการประมวลผล
แบบกระจาย (Distributed Computing)
จุดเดนของ
SOA คือ ไมยึ
่
่ ดติดกับ
ภาษาที่ ใ ช้ ในการพัฒ นาโปรแกรม มี
ความยืดหยุนสู
่ ง และสามารถทางานบน
ระ บบปฏิ บ ั ต ิ ก า รที่ ต่ า งกั น ไ ด้ เพรา ะ
SOA ไ ม่ ไ ด้ ถู ก อ อ ก แ บ บ ม า เ พื่ อ
เทคโนโลยีใดเทคโนโลยีหนึ่ง และไมยึ
่ ด
Topic 1 : Web Services Overview
Introduction to SOA
จุดเดนของ
SOA :
่
 Loose Coupling : Service จะรักษา
ความสั มพันธระหว
างกั
นไว้ แตพยายาม
่
่
์
ให้ มี ค วามอิ ส ระต่ อกัน มากที่ สุ ด โดย
ทราบเพียงบริการทีต
่ องการใช
้
้งานเทานั
่ ้น
้ กับ Service อืน
และไมขึ
่
่ น
 Service
Contract : Service ต้องมี
ข้อตกลง สาหรับการติดตอสื
่ ่ อสาร โดย
Topic 1 : Web Services Overview
Introduction to SOA
จุดเดนของ
SOA :
่
 Autonomy
:
Service จะควบคุม
Logic
ต่าง ๆ ทีอ
่ ยู่ภายในได้ด้วย
ตนเอง
 Abstraction
: Service จะต้องแยก
Logic (หรือส่วนการทางาน) ตาง
ๆ
่
ออกจากขอตกลงที
ก
่ าหนดไว้ใน Service
้
Contract
เพือ
่ ซ่อน
Logic จาก
Topic 1 : Web Services Overview
Introduction to SOA
จุดเดนของ
SOA :
่
 Composability
: กลุมของ
Service
่
สามารถท างานร่ วมกัน ได้ โดยน ามา
ประกอบกันเพือ
่ สรางเป็
น Service ใหม่
้
 Statelessness : ควรลดการเก็ บข้อมูล
ของกิจกรรม หรือสถานะตาง
ๆ ไว้ให้
่
น้ อ ย ที่ สุ ด เ พื่ อ ล ด ก า ร เ ชื่ อ ม โ ย ง กั น
(Coupling) ระหวาง
่ Service
Topic 1 : Web Services Overview
Introduction to Web Services.

เว็ บเซอรวิ
service)
คือ
์ ส (Web
ร ะ บ บ ซ อ ฟ ต ์ แ ว ร ์ ที่ อ อ ก แ บ บ ม า ห รื อ
เทคโนโลยี ท ี่ พ ัฒ นาเพื่ อ สนั บ สนุ นกา ร
แลกเปลี่ ย นข้ อมู ล กัน ระหว่ างเครื่ อ ง
คอมพิวเตอร ์ หรือระหวาง
่ Application to
Application ผานระบบเครื
อขาย
โดยที่
่
่
ภาษาที่ใ ช้ ในการติด ต่อสื่ อสารระหว่ าง
เครื่อ งคอมพิว เตอร ์ คือ
XML
Topic 1 : Web Services Overview
Introduction to Web Services.
ก าหนดมาตรฐานโดย
Standard
Organization โ ด ย ไ ม่ ขึ้ น กั บ ผู้ ผ ลิ ต
ซอ ฟ ต ์ แว ร ์ ใ ด ๆ แ ต่ ส า ม า รถ น า ไ ป
Implement บน Platform ของผู้ผลิต
ซอฟต ์แวร ์ต่ าง ๆ แล้ วน ามาใช้ งาน
รวมกั
นได้
่
 ขอตกลงในการติ
ดตอสื
้
่ ่ อสาร ถูกกาหนด
โดย Service Description ทีอ
่ ยูใน
่
รูปแบบของ WSDL

Topic 1 : Web Services Overview
Concept to SOA + Web Service
Topic 1 : Web Services Overview
Introduction to Web Services.
องคประกอบของ
Web Service :
์
 WSDL
(Web Service Definition
Language) คือ คาอธิบายรายละเอียด
ของบริการ
 SOAP
(Simple Object Access
Protocol) คือ ผู้ จัด เตรีย มรู ป แบบของ
Message ที่ ใ ช้ ร ะ ห ว่ า ง ผู้ ใ ห้ บ ริ ก า ร
และผูร
การ
้ องขอบริ
้
Topic 1 : Web Services Overview
มาตรฐานการใช้งาน Web Service
Topic 1 : Web Services Overview
การใช้งาน Web
ปัจจุบน
ั
Service ในองคกร
์
Topic 2
XML and XML
Schema
Topic 2 : XML and XML Schema
Introduction to XML
Extensible Markup Language :
 เป็ นแนวคิดพืน
้ ฐานทีส
่ าคัญของ Web Service
ี ารระบุ
 เป็ นภาษา Markup คือ ภาษาทีใ
่ ช้วิธก
เนื้อหาและจัดรูปแบบดวย(Text
file) ทีม
่ ี Tag
้
คลาย
HTML
้
 มีค วามสามารถในการแสดงผลผ าน
web
่
browser จึงถูกนามาใช้เป็ นสื่ อกลางในการ
แลกเปลีย
่ นขอมู
้ ลบนอินเตอรเน็
์ ต
 XML ยังอนุ ญาตให้ผูพั
้ ฒนากาหนด Tag ได้
Topic 2 : XML and XML Schema
Introduction to XML
จุดเริม
่ ตนของภาษา
XML:
้

ภาษา Markup ถูกพัฒนามาอยางต
อเนื
่อง ตัว
่
่
วา่ “Generalized Markup Language (GML)” ถูก
บริษท
ั IBM (ค.ศ. 1960) มีจุดประสงค ์ เพือ
่ ใช้
ข้อมูลรูปแบบของ (Text) ทาให้มีความสามารถ
การแลกเปลีย
่ นขอมู
่ างกั
น
้ ลบน Platform ทีต
่

ตอมามี
การพัฒนาภาษา
่
Markup ทีม
่ ค
ี วาม
Topic 2 : XML and XML Schema
Introduction to XML
จุดเริม
่ ตนของภาษา
XML:
้

ปี ค.ศ. 1980 เป็ นจุดเริม
่ ต้นของภาษา “Hyper
Markup Language (HTML)” โดยภาษานี้มจ
ี ุดมุง่
นาไปใช้แสดงผลข้อมูลบนอินเตอรเน็
์ ต ซึง่ ถือ
เครื่อ งมือ ที่ส าคัญ ที่ท าให้ อิน เตอร เน็
์ ตได้ รับ
นิยมสูงสุดในปัจจุบน
ั

การสร้างด้วย
HTML มีข้อจากัด คือขาด
Topic 2 : XML and XML Schema
Introduction to XML
จุดเริม
่ ตนของภาษา
XML:
้

การแกไขปั
ญหาของการแลกเปลีย
่ นข้อมูลทีอ
่ ยู่
้
Platform ท าให้ มี ก ารคิ ด ค้ นมาตรฐานใหม่
คือ Extensible Markup Language (XML) ทีด
่ งึ
ๆ ทีเ่ กีย
่ วข้องกับเว็บของภาษา SGML มาใช้
เข้าใจไดง้ ายขึ
น
้ โดย XML ถูกนาเสนอในปี
่
ภายใต้การดูแลของ W3C (World Wide Web
Topic 2 : XML and XML Schema
Introduction to XML
บทบาทของ XML ในปัจจุบน
ั :

XML มีบทบาทตอวงการ
่
IT อยางมาก
ใน
่
โดยเฉพาะเทคโนโลยี Web Service ทีถ
่ ูกสร้าง
รองรับการและเปลีย
่ นข้อมูลบนระบบเครือขาย
่
อยูต
่ วกัน
่ าง
่ Platform หรืออยูใน
่ Platform เดีย

XSL สาหรับนาเอกสาร XML มาแสดงผลลัพธ ์
Browser
Topic 2 : XML and XML Schema
Well-Formed XML Document
กฎพืน
้ ฐานในการเขียน XML (Well-Formed):


ไวยากรณ ์ คือ กฎเกณฑ ส
์ าคัญ ที่ใ ช้ สร้ าง
Element ของ XML จะต้องประกอบด้วย Tag
Tag สิ้ นสุด โดย 2 Tag จะมีชอ
ื่ เหมือนกัน
<INVENTORY>…</INVENTORY>

การกาหนดชือ
่ Tag จะคานึงถึง Case Sensitive

ทุกเอกสาร XML จะต้องมี Root Element และมี
Topic 2 : XML and XML Schema
Well-Formed XML Document
กฎพืน
้ ฐานในการเขียน XML (Well-Formed):
<INVENTORY>
<BOOK>
<TITLE>…. </TITLE>
</BOOK>
</INVENTORY>
โดยไมสามารถสลั
บตาแหน่งของ Tag ปิ ดได้
่

ช่องวาง
(Space) ในเอกสาร XML ทีเ่ กิดจาก
่
และ Spacebar จะเรียกวา่ White Space
Topic 2 : XML and XML Schema
Well-Formed XML Document
กฎพืน
้ ฐานในการเขียน XML (Well-Formed):

ก า ร ตั้ ง ชื่ อ
Element ข อ ง เ อ ก ส า ร
XML
อักขระ ตัวเลข และอักขระพิเศษได้ ยกเว้น
เครือ
่ งหมาย “&” และไมสามารถใช
่
้ ตัวเลข
อั ก ข ร ะ น า ห น้ า ชื่ อ ข อ ง
Element
เวนช
างชื
อ
่ Element ดวย
้ ่ องวางระหว
่
่
้
ไ ด้
Topic 2 : XML and XML Schema
องค์ประกอบของเอกสาร XML
เอกสาร XML มีส่วนประกอบหลัก 2 ส่วน คือ
 Prolog
Element คือ ส่วนของการประกาศ
เอกสาร XML สามารถบรรจุ ส่วนตาง
ๆ ได้
่

XML Declaration คือ ส่วนทีแ
่ จ้งให้ทราบวา่
เอกสาร XML โดยระบุ version ของ XML
การเขารหั
ส
้
<?xml version = “1.0” encoding = “tis-620” ?>
Topic 2 : XML and XML Schema
องค์ประกอบของเอกสาร XML

Prolog Element

DTD คือ เอกสาร XML รูปแบบหนึ่ง ทีใ่ ช้
ความถูกตองให
้
้กับขอมู
้ ลใน Element

Procession Instruction คือ ส่วนประมวลผล
XML Parser จะส่งให้กับภาษาทีใ่ ช้แสดงผล
เช่น Style Sheet, HTML, XSL และภาษาอืน
่ ๆ
บ XML ได้
สามารถทางานรวมกั
่
Topic 2 : XML and XML Schema
องค์ประกอบของเอกสาร XML
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
การกาหนด Element, Attributed และ Entity
ของ XML :
 Element
คื อ ส่ ว น ที่ ใ ช้ แสด ง โ คร ง สร้ าง
และเนื้อหาตาง
ๆ ของเอกสาร XML
่
 Element บนสุด เรียกวา
่ “Root Element”
ซึง่ สามารถมีไดเพี
่ วเทานั
้ ยง Element เดีย
่ ้น
 Element อื่น
ๆ ที่อ ยู่ภายใน
“Root
Element” เรียกวา่ “Nested Element”
 XML เป็ นเอกสารที่ ม ี โ ครงสรางแบบตนไม
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
การกาหนด Element, Attributed และ Entity ของ

กลาวได
่
้วา่ “Root Element” คือ Parent ที่
Child และ Grandchild

Element แบ่งตามโครงสร้ างได้ 3 ประเภท

Simple
Element คือ Element ที่ไ ม่มี
ภายใน เช่น TITLE, AUTOR, PUBLISHER, PAGE
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
การกาหนด Element, Attributed และ
Entity ของ XML :
 Element
แ บ ่ ง ต า ม โ ค ร ง ส ร้ า ง ไ ด ้ 3
ประเภท ดังนี้ (ตอ)
่
Empty
Element คือ Element ที่
ไมได
ข้อมูล หรือช่องวางใด
ๆ
่ บรรจุ
้
่
ไว้ภายใน โดย Empty Element
สามารถกาหนดได้ 2 รูปแบบคือ
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
ความแตกตางระหว
าง
่
่ Element และ Tag :
 Element คือ
Conceptual Object
กลาวคื
อ Element ถูกมองเป็ น Object
่
ทีม
่ ข
ี ้อมูล หรือมี Element
อืน
่ อยู่
ภายใน
 Tag คือ สิ่ งทีน
่ ามาใช้กาหนดตาแหน่ง
เ ริ่ ม ต้ น แ ล ะ ต า แ ห น่ ง สิ้ น สุ ด ข อ ง
Element ตัวอยางเช
่
่น
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
การกาหนด Attribute ให้ Entity :
 Attribute
คื อ การระบุ คุ ณ สมบัต ิบ าง
ประการให้กับ Element โดย Attribute
ไม่ ถือ เป็ นส่ วนหนึ่ ง ของข้ อมู ล จริง แต่ มี
ประโยชน์ ในการอธิ บ ายส่ วนเพิ่ ม เติ ม
ว
ให้กับ Element แตละตั
่
ค าของ
Attribute ต้องกาหนดไว้
่
ร ะ ห ว่ า ง เ ค รื่ อ ง ห ม า ย Double
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
การกาหนด Attribute ให้ Entity :
การก าหนดค ่า
Attribute ให้กับ
Element มากกวา่ หนึ่ง Attribute
<BOOK
ISBN=“973-76777-9-8”
SIZE=“19*24”>………</BOOK>
<BOOK
ISBN=‘973-76777-9-8’
SIZE
=
’19*24’>………</BOOK>
การนาเครือ
่ งหมาย Double หรือ
Single
Quote เป็ นส่วนหนึ่ งของ
ขอมูล Attribute

Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
แนะนา Entity :

Entity คื อ ก ลุ่ ม ข อ ง อั ก ข ร ะ ที่ ถู ก ก า ห น ด
แล้ว โดย
XML Parser จะประมวลผลกลุ่ม
ๆ แล้ วส่ งออกมาเป็ นผลลัพ ธ ์ Entity XML มี
ประเภท คือ

Entity ที่ กาหนดโดย W3C ประกอบดวย
้
Topic 2 : XML and XML Schema
XML Element, Attribute และ Entity
แนะนา Entity :


Entity ทีก
่ าหนดโดย W3C ประกอบดวย
้
มีคาเท
่ ากั
่ บ“

&quot;

&apos มีคาเท
่ ากั
่ บ‘
Entity ที่ ผ้พ
ู ฒ
ั นากาหนดเอง เนื่องจาก XML
เป็ นภาษาที่ใ ห้ อิส ระในการก าหนดข้ อมู ล
Topic 2 : XML and XML Schema
XML Namespace
Namespace คือ คานาหน้าของ
เอกสาร
Element ใน
XML โดยจะใช้ Namespace เมือ
่ มีการประกาศชือ
่
Element ที่ เ ห มื อ น กั น
แต่ ใ ห้ คว าม ห ม าย ห รื อ
ตางกั
น มีรป
ู แบบการประกาศ ดังนี้
่
<prefix:name>

prefix คือ ชื่อของ
Namespace หรือคา
Topic 2 : XML and XML Schema
XML Namespace
Topic 2 : XML and XML Schema
XML Namespace

อ้างถึงในรูปแบบ URI (Uniform
Identifier) เพือ
่ ให้ Web browser ทราบวา่
Namespace
งานเป็ นมาตรฐานจากแหลงใด
่
<element_name xmlns [:prefix] = URI>

element_name = ชือ
่ ของ Element ทีเ่ หมือนกัน

xmlns คือ
ค าหลัก
(Keyword) ทีใ
่ ช้ ก าหนด
Topic 2 : XML and XML Schema
XML Namespace

Namespace การเรียกใช้งาน XLS
(Extensible Stylesheet Language)
<xls:stylesheet
version=“1.0”
xmlns:xsl=“http://www.w3.org/TR/WD-xsl”>

ถ้ า ต้ อ ง ก า ร ใ ห้ ม า ตร ฐ า น เ ว็ บ เ พจ เ ป็ น
มาตรฐาน
XHTML ต้องประกาศ
Namespace ดังนี้
<xls:stylesheet
version=“1.0”
Topic 2 : XML and XML Schema
XML Namespace
Topic 2 : XML and XML Schema
Document Type Definition (DTD)
เนื่องจาก XML เป็ นภาษาทีใ่ ห้อิสระในการ
กาหนดขอมู
้ ล
ดังนั้นผู้พัฒนาสามารถกาหนด Entity ขึน
้ ให้
เองได้ แตต
่ อง
้
มีการประกาศความหมายของ Entity กอน
่
โดยประกาศไว้
ในส่วนของ Document Type Definition
 เป็ นสวนส าคั ญ ที่ ใ ชส าหรั บ ตรวจสอบ
Topic 2 : XML and XML Schema
Document Type Definition (DTD)
การกาหนด DTD ให้กับเอกสาร XML
มี 2 รูปแบบ
 กาหนด DTD ลงในเอกสาร XML
ตองมี
การประกาศ Document Type
้
Definition ทีถ
่ ก
ู ตอง
้
 กาหนด DTD ไวภายนอกเอกสาร
XML
้
เป็ นประโยชน ์อย างมากกรณี
ทเี่ อกสาร
่
XML มีโ ครงสรางซ้ า กัน มากกวา 1
Topic 2 : XML and XML Schema
Document Type Definition (DTD)
กาหนด DTD ลงในเอกสาร XML
Topic 2 : XML and XML Schema
Document Type Definition (DTD)
กาหนด DTD ไวภายนอกเอกสาร
XML
้
Topic 2 : XML and XML Schema
XML Data Schema
คื อ มาตรฐานการตรวจสอบควบคุ ม โครงสร้ างของ
เอกสาร XML
Topic 2 : XML and XML Schema
Extensible Stylesheet Language
เป็ นเทคโนโลยีการจัดรูปแบบนาเสนอของเอกสาร

เ ป็ น ภ า ษ า ส า ห รั บ จั ด รู ป แ บ บ (Formatting
Topic 3
SOAP, WSDL and
UDDI
Topic 3 : SOAP, WSDL and
UDDI
Introduction to SOAP
แนะนา Simple Object Access Protocol
(SOAP):
 SOAP
เ ป็ น โ ป ร โ ต ค อ ล ที่ ใ ช้ ส า ห รั บ
ขนส่ง (Transport) เอกสาร XML
 Web
Service จะใช้ SOAP เพือ
่
กาหนดวิธก
ี ารแลกเปลีย
่ นข้อมูลกัน บน
ระบบอินเตอรเน็
์ ต ซึง่ SOAP สามารถ
ท า ง า น ร่ ว ม กั บ โ ป ร โ ต ค อ ล ข น ส่ ง
Topic 3 : SOAP, WSDL and
UDDI
Introduction to SOAP
แนะนา Simple Object Access Protocol
(SOAP):
 Web Service ใช้เอกสาร XML ในการ
แลกเปลี่ย นข้ อมู ล โดยการส่ งเอกสาร
XML ผ่ านอิน เตอร ์เน็ ตจะใช้ SOAP
ซึ่ ง เป็ นโปรโตคอล ที่ ม ี พ ื้ น ฐานอยู่ บน
มาตรฐาน XML
 SOAP ใช้ ส าหรับ การแลกเปลีย
่ นข้อมูล
Topic 3 : SOAP, WSDL and
UDDI
Introduction to SOAP
แนะนา Simple Object Access Protocol
(SOAP):
 SOA
มี คุ ณ ส ม บั ติ ที่ ส า คั ญ คื อ
สามารถเคลือ
่ นย้ายข้อมูล XML ไปยัง
ปลายทางผานระบบอิ
นเตอรเน็
่
์ ต โดยไม่
ขึน
้ กับ Transport Protocol ตัวใดตัว
หนึ่ง
แ ต่ เ นื่ อ ง จ า ก HTTP เ ป็ น
Topic 3 : SOAP, WSDL and
UDDI
Introduction to SOAP
SOAP มีหลักเกณฑที
่ าคัญ
4 ข้ อ
์ ส
ดังนี้:
 Message Envelope
 กฎของการ Encoding
 ระเบียบแบบแผนของ RPC
 การใช้
Transport
Protocol
รวมกับ SOAP
Topic 3 : SOAP, WSDL and
UDDI
หลักเกณฑที
่ าคัญของ SOAP
์ ส
 Message Envelope ใช้กาหนดระเบียบ
แบบแผน ส าหรับ อธิบ ายเนื้ อ หา และ
รวบรวม
Message ต่าง ๆ เป็ น
แพ็กเกจ (package) นอกจากนี้ยงั ใช้
ส า ห รั บ ก า ห น ด เ ส้ น ท า ง แ ล ะ ก า ร
ประมวลผล Message อีกดวย
้
 กฎของการ Encoding
ใช้สาหรับ
ก าหนดระ เบี ย บแบบแผนส าหรั บ กา ร
Mapping ขอมูลของ application ไป
Topic 3 : SOAP, WSDL and
UDDI
หลักเกณฑที
่ าคัญของ SOAP
์ ส
 ร ะ เ บี ย บ แ บ บ แ ผ น ข อ ง
RPC มี ก า ร
ท างานในรู ป แบบของการส่ งค าร้ องขอ
(Request) และการตอบรับ (Response)
โ ด ย ข้ อ มู ล ที่ เ ป็ น ค า ร้ อ ง ข อ จ ะ ถู ก
จัดลาดับ และส่งให้กับ
Application
ปลายทาง เมือ
่ Application ปลายทาง
ไดรั
้ บขอมู
้ ลก็จะส่งการตอบรับกลับมา
โดย
SOAP ใช้กฎเกณฑของ
์
Remote Procedure Call (RPC) เป็ น
Topic 3 : SOAP, WSDL and
UDDI
หลักเกณฑที
่ าคัญของ SOAP
์ ส
 การใช้
Transport Protocol รวมกั
บ
่
SOAP
Simple Object Access
Protocol
เป็ นโปรโตคอลทีไ
่ มขึ
้ กับ
่ น
Transport
Protocol ใด กลาวคื
อ
่
SOAP ส า ม า ร ถ ท า ง า น ร่ ว ม กั บ
Transport Protocol ใดก็ได้ อยางไรก็
่
ตาม นิยมใช้โปรโตคอล HTTP ทางาน
รวมกั
บ SOAP ตามทีก
่ ลาวไว
่
่
้
Topic 3 : SOAP, WSDL and
UDDI
การส่งขอมู
SOAP
้ ลผาน
่
กระบวนการส่งข้อมูลระหวางผู
่
้ให้บริการ
และผูร
การ
้ องขอบริ
้
Topic 3 : SOAP, WSDL and
UDDI
SOAP Model
จุดประสงคของ
SOAP :
์
 จุ ด ประสงค หลั
คือ
์ ก ของ SOAP
กาหนดรูปแบบมาตรฐานให้กับ Message
โดย SOAP มีโครงสร้าง และรูปแบบ
ทีเ่ รียบงาย
ยืดหยุน
่
่ และมีประสิ ทธิภาพ
 SOAP ถูกออกแบบมาให้มีโครงสรางใน
้
รู ป แบบของ XML โดยมีส่ วนประกอบ
หลัก 3 ส่วนคือ SOAP Envelope,
Topic 3 : SOAP, WSDL and
UDDI
Introduction SOAP Model
โครงสรางพื
น
้ ฐานและหน้าทีข
่ อง SOAP :
้
 SOAP
Envelope
คือ เนื้อหา
(Content) ทัง้ หมดของเอกสาร
 SOAP Header คือ ส่วนอธิบายเอกสาร
SOAP โดยจะกาหนดหรือไมก็
่ ได ้
 SOAP Body คือ ส่วนทีอ
่ ธิบายวิธเี รียกใช้
งานบริการ และผลลัพธของบริ
การ
์
Topic 3 : SOAP, WSDL and
UDDI
Introduction SOAP Model
Topic 3 : SOAP, WSDL and
UDDI
โครงสรางของ
SOAP Message
้
โครงสราง
SOAP Message ประกอบดวย
้
้
3 คือ:
 Element Envelope
 Element Header
 Element Body
Topic 3 : SOAP, WSDL and
UDDI
โครงสรางของ
SOAP Message
้
Primitive MIME
MIME Attachment
Topic 3 : SOAP, WSDL and
UDDI
ส่วนประกอบของ SOAP Message
สามารถแบ่งส่ วนประกอบของ SOAP
Message ไดเป็
้ น 2 ส่วน ดังนี้ :
 Primary MIME
เป็ นส่วนบรรจุ Text และ XML ไว้
 MIME Attachment
Topic 3 : SOAP, WSDL and
UDDI
ส่วนประกอบของ SOAP Message
ส่วนทีเ่ ป็ น Text
และ
XML คือ
ส่วนประกอบหลักของ SOAP Message
 Element
Envelope เป็ น Element
หลักให้บรรจุ Element ยอยไว
่
้ภายใน 2
Element คือ Element Header และ
Element Body
 ส่ วนของ Element
Envelop และ
Element Body เป็ น Element ที่

Topic 3 : SOAP, WSDL and
UDDI
ส่วนประกอบของ SOAP Message
Element Envelope
และ
Body
สามารถบรรจุคาสั่ งได้มากกว่า
1
บล็อก
 บล็ อ กค าสั่ งใน
Element Header
เรียกวา่ “Header Entry”
 บล็ อ กค าสั่ งใน
Element
Body
เรียกวา่ “Body Entry”
 SOAP
Body ถูกออกแบบมาเพือ
่ บรรจุ

Topic 3 : SOAP, WSDL and
UDDI
Element Envelope
 Element
Envelope เป็ น element
หลักในโครงสรางของ
SOAP Message
้
ใ ช้ ส า ห รั บ บ ร ร จุ เ นื้ อ ห า ทั้ งEnvelope
หมดของ
SOAP Message ไวภายใน
ดังนี้
้
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle=" http://schemas.xmlsoap.org/soap/encoding">
Header
Body
</soap:Envelope>
Topic 3 : SOAP, WSDL and UDDI
Element Envelope
โครงสร้างของ Element Envelope ใน SOAP Message

รู ป ข้ า ง ต้ น แ ส ด ง โ ค ร ง ส ร้ า ง
Element
Envelope โดยเรียกใช้
แ ล ะ เ นื้ อ ห า
Namespace
นาหน้า (prefix) เป็ น soap

ระบุ URI เป็ น
“http://schemas.xmlsoap.org/soap/encoding”

มีการระบุ Attribute ชือ
่ encodingStyle ซึง่ ใช้
Topic 3 : SOAP, WSDL and
UDDI
Element Header
Element Header เป็ น Element ที่
จะกาหนดไว้ใน
SOAP
Message
หรือไมก็
่ ได ้
 การกาหนด Element Header จะช่วย
ให้เข้าใจ SOAP Message และเพิม
่
้
ความยืดหยุนให
้กับระบบยิง่ ขึน
่
 Header สามารถบรรจุ
Entry ไว้ได้
มากกวา่ 1 Entry แมว
้ า่ Header Entry

Topic 3 : SOAP, WSDL and
UDDI
Element Header
Header Entry จะช่วยจัดเตรียมบริการ
ตาง
ๆ ให้กับเนื้อหา (Content) ของ
่
Message
Body ทีอ
่ ยูใน
Element
่
Body (หรือเรียกวา่ “Payload”)
 Element Header และ Header Entry
ถู ก ใช้ เพื่อ แยกบริก ารต่าง ๆ ออกจาก
Payload เพือ
่ ให้ Payload เรียกใช้
บริการผาน
่ Header Entry แทน

Topic 3 : SOAP, WSDL and
UDDI
Element Header
Envelope
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
soap:encodingStyle=" http://schemas.xmlsoap.org/soap/encoding">
Header
<soap:Header>
<h:from xmlns:h="http://www.abc.com/Header”
soap:mustUnderstand="1">[email protected]
</h:from>
<h:report xmlns:h=http://www.abc.com/Headersoap:mustUnderstand=“1“>
1
</h:report>
</soap:Header>
Body
</soap:Envelope>
Topic 3 : SOAP, WSDL and UDDI
Element Header
จากรูป Header Entry ประกอบดวย
้ 2 Attributed ดังนี้:

Attributed
mustUnderstand แสดงให้ทราบว่า
นี้ จะเป็ นต้ องถูก ประมวลผล หรือ เป็ นเพีย ง
โดยเก็บข้อมูลชนิด Boolean (1 หรือ 0) ไว้
จะเก็บคาเป็
ั เอกสาร SOAP
่ น 1 คือให้ฝั่งทีร่ บ
ประมวลผล Header Entry ดวย
โดยคาเริ
่ ต้ น
้
่ ม
ของ mustUnderstand จะมีคาเป็
่ น 0
Topic 3 : SOAP, WSDL and
UDDI
Element Body

Element Body คือ Element สาคัญ
ของ SOAP Message ใช้สาหรับบรรจุ
เนื้อหาตาง
ๆ หรือ Payload
ของ
่
SOAP Message โดย Payload
สามารถใช้ RPC เพือ
่ เรียกดูข้อมูล ที่
อยูในรู
ปแบบ XML Message ไดดั
่
้ งภาพ
แสดงโครงสรางของ
Element Body ใน
้
SOAP Message
Topic 3 : SOAP, WSDL and
UDDI
Element Body
Envelope
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle=" http://schemas.xmlsoap.org/soap/encoding">
Header
Body
<soap:Body>
<GetNewsResponse xmlns="http://www.pttplc.com/ptt_webservice/">
<GetNewsResult><NEWS>
<NEWS_ID>2127</NEWS_ID>
<NEWS_DATE>15/10/08</NEWS_DATE>
<TOPIC>PTT Unveils the World’s Biggest PTT NGV Super </TOPIC>
<CONTENT>has presided the opening ceremony of PTT’s </CONTENT>
<URL>en/nc_na_dt.aspx&amp;K=MjEyNw==</URL>
</NEWS></GetNewsResult>
</GetNewsResponse>
</soap:Body>
</soap:Envelope>
Topic 3 : SOAP, WSDL and UDDI
Summary to SOAP
(Simple Object Access Protocol)

SOAP Envelope คือเอกสารในรูปแบบของ XML
ก าหนดโครงสร้ างออกเป็ นส่ วน ๆ อย่ าง

ส่วนต่าง ๆ ทีแ
่ ยกกัน อย่างชัด เจน เพือ
่ ใช้
รายละเอีย ดของส่ วนต่าง ๆ ท าให้ สามารถ
ว่ า ข้ อ มู ล แ ต่ ล ะ ส่ ว น คื อ อ ะ ไ ร
ใ ค ร จ ะ เ ป็ น
และขอมู
าหนด
้ ลส่วนไหนจาเป็ นตองก
้
Topic 3 : SOAP, WSDL and UDDI
การระบุข้อผิดพลาดด้วย Element Fault

Element
Fault ถูกเรียกใช้เมือ
่ เกิดข้อผิดพลาด
ประมวลผลเอกสาร SOAP

Element Fault ถูกเก็บไว้ใน Element Body ของ

โดยชือ
่ ของ Body Entry นี้ถก
ู เรียกวา่ Fault

Element
Faultcode
 Faultstring

Fault มี Element ย่อยอีก 4
Topic 3 : SOAP, WSDL and
UDDI
Element Fault
- Element faultcode
 ใช้ เพื่ อ ระบุ ส ภาวะของข้ อผิด พลาดที่ เ กิด ขึ้ น
โดยระบุ ชื่ อ ของข้ อผิด พลาดที่เ กิด ขึ้น และ
สามารถเขาใจได
โดยระบบหรื
อ Application
้
้
 ค ่ าข อ ง
Element นี้ จ ะ ถู ก ก า ห น ด โ ด ย
SOAP
 Element
fault สามารถเปลีย
่ นแปลงคาต
่ าง
่
ๆ ได้ ซึง่ มีทง้ั หมด 4 คา่ คือ
 versionMismatch,
MustUnderstand,
Topic 3 : SOAP, WSDL and UDDI
Element Fault
- Element faultcode มีทงั ้ หมด 4 ค่า ดังนี้

versionMismatch คือข้อผิดพลาดจากการอ้างถึง
Namespace ของ Element ไมถู
่ กตอง
้

MustUnderstand
Header
คือ ไม่สามารถประมวลผล
ที่ ก าหนดค่ าของ Attributed
ได้

Client
คือข้ อผิด พลาดจากการก าหนด
Topic 3 : SOAP, WSDL and UDDI
Element Fault
- Element faultstring

Element faultstring จัดเตรียมข้อมูลชนิด String
แทน
Error
Information
หรือคาอธิบาย
ขอผิ
้ ดพลาด

โดยข้ อมู ล ของ
Element นี้

แต่ Error Information ของ Element faultcode
ไวให
้ ้กับ Application
จั ด เตรี ย มไว้
Topic 3 : SOAP, WSDL and UDDI
Element Fault
- Element faultactor

Element faultactor ใช้สาหรับรายงานตาแหน่ง
แห ล่ ง ที่ เ กิ ด ข้ อ ผิ ด พ ล า ด ขึ้ น โ ด ย ค่ า ข อ ง
กาหนดในรูปแบบของ URL
- Element detail

Element detail ใช้จัดเตรียมรายละเอียดเพิม
่ เติม
ข้อผิดพลาดทีเ่ กิดขึน
้ ดังภาพทีแ
่ สดง Element
Topic 3 : SOAP, WSDL and
UDDI
Element Fault
Envelope
<soap:Envelope
xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle=" http://schemas.xmlsoap.org/soap/encoding">
Header
Body
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Application Error</faultstring>
<detail xmlns:fc=http://www.Services.com/ProcessingFault>
<fc:errorCode>889901</fc:errorCode>
<fc:errorMsg>Divide by Zero</fc:errorMsg>
</detail>
</soap:Fault>
</soap:Envelope>
Topic 3 : SOAP, WSDL and
UDDI
SOAP Encoding
 SOAP Encoding คือ กฎทีใ
่ ช้ในการ
เก็บขอมู
้ ลลงใน SOAP Message หรือ
ก า ร แ ป ล ง ข้ อ มู ล ใ ห้ เ ป็ น ร หั ส ข้ อ มู ล
(Encoding)
 SOAP Encoding ใช้กาหนดกฎเกณฑ ์
ทีแ
่ สดงให้เห็ นถึงชนิดข้อมูล
(Data
Type) ตาง
ๆ ทีก
่ าหนดขึน
้ เพือ
่ ใช้งาน
่
ภายในโปรแกรม
Topic 3 : SOAP, WSDL and
UDDI
SOAP Encoding
 โดย Attributed encodingStyle ทีก
่ าหนดไว้
ใน Element Envelope หรือ Element
อืน
่ ๆ
จะช่วยระบุถงึ กฎของการแปลงรหัส
ข้ อมู ล
(Encoding) Attributed
encodingStyle ไ ม่ ไ ด้ ถู ก ก าหน ด ค่ า เ ริ่ ม ต้ น
แต่โดยทั่ว ไปจะถู ก ก าหนดการเข้ ารหัส ข้ อมู ล
ดวย
้ XML Schema
Topic 3 : SOAP, WSDL and
UDDI
SOAP Encoding
1. Encoding Detail :
 การเข้ารหัสของ
SOAP เป็ นการแทน
ขอมู
่ องการ
้ ลในรูปแบบทีต
้
 ขอมู
้ ลอาจถูกเก็บอยูในส
่
่ วนของ Header
Entry หรือ Body Entry
 SOAP อาจจะไมมี
่ การกาหนด Encoding
ไวก็
้ ได ้
 หากต้องการใช้
SOAP
Encoding
Topic 3 : SOAP, WSDL and
UDDI
SOAP Encoding
1. Encoding Detail :
 Encoding
Schema ของ SOAP ที่
จั ด เ ต รี ย ม ไ ว้ ถู ก Encoding ด้ ว ย
XML Schema เ พื่ อ ใ ช้ อ ธิ บ า ย ช นิ ด
ข้ อมู ล ที่ ส ามารถใช้ ภายใน SOAP
ได้ โดยแบงเป็
่ น 2 ประเภท คือ
Simple Type
Compound Type
Topic 3 : SOAP, WSDL and UDDI
Simple Type

ชนิดขอมู
้ ฐาน
้ ลพืน

Build-In Datatype
<int>12345</int>
<string>KTC Com</string>

Build-In Datatype ไวใน
Element
้
<xs:element name=“firstname” type=“xs:string”/>
<xs:element name=“salary” type=“xs:float”/>

Derived Datatype
<firstName>Pornpan</firstName>
Topic 3 : SOAP, WSDL and UDDI
SOAP Encoding
 Enumeration

ซึ่ ง ใช้ ระบุ ค่าที่ส ามารถก าหนดให้ กับ ชนิ ด
พืน
้ ฐานได้
<xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema
elementFormDefault=“qualified”>
<xs:element name=“ProductColor”>
<xs:simpleType base=“xsd:string”>
<xs:enumeration value=“White”>
<xs:enumeration value=“Black”>
</xs:simpleType>
Topic 3 : SOAP, WSDL and UDDI
SOAP Encoding
 Array of Byte

Array of Byte หรือ Byte Array เป็ นการนา
เข้ารหัสด้วยอัลกอลิธม
ึ base64 เพือ
่ ให้อยู่
รู ป แ บ บ ข อ ง อั ก ษ ร (Text) โ ด ย แ ต่ ล ะ
ถูกเก็บไว้ใน Array ชนิด Byte ทีละตัว และ
กาหนดไวในส
้
่ วนของ XML Schema
<outputBase64 xsi:type=“SOAP-ENC:base64”>
QmFzZTY0
Topic 3 : SOAP, WSDL and
UDDI
Compound Type
 ขอมู
้ ลแบบ Compound Type คือ ขอมู
้ ล
ที่ อ ยู่ ใ น รู ป แ บ บ ข อ ง โ ค ร ง ส ร้ า ง
(Structural
Pattern) ประกอบด้วย
ขอมู
้ ล 2 ชนิด คือ
Struct (Structure)
Array
Topic 3 : SOAP, WSDL and
UDDI
Compound Type
Struct (Structure)
ชือ
่ Compound
Type
<xs:element name=“customerInfo”
xmlns:xs=“http://www.w3.org/2011/XMLSchema”>
<xs:complexType>
<xs:sequence>
<xs:element
name=“customerName”
type=“xs:string”/>
<xs:element
name=“customerID”
Derived
type=“xs:int”/>
Datatype
</xs:sequence>
</xs:complexType>
Topic 3 : SOAP, WSDL and UDDI
Compound Type
 Array
<enc:Array xmlns:enc=“http://www.w3.org/2011/06/soap-encoding”
xmlns:abc=“http://www.abc.com/data”
enc:arrayType=“abc:customerInfo[2]” >
<customerInfo>
<customerName>Pornpan</customerName>
<customerID>12345</customerID>
</customerInfo>
<customerInfo>
<customerName>Prapanpong</customerName>
<customerID>12346</customerID>
</customerInfo>
</enc:Array>
Topic 3 : SOAP, WSDL and
UDDI
Introduction to WSDL
Web Service Description Language
(WSDL) :
 WSDL คือ เอกสารทีอ
่ ยูในรู
ปแบบของ
่
XML ใช้อธิบายรายละเอียดของ Web
Service เพือ
่ ให้ Application ทีต
่ องการ
้
เรียกใช้
Web
Service ทราบ
รายละเอียดของบริการ
 WSDL
เป็ นภาษาที่ใ ช้ อธิบ าย
Topic 3 : SOAP, WSDL and
UDDI
Introduction to WSDL
Web Service Description Language
(WSDL) :
 WSDL ท าหน้ าที่เ ป็ น
Service
Description ภาษา WSDL ถูกคิดค้น
โดยบริษัท IBM และ Microsoft อยู่
แลของ W3C
ภายใตการดู
้
 รายละเอียดของ
WSDL จัดเตรียมไว้
ไดแก
่ ของ Web Service ชือ
่ เมธอด
้ ่ ชือ
Topic 3 : SOAP, WSDL and UDDI
Introduction to WSDL
เอกสาร WSDL ประกอบดวย
6 อีลเี มนต ์ ดังนี้ :
้

type : ใช้กาหนดรูปแบบของขอมู
ๆ
้ ลตาง
่

message

ใช้อธิบายข้อมูลทีใ
่ ช้แลกเปลีย
่ น
ผูใช
การ
้ ้บริการ และผูร
้ องขอบริ
้
:
protType : ใช้อธิบายการทางาน Operation ที่
เตรียมไว้
Topic 3 : SOAP, WSDL and
UDDI
กระบวนการรองขอบริ
การ
้
Service Requester
Client Application
7
soap request
Service Provider
HTTP
8
Service
1
soap response
WSDL
2
6
INTERNET
5
4
Registry
Registrar
3
Topic 3 : SOAP, WSDL and
UDDI
โครงสรางของเอกสาร
WSDL
้
เอกสาร WSDL สามารถแยกได้เป็ น 2
ส่วน คือ :
 Abstract
Description ประกอบด้วย
element ที่ ส า คั ญ คื อ
types,
message และ portType
 Concrete
Description ประกอบดวย
้
element ที่ ส า คั ญ คื อ
binding,
service และ port
Topic 3 : SOAP, WSDL and
UDDI
WSDL Document
Abstract Description
type
message
portType
Operation
Operation
Concrete Description
binding
Operation
service
port
นิยามชนิด
ข
ขอมู
้ อมู
้ ลลทีใ่ ช้
รับส่งระหวาง
่
การท
กัน างาน
ตาง
ๆ ที่
่
Service
จั
ดเตรียมไว้
ระบุ
โปรโตคอลที่
ระบุ
ใช
้ ตาแหน่งของ
Service
Topic 3 : SOAP, WSDL and UDDI
definitions
types
messag
e
porttype
operation
binding
operation
service
port
definitions เป็ น Root Element
ของเอกสาร WSDL
Topic 3 : SOAP, WSDL and
UDDI
Element : type

ใช้ ส าหรับ นิ ย ามข้ อมู ล ชนิ ด ต่ าง ๆ ที่
service ใ ช้ แ ล ก เ ป ลี่ ย น กั น โ ด ย
WSDL ไม่ ได้ ก าหนดรู ป แบบของการ
นิ ย ามไว้ แต่โดยทั่ว ไปจะอยู่ในรู ป แบบ
ของ XML Schema โดยจะแทรก
Element
Schema ไว้ภายใน เพือ
่
บอกให้ ทราบว่ าใช้ วิธ ีนิ ย ามชนิ ด ข้ อมู ล
ดวย
XML Schema โดยพิจารณาดัง
้
ภาพ
Topic 3 : SOAP, WSDL and UDDI
Topic 3 : SOAP, WSDL and UDDI
Element : message

Element
message

ภายในเอกสาร
คือ ข้อมูล ทีใ
่ ช้รับ-ส่ง
WSDL อาจจะมี
Element
มากกวา่ 1 element

Element
message ใช้สาหรับกาหนดข้อมูลใน
ติดตอสื
่ ่ อสาร

ข้อมูล ที่อยู่ใน
element
message นี้จะมี
กับขอมูลทีก
่ าหนดไวใน element types
Topic 3 : SOAP, WSDL and UDDI
Topic 3 : SOAP, WSDL and UDDI
Element : operation
ทาหน้ าที่ในการรับส่ง Message

ภายใน element operation สามารถบรรจุ element
ภายในได้ 2 ชนิด คือ


Element input ทาหน้าทีร่ อรับขอมู
้ ลการรองขอ
้

Element output ทาหน้าทีส
่ ่ งขอมู
้ ลกลับไป
อีลเี มน operation รองรับการรับส่งข้อมูล

Request-Response
4
Topic 3 : SOAP, WSDL and
UDDI
Element : operation
Request-Response
Topic 3 : SOAP, WSDL and
UDDI
Element : operation
One-Way

เมือ
่ ฝั่ง Client ส่งคาร้องขอแล้วจะไมมี
่
การหยุดรอคาตอบรับ
 การติดตอสื
่ ่ อสารในรูปแบบนี้จะใช้เฉพาะ
element input เพือ
่ รับคาร้องขอจาก
Client เทานั
่ ้น

Topic 3 : SOAP, WSDL and
UDDI
Element : operation
Solicit-Response
การรับส่งข้อมูลแบบ Solicit-Response
มี ลั ก ษ ณ ะ ก า ร ท า ง า น ต ร ง ข้ า ม กั บ
Request-Response คือ จะส่ งข้ อมู ล
เชือ
้ เชิญ (Solicit) ให้กับ Client กอน
่
แลวรอรั
บการตอบกลับจากฝั่ง Client
้
 โดยการใช้ element output เพือ
่ ส่งคา
เชือ
้ เชิญให้กับ Client และใช้ element
input เพือ
่ รับคาตอบรับจาก Client

Topic 3 : SOAP, WSDL and
UDDI
Element : operation
Notification
การรับส่งข้อมูลแบบ Notification มี
ลักษณะการทางานตรงข้ามกับ One-way
คือ ฝั่ง Server จะส่งข้อมูลให้กับฝั่ง
Client ดวย
element output โดยไม่
้
รอรับการตอบกลับ
 โดยทั่ว ไปจะใช้ เพื่อ แจ้ งข ่าวสารต ่าง
ๆ
ให้ฝั่ง Client ให้รับทราบ
 Element ทีใ
่ ช้จะมีเพียง element output
เทานั้น

Topic 3 : SOAP, WSDL and
UDDI
Element : portType
เ ป็ น ก า ร ท า ง า น ต่ า ง ๆ ที่ Service
จัดเตรียมไว้
 Element
proType ใช้อธิบายการ
ดาเนินการตาง
ๆ ของ Service ดวย
่
้
การกาหนด Element operation ไว้
ภ า ย ใ น เ พื่ อ บ อ ก ร า ย ล ะ เ อี ย ด ข อ ง
Message ที่ Service ใช้ในการรับส่ง
ขอมู
้ ล
 ภายใน
Element portType อาจบรรจุ
Topic 3 : SOAP, WSDL and UDDI
Topic 3 : SOAP, WSDL and UDDI
Element : binding
ระบุ Protocol ที่ใช้ใน Service

เพือ
่ อธิบายวา่ Service นี้ใช้ Protocol SOAPHTTP
binding ใช้ ระบุ ร ายละเอีย ดของ
รูปแบบข้อมูลของ operation และ message ที่
Element protType

Element

Element binding ประกอบดวย
2 Attributed ที่
้
Topic 3 : SOAP, WSDL and UDDI
Topic 3 : SOAP, WSDL and UDDI
Element : port
ระบุตาแหน่ งของ Service


ระบุจุดปลายทางของ Service วาอยู
ที
่ าแหน่ง
่
่ ต
Element port ใช้สาหรับกาหนดตาแหน่งของ
binding ไปยัง Web service โดยจัดเตรียมชือ
่
ตาแหน่งของ Web Service ไว้ในรูปแบบของ
Topic 3 : SOAP, WSDL and UDDI
Introduction to UDDI
Universal Description Discovery and Integration:


UDDI เปรีย บเสมือ นนายหน้ าที่จ ัด หา Service
Broker)
UDDI เป็ นตัวกลางในการติดตอสื
่ ่ อสารระหวาง
่
ให้บริการ (Service
(Service Requester)

Provider) และผู้ร้องขอ
UDDI ท าหน้ าที่ จ ั ด เตรี ย มข้ อมู ล ต่ าง
ในการติดตอสื่ อสารกันของทัง้ สองฝาย
ๆ
ที่
Topic 3 : SOAP, WSDL and UDDI
การลงทะเบียน
การลงทะเบียน Service มีอยู่ 2 ประเภท คือ:

Public Registry
การจัดตัง้ ข้อกาหนดของ UDDI โดยผู้ผลิต
ชั้นนาตาง
ๆ เพือ
่ เป็ นศูนยกลาง
ในการ
่
์
Service
 Private Registry


การจัด ตั้ง ข้อก าหนดของ
UDDI เพือ
่ ใช้
Exercise 1
Calling External Web
Service of PTT (WSDL,
SOAP)
by SOAPUI tools
Exercise 1 :
Calling External Web Service of
PTT
(WSDL, SOAP) by SOAPUI
Tools
ผู้เรียนทาการใช้โปรแกรม
soapUI
ทาการเรียกใช้ Web Service โดยเรียก
ผาน
WSDL ของบริการ PTT เพือ
่
่
ตรวจสอบราคาน้ า มัน ,
RD เพื่อ
Exercise 1 :
Result
Exercise 1 :
Result
Exercise 2 :
Create Web Service Project
(Hello Web Service)
ผู้เรียนทาการใช้โปรแกรม netbeans
ทาการเรียกสร้าง Web Service โดย
เรียกผาน
WSDL ของบริการ PTT
่
เพือ
่ ตรวจสอบราคาน้ ามัน,
RD เพือ
่
ตรวจสอบเลขประจาตัวประชาชน และ
เรียกผาน
WSDL ของ
Website
่
Exercise 3 :
Create Servlet Call Web
Service Spell Check
ผู้เรียนทาการใช้โปรแกรม
Servlet
invoke webs service ทาการเรียกใช้
Web Service โดยเรียกผาน
WSDL
่
ของบริการ Website Xmethod
Time 1:30 Hour
Exercise 4 :
Create Web Service technology
in StrutsCrudWeb (Web
Service Provider)
ผู้เรียนทาการใช้โปรแกรม
Web
Service ของ StrutsCrudWeb โดยทา
การ Provider Service ไว้
2
service
method
ดัง นี้
getStudentAll, getStudentByID
Exercise 5 :
Create Struts Project for invoke
Web Service provider
(SturtsCrudWeb)
ผู้ เรีย นท าการสร้ างโปรเจ็ ค Struts
Framework เพือ
่ ทาการ invoke Webs
Service ของ StrutsCrudWeb
Time 1:30 Hour
DISCUSSION &
QUESTION
Add Your Company Slogan
Thank you
Company Logo