ऑपरेटर को शामिल किए बिना उपयोगकर्ता के स्थान से जुड़ी एक मोबाइल सेवा

एक ऑपरेटर को शामिल किए बिना मोबाइल सेवा एक स्थान से जुड़ी हुई है



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



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







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



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



टॉवर पर बेस स्टेशन

टॉवर पर बेस स्टेशन



अगली समस्या है (और यह, मेरी राय में, ऑपरेटर को शामिल किए बिना सेवा की सबसे बुनियादी समस्या है) मैपिंग "सेल आईडी = पता" का पता लगाने के लिए। डेटाबेस "सेल आईडी = पता" केवल मोबाइल ऑपरेटर के पास है, और यह जानकारी एक तरह का रहस्य है।

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



बेस स्टेशन कवरेज

बेस स्टेशन कवरेज



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



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



कल्पना कीजिए:

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




इस तरह की परियोजना चार प्रोग्रामर की एक टीम की पहुंच के भीतर है: सिम्बियन प्लेटफॉर्म के लिए क्रेज़ी सी ++ प्रोग्रामर; विंडोज मोबाइल के लिए सी # प्रोग्रामर; J2me प्लेटफॉर्म के लिए जावा प्रोग्रामर; PHP (रूबी, पायथन, पर्ल, एएसपी .NET आदि) सर्वर साइड के लिए एक प्रोग्रामर है। वैसे, सिम्बियन के लिए एक प्रोग्रामर की आवश्यकता नहीं है, क्योंकि j2me एप्लिकेशन इस प्लेटफॉर्म पर बहुत अच्छा काम करते हैं। वे विंडोज मोबाइल पर काम करते हैं, हालांकि, इस ऑपरेटिंग सिस्टम पर इन अनुप्रयोगों की उपस्थिति वांछित होने के लिए बहुत कुछ छोड़ देती है।



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



अब कार्यान्वयन के लिए।



विंडोज मोबाइल पर सेल आईडी प्राप्त करना - तैयार उदाहरण हैं। यह सभी फोन पर काम नहीं करता है। उदाहरण के लिए, यह WM2003 के साथ मेरे Qtek पर काम नहीं करता था, हालांकि मेगफॉन के साथ, थोड़ी देर के बाद, यह रहस्यमय रूप से "अनहुक" सेल आईडी के लिए निकला। मैंने पड़ोसी से WM5 के साथ Qtek लिया - यह तैयार हो गया और शुरू हुआ। जिस फोरम में मैंने लिंक दिया था, उस मॉडल के विवरण हैं, जिस पर यह परीक्षण किया गया था और काम करता है। C # (.NETCF, OpenNETCF (यदि आप चाहें)) और C ++ का उपयोग क्रमशः रेडियो मॉड्यूल के साथ संचार करने के लिए किया जाता है। सी ++ के लिए, पहले से ही इकट्ठे किए गए dll इस मंच पर हैं, और स्रोत कोड भी हैं।



सिम्बियन पर सेल आईडी प्राप्त करना। एक प्रोजेक्ट "सेलट्रैक" है। एक डेवलपर फ़ोरम है जहां आप उदाहरण डाउनलोड कर सकते हैं और कार्यान्वयन पर चर्चा कर सकते हैं। सेल आईडी प्राप्त करने के लिए कार्यक्रम के स्रोत कोड के साथ mobilab.ru पर एक लेख है। सिम्बियन पर, विंडोज के विपरीत, सब कुछ लंबे समय से स्थिर है।



J2me पर सेल आईडी प्राप्त करना। सेल आईडी परिभाषा उन उपकरणों के लिए उपलब्ध है जो CLDC 1.1 का समर्थन करते हैं, क्योंकि स्थान एपीआई पुस्तकालय सेट निर्देशांक का प्रतिनिधित्व करने के लिए फ्लोट प्रकार का उपयोग करता है। सन में एलबीएस पर एक लेख है और पुस्तकालय विनिर्देश के लिए एक लिंक है। अगर लोग सेल आईडी की परिभाषा को अलग-अलग पुस्तकालयों में फैलाते हैं और वास्तव में, निर्देशांक प्राप्त करते हैं, तो शायद सब कुछ सीएलडीसी 1.0 पर भी ठीक काम करेगा। दुर्भाग्य से, उन्होंने एक पुस्तकालय में सब कुछ संयोजित किया। एक विकल्प " System.getProperty (" सेलआईडी ") का उपयोग करना है , हालांकि, मंचों द्वारा देखते हुए, यह विधि सभी मॉडलों पर काम नहीं करती है।



सर्वर साइड के लिए, तब सब कुछ स्पष्ट है, और किसी शोध की आवश्यकता नहीं है। एक मोबाइल फोन, हमारे मामले में, एक और http क्लाइंट के अलावा कुछ नहीं है। फ़ोन अनुरोध क्या प्राप्त करेंगे और उसका जवाब एक शौकिया है। यह linux + apache + nginx + memcached + php5 + mysql5 या कुछ और हो सकता है। बेशक, बारीकियों को देखते हुए, आपको न केवल html + js के साथ काम करना होगा, बल्कि मोबाइल फोन के लिए वेब सेवाएं भी विकसित करनी होंगी, wml और xhtml (mp) में अतिरिक्त आउटपुट। वेब सेवा के लिए, WM उपकरणों की भागीदारी को देखते हुए, प्रोटोकॉल में से एक SOAP हो सकता है, क्योंकि SOAP का उपयोग कर विजुअल स्टूडियो में एक एप्लिकेशन विकसित करना एक तुच्छ मामला है। अन्य प्लेटफार्मों के रूप में - यह अपने आप में से कुछ हो सकता है, उदाहरण के लिए, JSON पर (अनपैकिंग के लिए पुस्तकालय j2me के लिए हैं और निश्चित रूप से, सिम्बियन के लिए c ++)।



इस प्रकार, हम देखते हैं कि किसी ऑपरेटर को शामिल किए बिना सेलुलर उपयोगकर्ता के स्थान का निर्धारण करने के आधार पर मोबाइल सेवा विकसित करना काफी संभव है। इसके लिए जाओ!



माय हाबरा डेब्यूट =)



Upd।

उपयोगकर्ता ओलेगी ने एक सेवा बनाई जो इस विषय में वर्णित सिद्धांतों पर आधारित है। आप इस सेवा से परिचित हो सकते हैं यहाँ http://habrahabr.ru/blog/i_am_clever/18819.html



उन्हें घरेलू ऑपरेटरों के बेस स्टेशनों के एक बड़े डेटाबेस का लिंक भी मिला। इसका मतलब है कि आपको बेस स्टेशनों के बारे में आंकड़ों के संग्रह से परेशानी नहीं है। समाप्त और मूर्तिकला सेवाएँ लें!



All Articles