와스는 WebLogic이구요. WAS 앞 단은 웹서버가 아닌 TCP소켓서버(java)입니다. 물론 클라이언트도 TCP소켓클라이언
트이구요.
이경우 TCP소켓서버가 WAS에 있는 비지니스로직을 호출하기 위해 원격호출을 해야하는데 이부분에서 의견이 분분합니다.
EJB3.0, SpringMVC, 순수Servlet, SOAP...
가장중요한건 쓰루풋 그리고 그 다음이 확장성
제가 생각하는 성능상의 팩터는 다음과 같은것들이 있습니다.
1.위 각 방식의 통신프로토콜은 : rmi, http, soap 으로 구별할수 있을것 같은데요... 이들의 차이가 한 팩터가 될
듯하구요.
2.EJB의 대량동시접속자의 처리가 좋다고 알고 있는데 스프링이 그러한 특성을 다 구현하고 있는지 예를 들면 인스턴스 풀링과 같
은... 하여간 이런게 또하나의 팩터가 될듯하구요.
3.EJB는 마샬링을 하기때문에 부가적인 로드가 들어갈것같구요.
4.SOAP은 역시 XML파싱 등의 작업에 로드가 들어갈것 같구요.
참고로 해당서비스는 세션을 유지할필요없으므로 EJB로 한다면 당연히 SLSB을 쓸거구요. 스프링이라면 싱글턴으로 갈예정입니다.
퍼시스턴스쪽은 iBatis등을 고려하고 있습니다.(사실 이쪽도 고민입니다)
해당 서비스는 별도의 특이한 로직은 없고 대부분 DB조회나 DB트랜잭션이 주요 역할인 서비스입니다.
고수님들의 좋은 의견 많이 부탁드립니다.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
정정해야 할 부분이 있습니다.EJB 3.0과 Servlet의 차이중에 한가지 좀 언급해야할 부분이 있네요.클라이언트의 측면에서 EJB와 Servlet의 성능은 거의 비슷할 것으로 보입니다. 다만 제가 말씀드린 것처럼 Remote를 호출 할때의 API구조가 좀더 EJB가 OOP적이라고 말씀드릴 수 있을 것 같습니다.다만 Container의 처리적인 측면에서 보면 EJB보다는 Servlet Container가 가볍습니다.또한 EJB종속적인 구조가 되기 때문에 그런 부분도 확장성 면에서는 떨어진다고 할 수 있죠.2PC요건이 아니라면 Servlet베이스로 SpringTransactionManager를 통해 트렌젝션 관리를 하는 방법을 사용하면 되구요.따라서 Container자체는 Servlet베이스로 가고 프로토컬도 스트림 베이스로 Http방식하에서 받아서 VO로 Receiver에서 매핑하는 방식이 좋아 보입니다.
결국 메세지 큐와 비동기 처리에 관심이 가는데요. 클라이언트가 서버에 직접
접속해서 동기화된(네트워크 커넥션과 Thread를 계속 물고 있는) 처리를 하게
하지 말고 중간에 메세지 큐(ActiveMQ, JbossMQ, RabbitMQ 같은)를 두어서 버
퍼와 부하 분산 역할을 하게하면 좋겠습니다. 그리고 서버쪽에서도 자원을 효
율적으로 사용할 수 있게 되죠. 결과적으로 쓰루풋과 확장성이 모두 개선되리
라 봅니다.
아니면 Netty 같은 비동기 네트워크 프레임워크를 사용해보셔도...
> Hessian정도면 가볍지 않을까 생각했는데 아래 벤치마크 자료를 보니 더 빨
> 라보이는 것이 많네요
> http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking
Hessian이 의외로 느리다고 나오네요. 그리고, scala가 참 안습... 이런;;;
TCP서버가 http로 WAS의 서블릿을 호출하고 그 서블릿이 다시 같은 WAS내의 EJB를 호출했다는 말씀이죠? 이 경우
EJB는 원격호출이 아닌 로컬인터페이스(맞나?) 방식으로 호출된거겠구요...
즉 통신 프로토콜은 http GET이나 POST로 그리고 WAS측에서 요청처리는 서블릿이 담당하며 비지니스로직은 EJB가 처리하
게 했다는 말로 정리할수 있는걸까요?
On 8월19일, 오전9시27분, HONG SUNG DONG <sdm...@gmail.com> wrote:
> 비슷한 경우로 모 증권사가 구현한 적이 있는데..
>
> TCP 서버 + WAS
>
> tcp 서버와 WAS는 http로 servlet으로 통신하구요
> WAS Core는 EJB 기반으로 처리됩니다.
>
> 초기 http 프로토콜에 대한 성능 이슈가 많았는데 실제로 해보니 예상보단 빠른 응답 구현했습니다.
>
> http connection은 pooling으로 서버당 2000개 정도 유지 한걸로 알고 있습니다.
>
> rmi는 속도 저하문제로 포기...
>
> 참고가 되시면 좋겠군요...
>
> EJB,Spring에 대한 자세한건 저도 잘 몰라서...
>
> 2010년 8월 19일 오전 9:08, 자유 <kikist...@gmail.com>님의 말:
>
>
>
> > 예를 들면 현금인출기와 같을 정도의 많은 동시접속자를 처리해야하는 WAS에 아키텍쳐를 설계하고 있습니다.
>
> > 와스는 WebLogic이구요. WAS 앞 단은 웹서버가 아닌 TCP소켓서버(java)입니다. 물론 클라이언트도 TCP소켓클라이언
> > 트이구요.
>
> > 이경우 TCP소켓서버가 WAS에 있는 비지니스로직을 호출하기 위해 원격호출을 해야하는데 이부분에서 의견이 분분합니다.
> > EJB3.0, SpringMVC, 순수Servlet, SOAP...
>
> > 가장중요한건 쓰루풋 그리고 그 다음이 확장성
>
> > 제가 생각하는 성능상의 팩터는 다음과 같은것들이 있습니다.
>
> > 1.위 각 방식의 통신프로토콜은 : rmi, http, soap 으로 구별할수 있을것 같은데요... 이들의 차이가 한 팩터가 될
> > 듯하구요.
>
> > 2.EJB의 대량동시접속자의 처리가 좋다고 알고 있는데 스프링이 그러한 특성을 다 구현하고 있는지 예를 들면 인스턴스 풀링과 같
> > 은... 하여간 이런게 또하나의 팩터가 될듯하구요.
>
> > 3.EJB는 마샬링을 하기때문에 부가적인 로드가 들어갈것같구요.
>
> > 4.SOAP은 역시 XML파싱 등의 작업에 로드가 들어갈것 같구요.
>
> > 참고로 해당서비스는 세션을 유지할필요없으므로 EJB로 한다면 당연히 SLSB을 쓸거구요. 스프링이라면 싱글턴으로 갈예정입니다.
> > 퍼시스턴스쪽은 iBatis등을 고려하고 있습니다.(사실 이쪽도 고민입니다)
>
> > 해당 서비스는 별도의 특이한 로직은 없고 대부분 DB조회나 DB트랜잭션이 주요 역할인 서비스입니다.
>
> > 고수님들의 좋은 의견 많이 부탁드립니다.
>
> > --
> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com<ksug%2Bunsu...@googlegroups.com>로
> > 이메일을 보내주세요.
> > 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
>
> --
> 눈에 보이는게 전부는 아니며 눈에 안보인다고 없는게 아니다.by <http://xn--9i1b3b869e.by> 洪
> HP:010-4717-6896
그 말은 spring mvc 를 사용하여 구현하는 방식도 해당되는거지요? 순수 서블릿과 스프링에서의 디스패쳐(맞는지 모르겠네
요. 스트러츠만써봐서...)간에 성능차이가 있을까요?
On 8월19일, 오전9시54분, Sewon Ann <king...@gmail.com> wrote:
> 저도 통신 프로토콜은 http가 되어야지 않나 생각합니다. rmi는 홍성동님 말씀대로 부하가 너무 걸리고, soap는 자유님이 직접
> 말씀하신 것 처럼 xml 파싱하고 생성하는데 힘이 많이 들고, 또 빈번하게 통신이 일어날 경우 traffic만 늘어나지 않나 생각합니다.
>
> 2010/8/19 HONG SUNG DONG <sdm...@gmail.com>
>
> > 비슷한 경우로 모 증권사가 구현한 적이 있는데..
>
> > TCP 서버 + WAS
>
> > tcp 서버와 WAS는 http로 servlet으로 통신하구요
> > WAS Core는 EJB 기반으로 처리됩니다.
>
> > 초기 http 프로토콜에 대한 성능 이슈가 많았는데 실제로 해보니 예상보단 빠른 응답 구현했습니다.
>
> > http connection은 pooling으로 서버당 2000개 정도 유지 한걸로 알고 있습니다.
>
> > rmi는 속도 저하문제로 포기...
>
> > 참고가 되시면 좋겠군요...
>
> > EJB,Spring에 대한 자세한건 저도 잘 몰라서...
>
> > 2010년 8월 19일 오전 9:08, 자유 <kikist...@gmail.com>님의 말:
>
> > 예를 들면 현금인출기와 같을 정도의 많은 동시접속자를 처리해야하는 WAS에 아키텍쳐를 설계하고 있습니다.
>
> >> 와스는 WebLogic이구요. WAS 앞 단은 웹서버가 아닌 TCP소켓서버(java)입니다. 물론 클라이언트도 TCP소켓클라이언
> >> 트이구요.
>
> >> 이경우 TCP소켓서버가 WAS에 있는 비지니스로직을 호출하기 위해 원격호출을 해야하는데 이부분에서 의견이 분분합니다.
> >> EJB3.0, SpringMVC, 순수Servlet, SOAP...
>
> >> 가장중요한건 쓰루풋 그리고 그 다음이 확장성
>
> >> 제가 생각하는 성능상의 팩터는 다음과 같은것들이 있습니다.
>
> >> 1.위 각 방식의 통신프로토콜은 : rmi, http, soap 으로 구별할수 있을것 같은데요... 이들의 차이가 한 팩터가 될
> >> 듯하구요.
>
> >> 2.EJB의 대량동시접속자의 처리가 좋다고 알고 있는데 스프링이 그러한 특성을 다 구현하고 있는지 예를 들면 인스턴스 풀링과 같
> >> 은... 하여간 이런게 또하나의 팩터가 될듯하구요.
>
> >> 3.EJB는 마샬링을 하기때문에 부가적인 로드가 들어갈것같구요.
>
> >> 4.SOAP은 역시 XML파싱 등의 작업에 로드가 들어갈것 같구요.
>
> >> 참고로 해당서비스는 세션을 유지할필요없으므로 EJB로 한다면 당연히 SLSB을 쓸거구요. 스프링이라면 싱글턴으로 갈예정입니다.
> >> 퍼시스턴스쪽은 iBatis등을 고려하고 있습니다.(사실 이쪽도 고민입니다)
>
> >> 해당 서비스는 별도의 특이한 로직은 없고 대부분 DB조회나 DB트랜잭션이 주요 역할인 서비스입니다.
>
> >> 고수님들의 좋은 의견 많이 부탁드립니다.
>
> >> --
> >> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> >> 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> >> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com<ksug%2Bunsu...@googlegroups.com>로
> >> 이메일을 보내주세요.
> >> 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
>
> > --
> > 눈에 보이는게 전부는 아니며 눈에 안보인다고 없는게 아니다.by <http://xn--9i1b3b869e.by> 洪
> > HP:010-4717-6896
>
> > --
> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com<ksug%2Bunsu...@googlegroups.com>로
EJB가 rmi통신을 하는거 아닌가요?
참 먼저, 데이터는 소켓통신을하다보니 스트링으로 전달되어 옵니다. 길이나 구분자로 잘라서 DB에 인서트되거나 하구요. 어떤방식을
쓰던 was는 WebLogic으로 정해져있구요.
EJB3.0보다는 서블릿이 좀더 범용적이겠죠? 생각하지 못했던 부분이네요. 앞으로 만약 다른 시스템에서 이 WAS에 해당 서비스
를 이용하려한다면... 아무래도 확장성은 서블릿이 좀더 좋긴하겠네요. HTTP프로토콜만 만족하면되니... 원격의 EJB를 호출하
려면 RMI를 구현해야되는거죠?
> 2010/8/19 자유 <kikist...@gmail.com>
>
>
>
> > 예를 들면 현금인출기와 같을 정도의 많은 동시접속자를 처리해야하는 WAS에 아키텍쳐를 설계하고 있습니다.
>
> > 와스는 WebLogic이구요. WAS 앞 단은 웹서버가 아닌 TCP소켓서버(java)입니다. 물론 클라이언트도 TCP소켓클라이언
> > 트이구요.
>
> > 이경우 TCP소켓서버가 WAS에 있는 비지니스로직을 호출하기 위해 원격호출을 해야하는데 이부분에서 의견이 분분합니다.
> > EJB3.0, SpringMVC, 순수Servlet, SOAP...
>
> > 가장중요한건 쓰루풋 그리고 그 다음이 확장성
>
> > 제가 생각하는 성능상의 팩터는 다음과 같은것들이 있습니다.
>
> > 1.위 각 방식의 통신프로토콜은 : rmi, http, soap 으로 구별할수 있을것 같은데요... 이들의 차이가 한 팩터가 될
> > 듯하구요.
>
> > 2.EJB의 대량동시접속자의 처리가 좋다고 알고 있는데 스프링이 그러한 특성을 다 구현하고 있는지 예를 들면 인스턴스 풀링과 같
> > 은... 하여간 이런게 또하나의 팩터가 될듯하구요.
>
> > 3.EJB는 마샬링을 하기때문에 부가적인 로드가 들어갈것같구요.
>
> > 4.SOAP은 역시 XML파싱 등의 작업에 로드가 들어갈것 같구요.
>
> > 참고로 해당서비스는 세션을 유지할필요없으므로 EJB로 한다면 당연히 SLSB을 쓸거구요. 스프링이라면 싱글턴으로 갈예정입니다.
> > 퍼시스턴스쪽은 iBatis등을 고려하고 있습니다.(사실 이쪽도 고민입니다)
>
> > 해당 서비스는 별도의 특이한 로직은 없고 대부분 DB조회나 DB트랜잭션이 주요 역할인 서비스입니다.
>
> > 고수님들의 좋은 의견 많이 부탁드립니다.
>
> > --
> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com<ksug%2Bunsu...@googlegroups.com>로
> > 이메일을 보내주세요.
> > 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
참 그리고 Cache화된 클라이언트란 어떤걸 말씀하시는건지요?
On 8월19일, 오전10시44분, Kuwon Kang <prever.k...@gmail.com> wrote:
> 2.EJB의 대량동시접속자의 처리가 좋다고 알고 있는데 스프링이 그러한 특성을 다 구현하고 있는지 예를 들면 인스턴스 풀링과 같
> 은... 하여간 이런게 또하나의 팩터가 될듯하구요.
>
> 위의 질문은 좀 애매한데요.
>
> 대용량 접속시 인스턴스 풀링의 개념은 Statefull을 의미하시는 건가요? SLSB의 측면에서 보면 Client마다 Cache가 되면
> 사실 WAS입장에서는 하나의 Instance를 가지게 됩니다.
>
> 다만 Cache화된 Client가 많다면 SLSB도 여러개의 Bean이 풀에 존재하는 개념이 될텐데 그렇다 해도 그렇게 많이 생기지는
> 않겠죠?
>
> 스프링측면에서는 모든 Bean Instance들이 BeanFactory에 있으므로 이를 Singleton으로 사용하게되면 해당 Bean을
> 꺼내서 메서드를 호출하는 방식이 되므로 이게 EJB의 인스턴스 풀과 비교할 수 있는 부분은 아니어 보입니다.
>
> 따라서 EJB의 대용량 처리가 더 좋다 좋지 않다는 의미는 사실 좀 애매한 부분이 있어 보입니다.
>
> 예를 들어 다음과 같이 되겠죠?
>
> TCP Server->Send message->WAS Servlet Recevier-->전문을 VO로 생성->Spring Bean
> Factory->getBean->Method call with VO->return->전문 생성->send back to TCP
> Server.
>
> 따라서 스프링이 모든 빈을 관리하고 이 빈을 꺼내서 요청된 서비스를 호출하는 Facade Pattern의 구조가 될 것 같아 보입니다.
>
> 도움이 되시길~~~
>
> 2010/8/19 자유 <kikist...@gmail.com>
>
>
>
> > 예를 들면 현금인출기와 같을 정도의 많은 동시접속자를 처리해야하는 WAS에 아키텍쳐를 설계하고 있습니다.
>
> > 와스는 WebLogic이구요. WAS 앞 단은 웹서버가 아닌 TCP소켓서버(java)입니다. 물론 클라이언트도 TCP소켓클라이언
> > 트이구요.
>
> > 이경우 TCP소켓서버가 WAS에 있는 비지니스로직을 호출하기 위해 원격호출을 해야하는데 이부분에서 의견이 분분합니다.
> > EJB3.0, SpringMVC, 순수Servlet, SOAP...
>
> > 가장중요한건 쓰루풋 그리고 그 다음이 확장성
>
> > 제가 생각하는 성능상의 팩터는 다음과 같은것들이 있습니다.
>
> > 1.위 각 방식의 통신프로토콜은 : rmi, http, soap 으로 구별할수 있을것 같은데요... 이들의 차이가 한 팩터가 될
> > 듯하구요.
>
> > 2.EJB의 대량동시접속자의 처리가 좋다고 알고 있는데 스프링이 그러한 특성을 다 구현하고 있는지 예를 들면 인스턴스 풀링과 같
> > 은... 하여간 이런게 또하나의 팩터가 될듯하구요.
>
> > 3.EJB는 마샬링을 하기때문에 부가적인 로드가 들어갈것같구요.
>
> > 4.SOAP은 역시 XML파싱 등의 작업에 로드가 들어갈것 같구요.
>
> > 참고로 해당서비스는 세션을 유지할필요없으므로 EJB로 한다면 당연히 SLSB을 쓸거구요. 스프링이라면 싱글턴으로 갈예정입니다.
> > 퍼시스턴스쪽은 iBatis등을 고려하고 있습니다.(사실 이쪽도 고민입니다)
>
> > 해당 서비스는 별도의 특이한 로직은 없고 대부분 DB조회나 DB트랜잭션이 주요 역할인 서비스입니다.
>
> > 고수님들의 좋은 의견 많이 부탁드립니다.
>
> > --
> > Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> > 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> > 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com<ksug%2Bunsu...@googlegroups.com>로
> > 이메일을 보내주세요.
> > 더 많은 옵션을 보려면http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.