Skip to content

Commit 18f39a5

Browse files
committed
updated
1 parent 88549fd commit 18f39a5

6 files changed

+23
-52
lines changed

articles/digital-twins/about-digital-twins.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Overview of Azure Digital Twins | Microsoft Docs
33
description: Learn more about Azure Digital Twins, an Azure IoT solution for spatial intelligence.
44
author: julieseto
55
ms.author: jseto
6-
ms.date: 08/01/2019
6+
ms.date: 09/17/2019
77
ms.topic: overview
88
ms.service: digital-twins
99
services: digital-twins
@@ -41,13 +41,13 @@ Azure Digital Twins has the following key capabilities.
4141

4242
### Spatial intelligence graph
4343

44-
The [*spatial intelligence graph*](./concepts-objectmodel-spatialgraph.md#graph), or *spatial graph*, is a virtual representation of the physical environment. You can use it to model the relationships between people, places, and devices.
44+
The [*spatial intelligence graph*](./concepts-objectmodel-spatialgraph.md#spatial-intelligence-graph), or *spatial graph*, is a virtual representation of the physical environment. You can use it to model the relationships between people, places, and devices.
4545

4646
Consider a smart utility app that involves several electricity usage meters connected across a neighborhood. The smart utility company must accurately monitor and predict electricity usage and billing. Each device and sensor must be modeled with context about the location and the customer that's to be billed. You can use the spatial intelligence graph to model these kinds of complex relationships.
4747

4848
### Digital twin object models
4949

50-
[Digital twin object models](./concepts-objectmodel-spatialgraph.md#model) are predefined device protocols and data schema. They align your solution’s domain-specific needs to accelerate and simplify development.
50+
[Digital twin object models](./concepts-objectmodel-spatialgraph.md#digital-twins-object-models) are predefined device protocols and data schema. They align your solution’s domain-specific needs to accelerate and simplify development.
5151

5252
For example, a room occupancy application might use predefined space types such as campus, building, floor, and room.
5353

@@ -89,9 +89,9 @@ Azure Digital Twins is useful for representing the physical world and its many r
8989

9090
Azure Digital Twins uses Azure IoT Hub to connect the IoT devices and sensors that keep everything up-to-date with the physical world. The following diagram shows how Azure Digital Twins relates to other Azure IoT services.
9191

92-
![Azure Digital Twins is a service built on top of Azure IoT Hub][1]
92+
[![Azure Digital Twins is a service built on top of Azure IoT Hub](media/overview/azure-digital-twins-in-iot-ecosystem.png)](media/overview/azure-digital-twins-in-iot-ecosystem.png#lightbox)
9393

94-
For more information about IoT, see [Azure IoT technologies and solutions](https://docs.microsoft.com/azure/iot-fundamentals/iot-services-and-technologies).
94+
For more information about IoT, see [Azure IoT technologies and solutions](../iot-fundamentals/iot-services-and-technologies.md).
9595

9696
## Next steps
9797

@@ -108,7 +108,4 @@ Look closely at a facilities management application by using Azure Digital Twins
108108
Learn about core Azure Digital Twins concepts:
109109

110110
>[!div class="nextstepaction"]
111-
>[Understand the Digital Twins object model and spatial intelligence graph](./concepts-objectmodel-spatialgraph.md)
112-
113-
<!-- Images -->
114-
[1]: media/overview/azure-digital-twins-in-iot-ecosystem.png
111+
>[Understand the Digital Twins object model and spatial intelligence graph](./concepts-objectmodel-spatialgraph.md)

articles/digital-twins/concepts-device-ingress.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ manager: bertvanhoof
66
ms.service: digital-twins
77
services: digital-twins
88
ms.topic: conceptual
9-
ms.date: 07/29/2019
9+
ms.date: 09/17/2019
1010
ms.author: alinast
1111
---
1212

articles/digital-twins/concepts-events-routing.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ manager: bertvanhoof
66
ms.service: digital-twins
77
services: digital-twins
88
ms.topic: conceptual
9-
ms.date: 07/29/2019
9+
ms.date: 09/17/2019
1010
ms.author: alinast
1111
---
1212

@@ -24,7 +24,7 @@ Azure Digital Twins offers two ways to connect IoT events with other Azure servi
2424

2525
Users can specify one or more egress endpoints to send out events or to forward messages. Events and messages will be sent to the endpoints according to these predefined routing preferences. In other words, users can specify a certain endpoint to receive graph operation events, another to receive device telemetry events, and so on.
2626

27-
![Azure Digital Twins events routing][1]
27+
[![Azure Digital Twins events routing](media/concepts/digital-twins-events-routing.png)](media/concepts/digital-twins-events-routing.png#lightbox)
2828

2929
Routing to Event Hubs maintains the order in which telemetry messages are sent. So they arrive at the endpoint in the same sequence as they were originally received. Event Grid and Service Bus don't guarantee that endpoints will receive events in the same order that they occurred. However, the event schema includes a timestamp that can be used to identify the order after the events arrive at the endpoint.
3030

@@ -61,7 +61,4 @@ Azure Digital Twins currently supports the following **EventTypes** that will be
6161

6262
- To learn about Azure Digital Twins preview limits, see [Public preview service limits](concepts-service-limits.md).
6363

64-
- To try out an Azure Digital Twins sample, see the [quickstart to find available rooms](quickstart-view-occupancy-dotnet.md).
65-
66-
<!-- Images -->
67-
[1]: media/concepts/digital-twins-events-routing.png
64+
- To try out an Azure Digital Twins sample, see the [quickstart to find available rooms](quickstart-view-occupancy-dotnet.md).

articles/digital-twins/concepts-objectmodel-spatialgraph.md

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ manager: bertvanhoof
66
ms.service: digital-twins
77
services: digital-twins
88
ms.topic: conceptual
9-
ms.date: 07/29/2019
9+
ms.date: 09/17/2019
1010
ms.author: alinast
1111
---
1212

@@ -18,9 +18,7 @@ Digital Twins object models describe domain-specific concepts, categories, and p
1818

1919
With Digital Twins object models and an ontology in place, you can populate a _spatial graph_. Spatial graphs are virtual representations of the many relationships between spaces, devices, and people that are relevant to an IoT solution. This diagram shows an example of a spatial graph that uses a smart building's ontology.
2020

21-
![Digital Twins spatial graph building][1]
22-
23-
<a id="model"></a>
21+
[![Digital Twins spatial graph building](media/concepts/digital-twins-spatial-graph-building.png)](media/concepts/digital-twins-spatial-graph-building.png#lightbox)
2422

2523
The spatial graph brings together spaces, devices, sensors, and users. Each is linked together in a way that models the real world. In this sample, venue 43 has four floors, each with many different areas. Users are associated with their workstations and given access to portions of the graph. An administrator has the rights to make changes to the spatial graph, while a visitor has rights to only view certain building data.
2624

@@ -51,8 +49,6 @@ Other categories of objects are:
5149
- **Matchers** are objects that determine which UDFs are executed for a given telemetry message.
5250
- **Endpoints** are the locations where telemetry messages and Digital Twins events can be routed, for example, `Event Hub`, `Service Bus`, and `Event Grid`.
5351

54-
<a id="graph"></a>
55-
5652
## Spatial intelligence graph
5753

5854
Spatial graph is the hierarchical graph of spaces, devices, and people defined in the Digital Twins object model. The spatial graph supports inheritance, filtering, traversing, scalability, and extensibility. You can manage and interact with your spatial graph with a collection of REST APIs.
@@ -84,7 +80,7 @@ https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/swagger
8480

8581
The full URL format appears in this image.
8682

87-
![Digital Twins portal Management API][2]
83+
(![Digital Twins portal Management API](media/concepts/digital-twins-spatial-graph-management-api-url.png)](media/concepts/digital-twins-spatial-graph-management-api-url.png#lightbox)
8884

8985
For more details on how to use spatial intelligence graphs, visit the Azure Digital Twins Management APIs sneak preview.
9086

@@ -101,7 +97,3 @@ All API calls must be authenticated by using [OAuth](https://docs.microsoft.com/
10197
- To learn about device connectivity and how to send telemetry messages to Digital Twins, read [Azure Digital Twins device connectivity and telemetry ingress](concepts-device-ingress.md).
10298

10399
- To learn about Management API limitations and throttles, read [Azure Digital Twins API management and limitations](concepts-service-limits.md).
104-
105-
<!-- Images -->
106-
[1]: media/concepts/digital-twins-spatial-graph-building.png
107-
[2]: media/concepts/digital-twins-spatial-graph-management-api-url.png

articles/digital-twins/concepts-user-defined-functions.md

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ manager: bertvanhoof
66
ms.service: digital-twins
77
services: digital-twins
88
ms.topic: conceptual
9-
ms.date: 07/29/2019
9+
ms.date: 09/17/2019
1010
ms.author: alinast
1111
---
1212

@@ -18,7 +18,7 @@ Azure Digital Twins offers advanced compute capabilities. Developers can define
1818

1919
After devices send telemetry data to Azure Digital Twins, developers can process data in four phases: *validate*, *match*, *compute*, and *dispatch*.
2020

21-
![Azure Digital Twins data processing flow][1]
21+
[![Azure Digital Twins data processing flow](media/concepts/digital-twins-data-processing-flow.png)](media/concepts/digital-twins-data-processing-flow.png#lightbox)
2222

2323
1. The validate phase transforms the incoming telemetry message to a commonly understood [data transfer object](https://docs.microsoft.com/aspnet/web-api/overview/data/using-web-api-with-entity-framework/part-5) format. This phase also executes device and sensor validation.
2424
1. The match phase finds the appropriate user-defined functions to run. Predefined matchers find the user-defined functions based on the device, sensor, and space information from the incoming telemetry message.
@@ -29,9 +29,7 @@ After devices send telemetry data to Azure Digital Twins, developers can process
2929

3030
Data processing in Azure Digital Twins consists of defining three objects: *matchers*, *user-defined functions*, and *role assignments*.
3131

32-
![Azure Digital Twins data processing objects][2]
33-
34-
<div id="matcher"></div>
32+
[![Azure Digital Twins data processing objects](media/concepts/digital-twins-user-defined-functions.png)](media/concepts/digital-twins-user-defined-functions.png#lightbox)
3533

3634
### Matchers
3735

@@ -87,7 +85,7 @@ Matchers define a set of conditions that evaluate what actions take place based
8785
8886
### User-defined functions
8987

90-
A user-defined function is a custom function executed within an isolated Azure Digital Twins environment. User-defined functions have access to raw sensor telemetry message as it gets received. User-defined functions also have access to the spatial graph and dispatcher service. After the user-defined function is registered within a graph, a matcher (detailed [above](#matcher)) must be created to specify when the function is executed. For example, when Azure Digital Twins receives new telemetry from a given sensor, the matched user-defined function can calculate a moving average of the last few sensor readings.
88+
A user-defined function is a custom function executed within an isolated Azure Digital Twins environment. User-defined functions have access to raw sensor telemetry message as it gets received. User-defined functions also have access to the spatial graph and dispatcher service. After the user-defined function is registered within a graph, a matcher (detailed [above](#matchers)) must be created to specify when the function is executed. For example, when Azure Digital Twins receives new telemetry from a given sensor, the matched user-defined function can calculate a moving average of the last few sensor readings.
9189

9290
User-defined functions can be written in JavaScript. Helper methods interact with the graph in the user-defined execution environment. Developers can execute custom snippets of code against sensor telemetry messages. Examples include:
9391

@@ -98,15 +96,12 @@ User-defined functions can be written in JavaScript. Helper methods interact wit
9896

9997
For more information, see [How to use user-defined functions](./how-to-user-defined-functions.md).
10098

101-
10299
#### Examples
103100

104101
The [GitHub repo for the Digital Twins C# sample](https://github.com/Azure-Samples/digital-twins-samples-csharp/) contains a few examples of the user-defined functions:
105102
- [This function](https://github.com/Azure-Samples/digital-twins-samples-csharp/blob/master/occupancy-quickstart/src/actions/userDefinedFunctions/availabilityForTutorial.js) looks for carbon dioxide, motion, and temperature values to determine whether a room is available with these values in range. The [tutorials for Digital Twins](tutorial-facilities-udf.md) explore this function in more details.
106103
- [This function](https://github.com/Azure-Samples/digital-twins-samples-csharp/blob/master/occupancy-quickstart/src/actions/userDefinedFunctions/multiplemotionsensors.js) looks for data from multiple motion sensors, and determines that the space is available if none of them detect any motion. You can easily replace the user-defined function used in either the [quickstart](quickstart-view-occupancy-dotnet.md), or the [tutorials](tutorial-facilities-setup.md), by making the changes mentioned in the comments section of the file.
107104

108-
109-
110105
### Role assignment
111106

112107
A user-defined function's actions are subject to Azure Digital Twins [role-based access control](./security-role-based-access-control.md) to secure data within the service. Role assignments define which user-defined functions have the proper permissions to interact with the spatial graph and its entities. For example, a user-defined function might have the ability and permission to *CREATE*, *READ*, *UPDATE*, or *DELETE* graph data under a given space. A user-defined function's level of access is checked when the user-defined function asks the graph for data or attempts an action. For more information, see [Role-based access control](./security-create-manage-role-assignments.md).
@@ -120,7 +115,3 @@ It's possible for a matcher to trigger a user-defined function that has no role
120115
- To learn more about how to create matchers, user-defined functions, and role assignments, read [Guide for using user-defined functions](./how-to-user-defined-functions.md).
121116

122117
- Review the [user-defined function client library reference documentation](./reference-user-defined-functions-client-library.md).
123-
124-
<!-- Images -->
125-
[1]: media/concepts/digital-twins-data-processing-flow.png
126-
[2]: media/concepts/digital-twins-user-defined-functions.png

articles/digital-twins/tutorial-facilities-setup.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: alinamstanciu
66
ms.custom: seodec18
77
ms.service: digital-twins
88
ms.topic: tutorial
9-
ms.date: 08/16/2019
9+
ms.date: 09/17/2019
1010
ms.author: alinast
1111
#Customer intent: As an Azure IoT developer, I want to walk through a sample application to learn how to use the features of Digital Twins to create a spatially aware intelligent IoT solution.
1212
---
@@ -39,16 +39,12 @@ These tutorials use and modify the same samples that the [quickstart to find ava
3939

4040
- [Visual Studio Code](https://code.visualstudio.com/) to explore the sample code.
4141

42-
<a id="deploy"></a>
43-
4442
## Deploy Digital Twins
4543

4644
Use the steps in this section to create a new instance of the Azure Digital Twins service. Only one instance can be created per subscription. Skip to the next section if you already have one running.
4745

4846
[!INCLUDE [create-digital-twins-portal](../../includes/digital-twins-create-portal.md)]
4947

50-
<a id="permissions"></a>
51-
5248
## Grant permissions to your app
5349

5450
Digital Twins uses [Azure Active Directory](../active-directory/fundamentals/active-directory-whatis.md) (Azure AD) to control [read/write access](../active-directory/develop/v1-permissions-and-consent.md) to the service. Any application that needs to connect with your Digital Twins instance must be registered with Azure AD. The steps in this section show how to register your sample app.
@@ -72,7 +68,7 @@ If you already have the samples downloaded for the [quickstart to find available
7268

7369
In the extracted sample folder, open the file **digital-twins-samples-csharp\digital-twins-samples.code-workspace** in Visual Studio Code. It contains two projects:
7470

75-
* You can use the provisioning sample **occupancy-quickstart** to configure and provision a [spatial intelligence graph](concepts-objectmodel-spatialgraph.md#graph). This graph is the digitized image of your physical spaces and the resources in them. It uses an [object model](concepts-objectmodel-spatialgraph.md#model), which defines objects for a smart building. For a complete list of Digital Twins objects and REST APIs, visit [this REST API documentation](https://docs.westcentralus.azuresmartspaces.net/management/swagger) or the Management API URL that was created for [your instance](#deploy).
71+
* You can use the provisioning sample **occupancy-quickstart** to configure and provision a [spatial intelligence graph](concepts-objectmodel-spatialgraph.md#digital-twins-object-models). This graph is the digitized image of your physical spaces and the resources in them. It uses an [object model](concepts-objectmodel-spatialgraph.md#digital-twins-object-models), which defines objects for a smart building. For a complete list of Digital Twins objects and REST APIs, visit [this REST API documentation](https://docs.westcentralus.azuresmartspaces.net/management/swagger) or the Management API URL that was created for [your instance](#deploy-digital-twins).
7672

7773
To explore the sample to see how it communicates with your Digital Twins instance, you can start with the **src\actions** folder. The files in this folder implement the commands that you'll use in these tutorials:
7874
- The **provisionSample.cs** file shows how to provision your spatial graph.
@@ -97,18 +93,16 @@ In the extracted sample folder, open the file **digital-twins-samples-csharp\dig
9793
```
9894
9995
1. In Visual Studio Code, open the [appSettings.json](https://github.com/Azure-Samples/digital-twins-samples-csharp/blob/master/occupancy-quickstart/src/appSettings.json) file in the **occupancy-quickstart** project. Update the following values:
100-
* **ClientId**: Enter the application ID of your Azure AD app registration. You noted this ID in the section where you [set app permissions](#permissions).
101-
* **Tenant**: Enter the directory ID of your [Azure AD tenant](https://docs.microsoft.com/azure/active-directory/develop/quickstart-create-new-tenant). You also noted this ID in the section where you [set app permissions](#permissions).
102-
* **BaseUrl**: Enter the URL of your Digital Twins instance. To get this URL, replace the placeholders in this URL with values for your instance: `https://yourDigitalTwinsName.yourLocation.azuresmartspaces.net/management/api/v1.0/`. You can also get this URL by modifying the Management API URL from [the deployment section](#deploy). Replace **swagger/** with **api/v1.0/**.
96+
* **ClientId**: Enter the application ID of your Azure AD app registration. You noted this ID in the section where you [set app permissions](#grant-permissions-to-your-app).
97+
* **Tenant**: Enter the directory ID of your [Azure AD tenant](https://docs.microsoft.com/azure/active-directory/develop/quickstart-create-new-tenant). You also noted this ID in the section where you [set app permissions](#grant-permissions-to-your-app).
98+
* **BaseUrl**: Enter the URL of your Digital Twins instance. To get this URL, replace the placeholders in this URL with values for your instance: `https://yourDigitalTwinsName.yourLocation.azuresmartspaces.net/management/api/v1.0/`. You can also get this URL by modifying the Management API URL from [the deployment section](#deploy-digital-twins). Replace **swagger/** with **api/v1.0/**.
10399
104100
1. See a list of Digital Twins features that you can explore by using the sample. Run the following command:
105101
106102
```cmd/sh
107103
dotnet run
108104
```
109105
110-
<a id="provision-spaces"></a>
111-
112106
## Understand the provisioning process
113107
114108
This section shows how the sample provisions a spatial graph of a building.
@@ -180,4 +174,4 @@ If you want to stop exploring Azure Digital Twins at this point, feel free to de
180174

181175
To learn how to implement a custom logic to monitor conditions in your sample building, go to the next tutorial in the series:
182176
> [!div class="nextstepaction"]
183-
> [Tutorial: Provision your building and monitor working conditions](tutorial-facilities-udf.md)
177+
> [Tutorial: Provision your building and monitor working conditions](tutorial-facilities-udf.md)

0 commit comments

Comments
 (0)