2012-01-17 26 views
6

मेरे पास एक वेब अनुप्रयोग है जो हार्डवेयर के कुछ विशिष्ट टुकड़ों के लिए समर्थन के साथ चल रहा है। यह निम्न चरणों में हासिल की है:वेब अनुप्रयोग से हार्डवेयर समर्थन

  1. उपयोगकर्ता एक छोटा सा संस्थापक क्लाइंट मशीन पर जावा फ़ाइलें (और एक जोड़ी अन्य) देता है कि चलाता है। मुख्य टुकड़ा "हार्डवेयर प्रबंधक" नामक एक जार है
  2. उपयोगकर्ता विज़िट वेब ऐप। वेब ऐप एक जावा ऐपलेट चलाता है, जो ए .java.policy फ़ाइल के इंस्टॉल के दौरान रखा गया है, को ब्राउज़र सैंडबॉक्स के बाहर क्लाइंट मशीन के साथ बातचीत करने की अनुमति है।
  3. एप्लेट यह सुनिश्चित करने के लिए जांच करता है कि हार्डवेयर प्रबंधक चल रहा है, और यदि इसे प्रारंभ करने के लिए कोई आदेश नहीं चलाता है।
  4. उपयोगकर्ता वेब ऐप के साथ इंटरैक्ट करता है जो जावास्क्रिप्ट के माध्यम से एप्लेट को आदेश भेजता है। तब एप्लेट क्लाइंट मशीन पर एक पाठ फ़ाइल पर कमांड लिखता है। हार्डवेयर प्रबंधक द्वारा पाठ फ़ाइल की लगातार निगरानी की जाती है जो

यह काम करता है, लेकिन गुंजाइश लगता है। मेरे पास कुछ सुधार हैं कि इसे कैसे सुधारें, लेकिन मुझे नहीं पता कि कौन सा, यदि कोई है, तो कोशिश करने लायक भी है।

क्या हार्डवेयर प्रबंधक को सॉकेट सर्वर के रूप में स्थापित करना बेहतर होगा और ऐप्पल सीधे टेक्स्ट फ़ाइलों के माध्यम से कनेक्ट होने के बजाय कनेक्ट होगा? क्या यह भी संभव है?

क्या एप्लेट को पूरी तरह से खत्म करने का कोई तरीका है और सीधे जावास्क्रिप्ट से जावास्क्रिप्ट बात है? शायद हार्डवेयर प्रबंधक को स्थानीय http सर्वर के रूप में लिखकर? यह किस पोर्ट पर चलाना चाहिए? जावास्क्रिप्ट xss सीमाएं कहीं यहां फिट हैं?

+3

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

+0

@ विरुज़ू के उत्तर में जोड़कर, आप [जेटी] (http://docs.codehaus.org/display/JETTY/Embedding+Jetty) का उपयोग कर सकते हैं जो जावा एप्लिकेशन के अंदर आसानी से एक http सर्वर एम्बेड करने की अनुमति देता है। तो आप हार्डवेयर प्रबंधक –

+1

Viruzzo से बातचीत करने के लिए बस जावास्क्रिप्ट कोड को स्थानीयहोस्ट पर निर्देशित करें, कृपया इसे उत्तर दें ताकि मैं इसके लिए वोट दे सकूं। – pkh

उत्तर

2

जावा वेब स्टार्ट का उपयोग कर जावा एप्लिकेशन शुरू करने के लिए यह कम घबराहट होगी। यह जावा हार्डवेयर प्रबंधक को डिमन या स्थापित करने की आवश्यकता को हटा देगा।

जावा के अंदर एक अंतर्निहित ब्राउज़र का उपयोग करने का एक और विकल्प है। मुझे लगता है कि यह एक विकल्प नहीं है, क्योंकि आप जावास्क्रिप्ट पर भारी निर्भर हैं (मुझे लगता है कि एक समृद्ध ग्राहक अनुभव प्रदान करना है)।

यदि आपको पहले से ही क्लाइंट मशीन पर कुछ इंस्टॉल करना है, तो आपने वेब एप्लिकेशन के साथ जाने का विकल्प क्यों चुना?

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

आपके मामले पर लागू: क्यों अपने जावा एप्लिकेशन को सीधे सर्वर से कनेक्ट नहीं होने दें? आप आरएमआई पर HTTP, SOAP या यहां तक ​​कि जेएमएस का उपयोग कर सकते हैं। फिर आप सर्वर से हार्डवेयर कमांड लॉन्च कर सकते हैं (सीमित जावास्क्रिप्ट वेबब्रोसर पर्यावरण से)। इस तरह, आपको कई सुविधाएं मिलती हैं: प्रमाणीकरण, आदेशों का बफरिंग, और आप कई ग्राहकों के बीच हार्डवेयर साझा भी कर सकते हैं।

योजनाबद्ध:

    <----AJAX------> Web browser 
ApplicationServer     
        <---HTTP/SOAP--> Java hardware manager application 

आप (बजाय हर ग्राहक एक नया इंस्टॉलर पारित करने के लिए की आवश्यकता होगी, की) जो आप स्वचालित रूप से आवेदन अद्यतन करने के लिए अनुमति देता है जावा वेब प्रारंभ का उपयोग कर जावा अनुप्रयोग, शुरू कर सकते हैं।

+0

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

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