একটি ইজেবি কী, এবং এটি কী করে?


151

EJBমটরশুটি কী কী তা জানার চেষ্টা করা হয়েছে , এর অর্থ কী যে তাদের দৃষ্টান্তগুলি একটি পুলে পরিচালনা করা হয়, বেলা বেলা। সত্যিই তাদের ভাল গ্রিপ পেতে পারে না।

তারা কি আসলে আমাকে বোঝাতে পারেন (কার্যত জাভা প্রোগ্রামারটির জন্য)? তারা কি করে? কোনটি তাদের উদ্দেশ্য? সত্যিই কেন তাদের ব্যবহার? (কেন কেবল আঁকড়ে থাকবেন না POJO?) সম্ভবত উদাহরণ প্রয়োগ?

দয়া করে কেবল আপডেট হওয়া তথ্যগুলিতে উল্লেখ করুন, এটি EJB 3.1। ইজেবি সম্পর্কে তারিখের তথ্য বিভ্রান্তিকর হতে পারে।

EJB শেখার জন্য দয়া করে নোট করুন:

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


উত্তর:


161

সত্যিই কেন তাদের ব্যবহার? (শুধু পোজোকে কেন আটকে রাখবেন না?)

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

  1. লুজ কাপলিংয়ের সাথে একাধিক অ্যাপ্লিকেশন / ক্লায়েন্ট জুড়ে পুনঃব্যবহার / ভাগ করে নেওয়া যুক্তি।
    ইজেবিগুলি তাদের নিজস্ব জারে প্যাকেজ করা যায়, মোতায়েন করা যায় এবং প্রচুর জায়গা থেকে আহবান করা যেতে পারে। এগুলি সাধারণ উপাদান। সত্য, POJOs (সাবধানে!) লাইব্রেরি হিসাবে ডিজাইন করা এবং জার হিসাবে প্যাকেজ করা যেতে পারে। তবে ইজেবিগুলি স্থানীয় এবং দূরবর্তী নেটওয়ার্ক উভয়ই অ্যাক্সেস সমর্থন করে - স্থানীয় জাভা ইন্টারফেস, স্বচ্ছ আরএমআই, জেএমএস অ্যাসিঙ্ক বার্তা এবং এসওএপি / আরএসটি ওয়েব পরিষেবা সহ, একাধিক (অসঙ্গত?) মোতায়েনের সাথে কাট-পেস্ট জারের নির্ভরতা থেকে সঞ্চয় করে।
    তারা এসওএ পরিষেবা তৈরির জন্য খুব দরকারী। স্থানীয় অ্যাক্সেসের জন্য ব্যবহার করার সময় এগুলি পোগ (হ'ল ফ্রি ধারক পরিষেবাদি যুক্ত)। একটি পৃথক ইজেবি স্তর ডিজাইনের কাজটি এনক্যাপসুলেশন, আলগা সংযোগ এবং সংহতি সর্বাধিক করে তোলার জন্য অতিরিক্ত যত্নকে উত্সাহ দেয় এবং একটি পরিষ্কার ইন্টারফেস (ফ্যাসাদ) প্রচার করে, জটিল প্রক্রিয়াজাতকরণ এবং ডেটা মডেলগুলি থেকে কলারদের .াল দেয়।

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

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

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

  5. ইঞ্জেকশনের মাধ্যমে খুব সাধারণ সংস্থান / নির্ভরতা অ্যাক্সেস।
    ধারকটি সংস্থানগুলি অনুসন্ধান করবে এবং EJB তে উদাহরণ ক্ষেত্র হিসাবে উত্সের রেফারেন্স স্থাপন করবে: যেমনটি জেএনডিআই সঞ্চিত জেডিবিসি সংযোগ, জেএমএস সংযোগ / বিষয় / সারি, অন্যান্য ইজেবি, জেটিএ লেনদেন, জেপিএ সত্তা ব্যবস্থাপক দৃ pers়তা প্রসঙ্গে, জেপিএ সত্তা ব্যবস্থাপক কারখানার দৃistence়তা ইউনিট এবং জেসিএ অ্যাডাপ্টার সংস্থান। উদাহরণস্বরূপ অন্য একটি ইজেবি এবং একটি জেটিএ লেনদেন এবং একটি জেপিএ সত্তা ব্যবস্থাপক এবং একটি জেএমএস সংযোগ কারখানা এবং সারিতে একটি রেফারেন্স সেটআপ করতে:

    @Stateless
    public class MyAccountsBean {
    
        @EJB SomeOtherBeanClass someOtherBean;
        @Resource UserTransaction jtaTx;
        @PersistenceContext(unitName="AccountsPU") EntityManager em;
        @Resource QueueConnectionFactory accountsJMSfactory;
        @Resource Queue accountPaymentDestinationQueue;
    
        public List<Account> processAccounts(DepartmentId id) {
            // Use all of above instance variables with no additional setup.
            // They automatically partake in a (server coordinated) JTA transaction
        }
    }
    

    একটি সার্লেট কেবল একটি উদাহরণটি পরিবর্তনশীল হিসাবে ঘোষণা করে স্থানীয়ভাবে এই বিনকে কল করতে পারে:

    @EJB MyAccountsBean accountsBean;    
    

    এবং তারপরে কেবল এর 'পদ্ধতিগুলি পছন্দসই হিসাবে কল করা।

  6. জেপিএর সাথে স্মার্ট মিথস্ক্রিয়া। ডিফল্টরূপে, উপরের মতো ইনজেক্ট করা অ্যান্টিটি ম্যানেজার একটি লেনদেন-স্কোপড অধ্যবসায় প্রসঙ্গ ব্যবহার করে। এটি স্টেটলেস সেশন মটরশুটির জন্য উপযুক্ত। যখন কোনও (রাষ্ট্রবিহীন) ইজেবি পদ্ধতি বলা হয়, নতুন লেনদেনের মধ্যে একটি নতুন দৃistence়তার প্রসঙ্গ তৈরি হয়, ডিবিতে প্রাপ্ত / সঞ্চিত সমস্ত সত্তা অবজেক্টের দৃষ্টান্ত কেবল সেই পদ্ধতি কলের মধ্যেই দৃশ্যমান হয় এবং অন্যান্য পদ্ধতি থেকে বিচ্ছিন্ন থাকে। তবে যদি অন্য স্টেটলেস ইজেবিগুলি পদ্ধতি দ্বারা কল করা হয়, তবে ধারকগুলি একই পিসিটি প্রচার করে এবং তাদের কাছে ভাগ করে দেয়, সুতরাং একই সংস্থাগুলি স্বয়ংক্রিয়ভাবে একই লেনদেনে পিসির মাধ্যমে একটি ধারাবাহিক উপায়ে ভাগ করা হয়।
    যদি একটি @ স্থায়ী সেশন শিম ঘোষিত হয়, সত্তা ম্যানেজারকে একটি বর্ধিত সুযোগ হিসাবে ঘোষণা করে জেপিএর সাথে সমান স্মার্ট সাদৃশ্য অর্জন করা হবে: @ পার্সেন্টিয়েন্ট কনটেন্ট (ইউনিটনেম = "অ্যাকাউন্টসপিইউ, টাইপ = এক্সটেন্ডেড) This এটি সিম সেশনের জীবনের জন্য বিদ্যমান, একাধিক বিন কল এবং লেনদেন জুড়ে, পূর্বে পুনরুদ্ধার / লিখিত ডিবি সত্তাগুলির মেমরি অনুলিপিগুলি ক্যাশে করা হচ্ছে যাতে তাদের পুনরুদ্ধার করার প্রয়োজন হয় না।

  7. জীবনচক্র ব্যবস্থাপনা. EJBs এর জীবনচক্রটি ধারক দ্বারা পরিচালিত। যেমন প্রয়োজন হয়, এটি ইজেবি দৃষ্টান্ত তৈরি করে, রাষ্ট্রীয় অধিবেশন শিমের অবস্থা সাফ করে দেয় এবং প্রারম্ভিক করে দেয়, প্যাসিভেটস এবং অ্যাক্টিভেট করে এবং লাইফাইসাইকাল কলব্যাক পদ্ধতিগুলিকে কল করে, তাই ইজেবি কোড সংস্থানগুলি অর্জন ও প্রকাশের জন্য লাইফসাইकल অপারেশনগুলিতে অংশ নিতে পারে বা অন্যান্য সূচনা এবং শাটডাউন আচরণ করতে পারে। এটি সমস্ত ব্যতিক্রম ক্যাপচার করে, তাদের লগ করে, প্রয়োজনীয় হিসাবে লেনদেনকে ব্যাক করে এবং প্রয়োজনীয় হিসাবে নতুন ইজেবি ব্যতিক্রম বা @ অ্যাপ্লিকেশনএক্সেপশন নিক্ষেপ করে।

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

  9. মানককরণ এবং বহনযোগ্যতা। EJB বাস্তবায়ন জাভা EE মান এবং কোডিং কনভেনশনগুলির সাথে সামঞ্জস্য করে, গুণমান এবং বোধগম্যতা রক্ষণাবেক্ষণ এবং রক্ষণাবেক্ষণ সহজ করে। এটি নতুন বিক্রেতার অ্যাপ্লিকেশন সার্ভারগুলিতে কোডের বহনযোগ্যতার প্রচার করে, তারা সকলেই একই স্ট্যান্ডার্ড বৈশিষ্ট্য এবং আচরণগুলি সমর্থন করে তা নিশ্চিত করে এবং বিকাশকারীদের দুর্ঘটনাক্রমে মালিকানাবিহীন
    পোর্টেবল ভেন্ডর বৈশিষ্ট্যগুলি গ্রহণ করা থেকে নিরুৎসাহিত করে।

  10. রিয়েল কিকার: সরলতা। উপরের সমস্তটি খুব প্রবাহিত কোডের সাহায্যে করা যেতে পারে - হয় জাভা EE 6 এর মধ্যে ইজেবিগুলির জন্য ডিফল্ট সেটিংস ব্যবহার করা, বা কয়েকটি টীকা যুক্ত করা। আপনার নিজের POJOs মধ্যে এন্টারপ্রাইজ / শিল্প শক্তি বৈশিষ্ট্য কোডিং হবে পথ আরো volumous, জটিল এবং ত্রুটি-প্রবণ। আপনি একবার ইজেবিগুলির সাথে কোডিং শুরু করলে এগুলি বিকাশ করা সহজ এবং "ফ্রি রাইড" সুবিধার একটি দুর্দান্ত সেট দেয়।

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

কি পছন্দ করেন না?? :-) :-)


67

একটি ইজেবি হ'ল একটি জাভা উপাদান, ব্যবসায়িক যুক্তিযুক্ত, যেটি আপনি একটি ধারকটিতে স্থাপন করেন এবং যা ধারক দ্বারা সরবরাহিত প্রযুক্তিগত পরিষেবাগুলি থেকে, সাধারণত একটি ঘোষিত উপায়ে, টীকাগুলির জন্য ধন্যবাদ:

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

আপনি যখন লেনদেনের কথা উল্লেখ করেন - আপনি অধ্যবসায়ের বিষয়ে উল্লেখ করেন?
জ্যাকট্রেডস

6
হ্যাঁ, তবে কেবল নয়। ইজেবি পাত্রে একটি বিতরণ করা জেটিএ ট্রানজেকশন ম্যানেজার সরবরাহ করে, একক লেনদেনে একাধিক সংস্থান সমর্থন করে। আপনি উদাহরণস্বরূপ একটি ডাটাবেসে কিছু ডেটা আপডেট করতে পারেন এবং একক লেনদেনে কিছু জেএমএস বার্তা প্রেরণ করতে পারেন। যদি কিছু ব্যর্থ হয় তবে সমস্ত কিছু রোলব্যাক করা হবে: ডিবি আপডেট এবং প্রেরিত বার্তাগুলি।
জেবি নিজেট

@ জেবিনিজেট আমাকে পুরানো থ্রেডে মন্তব্য করার জন্য ক্ষমা করবেন, তবে স্প্রিংয়ের মতো নয় ইজেবি ফ্রেমওয়ার্কগুলি আপনার উল্লেখ করা পরিষেবাগুলি সরবরাহ করছে না। আমি পার্থক্যটি বুঝতে পারি না
MoienGK

মৌলিক নীতিগুলি একই রকম। স্প্রিং ইজেবি এবং তদ্বিপরীত থেকে ধারণা নিয়েছিল। তবে এপিআই, বাস্তবায়ন, স্থাপনার উপায় এবং কয়েকটি বৈশিষ্ট্য আলাদা।
জেবি নিজত

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

22

আশা করি ওরাকল ডকের কাছ থেকে এটি আমার মতো কাউকে ইজেবির বিষয়টিকে সহজ উপায়ে বুঝতে সহায়তা করবে।

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

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

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

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

এন্টারপ্রাইজ বিনগুলি কখন ব্যবহার করবেন আপনার অ্যাপ্লিকেশনটির নিম্নলিখিত কোনও প্রয়োজনীয়তা থাকলে আপনার এন্টারপ্রাইজ বিনগুলি বিবেচনা করা উচিত:

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

লেনদেন অবশ্যই ডেটা অখণ্ডতা নিশ্চিত করতে হবে। এন্টারপ্রাইজ মটরশুটি লেনদেনকে সমর্থন করে, এমন প্রক্রিয়াগুলি যা ভাগ করা বস্তুর একযোগে অ্যাক্সেস পরিচালনা করে।

অ্যাপ্লিকেশনটিতে বিভিন্ন ক্লায়েন্ট থাকবে। কয়েকটি মাত্র লাইন কোডের সাথে, দূরবর্তী ক্লায়েন্টগুলি সহজেই এন্টারপ্রাইজ মটরশুটিগুলি সনাক্ত করতে পারে। এই ক্লায়েন্টগুলি পাতলা, বিভিন্ন এবং অসংখ্য হতে পারে।


3

যে প্রশ্নটি আমার সবচেয়ে বেশি আগ্রহী তা হ'ল আমি সেগুলি কীভাবে এবং কোথায় ব্যবহার করতে পারি। এটি বুঝতে, আমাদের প্রথমে দেখতে হবে কী ধরণের ইজেবি রয়েছে। দুটি বড় বিভাগ রয়েছে:

  1. সিম বিন
  2. বার্তা চালিত মটরশুটি

আসুন সেশন বিনগুলি বিবেচনা করুন। এগুলি 3 ধরণের:

  1. জবাবদিহি - এই উপাদানগুলি রাষ্ট্র বজায় রাখে এবং একাধিক অনুরোধ জুড়ে একটি ক্লায়েন্টের জন্য নির্দিষ্ট। এটি একটি অধিবেশন হিসাবে দেখুন। এগুলির তাত্ক্ষণিক ব্যবহার শপ কার্ট বা অন্যান্য ধরণের সেশনগুলির জন্য করা যেতে পারে (লগইন সেশন ইত্যাদি)
  2. রাজ্যহীন - এগুলি স্ব-র অন্তর্ভুক্ত উপাদান যা অনুরোধগুলির মধ্যে তথ্য বহাল রাখে না তবে তারা ব্যবহারকারীর কাছে অনন্য। তাত্ক্ষণিক ব্যবহার যা মনে আসে - পরিষেবা স্তরে পরিষেবা ক্লাস । কল্পনা করুন OrderService। এগুলির জন্য আর একটি বড় ব্যবহার হ'ল ওয়েব পরিষেবাগুলি প্রকাশ করা। আবার এটি সার্ভিস লেয়ারে বা সম্পূর্ণ আলাদা।
  3. সিঙ্গেলটন - এগুলি হ'ল মটরশুটি যা প্রতি প্রয়োগ অনুসারে বিদ্যমান এবং একবারে তৈরি হয় এবং একাধিকবার পুনরায় ব্যবহার / অ্যাক্সেস করা যায়। তাত্ক্ষণিকভাবে Configurationউপাদানটি মাথায় আসে - যেখানে আপনি অ্যাপ্লিকেশন স্তরের কনফিগারগুলি সঞ্চয় করতে এবং আপনার যে কোনও জায়গা থেকে এগুলি প্রয়োজন হলে সেগুলিতে অ্যাক্সেস করতে পারেন।

এখন যেমন অন্যান্য পরিস্থিতিতে সামর্থ্য বা বৈশিষ্ট্যগুলি স্তরগুলিতে ব্যবহার করা যেতে পারে:

  • সুরক্ষা - আপনি যে পদ্ধতিতে ডাকা হয় তার উপর নোট দিয়ে অনুমতিগুলি পরীক্ষা করতে পারেন। আপনি যদি চান তবে এটি সার্ভিস লেয়ারের পাশাপাশি কন্ট্রোলারেও ঘটতে পারে।
  • লেনদেন পরিচালনা - এটি পরিষেবা স্তর বা দৃistence়তার স্তরটিতে সুস্পষ্ট প্রার্থী
  • নির্ভরতা ইনজেকশন - আবার সর্বত্র ব্যবহৃত হবে

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

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

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