ส่วนขยายการจัดการ Java

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

Java Management Extensions ( JMX ) เป็น เทคโนโลยี Javaที่ให้เครื่องมือสำหรับการจัดการและตรวจสอบแอปพลิเคชันอ็อบเจ็กต์ระบบ อุปกรณ์ (เช่นเครื่องพิมพ์ ) และเครือข่ายที่เน้นบริการ ทรัพยากรเหล่านี้แสดงโดยอ็อบเจ็กต์ที่เรียกว่า MBeans (สำหรับManaged Bean ) ใน API คลาสสามารถโหลดและสร้างอินสแตนซ์ได้แบบไดนามิก การจัดการและการตรวจสอบแอปพลิเคชันสามารถออกแบบและพัฒนาได้โดยใช้ Java Dynamic Management Kit [1]

JSR 003 [2]ของJava Community Processกำหนด JMX 1.0, 1.1 และ 1.2 JMX 2.0 ได้รับการพัฒนาภายใต้ JSR 255 แต่ JSR นี้ถูกถอนออกในเวลาต่อมา [3] JMX Remote API 1.0 สำหรับการจัดการระยะไกลและการตรวจสอบถูกระบุโดย JSR 160 [4]ส่วนขยายของ JMX Remote API สำหรับ Web Services ได้รับการพัฒนาภายใต้ JSR 262 [5]

นำมาใช้โดย ชุมชน J2EE ในช่วงต้น JMX เป็นส่วนหนึ่งของJ2SEตั้งแต่เวอร์ชัน 5.0 "JMX" เป็นเครื่องหมายการค้าของOracle Corporation

สถาปัตยกรรม

สถาปัตยกรรม JMX

JMX ใช้สถาปัตยกรรมสามระดับ:

  1. ระดับโพรบ – เรียกอีกอย่างว่า ระดับ เครื่องมือ – ประกอบด้วยโพรบ (เรียกว่าMBeans ) ที่ใช้ในการ วัดทรัพยากร
  2. ระดับAgentหรือ MBeanServer – แกนหลักของ JMX ทำหน้าที่เป็นตัวกลางระหว่าง MBean และแอปพลิเคชัน
  3. ระดับการจัดการระยะไกลช่วยให้แอปพลิเคชันระยะไกลเข้าถึง MBeanServer ผ่านตัวเชื่อมต่อและอะแดปเตอร์ ตัวเชื่อมต่อให้การเข้าถึง MBeanServer API จากระยะไกลโดยใช้การสื่อสารที่หลากหลาย ( RMI , IIOP , JMS , WS-* … ) ในขณะที่อะแดปเตอร์ปรับ API เป็นโปรโตคอลอื่น ( SNMP , … ) หรือ GUI บนเว็บ ( HTML / HTTP , WML / HTTP , …)

แอปพลิเคชันอาจเป็นคอนโซลทั่วไป (เช่นJConsole [6]และMC4J [7] ) หรือแอปพลิเคชันเฉพาะโดเมน (การตรวจสอบ) แอปพลิเคชันภายนอกสามารถโต้ตอบกับ MBeans ผ่านการใช้ตัวเชื่อมต่อ JMX และอะแดปเตอร์โปรโตคอล ตัวเชื่อมต่อทำหน้าที่เชื่อมต่อเอเจนต์กับแอปพลิเคชันการจัดการระยะไกลที่เปิดใช้งาน JMX รูปแบบการสื่อสารนี้เกี่ยวข้องกับตัวเชื่อมต่อในเอเจนต์ JMX และไคลเอ็นต์ตัวเชื่อมต่อในแอปพลิเคชันการจัดการ

อะแด็ปเตอร์โปรโตคอลจัดเตรียมมุมมองการจัดการของเอเจนต์ JMX ผ่านโปรโตคอลที่กำหนด แอปพลิเคชันการจัดการที่เชื่อมต่อกับอะแดปเตอร์โปรโตคอลมักใช้เฉพาะกับโปรโตคอลที่กำหนด

ถั่วที่ได้รับการจัดการ

Managed bean – บางครั้งเรียกง่ายๆ ว่าMBean – เป็น JavaBean ชนิดหนึ่งซึ่งสร้างขึ้นด้วยการฉีดการพึ่งพา Managed Beans ถูกใช้เป็นพิเศษในเทคโนโลยี Java Management Extensions – แต่ด้วย Java EE 6 ข้อมูลจำเพาะจะให้ความหมายที่มีรายละเอียดมากขึ้นของ Managed bean

MBean แสดงถึงทรัพยากรที่ทำงานอยู่ในเครื่องเสมือน Javaเช่น แอปพลิเคชันหรือบริการทางเทคนิค Java EE (การตรวจสอบธุรกรรม ไดรเวอร์ JDBC เป็นต้น) สามารถใช้เพื่อรวบรวมสถิติเกี่ยวกับข้อกังวล เช่น ประสิทธิภาพ การใช้ทรัพยากร หรือปัญหา (ดึง) สำหรับการรับและตั้งค่าคอนฟิกูเรชันหรือคุณสมบัติของแอพพลิเคชั่น (พุช/พูล) และแจ้งเหตุการณ์เช่นความผิดพลาดหรือการเปลี่ยนแปลงสถานะ (พุช)

Java EE 6 ระบุว่า bean ที่ได้รับการจัดการคือ bean ที่ปรับใช้โดยคลาส Java ซึ่งเรียกว่า bean class คลาส Java ระดับบนสุดคือ Managed bean หากถูกกำหนดให้เป็น Managed bean โดยข้อมูลจำเพาะเทคโนโลยี Java EE อื่นๆ (เช่น ข้อมูลจำเพาะเทคโนโลยี JavaServer Faces ) หรือหากตรงตามเงื่อนไขต่อไปนี้ทั้งหมด:

  1. ไม่ใช่คลาสภายในที่ไม่คงที่
  2. เป็นคลาสที่เป็นรูปธรรมหรือมีคำอธิบาย@Decoratorประกอบ
  3. ไม่มีการใส่คำอธิบายประกอบด้วยคำอธิบายประกอบการกำหนดส่วนประกอบ EJB หรือประกาศเป็นคลาส EJB bean ในejb-jar.xml.

ไม่จำเป็นต้องมีการประกาศพิเศษ เช่น คำอธิบายประกอบ เพื่อกำหนด bean ที่ได้รับการจัดการ

MBean สามารถแจ้ง MBeanServer เกี่ยวกับการเปลี่ยนแปลงภายใน (สำหรับแอ็ตทริบิวต์) โดยการนำไฟล์javax.management.NotificationEmitter. แอปพลิเคชันที่สนใจในการเปลี่ยนแปลงของ MBean จะลงทะเบียน Listener ( javax.management.NotificationListener) ไปยัง MBeanServer โปรดทราบว่า JMX ไม่รับประกันว่าผู้ฟังจะได้รับการแจ้งเตือนทั้งหมด [8]

ประเภท

MBean มีสองประเภทพื้นฐาน:

  • MBeans มาตรฐานใช้อินเทอร์เฟซทางธุรกิจที่มีตัวตั้งค่าและตัวรับสำหรับแอตทริบิวต์และการดำเนินการ (เช่น วิธีการ)
  • Dynamic MBeansใช้javax.management.DynamicMBeanอินเทอร์เฟซที่ให้วิธีการแสดงรายการแอ็ตทริบิวต์และการดำเนินการ และรับและตั้งค่าแอ็ตทริบิวต์

ชนิด เพิ่มเติมได้แก่Open MBeans , Model MBeansและMonitor MBeans Open MBeansเป็น MBeans แบบไดนามิกที่ใช้ชนิดข้อมูลพื้นฐาน พวกเขาอธิบายตนเองและใช้งานง่ายขึ้น รุ่น MBeansเป็น MBeans แบบไดนามิกที่สามารถกำหนดคอนฟิกระหว่างรันไทม์ นอกจากนี้ ยังมีคลาส MBean ทั่วไปสำหรับการกำหนดค่าทรัพยากรแบบไดนามิกระหว่างรันไทม์ของโปรแกรม

MXBean ( Platform MBean ) เป็น MBean ชนิดพิเศษที่ ปรับปรุงระบบย่อย เครื่องเสมือน Javaเช่นการรวบรวมขยะ การรวบรวม JIT พูลหน่วยความจำมัลติเธรดฯลฯ

MLet ( Management applet ) เป็นยูทิลิตี้ MBean เพื่อโหลด สร้างอินสแตนซ์ และลงทะเบียน MBeans ใน MBeanServer จากคำอธิบายXML รูปแบบของ XML descriptor คือ: [9]

<MLET CODE = ''คลาส'' | OBJECT = ''serfile''
   ARCHIVE = ''รายการเก็บถาวร''
   [CODEBASE = ''codebaseURL'']
   [NAME = ''ชื่อวัตถุ'']
   [VERSION = ''รุ่น'']
 >
   [arglist]
 </MLET>

สนับสนุน

JMX ได้รับการสนับสนุนในหลายระดับโดยผู้ขายที่แตกต่างกัน:

ดูเพิ่มเติม

อ้างอิง

  1. ^ "ภาพรวมของ Java Dynamic Management Kit " docs.oracle.com . สืบค้นเมื่อ12 มกราคม 2021 .
  2. ^ JSR 003: ข้อกำหนด JavaTM Management Extensions (JMXTM)
  3. ^ JSR 255: ข้อกำหนด JavaTM Management Extensions (JMXTM) เวอร์ชัน 2.0
  4. ^ JSR 160: JavaTM Management Extensions (JMX) Remote API
  5. ^ JSR 262: Web Services Connector สำหรับ Java Management Extensions (JMX) Agents
  6. ^ การใช้ JConsole เพื่อตรวจสอบแอปพลิเคชัน
  7. ^ "โครงการ MC4J สร้างซอฟต์แวร์การจัดการสำหรับแอปพลิเคชันเซิร์ฟเวอร์ J2EE และแอปพลิเคชัน Java อื่นๆ " เก็บถาวรจากต้นฉบับเมื่อ 2007-03-23 สืบค้นเมื่อ2006-08-27 .
  8. ^ Java Management Extensions (JMX) – แนวทางปฏิบัติที่ดีที่สุด
  9. ^ "MLet (แพลตฟอร์ม Java 2 SE 5.0)" . ซันไมโครซิสเต็มส์. สืบค้นเมื่อ2008-06-22 .
  10. ^ UnboundID Corp. เก็บถาวร 2012-03-06 ที่ Wayback Machine
  11. ^ "บ้าน" .
  12. ^ "การเก็บรวบรวมข้อมูล JMX" . www.logicmonitor.com ครับ สืบค้นเมื่อ2020-11-20 .
  13. ^ Apache Tomcat 6.0: การตรวจสอบและการจัดการ Tomcat (คู่มือ Tomcat)
  14. ^ "ผู้ส่งออก JMX" . GitHub . 14 กุมภาพันธ์ 2565

อ่านเพิ่มเติม

บทความ

หนังสือ

  • Benjamin G Sullins, Mark B Whipple : JMX in Action: คุณยังจะได้ใช้แอปพลิเคชัน JMX ตัวแรกและทำงาน , Manning Publications Co. 2002, ISBN 1-930110-56-1 
  • J. Steven Perry : Java Management Extensions , O'Reilly, ISBN 0-596-00245-9 
  • เจฟฟ์ แฮนสัน : การเชื่อมต่อไคลเอ็นต์และเซิร์ฟเวอร์ JMX: ทำความเข้าใจเกี่ยวกับส่วนขยายการจัดการ Java , APress LP, ISBN 1-59059-101-1 
  • Marc Fleury , Juha Lindfors : JMX: การจัดการ J2EE ด้วย Java Management Extensions , Sams Publishing, ISBN 0-672-32288-9 

ลิงค์ภายนอก