2010-03-29 15 views
17

मैं जर्मनी में यहाँ एक काफी बड़ा कंपनी में कार्यरत हूँ और जो सुविधा होगी इसके लिए मुख्य वेबसाइट बनाने के लिए नौकरी मिल गई:कोबोल वेब विकास/होस्टिंग संसाधनों

  • स्टेटिक सामग्री; सूचना और प्रस्तुतियाँ (कर्मचारियों 6000 के आसपास)
  • एक कर्मचारी क्षेत्र कैलेंडर, नौकरी विवरण, समूहों के कुछ प्रकार से विभिन्न चीजों की विशेषता
  • बहुत सारे अन्य गतिशील चीजें मैं यहाँ सूचीबद्ध नहीं कर सकता

मैं का फैसला किया है नौकरी के लिए COBOL का उपयोग करने के लिए, यह बहुत कम हो सकता है लेकिन यह एक बहुत ही शक्तिशाली भाषा है, खासकर व्यावसायिक ऐप्स के लिए और, जैसा कि मेरे सहकर्मी कहते हैं, वेब (2.0) विकास भी।

मुझे कोबोल का उपयोग करने की भी आवश्यकता है क्योंकि कंपनी के सभी बैकएंड और लेनदेन प्रणाली में प्रोग्राम किया गया है (कुछ छोटे हिस्सों को भी एलआईएसपी में प्रोग्राम किया गया था, मुझे बिल्कुल नहीं पता क्यों)। मुझे एक एपीआई भी मिली है जो आसानी से MySQL के साथ COBOL का उपयोग करना संभव बनाता है।

यह एक बड़ी परियोजना है और इसमें शायद 2 महीने से अधिक प्रोग्रामिंग लगेंगे।

  • COBOL में एक विशाल वेब ऐप बनाने के दौरान मुझे क्या उम्मीद करनी है?
  • क्या COBOL के लिए वेब ढांचे उपलब्ध हैं? कुछ प्रकार के एमवीसी?
  • क्या COBOL के साथ व्यावहारिक वेब-विकास के लिए कोई अच्छा संसाधन है?

अग्रिम धन्यवाद

+1

प्लेटफॉर्म एक आईबीएम आई-सीरीज़ है, जिसे एएस/400 भी कहा जाता है? –

+0

पीट डंकनसन: यह एक मजाकिया सवाल नहीं है, मुझे इस परियोजना के लिए कोबोल का उपयोग करना है और मैंने सुना है कि यह उतना बुरा नहीं है जितना हर कोई कहता है। एसएलॉट: नहीं, वे प्रोजेक्ट को संकलित करने के लिए ओपनकोबोल का उपयोग करेंगे और फिर इसे सीजीआई से बांधेंगे, मैं इस प्रक्रिया से इतना परिचित नहीं हूं, हालांकि यह सिर्फ परियोजना की शुरुआत है। मेरे बुरे अंग्रेजी के लिए खेद है, जर्मन, आप जानते हैं। – felixm

उत्तर

16

कोबोल में एक विशाल वेब ऐप बनाने के दौरान मुझे क्या उम्मीद करनी है?

इसमें काफी समय लगेगा। Django, फ्रेम या कोड इग्निटर पर रूबी विशेष रूप से बहुत कम समय में वेब साइट बनाने के लिए डिज़ाइन किए गए हैं।

इनमें से अधिकतर ढांचे में 20 मिनट में काम करने वाली गतिशील सामग्री वेब साइटें बना सकती हैं। कोबोल नहीं कर सकता जब तक आप वास्तव में तेज़ी से टाइप नहीं कर सकते हैं, तब तक जब आप सीख सकें और किसी भी आधुनिक उपकरण के साथ साइट बना सकें तो आपके पास शायद बहुत कम काम करने योग्य कोड होगा।

क्या COBOL के लिए वेब ढांचे उपलब्ध हैं? कुछ प्रकार के एमवीसी?

अब यह प्रश्न पूछने से संकेत मिलता है कि COBOL का उपयोग करने का विकल्प वास्तव में एक बुरा विचार है।

सामान्य रणनीति पहले ढांचे को चुनना है। ढांचे की पसंद करने के बाद, हम उस ढांचे का लाभ उठाने के लिए आवश्यक भाषा को सहन करते हैं।

हालांकि, वहाँ हमेशा http://www.coboloncogs.org/HOME.HTM

वहाँ कोबोल साथ व्यावहारिक वेब विकास के लिए किसी भी अच्छे संसाधन हैं?

http://search.barnesandnoble.com/COBOL-Programming-Using-the-NET-Framework/Ronald-D-Reeves/e/9780130668431

प्रैक्टिकल वेब विकास वेब-विशिष्ट चौखटे के साथ किया जाता है। पाइथन वेब ढांचे के दर्जनों में से कोई भी, रूबी ऑन रेल, किसी भी PHP फ्रेमवर्क, जावा फ्रेमवर्क में से कोई भी। वे वेब साइटों को जल्दी और सस्ते बनाने के लिए अत्यधिक विशिष्ट हैं।

COBOL इस के लिए अत्यधिक विशिष्ट नहीं है। न ही (आई-सीरीज़ के बाहर) क्या कोई भी वेब विकास के लिए गंभीरता से COBOL पर विचार करता है।

आपकी सबसे अच्छी आशा जितनी संभव हो उतनी बाहरी पुस्तकालयों का उपयोग करना और जितना संभव हो उतना कम COBOL लिखना होगा। सी-भाषा एपीआई के साथ काम करने के लिए आपको ओपनसीओओएल की सीओबीओएल की सी सुविधाओं का भारी उपयोग करना होगा - और असल में - सीओबीओएल रैपर के साथ सी में अपनी साइट बनाएं।

+6

पूर्णकालिक "हार्ड कोर" कोबोल प्रोग्रामर और "छोटे समय" वेब डेवलपर के रूप में, मुझे एसएलॉट से सहमत होना है। फ्रंट एंड वेब विकास के लिए COBOL का उपयोग न करें! यह वास्तव में चोट लगी है! दूसरी ओर, वेब संचालित अनुप्रयोगों के लिए बैक एंड समर्थन प्रदान करने के लिए अपने कोबोल सिस्टम का लाभ उठाने का एक उचित विकल्प हो सकता है। – NealB

+0

@NealB: बहुत से लोग ठीक से ऐसा करते हैं - वेब फ्रंट-एंड कोबोल प्रोग्राम के माध्यम से बैक-एंड प्रोसेसिंग बंद कर देता है। –

+0

की तरह नीलब ने कहा, मौजूदा बैक एंड सिस्टम के साथ इंटरफेस करने के लिए COBOL का उपयोग करें। वेब भाग कोबोल के लिए किए गए अनुप्रयोगों के प्रकार से बहुत अलग है। वेब सर्वर के साथ इंटरफेसिंग के बारे में सोचें, HTTP का उपयोग करके, कच्चे फॉर्म डेटा को संभालने, एचटीएमएल और जेएसओएन उत्पन्न करना। कोबोल को ऐसी चीजें करने में काफी समय लगेगा जो अन्य सिस्टम मूल रूप से समर्थन करते हैं। एक वेब ढांचे के लिए जाएं, एक आरईएसटी या एसओएपी आधारित सेवा परत बनाएं जो मौजूदा सिस्टम से कार्यों का खुलासा करे और उन सेवाओं को लागू करने के लिए COBOL का उपयोग करें। – Kwebble

9

कृपया, कृपया, कोबोल इस के लिए उपयोग नहीं करें। भविष्य में साइट का समर्थन करने वाले किसी भी व्यक्ति को और अधिक ... आधुनिक उपकरण चुनने के लिए धन्यवाद होगा।

मैं अनुशंसा करता हूं कि आप PHP, एएसपी.नेट एमवीसी इत्यादि जैसे फ्रंट-एंड लिखने के लिए वेब फ्रेमवर्क का उपयोग करें। फिर एक एपीआई बनाएं (या यदि आवश्यक हो तो किसी इंटरफेस के साथ एक अलग प्रक्रिया) उस उपकरण को आपके कोबोल बैक-एंड से बात करने की अनुमति देगा। यह आपको फ्रंट एंड पर वेब ढांचे का उपयोग करने की अनुमति देगा - जहां यह चमक जाएगा - जबकि आपको कोबोल में आपकी कंपनी के महत्वपूर्ण निवेश का लाभ उठाने की अनुमति मिलती है।

+0

मुझे कहा गया है कि मुझे COBOL का उपयोग करना है। – felixm

+5

@ फ़ेलिक्स: "मैंने COBOL का उपयोग करने का निर्णय लिया है" जैसे आप खराब निर्णय लेते हैं। "मुझे कोबोल का उपयोग करना है" किसी और को बुरा निर्णय लेने की तरह लगता है। कौन - विशेष रूप से - यह बुरा निर्णय ले रहा है? आपको COBOL का उपयोग करने के लिए मजबूर क्यों किया जाता है? आपको कौन मजबूर कर रहा है? –

+2

मैंने सोचा कि आपने इसका इस्तेमाल करने का फैसला किया है? वैसे भी, मैं अनुशंसा करता हूं कि आप फ्रंट-एंड लिखने के लिए वेब फ्रेमवर्क का उपयोग करें, जैसे PHP, एएसपी.नेट एमवीसी, इत्यादि। फिर एक एपीआई बनाएं (या यदि आवश्यक हो तो किसी इंटरफ़ेस के साथ एक अलग प्रक्रिया) जो अनुमति देगा वह उपकरण आपके कोबोल बैक-एंड से बात करने के लिए। यह आपको फ्रंट एंड पर वेब ढांचे का उपयोग करने की अनुमति देगा - जहां यह चमक जाएगा - जबकि आपको कोबोल में आपकी कंपनी के महत्वपूर्ण निवेश का लाभ उठाने की अनुमति मिलती है। –

1

Microfocus एंटरप्राइज़ सर्वर नामक एक उत्पाद प्रदान करता है जो कोबोल को वेब सेवाओं के साथ संवाद करने की अनुमति देता है।

यदि आपके पास एक COBOL प्रोग्राम ए और एक अन्य COBOL प्रोग्राम बी और ए इंटरफ़ेस अनुभाग के माध्यम से बी कॉल करता है, तो टूल आपको वेब सेवा के रूप में बी के इंटरफ़ेस अनुभाग का खुलासा करने की अनुमति देता है।

प्रोग्राम ए के लिए, फिर आप क्लाइंट प्रॉक्सी उत्पन्न करते हैं और ए अब वेब सेवा के माध्यम से बी को कॉल कर सकता है।

बेशक, क्योंकि बी के पास अब किसी अन्य प्रकार की वेब सेवा है (कमांड लाइन, विंडोज़ एप्लिकेशन, जावा, एएसपी इत्यादि) अब इसे भी कॉल कर सकती है।

उनके पास एक अन्य उत्पाद "COBOL.Net" भी है जो COBOL प्रोग्राम के लिए .NET IL को एक दुभाषिया प्रदान करता है।

क्योंकि यह नेट मंच पर है, तो आप मिश्रण-एवं-मिलान कर सकते हैं के साथ सी # आदि

यह आपको दोनों दुनिया के सर्वश्रेष्ठ देता है। आप मौजूदा COBOL बैक-एंड रखते हैं लेकिन आधुनिक टूल के साथ वेब एप्लिकेशन विकसित कर सकते हैं उदा। एएसपी/एमवीसी/स्ट्रूट्स/जेएसपी। और आप दोनों को एक वेब सेवा के साथ मिलकर चेन करते हैं।

+0

मूल पोस्टर द्वारा की गई टिप्पणियों के आधार पर ऐसा लगता है कि वे OpenCOBOL का उपयोग कर रहे हैं जो मूल रूप से सी कोबोल सी अनुवादक है। हो सकता है कि वे COBOL बॉक्स से बाहर निकलने के लिए इस "फीचर" का लाभ उठाने का इरादा रखते हैं। – NealB

1

यदि आपको कोबोल का उपयोग करना है क्योंकि आपको कुछ विरासत कोबोल एपीआई के साथ एकीकृत करने की आवश्यकता है, तो आप कुछ रीस्टफुल (या समान) एपीआई के माध्यम से डेटा का पर्दाफाश करने के लिए कोबोल का उपयोग कैसे करते हैं। फिर Django (जो बहुत अच्छा है) जैसे आधुनिक में अपना वेब ऐप लिखें। पाइथन वेब ऐप तब कोबोल में प्रदान किए जा रहे रीस्टफुल एपीआई के माध्यम से आवश्यक डेटा तक आसानी से पहुंच सकता है।

इससे आपको प्रत्येक नौकरी के लिए सही टूल का उपयोग करने की अनुमति मिल जाएगी: वेब ऐप के लिए एक आधुनिक वेब ऐप ढांचा और कुछ कोबोल कोड डेटा को बेनकाब करने के लिए जिसमें आपके पास केवल कोबोल एपीआई है।

4

प्रारंभिक प्रतिक्रिया अधिकांश लोगों को कोबोल में एक वेब अनुप्रयोग विकसित करना बहुत नकारात्मक है!

सामान्य तौर पर, मैं मानता हूँ, और सामने के छोर वेब विकास के लिए कोबोल का उपयोग नहीं करने की सलाह देते बस क्योंकि वहाँ अन्य उपकरण है कि आवेदन की इस तरह के निर्माण के लिए पहले से पैक समर्थन की एक बहुत कुछ के साथ आते हैं। समर्थन आमतौर पर लाइब्रेरी ऐड-ऑन और वेब सेवाओं के लिए पूर्व-निर्मित इंटरफेस के माध्यम से आता है। कार्यान्वयन भाषा स्वयं कम महत्वपूर्ण है।

एक उदाहरण के रूप में, रेल पर रूबी रूबी (भाषा) का उपयोग करके एमवीसी मॉडल के आधार पर आवेदन ढांचे को एक साथ "गोंद" के लिए उपयोग करता है। जब तक आप रेल फ्रेमवर्क तक चिपके रहते हैं, तब तक आपके विकास प्रयास का एक उचित हिस्सा वाष्पित करता है। हालांकि, फ्रेमवर्क तोड़ें और यह आपको बहुत अच्छी तरह से तोड़ सकता है। मैं नए विकास के लिए रेलवे पर रूबी जैसे ढांचे का उपयोग करके देखता हूं जहां आप जमीन से सबकुछ नियंत्रित करते हैं।

आपकी स्थिति कुछ अलग हो सकती है। अगर मैं सही ढंग से समझ गया हूं, तो आप में COBOL एप्लिकेशन और एक MySQL डेटाबेस का आधार है जिसे में एक नया वेब एप्लिकेशन में एकीकृत करने की आवश्यकता है। इस ढांचे में रेल फ्रेमवर्क विशेष रूप से उपयोगी हो सकता है या नहीं। यह सब इस बात पर निर्भर करता है कि आप "बीच में कैसे मिलते हैं"। यह मजबूत वेब-सक्षम टूल का उपयोग करने के लिए एक सामान्य आम उद्योग अभ्यास है जो सीओबीओएल आधारित बैक सिरों के साथ वेब अनुप्रयोगों के सामने है। दोनों को एक साथ आने के लिए एक काफी मंच विशिष्ट कला फ़ॉर्म है।

वही टिप्पणियां किसी अन्य वेब एप्लिकेशन ढांचे और टूल सेट पर लागू होती हैं। मैं बस एक उदाहरण के रूप में रेल पर रूबी का इस्तेमाल किया। नीचे की रेखा यह है कि बहुत से लोग (मुझे उनमें से) ने COBOL का उपयोग करके एक वेब एप्लिकेशन के सामने बहुत अधिक विचार दिया है।

उपरोक्त का सामना नहीं करते, मैंने देखा कि आप अपनी दुकान में ओपनकोबोल का उपयोग कर रहे हैं। यह को एक COBOL केवल एक उचित संभावना का निर्माण कर सकता है। कई कोबोल कार्यान्वयन के विपरीत, ओपनकोबोल "वेब तैयार" आता है और में database independent abstract layer है इसलिए आपके mySQL डेटाबेस पर पहुंचना काफी दर्द रहित होना चाहिए। वेब तैयारी आंशिक रूप से सी अनुप्रयोग बाइनरी इंटरफ़ेस (एबीआई) का उपयोग करके ओपनकोबोल का परिणाम है। सी एबीआई को मिश्रित भाषा वातावरण में काम करने में काफी सुविधा मिलनी चाहिए और सीजीआई (कॉमन गेटवे इंटरफेस) सुंदर के साथ बातचीत करना बहुत तुच्छ है; जैसा कि इस example से देखा जा सकता है।

ओपनकोबोल वेब अनुप्रयोग को व्यवहार्य बनाता है, लेकिन क्या यह व्यावहारिक है? जैसा कि पहले उल्लेख किया गया है, जब तक कोई दस्तावेज वेब अनुप्रयोग ढांचा तैयार नहीं होता है, तो आप इसे बहुत से कर सकते हैं। मुझे लगता है कि आप अपने प्रश्न पोस्ट करते समय पहले से ही निष्कर्ष पर आ सकते हैं। जहां तक ​​मैं कह सकता हूं, ऐसे ढांचे को विकसित करना भी व्यवहार्य है लेकिन अभी तक अस्तित्व में नहीं है। यदि आप इस परियोजना के साथ आगे बढ़ते हैं, शायद आप OpenCobol के लिए एक वेब अनुप्रयोग ढांचा विकसित करने में योगदान दे सकते हैं।

मुझे स्वीकार्य उत्तर में थोड़ा को अनुचित उत्तर में "कोबोल ऑन कॉग्स" संदर्भ मिला, आपने गंभीर प्रश्न से पूछा और एक पूरी तरह से गंभीर उत्तर देने योग्यता प्राप्त की।इस प्रकार का संदर्भ शायद COBOL की ओर "लाल गर्दन" बंद दिमाग की थोड़ी को दर्शाता है (हां, मैं इस पर वोटों के लिए के लिए तैयार हूं और उम्मीद कर रहा हूं)।

5

सीजीआई और एजेक्स के लिए ओपनसीओओएल नमूना पोस्ट करने के बाद, मैं बस जोड़ना चाहता हूं, इसके लिए जाना चाहूंगा। कोबोल फ्रंटेंड कर सकते हैं।

>>SOURCE FORMAT IS FIXED 
    ****************************************************************** 
    * Author: Brian Tiffin, Francois Hiniger 
    * Date:  30-Aug-2008 
    * Purpose: Display the CGI environment space 
    * Tectonics: cobc -x cgienv.cob 
    * Move cgienv to the cgi-bin directory as cgienv.cgi 
    * browse http://localhost/cgi-bin/cgienv.cgi or cgienvform.html 
    ****************************************************************** 
    identification division. 
    program-id. cgienv. 

    environment division. 
    input-output section. 
    file-control. 
     select webinput assign to KEYBOARD. 

    data division. 
    file section. 
    fd webinput. 
     01 postchunk  pic x(1024). 

    working-storage section. 
    78 name-count  value 34. 
    01 newline   pic x value x'0a'. 
    01 name-index  pic 99 usage comp-5. 
    01 value-string pic x(256). 
    01 environment-names. 
     02 name-strings. 
     03 filler pic x(20) value 'AUTH_TYPE'. 
     03 filler pic x(20) value 'CONTENT_LENGTH'. 
     03 filler pic x(20) value 'CONTENT_TYPE'. 
     03 filler pic x(20) value 'DOCUMENT_ROOT'. 
     03 filler pic x(20) value 'GATEWAY_INTERFACE'. 
     03 filler pic x(20) value 'HTTP_ACCEPT'. 
     03 filler pic x(20) value 'HTTP_ACCEPT_CHARSET'. 
     03 filler pic x(20) value 'HTTP_ACCEPT_ENCODING'. 
     03 filler pic x(20) value 'HTTP_ACCEPT_LANGUAGE'. 
     03 filler pic x(20) value 'HTTP_COOKIE'. 
     03 filler pic x(20) value 'HTTP_CONNECTION'. 
     03 filler pic x(20) value 'HTTP_HOST'. 
     03 filler pic x(20) value 'HTTP_REFERER'. 
     03 filler pic x(20) value 'HTTP_USER_AGENT'. 
     03 filler pic x(20) value 'LIB_PATH'. 
     03 filler pic x(20) value 'PATH'. 
     03 filler pic x(20) value 'PATH_INFO'. 
     03 filler pic x(20) value 'PATH_TRANSLATED'. 
     03 filler pic x(20) value 'QUERY_STRING'. 
     03 filler pic x(20) value 'REMOTE_ADDR'. 
     03 filler pic x(20) value 'REMOTE_HOST'. 
     03 filler pic x(20) value 'REMOTE_IDENT'. 
     03 filler pic x(20) value 'REMOTE_PORT'. 
     03 filler pic x(20) value 'REQUEST_METHOD'. 
     03 filler pic x(20) value 'REQUEST_URI'. 
     03 filler pic x(20) value 'SCRIPT_FILENAME'. 
     03 filler pic x(20) value 'SCRIPT_NAME'. 
     03 filler pic x(20) value 'SERVER_ADDR'. 
     03 filler pic x(20) value 'SERVER_ADMIN'. 
     03 filler pic x(20) value 'SERVER_NAME'. 
     03 filler pic x(20) value 'SERVER_PORT'. 
     03 filler pic x(20) value 'SERVER_PROTOCOL'. 
     03 filler pic x(20) value 'SERVER_SIGNATURE'. 
     03 filler pic x(20) value 'SERVER_SOFTWARE'. 
     02 filler redefines name-strings. 
     03 name-string pic x(20) occurs name-count times. 

    procedure division. 

    * Always send out the Content-type before any other IO 
    display 
     "Content-type: text/html" 
     newline 
    end-display. 

    display 
     "<html><body>" 
    end-display. 
    display 
     "<h3>CGI environment with OpenCOBOL</h3>" 
    end-display. 
    display 
     '<a href="/cgienvform.html">To cgienvform.html</a>' 
     "<p><table>" 
    end-display. 

    * Accept and display some of the known CGI environment values 
    perform varying name-index from 1 by 1 
     until name-index > name-count 
      accept value-string from environment 
       name-string(name-index) 
      end-accept 
      display 
       "<tr><td>" 
       name-string(name-index) 
       ": </td><td>" 
       function trim (value-string trailing) 
       "</td></tr>" 
      end-display 
      if (name-string(name-index) = "REQUEST_METHOD") 
       and (value-string = "POST") 
        open input webinput 
        read webinput 
         at end move spaces to postchunk 
        end-read 
        close webinput 
        display 
         '<tr><td align="right">' 
         "First chunk of POST:</td><td>" 
         postchunk(1:72) 
         "</td></tr>" 
        end-display 
      end-if 
    end-perform. 
    display "</table></p></body></html>" end-display. 
    goback. 

और यहां एक ऐसा फॉर्म है जो मिश्रण में थोड़ा AJAX जोड़ता है।

<html> 
<head> 
<title>Simple Ajax Example</title> 
<script language="Javascript"> 
function xmlhttpPost(strURL) { 
    var xmlHttpReq = false; 
    var self = this; 
    // Mozilla/Safari 
    if (window.XMLHttpRequest) { 
     self.xmlHttpReq = new XMLHttpRequest(); 
    } 
    // IE 
    else if (window.ActiveXObject) { 
     self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    self.xmlHttpReq.open('POST', strURL, true); 
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    self.xmlHttpReq.onreadystatechange = function() { 
     if (self.xmlHttpReq.readyState == 4) { 
      updatepage(self.xmlHttpReq.responseText); 
     } 
    } 
    self.xmlHttpReq.send(getquerystring()); 
} 

function getquerystring() { 
    var form  = document.forms['f1']; 
    var word = form.word.value; 
    qstr = 'w=' + escape(word); // NOTE: no '?' before querystring 
    return qstr; 
} 

function updatepage(str){ 
    document.getElementById("result").innerHTML = str; 
} 
</script> 
</head> 
<body> 
<form name="f1"> 
    <p>word: <input name="word" type="text"> 
    <input value="Go" type="button" onclick='javascript:xmlhttpPost("/cgi-bin/cgienv.cgi")'></p> 
    <div id="result"></div> 
</form> 
</body> 
</html> 

और बस कहा जब मैं OpenCOBOL पूछे जाने वाले प्रश्न यह एक वेबकिट ब्राउज़र कोबोल में एम्बेडेड, वाला वेबकिट बाइंडिंग का लाभ के साथ था के लिए यह परीक्षण किया गया। आकर्षण काम करता है। सीओबीओएल ब्राउज़र को नियंत्रित करता है जो सीजीआई को संसाधित करता है।

संबंधित मुद्दे