Why obix
Download
1 / 19

Why oBIX? - PowerPoint PPT Presentation


  • 115 Views
  • Uploaded on

Why oBIX?. XML standard Enterprise friendly protocol High fidelity. Architecture. Object Model: modeling XML Syntax: serialization URLs: naming REST: fits into web architecture Contracts: semantics Extendibility: philosophy Protocol Bindings: networking.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Why oBIX?' - marci


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Why obix
Why oBIX?

  • XML standard

  • Enterprise friendly protocol

  • High fidelity


Architecture
Architecture

  • Object Model: modeling

  • XML Syntax: serialization

  • URLs: naming

  • REST: fits into web architecture

  • Contracts: semantics

  • Extendibility: philosophy

  • Protocol Bindings: networking



Architecture xml syntax
Architecture – XML Syntax

<obj href="http://myhome/thermostat/">

<objname="spaceTemp"is="obix:RealPoint …">

<real name="value"val="73.1"/>

</obj>

<obj name="setpoint"is="obix:RealPoint …">

<real name="value"val="74"/>

</obj>

<str name="description"val="In Living Room"/>

</obj>


Architecture uris
Architecture - URIs

  • Uniform/Universal Resource Identifier

  • AKA: URLs

  • Naming for WWW

  • Relative URLs

  • Assigning everything with a URL


Architecture rest
Architecture - REST

  • REpresentational State Transfer

  • Identify resources with URIs

  • Access with limited set of verbs:

    • Read - GET

    • Write - PUT

    • Invoke - POST

  • Transfer resources as XML documents

  • Stateless


Architecture contracts
Architecture - Contracts

  • Typing/Semantics

  • Contract = list of URIs to template objects (is attribute)

  • Prototype "inheritance"

  • Mixins - multiple "inheritance"

  • Tagging – Semantic Web

    • Taxonomy: standard contracts

    • Folksonomy: vendor/user contracts


Architecture extendibility
Architecture - Extendibility

  • Embrace vendor specific extensions!

  • Easy to mix together standard and vendor contracts

  • Philosophically like Java/C#:

    • Small fixed grammar (obj model/XML)

    • Standard libraries (spec)

    • Vendor libraries (everything else)


Architecture protocol bindings
Architecture – Protocol Bindings

  • HTTP

    • Read - GET

    • Write - PUT

    • Invoke – POST

  • SOAP

    • Wrap read, write, invoke inside SOAP envelope

    • XML Schema

    • WSDL

  • Security

  • More…

    • Email (SMTP, POP3)

    • Messaging (MQ, JMS)


Human web www
Human Web (WWW)

  • Assign every document a URL

  • Wire documents together with URLs

  • Standard document formats: HTML, GIF, JPEG, SVG

  • Semantics: work in progress

  • Search: Google


M2m web
M2M Web

  • Assign every device an IP address and URL

  • Assign every piece of data and service in a device a URL

  • Wire data together via URLs

  • Standard format: oBIX documents

  • Semantics: oBIX contracts

  • Search: Google?


Standard contracts
Standard Contracts

  • Normalization

  • Watches

  • Points

  • Histories

  • Alarming


Watches
Watches

  • Subscription

  • Client makes watch via WatchService

  • Add/Remove URIs to watch

  • Client polls server for changes

  • Leased


Points point
Points – Point

  • Normalized Points:

    • obix:BoolPoint

    • obix:RealPoint

    • obix:EnumPoint

    • obix:StrPoint

      <obj href="obix:Point">

      <obj name="value"/>

      <obj name="status"is="obix:Status"/>

      <abstime name="timestamp"null="true"/>

      </obj>


Points status
Points - Status

<obj href="obix:Status">

<bool name="overridden"val="false" />

<bool name="disabled"val="false" />

<bool name="fault"val="false" />

<bool name="down"val="false" />

<bool name="inAlarm"val="false" />

<bool name="unackedAlarm"val="false" />

<bool name="historyStart"val="false" />

<bool name="historyEnd"val="false" />

</obj>


History
History

  • obix:History

  • History.query

  • History.rollup


Alarming
Alarming

  • obix:Alarm

  • obix:StatefulAlarm

  • obix:AckAlarm

  • obix:AlarmSubject


Java obix toolkit
Java oBIX Toolkit

  • Open source – Public Domain

  • Obj API

  • XML Encoder/Decoder

  • ObixSession

  • Obixc

  • Swing Tool

  • http://sourceforge.net/projects/obix


More information
More Information

  • http://obix.org/

  • http://sourceforge.net/projects/obix