문제

따라서 우리는 로컬 (고객 사이트) 호스팅, 맞춤형 판매 지점 시스템을 구축하고 있으며 일반적인 내용은 없습니다. 모든 .NET, C# 및 SQL Server.

요구 사항 중 하나는 시스템을 통해 주문도 인터넷을 통한 주문을 허용한다는 것입니다. 여러 가지 이유 (연결 신뢰성/속도, 백업, 안정성, 유지 보수 등) 웹 포털은 일부 표준 웹 호스팅 회사와 함께 오프 사이트로 호스팅됩니다.

제품 세부 사항은 로컬 DB에 있으므로 외부 웹 사이트 DB를이 데이터와 동기화해야합니다. 그것은 분명히 안전해야하며 대역폭이 너무 무겁지 않아야합니다.

우리는 지역 DB가 외부 세계에 대한 노출을 최소화하는 솔루션을 생각해 냈습니다.

  • 웹 앱은 로컬 앱에서 아무것도 액세스 할 수 없습니다.
  • 데이터를 이동할 수있는 유일한 방법은 로컬 앱에서 웹 앱으로 전송 된 푸시입니다.
  • 웹 앱이 할 수있는 유일한 일은 새로운 주문을받은 로컬 DB에 알림을 보내는 것입니다. 로컬 앱은 외부 앱에 연결하고 주문 세부 정보를 가져옵니다.

그래서 우리는 이와 같은 디자인을 생각하고 웹 서비스를 사용하고 AddProduct (ID, Blah Blah Blah)와 같은 웹 앱의 기본 작업을 정의했습니다.

그러나 제품이 로컬 앱에서 삭제 된 경우와 같이 제품을 동기화하기 위해 루틴을 작성해야하지만 외부 앱은 일시적으로 사용할 수 없습니다. 등 ...

이것은 공명 가능한 접근법입니까, 아니면 더 좋은 방법이 있습니까?

도움이 되었습니까?

해결책

이것은 SOA가 나에게 적용되는 것처럼 보이는 경우입니다. WCF를 사용하여 POS 애플리케이션에서 특정 기능을 노출 할 것입니다. 이것은 적어도 다음과 같은 것들이 있습니다.

  • 웹 사이트에서 POS 시스템에서 기능을 재사용하는 대신 POS 시스템에서 기능을 재사용 할 수 있습니다.
  • 예를 들어 MSMQ 바인딩을 사용하여 연결이 끊긴 상황에서 작동 할 수 있습니다.
  • WCF에는 우수한 보안 메커니즘, 거래 지원 등이 있습니다 ...

이렇게하면 POS와 웹 사이트 사이에 한 번의 결합을 수행하는 대신 POS 시스템에 값의 할당을 추가하게됩니다.

WCF에 대해 자세히 알아 보려면 추천 할 수 있습니다 WCF 서비스 프로그래밍 Juval Lowy

다른 팁

실제로 귀하의 질문에 대한 답변은 아닙니다 ... 나는 두 사이트 사이에 VPN 터널을 올리려고 노력할 수 없다면 SSH 터널을 사용해보십시오.

보안이 좋다는 것 외에도 VPN이 내 경험에 나오면 더 많은 옵션이 열리면 이전에 고려하기에는 너무 불안한 것들이 생각하기 때문에 더 많은 옵션이 열립니다.

@Olle 이것은 유망 해 보인다. 한 가지 문제는 온라인 포털 및 로컬 앱 연결이 신뢰할 수 없다는 것입니다. 그러나 링크가 다운되면 여전히 주문을받을 수 있기를 원합니다. 따라서 WebApp에서 WCF를 사용하여 서버에서 데이터를 읽고 로컬 테이블에 캐시 할 것이라고 생각합니다. 웹 앱은 WCF 호출이 짧은 시간에 반환되지 않으면 캐시 테이블의 컨텐츠를 제공하는 간계 계층을 통해 데이터를 요청합니다. 성공적으로 돌아 오면 캐시가 지워지고 결과로 대체됩니다. 계획처럼 들리나요?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top