কোনও জেআরই লাইব্রেরির ক্লাসগুলি কি বহিরাগত / নন-জেআরই অ্যাসেমব্লিগুলি থেকে পর্যবেক্ষণযোগ্য এবং / অথবা অ্যাসিনক্রোনাস পাঠ সমর্থন করে?


12

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

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

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

পুরানো ইউনিক্স-স্টাইলের সিএলআই ইঞ্জিনগুলি যেভাবে হ্যান্ডেল করা হয় তা হ'ল স্টিডিন / স্ট্ডআউট / স্টার্ডার ব্যবহার করা এবং নিয়মিত বিরতিতে ইঞ্জিন পোস্ট আপডেট করা। এর জন্য স্ট্যান্ডার্ড ওভারহেড এবং পাঠ্য পার্সিং দরকার যা সম্ভব হলে আমি এড়াতে চাই।


2
মূল প্রশ্নটি "কি X সম্ভব?" এর চেয়ে কিছুটা সঙ্কুচিত করা সবচেয়ে ভাল, যেহেতু এর সঠিক উত্তর প্রায় সবসময় "হ্যাঁ, আপনি যদি যথেষ্ট চেষ্টা করেন তবে।" দেখে মনে হচ্ছে আপনি সত্যিই জিজ্ঞাসা করতে চান "স্টিডিন / স্টাডাউটের ওভারহেড ছাড়া আমি কীভাবে এক্স করব?" কোন ক্ষেত্রে, কেন কেবল একটি স্থিতিশীল বা গতিশীল লিঙ্কযুক্ত লাইব্রেরি ব্যবহার করবেন না? আপনার কি এই লাইব্রেরিটি কোনও কারণে ইউআই থেকে আলাদা প্রোগ্রাম হওয়ার দরকার?
Ixrec

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

স্থিতিশীলভাবে বা গতিশীলভাবে সংযুক্ত লাইব্রেরি কেন পোর্টেবল হতে পারে না? পুনঃ শিরোনাম, এটি একটি "খুব বিস্তৃত" প্রশ্নের পাঠ্যপুস্তকের উদাহরণ; আমি তাতে মনোনিবেশ করিনি কারণ আপনার বাকী প্রশ্নে আরও সুনির্দিষ্ট প্রশ্ন রয়েছে।
Ixrec

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

1
@Ixrec আমি শিরোনামটি কম বিস্তৃত হিসাবে আপডেট করেছি
ব্র্যান্ডন আর্নল্ড

উত্তর:


1

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


0

আমি সম্পূর্ণ ভিন্ন উত্তর লিখেছিলাম, যাতে আপনার প্রকাশক একটি সারি বা পাইপের আপডেট লিখেন - তবে আমি তখনই আবার প্রশ্নটি পড়ি।

যদি আমি ঠিক বুঝতে পারি তবে আপনার সাধারণ প্রশ্নটি হ'ল আপনি জেআরইতে চালানোর জন্য একটি লাইব্রেরি লিখতে চান, যাতে কোনও নেটিভ ফ্রন্ট-এন্ড একটি থ্রেড-নিরাপদে পদ্ধতিতে জাভা অবজেক্টগুলির অবস্থা সম্পর্কে জিজ্ঞাসা করতে পারে।

এটি অবিশ্বাস্যরূপে বিস্তৃত কারণ এক জেআরআই - জেএনআই, ইজেবি আরপিসি, আরপিসি-স্টাইল এইচটিটিপি ইন্টারফেস, বার্তার সারিগুলির জন্য অনুরোধ-প্রতিক্রিয়া ইত্যাদির সাথে ফ্রন্ট-এন্ড লাইব্রেরি কোডের সাথে যোগাযোগ করতে পারে এমন কয়েকশ উপায় রয়েছে ways

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

তবে, আপনি এটি অনুসরণ করতে চান এমন মডেল কিনা তা বিবেচনা করবেন না। এটি "আমাকে জিজ্ঞাসা করবেন না, আমি আপনাকে বলব" মডেলটিতে চলে যেতে ক্লিনার হতে পারে, যেখানে আপনার লাইব্রেরিটি সামনের প্রান্তে আপডেটগুলি পর্যাপ্ত তথ্য সম্বলিত ধাক্কা দেয় যাতে অবজেক্টগুলির অনুসন্ধানের প্রয়োজন হয় না doesn't


অতিরিক্ত মন্তব্য - আপনি কি রেডিসকে (বা অনুরূপ) আপনার সামনে এবং পিছনের প্রান্তের মধ্যস্থতাকারী হিসাবে বিবেচনা করেছেন?
স্লিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.