[질문] WAS의 개념적인 질문
---- 혹시나 원론적인 답변이나올꺼같아서..책이나 인터넷은 뒤져보고 글을썼습니다.
도서관에는 EJB입문서는 없더라구요 원래없는건지 아니면 취급안하는지는 몰겠지만.
아래와같은 질문에 답해줄책이라면 제생각엔 최소한 3권이상은 사야할꺼같다는 생각이듭니다.
관련지식이 없기때문에..제게서 깊은 지식은 필요가 없습니다.
제가 EJB로 뭐할려고하는건아니니까요.
단지 그개념이 궁금할따름입니다.
또는 그것을 확신시킬필요가 있기때문입니다.적어도 그렇게 찝어주는 책은 없는거같더라구요.
그정도는 성의라생각해서 찾아보고글쓴겁니다.저도 그런 원론적인 답변이 나올꺼라는 예상은 했는데
적어도 저도 나름대로 그정도의 예의는 보였다고 생각해서 글쓴겁니다.
그래서 그런 답변은 피했음좋겠습니다.
몇군데 찾고나니까 머리가 아프네용
질문이 길어질꺼같아서 몇군데 찾아보고 참고로했던것만 아래 링크로 걸어놨습니다.
----- 질문입니다.
1. was(웹어플리케이션서버)라는게 레진, 웹스피어, 웹로직,php 파서, 톰켓같은걸말하나요?
-php 파서라고 했는데 정확하게 뭐라고 해야할지..
2. was에는 php was, asp was(IIS말고 리눅스같은데서는 별도의 WAS가 필요할거같은데),
jsp WAS등으로 구분하는거맞죠?
아 궁금한건 이렇게 OOO WAS 라고 말하는게 맞는건가요?
WAS가 J2EE에서 파생된 단어라던데 그렇게말한다면 php같은것은 뭐라고 해야하는건가요?
3. jsp와 ejb와의 관계는 어떤관계에있습니까?
4. jsp was같은경우엔 반드시 자바 SDK가 필요한건가요?
그냥 jsp was만으로는 실행되지않던가요?
- 예컨데 톰켓이나 레진에는 웹서버기능이있으므로 SDK없이 이것만으로처리되지않을까요?
- 그관계가 궁금합니다.
5. php의 was에는 어떤것들이있습니까?
6. EJB라는 개념은 j2se의 확장 개념입니까?
- j2se같은 개념은 뭐라고 하나요?
7. ejb를 구현해줄수있는 툴로 J2EE, 웹로직, 웹스피어, 레진 엔터프라이즈 같은건가요?
- 웹스피어같은경우에는 j2ee가 포함된건가요?
8. jsp, asp, php같은건 정확하게 WAS라고 하나요?
아니면 서버사이드 스크립트라고 하나요?
아니면 서버페이징 기술이라고 하나요?
9. ejb라는게 j2se에서 분산처리기능이나 보안성, 트렌잭션, 등의 강화버전이라고 보는게
맞습니까?
10. ejb를 하기위해서는 was와 j2ee도 깔아야하나요?
11. 웹로직이나 웹스피어같은것은 JSP쪽밖에 지원되지않는건가요?
예컨데 ASP나 PHP같은건 그런 프로그램들이 없나요?
12. 웹로직이나 웹스피어같은것에는 어떤 프로그램들이 포함된건가요?
제가알기로는 서버, 개발도구, DB등이 모두 탑제되어있다고 하던데요
13. APMsetup이나 APM같은개념을 WAS에서는 포함하고있는겁니까?
그러니까. 웹서버 + 서버사이드스크립트(?) + DB 같은..
14. 톰켓이 컨테이너라고 하는데 컨테이너라는건 정확하게 뭐라고 할수있나요?
15. 3-Tier란?
2-Tier : Business Tier, Presentation Tier (1 Tier) - Database Tier(2 Tier)
3-Tier : Presentation Tier (1 Tier) - Business Tier(2 Tier) - Database Tier(3 Tier)
n-Tier : 분산작업을위한 컴퓨팅 구조론(방법론)
참고 :: http://blog.naver.com/4321875/140015821467
16. 3-Tier중에서 비즈니스 로직이란건 어플리케이션서버랑 다른건가요?
17. was와 SI의 관계는?
18. was와 EAI의 관계는?
19. 애플리케이션통합(EAI)과 정보포털(EIP) 개념 ?
20. layer와 tier의 차이점?
21. 3-tier안에 was개념, apm개념이 포함된건가요?
---
찾아낸사실들 :
애플리케이션통합(EAI)과 정보포털(EIP)
WAS - j2ee용어
WAS - 최근엔 웹서버기능포함
미들웨어 개념에 속함. JAVA WAS == .NET COM+
EJB서버프로그램들 = IBM WebSphere, BEA WebLogic, 국산 티맥스 Jeus, 국산 쉬프트정보통신 토인비
순수하게 참고한 사이트 :
레진(resin)과 웹로직(WebLogic)의 차이점이 뭔가요?
http://kin.naver.com/browse/db_detail.php?d1id=1&dir_id=10102&eid=AERL3c%2Fu59W2aegBVkYmW7RRJrw6leEY
WAS란
http://blog.naver.com/guile77/20008676774
WAS란 무엇인가?
http://blog.empas.com/elfnari/9187962
[질문-3162054] WAS 란? 정확히 무얼 뜻하며...
http://blog.empas.com/sentria/6106975
[화제 e기업 집중분석] '아이티플러스' .. WAS 국내점유율 '1위'
http://rd.empas.com/r.tsp/was%B6%F5/D4:2:010100:2DFBE0A::t/*http://news.empas.com/show.tsp/cp_hk/20030214n03149/?kw=was%B6%F5+%3Cb%3E%26%3C%2Fb%3E+%7Bwas+%B6%F5%7D+%3Cb%3E%26%3C%2Fb%3E+was+%3Cb%3E%26%3C%2Fb%3E
WAS 플랫폼 급성장, 내년 500억 시장
---
tier 란 무슨 뜻입니까?
http://search.empas.com/search/ok_pvw.html?pt=0&dd=1&ft=2&i=4981276&sn=1206616234&q2=tier+%B6%F5&dv=a&w=224849&dw=49&vl=A&vn=1&q=tier+%B6%F5%3F&ou=kin.naver.com%2Fbrowse%2Fdb_detail.php%3Fd1id%3D1%26dir_id%3D1%26docid%3D759127
2Tier와 3 tier의 비교
http://blog.naver.com/4321875/140015821467
[안영회의 UML 강좌19] - System Architecture-2
http://blog.naver.com/makesome/140015792533
eJB 프레임워크
http://web2gether.co.kr/ejb.html
제가 권해드리는 방법은 도서관에서 책을 찾아보십시요.EJB관련 입문서가
제가 권해드리는 방법은 도서관에서 책을 찾아보십시요.EJB관련 입문서가 도서관에 없다고 하셨는데 이상하군요 저는 도서관에 갈때마다 EJB나 닷넷 입문서는 엄청 많이 봤습니다만.그리고 만약 도서관에 없다만 한권 구입하시는것도 나쁘지는 않을 것 같습니다만.
그리고 제가 생각하기에는 이해를 못하시는게 원문 내용에 적혀있는 단어만 이해할려고 하시지 마시고 거기에 깔린 배경 지식도 같이 알아 두셔야 도움이 될것 같습니다.
지금 하시는 일 같은 경우에는 그냥 모르는 단어 있으니까 국어 사전 찾아본다는 식의 일을 하시는것 같은데...
우선 자바에 대한 기초 지식이 있는 사이트를 먼저 쭉 둘러 보신다음에 지금 링크거신 부분을 잘 살펴 보십시요.
더미님은 그냥 알고 싶을 뿐이니 지름길을 가르쳐 달라고 하시지만 지금 질문 올리신것을 보면 지름길은 고사하고 정도로 확실히 가셔야 할것 같은 느낌이 듭니다.
위에 질문에 대한 답을 알고 싶습니까.그럼 정도로 가십시요.어설프게 아는것은 모르는 것 보다 더 위험합니다.
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
낚..
낚이지 맙시다!!
- 꾼 출현! -
Re: [질문] WAS의 개념적인 질문
'PHP 파서'는 정체를 모르겠습니다. WAS는 넓은 의미로는 말 그대로 정적인 내용이 아닌 웹 응용프로그램을 구동하기 위한 서버 제품을 총칭하는 말이며 말씀하신 레진, 웹스피어, 웹로직, 탐캣 등은 J2EE라는 자바의 기업환경을 대상으로 하는 개발 스펙을 준수하는 WAS의 일종입니다.
J2EE를 많이 쓰면서 WAS라는 개념이 널리 쓰이게 되었을 뿐 WAS라고 자바만 있는 건 아닙니다.
둘 다 J2EE라는 스펙의 일부입니다.
자바를 구동하려면 자바 가상머신이 있어야 합니다. 꼭 SDK가 있어야 하는 건 아니지만 어쨌든 네이티브 컴파일을 하지 않는 한 자바 런타임이 있어야 합니다.
EJB가 J2EE라는 스펙의 일부고 J2EE가 J2SE의 확장으로 보셔도 큰 무리는 없습니다.
보통 WAS는 J2EE 특정 버전의 일부, 혹은 전부를 구현했다는 식으로 말합니다.
jsp/asp/php는 웹에서 동적인 내용을 보여주기 위한 서버측 스크립팅 기술이고 이를 사용하기 위해서 WAS가 필요하다고 이해하시면 됩니다.
넵
'j2ee'를 깐다는 건 정확하지 않고 j2se와 j2ee의 원하시는 버전을 지원하는 WAS를 설치하면 됩니다.
제품 홈페이지에 가보시는게 빠르지 않을까요?
보통 디비는 별도 입니다.
(웹) 응용프로그램을 설치/구동하기 위한 서버를 말합니다.
다릅니다. 그건 '웹디자인은 아파치 웹서버와 다른 건가요?'와 비슷한 질문입니다.
SI가 개발 단가를 높이기 위해 비싼 WAS를 제안서에 넣어서 먹고사는 경우가 많습니다; SI 개발자는 유명 WAS 써봤다고 이력서에 쓰면 뽀대 납니다;
별 차이 없습니다.
셋 다 서로 관계 없습니다.
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
제가 정말 좋은 책 하나 추천해드릴께요.com+ and battle
제가 정말 좋은 책 하나 추천해드릴께요.
com+ and battle for the middle tier, 로저 세션.
번역서가 있는지는 잘 모르겠네요..
저자가 COM+ 전문 개발자라서 MS 찬양의 내용이 많지만,
쉽게 반박이 불가능한 공격을 주로 하고 있죠...
주로 엔터티 빈, stateful session bean이 왜 안좋은가에 대해서 공격을
하고 있는데 사실 걔네 둘이가 안좋다는건 EJB 개발자들도 많이 알고
있기 때문에...
정말 관심있으시면 꼭 읽어보세요.
그리고 (제가 자바개발자라서 자바쪽 문서만 권하는데..)
J2EE tutorial
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/
J2EE Spec.
http://java.sun.com/j2ee/1.4/download.html
도 읽어보세요.
지식인-_-;;; 은 간단한 howto 찾는데는 좋겠지만, 그외에는...
간단하게 왜 미들티어, WAS같은 것이 등장하게 되었는가하는 것을
생각나는대로 써볼께요. com+ and battle... 을 너무 오래전에 읽어서
틀릴 수도 있습니다.
(1) 과거에는 DB에서 트랜잭션과 보안을 모두 관리했다.
(2) 그런데 예전에는 사용자마다 별개의 계정을 사용하려면 scalability가 떨어진다. 처리 속도에서 DB connection을 재사용하는 것이므로, connection을 재사용하기로 한다.
(3) connection을 재사용하고 나니 더 scalability를 올릴 수 있는 방법은 객체 생성을 재사용행한다는 것이었다. 즉, object pooling.
(4) 결국 객체를 재사용하고, 컨넥션을 재사용하다보니 하나의 database connection만 사용하게 되었다.
(5) 하나의 connection만 사용하게 되니 transaction과 보안의 중심이 객체로 옮겨지게 되었다.
(6) 객체에서 transaction과 보안을 처리하려니 이게 보통일이 아니게되었다.
(7) 그래서 trasaction과 보안을 처리하기 위한 다양한 API를 만들었다.
(8) API를 만들었지만, 이를 적절하게 사용하는 것도 보통일이 아니었다.
(9) 여기서 발상의 전환이 일어나는데, API를 만드는게 아니라 객체를 컨테이너안에 넣고, 컨테이너가 객체의 생명주기(lifecycle)를 관리하고, 객체의 모든 메소드에 대한 보안과 트랜잭션을 처리하는게 어떨까하고 생각하게되었다.
(10) MS의 COM+ 가 완성되었다.
(11) SUN의 EJB가 COM+를 배꼈다. 대신 엔티티 빈(entity beans)과, 상태 유지 세션빈(stateful session beans)를 추가하였다.
(12) MS가 JAVA를 배끼고, 이제 .NET을 만든다. .NET에서는 attribute라는 개념을 사용해 EJB보다 훨씬 간단하게 객체를 풀링하고, 객체의 트랜잭션을 관리하고, 객체의 보안을 관리할 수 있게 되었다.
(13) 다시 JAVA가 .NET의 attribute를 배껴서 annotation이라는 것을 만들어내고, 이를 사용한 쉬운 엔터프라이즈 애플리케이션 개발 환경을 만들고자 하게 되었다. 이것이 2005년말~2006년초사이에 나타날 J2EE 5 이다.
--
Passion is like genius; a miracle.
Re: [질문] WAS의 개념적인 질문
fender 님
존경 합니다.
fender14. 컨테이너나 WAS나 같은 개념아닌가요?1
fender
14. 컨테이너나 WAS나 같은 개념아닌가요?
16. 이해가 가지않습니다.
분명 둘은 다른의미로 쓰이는건 확실한데..
저는 그게 왜 다른지 이유를 모르겠습니다.
그냥 단지 저는 같다라는 느낌만드네요.
20. 그럼 둘중 아무거나써도되겠네요?
예컨데 OSI 7-Tier이런식으로도...
21. 3tier안에 WAS나 APM개념이들어있다고하는건
우선 WAS가 APM을, 좀더 구체적으로한다면 A와 P부분을 포함하고있기때문이죠.
그래서 AP(M은 아니니 빼고)은 WAS에 속한다고 반쯤은 생각되며.
3Tier로 봤을때
APM은 완벽하게 속하게된다고 생각합니다.
1layer에서는 웹브라우져가될것이고
2layer에서는 PHP+APACHE나 레진 또는 톰켓 IIS가 될것이고 이런것들이 WAS가되겠죠.
3layer에서는 mysql이나 그런 DB가 될테니 결국엔 APM도 3Tier에 속한다고 할수있죠.
아닌가요?
-------------------------------------------------
pool007
선의 EJB가 MS의 COM+를 보고배꼈다고하는데
그럼 그것이 IIS를 말하는건가요?
EJB라는게 웹서버와 서버사이드스크립트를 돌릴수있는 어플리케이션엔진
이하 합쳐서 WAS를 구성하는데
그렇다면 선의 EJB==WAS 일때 MS가 EJB와 똑같은 다시말해
웹서버와 어플리케이션엔진을 포함하는 뭔가를 내놨다는 말일테고
그렇다면 그것은 IIS를 말하는거겠죠?
엔티티 빈즈, 상태 유지 세션빈, 풀링의 개념은 무엇인가요?
트랜잭션 처리부분 이부분은 그냥 JSP같은 어플리케이션엔진으로 보면되겠죠?
님의 그순서에대해 해석하자면
(1) 과거에는DB에서 모든 처리와 보안기능을 해줬는데
(2) 그렇게하니까 사용자는 매번DB에 접속하고 보안단계를 거치는등의 불편을 주는데
전반적으로 이런걸 확장성이 떨어진다라는표현으로 하신거같네요
(3) 즉 무언가가 DB에 항상연결되어있고 사용자는 DB에 직접접속해서 불편한 절차를 밟는대신
짧게 해주는데 이를 풀링이라고 쓴건가요?
(4) 이렇게 하니까 그중간매체는 DB하고만 연결하면되고 중간매체는
사용자(중간매체를 사용하는 사용자)와 DB사이에서 접속되니 자연히 그사이에 접속은 하나만 이뤄지면된다는거죠
(5)이렇게하니까 자연히 처리 방법이나 보안에관련된것이 중요해지겠죠.
어차피 DB에 부하를 덜주니까요.
참 여기서 중간매체를 객체라고 표현하고있군요. 맞습니까?
(6) 그런데 이런 중간매체가 업무처리기능과 보안을 하려니까 상당히 까다롭다는 말이겠죠?
(7) 그래서 그방법론으로 많은 라이브러리같은걸 만들었겠죠.
(8) 그런데 그런 라이브러리를 사용하는것도 일이다 라는말이겠죠?
(9) 여긴좀어렵네요. 컨테이너와 객체라..
비슷한개념같은데 약간상위개념으로 해석될듯싶네요.
그런데 둘다똑같다고 생각하니까 말이좀안되네용..
그냥 약간 좀좋아졌다고 해석하면되겠죠?
(10) 그래서만들어진게 COM+이고
(11) 썬이 자바와 거기에 몇가지 기술(뭔지는 모르겠지만)을 추가해 EJB를 만들었다는거죠?
(12)(13)은 무슨 개념인지 잘모르겠습니다. 어쨌거나 썬과 MS가 서로 경쟁을 하면서
결국 J2EE 5가 나올것이다 라는 말인거같습니다.
제가 해석하는 수준은 어려운단어를 뺀상태로 해석되네요
------------------------------------
F/OSS bless you... ^^*
[quote]14. 컨테이너나 WAS나 같은 개념아닌가요?[/quote]
WAS와는 달리 '컨테이너'라는 건 그렇게 어떤 딱 정해진 의미를 갖는 '용어'가 아닙니다. 탐캣을 WAS라고 부르던 '서블릿 컨테이너'라고 부르던 비슷한 뜻이지만 '컨테이너'란 건 그냥 범용적인 의미고 너무 영단어 해석에 집착하실 필요는 없는 개념입니다.
쉽게 말해 웹 응용프로그램이라면 코드 중 HTML 코드를 구성하는 부분을 프리젠테이션 로직, 데이터베이스와 연동하는 부분을 퍼시스턴스 로직, 그리고 그 밖에 두 계층 사이를 중계하며 실제적인 업무를 처리하는 부분을 비즈니스 로직이라고 합니다. '로직'이라고 하면 코드를 가르키고 '계층'이라고 하면 해당 코드가 동작하거나 배포된 논리적으로 구분된 공간을 가르킵니다.
구성하기에 따라 위 3 계층 모두가 하나의 물리적인 WAS에 올라가기도 하고 각각 분산이 되기도 하고 또 같은 계층이라도 여러대에 서버로 로드밸런싱이나 클러스터링을 하기도 합니다.
HTML이 웹문서고 웹서버가 웹문서를 서비스하는 프로그램이라고 아파치가 HTML이 아니듯이 비즈니스 로직과 WAS는 동일한 개념이 아닙니다.
아까 말씀드린 '컨테이너'와 마찬가지로 'tier'나 'layer' 같은 것도 무슨 'CPU'나 'connection pooling' 같은 전문용어가 아닙니다. 문맥에 맞게 적절히 이해 하시면 됩니다. 다만 'OSI 7-tier'란 표현이 어색한 것은, tier/layer의 관계가 예를들어 story/floor의 관계와 비슷하기 때문입니다. 즉, '저 건물은 3층 짜리이다'할 때 'story'를 쓰지만 '사무실이 3층에 있다'할 때는 'floor'인 거나 마찬가지 입니다.
자세한 내용은 영어 사전을 참조하세요;
그렇게 따지면 '인터넷'의 개념에는 '익스플로러 6.0'이 완벽하게 속한다고 할 수 있습니다. 그런데 그런 '정의(?)'가 어떤 의미에서 그렇게 중요한 의미를 지니는지 모르겠습니다.
참고로 다계층 구조를 말할 때 '계층'은 물리적인 구분만을 뜻하진 않습니다. 즉, 논리적 구분을 이야기 한다면 예를들어 탐캣 하나에 프리젠테이션, 비즈니스, 퍼시스턴스 로직이 다 들어갈 수 있고, 반대로 물리적 서버 구성은 WAS와 디비가 분리되어 있어도 2계층으로 만들 수도 있습니다.
약간 주제 넘는지 모르지만 제 생각에는 분산환경이나 다계층 웹응용프로그램, 혹은 J2EE 전반에 대해 알고 싶으시다면 영어 단어의 사전적 의미 분석 보다는 인터넷이나 서적을 활용해서 개론적인 내용을 차근히 읽어 보시는게 좋을 것 같습니다.
예를들어 자동차를 한 번도 보지 못한 아프리카 사람에게 자동차 운전을 가르친다면 자동차 한 대를 가져와서 운전을 시키는게 제일 빠른 방법입니다. 아무리 아프리카 말에 익숙해도 뭐 '자동차라는 건 쇠로 만든 동물 처럼 움직이는 건데, 그게 또 동물은 아니고 그 쇠라는 건 돌멩이 같은 걸 불로 녹여서......' 이렇게 1년을 토론 해도 운전을 가르치긴 어렵다고 봅니다. 또 그 아프리카 사람이 그 설명을 듣고 자동차라는 것도 '석유'라는 걸 '먹고' 배기가스를 '배설'하고 스스로 움직이니 동물이 아니냐?라고 반박하면 이야기는 더 길고 힘들어 지겠지요...
dummy999님이 어떤 접근 방식을 택하시건 사실 제가 왈가왈부할 권리는 없습니다만, 항상 님의 나름대로 진지한 질문이 위와 같은 이유로 의미없는 말꼬리 잡기로 흐르고 그래서 극단적으로 반감을 갖는 분들도 계신 것 같아 안타까운 생각이 들더군요.
어쨌든 다시 한 번 전문용어나 기술 개념은 영어 사전의 해석만으로 이해할 수 없는 것이고, 기술을 배우는 건 직접 뛰어들어 보는게 가장 빠른 방법임을 강조하고 싶습니다.
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
제 경우에는..
저는 WAS를 좀 더 큰 의미로 봅니다.
말하자면,
Web Application Server =
컴포넌트 모델(EJB, COM+, CORBA 등...) + 컴포넌트 트랜잭션 모니터 + Web server + Servlet or JSP, ASP, PHP, Python...
좀 풀어쓰면.
분산객체를 지원하는 잘 정의된 서버측 컴포넌트 모델을 기반으로
[트랜잭션 무결성, 리소스 풀링, 퍼시스턴스, 컨커런시, 객체 분산, 네이밍, 보안 등...]을 제공하는 트랜잭션 모니터를 가지고,
거기에 웹서버, Server-side 스크립트 등의 기능을 가진 제품 정도?
[quote][b]<< 속성 >>[/b]-
나름대로 정리해봤습니다.
틀린점이있다면 지적부탁드립니다.
------------------------------------
F/OSS bless you... ^^*
댓글 달기