520442-SOA: Web Service/REST

17/12/2012 3:47 PM Study 820 views

 Lecture 4 :  Web Service

What are Web Services?
     
Web service เป็นซอฟต์แวร์ระบบที่อ้างอิงด้วย URI และอธิบาย document ซึ่งเป็น XML  document มีความสมบูรณ์ในตัวมันเองกับฟังก์ชั่นที่มันให้เราใช้งาน มีหลายๆ โมดูลมาผสมกันผ่านทางเน็ตเวิร์กเพื่อทำงาน, แก้ไขปัญหา, ทำ transaction ได้ โดยทำในนามของ user หรือ application

– Web Service รวมไปถึง Function ทางธุรกิจ
1. self-contained business task : งานเกี่ยวกับธุรกิจที่มีความสมบูรณ์ในตัวมันเอง เช่ร การโอนเงิน ถอนเงิน
2. full-fleded business task : เป็น Business Processเต็มรูปแบบเช่น ระบบการซื้ออัตโนมัติ
3. application
4. service-enabled resource : เป็นทรัพยากรที่นำมาทำ service ได้ เช่นการเข้าถึง database ที่อยู่ใน server

SOA Architecture 

http://www.w3.org/2003/Talks/0521-hh-wsa/slide5-0.html

1. Service Provider จะประกาศ (Publish) บริกา่รของตนเองไปยัง Service Broker
2. Service Consumer ทำการค้นหาบริการผ่านทาง Service Broker ตามที่ตัวเองต้องการ
3. Service Broker จะทำการส่งผลการค้นหามาให้ Service Consumer
4. Service Consumer ทำการขอข้อมูลของบริการที่เลือกจาก Service Broker
5. Service Broker ส่งข้อมูลของบริการให้
6. Service Consumer ทำการเรียกใช้ (Invoke) บริการดังกล่าวผ่าน Service Provider
7. Service Provider ส่งผลให้ Service Consumer

4 ขั้นตอนในการประกาศใช้ Web Service

  • 1. Service Implementation : การสร้างบริการ
    • การสร้างบริการใหม่โดยเริ่มจาก เขียนโค๊ด ออกแบบ เผยแพร่และปรับใช้เว็บเซอร์วิส
    • ต่อเติมบริการที่มีอยู่ให้ดีขึ้น
    • ปรับปรุงระบบเก่าโดยนำมาพัฒนาหรือเพิ่มเติม
  • 2. Service Publication : ประกาศใช้เซอร์วิส
    • เขียนคำอธิบายเอกสารเกี่ยวกับเว็บเซอร์วิส
    • ประกาศรายละเอียดเอกสารไปยัง UDDI
  • 3. Service Discovery (ค้นหาบริการ) และ 4. Service Invocation (เรียกใช้งาน)
    • Service discovery คือกระบวณการในการค้นหา service provider และดึงข้อมูลที่อธิบายมาตามที่ client ต้องการ โดยการดึงข้อมูลอาจพิจาณาจาก ชนิดของบริการ, ราคา, จำนวนของ provider ที่ต้องการ ซึ่งกระบวณการค้นหาไม่ขึ้นกับ Architecture ของ Registry
      หลังจากค้นหาเจอ service ที่ต้องการแล้ว service developer จะรูว่า web service อยู่ที่ไหน จะเรียกได้อย่างได้ (URI) , ความสามารถ และการติดต่อ- ชนิดของ Service Discovery
      1. Static : ต้องใช้คนในการค้นหา service และเลือก provider ที่ตรงตามความต้องการมากที่สุด จากนั้นก้ต้องเอาข้อมูลมา hard code เข้าไปในตัว program client
      2. Dynamic : เขียนโปรแกรมให้ไปค้นหา service provider ที่ต้องการ โดยมีการพิจาณาตาม Ouality of Service, ความปลอดภัย, ราคา, ประสิทธิภาพ ซึ่งเป็นตัวกำหนดว่าต้องการ service แบบไหน เมื่อค้นหาเจอแล้ว สามารถ connect ได้โดยตรง
    • Service Invocation : จะติดต่อไปยังผู้ให้บริการและร้องขอ WSDL ผ่าน URI เพื่อขอใช้บริการ

Underlyting Technologies :

  • Directory : Public & Find Service    การประกาศและจัดกลุ่มของ Directory โดย UDDI
  • Inspection : Find Service on server  การตรวจสอบและค้นหา โดย DISCO
  • Description : Formal Service Description การจัดรูปแบบของเอกสาร โดย WSDL
  • Wire Format : Service Interaction การส่งข้อความสื่อสารกัน โดย SOAP
  • Universal Data Format  รูปแบบของข้อมูล โดย XML
  • Ubiquitous Communication  : การติดต่อสื่อสารผ่านทาง Internet

Web Service ประกอวยด้วย 3 ส่วนคือ 

  • SOAP (Simple Object Access Protocol)
    เป็น service ในรูปแบบการออกแบบโมเดลสื่อสารเป็นโปรโตคอลในการแลกเปลี่ยนข้อมูลระหว่างกันในระดับชั้น Application Layer โดยอาศัยอินเตอร์โปรโตคอล HTTP, SMTP อ่านเพิ่มเติม
  • UDDI (Universal Description, Discovery and Integration)
    เป็น Directory  ที่จัดเก็บหรือลงทะเบียนเว็บเซอร์วิส โดยจะเก็บข้อมูลของบริการที่ผู้ใช้บริการได้ลงทะเบียนไว้ เพื่อให้ผู้ร้องขอบริการเข้ามาค้นหาบริการหรือรายละเอียดที่เกี่ยวข้องกับบริการที่ต้องการ อ่านเพิ่มเติม
  • WDSL (Web Service Description Language)
    เป็นภาษาที่อธิบาย web service ทำให้ผู้เรียกใช้ web service หรือโปรแกรมที่เรียกใช้ ทราบว่ามี operation อะไรให้บริการและแต่ละ operation จะต้องส่งข้อมูลอะไรและได้รับข้อมูลใดกลับมาตลอดจนโปรโตคอลที่ใช้ในการติดต่อ web service อ่านเพิ่มเติม
  • *ในส่วนนี้แนะนำให้อ่านเพิ่มเติมจาก link ที่แปะไว้ดีกว่าเพราะเค้าเขียนไว้เข้าใจอยู่แล้วและเนื้อหาครอบคลุมกับที่อาจารย์สอนเลย

 

Lecture 5 : REST-Based Service Oriented Architecture (SOA)

RERT (REpresentational State Transfer)

     เป็นรูปแบบของสถาปัตยกรรมซอฟแวร์ทำงานแบบกระจายที่มองว่าข้อมูลต่างๆเป็น Resource ซึ่งสามารถเรียกใช้ผ่านโปรโตคอล HTTP และข้อมูลที่ส่งกลับมาให้ผู้ใช้เป็นข้อมูลแบบ XML ใดๆก็ได้ ขึ้นอยู่กับผู้เลือกใช้ REST web service เพียงแค่ทราบ URL และการส่งข้อมูล XML ก็สามารถดึงข้อมูลที่ตนเองต้องการได้
ลองอ่านตามนี้ก่อนนะครับ : http://spring66.com/blogs/?p=593

 

ขอบคุณข้อมูลจาก :
http://www.kitpongshipping.com/EDI-%E0%B8%84%E0%B8%B7%E0%B8%AD.html
http://don-jai.com/web-services-basics/
http://don-jai.com/universal-description-discovery-and-integration-uddi/
http://don-jai.com/web-service-description-language-wsdl/
http://don-jai.com/simple-object-access-protocol-soap/
http://spring66.com/blogs/?p=593
http://www.boarddev.com/forum/index.php?topic=3707.0
http://www.informatics.buu.ac.th/~kantima/887100_IT4/data887100/Ch5/SOAIntro.htm

, , , , , , , , , ,