Results 1 to 7 of 7

Thread: tripzero's thoughts on the data standard.

  1. #1
    licensed to kill - FKA kev000
    Auto Apps:loading...
    tripzero's Avatar
    Join Date
    Aug 2006
    Location
    16.40618, 120.61106
    Posts
    2,494

    tripzero's thoughts on the data standard.

    I think we've all agreed that the technology of choice should should be restful. Since restful services return xml, i suppose we can say that XML is the data standard. Obviously, the web service should return relevant data for each service, what else would be useful for the client to return? For example, the login service would return a session key:

    Code:
    <?xml stuff... >
    <osdash apiversion="0.1">
      <session>23432ffaafddd32423dd2ff</session>
    </osdash>
    or on a failure:

    Code:
    <?xml stuff... >
    <osdash apiversion="0.1">
      <error>bad username or password</error>
    </osdash>
    Because most of the node names and attributes will be service-specific, like "session" is for the login service, I suppose the stuff that we can standardize is the root elements and associated attributes, maybe error nodes? What else?
    Former author of LinuxICE, nghost, nobdy.
    Current author of Automotive Message Broker (AMB).
    Works on Tizen IVI. Does not represent anyone or anything but himself.

  2. #2
    Admin. Linux loser.
    Auto Apps:loading...
    Bugbyte's Avatar
    Join Date
    Sep 2004
    Location
    Corning, NY
    Posts
    7,359
    Blog Entries
    2
    XML for sure, since I don't think we're contemplating returning lots of data or objects. I'd like to think of the OSDash services as reasonably lightweight from a bandwidth standpoint.

    Encapsulating it in the /osdash tags is what would make it the osdash data standard. Interchanges that involve <osdash></osdash>. Should it *always* return the session ID for security purposes?

    Maybe a good way to define what is in it is to explain what we want it to do. For example, I'd like eventually to be able to load the elements of a skin from a skinning service. Does that mean it has to define things like <button> or <textbox> or image locations or are those more specific to the actual service and consumer of the service?

    Should we have external and internal resources like URL's or file locations or are those more useful on a service by service perspective? Maybe it would be useful to 'point' to an adaptation or configuration file in the standard so that if the client is a mobile phone or headless (Sheeva) that it would use those files for consuming services?
    Quote Originally Posted by ghettocruzer View Post
    I was gung ho on building a PC [until] just recently. However, between my new phone having internet and GPS and all...and this kit...Im starting to have trouble justfiying it haha.
    Want to:
    -Find out about the new iBug iPad install?
    -Find out about carPC's in just 5 minutes? View the Car PC 101 video

  3. #3
    licensed to kill - FKA kev000
    Auto Apps:loading...
    tripzero's Avatar
    Join Date
    Aug 2006
    Location
    16.40618, 120.61106
    Posts
    2,494
    Quote Originally Posted by Bugbyte View Post
    XML for sure, since I don't think we're contemplating returning lots of data or objects. I'd like to think of the OSDash services as reasonably lightweight from a bandwidth standpoint.

    Encapsulating it in the /osdash tags is what would make it the osdash data standard. Interchanges that involve <osdash></osdash>. Should it *always* return the session ID for security purposes?

    Maybe a good way to define what is in it is to explain what we want it to do. For example, I'd like eventually to be able to load the elements of a skin from a skinning service. Does that mean it has to define things like <button> or <textbox> or image locations or are those more specific to the actual service and consumer of the service?
    I think you bring up a good point. Each web service is likely going to be the "standard" that changes. For this reason, we should probably wrap each service in a tag:

    Code:
    <osdash>
      <login api="0.1" >
        <session>1232131231abadedf12</session>
      </login>
    </osdash>
    Also, each webservice will have to define, and hopefully document, its own standard like you are suggesting. For example, <button> <text> aren't generic tags likely to be seen anywhere but the skinning service, so the skinning service would document and define them.

    Should we have external and internal resources like URL's or file locations or are those more useful on a service by service perspective? Maybe it would be useful to 'point' to an adaptation or configuration file in the standard so that if the client is a mobile phone or headless (Sheeva) that it would use those files for consuming services?
    I'm not sure what you mean by this :S. Are you talking about some sort of local config that the client would use to know what services to use and where (url)?
    Former author of LinuxICE, nghost, nobdy.
    Current author of Automotive Message Broker (AMB).
    Works on Tizen IVI. Does not represent anyone or anything but himself.

  4. #4
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    1,783
    Quote Originally Posted by Bugbyte View Post
    XML for sure
    Quote Originally Posted by Bugbyte View Post
    I'd like to think of the OSDash services as reasonably lightweight from a bandwidth standpoint.
    Were those two really next to each other? XML is the most bandwidth intensive transport protocol we could use....but in this case we need the standardization.

    Quote Originally Posted by Bugbyte View Post
    Encapsulating it in the /osdash tags is what would make it the osdash data standard. Interchanges that involve <osdash></osdash>. Should it *always* return the session ID for security purposes?
    You lost me here...did you mean return or send? The only service that should "return" a sessionID is the login service.

    Quote Originally Posted by Bugbyte View Post
    Maybe a good way to define what is in it is to explain what we want it to do. For example, I'd like eventually to be able to load the elements of a skin from a skinning service. Does that mean it has to define things like <button> or <textbox> or image locations or are those more specific to the actual service and consumer of the service?

    Should we have external and internal resources like URL's or file locations or are those more useful on a service by service perspective? Maybe it would be useful to 'point' to an adaptation or configuration file in the standard so that if the client is a mobile phone or headless (Sheeva) that it would use those files for consuming services?
    what kev said


    Quote Originally Posted by kev000 View Post
    I think we've all agreed that the technology of choice should should be restful. Since restful services return xml, i suppose we can say that XML is the data standard. Obviously, the web service should return relevant data for each service, what else would be useful for the client to return? For example, the login service would return a session key:

    Because most of the node names and attributes will be service-specific, like "session" is for the login service, I suppose the stuff that we can standardize is the root elements and associated attributes, maybe error nodes? What else?
    The error node should be standardized across all services. What you have works fine, a single node named error with the description inside. Other then that all you can really standardize is the root node, and that the next element should be the service name with its version as an attribute (although other attributes are optional on a service by service basis).

  5. #5
    Admin. Linux loser.
    Auto Apps:loading...
    Bugbyte's Avatar
    Join Date
    Sep 2004
    Location
    Corning, NY
    Posts
    7,359
    Blog Entries
    2
    Quote Originally Posted by kev000 View Post
    I'm not sure what you mean by this :S. Are you talking about some sort of local config that the client would use to know what services to use and where (url)?
    That's what I'm alluding to. The server may not always be up and running or the connection may not always be available to the server. The client should probably have some local adaptation files that allow it to function when that is the case. Like if there's no connection to the gps location service, should it just throw away the location data when that's the case and only relay it when the connection is restored? Or should it have a secondary location on local storage that it places that information in until it reestablishes contact with the server.

    And vice versa. Maybe there's data that it can get from the service that it doesn't need just yet, but can cache ahead of time in case the connection is lost. If it can't get that info from the service, it can refer to a local copy of the data until the connection is reestablished.

    I don't know if that's consistent with a stateless service or not. Or if I'm making up a problem that won't occur when using these services.

    Also, is it possible that different types of hardware will require different types of information for a client to do the same thing? Like dbus vs. ipc or whatever (I'm way out of my element here) so that you can select how the client does a limited number of things?

    Different question about what kind of data is allowed to be exchanged

    In addition, I don't want to hit the server up with a lot of bandwidth consuming stuff that has nothing to do with the web services themselves. So, for example, if someone comes up with a service that uses a lot of bandwidth, like involving the transfer of files, you would want to enable a web service to *direct* that activity without involving the server itself.

    Different example. Let's say you have a service that checks for traffic problems, does some kind of intelligent processing to build you a customized traffic report and converts the text of the report into an audio file that plays shortly after you start the car. How do you tell the client to download that file and what to do with it after it downloads it?

    Is that something that is service specific or client specific or both? I'd think the service could send a notification to the server and the client could check for it from time to time, like on startup or poll every so often, or maybe even just receive and email of the notice, but it definitely shouldn't be allowed to roll up that file inside a set of <osdash> tags and send it to the server for later retrieval.

    There may be more elegant or straightforward ways to solve this problem or it may not be a problem at all. I was thinking that the client might have some provision for how it handles the transfer of files like music or images both in where it gets them from and where it stores them.
    Quote Originally Posted by ghettocruzer View Post
    I was gung ho on building a PC [until] just recently. However, between my new phone having internet and GPS and all...and this kit...Im starting to have trouble justfiying it haha.
    Want to:
    -Find out about the new iBug iPad install?
    -Find out about carPC's in just 5 minutes? View the Car PC 101 video

  6. #6
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    1,783
    Ah that clears things up... yea some services will require local caching but thats a service specific thing and implemented in each client (for example the linuxICE client may want to use mysql where as the rr client may want to use text files .

    Regarding the whole bandwidth issue yea thats why I've been pushing so hard for a scalable system. The single server concept has been dead for at least ten years now. With multiple mirrors there really isn't an issue with bandwidth intensive services...and file transfer would happen as a raw binary transfer, its not possible to do as a higher level service.

  7. #7
    licensed to kill - FKA kev000
    Auto Apps:loading...
    tripzero's Avatar
    Join Date
    Aug 2006
    Location
    16.40618, 120.61106
    Posts
    2,494
    How the client stores settings and data is really an implementation detail of the client and is slightly out of scope in this discussion. However, it is an important topic and should be discusses in another thread.
    Former author of LinuxICE, nghost, nobdy.
    Current author of Automotive Message Broker (AMB).
    Works on Tizen IVI. Does not represent anyone or anything but himself.

Similar Threads

  1. How to use your VERIZON cell for FREE internet
    By racerboy6996 in forum Wireless Communications
    Replies: 267
    Last Post: 05-30-2010, 07:20 PM
  2. Replies: 7
    Last Post: 04-06-2009, 05:14 PM
  3. Packed data anyone????????
    By jfiliaul in forum Engine Management, OBD-II, Engine Diagnostics, etc.
    Replies: 4
    Last Post: 03-17-2009, 07:30 PM
  4. Capture GPS data at the flip of a switch
    By Mr. Inquisitive in forum GPS
    Replies: 4
    Last Post: 02-02-2005, 07:06 PM
  5. VOICES Traffic Data
    By stevieg in forum V.O.I.C.E.S
    Replies: 85
    Last Post: 05-31-2004, 09:24 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •