ผู้เขียนแอปพลิเคชันจำนวนมากจัดเตรียมส่วนประกอบที่สามารถนำมาใช้ซ้ำในโปรแกรมอื่นให้กับโปรแกรมเมอร์ได้ โดยปกติเราจะแนะนำส่วนประกอบของบุคคลที่สามเหล่านี้ในโปรแกรมของเราเองและเรียกใช้ฟังก์ชันสำเร็จรูปเพื่อใช้ฟังก์ชันที่ค่อนข้างซับซ้อน ในความเป็นจริง เรายังสามารถเผยแพร่ฟังก์ชันในส่วนประกอบของบุคคลที่สามผ่านเครือข่ายเพื่อให้บริการแก่ผู้ใช้ได้สะดวกยิ่งขึ้น
สำหรับการพัฒนา .NET ส่วนประกอบของบริษัทอื่นสามารถรวมเข้าด้วยกันผ่านเทคโนโลยี ASP.NET (สำหรับมนุษย์) หรือบริการเว็บ (สำหรับเครื่องจักร) ข้อมูลต่อไปนี้ใช้ ASP.NET เพื่อเผยแพร่ฟังก์ชัน Execute ในส่วนประกอบ Matlab เป็นตัวอย่าง หลักฐานคือมีการติดตั้ง Matlab บนเซิร์ฟเวอร์
สร้างไซต์ ASP.NET ใหม่ใน VS2005 คลิกขวาที่ไดเรกทอรีไซต์ในบานหน้าต่าง Solution Explorer เลือกเพิ่มการอ้างอิง และเพิ่มส่วนประกอบ COM ของ Matlab: ไลบรารีประเภทแอปพลิเคชัน Matlab (เวอร์ชัน XX)
เพิ่มกล่องข้อความ ปุ่ม และตัวควบคุมตัวอักษรลงในเว็บเพจ กล่องข้อความใช้เพื่อป้อนนิพจน์ ปุ่มยืนยันการดำเนินการ และผลลัพธ์ตามตัวอักษร เพิ่มโค้ดเหตุการณ์ต่อไปนี้เพื่อเรียกใช้ฟังก์ชัน Execute ในส่วนประกอบ Matlab เพื่อดำเนินการคำสั่ง Matlab:
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim matlab As New MLApp.MLApp
Dim strMatLab As String
strMatLab = TextBox1.Text
Dim strResult As String = matlab.Execute(strMatLab)
strResult = strResult.Replace(Chr(10), "<br>")
strResult = strResult.Replace(" ", " ")
ฉัน .Literal1. Text = strResult
matlab.Quit()
End Sub
Run ไซต์นี้ใน VS2005 ป้อนนิพจน์ในหน้าเว็บที่ปรากฏขึ้น เช่น "dsolve('Dx=x^2+5')" และผลลัพธ์จะ จะปรากฏขึ้นหลังจากคลิกปุ่ม : "ans = 5^(1/2)*tan(5^(1/2)*t+5^(1/2)*C1)" แต่ถ้าคุณใช้ IIS เพื่อเผยแพร่ไซต์นี้ ข้อผิดพลาดจะเกิดขึ้นระหว่างรันไทม์ เหตุผลก็คือ ASP.NET ไม่มีสิทธิ์ในการสร้างส่วนประกอบ ตามข้อความแสดงข้อผิดพลาด เราจำเป็นต้องเพิ่มประโยคลงในไฟล์ web.config ของเว็บไซต์:
<identity impersonate="true" userName="xx"password="xx"/>
ผู้ใช้ที่ระบุที่นี่ควรเป็นผู้ใช้ที่มีสิทธิ์ที่เกี่ยวข้อง ทางฝั่งเซิร์ฟเวอร์ หากไม่ได้ระบุ การรับรองความถูกต้องจะดำเนินการบนเพจไคลเอนต์ แน่นอนว่าการบันทึกชื่อผู้ใช้และรหัสผ่านเป็นข้อความธรรมดาใน web.config นั้นไม่ปลอดภัย และจะต้องได้รับการเข้ารหัสในแอปพลิเคชันจริง
ในเรื่องนี้ เราได้เสร็จสิ้นการเผยแพร่ฟังก์ชันการประเมินนิพจน์ Matlab แบบออนไลน์แล้ว คุณสามารถแจ้งเตือนเพื่อนที่ยังไม่ได้ติดตั้ง Matlab ให้ลงชื่อเข้าใช้เว็บไซต์ของคุณเพื่อใช้ฟังก์ชันการคำนวณอันทรงพลังของ Matlab (หมายเหตุ: ตัวอย่างนี้ใช้สำหรับการสาธิตเท่านั้น คำสั่งและกล่องเครื่องมือที่มีประสิทธิภาพของ Matlab ก็เพียงพอแล้วที่จะอนุญาตให้ผู้ใช้ระยะไกลเข้าถึงระบบไฟล์ของคุณผ่านทางหน้าเว็บนี้)
เนื่องจากลักษณะของโปรโตคอล HTTP และลักษณะของการดำเนินการฝั่งเซิร์ฟเวอร์ สิ่งนี้ ประเภทของบรรจุภัณฑ์ของส่วนประกอบของบุคคลที่สาม โดยทั่วไปเหมาะสำหรับการเผยแพร่ฟังก์ชันการประมวลผลข้อมูล แต่ไม่เหมาะสำหรับการเผยแพร่ฟังก์ชันการควบคุม ขณะเดียวกันวิธีนี้ไม่เหมาะกับบริการที่มีเรียลไทม์สูงหรือต้องมีการอนุรักษ์ของรัฐ ด้วยเหตุผลด้านความปลอดภัย เรายังสามารถสรุปส่วนประกอบของบุคคลที่สามใหม่และเพิ่มการกรองข้อมูลและการจัดการข้อยกเว้นได้
หลักการง่ายมาก ฉันหวังว่าคุณจะสามารถพูดคุยกับฉันเกี่ยวกับคุณค่าของโซลูชันนี้ในการใช้งานจริงได้
อ้างอิง:
1. Li Honggen ใช้อัลกอริทึม MATLAB ใน .NET
( http://www.microsoft.com/china/community/Column/25.mspx )
2. Matlab 7.1, เอกสารช่วยเหลือที่เกี่ยวข้องกับ Matlab Web Server