2012-12-24 44 views
1

我用C/C++編寫了幾個定製的Unix程序來解析入站數據文件並將記錄插入到數據庫中。我想讓客戶有能力從一臺或多臺Windows PC監控這些程序的狀態。在這個時代,最好的方式是在兩者之間進行溝通?當前,我曾經通過在兩臺機器上編寫一組專用的客戶端/服務器TCP/IP套接字級程序來完成這種工作,使用本地協議來請求程序狀態並生成響應。 Windows方面每分鐘都會ping Unix,而Unix方面會回覆各種記錄等待處理,當天處理的記錄,MTD和YTD(主要是指定目錄中的簡單文件計數,還包括數據庫查找) 。 Windows方面也可以告訴Unix方面重新啓動,或者將有問題的記錄移到「保留」區域......這類事情。雙方都包括一個專門的「父母」流程,以確保所有兒童流程繼續運行,或者如果他們死亡將重新啓動流程。如何從Windows監視/與Unix程序進行交互?

但那是在80年代和90年代初。有沒有更新的,更好的,更可靠的技術在今天和這個時代做基本相同的事情?我的專長是在C/C++/C#中,但是我可以在給出一個好的教程的基礎上實現一些基於Web的東西。此外,我想堅持自定義代碼或免費/開源解決方案。

我的手寫TCP/IP客戶端/服務器方法仍然是這種情況下最好的嗎?

謝謝你的時間!

回答

0

RabbitMQ(一implementation of AMQP)將是一個很好的,很容易對實施你的問題的解決方案。

您可以將服務器安裝在platform of your choicethere are many client libraries, including Java and .NET上,只需幾行代碼即可發佈消息。

What can RabbitMQ do for you? [綜述摘錄】

消息使軟件應用程序的連接和規模。 應用程序可以相互連接,作爲更大的應用程序的組件或用戶設備和數據。消息傳遞是異步的,通過分離發送和接收數據來解耦應用程序。

你也許會想數據傳輸的,非阻塞操作或推 通知。或者您想要使用發佈/訂閱,異步處理或工作隊列。所有這些都是模式,並且它們構成消息的部分 。

RabbitMQ是一個消息傳遞代理 - 消息傳遞的中介。它 爲您的應用程序提供了一個共同的平臺來發送和接收 消息,並且您的消息是一個安全的地方,直到收到。

+0

您好,感謝您的快速反應。在第一次腮紅RabbitMQ似乎相當涉及...我希望有點輕。該項目是內部的,但處理醫療數據(和病人),所以我讚賞它的健壯性,但我會繼續尋找。 –

+0

這可能是我曾經使用過的最簡單的服務器。我在幾個月前對其進行了原型設計,以確定它是否會支持我們的集成架構。我從三個小時內只從同事那裏聽到關於RabbitMQ的工作代碼。這包括下載,安裝和「配置」RabbitMQ,Erlang並編寫兩個.NET客戶端來發送和接收消息。 –

相關問題