XMLRPC - เซิร์ฟเวอร์ Python, ไคลเอนต์ PHP ไม่มีความสม่ำเสมอ?

ขณะนี้ฉันกำลังพยายามสร้างอินเทอร์เฟซการจัดการเว็บสำหรับคลัสเตอร์ของเซิร์ฟเวอร์ linux ที่ใช้บริการพิเศษ แนวคิดก็คือเว็บไซต์การจัดการสามารถ RPC คลัสเตอร์เพื่อรวบรวมข้อมูล ดำเนินการกำหนดค่า ฯลฯ

ฉันมีสคริปต์ XMLRPC Python Server และทำงานอยู่ และฉันได้เขียนไคลเอนต์ XMLRPC พื้นฐานใน PHP ทุกอย่างใช้งานได้ แต่ฉันมีปัญหาร้ายแรงบางอย่างที่พยายามรับการตอบสนองที่สอดคล้องกันจากการเรียกเมธอด - บางครั้งฉันได้รับอาร์เรย์ XML ไปที่ความลึกที่ n ขึ้นอยู่กับความละเอียดของเอาต์พุตของคำสั่งที่ฉันเรียกใช้ บางครั้งมันเป็นโครงสร้าง XML และบางครั้งก็เป็นเพียงคุณค่าเก่าธรรมดา จากนั้นฉันก็มีข้อผิดพลาดที่ต้องจัดการ - ดูเหมือนว่ามาตรฐาน XMLRPC จะมี Fault struct พร้อมค่า 'faultCode' และ 'faultString' ที่ตอบสนองด้วย ซึ่งดีมากเพราะมันเป็นระเบียบและฉันสามารถดึงข้อมูลนั้นออกมาผ่านคีย์ที่มีชื่อใน XML แต่คุณจะได้รับโครงสร้างนั้นหากข้อผิดพลาดมาจากเชลล์เอง (เช่น หากคำสั่งที่เรียกใช้มีอาร์กิวเมนต์ที่ไม่ถูกต้อง) ในขณะที่ข้อผิดพลาดที่มาจากคำสั่งจะต้องเป็นเพียงการตอบสนอง XML ปกติ

ฉันจะเขียนบริการเว็บที่มีประสิทธิภาพเกี่ยวกับสิ่งที่ดูเหมือนจะเป็นการตอบกลับที่หลากหลายจากเซิร์ฟเวอร์ XMLRPC ได้อย่างไร สิ่งที่ฉันต้องการทำคือให้โครงสร้าง XML เดียวกันตอบกลับทุกครั้งด้วยคีย์เดียวกัน (returnCode (0=success, >1=error), returnValue/s)

ขอบคุณสำหรับคำแนะนำใด ๆ


person S.Richmond    schedule 17.01.2011    source แหล่งที่มา
comment
amp-protocol.net   -  person nosklo    schedule 17.01.2011
comment
อ่า ขอบคุณ โปรโตคอลนี้ดูค่อนข้างดี ฉันจะตรวจสอบเพิ่มเติม   -  person S.Richmond    schedule 18.01.2011


คำตอบ (1)


อาจเริ่มต้นด้วยไคลเอนต์ XML/RPC ที่มีอยู่แล้วปล่อยให้ไคลเอนต์ทำงานตามโปรโตคอล มี Zend\XmlRpc ใน Zend Framework แต่ยังรวมถึงไคลเอนต์แบบสแตนด์อโลนเช่น fxmlrpc

person Lars Strojny    schedule 30.03.2013