none
BizTalk2006과 자바간의 연계에 대해서 문의를 드립니다. RRS feed

  • 질문

  •  

    안녕하세요, BizTalk에 대해서 검색을 하다가 BizTalk 공식(?) QA로 생각되는 이곳까지 오게 되었습니다.

     

    문의드리고 싶은 것은 사실 컨설팅을 받아야 할 만한 것이 아닌지 모르겠는데요, 워낙 무지하여 방향만이라도 조언을 좀 듣고 싶어서요.

     

     

    일단 프로젝트를 보면 운영체제부터 DB 등 거의 모든것을 MS환경으로 하고 WAS와 프로그래밍 언어는 JAVA환경으로 진행을 하는 외국 프로젝트 입니다.

     

    외국 현지에 MS제품을 납품하고 기술지원을 하는 조직이 있는지 없는지 불확실한 상황인데요, 있다고 해도 국내에서 어느정도 이해 및 준비를 해야 할 것 같아서 검색중이였습니다.

     

    현지에서 분석, 설계하시는 분께서는 프로젝트에서 BizTalk 2006 R2와 MS-SQL 2008의 연계를 생각하시고 있구요, JNBridge라를 것을 통해서 자바와 통신을 하는 모습을 구상하신 것 같습니다.

     

    그래서 저에게  간단하게나마 셈플을 만들어 보라는 지시가 내려왔습니다.

     

    제가 BizTalk에 대해서 아는 지식이라곤 업무에 대한 프로세스를 BizTalk로 정의해 놓고, 정의한 각 업무단계별로 프로그램과 통신을 해서 데이터를 주고 받는 것 같습니다.

     

    아시는 분께서는 BizTalk 개발자가 업무에 대해서 오케스트레이션을 만들어서 WSDL을 주면, 자바에서는 IDE로 웹서비스를 만들어서 데이터를 주고 받는 것이 전부라고 쉽게 말씀하시는데요.

     

    JNBirdge를 사용하면 웹서비스로 통신하는 것을 좀 더 쉽게 연계하는 것이 아닐까 하는 추측을 하고 있습니다.

     

    이런 구조에서 어떤 방법으로 접근해야 셈플로 간단하게나마 자료를 주고 받는 정도로 만들 수 있을까요?

     

    어떤 서적 또는 기술자료를 참고하면 될 지라도 알려주시면 정말 감사하겠습니다.

     

    좋은하루 되시구요 Smile

    2008년 5월 2일 금요일 오전 6:55

답변

  • 안녕하세요.

     

    얼마만에 올라오는 BizTalk 질문인지 모르겠습니다. ^^

    만족할만한 답변을 드려야 할텐데.. 질문주신 내용만으로는 드릴수 있는 답변에 한계가 있군요.
    일단 진행하시다가 어려운 부분이 있다면 다시 질문해주시기 바랍니다. Smile

     

    그럼 먼저 질문 내용을 정리해보겠습니다.

     

    인용 :

    아시는 분께서는 BizTalk 개발자가 업무에 대해서 오케스트레이션을 만들어서 WSDL을 주면, 자바에서는 IDE로 웹서비스를 만들어서 데이터를 주고 받는 것이 전부라고 쉽게 말씀하시는데요.

    =>
    제가 보기에 원래 의미는 "1. BizTalk의 오케스트레이션을 만들고 2. 해당 오케스트레이션을 활성화 시킬수 있는 웹서비스를 만들고, 3. 그 웹서비스 주소를 자바 개발자에게 알려주면 4. 자바 개발자가 그 웹서비스를 호출할 수 있다라는 뜻으로 말씀하신 것 같네요. WSDL(Web Services Description Language)을 넘겨줬는데 자바에서 다시 웹서비스를 만들 이유는 없지요. 비즈톡의 오케스트레이션에서 자바로 개발한 웹서비스를 호출하기 위해서라면 말이 됩니다만 그 의도는 아닌듯 합니다.

     

    따라서 다음과 같이 해보시면 될 듯 합니다. (자세한 과정은 생략)

     

    1. 비즈톡 프로젝트 생성.
    2. 스키마 생성
    3. 앞의 스키마를 기반으로 한 메시지를 수신하는 오케스트레이션 생성
    4. 웹서비스 배포 마법사를 이용하여 스키마, 혹은 오케스트레이션을 웹서비스로 생성, 배포.
    5. 자바에서 4에서 만든 웹서비스 호출.

     

    사실 설명은 간단하지만 처음 해보려면 이것저것 에러도 많이 나고, 난관에 부딪히게 될겁니다. ^^

     

    자, 그럼 이걸 위해 참조해야 할 리소스들 위치입니다.

     

    먼저 웹서비스 배포에는 스키마로 배포하기와 오케스트레이션으로 배포하기 두 가지가 있는데
    어느 쪽이 나은지 판단은 다음 글을 읽어보시면 될 듯 하구요.

     

    더 나은 BizTalk 프로그래밍을 위한 8가지 팁과 트릭(http://msdn.microsoft.com/ko-kr/magazine/cc163423.aspx)

     

    BizTalk SDK 설치하셨다면
    BizTalk Server 2006설치 위치\SDK\Samples\Orchestrations 밑에 보시면
    ExposeWebService 와 ConsumeWebService 를 참조하시면 됩니다.
    오케스트레이션을 웹서비스로 노출하고 호출하는 샘플입니다. ^^

     

    그리고 책을 사보시려거든..

     

     APress에서 나온 BizTalk 2006 Recipes 를 참고하시기 바랍니다.
    현재까지 나온 BizTalk 서적중에 가장 초보자용으로 적당하다고 생각합니다.

     

    마지막으로 제 블로그(http://BizTalkGuy.kr)에서도 BizTalk 관련 내용들을 다루고 있으니 참조하시면 좋을 것 같군요.

     

    아무쪼록 도움이 되었길 바랍니다.


    P.S. JNBridge 라는 제품은 Java와 .Net간의 상호운영성을 위한 제품인데 JNBProxy를 이용해서 닷넷 어셈블리를 불러다가 Proxy를 생성하더군요.(데모를 보니) 위에 말씀하신 시나리오에는 이미 웹서비스가 있는데 왜 이 제품이 필요한지 모르겠습니다. ^^ 거기다 어셈블리로부터 직접 Proxy를 생성하는 건 그리 유연한 구조같지 않습니다. 인터페이스가 추가되거나 하면 BizTalk Assembly는 자주 바뀔 수 있는데 이 때마다 다시 Proxy를 생성해야 할테니까요. 나중에 관리 모드에 들어갔을 때 변경 사항에 얼마나 유연하게 대처할 수 있을지도 고려해야 합니다.

    2008년 5월 2일 금요일 오전 9:27

모든 응답

  • 안녕하세요.

     

    얼마만에 올라오는 BizTalk 질문인지 모르겠습니다. ^^

    만족할만한 답변을 드려야 할텐데.. 질문주신 내용만으로는 드릴수 있는 답변에 한계가 있군요.
    일단 진행하시다가 어려운 부분이 있다면 다시 질문해주시기 바랍니다. Smile

     

    그럼 먼저 질문 내용을 정리해보겠습니다.

     

    인용 :

    아시는 분께서는 BizTalk 개발자가 업무에 대해서 오케스트레이션을 만들어서 WSDL을 주면, 자바에서는 IDE로 웹서비스를 만들어서 데이터를 주고 받는 것이 전부라고 쉽게 말씀하시는데요.

    =>
    제가 보기에 원래 의미는 "1. BizTalk의 오케스트레이션을 만들고 2. 해당 오케스트레이션을 활성화 시킬수 있는 웹서비스를 만들고, 3. 그 웹서비스 주소를 자바 개발자에게 알려주면 4. 자바 개발자가 그 웹서비스를 호출할 수 있다라는 뜻으로 말씀하신 것 같네요. WSDL(Web Services Description Language)을 넘겨줬는데 자바에서 다시 웹서비스를 만들 이유는 없지요. 비즈톡의 오케스트레이션에서 자바로 개발한 웹서비스를 호출하기 위해서라면 말이 됩니다만 그 의도는 아닌듯 합니다.

     

    따라서 다음과 같이 해보시면 될 듯 합니다. (자세한 과정은 생략)

     

    1. 비즈톡 프로젝트 생성.
    2. 스키마 생성
    3. 앞의 스키마를 기반으로 한 메시지를 수신하는 오케스트레이션 생성
    4. 웹서비스 배포 마법사를 이용하여 스키마, 혹은 오케스트레이션을 웹서비스로 생성, 배포.
    5. 자바에서 4에서 만든 웹서비스 호출.

     

    사실 설명은 간단하지만 처음 해보려면 이것저것 에러도 많이 나고, 난관에 부딪히게 될겁니다. ^^

     

    자, 그럼 이걸 위해 참조해야 할 리소스들 위치입니다.

     

    먼저 웹서비스 배포에는 스키마로 배포하기와 오케스트레이션으로 배포하기 두 가지가 있는데
    어느 쪽이 나은지 판단은 다음 글을 읽어보시면 될 듯 하구요.

     

    더 나은 BizTalk 프로그래밍을 위한 8가지 팁과 트릭(http://msdn.microsoft.com/ko-kr/magazine/cc163423.aspx)

     

    BizTalk SDK 설치하셨다면
    BizTalk Server 2006설치 위치\SDK\Samples\Orchestrations 밑에 보시면
    ExposeWebService 와 ConsumeWebService 를 참조하시면 됩니다.
    오케스트레이션을 웹서비스로 노출하고 호출하는 샘플입니다. ^^

     

    그리고 책을 사보시려거든..

     

     APress에서 나온 BizTalk 2006 Recipes 를 참고하시기 바랍니다.
    현재까지 나온 BizTalk 서적중에 가장 초보자용으로 적당하다고 생각합니다.

     

    마지막으로 제 블로그(http://BizTalkGuy.kr)에서도 BizTalk 관련 내용들을 다루고 있으니 참조하시면 좋을 것 같군요.

     

    아무쪼록 도움이 되었길 바랍니다.


    P.S. JNBridge 라는 제품은 Java와 .Net간의 상호운영성을 위한 제품인데 JNBProxy를 이용해서 닷넷 어셈블리를 불러다가 Proxy를 생성하더군요.(데모를 보니) 위에 말씀하신 시나리오에는 이미 웹서비스가 있는데 왜 이 제품이 필요한지 모르겠습니다. ^^ 거기다 어셈블리로부터 직접 Proxy를 생성하는 건 그리 유연한 구조같지 않습니다. 인터페이스가 추가되거나 하면 BizTalk Assembly는 자주 바뀔 수 있는데 이 때마다 다시 Proxy를 생성해야 할테니까요. 나중에 관리 모드에 들어갔을 때 변경 사항에 얼마나 유연하게 대처할 수 있을지도 고려해야 합니다.

    2008년 5월 2일 금요일 오전 9:27
  •  

    안녕하세요, 연휴 잘 보내셨는지 모르겠습니다.

     

    초보자의 질문에 상세하게 답변해 주셔서 정말 감사합니다.

     

    조언해 주신 내용을 읽어보니까 조금이나마 머릿속이 정리되는 느낌이 들더라구요.

     

    그리고 웹서비스는 타 프로젝트에서 BizTalk를 사용해 보신분께 조언을 구했더니 거기서는 웹서비스를 사용했던 예를 드신거구요.

     

    이번 프로젝트에서는 JNBirdge를 사용해서 연동을 하려고 하시는 거 같더라구요.

     

    그런데 말씀하신거 처럼 자바와 닷넷간의 연동을 위해서 필요한 것이라면 일반적으로 BizTalk와 자바간의 연동에서는 필요가 없다는 말씀이신거 같은데 맞는 것인가요?

     

    그럼 분석/설계하시는 분께서 잘못 알고선 JNBirdge를 포함하신 것이 아닌가 싶습니다.

     

    아무튼 좋은 조언을 해주셔서 정말 감사드리구요, 앞으로 프로젝트 진행하면서 또 궁금한 사항이나 이미 알고계시겠지만 제가 얻게되는 내용이 있으면 이곳을 통해서 공유하겠습니다.

     

    좋은 한주 시작하시구요, 수고하세요. ^^

    2008년 5월 5일 월요일 오후 11:50
  • A - BizTalk - B

     

    기본적으로 BizTalk 서버는 위와 같이 A라는 시스템과 B라는 시스템 사이에서 인터페이스 서버 역할을 하게 됩니다. 여기서 수신 시스템과 송신 시스템이 하나씩이 아니라 여럿이 될 수 있는 거구요. 연동의 대상이 되는 각 시스템은 SAP와 같은 ERP 서버일 수 있고 SQL 서버나 Oracle과 같은 DB 서버일 수도 있으며 그 외 다양한 Enterprise 환경에서 사용되는 시스템일 수 있습니다. 그 시스템에서 자바를 사용한다거나, 닷넷을 사용한다거나 하는 것은 크게 중요하지 않습니다.

     

    BizTalk 서버는 여러 Enterprise 환경에서 사용되는 시스템 별 연동을 위한 어댑터들을 기본적으로 제공하고 있으며,

    BizTalk 제공 어댑터 참조 : http://www.microsoft.com/biztalk/en/us/adapters-included.aspx

     

    어댑터팩을 제공하여 직접 필요한 어댑터를 만들수도 있습니다.

    BizTalk 어댑터팩 참조 : http://www.microsoft.com/biztalk/en/us/adapter-pack.aspx

     

    그렇다면 질문자분의 시나리오처럼 BizTalk의 인터페이스를 직접 호출하고 싶을 때는 어떨까요? 그럴 때 웹서비스를 사용합니다. 자바건 닷넷이건 웹서비스 호출은 문제가 되지 않으니까요. 그리고 이렇게 웹서비스를 타고 들어온 메시지는 BizTalk의 SOAP 어댑터를 통해 BizTalk Store에 저장되고 해당 메시지를 Subscribe하는 오케스트레이션이 실행되는 구조이지요.

     

    따라서, 네, 보통 자바와의 연동을 위해서 JNBridge와 같은 별도의 써드파티 제품을 이용하는 경우는 없습니다. 해당 제품을 제가 사용해본 적이 없기 때문에 이걸 사용하는게 옳다 그르다고 말씀드리기는 어려울 듯 하고.. 좀 더 고민을 해보셔야 할 듯 하네요. 해당 제품을 이용해서 BizTalk 어셈블리로부터 프락시를 생성, 직접 메서드 호출하는 샘플을 먼저 작성해보시면 될 듯 한데.. 제가 봤을 땐 그게 가능하다해도 BizTalk이 가진 장점을 포기하는 구조가 아닌가 싶습니다.

     

    말씀하신 것처럼 또 궁금한 사항 생기면 알려주시구요, 경험도 공유해주셨으면 좋겠습니다. Smile

     

    좋은 한주되세요~^^

    2008년 5월 6일 화요일 오전 12:54