একটি ওয়েব পরিষেবা ব্যবহার করে এমন ডেস্কটপ ভিত্তিক ক্লায়েন্টের অফলাইন ব্যর্থতার কী সেরা উপায়?


13

আমার কাছে তিনটি আগত প্রকল্প রয়েছে যা একটি সাধারণ সমস্যা ভাগ করে নেয়:

তাদের একটি ওয়েব সিস্টেমে যুক্তি থাকা প্রয়োজন এবং তাদের একটি স্থানীয় অ্যাপ্লিকেশন (যেমন বিক্রয় বিক্রয়) দরকার যা একটি রেস্ট্রুলফুল ওয়েব পরিষেবার মাধ্যমে এই জাতীয় সিস্টেমের সাথে যোগাযোগ করে।

আমার সমাধান

যে সমাধানটি আমি নিয়ে এসেছি তা হ'ল পরিষেবাটি অফলাইনে থাকা অবস্থায় ডেস্কটপ অ্যাপ্লিকেশন বার্তার সঞ্চারের জন্য ক্রিয়াকলাপে প্রয়োগ করা , আরও সুনির্দিষ্টভাবে, অ্যাসিনক্রোনাস মেসেজের কাতারে । তবে, এটি সহজ অংশ (যদি এটি সর্বোত্তম সমাধান হয়)। আমি ডেটা সিঙ্ক এবং সংঘাতের সমাধানের সাথেও উদ্বিগ্ন।

মূল সিস্টেমটি ওয়েব ভিত্তিক হওয়া প্রয়োজন যেহেতু স্টেকহোল্ডারদের দ্বারা প্রতিবেদন এবং পর্যবেক্ষণের জন্য একটি ওয়েব অ্যাপ্লিকেশন প্রয়োজন এবং ওয়েব পরিষেবাগুলি কয়েকটি প্রতিষ্ঠানের জন্য অনুরোধগুলি পরিচালনা করবে।

ডেস্কটপ ক্লায়েন্ট (সাধারণত পাতলা) জাভা (আরও নির্দিষ্ট করে নেটবিয়ান) এবং সিমফনি 2 সহ ওয়েব সিস্টেমের সাথে প্রয়োগ করা হবে। দুটি প্রকল্পের ক্লায়েন্টের জন্য হার্ডওয়্যার ইন্টিগ্রেশন প্রয়োজন, সুতরাং ওয়েব প্রযুক্তির মাধ্যমে ডেস্কটপ অ্যাপ্লিকেশন তৈরি করা (উদাহরণস্বরূপ অ্যাপসিলারেটর টাইটানিয়াম) একটি বড় ব্যথা হতে পারে।

আমার প্রশ্ন

  1. সর্বনিম্ন পরিশ্রমের সাথে সর্বাধিক দক্ষতা (এবং স্থানীয়ভাবে অপারেশনের জন্য ব্যাকআপ সার্ভার কেনার মতো কোনও অতিরিক্ত ব্যয় না করা) এর চেয়ে বেশি কার্যকর সমাধান কী?

  2. এর আগে এর সাথে আর কে করেছে? আপনি কীভাবে আপনার সমস্যার সমাধান করলেন? আপনি কোন পাঠ ভাগ করতে পারেন?

  3. আপনি কীভাবে সিঙ্ক্রোনাইজেশন মোকাবেলা করেছেন?

সম্পাদনা: # 3 পয়েন্টে আমার প্রশ্নের একটি অনুপস্থিত অংশ যুক্ত করেছে

উত্তর:


3

আমি জানি আপনার প্রশ্ন জাভা, তবে আমি এই বার্তাটির জন্য এই ধরণের জিনিসটির জন্য বাস শৈলীর আর্কিটেকচারটি পছন্দ করি ।

মূলত বার্তা প্রেরণ করা হলে তারা সম্ভাব্য দুটি প্রতিক্রিয়া পান। প্রথমটি স্থানীয় ক্যাশে থেকে, দ্বিতীয়টি সংযুক্ত হওয়ার পরে সার্ভার থেকে আসে।

আমি নিশ্চিত যে আপনি এই আর্কিটেকচারটি (গণ্ডার বাস এবং নিবিব) আপনার (এমকিউ এবং এইচবি) খুব সহজেই মানিয়ে নিতে পারবেন।


হ্যাঁ, আমি ঠিক সেই ধরণের বার্তা ওরিয়েন্টেড আর্কিটেকচারের সন্ধান করছিলাম। আপনার সংযুক্ত থাকা ক্যাশে যুক্তি এবং শেষ বাক্যটি আমাকে বিশ্বাস করেছিল।
ডিউকুফগেমিং

10

স্থানীয়ভাবে সবকিছু করুন এবং পর্যায়ক্রমে সিঙ্ক করুন

আমি আপনি হলে আমি কী করতাম তা এখানে রয়েছে (জাভাতে সিঙ্ক ফ্রেমওয়ার্ক সম্পর্কে আমাদের জানা নেই, যেমন আমাদের NET আছে)।

স্থানীয় অ্যাপ্লিকেশনটিতে এমন একটি টাইমস্ট্যাম্প বজায় রাখুন যা আপনি শেষবার সফলভাবে সংযুক্ত হয়েছেন।

আপনি পুনরায় সংযোগের সময় নির্বিশেষে, সেই টাইমস্ট্যাম্পটি নতুন ডেটা টানতে ব্যবহার করা হবে, তারপরে স্থানীয়ভাবে উত্পন্ন নতুন আদেশগুলি প্রেরণ করুন।

তারপরে আপনি দুটি টাইমস্ট্যাম্প বজায় রাখবেন। অর্ডার তৈরি হওয়ার সময় (স্থানীয়ভাবে বা অনলাইন) এবং সার্ভারের দ্বারা রেকর্ড করা হয়ে থাকে এমন একটি নির্ধারণ করতে হয়।

আমি তার জন্য মেসেজ কুইংয়ের প্রস্তাব দিচ্ছি না। আমি অতীতে ই-কমার্স ওয়েবসাইটের জন্য এমকিউ ব্যবহার করেছি যা নেভিশনের সাথে সংযুক্ত থাকতে হয়েছিল। সবকিছু নাভিশনের অভ্যন্তরে পরিচালিত হয়েছিল এবং আদেশের স্থিতি এবং পণ্যের বিবরণ, মূল্য নির্ধারণ ইত্যাদি সহ এমকিউয়ের মাধ্যমে ই-বাণিজ্য ওয়েবসাইটটিতে পরিবর্তনগুলি প্রেরণ করা হয়েছিল নতুন এমআরএইচকিউ-র মাধ্যমেও ন্যাভিশনকে প্রেরণ করা হয়েছিল।


হুঁ, আমি একটি ধাক্কা মডেলের ধারণা পছন্দ করি, তবে আমি সমস্যাটি দেখতে পাচ্ছি যে কম্পিউটারের সময় পরিবর্তন করা হলে ডেটা-ক্ষতি হতে পারে। বিটিডাব্লু, আমার প্রতিটি ডাটাবেস ডিজাইনে প্রতিটি রেকর্ডের টাইমস্ট্যাম্প করার কনভেনশন রয়েছে। আপনি কেন এমকিউ প্রস্তাব দিচ্ছেন না?
ডিউকওফেমিং

এটা ঠিক, আপনার অবশ্যই সময় সিঙ্ক্রোনাইজড পিসি এবং ইউটিসি ব্যবহার করতে হবে তবে এটি এখন বেশ স্ট্যান্ডার্ড (কমপক্ষে উইন্ডোজে)। এমকিউ কখনও কখনও প্রয়োজনীয় হয় তবে আমি মনে করি আপনি যে ধরণের অ্যাপ্লিকেশন বিকাশ করছেন তার জন্য এটি খুব বেশি হবে।

ঠিক আছে, তাই নির্ভরযোগ্যতার অগ্রাধিকার দেওয়ার জন্য, ডেস্কটপ অ্যাপ্লিকেশনটি সংযোগ বিচ্ছিন্ন হয়ে যাবে এবং এভাবে ডেস্কটপ অ্যাপটিকে প্রথম-শ্রেণীর নাগরিক হিসাবে বিবেচনা করা আরও ভাল, তবে আমি এখনও এই ধারণাটির মধ্যে আছি যে এমকিউ স্থানীয় ডাটাবেস প্রয়োগের জন্য একটি সহজ প্রতিস্থাপন হতে। এছাড়াও, আমি মনে করি সার্ভারে সমস্ত সিআরইউডি অপারেশন করার ক্ষেত্রে আরও ভাল সুরক্ষা রয়েছে। এই দুটি বিষয় সম্পর্কে আপনার কী ধারণা?
ডিউকুফগেমিং

@ ডুকিফগেমিং: আমার ক্ষেত্রে, ওয়েব সহ যে কোনও পস থেকে আদেশ নেওয়া যেতে পারে (এছাড়াও অ্যাপ্লিকেশনটি অর্ডার প্রক্রিয়াকরণ সিস্টেম হিসাবে নয় বরং অর্ডার প্রসেসিং সিস্টেম হিসাবে ব্যবহৃত হতে পারে)। সারা দেশে বিতরণ করা হয়েছিল। সংযোগের ক্ষেত্রে প্রতিটি ডেস্কটপের স্বায়ত্তশাসিত হওয়া একেবারে প্রয়োজনীয় ছিল। এমকিউও সেই দৃশ্যে কাজ করবে, তাই আমি এর বিপক্ষে নই। আমি কেবল অনুভব করি যে মাস্টার সার্ভার এবং ক্লায়েন্টদের মধ্যে শক্তিশালী ডেটা সিঙ্ক কার্যকর করা আরও সহজ। সুতরাং, মাস্টার সার্ভারে সিআরইউডি অপারেশন কোনও বিকল্প ছিল না।

2
+1 - আমি অতীতে এটি এটি দেখেছি। আমি আরও বলব যে প্রাথমিক কী হিসাবে অনন্য পরিচয়বিদ (গাইড) এর ব্যবহার জিনিসগুলিকে অত্যন্ত সহজ করে তোলে l আপনার সিঙ্ক্রোনাইজেশন প্রয়োজন হলে সেই কাজগুলির মধ্যে এমন একটি যা আপনার জীবনটিকে রাস্তায় আস্তে করে তোলে।
স্কট হুইটলক

1

অথবা আপনার মাঝেমধ্যে সংযুক্ত সিস্টেম ডাটাবেস বাস্তবায়নের দিকে নজর দেওয়া উচিত যা সার্ভারে দূরবর্তী ক্লায়েন্টদের সিঙ্ক করার গুরুতর কাজ করে। (এসকিউএল সার্ভারের একটি পরিমাণে এসকিউএল সিই এর সাথে এটি রয়েছে, আউটলুক এটি করে)

এইভাবে, আপনি স্থানীয়ভাবে একটি ছোট পদচিহ্ন ডাটাবেসে আপনার সমস্ত পরিবর্তন করতে পারেন (এটি সংস্করণকরণ / লজিকাল টাইমস্ট্যাম্প ইত্যাদি বজায় রাখে যাতে আপনাকে পিসি ক্লক ইত্যাদির বিষয়ে চিন্তা করতে না হয়) এবং যখনই আপনি অনলাইনে যান, আপনি এটি মূলটির সাথে সিঙ্ক করুন সার্ভার।

সিস্টেমটি বেশিরভাগ সময় অনলাইনে না থাকতে পারলে আমি বিশ্রামের সমাধানের জন্য যাব না।


আপনি কি একটি বিতরণ করা ডাটাবেস বর্ণনা করছেন ?, আপনি কি সে সম্পর্কে বিস্তারিত বলতে পারবেন?
ডিউকুফগেমিং

না - এটি বাস্তব বিশ্ববোধে বিতরণ করা ডিবি নয়। ডিস্ট্রিবিটেড ডিবি সাধারণত প্রায় সমস্ত কিছু অনলাইনেও প্রত্যাশা করে তবে নীচে নেমে আসা সমকক্ষদের মধ্যে প্রতিরূপের যুক্তিটি এখানেও প্রযোজ্য। কিছু ডেস্কটপ / ডিভাইস ডাটাবেস রয়েছে যাতে প্রতিরূপ কাজ করার সুবিধা রয়েছে ( ব্লগস.এমএসডিএন / বি / স্টেভেলসেকার / অর্চিভ / ২০০7 /০ //১//২০ ) - সুতরাং আপনাকে যা করতে হবে তা এই ডিভাইসটি সেটআপ করতে হবে ডিবি, আপনার পরিবর্তনগুলি এখানে লগ করুন এবং আপনি কম্পিউটার নেটওয়ার্কের সাথে সংযোগ স্থাপন করার সময়, সিঙ্ক কল করুন - এবং এটি আপনার জন্য প্রধান সার্ভারে ডেটা স্থানান্তর করবে।
সুব শঙ্করা সুব্রমনিয়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.