Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Exchange flow diagram 2012-03-05 ㈜ 필라넷 라천호 책임 익스체인지 내부 구조를 도식화하여 이해를 돕고자 한다. 0. Table of contents 1. Notifications 2. High Availability – Scalability를 고려한 notificiation 방법 결정 3. Conculsion 1. Notifications Notification을 통해 Exchange의 내부 Item에 대한 현 상태를 알아 내어 외부 시스템 연동 및 업데이트에 필요한 정보로 가공할 수 있다. 1.1 Push notification 1.2 Pull notification 1.3 Stream notification 1.1 Push Notification MBX 2 1 Register CAS MBX 2 다른 구독과 다르게 MBX 서버에서 Notification을 Listener에게 직접 보내준다. 3 Push Data 전송(실시간 데이터) Listener 1.1 Push Notification Push Notifications Pros Cons Nearly instantaneous notifications 거의 실시간으로 Notification을 받 을 수 있고 Have to write a listener http 리스너를 할 수 있는 서버가 필요 No wasted traffic 적은 트래픽 Listener must be addressable by the Exchange server 리스너를 받기 위해서 IP기반 주소가 필요 Does not require CAS affinity CAS를 이용하지 않는다 1.2 Pull Notification Exchange 2013에서는 Push notification이 정상적으로 동작하지 않는다. 1 CAS 각 사용자의 notification을 pull 요청 후 정보 받음 Notification Pulling Receiver 1.2 Pull Notification Pull Notifications Pros Cons Same simple request/response protocol as all othe r EWS web methods EWS 웹 메소드와 같이 간단하게 사용 Receive notifications as frequently as client polls 클라이언트 Polling을 통해 자주 요청해야 한다. Client does not need to be addressable (can be be Wasted traffic hind a proxy or firewall) Polling 때문에 낭비되는 트래픽이 발생 기반 주소가 필요 없다 IP . Authentication is handles in the same way as for al Fine tuning required to get optimal polling inter l other EWS web methods val 다른 EWS 메소드와 같은 방식으로 인증 최선의 Polling 주기를 조율해야 한다. 1.3 Stream Notification 1 각 사용자의 notification을 Stream 요청(연결 됨) CAS 2 등록된 사용자의 notification을 넘겨 줌 (일정 시간 동안 모아둔 이벤트) Streaming Receiver 1.3 Stream Notification Stream Notifications (아직 공식적인 문서는 없으며 Pull, Push를 기반으로 작성 되었다.) Pros Cons Same simple request/response protocol as all other EW S web methods EWS 웹 메소드와 같이 간단하게 사용 Watermask를 사용해서 지난 메세지를 받을 수 없다. (SyncFolderItems 으로 가능한지 테스트 중) Client does not need to be addressable (can be behind a proxy or firewall) IP기반 주소가 필요 없다. 즉시적인 Notifications을 받을 수 없다. 그렇지만 연결된 상태에서는 특정 주기(기본 5초)마다 이벤트를 구독할 수 있다. Authentication is handles in the same way as for all oth er EWS web methods 다른 EWS 메소드와 같은 방식으로 인증 2. High Availability – Scalability를 고려한 선택 실제 서비스 환경에서 고 가용성과 확장성을 위해 여러 대의 서버로 이중화를 하여 서비스를 한다. 그렇다면 이런 환경에서는 어떤 방법으로 Notification을 구독하는 게 가장 효율적이고 효과적일 수 있을까? 2.1 Exchange 2013 실 서버 환경 L4 switching CAS CAS CAS는 모든 MBX에 접근할 수 있다. CAS CAS 각 MBX는 active node와 passive node로 이중화 되어 있다. MBX (passive MBX node) (active node) MBX MBX (active node) MBX MBX (active node) MBX MBX (active node) MBX MBX (active node) MBX MBX (active node) 2.2 실 서버 환경에서 Push Notification 구독 시나리오 - Push notification 이벤트를 MBX에서 보내주고 세션 유지기 필요치 않아 L4 switching를 사용할 수 있다. 그래서 가용성과 확장성을 가져 갈 수 있다. - CAS나 MBX, Listener가 중간에 다운이 되어 도 정상적인 서비스가 가능하다. L4 switching CAS MBX MBX (passive (active node) node) MBX MBX (active node) CAS CAS MBX MBX (active node) MBX MBX (active node) CAS MBX MBX (active node) L4 switching Listener Listener Listener MBX MBX (active node) Closed network Listener 2.2 실 서버 환경에서 Push Notification 구독 시나리오 - Push notification 이벤트를 MBX에서 보내주고 세션 유지기 필요치 않아 L4 switching를 사용할 수 있다. 그래서 가용성과 확장성을 가져 갈 수 있다. - CAS나 MBX, Listener가 중간에 다운이 되어 도 정상적인 서비스가 가능하다. L4 switching MBX MBX (passive (active node) node) CAS CAS CAS CAS Listener Listener Listener Listener MBX MBX (active node) MBX MBX (active node) MBX MBX (active node) Network MBX MBX (active node) MBX MBX (active node) - 서버 자원이 여의치 않을 때는 CAS 서버에 Listener Role을 같이 구축 할 수 도 있다. 3. Conclusion Push notification 방식은 아래와 같은 특징을 가지고 있다. - Session을 가지고 있지 않기 때문에 L4스위치를 사용하여 아무 서버에서나 이벤트를 처리할 수 있다. - MBX에서 즉시적으로 이벤트를 Listener에 보내준다. - (또 다른 특징은 1.1에서 살펴 보자) 다른 사항보다 Session으로 인해 얻는 이점으로 인해 서버가 fail 상태에서도 다른 서버에서 이벤트를 처리할 수 있게 된다. (Pull이나 Stream 방식은 세션 유지로 인해 다른 서비스에서 동적으로 처리할 수 없다.) 위와 같은 이유로 대규모 Exchange 2013 서비스에서 Notification 구독은 Push notification 방식으로 구성하여 처리하는 것이 고 가용성과 확장성을 유지하는데 있어서 효과적이다. 그렇지만 다른 규모와 환경에서는 다른 방식으로 처리하는 방안을 조율해야 할 것이다. (언제가 완벽한 정답은 없다. 다만 최선의 길만 있을 뿐이다.) Exchange flow diagram. Exchange의 내부 구조 및 흐름을 알기 쉽 게 도식화 하여 전체적인 흐름을 파악 함 으로써 개발 및 운영에 도움이 되도록 한 다. Exchange flow diagram