Herkese merhaba, bir web uygulaması yazmayı düşünüyorum ve ilk aşamada orta büyüklükte ve sonrasında daha da büyüyebilecek bir sistem olmasını tahmin ediyorum. Sonrasında ise her platform için mobil uygulama ve mobil versiyon hazırlanacaktır.

Teknik konulara gelecek olursak seçeceğim platform Java olacaktır. Açıkcası Java EE standartlarına bağlı kalmayı düşünüyorum ama eklemek istediklerinizi söylebilirsiniz.

Önyüzde daha hızlı hareket edebilmek için JSF ve Primefaces kullanmayı düşünüyorum.

Orta katmanda EJB modüllerinden faydalanmak istiyorum ve bu konuda sıkıntılarım var, projenin asıl amaçlarında biri de bu API'ye hakimiyetimi artırmam. Bu API'den nasıl daha iyi faydalanabilirim, performans nasıl olur, proje ilerlediğinde sıkıntıya sokabilir mi? Örnek senaryolar üzerinde anlatabilir misiniz? "Tam da burada EJB'den oldukça faydalanabilirsin." diyebileceğiniz, tavsiyeleriniz dinlemek isterim.(Daha önce JMS'de kullanmadım.)

ORM olarak JPA ve hibernate implementasyonu kullanmak istiyorum.

Veritabanı olarak MySQL ve mongoDB kullanmak istiyorum. MySQL oldukça kullandım ama mongoDB'de çok deneyimim olmadı. Buna da değinebilirsiniz.

Güvenlik çok önemli, spring security kullanmıştım ve yerine kullanabileceğim teknolojileri de değinebilirsiniz.

App Server olarak JBoss kullanacağım.

Domain'e göre farklı kaynaklar kullanacağım(img,css). Bunun için çözüm veya link paylaşabilir misiniz?

Yorumlarınız benim için çok değerli. Teşekkür Ederim. İyi çalışmalar.

Güncelleme

Performans tabiki de çok önemli, bu konuda vereceğiniz tavsiyeleriniz nelerdir? Sistemi nasıl daha fazla hızlandırabilirim?

soruldu: 13 Eki '12, 08:24

Tunahan%20Pehlivan's gravatar image

Tunahan Pehlivan
2.5k61740
cevap kabul oranı: 15%

değiştirildi: 13 Eki '12, 16:45

orta ölçekliderken kaç kullanıcı gelcek, ne kadarı aynı anda gelcek ve web projesinin işi ne bunlarıda soruya eklemek daha güzel olabilir.

(21 Eki '12, 17:01) serdarb serdarb's gravatar image

Aslinda projeye bakip ona gore teknolojilere karar vermek daha mantiklidir fakat genel olarak JSF 2 + EJB 3.1 + RESTful Web Services + JPA/EclipseLink + Apache Shiro bu tur projeler icin cozum olabilir. Eger cok fazla request alacak proje ise, view katmaninda JSF yerine alternatif view'ler dusunulebilir.

Projeyi MVC olarak yazip Business Logic katmanlarini ayri ayri implement edip, bu Business Logic EJB'leri hem Controller hem de Web Service katmanlari icine inject ederek kullanabilirsiniz. Boylece web servisler icin ayri kodlar yazmak zorunda kalmassiniz. Apache Shiro ile security islemlerini kodlayip, RESTFul Web Service'lerle(XML veya JSON ile) mobil uygulamalar yazabilirsniz. Mobil uygulamalar Apache Shiro guvenliginden gectikten sonra yine ayni Business Logic katmanlari ile haberlesip istenilen verileri mobil clint'lara gonderebilir. PhoneGap veya diger mobil frameworklerle cok basit kullanilabilir.

JPA icin EclipseLink implementasyonunu eklememin sebebi MongoDB gibi noSQL db'lere JPA Annotations ile islem yapabiliyor olmasi. EclipseLink noSQL ornek tutorial. Hibernate ile kullanmak isterseniz Hibernate OGM (Hibernate Object/Grid Mapper) var. Ayrica bazi JPA eklentileri de noSQL support sagliyor.(Henuz test etmedim!)

Kundera

Morphia

permanent link

cevaplandı: 14 Eki '12, 09:45

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

Hocam öncelikle teşekkürler. Bu projeyi facebook dinamiklerine sahip bir sistem gibi de düşünebilirsiniz. JSF ile ilgili ajax istekleri oldukça yoğun olacak. Sizce bu konuda ne yapmalıyım, JSF ile önyüzde performans düşük kalabilir mi?

(14 Eki '12, 10:30) Tunahan Pehlivan Tunahan%20Pehlivan's gravatar image

Binlerce kullanicinin ayni anda calisacagi sistemlerde JSF View'ler yavas kalabilir, bu gibi durumlarda JSP, FreeMarker, Dust.js, Google Closure Templates gibi alternatif View template sistemleri daha performansli calisabilir. LinkedIn 160 milyondan fazla kayitli profilleri artik Dust.js templating ile yapacagini bildirdi. Makale belki degisik fikirler verebilir. http://engineering.linkedin.com/frontend/leaving-jsps-dust-moving-linkedin-dustjs-client-side-templates

(15 Eki '12, 04:21) CemIkta ♦ CemIkta's gravatar image

Teşekkürler hocam, buna bir bakmalıyım.

(15 Eki '12, 08:16) Tunahan Pehlivan Tunahan%20Pehlivan's gravatar image

Merhaba, Veritabanı olarak Mongo tercih ederseniz eğer ORM implementasyonlarına büyük ihtimalle ihtiyacınız olmayacak. MongoDB'nin repository katmanı için spring-data-mongo kullandım ve oldukça memnunum. Generic CRUD repository leri otomatik yaratırken interface üzerinden DSL ile metodu tanımlamak yeterli olabiliyor çoğu durumda. DSL'e göre implementasyon sınıflarını yaratabiliyor. Entity-DB mapping işi de kolayca annotation ile halledilebiliyor, repository katmanınız çok karışık değilse kolay ve hızlı şekilde bununla çözümleyebilirsiniz.

permanent link

cevaplandı: 14 Eki '12, 06:55

_____'s gravatar image

_____
146117
cevap kabul oranı: 0%

Evet kesinlikle haklısınız, yorumunuz için teşekkürler. Spring, mongoDB ile ilgili çözümünü daha önce örnekler de incelemiştim. Açıkcası karmaşık sorgular olacaktır. "noSQL ile çok fazla önem arzetmeyen veriler tutulmalıdır" gibi bir yazı okumuştum. Bunun doğruluk payı nedir, ne tür veriler tutulmalıdır?

(14 Eki '12, 07:30) Tunahan Pehlivan Tunahan%20Pehlivan's gravatar image
2

Karmaşık sorgular için map/reduce ile işin içinden çıkabilirsiniz. Mongo 2.2 ile beraber aggregation framework de geldi, henüz deneme fırsatım olmadı ama map/reduce ile uğraşmayı da azaltabileceğini tahmin ediyorum. "Çok fazla önem arzetmeyen" veri çok göreceli ve ucu açık bir kavram, insan doğal olarak "kime göre neye göre önemli" diye soruyor. Esas göz önüne alınması gereken kısım Mongo üzerinde transaction olmaması. Zaten mesele de burada, eğer transaction'a ihtiyacınız varsa mongo sizin için uygun değildir. Onun dışında şimdiye kadar mongo üzerinde herhangi bir veri kaybına rastlamadım.

(14 Eki '12, 07:38) _____ _____'s gravatar image

Evet, bunu öğrendiğim iyi oldu. Teşekkürler.

(14 Eki '12, 07:46) Tunahan Pehlivan Tunahan%20Pehlivan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×90

Soruldu: 13 Eki '12, 08:24

Görüntüleme: 1,523 kez

Son güncelleme: 21 Eki '12, 17:01

powered by BitNami OSQA