Skip to content

claire-wong/ISBM-2.0-Server-Adapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ISBM-2.0-Server-Adapter

This is one of the three-part series of proof-of-concept projects with the primary objective of constructing an interoperable IoT information cluster. The focus is on utilizing non-proprietary Open Industrial Interoperability Ecosystem (OIIE) open standards. Each project within this series explores key facets of building a cohesive and scalable IoT infrastructure, demonstrating the potential of OIIE standards in promoting interoperability in the interconnect world.

image Figure 1. The summary of the IoT demo using OIIE standards. Included in this three-part series are ISBM-Publication-Provider and ISBM-Publication-Consumer, hosted in their respective repositories.

Contents

  1. Objectives
  2. Project Information
  3. Before Running the Program
  4. Useful Links
  5. Quick Reference

Objectives

To create an ISA-95 Message Service Model (ISBM 2.0) messaging adapter that enables all IoT devices to send and receive messages using the ISBM 2.0 interface. None of the devices need to possess specific knowledge or interface for the proprietary message bus. The measured data in the OAGIS BOD message will be structured in CCOM format. The BOD message will be published in an interoperable manner, both at the transport and message levels, providing all necessary information to interpret the data. In this case, Microsoft Azure Bus is employed to internally deliver device messages, confirming the feasibility of transforming a proprietary messaging system to behave in an interoperable manner.

image Figure 2. This project focuses on the ISBM Server Adapter, which transforms the Azure Service Bus to become an OIIE interoperable message system.

Project Information

Version 0.2

This proof-of-concept project implements only the essential interface and features for Publication to support this demo. The demo lacks channel security and only supports a single topic when opening the Subscription Session. It is intended to run solely on a local computer or devices within a local area network.

Utilize the Swashbuckle page included in the ISBM 2.0 Adapter to create your own channel: http://yourlocalhost/swagger. A default channel "/services/general/publication" is included in the distributed database for this demo.

Implemented ISA-95 ISBM 2.0 RESTful Interface

 5.2 Channel Management Service
     5.2.1 Create Channel 
     5.2.4 Delete Channel
     5.2.6 Get Channels
 5.4 Provider Publication Service
     5.4.1 Open Publication Session
     5.4.2 Post Publication
     5.4.4 Close Publication Session  
 5.5 Consumer Publication Service
     5.5.1 Open Subscription Session
     5.5.2 Read Publication
     5.5.3 Remove Publication
     5.5.4 Close Subscription Session

Tools

 1.  Visual Studio 2022 Community
 2.  Microsoft SQL Server Express 2022
 3.  SQL Server Management Studio 19.3
 4.  Microsoft Azure Service Bus
 5.  My brain's limited knowledge lol

Dependencies

 1.  .Net Framework 4.7.2
 2.  Microsoft.ServiveBus v4.0.30319 @
 3.  Microsoft.Azure.ServiceBus v4.0.30319 @
 4.  NewtonSoft v12.0.3 @
 5.  Swashbukle.Core v4.0.30319 @

@ NuGet Packages

Before Running the Program

Make sure configurations are set properly in the Web.config

<configuration>
  <connectionStrings>
    <add name="ISBMAdapter" connectionString="Data Source=YourSQLServer;Initial Catalog=YourDatabase;User ID=YourUserID;Password=YourPassword" providerName="System.Data.SqlClient" />
    <add name="AzureBus" connectionString="YourAzureBusSAS" />
  </connectionStrings>
  1. The ISBMAdapter is the configuration for your SQL Server. Please enter the SQL Server connection string information properly.
  2. The AzureBus configuration is for your Azure Service Bus. Please enter your Primary or Secondary Connection string for your RootManageSharedAccessKey under Shared access policies correctly.

Useful Links

Standard Organizations

  1. OpenO&M
  2. MIMOSA
  3. International Society of Automation
  4. OAGi

Development Tools

  1. Visual Studio 2022
  2. Azure Service Bus Quick Guide
  3. Microsoft® SQL Server® 2022 Express
  4. SQL Server Management Studio (SSMS) 19.3

Quick Reference

  1. OIIE - OpenO&M Open Industrial Interoperability Ecosystem
  2. ISBM - International Society of Automation ISA-95 Message Service Model
  3. CCOM - MIMOSA Common Conceptual Object Model
  4. BOD - OAGIS Business Object Document