2009-11-06 11 views
12

मैं वर्तमान में अपने शोध प्रबंध परियोजना के शोध चरण में हूं।एंड्रॉइड में क्लाइंट सर्वर संचार के लिए विकल्प

मेरा प्रोजेक्ट मोबाइल डिवाइस के लिए टिकट बुकिंग सिस्टम है और मैंने एंड्रॉइड को लक्षित करना चुना है।

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

मुझे पता है कि एंड्रॉयड java.nio और java.net, साथ ही कुछ org.apache संकुल के साथ आता है कर रहा हूँ, लेकिन यह भी पुस्तकालयों/प्रौद्योगिकियों कि Android के साथ उपयोग करने के लिए संभव हो जाएगा रहा हूँ।

अब तक मुझे इंटरनेट पर कुछ भी उपयोगी नहीं मिला है, इसलिए मैं देख रहा हूं कि एसओ क्या सुझाव दे सकता है।

विशेष रूप से मैं यह जानने में दिलचस्पी है:

  1. क्या समर्थन एंड्रॉयड में विभिन्न मिडलवेयर प्रौद्योगिकियों के लिए है? जैसे
    • RPC आधारित मिडलवेयर
    • CORBA
    • ऐसे XML-RPC, साबुन, बाकी
  2. के रूप में संदेश के आधार मिडलवेयर
  3. वेब सेवाओं कितनी अच्छी तरह से (या नहीं) मौजूदा जावा लाइब्रेरीज काम करते हो जब एंड्रॉइड मंच पर इस्तेमाल किया? (उदाहरण के लिए अगर मैं एक पुस्तकालय/एपीआई जावा SE बजाय Android के लिए तैयार किया गया है क्या समस्या है मैं सामना कर सकते हैं उपयोग करने के लिए? चाहता था)

आदर्श रूप में, के रूप में मेरी परियोजना का ध्यान केंद्रित नहीं होती है सर्वर के बीच संचार होने के लिए और ग्राहक, मैं संचार को संभालने के लिए मौजूदा मिडलवेयर का उपयोग कर सकता हूं, लेकिन मैं सबसे खराब मामले के लिए तैयार हूं, जो मुझे अपना लिखना है।

उत्तर

14

एंड्रॉइड में विभिन्न मिडलवेयर तकनीकों के लिए क्या समर्थन है?

मेरे व्यक्तिगत राय - हालांकि मैं नहीं लग रहा है मैं अकेला इस तरह से सोच में हूँ - यह है कि केवल विशेष रूप से एक मोबाइल ग्राहक के साथ उपयोग के लिए दूर से उपयुक्त हैं इंटरनेट पर चलाने के लिए डिज़ाइन प्रोटोकॉल है। तो, अपनी सूची के, केवल एक ही है कि मैं भी मनोरंजन होगा:

ऐसे XML-RPC, साबुन, बाकी के रूप में

वेब सेवाओं

कुछ लोगों kSOAP2 की एक Android बंदरगाह को बनाए रखने की है । हालांकि, मुझे यह अलग इंप्रेशन मिलता है कि इस क्षेत्र में काम कर रहे अधिकांश एंड्रॉइड डेवलपर्स आरईएसटी और आरईएसटी-आईएसएच प्रोटोकॉल की तरफ बढ़े हैं। यदि कुछ और नहीं है, तो यह है कि सभी मजेदार वेबसाइट्स और सेवाएं एपीआई के लिए उपयोग कर रही हैं, खासकर एक्सएमएल-आरपीसी (पुरानी) और एसओएपी (पुरानी और icky) की तुलना में।

मैंने आरईएसटी-स्टाइल एंडपॉइंट्स के साथ संचार करने के लिए एंड्रॉइड में java.net.URLConnection और अपाचे HTTP क्लाइंट लाइब्रेरी दोनों का सफलतापूर्वक उपयोग किया है - सीधे और तीसरे पक्ष के जेएआर के माध्यम से - कोई वास्तविक एंड्रॉइड-विशिष्ट मुद्दों के साथ।

कितनी अच्छी तरह से (या नहीं) मौजूदा जावा पुस्तकालयों जब एंड्रॉयड प्लेटफ़ॉर्म पर काम करते हैं?

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

+1

यह प्रश्न अब थोड़ा पुराना है, लेकिन फिर भी बहुत सारे विचार आकर्षित करता है। क्या आपका उत्तर अभी भी अद्यतित है, या मूल प्रश्न के संबंध में पिछले 3 वर्षों में एंड्रॉइड पर्यावरण बदल गया है? – chrisbunney

+2

@ क्रिसबुननी: किसी को जावामेल काम कर रहा है, इसलिए अब कोई समस्या नहीं है। अपाचे HTTP क्लाइंट पर REST क्लाइंट के लिए 'HttpUrlConnection' अनुशंसित दृष्टिकोण है। अन्यथा, मुझे लगता है कि मेरी सिफारिशें वापस रास्ते से फिर भी काफी सटीक हैं। – CommonsWare