1 / 19

Why oBIX?

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.

marci
Download Presentation

Why oBIX?

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Why oBIX? • XML standard • Enterprise friendly protocol • High fidelity

  2. Architecture • Object Model: modeling • XML Syntax: serialization • URLs: naming • REST: fits into web architecture • Contracts: semantics • Extendibility: philosophy • Protocol Bindings: networking

  3. Architecture – Object Model

  4. 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>

  5. Architecture - URIs • Uniform/Universal Resource Identifier • AKA: URLs • Naming for WWW • Relative URLs • Assigning everything with a URL

  6. 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

  7. 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

  8. 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)

  9. 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)

  10. 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

  11. 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?

  12. Standard Contracts • Normalization • Watches • Points • Histories • Alarming

  13. Watches • Subscription • Client makes watch via WatchService • Add/Remove URIs to watch • Client polls server for changes • Leased

  14. 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>

  15. 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>

  16. History • obix:History • History.query • History.rollup

  17. Alarming • obix:Alarm • obix:StatefulAlarm • obix:AckAlarm • obix:AlarmSubject

  18. Java oBIX Toolkit • Open source – Public Domain • Obj API • XML Encoder/Decoder • ObixSession • Obixc • Swing Tool • http://sourceforge.net/projects/obix

  19. More Information • http://obix.org/ • http://sourceforge.net/projects/obix

More Related