All,
Ā
On the OpenADE call today, we recognized September 2014 as a key milestone in the deployment of many Green Button Connect My Data implementations and updates. This suggests that we focus on arriving at a usable Green Button Connect My Data test specification coincident with that deployment. We have the beginnings of this specification and should be able to complete this by summer. That should be our goal.
Ā
We had an intriguing discussion on todayās call. Specifically, John Teeter, our Presidential Innovation Fellow (PIF) raised the issue of the structure of URIs for Green Button Connect My Data. By way of background, at the very start of Green Button during the first implementations of GBDMD, implementers felt that there needed to be some clear definition on how the links in the Green Button atom feeds were used. There are two dimensions to this issue ā one that deals with what points to what, and, the second is the composition of the āpointerā.
Ā
The Green Button Download My Data certification tests evaluates the correctness of what points to what based on the GreenButtonAtomLinks.docx working paper on UCAIug (http://osgug.ucaiug.org/sgsystems/OpenADE/Shared%20Documents/Testing%20and%20Certification/GreenButtonTestPlan/referenceMaterial/GreenButtonAtomLinks.docx). For the composition of the pointer, we have examples of how one might build structured URIs.
Ā
We noted on the call that a review of data provided by many utilities providing Green Button DMD files all were using a structured URI as follows:
Ā
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <NS:link rel="self" href="/User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <atom:link href="User/9b6c7063/UsagePoint/01" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/25cd2af5c5f6f693f8f6d62852033843/UsagePoint/01" />
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="RetailCustomer/10/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <link href="RetailCustomer/115973279529374200002937445377/UsagePoint/0" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="RetailCustomer/765786587/UsagePoint/01" />
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="/User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <atom:link href="User/9b6c7063/UsagePoint/01" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="/User/9b6c7064/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <atom:link href="/User/9b6c7063/UsagePoint/01" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="/RetailCustomer/1/UsagePoint/J2753386"/>
ā¢Ā Ā Ā Ā Ā Ā <link href="/v1/User/455/UsagePoint/580" rel="self"></link>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/9e610ca8441264b3d21cad5b2a13d028/UsagePoint/01" />
ā¢Ā Ā Ā Ā Ā Ā <link href="/v1/User/12704625/UsagePoint/4218907" rel="self"></link>
ā¢Ā Ā Ā Ā Ā Ā <link href="/User/4685/UsagePoint/67" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/00e308198d020442995dea12c013f77a/UsagePoint/01" />
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="/User/1564408+15644/UsagePoint/0"/>
Ā
We further noted that the structure of the URI had two main parts (note the part labeled endpoint may be constant for the file and not included in each link):
ā¢Ā Ā Ā Ā Ā Ā URI ::= protocol://hostname:port/datacustodian/espi/1_1/resource/ Ƨ resource endpoint of the server
ā¢Ā Ā Ā Ā Ā Ā /RetailCustomer/{retailCustomerId}/UsagePoint/{usagePointId}/⦠ç structured path to data resource
ā¢Ā Ā Ā Ā Ā Ā /User/{retailCustomerId}/UsagePoint/{usagePointId}/⦠ç structured path to data resource
Ā
The structured path to information is based on the ānavigableā class structure of Green Button data ā UsagePoints have MeterReadings which have IntervalBlocks, and so on.
Ā
On the other hand, it was discussed that URI definitions by themselves are supposed to be āopaqueā on the one hand, but, REST API best practices suggest they be structured. The NAESB standard has it both ways with:
Ā
āSince all URIs are opaque references, there is no mandated form. However, it may be useful to organize them hierarchically, in order to define URIs for the appropriate containers (feeds), and to manage permissions.ā
Ā
All examples in the NAESB specification are structured URIs.
Ā
We finally discussed some pros and cons of the various approaches and considered that there might be four possible outcomes for OpenADE to settle on:
1.Ā Ā Ā No structure, support opaqueness
2.Ā Ā Ā Optional Structure, make structured URIs an optional Function Block
3.Ā Ā Ā Required Structure, make structured URIs a requirement but allow some variability ā e.g. User versus RetailCustomer
4.Ā Ā Ā Single Required Structure ā defined structure based roughly on GreenButtonAtomLinks and Authorization documents
Ā
The consensus of those on the call was 4). However, we thought reaching out for some additional input would be desirable. The notes from the meeting can be found at:
Ā
If we determine that 4) will be the path forward, we will do some combination of producing testable requirements for the Green Button Connect My Data test plan, and, adding some content to the NAESB REQ.21 revision that just started last week.
Ā
Please provide your comments and thoughts.
Ā
Cheers,
Marty
Ā
Dr. Martin J. Burns, Hypertek Inc. for NIST
Technical Champion, Green Button
email: ma...@hypertek.us
Ā
Ā
All,
Ā
On the OpenADE call today, we recognized September 2014 as a key milestone in the deployment of many Green Button Connect My Data implementations and updates. This suggests that we focus on arriving at a usable Green Button Connect My Data test specification coincident with that deployment. We have the beginnings of this specification and should be able to complete this by summer. That should be our goal.
Ā
We had an intriguing discussion on todayās call. Specifically, John Teeter, our Presidential Innovation Fellow (PIF) raised the issue of the structure of URIs for Green Button Connect My Data. By way of background, at the very start of Green Button during the first implementations of GBDMD, implementers felt that there needed to be some clear definition on how the links in the Green Button atom feeds were used. There are two dimensions to this issue ā one that deals with what points to what, and, the second is the composition of the āpointerā.
Ā
The Green Button Download My Data certification tests evaluates the correctness of what points to what based on the GreenButtonAtomLinks.docx working paper on UCAIug (http://osgug.ucaiug.org/sgsystems/OpenADE/Shared%20Documents/Testing%20and%20Certification/GreenButtonTestPlan/referenceMaterial/GreenButtonAtomLinks.docx). For the composition of the pointer, we have examples of how one might build structured URIs.
Ā
We noted on the call that a review of data provided by many utilities providing Green Button DMD files all were using a structured URI as follows:
Ā
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <NS:linkrel="self" href="/User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <atom:linkhref="User/9b6c7063/UsagePoint/01" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="User/25cd2af5c5f6f693f8f6d62852033843/UsagePoint/01" />
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="RetailCustomer/10/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <link href="RetailCustomer/115973279529374200002937445377/UsagePoint/0" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="RetailCustomer/765786587/UsagePoint/01" />
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="/User/9b6c7063/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <atom:linkhref="User/9b6c7063/UsagePoint/01" rel="self"/>
ā¢Ā Ā Ā Ā Ā Ā <link rel="self" href="/User/9b6c7064/UsagePoint/01"/>
ā¢Ā Ā Ā Ā Ā Ā <atom:linkhref="/User/9b6c7063/UsagePoint/01" rel="self"/>