บริการ ASP.NET+Web ช่วยให้สามารถแบ่งปันซอฟต์แวร์ได้
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-30 15:39:48
บทคัดย่อ บทความนี้เสนอวิธีการใหม่ในการแบ่งปันซอฟต์แวร์ผ่านการแชร์ฟังก์ชั่นซอฟต์แวร์ ข้อดีของวิธีนี้คือทำให้สามารถแบ่งปันฟังก์ชั่นซอฟต์แวร์ในรูปแบบของการเรียกใช้บริการเว็บจากระยะไกลโดยไม่ต้องคัดลอกซอฟต์แวร์ไปยังไคลเอนต์ และยังช่วยลดต้นทุนอีกด้วย ความซ้ำซ้อนของทรัพยากรบางอย่างบนเครือข่ายยังเอื้อต่อการแบ่งปันบริการเว็บที่มีอยู่และบูรณาการระบบใหม่ นอกจากนี้ บทความนี้ยังวิเคราะห์ประสิทธิภาพของวิธีการใหม่นี้ผ่านตัวอย่างโมดูลการยืนยันตัวตนของนักเรียน
การแนะนำ
การแบ่งปันซอฟต์แวร์แบบดั้งเดิมคือการคัดลอกซอฟต์แวร์จากเซิร์ฟเวอร์เครือข่ายไปยังไคลเอนต์เพื่อให้เกิดการแบ่งปันซอฟต์แวร์ ข้อเสียของวิธีนี้คือไคลเอนต์ทุกรายที่จำเป็นต้องใช้ซอฟต์แวร์จะต้องคัดลอกซอฟต์แวร์ก่อน ส่งผลให้พื้นที่ซ้ำซ้อนบนเครือข่าย ส่งผลให้มีข้อมูลที่แยกออกมาจำนวนมากและตรรกะทางธุรกิจที่ซ้ำกัน
บริการเว็บมอบโซลูชันที่มีประสิทธิภาพเพื่อให้ข้อมูลและการทำงานร่วมกันของระบบเป็นไปได้โดยเปิดใช้งานการแลกเปลี่ยนข้อมูลและการเรียกใช้ตรรกะแอปพลิเคชันจากระยะไกลโดยใช้การส่งข้อความ XML ทำให้ข้อมูลสามารถส่งผ่านไฟร์วอลล์ และย้ายข้อมูลระหว่างระบบที่ต่างกัน
บทความนี้เสนอวิธีการใหม่ในการแบ่งปันซอฟต์แวร์ผ่านการแชร์ฟังก์ชันซอฟต์แวร์เพื่อแก้ไขปัญหาการใช้ซอฟต์แวร์ร่วมกันแบบดั้งเดิม ยังช่วยลดความซ้ำซ้อนของทรัพยากรบางส่วนบนเครือข่าย และยังเอื้อต่อการแบ่งปันบริการเว็บที่มีอยู่และบูรณาการระบบใหม่ นอกจากนี้ บทความนี้ยังวิเคราะห์ประสิทธิภาพของวิธีการใหม่นี้ผ่านตัวอย่างโมดูลการยืนยันตัวตนของนักเรียน
ความหมายของการแบ่งปันซอฟต์แวร์
ด้วยความนิยมและการพัฒนาแอปพลิเคชันคอมพิวเตอร์ ซอฟต์แวร์คอมพิวเตอร์เชิงปฏิบัติจึงได้รับการพัฒนาและประยุกต์ใช้ในอุตสาหกรรมต่างๆ และมีขนาดเล็กเท่ากับบริษัทหรือแผนก ซอฟต์แวร์เหล่านี้ได้ปรับปรุงประสิทธิภาพการทำงานและระดับการจัดการที่ทันสมัยของบริษัทอย่างมาก และได้กลายเป็นหัวใจหลักของการดำเนินธุรกิจและการจัดการของบริษัท แต่การนำซอฟต์แวร์แบบกำหนดเองมาใช้อย่างแพร่หลายในเกือบทุกแผนกในบริษัทส่วนใหญ่ ส่งผลให้มีตรรกะทางธุรกิจที่มีประโยชน์จำนวนมากแต่ถูกแยกออกไปและซ้ำซาก หากสามารถหลีกเลี่ยงความซ้ำซ้อนของการออกแบบในระหว่างการออกแบบและการพัฒนา และใช้การแบ่งปันฟังก์ชันซอฟต์แวร์เพื่อให้บรรลุฟังก์ชันเดียวกันของแต่ละโมดูล จะช่วยประหยัดต้นทุนการพัฒนาซอฟต์แวร์ได้อย่างมาก และเป็นรากฐานทางสถาปัตยกรรมที่ดีสำหรับการอัพเกรดและบูรณาการระบบในอนาคต นอกจากนี้ ตรรกะทางธุรกิจที่มีอยู่สามารถแชร์กับแอปพลิเคชันอื่นๆ ผ่านการปรับปรุงเพียงเล็กน้อย ซึ่งจะช่วยลดต้นทุนการพัฒนา
เนื่องจากสภาพแวดล้อมที่แต่ละแอปพลิเคชันได้รับการพัฒนามีความหลากหลายและเทคโนโลยีก็มีการพัฒนาอย่างต่อเนื่อง การแชร์แอปพลิเคชันที่มีอยู่เพื่อสร้างชุดคุณลักษณะจึงเป็นเรื่องยากในอดีต โชคดีที่การเกิดขึ้นของเทคโนโลยีบริการบนเว็บทำให้สามารถแบ่งปันซอฟต์แวร์ได้ บริการเว็บของฟังก์ชันซอฟต์แวร์ให้ตรรกะทางธุรกิจที่สามารถแบ่งปันภายในอินเทอร์เน็ต และท้ายที่สุดก็ก่อให้เกิดความเปิดกว้างตามระบบส่วนประกอบการทำงานต่างๆ ของเว็บ ต่อไป เราจะหารือถึงวิธีการใช้เทคโนโลยีบริการเว็บเพื่อการแบ่งปันซอฟต์แวร์
การแบ่งปันซอฟต์แวร์บนพื้นฐานของเทคโนโลยีบริการบนเว็บ
1. รู้เบื้องต้นเกี่ยวกับเทคโนโลยีบริการเว็บ
บริการทางเว็บถือได้ว่าเป็น API ที่ใช้งานบนอินเทอร์เน็ต ซึ่งสามารถรวมและเรียกใช้โดยแอปพลิเคชันและแม้แต่บริการทางเว็บอื่น ๆ เพื่อสร้างบริการแอปพลิเคชันใหม่ได้อย่างง่ายดาย มีการห่อหุ้มที่สมบูรณ์ การมีเพศสัมพันธ์แบบหลวม และความสามารถในการบูรณาการสูง ไม่ต้องสงสัยเลยว่าเทคโนโลยีบริการเว็บจะกลายเป็นเทคโนโลยีกระแสหลักของเว็บรุ่นต่อไป ซึ่งเป็นศูนย์รวมของ "ซอฟต์แวร์ในฐานะบริการ"
สถาปัตยกรรมบริการเว็บมีดังนี้ ประกอบด้วยผู้ร้องขอบริการ ตัวแทนบริการ และผู้ให้บริการ:
ผู้ให้บริการเว็บเป็นเจ้าของบริการบนเว็บ โดยจะลงทะเบียนกับตัวแทนบริการเพื่อกำหนดค่าและเผยแพร่บริการ และอดทนรอเพื่อมอบฟังก์ชันของตนเองให้กับบริการและผู้ใช้อื่น ๆ ซึ่งใช้การดำเนินการค้นหาเพื่อดึงคำอธิบายบริการจากนายหน้าบริการ จากนั้นเชื่อมโยงกับผู้ให้บริการและเรียกใช้หรือโต้ตอบกับบริการบนเว็บ
ผู้ให้บริการเว็บเทียบเท่ากับตัวกลาง ซึ่งเชื่อมต่อผู้ร้องขอบริการเว็บกับผู้ให้บริการเว็บที่เหมาะสม โดยปกติแล้ว UDDI จัดเตรียมกลไกสำหรับการค้นหาบริการบนเว็บแบบไดนามิกสำหรับผู้ร้องขอบริการ
2. การใช้งานการแบ่งปันซอฟต์แวร์ตามบริการบนเว็บ
ในกระบวนการพัฒนาซอฟต์แวร์ ผู้คนมักจะแบ่งซอฟต์แวร์ออกเป็นโมดูลต่างๆ ตามฟังก์ชัน เพื่ออำนวยความสะดวกในการจัดระเบียบใหม่ การใช้ซ้ำ การปรับเปลี่ยน และการอัพเกรดฟังก์ชันของโมดูล เพื่อให้เกิดการแบ่งปันซอฟต์แวร์ผ่านเทคโนโลยี Web Services จำเป็นต้องแบ่งระบบรวมออกเป็นโมดูลตามฟังก์ชันก่อน จากนั้นจึงสร้างบริการบนเว็บเพื่อใช้โมดูลการทำงานเหล่านี้ เพื่อที่จะให้บริการเว็บสามารถเข้าถึงได้ จำเป็นต้องเผยแพร่ด้วย คำอธิบายบริการ (ปรับใช้บริการเว็บ) เพื่อให้สามารถค้นหาและเรียกโมดูลอื่น ๆ ได้ ด้วยวิธีนี้ ฟังก์ชันซอฟต์แวร์ที่ใช้งานเป็นบริการบนเว็บสามารถแชร์โดยแอปพลิเคชันและแม้แต่บริการบนเว็บอื่นๆ
เมื่อผู้ร้องขอบริการ เช่น แอปพลิเคชันหรือบริการบนเว็บอื่นๆ จำเป็นต้องเรียกใช้บริการบนเว็บ พวกเขาจะดึงคำอธิบายบริการหรือสอบถามประเภทบริการที่ต้องการในศูนย์ลงทะเบียนบริการก่อน เมื่อพบบริการที่ต้องการแล้ว สามารถใช้คำอธิบายบริการเพื่อเชื่อมโยงกับผู้ให้บริการและเรียกใช้บริการที่เกี่ยวข้องได้
ผลิตภัณฑ์เรือธงที่เพิ่งเปิดตัวใหม่ของ Microsoft Visual Studio.NET เป็นที่รู้จักในฐานะเครื่องมือที่ต้องการสำหรับการพัฒนาบริการบนเว็บ การใช้ Visual Studio.NET สามารถสร้างและเรียกใช้บริการบนเว็บได้อย่างง่ายดาย ด้านล่างนี้เป็นตัวอย่างเฉพาะของการแบ่งปันซอฟต์แวร์ที่ใช้เทคโนโลยีบริการบนเว็บ
3. ตัวอย่างการใช้งานการแบ่งปันซอฟต์แวร์: การใช้โมดูลการยืนยันตัวตนของนักเรียนร่วมกัน
ปัจจุบันมีระบบซอฟต์แวร์ในวิทยาลัยและมหาวิทยาลัยมากมาย เช่น ระบบเลือกรายวิชา ระบบสืบค้นเกรด ระบบรายวิชาออนไลน์ ระบบห้องสมุด ระบบการเงินนักศึกษา เป็นต้น เนื่องจากแต่ละระบบมีความเป็นอิสระจากกัน แต่ละระบบจึงมีโมดูลการตรวจสอบตัวตนของนักเรียน ซึ่งส่งผลให้เกิดการทำงานซ้ำซ้อนในการออกแบบ นอกจากนี้ แต่ละระบบยังเป็นอิสระจากกัน และนักเรียนจำเป็นต้องจำรหัสผ่านสำหรับระบบที่แตกต่างกัน
เมื่อพิจารณาจากสถานการณ์ข้างต้นและเครือข่ายวิทยาเขตที่มีการพัฒนาอย่างมากในปัจจุบัน เราสามารถใช้บริการทางเว็บได้อย่างสมบูรณ์เพื่อตระหนักถึงการแบ่งปันโมดูลการยืนยันตัวตนของนักศึกษา ต่อไปนี้จะแนะนำกระบวนการสร้างและการเรียกใช้บริการเว็บรับรองความถูกต้องของข้อมูลประจำตัวนักเรียนโดยใช้ภาษา C# โดยใช้สภาพแวดล้อม Visual Studio.NET
1) การสร้างบริการบนเว็บ
โมดูลการตรวจสอบตัวตนของนักเรียนประกอบด้วย 1 บริการเว็บ:
บูลีนสาธารณะ ValidUser (สตริง userID, สตริง Pwd)
บริการเว็บ ValidUser ใช้เพื่อยืนยันตัวตนของนักเรียน ตารางข้อมูลนักเรียนขั้นพื้นฐาน Student ได้ถูกสร้างขึ้นในฐานข้อมูล Sql Server StudentsInfo ซึ่งฟิลด์ UserID และ Pwd จะจัดเก็บรหัสผู้ใช้และรหัสผ่านของนักเรียนตามลำดับ
ต่อไปนี้จะแนะนำขั้นตอนการสร้างบริการบนเว็บโดยละเอียด:
เรียกใช้สภาพแวดล้อมการพัฒนา Visual Studio.NET และสร้างโครงการประเภท "ASP.NET Web Service" ใหม่ WSStudentLogin
b การใช้งานโค้ดเฉพาะของบริการบนเว็บ
โดยใช้ System.Data.SqlClient;
//ข้ามรหัส...
Service1 ระดับสาธารณะ: System.Web.Services.WebService
-
สตริง ConStr="";
ConnStr="DATABASE=StudentsInfo;SERVER=10.1.111.19;UID=sa;PWD=;";
//ข้ามรหัส...
[วิธีการเว็บ]
บูลีนสาธารณะ ValidUser (สตริง userID, สตริง Pwd)
-
ธงบูลีน=เท็จ;
สตริง sqlStr="";
//สร้างวัตถุเชื่อมต่อฐานข้อมูล
SqlConnection tempConn=การเชื่อมต่อ Sql ใหม่ (ConnStr);
sqlStr="select * จากนักเรียนโดยที่ ID='"+userID+"' และ pwd='"+Pwd+"';";
//สร้างวัตถุคำสั่ง
SqlCommand tempComm=ใหม่ SqlCommand(sqlStr,tempConn);
tempConn.เปิด();
SqlDataReader tempReader=tempComm.ExecuteReader(CommandBehavior.CloseConnection);
ถ้า (tempReader.HasRows) flag=true;
tempReader.ปิด();
tempComm.ทิ้ง();
ธงส่งคืน;
-
-
ควรสังเกตว่าเฉพาะวิธีการที่อธิบายด้วย [WebMethod] เท่านั้นที่เป็นบริการบนเว็บที่สามารถเรียกจากระยะไกลได้ ดังนั้นจึงไม่สามารถละเว้น [WebMethod] ที่อยู่ด้านหน้าวิธีการได้
หากต้องการให้บริการเว็บพร้อมใช้งานสำหรับผู้อื่น จะต้องปรับใช้กับเว็บเซิร์ฟเวอร์ที่ลูกค้าที่คุณต้องการสนับสนุนสามารถเข้าถึงได้ หากต้องการปรับใช้บริการเว็บกับเซิร์ฟเวอร์อื่นที่ไม่ใช่เซิร์ฟเวอร์การพัฒนา คุณสามารถเพิ่มโปรเจ็กต์การติดตั้งเว็บหรือคัดลอกไฟล์ที่จำเป็นไปยังเซิร์ฟเวอร์เป้าหมายได้ เนื่องจากข้อจำกัดของพื้นที่ บทความนี้ไม่ได้กล่าวถึงเรื่องนี้ในเชิงลึก จะถือว่าบริการเว็บในตัวอย่างนี้ถูกปรับใช้บนเซิร์ฟเวอร์การพัฒนา
หลังจากสร้างและปรับใช้บริการบนเว็บแล้ว เราสามารถเรียกใช้บริการเว็บที่เกี่ยวข้องบนไคลเอนต์ได้ ข้อมูลต่อไปนี้จะอธิบายวิธีการค้นหาและอ้างอิงฟังก์ชันบริการเว็บบนไคลเอ็นต์
2) การโทรบริการเว็บ
ขั้นตอนการใช้บริการเว็บเป็นกระบวนการเชื่อมโยงผู้ใช้บริการเว็บเข้ากับบริการเว็บและเรียกใช้วิธีการของมัน เพื่อให้กระบวนการผูกมัดง่ายขึ้น Visual Studio.NET ให้วิธีการของคลาสพร็อกซีบริการ คลาสพร็อกซีบริการสร้างคลาสท้องถิ่นตามเอกสารคำอธิบายบริการเว็บ (XXX.WSDL) ในระหว่างกระบวนการดำเนินการ ไคลเอนต์ใช้ข้อมูลในคลาสพร็อกซีเพื่อเข้าถึงบริการบนเว็บและใช้วิธีการเรียกใช้จริง Visual Studio.NET ให้วิธีง่ายๆ แก่เราในการบรรลุกระบวนการนี้:
a สร้างโปรแกรมไคลเอ็นต์การเข้าถึงบริการเว็บ
โปรแกรมไคลเอ็นต์การเข้าถึงบริการเว็บอาจเป็นแอปพลิเคชันประเภทต่างๆ หรือบริการบนเว็บอื่นๆ ที่นี่เราสร้างโครงการใหม่ WebApplication2 ประเภท "ASP.NET WEB Application"
ข. การอ้างอิงบริการ
ขั้นแรก คลิกเพิ่มการอ้างอิงเว็บบนเมนูโครงการ ต่อไป เนื่องจากบริการเว็บในตัวอย่างนี้อยู่บนเครื่องคอมพิวเตอร์ เราจึงคลิกลิงก์ "บริการเว็บบนเครื่องคอมพิวเตอร์" ในบานหน้าต่างเบราว์เซอร์ จากนั้นคลิกลิงก์ Service1 จากรายการที่ให้ไว้เพื่อดึงข้อมูลเกี่ยวกับบริการเว็บ จากนั้น คลิกเพิ่มการอ้างอิง เพื่อเพิ่มการอ้างอิงเว็บไปยังบริการเว็บเป้าหมาย Visual Studio.NET จะดาวน์โหลดคำอธิบายบริการ และสร้างคลาสพร็อกซีที่ทำหน้าที่เป็นอินเทอร์เฟซระหว่างแอปพลิเคชันและบริการบนเว็บ
c. ตัวอย่างโค้ดเฉพาะสำหรับการเรียกใช้บริการบนเว็บในโปรแกรมไคลเอนต์
โมฆะส่วนตัว Button1_Click (ผู้ส่งวัตถุ System.EventArgs e) { //สร้างวัตถุคลาสพร็อกซี localhost.Service1 ClientProxy=ใหม่ localhost.Service1(); พยายาม {//เข้าถึงบริการเว็บผ่านออบเจ็กต์คลาสโค้ด ถ้า (ClientProxy.ValidUser(TxtUserId.Text,txtPwd.Text)) Label1.Text="ตกลง"; อื่น Label1.Text="ข้อผิดพลาด" ; - จับ(จ) {โยนจ;} ในที่สุด {ClientProxy.ทิ้ง();} - |
อื่น
เทคโนโลยีบริการเว็บเป็นรากฐานทางเทคนิคที่ดีสำหรับการแบ่งปันซอฟต์แวร์และการรวมระบบตามระบบข้อมูลที่มีอยู่ อย่างไรก็ตาม จำเป็นต้องทำให้การแบ่งปันซอฟต์แวร์โดยใช้เทคโนโลยีบริการเว็บใช้งานได้จริง นอกจากนี้เรายังจำเป็นต้องแก้ไขปัญหาต่อไปนี้: ประการแรก ความปลอดภัยและความน่าเชื่อถือ ประการแรก ความน่าเชื่อถือในการเชื่อมต่อของการส่งผ่านเครือข่ายบริการเว็บ และประการที่สอง ความน่าเชื่อถือของเนื้อหาบริการเว็บ นั่นคือ การรับรองความสมบูรณ์ของข้อมูลและการรักษาความลับ ประการที่สองคือการควบคุมสิทธิ์ในการใช้บริการ เว็บเซอร์วิส ถือเป็นศูนย์รวมของ "ซอฟต์แวร์ที่เป็นบริการ" ต้องแก้ไขปัญหาในการใช้งานจริงทั้งหมด นอกจากนี้ ปัญหาต่างๆ เช่น ความสามารถในการรองรับของบริการบนเว็บ การปรับใช้และการค้นพบบริการบนเว็บ และการจัดการความล้มเหลวของการเรียกบริการเว็บโดยลูกค้า ก็เป็นประเด็นที่ต้องได้รับการแก้ไขเช่นกัน
สรุป
บทความนี้เสนอให้เกิดการแบ่งปันซอฟต์แวร์จากมุมมองของการแบ่งปันฟังก์ชันซอฟต์แวร์ อภิปรายการใช้เทคโนโลยีบริการเว็บเพื่อการแบ่งปันฟังก์ชันซอฟต์แวร์ระยะไกล และใช้โมดูลการตรวจสอบร่างกายนักเรียนเพื่อวิเคราะห์ประสิทธิภาพและข้อดีของการแบ่งปันฟังก์ชันซอฟต์แวร์ การวิจัยเกี่ยวกับการแบ่งปันฟังก์ชันซอฟต์แวร์มีความสำคัญอย่างยิ่งต่อการใช้คอมพิวเตอร์แบบกระจาย และต้องมีการวิจัยเพิ่มเติม