الملخص: يقدم هذا المقال إطارًا تنفيذيًا لتطوير أنظمة المعلومات الإدارية المعتمدة على الويب. إن استخدام تقنية JSP/Servlet ودمجها مع نمط تصميم MVC يجعل عملية التطوير أكثر مرونة وأسهل في الصيانة.
الكلمات المفتاحية: نظام المعلومات الإدارية، JSP، Servlet، نمط تصميم MVC، JDBC
1. مقدمة
نظام المعلومات الإدارية (MIS) هو نظام يتكون من الأشخاص وأجهزة الكمبيوتر التي يمكنها جمع المعلومات ونقلها وتخزينها ومعالجتها واستخدامها. مع تطور العلوم والتكنولوجيا وتوسيع المعلومات، أصبحت معلوماتية المؤسسات إحدى الوسائل الفعالة للمؤسسات للبقاء في مكانة لا تقبل المنافسة في المنافسة. لا يمكن لنظام المعلومات الإدارية توفير المعلومات والبيانات في الوقت المناسب وبطريقة شاملة وتبسيط العمل الإحصائي وتقديم تقارير مختلفة لمستويات الإدارة المختلفة فحسب، بل يمكنه أيضًا التنبؤ بالمواقف المستقبلية بناءً على البيانات السابقة. لذلك، من المهم بشكل خاص استخدام الطريقة لتطوير نظام معلومات إداري يأخذ في الاعتبار كفاءة التطوير وكفاءة التشغيل ويلبي وظيفة معالجة الأحداث الموزعة. توضح هذه المقالة طريقة استخدام JSP/Servlet لإنشاء نظام معلومات إدارية ثلاثي الطبقات.
2. بنية النظام ثلاثية الطبقات
تظهر بنية النظام ثلاثية الطبقات في الشكل 1. 
الشكل 1: بنية تطبيقات الويب القائمة على تقنية Java
يعتمد نظام المعلومات الإدارية بأكمله بنية ثلاثية الطبقات للمتصفح/الويب/قاعدة البيانات. يقبل خادم الويب الطلب، وينفذ برنامج Java Servlet من جانب الخادم من خلال خادم التطبيق ويعيد مخرجاته، وبالتالي يحقق تفاعل موارد المعلومات مع العميل. يتم استخدام خادم قاعدة البيانات لتخزين البيانات المختلفة المستخدمة في نظام المعلومات الإدارية، ويتم إدخال البيانات مباشرة عن طريق برنامج إدارة قاعدة البيانات. يتطلب عميل النظام متصفحًا فقط. يمكن للموظفين المعنيين الاستعلام عن البيانات وإضافتها وتعديلها وحذفها وإدارة المعلومات من خلال المتصفح.
3. نمط تصميم النظام
نمط التصميم هو تمثيل رسمي يستخدمه المبرمجون الموجهون للكائنات لحل مشاكل البرمجة. حاليًا، في معظم تطبيقات الويب ذات بنية المتصفح/الخادم، يتفاعل المتصفح مباشرة مع المستخدمين في شكل HTML أو JSP ويستجيب لطلبات المستخدم. على الرغم من أنها بديهية، إلا أن كمية البيانات التي تديرها معظم أنظمة المعلومات الإدارية مذهلة. ومع زيادة التعليمات البرمجية، ستصبح صفحة JSP منتفخة وسيتم تحميل خادم الويب بشكل زائد. لذلك، تم اعتماد نمط التصميم المعتمد على وحدة تحكم عرض النموذج (MVC.Model-View-Controller) في الطبقة الوسطى. تُستخدم طبقة النموذج لتنفيذ منطق الأعمال، وتُستخدم طبقة العرض لعرض واجهة المستخدم، وتكون طبقة التحكم مسؤولة بشكل أساسي عن علاقة التحكم بين طبقة العرض وطبقة النموذج. في تنفيذ محدد، يتم استخدام Servlet كوحدة تحكم في التطبيق، ويتم استخدام مستند JSP كطريقة عرض، ويتم استخدام JavaBeans لتمثيل النموذج. يتم إرسال جميع الطلبات إلى Servlet كوحدة تحكم، والتي تقبل الطلبات وتستجيب عن طريق إرسالها إلى JSP المناسب بناءً على معلومات الطلب. في الوقت نفسه، يقوم Servlet أيضًا بإنشاء مثيلات JavaBeans وفقًا لمتطلبات JSP وإخراجها إلى بيئة JSP. يمكن لـ JSP الحصول على البيانات في JavaBeans عن طريق استدعاء الأساليب مباشرة أو استخدام علامات UseBean المخصصة. يفصل نمط التصميم هذا طبقة البيانات عن طبقة العرض بشكل فعال، مما يجعل أعمال التطوير أسهل وأسرع. في وضع التصميم هذا، يظهر نقل البيانات بين المستويات المختلفة في الشكل 2.

الشكل 2 نقل البيانات لنمط تصميم MVC الشكل
4. تقنية الوصول إلى البيانات
قاعدة البيانات هي المحتوى الأساسي لنظام المعلومات الإدارية. يوجد حاليًا العديد من تقنيات واجهة الويب وقواعد البيانات، من بينها JDBC وهي واجهة برمجة تطبيقات لبرامج Java للاتصال بقواعد البيانات والوصول إليها، وتتكون من مجموعة من الفئات والواجهات المكتوبة بلغة Java وهي واجهة برمجة تطبيقات Java لتنفيذ SQL البيانات. في نظام المعلومات الإدارية الذي تم تقديمه في هذه المقالة، يتم استخدام تقنية JSP/Servlet+JDBC للوصول إلى البيانات، أي أن العميل لا يقوم بإنشاء أوامر استعلام لقاعدة البيانات، ويقوم المتصفح الموجود على العميل بإنشاء اتصال بخادم الويب من الطبقة المتوسطة من خلال عنوان URL. خادم الويب مسؤول بشكل أساسي عن تلقي طلبات بيانات HTTP من المتصفحات المحلية أو البعيدة، وبعد ذلك، بعد أن يتلقى Servlet في الطبقة الوسطى الطلب، فإنه يستخدم واجهة برمجة التطبيقات القياسية المقدمة من JDBC للوصول إلى قاعدة البيانات وتنفيذ العمليات المقابلة عن طريق تنفيذ SQL. تصريحات في البرنامج. يقوم Servlet بعد ذلك بتمرير بيانات الاستعلام إلى JSP، وفي النهاية يقوم بإنشاء صفحة JSP قياسية ويعيد النتائج إلى المتصفح الطالب. وبهذه الطريقة، لا يتم فصل العميل عن خادم قاعدة البيانات فحسب، بل يعمل أيضًا على تحسين كفاءة الوصول إلى قاعدة البيانات.
5. مثال
من أجل توضيح طريقة استخدام JSP/Servlet بشكل أفضل لبناء نظام معلومات إدارية ثلاثي المستويات، سيأخذ المؤلف مثالاً لتحليل وتصميم نظام معلومات إدارة طلبات بريد السلع. يستخدم نظام معلومات إدارة طلبات البريد السلعي لغة Java لتطوير التطبيقات من جانب الخادم، ويستخدم Webshpere من IBM كخادم التطبيقات. يستخدم نظام إدارة قاعدة البيانات SQL Server7.0، ويستخدم برنامج واجهة قاعدة البيانات واجهة JDBC2. يستخدم النظام بأكمله نهجًا قائمًا على الويب لتحقيق إدارة العملاء، وإدارة الموظفين، وإدارة الطلبات، وإدارة السلع، والإدارة الصادرة، والإدارة الداخلية ومعالجة الأعمال الأخرى، والتحكم في العمليات، والتحكم في السلطة، وإحصائيات الاستعلام، ووظائف الطباعة لأعمال الطلب عبر البريد. . يقوم بتحليل وظيفة الاستعلام الخاصة بجزء إدارة الطلب بالتفصيل.
5.1 تصميم قاعدة البيانات
بالنسبة لجزء الطلب، يجب تحديد جدول معلومات الطلب Db_order. تتضمن الحقول الموجودة في الجدول رقم الطلب (ddbh)، ورقم العميل (khbh)، ورقم المنتج (spbh)، وسعر وحدة المنتج (spdj)، و. كمية الطلب (dgsl)، السعر الإجمالي (hjzj)، المبلغ المستلم (sdje)، تاريخ الاستلام (sdrq). من أجل استخدام جدول Db_order في التطبيق، يجب إنشاء اتصال بقاعدة البيانات. يتم تنفيذ هذه الوظيفة بواسطة sql_data.java. جزء من الكود الخاص به هو كما يلي.
public class sql_data {
String url = "jdbc:odbc:PostOrder"; // استخدم اسم المضيف ورقم المنفذ هنا
سلسلة تسجيل الدخول = "sa"؛ // استخدم معلومات تسجيل الدخول الخاصة بك هنا
كلمة مرور السلسلة = "zh12345"؛ // استخدم كلمة المرور الخاصة بك هنا
اتصال الاتصال العام = فارغ؛
البيان العام st = null;
مجموعة النتائج العامة rs = null;
يحاول
{
Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver");
conn =DriverManager.getConnection(url, user,password);
} قبض (الاستثناء ه)
{
printStackTrace();
}
}
5.2 تصميم الطبقة الوسطى
في عملية تطوير نظام معلومات إدارة طلبات بريد السلع، استنادًا إلى فكرة نمط تصميم MVC ودمجها مع الوضع الفعلي للنظام، قمنا أيضًا بتقسيم الطبقة النموذجية وفقًا لتقسيم العمل . تتكون طبقة النموذج عمومًا من العديد من وحدات JavaBeans، وفقًا للأدوار المختلفة التي تلعبها هذه الوحدات في النظام، وهي مقسمة إلى ثلاثة أنواع: وحدات الأوامر، وحدات البيانات، وحدات العرض. من بينها، تُستخدم وحدات الأوامر لتنفيذ منطق الأعمال، أي معالجة مثيلات الكائنات، وتستخدم وحدات البيانات لوصف وتحديد نماذج الكائنات المستخرجة من العالم الحقيقي، وتستخدم وحدات العرض لتغليف وإرجاع مثيلات الكائنات المعالجة بشكل أكبر للعميل.
أولاً، تحصل Command Beans على المعلومات التي تم تمريرها بواسطة Servlet، وتغلف معلومات الأعمال في مثيلات الكائن المحددة بواسطة Data Beans، وتعالج المعلومات وفقًا لمنطق الأعمال. عندما يلزم استدعاء عملية الوصول إلى قاعدة البيانات، يستخدم Command Beans مثيل الكائن ومعلومات التحكم المقابلة لإكمال عملية قاعدة البيانات من خلال طريقة واجهة قاعدة البيانات. بعد اكتمال عملية قاعدة البيانات، يتم تغليف مجموعة السجلات التي تم إرجاعها في مثيل كائن لفاصوليا البيانات، وبعد معالجة معينة، يتم تغليف المعلومات التي تحتاج إلى إرجاعها إلى الواجهة في وحدات عرض محددة مسبقًا، ويتم إرجاع المعلومات من خلال وحدات العرض. إلى الواجهة.
ما يلي هو جزء من كود OrderGl.java الذي يستعلم عن الأوامر ويعالجها.
الطبقة العامة OrderGl {
…
// حدد الطريقة التالية لإكمال عملية الاستعلام عن الطلب
السلسلة النهائية العامة currentMultiQuery (
javax.servlet.http.HttpServletطلب طلب،
javax.servlet.http.HttpServletResponse استجابة)
يلقي com.goods.exception.GoodsException
{
// احصل على معلومات الاستعلام المقابلة من صفحة JSP
com.goods.view.OrderView view = getView(request, Response);
String ddbh = view.getDdbh(); // رقم الطلب
// إنشاء عبارة SQL
String sqlQuery = "select ddbh,khbh,spbh,spdj,dgsl,hjzj,sdje,sdrq from db_order";
// تنفيذ عملية الاستعلام
java.util.Vector Vector = new java.util.Vector();
com.goods.sjk.sql_data per = new com.goods.sjk.sql_data();
يحاول
{
java.sql.ResultSet rs = per.executeQuery(sqlQuery);
بينما (rs.next())
{
com.goods.dx.Db_order temp = new com.goods.dx.Db_order();
temp.setDdbh(rs.getString("ddbh"));
temp.setKhbh(rs.getString("khbh"));
temp.setSpbh(rs.getString("spbh"));
temp.setSpdj(rs.getString("spdj"));
temp.setDgsl(rs.getString("dgsl"));
temp.setHjzj(rs.getString("hjzj"));
temp.setSdje(rs.getString("sdje"));
temp.setSdrq(rs.getString("sdrq"));
Vector.addElement(temp);
}
rs. Close();
لكل.إغلاق();
} قبض (قابل للرمي)
{
printStackTrace();
لكل.إغلاق();
cxyw.printErrorToWeb(request, Response, e.toString());
إرجاع e.toString();
}
// صدى المعلومات ذات الصلة إلى الواجهة view.setVct(vector);
request.setAttribute("view", view);
إرجاع "1" ؛
}
}
5.3 عرض تصميم العميل
هو جزء من التطبيق الذي يعرض المعلومات للمستخدم، أي صفحة الويب التي يتم إرجاعها إلى المستخدم بعد قيام المستخدم بتقديم طلب. عند النقر فوق الزر "استعلام"، سيتم عرض صفحة نتائج معلومات الطلب ordercx.jsp التي تم الحصول عليها بناءً على رقم الطلب. يتم ذلك باستخدام بناء الجملة التالي في صفحة JSP:
<jsp:useBean id="view" class="com.goods.view.OrderView"scope="request" />
<jsp:useBean id = "temp" class = "com.goods.dx.Db_order" نطاق = "صفحة" />
<jsp:useBean>يستخدم الإجراء المعرف والنطاق لاكتشاف كل كائن موجود، ثم يمرر <%=view.getDdbh()
و<%=temp.getDdbh()%> للحصول على البيانات ذات الصلة.
6. ملخص
تقترح هذه المقالة حلاً لتطوير نظام معلومات إداري ثلاثي المستويات قائم على الويب باستخدام تقنية JSP/Servlet. يحقق هذا الحل الفصل بين طبقة العرض والطبقة المنطقية، مما يجعل النظام قابلاً للتطوير بشكل كبير، وفي الوقت نفسه، يوفر فكرة وطريقة كاملة لتطوير أنظمة المعلومات الإدارية.