SORU
13 EKİM 2012, CUMARTESİ


Bir YEREL, nedir ve ne işe yarar?

2 ** fasulye, örneklerini havuzu, blah blah yönetilir ne anlama geliyor ne olduğunu öğrenmek için çalışıyorlar. Gerçekten iyi bir kavrama alınamıyor.

Gerçekte ne olduğunu bana hemen bir Java Programcısı için) açıklayabilir misiniz? Ne yapıyorlar? Hangi amaçları vardır?Gerçekten neden bunları kullanmak? (Neden sadece POJO? sopa)Belki de bir örnek uygulama?

Lütfen EJB 3.1 tek güncel bilgileri bakın. YEREL tarih hakkında bilgi yanıltıcı olabilir.

Yeni başlayanlar lütfen not öğrenme: YEREL için

YEREL dayanmaktadırdağıtılmış nesnelerbu yazılım parçaları birden fazla makine üzerinde çalışan (sanal veya fiziksel) ile bağlantılı bir bakın.

CEVAP
14 EKİM 2012, Pazar


Gerçekten neden bunları kullanmak? (Neden sadece POJO sopa değil mi?)

EĞER ihtiyacınız varsa bir bileşeni erişen veritabanı erişir veya diğer bağlantı/ dizin kaynakları, ya da erişilen, birden fazla müşteri ya da istediği gibi bir SOA servis, EJBs bugün genellikle "daha büyük, daha güçlü, daha hızlı (ya da en azından daha fazla San. ve basit" daha POJOs. Web veya şirket ağı üzerinden çok sayıda kullanıcı hizmet için en değerli ve bir bölüm içinde küçük uygulamalar için biraz daha az değerlidir.

  1. Yeniden/Mantık Paylaşımı çoklu uygulamalar arasında Gevşek bağlantı ile/müşteriler.
    EJBs kendi kavanozlarda, dağıtılan ve birçok yerden çağrılan paketlenmiş olabilir. Ortak bileşenleri. Doğru, POJOs (dikkatle!) kütüphaneler olarak tasarlanmış kavanoz gibi paketlenmiş. Ama EJBs yerel ve uzak ağ erişimi de dahil olmak üzere destek java yerel arayüzü, şeffaf RMI, JMS zaman uyumsuz ileti ve SOAP/REST yoluyla web servis, kes-yapıştır kavanoz tasarruf birden fazla (tutarsız?) ile bağımlılıkları dağıtımları.
    SOA hizmetleri oluşturmak için çok yararlıdır. Onlar yerel erişim için kullanılan POJOs (ücretsiz konteyner hizmetleri ile eklenmiştir). Ayrı YEREL bir katman tasarımı eylemi saklama, gevşek bağlantı ve uyum en üst seviyeye çıkarmak için ekstra bakım ve teşvik temiz bir arayüz (Cephe), karmaşık işleme ve veri arayanlar koruma teşvik modelleri.

  2. Ölçülebilirlik ve Güvenilirlik Sen/çeşitli işler arıyorum mesajlar gelen istekleri büyük bir sayı uygulayın threads /havuz ilk mevcut YEREL örnekler arasında dağıtılır ve sonra sıraya. Bu ise saniyede gelen istek sayısı anlamına gelir sunucu işleyebilir daha büyük, biz incelikle - her zaman vardır aşağılamak istekleri verimli bir şekilde işlenmekte ve aşırı istekleri beklemek yapılır. Biz "erime TÜM istekleri korkunç tepki süresi deneyimi" - server ulaşmıyor sunucu, donanım ve işletim sistemi daha fazla kaynak erişimi için çalışır artı aynı anda, işleyebilir ve dolayısıyla çöker. EJBs ayrı katman üzerinde dağıtılabilir - bu başka bir sunucu yerine çalışma ile güvenilirlik sağlar kümelenmiş, artı donanım ölçek doğrusal olarak eklenebilir.

  3. Eşzamanlılık Yönetimi. Konteyner YEREL örneklerini otomatik olarak erişilen güvenli bir şekilde (seri olarak) olmasını sağlar birden fazla müşteri tarafından. Konteyner YEREL havuzu, iş parçacığı havuzu yönetir sıra çağırma ve Yöntem düzeyi kilitleme (varsayılan) otomatik olarak taşır ya kilitleme (@Kilit(OKUMA) ile) okuyun. Bu yolsuzluk verileri ile korur eşzamanlı yazma-yazma çatışmalar ve verileri sürekli olarak engelleyerek okumak için yardımcı olur okuma-yazma çatışmalar.
    Bu @Singleton oturum fasulye için faydalıdır, fasulye manipülasyonu ve istemci arayanlar arasında ortak devlet paylaşımı. Bu kolayca basmış için el olabilir yapılandırma veya programlama yoluyla gelişmiş senaryoları kontrol eşzamanlı kod yürütme için ve veri erişimi.

  4. Otomatik işlem işleme.
    Hiçbir şey yapmak ve tüm YEREL yöntemlerin çalışır JTA bir işlem. Bir veritabanı JPA kullanarak erişim veya otomatik olarak bu OLANLARI varsa askere hareket. JMS ve JCA çağırmaları için aynı. Belirtin @TransactionAttribute(someTransactionMode)/nasıl olduğunu belirtmek için bir yöntem önce JTA işlem, geçersiz kılma varsayılan modda özel yöntem ilgisini çekecek: "". Gerekli

  5. Enjeksiyon yoluyla çok basit bir kaynak/bağımlılık erişim.
    Konteyner kaynakları arama ve örnek alanlar olarak kaynak başvurular koyacaktır bu YEREL: bağlantılar, JMS bağlantıları/konular/sıralar, JNDI saklı OLANLARI gibi EJBs, JTA İşlemleri, JPA varlık yöneticisi kalıcılık bağlamı, JPA varlık yöneticisi fabrika kalıcılık birimleri ve JCA adaptörü kaynakları. başvuru başka bir YEREL & JTA bir İşlem & JPA varlık Yöneticisi Kur örneğin & JMS bağlantı fabrika ve sıra:

    @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
        }
    }
    

    Bir Sunucu uygulaması bu fasulye yerel olarak, sadece bir örnek değişkeni bildirerek arayabilirsiniz:

    @EJB MyAccountsBean accountsBean;    
    

    ve sonra sadece kendi' yöntemleri olarak istenen arıyorum.

  6. JPA ile akıllı etkileşim. Varsayılan olarak, EntityManager yukarıdaki gibi kullanır işlem kapsamlı bir kalıcılık enjekte bağlam. Bu vatansız oturum fasulye için idealdir. Ne zaman bir (vatansız) yöntemi YEREL yeni bir kalıcılık bağlamı yeni bir hareket içinde oluşturulur, tüm denir varlık nesne örnekleri/alınan DB için yazılmış içinde görünür sadece yöntemi ve diğer yöntemler ile izole edilmiştir. Ama eğer diğer vatansız EJBs vardır bu yöntemle, kapsayıcı ve onlara aynı PC yayar paylaşır, aynı sözde objeleri otomatik olarak aynı PC ile tutarlı bir şekilde paylaşılır işlem.
    Eğer @Durumlu oturum fasulye bildirilirse, JPA ile akıllı yakınlık elde ederek eşit uzun bir kapsam için entityManager ilan: @PersistentContent(unitName=", type=EXTENDED) AccountsPU. Bu yaşam için var oturum fasulye, fasulye aramaları ve hareketleri, önbelleği bellek kopyalarını birden çok DB varlıkların önceden alınan/yeniden alınması gerekmez böylece yazılmış.

  7. Yaşam Döngüsü Yönetimi. EJBs ömrü konteyner yönetilmektedir. Gerekli, YEREL örneklerini oluşturur, ve durum bilgisi session bean devlet, pasifize & etkinleştirir ve aramaları temizler initialises yaşam döngüsü geri arama yöntemleri, YEREL kod yaşam döngüsü işlemleri katılabilir böylece ve kaynakları elde bırakın, ya da diğer başlatma ve kapatma davranışı gerçekleştirmek. Ayrıca tüm özel durumları yakalar, onları günlükleri, gerekli işlemleri geri alır ve yeni YEREL özel durum oluşturduğunda veya @gerektiği gibi ApplicationExceptions.

  8. Güvenlik Yönetimi. Rol tabanlı erişim kontrol EJBs için basit bir açıklama ya da XML ile yapılandırılabilir ayar. Sunucu otomatik olarak her ile birlikte authenticed kullanıcı bilgilerini geçer güvenlik bağlamı (arama anapara ve rolü). Tüm RBAC sağlar kurallar yöntemleri yasadışı çağrılamaz otomatik olarak uygulanır yanlış bir rol. EJBs kolayca kullanıcı/rol ekstra program için bilgi erişim sağlar kontrol. Bu ekstra güvenlik işleme (hatta IAM araçları) takmayı sağlar standart bir konteyner.

  9. Standardizasyon Ve Taşınabilirlik. YEREL uygulamaları enerji VERİMLİLİĞİ standartları ve kodlama kuralları, kalite teşvik Java uygun ve anlayış ve bakımı kolay. Ayrıca yeni kod taşınabilirlik teşvik satıcı uygulama sunucuları, hepsi aynı standart özellikleri desteği sağlayarak ve davranışları ve yanlışlıkla mülkiyet konusundaki geliştiriciler cesaret kırıcı
    non-taşınabilir satıcı vardır.

  10. Asıl Önemlisi: Sadelik. Yukarıdaki tüm varsayılan ayarları kullanarak ya çok akıcı kodu ile yapılabilir - Java içinde EJBs için 6 ya da birkaç ek açıklamalar ekleme EE. Kodlama kurumsal/endüstriyel gücü kendi POJOs özellikleri olurduyoldaha volumous, karmaşık ve hata eğilimli. EJBs ile kodlama başladıktan sonra, oldukça kolay geliştirmek ve vermek için büyük bir set "bedava yolculuk" çıkar.

10 yıl önceki orijinal YEREL spec, EJBs verimlilik büyük bir güçlük vardı. Şişirilmiş olduklarını, Kodu ve yapılandırma eserler çok ihtiyaç duyulan ve yukarıda Faydaları Hakkında 2/3 sağladı. Çoğu web projeleri aslında onları kullanmak vermedi. Ama bu önemli ölçüde verdiği, elden, fonksiyonel iyileştirme ve geliştirme stream-astar 10 yıl ile değişti. Java EE 6 maksimum düzeyde endüstriyel güç ve kullanım kolaylığı sağlar.

Gibi değil?? :-) :-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • George McCarron

    George McCar

    29 Mayıs 2013
  • TROPFEST

    TROPFEST

    27 Mart 2007