2013-02-16 17 views
16

मेरे पास मेरे डेटाबेस में सहेजे गए ईवेंट का एक सेट है (एक बहुत ही विशेष डेटाबेस, इसलिए मैं कुछ लोकप्रिय ओपन-सोर्स सर्वरों का उपयोग नहीं कर सकता, कह सकता हूं, MySQL)। अब मैं एक CalDav सर्वर (जावा द्वारा) बनाना चाहता हूं ताकि कोई उपयोगकर्ता ईवेंट कैलेंडर को पुनर्प्राप्त या संशोधित करने के लिए अपने कैलेंडर क्लाइंट को कनेक्ट कर सके। मैं इसके लिए नया हूं इसलिए बहुत सारे प्रश्न हैं, आशा है कि आप लोग मेरी मदद करेंगे।एक CalDav सर्वर विकसित करना

  1. सामान्य कदम क्या हैं?

  2. क्या मुझे सर्वलेट की पेशकश करने की आवश्यकता है? यदि हां, तो मुझे अनुरोध के लिए क्या वापस करना होगा? एक JSON या एक्सएमएल या .ics फ़ाइल?

  3. जब कोई उपयोगकर्ता मेरे कैलेंडर की सदस्यता लेता है, तो इसका मतलब यह है कि उसका ग्राहक अंतराल के बाद मेरा सर्वर (सर्वलेट को कॉल करेगा) खींच लेगा।

अद्यतन: इस है 1 साल पुराने सवाल के बाद से मैं पहली बार पूछा लेकिन मैं काफी कुछ upvotes मिला, तो मैं कुछ जानकारी प्रदान करने के लिए बाध्य कर रहा हूँ: मैं मिल्टन पुस्तकालय http://milton.io/ का उपयोग कर समाप्त हो गया, इसे दूर सार servlets, आपको सिर्फ डेटा वापस करने के लिए कार्यों को लिखना होगा। पुस्तकालय का लेखक काफी उपयोगी और जानकारीपूर्ण है। अंत परिणाम: हमारे caldav सर्वर ने काम किया है।

मैं एवर के उत्तर को भी स्वीकार करता हूं।

+0

हाय वहाँ - क्या आप अभी भी milton.io का उपयोग कर रहे हैं? यह कैसे हुआ? – avijendr

उत्तर

4

आरएफसी पढ़ें: http://tools.ietf.org/html/rfc4791

नहीं सिर्फ एक बार, आप कम से कम नीचे 4 बार शीर्ष इसे पढ़ने के लिए चाहते हैं।

इससे भी अधिक, आपको शायद वेबएडीवी, वेबडीवी एसीएल और आईकैलेंडर के लिए आरएफसी भी पढ़ना चाहिए।

कोई भी उत्तर जो आप यहां प्राप्त करेंगे, वहां क्या होगा, इसकी पुनरावृत्ति होगी और इसे सरल बनाने का प्रयास करना व्यर्थ है, क्योंकि आपको वास्तव में अधिकांश विनिर्देशों की पूर्ण समझ की आवश्यकता है।

विशेष रूप से आपके सवालों के जवाब के लिए:

  1. पूरी तरह से भी जवाब देने के लिए अस्पष्ट है। सामान्य कदम विनिर्देश को समझने और सर्वर लिखने में शामिल होंगे। विशिष्टताओं को प्रोत्साहित किया जाता है।
  2. आपको ऐसा कुछ चाहिए जो HTTP अनुरोधों का उत्तर दे सके। चाहे वह एक सर्वलेट है या कुछ और महत्वपूर्ण है। CalDAV HTTP के लिए एक विस्तार है। मेटा-सूचनाओं के लिए एक्सएमएल रिपोर्ट लौटा दी जाती है, और iCalendar वास्तविक कैलेंडर डेटा के लिए डिफ़ॉल्ट प्रारूप है। कई http अनुरोधों के लिए iCalendar को एक्सएमएल निकायों में लपेटा गया है। इन दिनों सर्वर xCal और jCal का समर्थन करना शुरू कर रहे हैं। बाद वाले दो वैकल्पिक हैं, आप में iCalendar समर्थन होना चाहिए।
  3. आमतौर पर, वे एक ग्राहक परिभाषित अंतराल पर मतदान करेंगे। पब-सब तंत्र हैं, लेकिन वर्तमान में उनके लिए कोई मानक नहीं है, और वहां कई कार्यान्वयन हैं। इस के लिए मानक परिवहन के साथ चर्चा शुरू हो गई है, लेकिन इसे पूरा करने में कुछ समय लग सकता है। (वर्षों)
+3

इस प्रश्न में 3 अंक हैं। आपका 'उत्तर' उनमें से किसी को भी उत्तर नहीं देता है। – bjedrzejewski

+1

मेरा उत्तर आधिकारिक दस्तावेज का संदर्भ प्रदान करता है जो सभी उत्तरों प्रदान करता है। एक लोकप्रिय CalDAV सर्वर लागू करने के बाद, डॉक्टर के माध्यम से पढ़े बिना शुरू करने के लिए बिल्कुल कोई रास्ता नहीं है। – Evert

+1

मैं आपसे सहमत हूं, लेकिन मैं इस बात से सहमत नहीं हूं कि यह पोस्ट 3 अंक पूछे जाने वाले उत्तर देता है, जिसका शायद संपूर्ण दस्तावेज पढ़ने के बिना उत्तर दिया जा सकता है। आपने जो कहा है उसमें सत्य की तुलना में एसओ के प्रारूप के बारे में यह एक मेटा चर्चा है। – bjedrzejewski

5

मुझे इसे एक कोशिश ;-)

सामान्य क्या कदम उठाएँ देता हूँ?

जैसा कि एवर द्वारा उल्लिखित है, आपको CalDAV सर्वर को लागू करने की आवश्यकता है।आप किस विशेषताओं का समर्थन करना चाहते हैं, इस पर निर्भर करते हुए, यह गैर-तुच्छ है और प्रासंगिक चश्मा (iCalendar आरएफसी 5545 और CalDAV 4791, WebDAV आरएफसी 4918) की समझ की आवश्यकता है।

CalDAV सर्वर को लागू करने के लिए सामान्य कदम क्या हैं? आप करने के लिए HTTP प्रवेश अंक की जरूरत है:

क) खाते की जानकारी (WebDAV में कहा जाता है प्रिंसिपलों), यह भी शामिल है की सेवा है जिसके तहत एक खाता लाइव

ख) के कैलेंडर URL (कैलेंडर की सूची कहा जाता है की सेवा कैलेंडर होम, ए से मूल जानकारी) इस पर इंगित करता है)

सी) वास्तविक कैलेंडर की सेवा करें, यानी, उन घटनाओं में निहित घटनाएं। CalDAV कैलेंडर 'iCalendar' संसाधनों के विशेष WebDAV संग्रह हैं। iCalendar वह प्रारूप है जिसमें ईवेंट का प्रतिनिधित्व किया जाता है।

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

क्या मुझे सर्वलेट की पेशकश करने की आवश्यकता है? यदि हां, तो मुझे अनुरोध के लिए क्या वापस करना होगा? एक JSON या एक्सएमएल या .ics फ़ाइल?

जैसा कि एवर कहते हैं, आप HTTP अंतराल को कैसे लागू करते हैं, आपकी पसंद है। सर्वलेट एक व्यवहार्य विकल्प हैं। प्रिंसिपल सूचना, कैलेंडर सूचियों और कैलेंडर को कैलेंडर में आइटम्स में URL (WebDAV) XML (multistatus प्रतिसाद) में वापस कर दिया जाता है। किसी ईवेंट की वास्तविक सामग्री iCalendar (.ics) प्रारूप में वापस करने की आवश्यकता है।

जब कोई उपयोगकर्ता मेरे कैलेंडर की सदस्यता लेता है, तो इसका मतलब यह है कि उसका ग्राहक अंतराल के बाद मेरा सर्वर (सर्वलेट को कॉल करेगा) खींच लेगा।

हां।

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

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