빌딩 블록 > 빌딩 블록 설계 패턴 > 추상 및 구현 설계 패턴
추상 및 구현 설계 패턴
추상 및 구현 설계 패턴에서 표준 설계 패턴의 추상 부분은 분할되어 자체 빌딩 블록(예: PTC.BuildingBlock)으로 형성되며 구현 빌딩 블록(예: PTC.BuildingBlockImpl)에서 분리됩니다. 이를 통해 솔루션 개발자는 PTC.BuildingBlockImpl1, PTC.BuildingBlockImpl2 등과 같이 동일한 추상 빌딩 블록의 여러 구현을 제공할 수 있습니다.
추상 빌딩 블록에서 관리 사물 형태의 서비스 정의(예: PTC.BuildingBlock.Management_TS)는 비어 있으며 구현 빌딩 블록에서 재정의되는 재정의 가능한 서비스입니다. 구현 빌딩 블록에는 추가 관리자 구현 사물 템플릿(예: PTC.BuildingBlockImpl.Manager_TT)이 있습니다. 이 관리자 사물 템플릿은 추상 빌딩 블록의 관리자 사물 템플릿에서 확장되어 관리 사물 형태에 정의된 서비스를 상속합니다. 서비스는 실제로 구현 빌딩 블록 관리자 사물 템플릿에 구현됩니다.
다음 다이어그램에서는 빌딩 블록에 대한 필수 엔티티가 추상 및 구현 빌딩 블록으로 분리되는 방식을 보여줍니다.
추상 빌딩 블록과 구현 빌딩 블록으로 분리된 빌딩 블록에 대한 필수 엔티티를 보여주는 다이어그램으로, 다른 엔티티에서 구현되거나 확장되는 엔티티가 포함됩니다.
다이어그램에서 머리가 비어 있고 실선이 있는 화살표()는 엔티티가 화살표가 가리키는 엔티티에서 확장됨을 나타내고, 머리가 비어 있고 점선이 있는 화살표()는 엔티티가 화살표가 가리키는 엔티티를 구현함을 나타냅니다.
필수 엔티티
다음 엔티티는 추상 및 구현 설계 패턴에서 필수입니다.
프로젝트 - 각 빌딩 블록(추상 및 구현)에는 빌딩 블록 엔티티(예: PTC.BuildingBlockPTC.BuildingBlockImpl)가 포함된 ThingWorx 프로젝트 엔티티가 있습니다. 권장되는 이름 규약에서는 빌딩 블록에 속하는 모든 엔티티의 이름에 프로젝트 이름이 포함됩니다.
진입점 - 진입점은 이름, 버전, 종속성 등을 포함하여 설치된 솔루션의 나머지 부분에 대한 빌딩 블록을 식별합니다. 이름이 DeployComponent인 서비스는 빌딩 블록이 ThingWorx 서버에 처음으로 배포될 때 작업을 수행하도록 재정의될 수 있습니다. 추상 빌딩 블록은 자체 진입점 사물 템플릿에 대한 PTC.Base.ComponentEntryPoint_TT 사물 템플릿을 확장합니다(예: PTC.BuildingBlock.EntryPoint_TT). 구현 빌딩 블록은 자체 진입점 사물 템플릿에 대한 PTC.DefaultConfiguration.EntryPoint_TT 사물 템플릿을 확장합니다(예: PTC.BuildingBlockImpl.EntryPoint_TT). 진입점 사물 템플릿의 각 빌딩 블록에 대해 진입점 사물이 작성됩니다(예: 각각 PTC.BuildingBlock.EntryPointPTC.BuildingBlockImpl.EntryPoint).
관리자 - 빌딩 블록 관리자는 빌딩 블록에 대한 주요 서비스 레이어로, 빌딩 블록에 대한 여러 기능을 제공합니다. 첫 번째로, 빌딩 블록을 호출하는 엔티티에 대한 추상화 레이어 역할을 수행합니다. 두 번째로, 메뉴 항목, 포함된 매쉬업 및 둘 이상이 정의된 경우 사용할 관리자를 구성하는 데 사용됩니다.
추상 빌딩 블록에는 PTC.Base.CommonManager_TT에서 확장되는 관리자 사물 템플릿(PTC.BuildingBlock.Manager_TT)이 있어야 합니다. 구현 빌딩 블록에는 추상 빌딩 블록의 관리자 사물 템플릿에서 확장되는 관리자 사물 템플릿(PTC.BuildingBlockImpl.Manager_TT)이 있습니다. 구현 빌딩 블록의 관리자 사물은 구현 빌딩 블록의 관리자 사물 템플릿을 기반으로 작성됩니다.
추상 빌딩 블록의 관리자 사물 템플릿에는 관리 사물 형태(PTC.BuildingBlock.Management_TS)도 구현되어 있습니다. 이 사물 형태에는 컴포넌트에 필요한 모든 서비스가 포함됩니다. 이러한 서비스는 실제 서비스 구현이 상주하는 구현 빌딩 블록 관리자 사물 템플릿에 의해 상속됩니다. PTC에서 개발한 빌딩 블록의 경우 이러한 서비스를 사용자 정의로 재정의할 수 있으므로 솔루션 개발자가 목적에 맞게 기본 서비스를 재정의할 수 있습니다. 자세한 내용은 서비스 사용자 정의를 참조하십시오.
구현 빌딩 블록의 관리자 사물 템플릿은 해당 구현에 필요한 추가 사물 형태를 구현할 수 있습니다. 예를 들어, DPM 솔루션에 있는 많은 구현 빌딩 블록은 PTC.DBConnection.DBManagement_TS 사물 형태를 구현하므로 DPM 데이터베이스에 액세스할 수 있습니다.
선택적 엔티티
다음 다이어그램에서는 추상 및 구현 설계 패턴에 포함할 수 있는 선택적 엔티티를 보여줍니다. 다음 다이어그램에서 PTC.MfgModel 빌딩 블록은 모델, 자산 또는 장비 계층 구조가 있는 빌딩 블록의 예로 사용되며, 이 빌딩 블록의 사물 템플릿은 추상 및 구현 설계 패턴 빌딩 블록에 모델 로직 사물 형태를 구현합니다. 점선 윤관석이 있는 엔티티는 아래에 설명된 특정 용도에 대해 이 패턴에 포함된 선택적 엔티티입니다. 다른 ThingWorx 엔티티도 추상 및 구현 설계 패턴에 포함될 수 있지만 이러한 엔티티에는 특정 의미가 있습니다.
추상 빌딩 블록과 구현 빌딩 블록으로 분리된 빌딩 블록에 대한 필수 엔티티와 선택적 엔티티를 보여주는 다이어그램으로, 다른 엔티티에서 구현되거나 확장되는 엔티티가 포함됩니다.
다이어그램에서 머리가 비어 있고 실선이 있는 화살표()는 엔티티가 화살표가 가리키는 엔티티에서 확장됨을 나타내고, 머리가 비어 있고 점선이 있는 화살표()는 엔티티가 화살표가 가리키는 엔티티를 구현함을 나타냅니다.
다음 선택적 엔티티는 추상 및 구현 설계 패턴에 포함됩니다.
보안 엔티티 - 권한 사용자 그룹을 작성하고 각 빌딩 블록에 대해 서로 다른 권한을 정의하는 데 사용할 수 있습니다. 사용자 역할은 단순히 각 권한 사용자 그룹에 추가되는 또 다른 사용자 그룹입니다.
매쉬업 - 추상 및 구현 설계 패턴을 사용하면 매쉬업을 빌딩 블록 기능의 일부로 추가할 수 있습니다. 이는 마스터 매쉬업에 연결된 주 매쉬업 또는 다른 빌딩 블록에서 사용되는 포함된 매쉬업일 수 있습니다. 빌딩 블록 개발자는 어떤 빌딩 블록에 어떤 기능이 있는지 결정할 수 있습니다.
모델 로직 엔티티 - 모델 로직 사물 형태는 ThingWorx에서 요구하는 대로 조직을 사용하여 장비에 대한 조직 보안을 적용하는 매쉬업 또는 기타 컴포넌트에서 사용됩니다. 이는 사용 사례에서 개별 장비에 대한 표시 유형 제어를 요구하는 경우에 필요합니다. 모델 로직 사물 형태에 포함된 서비스는 장비 계층 구조 엔티티에 적용되며, 빌딩 블록에 대한 관리 사물 형태를 통해 적절한 구성된 관리자로 호출하기 위해 래핑된 서비스를 제공합니다. 모든 관리자는 PTC.BaseManager 사물의 DefaultGlobalManagerConfiguration 구성 테이블에 등록됩니다. 빌딩 블록에 대한 관리자 사물이나 사물 형태(예: PTC.MfgModel.DefaultWorkUnit_TT)를 구현하는 사물 템플릿에 기반한 장비 모델 사물과 같이 PTC.Base.ConfigManagement_TS 사물 형태를 구현하는 모든 엔티티의 ManagerConfiguration 구성 테이블에서 관리자를 구성할 수도 있습니다. 따라서 서로 다른 모델이 서로 다른 관리자를 사용할 수 있습니다. 예를 들어, 두 사이트는 서로 다른 소스에서 데이터를 가져오기 때문에 두 사이트에서 사용하려는 관리자가 서로 다를 수 있습니다.
서비스가 다른 관리자를 참조할 경우, 먼저 서비스를 호출하고 있는 엔티티에서 ManagerConfiguration 테이블을 확인하여 참조된 관리자에 대해 구성된 엔티티가 있는지 확인합니다. 이 테이블에서 엔트리를 찾지 못하면 서비스는 PTC.Base.Manager 사물에서 DefaultGlobalManagerConfiguration 구성 테이블을 확인합니다.
도움이 되셨나요?