আমি একটি নতুন সমাধান আর্কিটেকচারের দিকে লক্ষ্য করছি যা প্রকৃতির দ্বারা খুব মডুলার এবং এটি এমন একটি কাঠামো তৈরি করতে চাই যা সেই নকশাকে সমর্থন করে ভবিষ্যতের সহজ প্রসারণ, উদ্বেগের স্পষ্ট বিচ্ছেদ, মডিউল দ্বারা লাইসেন্সিং ইত্যাদির অনুমতি দেয় I've মডিউলার বা যৌগিক অ্যাপ্লিকেশন সম্পর্কে ওয়েবে পাওয়া গেছে হ'ল ইউআই-কেন্দ্রিক, সিলভারলাইট, ডাব্লুপিএফ ইত্যাদির উপর দৃষ্টি নিবদ্ধ করে আমার ক্ষেত্রে, আমি একটি ডাব্লুসিএফ পরিষেবা অ্যাপ্লিকেশন বিকাশ করছি যা অন্যান্য ইউআই প্রকল্পে কাজ করা অন্যান্য বিকাশকারীরা গ্রাস করবে।
পটভূমি
আমার প্রকল্পের লক্ষ্যটি হ'ল আমাদের বেশ কয়েকটি ব্যবসায়িক অ্যাপ্লিকেশনকে বর্তমানে ডুপ্লিকেট প্রক্রিয়া, বিধি ইত্যাদিকে সমর্থন করার জন্য ব্যবসায়ের / ডোমেন যুক্তির একটি কেন্দ্রিক উত্স তৈরি করা এবং যখন মডুলারটির প্রতিটি সুবিধা অর্জন করা হবে না, আমি জব্দ করতে চাই এমন একটি কাঠামো স্থাপনের সুযোগ রয়েছে যা সেই অংশগুলি আমরা কাজে লাগাতে পারি le
আমি সার্ভিস অ্যাপ্লিকেশন দ্বারা প্রকাশিত API টি দেখে নকশা শুরু করেছি। এটি স্পষ্ট যে পরিষেবাগুলি আমি যে মডুলার লাইনগুলি বিবেচনা করছি তা বরাবর পৃথক করা যেতে পারে। উদাহরণস্বরূপ, আমার কাছে ফাইন্যান্স সার্ভিস, ইনভেন্টরি সার্ভিস, পার্সোনাল সার্ভিসেস ইত্যাদি থাকবে যা সংযুক্তি কম রাখার সময় আমার পরিষেবা ক্রিয়াকলাপগুলিকে এপিআইতে উচ্চ সংহতি প্রদানের জন্য গ্রুপ করে দেয় যাতে ক্লায়েন্টদের কেবল তাদের প্রয়োগের ক্ষেত্রে প্রাসঙ্গিক পরিষেবাগুলি গ্রাস করতে হবে।
এটি আমার কাছে বোধগম্য হয় যে আমি তখন এই প্রতিটি পরিষেবায় যেমন মাইএপ.ফিনান্স, মাইএপ.আইভেন্টরি, মাই.পারসোনেল এবং এর জন্য পৃথক মডিউল রাখতে পারি। ক্রস কাটিয়া উদ্বেগ এবং ভাগ করা প্রকারগুলি মাই অ্যাপে ভাগ করা সমাবেশে থাকবে। এখান থেকে আমি কিছুটা বেঁধেছি।
(ওহ, আমার উল্লেখ করা উচিত যে আমি অ্যাপ্লিকেশনটি আলগা-দম্পতি রাখতে ডিপেন্ডেন্সি ইনজেকশনের জন্য আইওসি পাত্রে ব্যবহার করব which আমি কোনটি উল্লেখ করব না কারণ আমি পান্ডোরার বাক্সটি খুলতে চাই না!)
মাইএপ.সেসওয়ারহোস্টে, আমি উদাহরণস্বরূপ ফিনান্স সার্ভিস.এসভিসি প্রতিটি মডিউল সম্পর্কিত একটি পরিষেবা হোস্ট ফাইল (.svc) তৈরি করব। পরিষেবা হোস্টটির সেবার নাম প্রয়োজন যা কনফিগারেশন ফাইলের তথ্যের সাথে মিলে যা পরিষেবার চুক্তিটি সংজ্ঞায়িত ইন্টারফেস ধারণ করে। আইওসি কনফিগারেশনটি ব্যবহারের জন্য ইন্টারফেসের কংক্রিট বাস্তবায়ন মানচিত্রের জন্য ব্যবহৃত হয়।
১. পরিষেবা স্তরটি কি এপিআই বাস্তবায়ন করবে এবং মডিউলগুলিতে প্রতিনিধিত্ব করবে বা মডিউলগুলি স্বয়ংসম্পূর্ণ হওয়া উচিত (এতে সেগুলিতে পরিষেবা বাস্তবায়ন সহ সেই মডিউল সম্পর্কিত সমস্ত কিছু রয়েছে)?
সমস্যাটির কাছে যাওয়ার একটি উপায় হ'ল মাই অ্যাপ্লিকেশন erv সার্ভিসেস "মডিউল" যা পরিষেবা চুক্তিগুলির বাস্তবায়ন ধারণ করে। প্রতিটি সার্ভিস ক্লাস কেবল অপর ক্লাসের জন্য উপযুক্ত প্রতিনিধিত্ব করে এমন উপযুক্ত মডিউল যা অপারেশনের জন্য ডোমেন লজিক ধারণ করে। উদাহরণস্বরূপ, মাই অ্যাপে সার্ভিসেস ফিনান্স সার্ভিস ডাব্লুসিএফ শ্রেণি অন্য ইন্টারফেসে প্রতিনিধি দেয় যা অপারেশন পরিচালনার জন্য ফিনান্স মডিউলে প্রয়োগ করা হয়। এটি আমাকে পরিষেবাটি বাস্তবায়নের জন্য একটি পাতলা পরিষেবা সম্মুখের এবং 'প্লাগ-ইন' বজায় রাখার অনুমতি দেয় এবং উদাহরণস্বরূপ, ডাব্লুসিএফ সম্পর্কে উদ্বেগের মডিউলগুলির প্রয়োজনীয়তা দূর করতে পারে।
অন্যদিকে, সম্ভবত এটি প্রতিটি মডিউলটিতে স্বতঃস্ফূর্ত থাকতে পারে এটির ইন্টারফেস এবং বাস্তবায়ন রয়েছে। পরিষেবা হোস্টটি মডিউলটিতে পাওয়া সার্ভিস কন্ট্রাক্ট ইন্টারফেসকে বোঝায় এবং আইওসিটি মডিউল থেকে যথাযথ বাস্তবায়ন ব্যবহার করার জন্য কনফিগার করা হয়েছে। এর অর্থ একটি নতুন মডিউল যুক্ত করা কোনও নতুন .svc ফাইল এবং আইওসি কনফিগারেশন তথ্য সংযোজন ব্যতীত পরিষেবা স্তরে কোনও পরিবর্তন ছাড়াই করা যায়।
আমি যদি স্ট্যান্ডার্ড ডাব্লুসিএফ থেকে একটি রেস্ট্রুল সার্ভিস ইন্টারফেসে চলে যাই বা সম্ভবত আরআইএ পরিষেবাদি বা অন্য কিছুতে যাই তবে আমি তার প্রভাব সম্পর্কে ভাবছি। প্রতিটি মডিউলে যদি পরিষেবার চুক্তিটির বাস্তবায়ন থাকে তবে আমি পরিষেবা প্রযুক্তি বা পদ্ধতির পরিবর্তন করলে প্রতিটি মডিউলটিতে আমাকে পরিবর্তন করতে হবে। তবে, যদি সম্মুখটি এটির নিজস্ব মডিউল হয় তবে পরিবর্তন করতে আমাকে কেবল সেই অংশটি অদলবদল করতে হবে। মডিউলগুলি তখন চুক্তির একটি পৃথক সেট (ইন্টারফেস) প্রয়োগ করতে হবে, সম্ভবত ভাগ করে নেওয়া সমাবেশে সংজ্ঞায়িত করা হবে ???
২. মডিউল এবং / অথবা মডিউলগুলির মধ্যে নির্ভরতার মধ্যে ভাগ করে নেওয়া সংস্থানগুলি হ্যান্ডেল করার সর্বোত্তম উপায় কী?
উদাহরণস্বরূপ, একটি রিসিভিং অপারেশন নিন। প্রথম ব্লাশে এটি বোঝা যায় যে এটি ইনভেন্টরি মডিউলে যায় কারণ পণ্য প্রাপ্তি একটি ইনভেন্টরি ফাংশন। তবে এর মধ্যে একটি আর্থিক দিকও রয়েছে যে আমাদের একটি রসিদ তৈরি করা এবং অর্থ প্রদানের অনুমোদন করা দরকার।
অপারেশনটি যোগাযোগের জন্য একদিকে আমি কিছু ধরণের ডোমেন ইভেন্ট / বার্তাবাহিনী ব্যবহার করার আশা করব। ইনভেন্টরি মডিউলটি একটি গুডস রিসিভডভেন্ট উত্থাপন করে যা রশিদ উত্পন্ন করতে এবং প্রদান প্রক্রিয়া শুরু করতে আর্থিক মডিউল দ্বারা পরিচালিত হয়। যাইহোক, এর অর্থ হ'ল ফিনান্সিয়াল মডিউলটি যে সমস্ত পণ্যগুলি পেয়েছিল সেগুলি সম্পর্কে জানতে হবে। আমি কেবল তাদের আইডি দ্বারা উল্লেখ করতে পারি তবে যদি রশিদের অতিরিক্ত নাম, যেমন নাম এবং / অথবা বিবরণ, ইউনিট ব্যয় ইত্যাদির প্রয়োজন হয় তবে আমার কী প্রয়োজন? প্রতিটি মডিউলটির জন্য কোনও ইনভেন্টরি আইটেমের নিজস্ব সংস্করণ থাকতে হবে যা সেই মডিউলটির প্রয়োজন অনুসারে ডিজাইন করা হয়েছে? সেক্ষেত্রে গুডসরেসিড এভেন্টটি পরিচালনা করার সময় ফিনান্সিয়াল মডিউলটিকে ইনভেন্টরি আইটেমগুলির নিজস্ব অনুসন্ধান করতে হবে।
...
আমি এই উদাহরণটি উদ্দেশ্য হিসাবে ব্যবহার করেছি কারণ আমি বিভিন্ন ইআরপি সিস্টেমগুলির সাথে প্রচুর পরিশ্রম করেছি এবং জানি যে তারা এই ধরণের মডুলারিটির সাথে ডিজাইন করেছেন - আমি ঠিক জানি না কীভাবে। আমি উপরেও এটি স্পষ্টভাবে উল্লেখ করি না, তবে আমি সমাধানটি আর্কিটেকিংয়ে ডোমেন চালিত ডিজাইনের প্রিন্সিপালগুলিকে অনুসরণ করতে পছন্দ করি এবং বিশ্বাস করি যে এই ধরণের মডুলারালিটি সেই জায়গাতেই ফিট করে।
এই সম্পর্কে আমার মাথা মোড়ানো কোন সহায়তা প্রশংসা করা হয়।