Farklı boyut, kapsam ve yaşam boyu için birçok Java web tabanlı uygulama (aynı şirket için) geliştirmeli ve sürdürmeliyiz. Bazıları devasa ve diğerleri sadece birkaç ay (veya gün) yaşayabilen basit sayfalar, bazıları zaten uygulanmış ve yeniden düzenleme gerektiriyor. Yine de ortak olan bir şey var, aynı bilgiye (neredeyse) erişebilmeleri gerekiyor. Nedeniyle şirket kolları verilerin karmaşıklığınaBirden çok uygulama arasında iş mantığı nasıl paylaşılır
Sorun
, biz bunların bazıları eski çağlardan kalma pek çok farklı kaynaklardan uğraşmak zorunda. Alan kaynaklarımız bu kaynakların çoğunda haritalanabilir. Örnek olarak, bir Sözleşme alanı nesnesi ana veritabanımızla eşleştirilir, ancak ilgili (fiziksel) dosyalar bir belge sunucusunda saklanır ve bununla ilgili etkinlik bir NoSQL veritabanında depolanır. Bu nedenle, bu nesnelerin eklenmesi, çıkarılması, aranması birçok iç harekatı içerir.
Bizim veri kaynakları (Bu herhangi biri olabilir rağmen) şunlardır:
- AS400 (a veritabanı olarak kullanarak DB2)
- Documentum belge yöneticisi
- Mongo DB
- Dış web hizmetleri
- Diğer Eski Kaynaklar
Normalde Glas kullanıyoruz Uygulama sunucusu olarak mızrak ve bizim inşa aracı olarak maven.
Hedef
Amacımız tüm uygulamaları erişebileceği bir iş katmanı veya kütüphane oluşturmaktır ve öyle: kullanmak
- Kompakt
- Tutarlı
- Kolay
- Bakımı kolaydır
- İnsandan erişilebilir Şimdiye kadar
bulduk Ne y farklı istemciler
Haftalardır mücadele edilmiş ve hala tam olarak tatmin edici bir şey bulamıyorum. Bazı çözümler:
bir veya birden fazla kavanozlarda tüm iş mantığı Paketi: paylaşmak çok kolay, ancak tüm uygulamalar tüm kavanoz bağımlılıkları ve yapılandırma dosyalarını içeren ve güvenlik, önbelleğe alma ve diğer bakmak zorunda kalacak şey. Kalması zor (değişiklik olduğunda her proje için kavanozları güncellemeliyiz).
Tüm mantığı içeren ve uzaktan erişen bir Ejb projesi oluşturun: Bakımı, güvenliği, önbelleğe almayı ve yapılandırmayı yalnızca bir kez uygulandı. Uzaktan aramaların cezasından korkuyoruz. Araştırmamızda fark ettiğimiz gibi, kötü bir uygulama gibi görünüyor (ejbs ile çok fazla tecrübemiz yok).
- içindeki her şey ile bir Kulak projesi oluşturma ve kullanma yerel erişim: Evet, bu uzak sürümden daha hızlıdır ancak korumak bir cehennem.
OSGI için Git: bu EJB kadar popüler olmadığından Bu araçtan biraz korkuyorlar ve biz ciddiye kullanılmış hiç.
Bu tür bir sorun için ortak bir uygulama var mı?
Çok teşekkürler!
gibi araçları kullanabilirsiniz. Neden ayrı BL'ye ihtiyacınız olduğunu açıklar mısınız? Veri tarafı için DAO kalıplarını kullanıyor musunuz? Bunlar aracılığıyla birden fazla kaynağa eşlemek mümkün mü? Birden fazla veri kaynağını yönetmek mümkün olmalıdır. –
Hiper hızlı cevap için teşekkürler! Aslında asıl fikir budur. Tüm kirli şeyleri kapsüllemek için DAO'ları kullanmak istiyoruz. Sorun, bu DAO'lara 'istemci' uygulamalarından nasıl erişileceğidir. – danielsan
Tamamen yeni bir uygulama oluşturuyorsanız osgi yaklaşımını tavsiye ederim. Ama eğer bir çok şeyi limana getirmeyi planlıyorsanız ve ekip osgi için yeniyse tavsiye etmem. – techuser