분산 정보 베이스: 기본 사항. 분산된 정보 기반. 단계별 지침 및 함정 리브 만들기

RIB는 트리 구조의 분산 정보 기반으로, 그 분기는 개별적으로 배포된 1C Enterprise 데이터베이스입니다. 이러한 데이터베이스를 분산 정보 기반 노드(이하 간단히 노드)라고 합니다. 모든 노드(구성 및 데이터베이스)를 동기화하기 위해 이러한 노드 간에 정보 교환이 이루어집니다.

주요 메커니즘은 독특하고 보편적인 기능을 갖춘 교환 메커니즘입니다. 주요 차이점은 RIB 교환 메커니즘이 더 전문화되고 좁은 반면, 범용 교환은 사용자에게 더 넓은 범위의 기회를 제공한다는 것입니다.

RIB의 기본 작동 원리

분산 정보베이스의 기본 루트 노드에서만 구성 구조 변경이 가능합니다. 그런 다음 이러한 변경 사항은 계층적으로 하위 노드에 전파됩니다. 따라서 이는 모든 RIB 노드에 걸쳐 단일 구성 구조 공간을 제공합니다.

데이터는 임의의 노드에서 변경될 수 있으며, 이는 차례로 다른 모든 노드에 배포됩니다. 더욱이, 이 데이터는 시스템의 다른 참가자에게 반드시 전송될 필요는 없으며 그들의 완전한 신원이 유지되지 않을 수도 있습니다. 개발자는 원하는 대로 다른 RIB 참여자와의 교환에 참여하는 데이터의 구성을 사용자 정의할 수 있습니다. 또한 구성 메타데이터 수준뿐만 아니라 특별한 선택 사항을 적용할 수 있는 개별 요소 수준에서도 설정을 지정할 수 있습니다.

위에서 언급했듯이 RIB 메커니즘은 교환 계획을 사용하여 달성됩니다. 그러나 이 계층 구조에서 특정 계획을 사용하려면 "분산 정보 베이스" 속성을 활성화해야 합니다.

모든 데이터는 메시지를 통해 RIB로 전송됩니다. 이러한 메시지의 내용은 보편적인 교환 메커니즘처럼 명확하게 규제되며 자의적일 수 없습니다. 데이터는 XML 직렬화 원칙을 사용하여 메시지에 배치됩니다. 이러한 데이터 변경 사항 외에도 메시지에는 구성 변경 사항에 대한 정보와 특정 양의 서비스 정보도 포함됩니다. 변경 사항은 완전히 자동으로 교환 메시지에 등록되고 배치됩니다. 사용자나 개발자 모두 이에 영향을 미칠 수 없습니다.

RIB에서의 교환 메시지 수신 및 생성은 하나의 명령으로 설정됩니다.

교환 계획. 쓰기변경(쓰기메시지, 0)

내용은 명령을 사용하여 읽습니다.

결론

RIB 메커니즘은 주로 RIB 구조에만 존재하는 몇 가지 독특한 기능을 갖춘 범용 교환 메커니즘으로 구성되어 있다고 안전하게 말할 수 있습니다.

RIB(분산 정보 기반) 기술을 사용하면 1C Enterprise 구성을 기반으로 지리적으로 분산된 시스템을 만들 수 있습니다. 이를 통해 노드의 높은 자율성과 신속한 정보 교환 기능을 결합하여 신뢰할 수 있는 통신 채널이 없는 부서와도 공통 정보 공간을 가질 수 있습니다. 우리 기사에서는 8.2 플랫폼에서 이 메커니즘의 기능과 실제 구현을 살펴보겠습니다.

우선 스스로에게 물어봅시다: 왜 자동 교환이 필요한가? 저렴하고 빠른 인터넷과 결합된 현대 기술을 통해 아무런 어려움 없이 원격 작업을 구성할 수 있습니다. RDP, 씬 및 웹 클라이언트, VPN을 사용한 네트워크 연결 등 방법 선택의 폭이 그 어느 때보다 넓습니다. 고려해야 할 사항이 많습니다. 그러나 이러한 모든 방법에는 통신 채널의 품질에 크게 의존한다는 한 가지 중요한 단점이 있습니다.

현지 공급자의 이상적인 운영에도 불구하고 통신 채널의 100% 가용성을 보장하는 것은 불가능합니다. 백본 공급자의 문제, 전원 공급 장치 부족, 통신 회선의 물리적 손상 및 기타 여러 요인으로 인해 이 작업을 극복할 수 없습니다. 동시에 원격 창고나 소매점의 정보 기반에 접근할 수 없으면 상당한 손실이 발생합니다. 그리고 마지막으로, 고품질 통신 채널을 제공하는 데 비용이 많이 들거나 문제가 되는 장소(예: 도시 외곽의 산업 지역)가 있다는 사실을 잊지 마십시오.

RIB 메커니즘을 사용하면 이러한 단점을 제거할 수 있습니다. 각 부서에는 외부 세계와의 통신이 전혀 없는 경우에도 자율적으로 작업할 수 있는 자체 정보 기반 복사본이 있습니다. 전송되는 정보의 양이 적기 때문에 모바일 인터넷을 포함한 모든 통신 채널을 사용하여 교환할 수 있습니다.

플랫폼 8.2의 RIB는 RIB 플랫폼 7.7의 추가 개발을 나타내는 근본적으로 새로운 것이 아닙니다. 이제 이 기술은 더 쉽게 접근할 수 있고 더 단순해졌습니다. 별도로 구매해야 했던 RIB 구성 요소와 달리 RIB는 많은 표준 구성의 필수 부분이며 전적으로 사용자 모드에서 작동하므로 설정 단계에서도 구성기 없이도 작업을 수행할 수 있습니다.

이 시점에서는 실용적인 부분으로 넘어갈 시간이지만, 한 가지 여담을 더 만들어야 합니다. 사실 이미 발생한 것으로 보이는 8.2 플랫폼으로의 전환으로 인해 관리형 애플리케이션 기반, 8.2 플랫폼용 "네이티브", 8.1에서 계속 적용되는 두 가지 유형의 구성이 등장하게 되었습니다. 오래된 기술과 메커니즘을 사용합니다. 구성(엔터프라이즈 회계, 급여 및 HR 관리)의 상당 부분이 조정되거나 과도기적이므로 할인될 수 없습니다. 따라서 기사의 첫 번째 부분은 이러한 구성(기본적으로 8.1 플랫폼)에 대해 다루고 두 번째 부분에서는 관리되는 애플리케이션(플랫폼 8.2)을 기반으로 구성에 대한 자동 교환 설정을 살펴보겠습니다.

실제 작업을 고려해 보겠습니다. Enterprise Accounting 2.0 구성에 대해 FTP를 통해 자동 교환을 설정하는 것입니다. RIB를 사용하면 이메일이나 파일 공유를 사용하여 교환할 수 있다는 사실에도 불구하고 가장 간단하고 안정적인 통신 방법으로 FTP를 사용하는 것이 좋습니다. 자신만의 FTP 서버를 설정하는 방법을 읽어보거나 호스팅 제공업체의 FTP 서비스를 사용할 수 있습니다.

우선 교환 노드를 구성해야 합니다. 이렇게 하려면 관리자 권한으로 구성을 시작하고 거래 - 교환 계획.

나타나는 목록에서 다음을 선택하세요. 가득한계획하거나 조직별, 하나의 데이터베이스에 여러 회사에 대한 기록이 보관되어 있고 그 중 하나에 대해서만 교환이 필요한 경우. 열리는 창에는 이미 하나의 노드가 있습니다. 중앙 노드이므로 코드와 이름을 표시하여 편집해야 합니다.

그런 다음 분기에 대한 또 다른 노드를 생성하여 동일한 방식으로 채웁니다(추가하려면 더하기 기호가 있는 녹색 원을 클릭). 다음 단계는 파일 모드에서 미리 만들어진 정보 기반인 이 노드에 대한 초기 이미지를 생성하는 것입니다. 이렇게 하려면 원하는 노드를 마우스 오른쪽 버튼으로 클릭하고 드롭다운 목록에서 선택합니다. 시작 이미지 만들기.

이제 다음으로 넘어가자 서비스 - DIB(분산 정보 베이스) - RIB 노드 구성.

열리는 창에서 버튼을 클릭하세요 추가하다원격 호스트, 교환 유형(FTP를 통해) 및 서버 연결 매개변수를 지정하여 새 교환을 구성합니다.

서표 자동교환교환 일정 설정, 이벤트별 교환(작업 시작 및 종료 등)을 설정할 수 있습니다. 이러한 설정은 교환이 수행될 사용자를 대신하여 이루어지므로 해당 사용자에게 데이터 교환 권한이 있는지 확인하십시오.

도구 - 프로그램 설정에서 문서 번호 매기기를 위한 노드 접두어를 지정하는 것을 잊지 마십시오(그렇지 않으면 동일한 번호를 가진 다른 문서를 받게 됩니다). 여기에서 다른 교환 매개변수도 구성할 수 있습니다. 동일한 탭에서 교환 작업을 수행할 사용자를 선택해야 하며, 이를 수행하지 않으면 일정이 작동하지 않습니다. 사용자가 프로그램에 로그인한 경우에만 교환이 이루어집니다.

이것으로 중앙 노드 구성이 완료되었으며, 이제 주변 노드에 대해서도 유사한 설정을 수행하여 초기 이미지를 기존 정보 보안 시스템으로 연결해야 합니다. 그런 다음 데이터 교환을 시작할 수 있습니다. 제어하려면 다음을 사용해야 합니다. 통신 모니터, 이를 통해 업로드/다운로드의 성공 여부를 모니터링할 수 있을 뿐만 아니라 발생하거나 지연된 움직임으로 인한 충돌도 표시됩니다(교환을 수행한 사용자가 데이터베이스에서 작업을 수행할 수 있는 충분한 권한이 없는 경우). 이 도구를 사용하면 자동 교환 중에 발생하는 다양한 유형의 문제를 빠르고 효과적으로 해결할 수 있습니다.

이 시점에서 교환 설정이 완료된 것으로 간주되어 분산 모드에서 작업을 시작할 수 있습니다. 특히 구성을 업데이트하거나 변경하는 것에 대해 자세히 살펴보는 것이 좋습니다. 이러한 작업은 중앙 노드에서만 사용할 수 있으며, 모든 변경 사항은 다음 교환 중에 주변 노드에 자동으로 전파됩니다. 자동으로 변경하려면 주변 데이터베이스가 배타적 모드에 있어야 합니다. 그렇지 않으면 다음을 실행해야 합니다. 구성자그리고 실행 데이터베이스 구성 업데이트수동으로.

조직에 지리적으로 서로 멀리 떨어진 여러 지점이나 소매점이 있는 경우 상황이 자주 발생합니다. 그러나 조직 전체에 걸쳐 일관된 기록을 유지해야 할 필요성은 여전히 ​​남아 있습니다. 이 문제를 해결하기 위한 옵션 중 하나는 모든 지점의 자동화된 워크스테이션을 포함하고 공용 서버에서 1C 정보 기반을 호스팅하는 통합 네트워크를 만드는 것입니다. 이 방법은 기술적으로 복잡하고 비용이 많이 들 수 있습니다. 또한, 정보보안과 관련된 다양한 이슈가 발생하고 있습니다.

두 번째 옵션은 분산 정보 베이스(RIB)를 만드는 것입니다. 분산 정보 기반은 1C:Enterprise 플랫폼의 별도 정보 기반으로 구성된 계층 구조로, 구성과 데이터 동기화를 위해 데이터 교환이 구성됩니다. 이러한 개별 정보 기반을 RIB 노드라고 합니다.

1C:Enterprise 시스템의 다양한 구성을 기반으로 분산 정보 기반을 생성할 수 있습니다. 1C : Trade Management 10.3의 예를 사용하여 생성을 고려해 보겠습니다.

무역 조직에 추가 소매점이 개설되어 조직의 일반 거래 시스템에 액세스해야 한다고 가정해 보겠습니다. RIB를 생성하려면 다음 단계를 완료해야 합니다.


이것으로 분산 정보 기반의 생성이 완료됩니다. 정보를 교환하려면 중앙 데이터베이스에서 데이터 교환을 시작한 다음(중앙 데이터베이스에서 발생한 변경 사항이 다운로드됨) 스토어에서(중앙 데이터베이스의 변경 사항이 다운로드되고 스토어에서 발생한 변경 사항이 다운로드됨) ), 그리고 다시 중앙 데이터베이스에 저장됩니다(변경 사항은 해당 데이터베이스에 다운로드되고 스토어에서 발생합니다).

분산 정보 기반에는 자체 충돌 해결 메커니즘이 있습니다. 따라서 교환 중에 기본 데이터베이스와 하위 데이터베이스 모두에서 개체(문서, 디렉터리 등)가 변경된 것으로 밝혀지면 기본 데이터베이스에서 변경된 내용이 우선적으로 적용됩니다.

분산 정보 베이스의 구성을 변경해야 하는 경우 루트 노드에서 이를 수행해야 하며(문서의 첫 번째 그림 참조) 나머지 노드의 구성은 잠겨 있습니다. 필요한 변경을 수행한 후 RIB 노드 간 데이터 교환을 위한 표준 절차를 사용하여 슬레이브 노드로 전송할 수 있습니다. 슬레이브 노드의 구성기에서 교환이 수행된 후 정보베이스 구성을 업데이트해야 합니다.

분산된 정보 기반을 설정하는 데 문제가 있는 경우 당사 전문가가 데이터 교환 설정을 돕고 사용 방법을 자세히 설명할 것입니다.

분산 정보 기반을 만들려면 1C: 엔터프라이즈 모드로 프로그램을 입력해야 합니다. 분산 데이터베이스 노드를 생성하려면 메뉴에서 작업 - Exchange 계획을 선택합니다. “개체 선택: 교환 계획” 창이 열립니다.


1. "전체" 교환 계획 옵션을 고려하십시오.

교환은 분산된 정보 기반에 위치한 모든 조직에서 수행됩니다.

"전체" 교환 계획을 선택하겠습니다. “전체 교환 계획” 창이 열립니다.

우리는 두 가지 항목을 작성합니다.

첫 번째 항목을 "Main node"라고 부르고 코드 "GU"를 표시합니다.

두 번째 항목을 "하위 노드"라고 부르고 코드 "PU"를 나타냅니다.

그림에서 볼 수 있듯이 첫 번째 항목에는 녹색 원이 있는 아이콘이 있는데, 이것이 “Main Node” 아이콘입니다.


"메인 노드" 정보 베이스의 복사본을 생성하려면 "슬레이브 노드"를 클릭하고 "초기 이미지 생성" 아이콘을 클릭합니다. 이는 "하위 노드" 정보 기반이 됩니다.


“초기 정보 보안 이미지 생성” 창이 열리면 “이 컴퓨터 또는 로컬 네트워크의 컴퓨터에서”를 선택하고 “다음”을 클릭하세요.


"Infobase Directory" 필드에서 "Main Node" 복사본이 설치될 위치를 선택하고 "Finish"를 클릭합니다.


"하위 노드" 정보 베이스를 생성하면 다음 메시지가 나타납니다.


“확인”을 클릭하세요.

"1C: Enterprise"에 "하위 노드" 정보 기반을 추가합니다. "1C: Enterprise" 모드에서 하위 데이터베이스로 이동합니다. 열어 보겠습니다: 운영 - 교환 계획. “개체 선택: 교환 계획” 창이 열립니다. "전체" 교환 플랜을 선택하겠습니다. “전체 교환 계획” 창이 열립니다. "기본 노드" 아이콘이 주황색으로 표시된 것을 볼 수 있습니다. 이는 이 노드가 우리가 위치한 정보 기반의 기본 노드임을 의미합니다.


마스터 및 슬레이브 노드 모두에서 다음 설정을 지정합니다.

1. 분산 정보베이스에 대한 접두사를 추가합니다.

이는 두 개의 데이터베이스에 생성된 문서 및 디렉토리의 번호와 코드에 충돌이 없도록 수행되므로 각 데이터베이스에서 문서 번호와 디렉토리 코드에 추가될 접두어를 나타냅니다. 열기: 도구 - 프로그램 설정 - "데이터 교환" 탭. "분산 정보베이스의 노드 접두사:" 필드에 하위 데이터베이스에 "PU"를 입력하고 기본 데이터베이스에 "GU"를 입력합니다.


2. 노드 간 데이터 교환을 위한 설정을 추가합니다.

열기: 서비스 - DIB(분산 정보 베이스) - RIB 노드 구성. "데이터 교환 설정" 창이 열립니다.


"추가"를 클릭하면 "데이터 교환 설정" 창이 열립니다. 설정의 "이름"을 입력합니다.


"노드" 필드에 노드가 자동으로 표시됩니다. "마스터 노드"에는 "슬레이브 노드"가 있고, "슬레이브 노드"에는 "마스터 노드"가 있습니다.

"디렉터리" 필드에서 교환 데이터가 전송될 폴더를 선택합니다. 기본 데이터베이스와 슬레이브 데이터베이스에 대해 하나의 디렉터리를 지정하는 것이 가장 좋습니다.

"교환 유형" 필드에서는 파일 또는 FTP 리소스를 통해 데이터베이스 간 데이터 전송을 구성합니다. 예를 들어 "파일 리소스를 통해 공유"를 선택해 보겠습니다.

나머지 필드에서는 아무것도 변경하지 않습니다.

“확인”을 클릭하세요. 설정이 나타난 것을 볼 수 있습니다.

3. 데이터를 교환하기 위해 다음을 수행합니다.

먼저, 변경된 데이터베이스에서 그림과 같이 “현재 설정에 따라 교환” 아이콘을 클릭합니다.


업로드가 완료되면 업로드 결과 창이 나타납니다.


그런 다음 변경 사항을 전송하려는 데이터베이스에서 "현재 설정에 따라 교환" 아이콘을 클릭하면 데이터가 원하는 데이터베이스로 이동됩니다.

2. "기관 별"교류 계획 옵션을 고려하십시오.

교환은 분산된 정보 기반에 위치한 선택된 조직 간에 수행됩니다.

분산 데이터베이스의 노드를 만들려면 메뉴에서 작업 - Exchange 계획을 선택합니다. “개체 선택: 교환 계획” 창이 열립니다.


"기관 별"교류 계획을 선택합시다. “조직별 교환 계획” 창이 열립니다.

우리는 두 가지 항목을 작성합니다.

첫 번째 항목을 "Main Node"라고 부르고 코드 "GU"를 지정하면 "Exchange Plan: Full"과의 차이점을 볼 수 있으며 교환이 이루어질 조직을 나타내는 테이블이 나타납니다.

두 번째 항목을 "하위 노드"라고 부르고 코드 "PU"를 표시하고 조직을 나타냅니다.


다른 모든 측면에서 설정은 "Exchange Plan: Full"과 완전히 동일합니다.

URDB(URIB) 구성요소를 사용하여 분산 데이터베이스를 생성하고 구성하는 방법에 대한 지침

URDB(분산 데이터베이스 관리) 구성 요소는 두 개의 동일한 1C 데이터베이스 간에 정보를 교환하는 데 사용됩니다. 구성이 다르면 사용할 수도 있습니다. 이것은 다른 것으로 작성되었습니다. 구성 요소가 작동하려면 1C: Enterprise 프로그램의 BIN 폴더에 DistrDB.dll 파일이 있어야 합니다.

분산 데이터베이스를 생성하는 단계를 살펴보겠습니다. 예를 들어 D:\base1 디렉터리에 작업 기반이 있습니다. 중앙으로 만들고 주변 기반을 만드는 것이 필요합니다.

1. 주변 데이터베이스용 디렉터리 D:\base2를 만듭니다.

2. D:\base1 및 D:\base2 디렉터리에 CP 및 PC 폴더를 만듭니다(라틴 문자 사용).

3. 중앙 데이터베이스 구성자(D:\base1)를 실행하고 메뉴 - 관리 - 분산 정보 보안 - 관리를 선택합니다.

4. “중앙 정보 보안” 버튼을 클릭하고 나타나는 창에서 데이터베이스의 코드와 이름을 입력합니다. 코드에는 숫자나 라틴 문자를 사용하는 것이 좋습니다. 예를 들어 001과 "Central base"를 입력하고 "OK" 버튼을 눌러 확인합니다.

5. "새 주변 장치 정보 보안" 버튼을 클릭하여 주변 장치 데이터베이스를 생성합니다. 이에 대한 매개변수인 002와 "주변 장치 베이스 1"을 입력합니다.

6. 커서를 사용하여 "주변 장치 베이스 1" 베이스를 선택하고 "설정" 버튼을 누릅니다. 자동 교환". 설정에서 수동 모드를 자동으로 변경하세요. 조심하세요. 이것은 중요합니다.

7. 커서를 사용하여 "주변 장치 1" 데이터베이스를 선택하고 "데이터 업로드" 버튼을 누른 다음 "확인" 버튼을 누릅니다. 업로드 결과 D:\base1\CP\020.zip 파일이 나타납니다.

8. 구성자 모드에서 1C를 시작하고 1C 시작 창에 새 데이터베이스 "주변 데이터베이스 1"을 추가하고 이전에 생성된 디렉터리 D:\base2를 지정합니다.

9. 메뉴 - 관리 - 분산 정보 보안 - 관리를 선택합니다. 질문에 “정보 기반을 찾을 수 없습니다. 데이터를 로드하시겠습니까?" "예" 버튼을 클릭하고 파일 이름 "D:\base1\CP\020.zip"을 지정한 후 "확인" 버튼을 클릭합니다. 다운로드가 완료되면 주변 데이터베이스 생성 프로세스가 완료된 것으로 간주될 수 있습니다.

중앙데이터베이스의 복사본을 백업으로부터 복원하거나 중앙데이터베이스의 복사본을 SQL 형식으로 파일을 첨부하여 스크립트를 실행하여 주변 데이터베이스를 생성하는 방법도 제공된다. 이는 업로드 및 다운로드에 몇 시간이 걸리거나 완전히 비현실적인 대용량 데이터에 유용합니다.

URDB(URIB) 구성요소를 사용하여 분산 데이터베이스 간 교환에 대한 지침

간단한 예를 고려해 보겠습니다. 구성기를 실행하여 수동으로 교환을 수행하겠습니다. 구성기의 배치 모드를 사용할 수 있으며 메일, FTP 및 자동 파일 복사를 사용하여 교환 패키지를 전달할 수 있습니다.

교환을 수행하려면 메뉴 - 관리 - 분산 정보 보안 - 자동 교환을 선택해야 합니다. 교환이 자동으로 이루어지면(이전 지침의 6번 항목 참조) 모든 것이 제대로 작동합니다.

1. 따라서 주변 데이터베이스로 마이그레이션되는 일부 개체를 변경하거나 생성합니다. 개체 마이그레이션 규칙은 개체 속성의 "마이그레이션" 탭에서 설정됩니다(구성기의 개체 트리 참조).

2. 중앙 데이터베이스 구성기를 실행하고 메뉴 - 관리 - 분산 정보 보안 - 자동 교환을 선택한 후 "실행" 버튼을 클릭합니다.

3. 결과 파일 D:\base1\CP\020.zip을 D:\base2\CP\ 폴더로 이동합니다.

4. 주변 데이터베이스의 일부 개체를 변경합니다. 중앙 데이터베이스에서 이전에 변경된 내용은 바람직하지 않습니다. 중앙 데이터베이스는 교환 중 객체 변경에 대한 우선 순위를 갖습니다.

5. 주변 데이터베이스 구성 프로그램을 실행하고 메뉴 - 관리 - 분산 정보 보안 - 자동 교환을 선택한 후 "실행" 버튼을 클릭합니다.

6. 자동 교환의 결과로 중앙 데이터베이스에서 변경 사항이 발생해야 합니다. 중앙 데이터베이스 D:\base2\PC\021.zip으로 전송할 파일도 있어야 합니다.

7. D:\base2\PC\021.zip 파일을 D:\base1\PC 폴더에 복사합니다.

8. 2번 항목을 반복합니다. 결과적으로 주변 데이터베이스에서 받은 변경 사항이 중앙 데이터베이스에 나타납니다.

따라서 교환의 일반 원칙은 한 데이터베이스의 PC 폴더에서 다른 데이터베이스의 PC 폴더로, 한 데이터베이스의 CP 폴더에서 CP 폴더로 파일(교환 패키지)을 동시에 이동하여 자동 교환을 교대로 실행하는 것입니다. 다른 데이터베이스.

구성 변경은 중앙 데이터베이스에서만 이루어집니다. 구성을 변경하는 경우 주변 데이터베이스에서 배타적 모드로 교환을 수행해야 합니다. 중앙 데이터베이스에 있는 주변 데이터베이스의 패킷을 성공적으로 처리하려면 구성을 주변 데이터베이스에 로드해야 합니다. 혼란스러워도 괜찮습니다. 중앙 데이터베이스에서 거부된 패키지가 다시 다운로드됩니다.