← يتطلب: REST APIs البرمجة متوسط ⏱ 5 ساعات الدورة 08

ربط Java و .NET عبر Gateways

Java & .NET Gateway Integration

🎯 أهداف التعلم

1فهم آلية عمل Gateways
2إعداد Java Gateway
3استدعاء فئات Java
4معالجة الأخطاء

01 مقدمة في Gateways

Gateways هي جسور تربط بين IRIS ولغات خارجية.

Set gw = ##class(%Net.Remote.Gateway).%New()
Set gw.Server = "localhost"
Set gw.Port = 55555
Set sc = gw.Connect()
Set obj = gw.LoadClass("com.example.MyClass").%New()
Write obj.myMethod("Hello")
Do gw.Disconnect()

02 استخدام Java Gateway

إعداد واستخدام Java Gateway عملياً.

ClassMethod CreateExcel() {
  Set gw = ^%JavaGateway
  Set wbClass = gw.LoadClass("org.apache.poi.xssf.usermodel.XSSFWorkbook")
  Set wb = wbClass.%New()
  Set sheet = wb.CreateSheet("Data")
  Set row = sheet.CreateRow(0)
  Do row.createCell(0).setCellValue("Hello")
}

03 معالجة أنواع البيانات

عند العمل عبر Gateways، تحتاج لتحويل أنواع البيانات بين ObjectScript و Java.

// تحويل أنواع البيانات
// String ↔ Java String
Set javaStr = gw.CreateString("مرحباً")
Set objStr = javaStr.toString()

// Number ↔ Java Integer
Set javaInt = gw.CreateInteger(42)
Set num = javaInt.intValue()

// Array ↔ Java ArrayList
Set javaList = gw.LoadClass("java.util.ArrayList").%New()
Do javaList.add("عنصر 1")
Do javaList.add("عنصر 2")
Write "الحجم: ", javaList.size(), !

04 أفضل الممارسات مع Gateways

استخدام Gateways بكفاءة يتطلب اتباع أفضل الممارسات.

  • إدارة الاتصالات: أعد استخدام الاتصالات بدلاً من إنشاء اتصال جديد لكل طلب
  • معالجة الأخطاء: تعامل مع أخطاء الشبكة والاتصال
  • تنظيف الموارد: أغلق الاتصالات عند الانتهاء
  • التوافق: تأكد من توافق إصدارات Java
// Connection Pooling
ClassMethod GetGateway() {
  If '$Data(^%GatewayPool) {
    Set gw = ##class(%Net.Remote.Gateway).%New()
    Set gw.Server = "localhost"
    Set gw.Port = 55555
    Set sc = gw.Connect()
    Set ^%GatewayPool = gw
  }
  Return ^%GatewayPool
}

📝 اختبار التحقق

1. ما هو دور Java Gateway؟

يعمل كجسر بين ObjectScript ومكتبات Java

ما هو Connection Pooling؟

Connection Pooling يعيد استخدام الاتصالات الموجودة بدلاً من إنشاء اتصال جديد لكل طلب، مما يحسّن الأداء

ما هو بروتوكول الاتصال بين IRIS و Gateway؟
💡 الشرح

يتصل IRIS بـ Gateway عبر TCP/IP

💡 النقاط الرئيسية

  • External Language Gateways تتيح الوصول لمكتبات خارجية
  • Java Gateway يعمل على جميع المنصات
  • .NET Gateway يعمل على Windows فقط
  • معالجة الأخطاء عبر Gateways تتطلب اهتماماً خاصاً
  • يمكنك استخدام Gateways للوصول لمئات المكتبات