Web Services Basics

Web Services Basics

•   Introduction – definitions

Service Oriented Paradigm

– Service Oriented Paradigm เป็นลักษณะที่เป็น programming ที่มองทุกอย่างเป็น service ที่เอามาใช้ในการพัฒนา application (application เกิดจากการนำ web service หลายๆ อันมารวมกัน) ซึ่งการพัฒนา application อย่างนี้จะทำได้อย่างรวดเร็วเนื่องจาก เอา web service เดิมมาต่อยอด และมีค่าใช้จ่ายต่ำ รวมไปถึงง่ายต่อการนำมารวมกัน

What are Web Services?

– Web service คือ อะไรที่อธิบายตัวมันเองด้วย 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

•   Software as a service

Application Service Providers : ASP

– ASP เป็นโมดูลที่เกิดก่อน web service โดยเป็น model ที่แทนการซื้อซอฟต์แวร์มาติดตั้งในเครื่อง ซึ่งตอนนั้นอินเตอร์เนตเริ่มบูม ก็เลยมีการคิดว่าต้องการให้ผู้ใช้มาใช้ application บนเครื่องเรา

– ASP เป็น application ที่ให้เช่าได้สำหรับสมาชิก ตัว application ถูกพัฒนาขึ้นมาโดยประกอบด้วยส่วนของ user interface, work flow , ขั้นตอนการทำงานต่างๆ ซึ่งทั้งหมดเอามาพัฒนารวมกันเพื่อเป็น solution ให้กับคนที่สนใจ โดยที่ provider จะใส่ application บน host ของเค้าแล้ว customer ก็จะเข้ามาใช้ ดังนั้นแล้วโอกาสที่ customer จะ customize application จะน้อย ซึ่งมีทางออกคือ ASP ก็จะให้ดาว์นโหลดเป็น software module มาบนเครื่องเรา และเราก็สามารถปรับเปลี่ยนการทำงานได้บ้าง ซึ่งจะได้ใช้ทางออกนี้เมื่อใช้กับสำนักงานที่มีบาง software ที่ไม่ support  client/server model

ASP vs  Web Services

– เนื่องจาก ASP Model ใช้ concept Software as a service ทำให้มีข้อจำกัดหลายอย่าง
1. การที่มันไม่สามารถที่จะทำ application ที่มัน Interactive มากๆ ซึ่งจะให้ traffic เยอะก็จะเกิด delay และมีการกิน bandwidth เยอะ
2. การที่ไ่ม่สามารถจะ provide application ที่ customize ได้ตามต้องการ
3. การที่ไม่สามารถนำ application มารวมกันได้

– มีการปรับปรุง model ของ ASP โดยการพัฒนา architecture ใหม่
1. พัฒนาให้สนับสนุนการ interactive กันแบบ asynchronous
2. สามารถที่จะใช้มาตรฐาน XML ซึ่งเป็นภาษาที่ออกแบบขึ้นมาเพื่อสื่อความหมาย
3. สามารถที่จะทำให้การสื่อสารระหว่าง application ต่างๆ บน อินเตอร์เนตง่ายขึ้นโดยใช้มาตรฐานที่เหมาะสม

Are ASP, Software-as-a-Service, and Web Service the same?

– ASP : Privider มี application อยู่บนโฮสต์ และ customer เรียกใช้ application

– Software as a service :  customer สามารถดาว์นโหลดโมดูลมาไว้ที่ client ได้ แต่ยังไม่สามารถ customize ได้ 100%

– Web service : มีฟังก์ชั่นโมดูลย่อยๆ ของแต่ละโฮสต์ที่สามารถให้ตัว client execute และเรียกใช้ได้แล้วส่งผลกลับมา

•   Where can services be used?

Enterprise Application Integration : EAI

เนื่องจากในองค์กรมีหลายแผนกแต่ละแผนกจะมีฐานข้อมูลของตัวเอง สามารถใช้ web service มาเป็นตัวช่วยในการแลกเปลี่ยนข้อมูลในองค์กรได้ง่ายขึ้น ทำให้การ Intergration เร็วขึ้นและ cost ลดลง, ลด cost ของการบริหารจัดการและ infrastructure deployment , ลดความต้องการทางด้านทักษะ, มีการนำเอาของเดิมมาพัฒนาใหม่

e-Business integration : ใช้ระหว่างองค์กร

– การให้บริการกับลูกค้าในองค์กร เช่น บริษัทประกันภัยต้องการเชื่อมระบบของลูกค้าที่เป็นองค์กรเพื่อเวลาที่จะเคลมจะได้เร็วขึ้น
– การเรียกใช้บริการจาก partner , supplier
– ต้องมีมาตรฐานและ infrastructure ที่แชร์กันเพื่อที่จะลดอุปสรรคในการ integrate application หรือว่าคุยกันข้ามองค์กร

•   Characteristics of web services

Types of Web Services

– Information Service : เป็นลักษณะถามไปตอบมา แบ่งได้เป็น 3 ระดับ
1. Content-Service : ex. ข้อมูลการพยากรณ์อากาศ
2. Simple trading service : เอา content service มา integrate กัน
3. Information Service : ส่ง request ไปทำ operation จะมี proxy port เปิดไว้ให้รับ request เข้ามา execute process ต่างๆ แล้วส่งผลกลับไป เช่น การจองที่พัก

– Complex Service : มีการ coordinate กันของ assembly และ invocation หลายๆ service ที่มีอยู่ที่อยู่ในหลายๆประเภทขององค์กร มองว่าเป็นองค์กรที่มันมีหลากหลาย

Service Properties and State

–  Functional and non-functional properties
1. Functional : อธิบายลักษณะที่เกี่ยวข้องกับกระบวณการทำงาน , operation ของมันที่มี จะอธิบายพฤติกรรมของ web service ในภาพรวม เช่น วิธีการที่จะเรียกใช้ service
2. Non-functional: พูดถึงลักษณะอื่นๆที่เป็นในเชิงคุณภาพ เช่น service metering and cost, performance metrics (response time or accuracy), security, authorization, authentication, scalability, availability

– Stateless or stateful services:
1. Stateless : service ที่สามารถเรียกใช้ซ้ำ โดยที่ไม่ต้องมีการ maintain , ไม่เก็บสถานนะ
2. Stateful : service ที่มีการเก็บข้อมูลเกี่ยวกับสถานะจาก execute ครั้งนึงไป execute ครั้งถัดไป

Loose Coupling and Granularity

Loose coupling : การเชื่อมต่อแบบหลวมๆ จะเป็นตัวบอกถึงการขึ้นต่อกันของระบบ 2 ระบบ

Service granularity : บอกถึงความซับซ้อนของตัว service ว่าซับซ้อนแค่ไหน
1. Simple Service :  fine-grained
2. Complex Service : coarse-grained
3. Coarse-grained Communication : ประกอบด้วยข้อมูลที่มีโครงสร้างขนาดใหญ่และมีข้อมูลมาก รวมไปถึงสนับสนุนการทำงานที่เป็น loose coupling

Synchronicity and Well definedness

– Sychronicity:
1. Synchronous or remote procedure call (RPC)-style
2.  Asynchronous or message (document)-style

Well-definedness : webservice เป็น self-describing คือการที่มันสามารถเข้าใจได้ด้วยตัวมันเอง โดยอธิบายด้วย WSDL

•   Service-oriented architecture

โครงสร้างสถาปัตยกรรมระบบที่เน้นการ ให้บริการเป็นหลัก เรียกว่า Service -Oriented Architecture: SOA ประกอบด้วย 3 ส่วนหลัก คือ
1. ผู้ให้บริการ (Service Provider) ที่ทำการประกาศ (Publish) บริการขององค์กรไปยัง ไดเรคทรอรี่ที่เก็บทะเบียนของการบริการ
2. ตัวแทนผู้ให้บริการ (Service Registry) โดยผู้ให้บริการต้องลงทะเบียน เพื่อระบุชื่อบริการ และพารามิเตอร์ หรือเงื่อนไขที่จะสามารถเรียกใช้บริการนั้น ได้ ด้วยการใช้มาตรฐาน WSDL:Web Services Description Language ในการอธิบายว่าโปรแกรมนั้น จะถูกเรียกใช้งานได้อย่างไรทั้งนี้ตัวแทนผู้ให้บริการเอง จะบันทึกและจัดเก็บบริการต่างนั้น โดยใช้มาตรฐานของระบบไดเรคทรอรี่ ที่เรียกว่า UDDI :Universal Description, Discovery and Integration ซึ่งจะช่วยกำหนดการลงทะเบียนการค้นหา และเข้าถึงบริการที่อยู่ในไดเรคทรอรี่
3. ผู้ขอใช้บริการ (Service Requester) เป็นเครื่องคอมพิวเตอร์ปลายทาง ที่ต้องการเข้าไปสืบค้น หารายการ บริการ จากตัวแทนผู้ให้บริการ เมื่อพบว่าบริการนั้น อยู่ที่ผู้ให้บริการใด ก็จะเรียกใช้ (bind) ไปยังผู้ให้บริการนั้นๆ ได้โดยตรงต่อไป

Leave a comment