我們目前正在考慮從主機進行部分遷移。從大型機批處理程序調用Web服務
在Mainframe Cobol中編寫的一些功能是通過Mainframe Batch程序調用的。
我們希望將這些cobol程序從大型機中移出。
例如,我們將cobol程序中的功能移至Java或.Net Web服務。是從大型機批處理程序調用此Web服務的一種方法嗎?
我們目前正在考慮從主機進行部分遷移。從大型機批處理程序調用Web服務
在Mainframe Cobol中編寫的一些功能是通過Mainframe Batch程序調用的。
我們希望將這些cobol程序從大型機中移出。
例如,我們將cobol程序中的功能移至Java或.Net Web服務。是從大型機批處理程序調用此Web服務的一種方法嗎?
首先,我不確定是否有方法直接從Cobol調用Web服務,但我們遇到類似的問題,嘗試使用RPG和CL從iSeries(AS400)調用Web服務。最後,我們在java中編寫了一個簡單的Socket程序,運行在一個服務器上,我們稱之爲WebServiceBridge,而橋接程序只是從套接字程序中獲取數據並構建了一個Java中的web服務調用。我們簡單地通過套接字傳回的結果。
如果Cobol與Web服務鬥爭,那麼這可能是一個簡單的解決方案。但請注意,您的網橋需要進行監控,具有彈性且始終可用,與您設計Web服務的方式相同。
[此假定由 「web服務」 您的意思是HTTP(S)和SOAP]
該API用於CICS TS 3.1及以上的包括用於應用程序來調用web服務的能力。 CICS應用程序通常是交互式的,但可以通過外部CICS接口從現有的批處理應用程序調用。該接口使用CICS commareas,所以傳遞的數據必須適合32K緩衝區。
進入CICS的另一條路線是MQSeries(現在重新命名爲WebSphereMQ)。在這種情況下,您的批處理應用程序會將數據(本例中沒有32K限制)放入定義爲觸發的隊列中,觸發器監控器將自動啓動CICS應用程序。 CICS應用程序將通過響應隊列將響應返回給Web服務。
如果你做了其中的任何一個,我希望批量作業的時鐘時間增加。通過網絡執行一些代碼比在本地執行該代碼花費的時間更長。
+1謝謝,但在這種情況下,我們只有批次,沒有CICS,但我們仍然可以通過MQ。 – 2011-02-21 15:50:40
在以前的生活中,我寫了彙編程序使用此處描述的技術,其將用於COBOL工作,以及調用從PL/1的TCP/IP協議棧:
可悲的是我不能與你分享,但他們並不太複雜。 請記住,Web服務將對ASCII或UTF-8感興趣,並且您的COBOL可能正在運行EBCDIC,因此有人必須進行翻譯。
一旦你可以與套接字交談,你將不得不使用不同的頭來形成你的web請求,然後解碼結果......它不是微不足道的,但它是可能的。 '希望有所幫助。
我已經完成了。使用c語言程序來製作http調用和cobol copybook的cobol接口程序,以便像任何其他程序調用一樣查看應用程序。所有的http標題都會被c程序轉換爲ascii並返回,並且有效載荷將被轉換爲主機。
Cobol批量訪問Web服務有多種選擇。 OP可以使用內置的XML解析器和生成器連接自己的soap;他們可以使用EXEI接口路由到TS/SOAP;可以利用RD/z支持來調用Web服務;有許多第三方產品將允許這種訪問。 – 2011-02-22 19:03:20
還有一個來自IBM的MQ Integrator橋產品,也可以做到這一點。對不起,我忘了在之前的評論中提到它。 – 2011-02-22 19:05:01