Geliştirmek istediğim bir proje için Nodejs ile yazılmış open-source bir servis var. Ancak projemi Java ile geliştireceğim. İki projede aynı serverda olacağı için aralarında haberleşme kurmam gerekiyor. Bu sorunu Nodejs servisini farklı bir portta çalıştırıp Java'dan Http client oluşturup bağlantı kurarak çözmeyi düşündüm.

Yani Nodejs ile yazılmış servis 8001 portunu kullanacak ve sadece 127.0.0.1 ip adresinden gelen isteğe yanıt verecek. Java projem ise default 80 portundan hizmet vericek ve gerektiğinde bu 8001 portundaki servisle konuşacak.

Şimdi bu çözüm kulağı tersten tutmak mı oluyor yoksa iyi bir çözüm mü? Sizce gerekli servisi Java'da sıfırdan yazmalımıyım? Yoksa varolanı kullanıp bu şekilde bir yol mu izlemeliyim?

Not: Nodejs projesi çok büyük çaplı değil. Java'da yazabilirim.Ancak vakit alacak diye bu yolu sormak istedim.

soruldu: 03 Kas '15, 08:57

ugurcanlacin's gravatar image

ugurcanlacin
816101625
cevap kabul oranı: 11%


@molgun: Interface siniflar araciligi ile o bahsettiginiz bagimlilik yok edilebilir, burada DIP (Dependency Inversion Principle) ya da Facade tasarim sablonunu kullanmak yeterli.

Ben daha baska bir sorun görüyorum bu cözümde. Ayni sunucu da calisan iki servisin TCP/IP üzerinden iletisim kurmalari zaman kaybina neden olacaktir, cünkü verinin transfer edilirken TCP/IP protokolünün tüm katmanlarini dolasmasi gerekecek. Yük altindaki bir uygulamada ayni sunucu yetersiz kalabilir.

Node.js kullandiginiza göre, oradaki Javascript servisinizi Java 7/8 bünyesindeki Nashorn Javascript implementasyonu ile calistirabilirsiniz, böylece tüm uygulama Java catisinda barindirilmis olur.

permanent link

cevaplandı: 04 Kas '15, 02:38

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

1

Özcan hocam doğru söylüyorsunuz ben kendimi yanlış ifade etmişim. Tabi söylediğiniz öneri ileride bu servisi kullanmayı bıraktığımız zaman bize kendi implementasyonumuzu yazarak kolay bir şekide bu bağımlılıktan kurtulmamızı sağlıyor. Sonuçta biz bu implementasyonu web servis aracılığıyla kullanıyorsak buna bağımlıyız demektir :) ben bunu kastetmiştim.

(04 Kas '15, 02:57) molgun molgun's gravatar image

Kısa cevap: Mantıklı.

Uzun Cevap: Kulağı tersten tutmak değil kullanılabilir bir çözüm. Ancak dezavantajları da var.

  1. Projeni 3. parti bir yazılıma bağımlı hale getiriyorsun. Sorun çıktığında ya kendin çözmelisin yada çözülmesini beklemek zorunda kalacaksın.
  2. Engtegrasyon testleri yazarken kullanacağın web servisin kurulu olma zorunluluğu var.

Benim önerim uzun vadede zaman kaybına neden olabilirse (ki proje karmaşık hale geldiğinde her defasında daha fazla esneklik gerektireceltir) kendiniz yazmanız. Yoksa söylediğiniz çözüm kullanılabilir.

permanent link

cevaplandı: 04 Kas '15, 01:21

molgun's gravatar image

molgun
1.3k1921
cevap kabul oranı: 23%

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:

×1,077
×71
×8
×8

Soruldu: 03 Kas '15, 08:57

Görüntüleme: 429 kez

Son güncelleme: 04 Kas '15, 02:57

powered by BitNami OSQA