Dijital ikizler ve ikiz grafı

Bu makalede, Azure Digital Twins bağlamında dijital ikizlerin ne olduğu ve aralarındaki ilişkilerin nasıl ikiz grafı oluşturabileceği açıklanmaktadır. Azure Digital Twins çözümünde ortamınızdaki varlıklar dijital ikizler tarafından temsil edilir. Dijital ikiz, özel tanımlı modellerden birinin örneğidir. İkiz grafı oluşturmak için ilişkiler aracılığıyla diğer dijital ikizlere bağlanabilir: Bu ikiz grafı tüm ortamınızın gösterimidir.

Bahşiş

"Azure Digital Twins", bu Azure hizmetini bir bütün olarak ifade eder. "Dijital ikizler" veya yalnızca "ikizler", hizmet örneğinizdeki tek tek ikiz düğümlerini ifade eder.

Digital Twins

Azure Digital Twins örneğinizde dijital ikiz oluşturabilmeniz için önce hizmete bir model yüklemeniz gerekir. Model, belirli bir ikizin sahip olabileceği özellikler ve ilişkiler kümesini ve diğer özellikleri açıklar. Modelde tanımlanan bilgi türleri için bkz . Özel modeller.

Model oluşturup karşıya yükledikten sonra istemci uygulamanız bu tür bir örnek oluşturabilir. Bu örnek bir dijital ikizdir. Örneğin, floor modelini oluşturduktan sonra, bu türü kullanan bir veya birkaç dijital ikiz oluşturabilirsiniz (FloorFloor adlı Floor türünde bir ikiz, Floor2 olarak adlandırılan başka bir ikiz vb.).

Dekont

Azure Digital Twins'deki dijital ikizler, IoT Hub'daki cihaz ikizlerinden farklıdır. IoT Hub cihaz ikizleri genellikle cihazın kendi yönlerini ve özelliklerini açıklamaya odaklanırken, Azure Digital Twins'deki ikizler bir cihaz veya birçok ilgili cihaz hakkında kullanıcı tanımlı içgörüleri depolayan daha kavramsal gösterimlerdir.

IoT Hub'daki cihazlar, hizmetler arasında cihazınızı temsil eden uçtan uca bir çözümün parçası olarak Azure Digital Twins'e bağlanabilir.

İlişkiler: dijital ikizlerin grafiği

İkizler, ilişkilerine göre bir ikiz grafiğine bağlanır. bir ikizin sahip olabileceği ilişkiler, modelinin bir parçası olarak tanımlanır.

Örneğin, model Floor, Room türünde ikizleri hedefleyen bir contains ilişki tanımlayabilir. Bu tanım ile Azure Digital Twins, herhangi bir Floor ikizinden herhangi bir Oda ikizine (Room alt türlerindeki ikizler dahil) ilişkiler oluşturmanıza contains olanak sağlar.

Bu işlemin sonucu, bir grafikteki kenarlar (ilişkileri) aracılığıyla bağlanan bir düğüm kümesidir (dijital ikizler).

Görselleştirme

Azure Digital Twins Gezgini , Azure Digital Twins grafınızdaki verileri keşfetmeye yönelik görsel bir araçtır. Modellerinizi, ikizlerinizi ve ilişkilerinizi görüntülemek, sorgulamak ve düzenlemek için gezgini kullanabilirsiniz.

Azure Digital Twins Gezgini aracı hakkında bilgi edinmek için bkz . Azure Digital Twins Gezgini. Özelliklerini kullanma hakkında ayrıntılı adımlar için bkz . Azure Digital Twins Gezgini'ni kullanma.

Görselleştirme şöyle görünür:

Screenshot of Azure Digital Twins Explorer showing sample models and twins.

API'lerle oluşturma

Bu bölümde, bir istemci uygulamasından dijital ikizler ve ilişkiler oluşturmanın nasıl göründüğü gösterilir. Bu kavramların her birinde neler olduğuna ilişkin daha fazla bağlam sağlamak için DigitalTwins API'lerini kullanan .NET SDK örneklerini içerir.

Dijital ikizleri oluşturma

Aşağıda, örnek oluşturma sırasında tanımlanan room türünde bir ikiz örneği oluşturmak için DigitalTwins API'lerini kullanan bir twinId istemci kodu parçacığı yer almaktadır.

Bir ikiz oluşturulduğunda özelliklerini başlatabilir veya daha sonra ayarlayabilirsiniz. Başlatılan özelliklere sahip bir ikiz oluşturmak için gerekli başlatma değerlerini sağlayan bir JSON belgesi oluşturun.

// Define a custom model type for the twin to be created

internal class CustomDigitalTwin
{
    [JsonPropertyName(DigitalTwinsJsonPropertyNames.DigitalTwinId)]
    public string Id { get; set; }

    [JsonPropertyName(DigitalTwinsJsonPropertyNames.DigitalTwinETag)]
    public string ETag { get; set; }

    [JsonPropertyName("temperature")]
    public double Temperature { get; set; }

    [JsonPropertyName("humidity")]
    public double Humidity{ get; set; }
}

// Initialize properties and create the twin
public class TwinOperationsCreateTwin
{
    public async Task CreateTwinAsync(DigitalTwinsClient client)
    {
        // Initialize the twin properties
        var myTwin = new CustomDigitalTwin
        {
            Temperature = 25.0,
            Humidity = 50.0,
        };

        // Create the twin
        const string twinId = "<twin-ID>";
        Response<CustomDigitalTwin> response = await client.CreateOrReplaceDigitalTwinAsync(twinId, myTwin);
        Console.WriteLine($"Temperature value: {response.Value.Temperature}");
    }
}

Ayrıca, bir sözlük kullanmaya alternatif olarak, özellik alanlarını daha doğrudan bir "ikiz" nesnesinde depolamak için adlı BasicDigitalTwin bir yardımcı sınıfı da kullanabilirsiniz. Yardımcı sınıfı ve kullanım örnekleri hakkında daha fazla bilgi için bkz . Dijital ikiz oluşturma.

Dekont

İkiz özellikleri isteğe bağlı olarak değerlendirilir ve bu nedenle başlatılması gerekmez, ancak ikiz oluşturulduğunda ikiz üzerindeki bileşenlerin ayarlanması gerekir. Bunlar boş nesneler olabilir, ancak bileşenlerin kendileri mevcut olmalıdır.

İlişki oluşturma

Bir dijital ikizden ("kaynak" ikiz) başka bir dijital ikize ("hedef" ikiz) ilişki oluşturmak için DigitalTwins API'lerini kullanan bazı örnek istemci kodu aşağıda verilmiştir.

public async Task CreateRelationship(DigitalTwinsClient client)
{
    var rel = new BasicRelationship
    {
        TargetId = "myTargetTwin",
        Name = "contains", // a relationship with this name must be defined in the model
        // Initialize properties
        Properties =
        {
            { "active", true },
        },
    };
    await client.CreateOrReplaceRelationshipAsync("mySourceTwin", "rel001", rel);
}

İşleri İçeri Aktar API'siyle toplu olarak ikizler ve ilişkiler oluşturma

İşleri İçeri Aktar API'sini kullanarak tek bir API çağrısında birçok ikiz ve ilişki yükleyebilirsiniz. Bu API ile oluşturulan ikizler ve ilişkiler isteğe bağlı olarak özelliklerinin başlatılmasını içerebilir. Bu API'yi kullanan ayrıntılı yönergeler ve örnekler için bkz . ikizler ve ilişkiler için toplu içeri aktarma yönergeleri.

Grafik öğelerini silme

Belirli ikizleri ve ilişkileri silmek için DigitalTwins Delete ve DigitalTwins DeleteRelationship API'lerini (CLI komutları ve SDK çağrıları olarak da kullanılabilir) kullanın.

Bir örnekteki tüm modelleri, ikizleri ve ilişkileri aynı anda silmek için İşleri Sil API'sini kullanın.

Grafik öğelerinin JSON gösterimleri

Dijital ikiz verileri ve ilişki verileri JSON biçiminde depolanır; yani Azure Digital Twins örneğinizdeki ikiz grafiğini sorguladığınızda, sonuç dijital ikizlerin ve oluşturduğunuz ilişkilerin JSON gösterimi olur.

Dijital ikiz JSON biçimi

Bir JSON nesnesi olarak gösterildiğinde, dijital ikiz aşağıdaki alanları görüntüler:

Alan adı Açıklama
$dtId Dijital ikizin kimliğini temsil eden kullanıcı tarafından sağlanan bir dize
$etag Web sunucusu tarafından atanan standart HTTP alanı
$metadata.$model Bu dijital ikizi karakterize eden model arabiriminin kimliği
$metadata.<property-name> Dijital ikizin özellikleri hakkında diğer meta veri bilgileri
$metadata.<property-name>.lastUpdateTime Özellik güncelleştirme iletisinin Azure Digital Twins tarafından işlendiği tarih/saat
$metadata.<property-name>.sourceTime Özellik güncelleştirmesinin gerçek dünyada gözlemlendiği zaman damgasını temsil eden isteğe bağlı, yazılabilir bir özellik. Bu özellik yalnızca Azure Digital Twins API'lerinin/SDK'larının 2022-05-31 sürümü kullanılarak yazılabilir ve değerin ISO 8601 tarih ve saat biçimine uygun olması gerekir. Bu özelliği güncelleştirme hakkında daha fazla bilgi için bkz . Özelliğin sourceTime değerini güncelleştirme.
<property-name> JSONstring(, sayı türü veya nesne) içindeki bir özelliğin değeri
$relationships İlişkiler koleksiyonunun yolunun URL'si. Dijital ikizin giden ilişki kenarları yoksa bu alan yoktur.
<component-name> Kök nesneninkine benzer şekilde bileşenin özellik değerlerini ve meta verilerini içeren bir JSON nesnesi. Bu nesne, bileşenin özellikleri olmasa bile var olur.
<component-name>.$metadata Kök düzeyine benzer şekilde bileşenin meta veri bilgileri $metadata
<component-name>.<property-name> Bileşenin JSON'daki özelliğinin değeri (string, sayı türü veya nesne)

Aşağıda JSON nesnesi olarak biçimlendirilmiş bir dijital ikiz örneği verilmiştir. Bu ikiz Nem ve Sıcaklık olmak üzere iki özelliğe ve Thermostat adlı bir bileşene sahiptir.

{
    "$dtId": "myRoomID",
    "$etag": "W/\"8e6d3e89-1166-4a1d-9a99-8accd8fef43f\"",
    "$metadata": {
        "$model": "dtmi:example:Room23;1",
        "Humidity": {
          "lastUpdateTime": "2021-11-30T18:47:53.7648958Z"
        },
        "Temperature": {
          "lastUpdateTime": "2021-11-30T18:47:53.7648958Z"
        }
    },
    "Humidity": 55,
    "Temperature": 35,
    "Thermostat": {
        "$metadata": {}
    }

İlişki JSON biçimi

JSON nesnesi olarak temsil edildiğinde, dijital ikizden gelen bir ilişki aşağıdaki alanları görüntüler:

Alan adı Açıklama
$relationshipId Bu ilişkinin kimliğini temsil eden kullanıcı tarafından sağlanan bir dize. Bu dize, kaynak dijital ikiz bağlamında benzersizdir ve bu sourceId + relationshipId da Azure Digital Twins örneği bağlamında benzersiz olduğu anlamına gelir.
$etag Web sunucusu tarafından atanan standart HTTP alanı
$sourceId Kaynak dijital ikizin kimliği
$targetId Hedef dijital ikizin kimliği
$relationshipName İlişkinin adı
<property-name> [İsteğe bağlı] JSON (string, sayı türü veya nesne) içinde bu ilişkinin bir özelliğinin değeri

JSON nesnesi olarak biçimlendirilmiş bir ilişki örneği aşağıda verilmiştir:

{
  "$relationshipId": "relationship-01",
  "$etag": "W/\"506e8391-2b21-4ac9-bca3-53e6620f6a90\"",
  "$sourceId": "GroundFloor",
  "$targetId": "Cafe",
  "$relationshipName": "contains",
  "startDate": "2020-02-04"
}

Sonraki adımlar

Azure Digital Twin API'leri ile grafik öğelerini yönetmeyi öğrenin:

Alternatif olarak, bilgi için Azure Digital Twins ikiz grafını sorgulama hakkında bilgi edinin: