Yazılım Altyapısı değiştirme kararı almak...

254 views
Skip to first unread message

Baris Sarikaya

unread,
Dec 12, 2014, 6:47:03 AM12/12/14
to istanbu...@googlegroups.com
Merhaba Arkadaşlar,

Şirketimizde var olan yazılım altyapımızı daha rahat, hızlı, kolay geliştirilebilir ve adapte edilebilir bir yapıya taşımak istiyoruz. Burada birçok konuda bilgili ve tecrübeli arkadaşlar bulunuyor. Sizlerden de bu aşamada fikir almak istedim.

Var olan yapı:
App Server : Weblogic
Database : Oracle
Yazılım: Java, hibernate, spring, spring security, jsp, jstl, jquery, css, Jaxws(for ws), Json, Rest ws.

Yeni düşünülen yapı:

Veritabanı ve uygulama sunucularında bir değişiklik olmadan yazılım tarafında hem web servisler, hem web uygulamaları, mobil uygulamalar için servisler hepsini tek yerden yazıp her tarafta kullanabileceğimiz bir yapı olsun istiyoruz. Bu anlamda SOA yapısını değerlendiriyoruz. Ilk başta bir framework (JSF+Primefase vb.) ile gitmeyi düşünmüştük. Ancak SOA olursa her yere tek noktadan servis vermeyi bir framework bağımlılığı ile sürdürebilir miyiz?

Ön yüzü şuan jsp olan web ekranlarının tamamen arka tarafta servisten çağıracak hale getirmek iyi bir çözüm mü_?

Bu tarz sorulara çözümler aramaktayız. Sizinde fikirlerinizi değerlendirmek isterim.

Teşekkürler...

Baris
Message has been deleted

Hüseyin BABAL

unread,
Dec 12, 2014, 6:55:28 AM12/12/14
to istanbu...@googlegroups.com
Selam Barış,

Eğer birden fazla client(web app, mobil, etc) tarafından kullanılacak bir backend yazmka istiyorsan, Frontend-Backend izolasyonu olan bir sistem yazmayı tavsiye ederim. Bu konuda tavsiyem backendin tamamen REST olması ve clientlar rest ile token vasıtasıyla haberleşmesi yönünde olacaktır. REST olursa ileride mobil client geldiğinde servislere mobil tarafından sorgu gönderirken http header a token gönderip gönderirsen, authorization olayını da halletmiş olursun. JSP render olmuş halde sunucudan döndürme olayını tavsiye etmem çünkü, mobil client için ayrı bir servis yazman gerekecek. Bu konuda şuradaki makalemi sana öneriyorum: http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543. Makaledeki uygulama java değil ama konsepti anlarsan sana fikir verecektir. Bu yaklaşımı da isteyen arkadaşlarla tartışmayı çok isterim.

İyi çalışmalar.

--
You received this message because you are subscribed to the Google Groups "istanbul-coders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to istanbul-code...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

Hüseyin BABAL

Full Stack Software Engineer, CSM

Email : huseyin...@gmail.com

Mobile: +90 (554) 781 16 64


Baris Sarikaya

unread,
Dec 13, 2014, 11:08:26 AM12/13/14
to istanbu...@googlegroups.com
Merhabalar,

Hüseyin hocam çok teşekkür ederim verdiğiniz bilgiler için. Makelinizide okudum değerlendireceğim. 

Bunun dışında aslında frontend-backend ayrımı yaparak aynı işi yapan web, web servis ve mobil e hizmet veren mothodları tek yerden yazmak ve kullanmak amacımız. Mobil ve webservis için sorun yok gibi ancak java web uygulamasında bir framework (jsf gibi) dependend gitmek mi yoksa tamamen ön yüzü jsp ve bir js kütüphanesi ile yürütmek tamamen servis çağırarark yapmak mı? Tamamen servis based gidilebilir mi? Preformans kullanılabilirlik açısından uygulanabilir mi acaba? Bu şekilde olursa ön yüz ister php, ister .net, ister java olsun backend etkilenmemiş olur diye düşünmüştüm.

Bu tarz etkin işleyen ve memnun oldukları sistemi olanlar var ise konfigurasyonda kullanılan yapıdan kısaca bahsedebilirler mi acaba?

Teşekkürler...

Barış

2014-12-12 13:53 GMT+02:00 Hüseyin BABAL <huseyin...@gmail.com>:
Selam Barış,

Eğer birden fazla client(web app, mobil, etc) tarafından kullanılacak bir backend yazmka istiyorsan, Frontend-Backend izolasyonu olan bir sistem yazmayı tavsiye ederim. Bu konuda tavsiyem backendin tamamen REST olması ve clientlar rest ile token vasıtasıyla haberleşmesi yönünde olacaktır. REST olursa ileride mobil client geldiğinde servislere mobil tarafından sorgu gönderirken http header a token gönderip gönderirsen, authorization olayını da halletmiş olursun. JSP render olmuş halde sunucudan döndürme olayını tavsiye etmem çünkü, mobil client için ayrı bir servis yazman gerekecek. Bu konuda şuradaki makalemi sana öneriyorum: http://code.tutsplus.com/tutorials/token-based-authentication-with-angularjs-nodejs--cms-22543#disqus_thread. Makaledeki uygulama java değil ama konsepti anlarsan sana fikir verecektir. Bu yaklaşımı da isteyen arkadaşlarla tartışmayı çok isterim.

İyi çalışmalar.

2014-12-12 13:47 GMT+02:00 Baris Sarikaya <sarika...@gmail.com>:

--
You received this message because you are subscribed to the Google Groups "istanbul-coders" group.
To unsubscribe from this group and stop receiving emails from it, send an email to istanbul-code...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--

Hüseyin BABAL

Full Stack Software Engineer, CSM

Email : huseyin...@gmail.com

Mobile: +90 (554) 781 16 64


Hüseyin BABAL

unread,
Dec 13, 2014, 11:14:15 AM12/13/14
to istanbu...@googlegroups.com
Backend için microservice kulladnığın sürece, ön yüzde jsp gibi template engine kullanma derim bence. Önyüzü için tamamen AngularJS gibi bağımsız çalışabilecek bir framework kullan. Diyelim ki önyüz tasarım için ajans ile birlikte çalışıyorsun. Sen ön yüz için jsf tarzı birşey kullanıyorsan ajans ne yapacak? Adamlar html js kullanarak yapmış projeyi. Sonra sen gidip html dosyalarını alıp kendi jsp sayfaların içine koyacaksın. Bu arada bazı kodlar eksik kalır, ya da servisler etkilenmeden release yapamazsın. Ben ön yüz projesini cdn e koyuyorum Requestler cdn e gidiyor. Sonra cdn den render olan angularjs teki sayfalarımdan servislere istek gidip sayfalar populate oluyor. Ajans AngularJS uyumlu kod yazmayı kabul eder, ama jsp de yazmayı kabul edeceğini sanmıyorum

roy simkes

unread,
Dec 18, 2014, 4:14:29 AM12/18/14
to istanbu...@googlegroups.com
Merhaba,

Angular ya da Backbone gibi JS tabanli onyuz teknolojilerini kullanirken, SEO kismini atlamamak lazim. Projeniz icin ne kadar onemli bilmiyorum lakin bu madde genellikle atlaniyor. Keza Google bile henuz JS trafinda yaratilan icerikleri duzgun bir sekidle parse edemiyor, dolayisiyla ya baska kutuphaneler ile JS yi calistirip render edip, onu bir HTML dosyasina yaziyorsun ve Google geldigince onu sunuyorsun ya da boyle durumlar icin bir de htmli uretecek baska bir uygulaman oluyor. Google'a sundugun icerik ile sitendeki icerigin de surekli guncel olmasi gerekli. Guncel tutulmadigi durumlarda, Google sizi arama sonuclarindan banlayabiliyor bile. Dolayisiyla AngularJS yapalim kararini verirken artilari ve eksilerini goz onunde bulundurmak gerekli.

roy

Baris Sarikaya

unread,
Dec 19, 2014, 4:19:50 AM12/19/14
to istanbu...@googlegroups.com
Merhabalar,

Verdiğiniz cevaplar için çok teşekkürler. Backend i Java ile yazılmıs REST servisler ön yüzde ise bir Frontend framework ü (nodejs, angularjs gibi) tercih etmeyi düşünüyoruz.

Bu tarz bir yapıda performans sıkıntıları olabilir mi? Kullanan yada tecrübe etmiş arkadaşlar bu tarz yapılarda nasıl sonuçlar alıyorlar requestlerinde.
,
Bir diğer konu ise şu şekilde; biz şuan web applicationlarımızın yanında webservislerde yazmaktayız. şuan SOAP xml dönen (Jax-ws) webservislerimiz bulunuyor. Biz web applicationlar için yazacağımız REST servisleri bu yapı içinde kullanabilir miyiz acaba? Aynı işi (araçları listeleme, ekleme gibi) hem web arayüzünden hemde web servisten yaptığımız işler çoğunlukta onları tek yerden yazmak istesek nasıl yapabiiriz diye düşünmekteyiz. Hem REST (json) hem xml(SOAP) dönen yapılar var mıdır? Eğer respose larımızı değiştirirsek client larımızı yazanların çok (neredeyse az) etkilenmesini istiyoruz.

Yine biraz karmaşık anlattım sanırım. Fikirleriniz varsa belirtebilirseniz çok sevirinirim. Eğer bir yapı oturtabilir tecrübe edersem buradaki arkadaşlarla tecrübelerimiz paylaşıyor olacağım.

İyi çalışmalar...

Baris.


Burak Arslan

unread,
Dec 19, 2014, 4:24:01 AM12/19/14
to istanbu...@googlegroups.com
selam,

java'yi komple cope atarsaniz Spyne kullanabilirsiniz. tam da bu amacla yapmaktayim kendisini.

http://spyne.io

kolay gelsin
burak

Serkan Serttop

unread,
Dec 19, 2014, 7:51:52 AM12/19/14
to istanbu...@googlegroups.com
Ufak bir düzeltme, yanlışlıkla yazılmış da olabilir, ama node.js frontend framework değil.
Ya da proxy olarak Java'yı front etmek anlamında mı kullandınız bilemedim.

Sorular hakkında kısmen yanlış anlamış olabilirim, 2 ayrı konu da olabilir.
Eğer konu AngularJS ile SOAP kullanımı ise
http://stackoverflow.com/questions/17490483/angularjs-soap-service-integration-with-angularjs-model
Ama bence aşağıda bahsettiğim şekilde JSON Rest API ile sunucunuz konuşsun, AngularJS $resource kullanırsınız.
SOAP legacy support olarak kalır.
AngularJS + Soap biraz YOYO olarak gözüküyor, çok fazla döküman görmedim bu konuda.

Diğer konu ile ilgili, var olan servisinizi yeniden yazmadan kullanmayı sağlayacak bir tavsiyem var.
Node.js'te Express diye bir REST framework var, onu Strongloop devraldı.
Bu firmanın Loopback diye bir framework'ü var, Express üstüne kurulu, enterprise kullanıcılara yönelik.
Learning curve oldukça steep, bunu belirtmekte fayda var.
Ama sizin bahsettiğiniz gibi çok belirli bir kısıtlı kullanım için bütün framework'ü öğrenmenize gerek yok.
Varolan data source'lardan discovery yapmayı sağlayan connector kütüphaneleri var, buna non-database connector'lar da dahil.
Java'dan proxy edip (ya da tersi) beraber kullanabilirsiniz. En başta Java'yı front etmekten kastettiğim buydu.

İlk linkten diğer sayfalara da ulaşırsınız ama kolaylık olsun diye en öncelikli bakmanı tavsiye edeceklerimi ekledim.
http://docs.strongloop.com/display/LB/SOAP+connector
https://github.com/strongloop/loopback-connector-soap/
https://github.com/strongloop/loopback-connector-soap/blob/master/example/weather-rest.js

deniz silahcılar

unread,
Dec 19, 2014, 7:56:11 AM12/19/14
to istanbu...@googlegroups.com

Baris Sarikaya

unread,
Dec 19, 2014, 12:07:52 PM12/19/14
to istanbu...@googlegroups.com
Yanlış anlaşılmalar olmuş olabilir. Kafalarda karışılık oluşmuş olmasın.

Aslında var olan  Web uygulamaları ve Web servisler içeren bir sistemimiz var. Bu sistemde mobilde gelince aynı işi yapan methodları bir çok kez farklı şekilde yazmış oluyoruz bu işi tek yerden yönetebilir miyiz? İç içe girmiş frontend ve backend ayırabilirmiyiz gibi düşüncelerle yola çıktık.

Varolan sistemde Arkada ortak olarak Java+Spring+Spring Security+Hibernate+Weblogic+Oracle kullanıyoruz. Web uygulamaları için Spring MVC+JSP+Jquery kullanmaktayız. Web servisler içinde JaxWS (SOAP xml şeklinde) kullanıyoruz. Mobil içinde Spring controller da Json dönen yapılar var.

Geçiş planında web uygulamaları ve mobil için Java+Spring (Spring Data, Spring REST, Jersey olabilir)+Hibernate ön yüzde Html5+Css+AngularJS kullanma düşüncemiz var. Angular ile REST kullanmayı düşünüyoruz. Aynı Rest servisler hem mobile hemde web uygulamasına hizmet edecek. Tabi bu konuda da çekincelerimiz var, sizlerinde fikirlerini almak isterim.

Diğer taraftan SOAP olan web servislerimiz var demiştim. Bunları da bu yeni yapı kapsamında nasıl değerlendirebiliriz diye düşünmekteyiz. Çünkü tek bir özellik (mesela plaka ile araba listeleme) hem web arayüzünden, hem web servisten (SOAP) hemde mobile den kullanılıyor.

SOAP dönen servislerin client yazanları çok etkilemeden arkada tek yapıya geçebilir miyiz, böyle birşey mümkün mü sorusuda en çok düşündüren soru aslında bizi. Bu konuda gerçekten tecrübe edenlerin fikirlerini almak isterim.

Umarım daha açıklayıcı olmuştur. Çok teşekkürler.

Baris.
Reply all
Reply to author
Forward
0 new messages