NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 다른 컴퓨터에서 실행중인 매크로에서 메세지를 받아서 액션 아이디 이동하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 멀티 컴퓨팅 환경에서 다른 컴퓨터에서 동작중인 스크립트가 다른 컴퓨터에 메세지를 보내서 액션을 이동하는 방법에 대해 알아보도록 하겠습니다. 대부분은 각각의 컴퓨터가 독립적으로 실행될텐데요. TCP 통신의 액티브앰큐 이벤트(ActiveMQ Receiver)를 사용하면 같은 컴퓨터 또는 다른 컴퓨터에서 실행중인 매크로의 메세지를 받을 수 있습니다. 받은 메세지 종류에 따라 이벤트를 처리할 수 있습니다. 이 테스트를 수행하기 위해 엔지엠 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요

    [ 멀티 다클라 매크로에서 현재 상태를 모니터링 매니저 프로그램에서 확인하는 방법 ]

    cnOuw3h.gif

     

     

    우선, 메세지를 주고 받기 위해 ActiveMQ 서버를 실행해야 합니다. 아래 사이트에서 ActiveMQ 서버를 다운로드한 후 바탕화면에 압축을 풀어주세요.

    [ ActiveMQ 다운로드 ]

    0diLEiu.png

     

     

    바탕화면에 압축을 풀었습니다. 버전은 다를 수 있습니다.

    lmWZIJN.png

     

     

    액티브앰큐 서버 액션을 스크립트에 추가한 후 위에서 받은 폴더의 경로를 선택하세요. 액티브앰큐 서버 액션은 메세지를 주고 받을 수 있는 서버를 실행해줍니다. 전체 네트워크에 서버는 하나만 실행되어 있어야 합니다. 모든 컴퓨터들은 이 서버를 통해 메세지를 주고 받기 때문입니다. 그래서, 멀티 컴퓨팅 환경에서 매인 컴퓨터에만 서버를 띄워놓고, 다른 컴퓨터들은 메세지를 보내거나 받는 액션만 사용해야 합니다.

    wbLbU0s.png

     

     

    ActiveMQ 동작 방식은 아래 그림과 같습니다. 액티브앰큐 프로듀서(ActiveMQ Producer)액티브앰큐 서버(Queue)로 메세지를 보냅니다. 서버가 실행되면 큐가 생성됩니다. Consumer는 엔지엠 에디터에서 액티브앰큐 이벤트(ActiveMQ Consumer)입니다. 아래 그림과 같이 프로듀서(메세지를 보내는 프로그램 또는 컴퓨터)는 여러개가 될 수 있고, 메세지를 수신하는 컨슈머도 여러개가 될 수 있습니다. 참고로, 큐 방식을 사용하면 이벤트가 떠 있는 모든 컴퓨터의 매크로가 메세지를 받게 됩니다.

    aRWo1FH.png

     

     

    액티브앰큐 이벤트는 아래 그림과 같이 메세지 큐 이름을 설정할 수 있습니다. 프로듀서가 메세지를 보낼 때 큐 이름으로 보내기 때문에 동일한 큐 이름을 가진 컴퓨터의 매크로들만 메세지를 수신할 수 있습니다. 위 그림에서는 동시에 메세지를 보내고, 수신하는것처럼 보이지만, 실제로는 순차적으로 실행됩니다. 큐에 메세지가 들어오면, 첫번째로 메세지를 가져가는 컴퓨터가 동작하고 메세지는 사라집니다. 호스트는 서버가 실행중인 컴퓨터의 아이피(호스트, Host)입니다. 포트는 액티브앰큐 기본 포트인 61616을 사용했습니다. 포트를 변경하려면 ActiveMQ의 설정을 직접 변경해야 합니다.

    D3aYPq6.png

     

     

    메세지를 받기 위해 무한 반복하는 루틴을 추가 했습니다. [ 그룹 ]과 [ 액션 이동 ]을 사용해서 무한 반복 시키세요.

    TlK3HGE.png

     

     

    메세지를 받으면 바탕화면의 내컴퓨터를 클릭하고, 아래 액션 이동을 만나서 다시 무한 반복하게 됩니다. 그렇게 복잡한 시나리오는 아니라서 이해하기 쉬울겁니다^^; 이제 이 스크립트를 저장하고, 메세지를 보낼 새로운 스크립트를 하나 더 추가 해줍니다. 메세지를 보내는건 액티브앰큐 프로듀서입니다. 다른 컴퓨터에 보낼 메세지를 작성하고, 메세지 큐 이름과 서버 호스트, 포트를 입력해주세요.

    5cHB9nJ.png

     

     

    이 테스트에서는 컴퓨터가 한대뿐이라서 아이피를 사용하지는 않았습니다. 그래서, 루프백(Loopback)을 적어주었는데요. 로컬호스트(localhost)의 루프백은 127.0.0.1입니다. 또는, CMD에서 ipconfig로 로컬 아이피를 확인할 수 있습니다. 이 아이피를 입력해도 됩니다. 이제, 에디터를 2개 실행하고 테스트를 진행 해보도록 하겠습니다. 좌측 에디터에서 ActiveMQ 서버가 실행되고, 컨슈머(ngmsoftware)가 동작합니다. 우측 에디터에서 메세지를 보내면, 좌측 에디터가 메세지를 받아서 무한 반복 루틴을 건너뛰게됩니다. 그래서, 바탕화면의 내컴퓨터를 클릭하고, 다시 무한 반복으로 돌아갑니다.

     

     

    이번에는 에디터를 하나 더 실행하고, 큐 이름을 "editor"로 변경한 후 테스트 해보겠습니다. 메세지를 보낼때도 큐 이름을 바꿔서 보내면 첫번째 에디터와 두번째 에디터가 자신의 큐에 들어온 메세지만 처리하는걸 알 수 있습니다.

     

     

    메세지를 받으면, 기본 메세지를 로그에서 확인할 수 있습니다.

     

     

    파라메터를 이름과 값(Key, Value)으로 보낼수도 있습니다. 메세지를 받는 에디터에서는 파라메터 목록을 배열로 받아서 처리할 수 있습니다.


     

    일부 환경에서 컴퓨터의 상태 또는 매크로가 동작하면서 간섭을 일으킬 때 메세지를 사용하면 문제를 쉽게 해결할 수 있을겁니다. 여러 컴퓨터 또는 매크로가 동시에 무언가를 처리할 때 누가 먼저 처리했는지 또는 다른 컴퓨터에서 처리전인지 처리후인지 판단할 때 유용할 수 있습니다. 메세지를 받아서 다른 컴퓨터가 어디까지 진행되었는지도 체크할 수 있습니다. 이외에도 데이타베이스나 엑셀 또는 다른 이벤트로 처리하기 어려운 문제들을 쉽게 해결할 수 있습니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.