การพัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยีจาวา
การพัฒนาเว็บเซอร์วิสสามารถแบ่งได้ตามบทบาทของผู้เกี่ยวข้องคือ การพัฒนาเพื่อเป็นผู้ให้บริการ การพัฒนาเพื่อเป็นผู้ใช้บริการ และการพัฒนาสำหรับ Service Registry เทคโนโลยีจาวาที่สามารถจะพัฒนาเว็บเซอร์วิสได้จะอยู่ในแพลตฟอร์มที่เป็น Java EE โดยใน Java EE 5 ได้กำหนดคำสั่ง API สำหรับภาษาจาวาในการเรียกใช้ XML ต่างๆ ดัง
· JAX-WS (Java API for XML-Based Web Services) เป็นชุดคำสั่งภาษาจาวาเพื่อพัฒนาให้บริการเว็บเซอร์วิสและเรียกใช้เว็บเซอร์วิส โดยจะสนับสนุนมาตรฐานต่างๆของ W3C เช่น SOAP และ WSDL และสนับสนุนการส่งข้อมูลทั้งแบบ Asynchronous และ Synchronous พร้อมทั้งทำการ binding ข้อมูลโดยใช้ JAXB ดังนั้นนักพัฒนาโปรแกรมสามารถใช้ภาษาจาวาสร้างและเรียกเว็บเซอร์วิสได้ โดยไม่จำเป็นต้องพัฒนา SOAP หรือ WSDL เอง
· JAXB (Java Architecture for XML Binding) เป็นชุดคำสั่งภาษาจาวาเพื่อทำการจับคู่ (mapping) ข้อมูลที่เป็นภาษา XML กับออปเจ็คที่เป็นจาวาคลาส
· JAXP (Java API for XML Processing) เป็นชุดคำสั่งภาษาจาวาเพื่อแปล แปลง ตรวจสอบความถูกต้อง และค้นหา เอกสารหรือไฟล์ที่เป็นภาษา XML
· SAAJ (SOAP with Attachments API for Java) เป็นชุดคำสั่งภาษาจาวาเพื่อสนับสนุนการส่งเอกสาร XML ผ่านอินเตอร์เน็ต
· JAX-RPC (Java API for XML-Based RPC) เป็นชุดคำสั่งสำหรับพัฒนาเว็บเซอร์วิสเช่นเดียวกับ JAX-WS แต่จะใช้สำหรับ J2EE เวอร์ชัน 1.4 และสนับสนุน SOAP 1.1
· WSIT (Web Services Interoperability Technology) เป็นชุดคำสั่งภาษาจาวาเพื่อเชื่อมโยงระหว่าง Java EE และ .NET 3.0 ช่วยในการพัฒนาโปรแกรมผ่านสถาปัตยกรรม SOA
สำหรับแพลตฟอร์ม Java SE จะมี API สำหรับ XML อยู่ในเวอร์ชัน 6 (Java SE 6) โดยจะมีชุดคำสั่ง JAX-WS 2.0 JAXB 2.0 และ SAAJ 1.3
การพัฒนาเพื่อให้บริการเว็บเซอร์วิสจะต้องใช้แพลตฟอร์ม Java EE ซี่ง Server ที่เป็น Java EE จะมองการให้บริการเว็บเซอร์วิสเป็นเพียงพอร์ตหรือช่องทาง (channel)หนึ่งในการบริการเซอร์วิส ดังนั้นจึงไม่มีผลทำให้สถาปัตยกรรมเปลี่ยนไป และสามารถนำคอมโพเน้นท์ของ Java EE (เช่น Session Bean) ที่มีอยู่มาพัฒนาเป็นเว็บเซอร์วิสได้โดยง่าย นอกจากนี้การพัฒนาเว็บเซอร์วิสบนเทคโนโลยีจาวา ยังสามารถที่จะได้ใช้จุดเด่นของแพลตฟอร์ม Java EE ในด้านความปลอดภัย ความเชื่อมั่น (Reliability) และการรองรับผู้ใช้จำนวนมาก (Scalability)
เว็บเซอร์วิสคือพอร์ตหนึ่งในแพลตฟอร์ม Java EE ซึ่งจะทำงานภายใน Java EE Container โดย container จะเป็น Runtime environmentของคอมโพเน้นท์ที่เป็นเว็บเซอร์วิส โดยมีคำสั่ง JAX-WS หรือ JAX-RPC ในการที่จะติดต่อกับ Runtime environment อีกชั้นหนึ่ง โดยทั่วไปเราสามารถที่จะสร้างคอมโพเน้นท์ของเว็บเซอร์วิสได้สองประเภทดังแสดงในรูปที่ 5 คือ
· เว็บเซอร์วิสแบบWeb-tier (โดยใช้ Servlet endpoint) ตัวอย่างเช่น Tomcat หรือ Axis
· เว็บเซอร์วิสแบบEJB-tier (โดยใช้ Session Bean endpoint) ตัวอย่างเช่น Sun Java Application Server
การพัฒนาเว็บเซอร์วิสสำหรับหน่วยงานขนาดเล็กอาจสามารถทำได้โดยใช้ เว็บเซอร์วิสแบบ Web-tier แต่หากต้องพัฒนาเพื่อรองรับผู้ใช้จำนวนมากจำเป็นต้องใช้ เว็บเซอร์วิสแบบ EJB-tier ดังนั้นผู้พัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยีจาวาควรจะมีความเข้าใจเรื่อง Application Server และสามารถพัฒนา EJB ได้
แม้หลักการของเว็บเซอร์วิส จะอิงอยู่กับมาตรฐานต่างๆ แต่การพัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยี จาวาสามารถทำได้โดยไม่ต้องพัฒนาโพรโทคอล SOAP หรือ WSDL โดยตรง นอกจากนี้ยังมีเครื่องมือเพื่อให้สามารถพัฒนาโปรแกรมได้โดยง่ายเช่น NetBeans 5.5 ผู้ที่สนใจจะพัฒนาเว็บเซอร์วิสโดยใช้ NetBeans
รูปแสดง Java Web Service Components
บทสรุป
เว็บเซอร์วิสเป็นซอฟต์แวร์คอมโพเน้นท์ ที่ให้บริการผ่านเทคโนโลยีอินเตอร์เน็ตโดยใช้มาตรฐานเปิด มาตรฐานพื้นฐานของเว็บเซอร์วิสประกอบด้วย XML SOAP WSDL และ UDDI เว็บเซอร์วิสเป็นเทคโนโลยีที่เหมาะสมในการนำไปพัฒนา SOA ทั้งนี้เนื่องจากใช้มาตรฐานเปิดและไม่ผูกติดอยู่กับเทคโนโลยีใดเทคโนโลยีหนึ่ง แต่การพัฒนาเว็บเซอร์วิสในทางปฏิบัติยังต้องคำนึงถึงมาตรฐานอื่นๆอีกมากเช่นเรื่องความปลอดภัย เราสามารถที่จะพัฒนาเว็บเซอร์วิสโดยใช้เทคโนโลยีจาวาได้ ซึ่งจะมีจุดเด่นในด้านความปลอดภัย ความเชื่อมั่น และความสามารถในการรองรับผู้ใช้จำนวนมาก