C++로 할 수 있는 분산컴포넌트/웹서비스 ?
안녕하세요.
지금까지 windows 하에서 COM을 이용한 프로그램을 작성하였습니다.
그런데 지금 일하고 있는 곳에서는 unix 계열로 작업을 하고 있군요.(Solaris)
주로 자바를 사용하고 있는데요,
제가 하게 될 부분은 퍼포먼스에 민감한 부분이라고 하여,
c++로 작업을 하려고 합니다.
제가 할 일은 데이터를 가공 저장하여 두고,
다른 machine에 있는 app들이 이 데이터에 접근할 수 있도록 하는 서비스를 작성하는 일입니다.
주로 데이터를 사용하게 되는 app들은 java/weblogic을 기반으로 하게 됩니다.
현재에 되어 있는 시스템에서는,
데이터를 shared memory에 저장하고, 이 shared memory를 cgi들이 접근하여 결과물로 데이터를 출력하게 하며,
다른 app들이 이 cgi를 쿼리하여 데이터를 얻어가는 방식으로 되어 있습니다.
하지만 이 방법은 여러가지 측면에서 불리한 점을 가지고 있습니다.
예로,
필요한 데이터를 shared memory라는 제한된 자료구조에 넣어야 한다는 것도 유연성, 성능면 모두에서 불리하고요,
특히나 개발생산성은 매우 떨어집니다.
그래서 저는 현재의 이 시스템을,
windows에서 COM+을 이용하였던 것 처럼,
분산 아키텍처를 사용하도록 바꾸는 것이 어떨까 생각중입니다.
그런데 제가 unix를 잘 모르는지라,
unix 계열에서 사용할 수 있는 분산 아키텍처를 구체화 할 수 있는 방안들이 무엇이 있는지 모르겠습니다.
대충 떠오르기로는 corba와 orb지원 미들웨어 같은 것들이 떠오르는 군요.
위에서 말씀드렸듯이 성능상의 문제로 인해, ejb 같은 것은 사용할 수 없는 상황입니다.
구체적으로 현재 상황에 적용할 수 있는 개념들과 product들에 대해 조언을 얻고 싶습니다.
일단 키워드가 되는 단어라도 알아야 그에 대한 정보를 얻을 수 있을테니까요. ^^
많은 도움 부탁드립니다.
좋은 주말 되세요~
-----
PS. 혹시 위의 글에 문제 되는 점이 있으면 지적해 주시면 수정하도록 하겠습니다.
C++ 로 CORBA 개발
Unix 상에서 C++/CORBA를 사용하여 project를 한 경험이 있읍니다.
Language Independent하므로 java로 작성된 타 app도 문제 없을 것 같군요.
C++ 을 지원하는 공개 ORB가 여럿 있는데...
omniORB, mico, TAO 등....
개발 초기에 위의 ORB와 상용 orbix제품을 가지고 고민 하다...
TAO 라는 ORB를 사용하였읍니다..
http://www.cs.wustl.edu/~schmidt/TAO.html
TAO의 아랫단에서 사용되는 ACE framework 과 더불어 활발한 community가 있읍니다.
pinetr2e 님 안녕하세요.답변 감사드립니다. ^^몇가지
pinetr2e 님 안녕하세요.
답변 감사드립니다. ^^
몇가지 궁금한 점이 있어서 문의 드리려고 하는데 괜찮으실런지요?
수행하신 프로젝트의 만족도는 어떠셨는지요?
성능이나 개발 생산성, 유지/보수의 문제, 신뢰성,
또한 해당 orb나 framework을 익히는데 드는 비용적인(주로 시간이겠죠)
문제 등에 있어서요.
저도 TAO쪽을 주의 깊게 보려고 하고 있습니다.
국내에 번역된 ACE관련 서적을 한권 가지고 있는데 이게 TAO쪽 과 관련이 있는 거 같아서요. 이왕이면 자료가 있는 놈이 좀 나으리라는 생각에 ^^
그리고, 제가 참고하면 좋을만한 문서나 서적 등이 있으면 추천 부탁드리고 싶습니다.
사실 유닉스/CORBA/ORB 등등 모두 생소한 것들이라 좀 겁이 나는군요. ^^;
말씀하신 TAO 홈페이지만 참고해도 충분할런지 아니면, CORBA등의 관련 지식을 좀 습득하는게 필요할까요?
다시 한번 도움 감사드립니다.
좋은 주말 되시기 바랍니다. ^^
열심히 삽시다!
[quote]수행하신 프로젝트의 만족도는 어떠셨는지요? 성능이나
초기에는 CORBA 라는 것을 배우는것이 큰 부담이 었는데...
어느정도 적응이 되니 CORBA 라는 것이 전체 서비스 로직에서
차지 하는 부분이 그렇게 크지 않더군요...
책보고 예제 해보고 하느식으로하면 한달 정도면 익숙 해지리라고
생각 됩니다.
그리고 개발 단계에 있어 ORB 관련하여 compile 하는데 소요되는 시간이 많이 소요되서 좀 불편한 점이 있구요... ( orbix 가 재일 오래걸렸구요... MICO나 omniORB가 가벼웠죠...)
어떻게 보면 사소하게 보일 수 있지만 이것이 생산성에 영향을 줄 수 있는 점이 될것 같군요....
나머지점에 대해서는 비교할 대상이 없어서 뭐 특별히 언급할 부분이 없네요.
CORBA 관련 해서는 다음의 책이 bible이죠(거의 must 입니다.).
Advanced CORBA(R) Programming with C++ by Minchi Henning,..
그리고 혹시 필요하면 OMG 에서 CORBA Spec 중 C++Language Mapping 정도를 참조 하시고....
ACE 관련 해서는 원서로 두권이 나와 있구요...
TAO/ACE 모두 뉴스그룹이 있으니 개발에 도움이 많이 될 것 입니다.
댓글 달기