Forums

Web services in an embedded environment

Started by Default User August 31, 2007
I work in software research and developement in the aerospace industry.
We're assisting a project where they are interested in looking at web
services in an embedded system. This would most likely be WSDL/XML/SOAP.

While there would be fairly powerful processing to an extent, it's
still a resource-constrained environment, running on an RTOS (I think
VxWorks). In particular they are concerned about dynamic memory (don't
like it).

We're still at the stage of developing the actual requirements for the
services, as well as a notional API.

I'd be interested in either papers on the general subject (particularly
recent ones) or open-source projects that are targeted towards this
sort of application.

I have found some, like this one from John Canosa:

<http://www.embedded.com/9900482?_requestid=1451389>


This message is cross-posted to comp.text.xml and comp.arch.embedded.
If anyone replying feels the need to remove one of the groups, that's
not a problem, I will be monitoring both.





Brian
On Sep 1, 5:49 am, "Default User" <defaultuse...@yahoo.com> wrote:
> I work in software research and developement in the aerospace industry. > We're assisting a project where they are interested in looking at web > services in an embedded system. This would most likely be WSDL/XML/SOAP. > > While there would be fairly powerful processing to an extent, it's > still a resource-constrained environment, running on an RTOS (I think > VxWorks). In particular they are concerned about dynamic memory (don't > like it). > > We're still at the stage of developing the actual requirements for the > services, as well as a notional API. > > I'd be interested in either papers on the general subject (particularly > recent ones) or open-source projects that are targeted towards this > sort of application. > > I have found some, like this one from John Canosa: > > <http://www.embedded.com/9900482?_requestid=1451389> > > This message is cross-posted to comp.text.xml and comp.arch.embedded. > If anyone replying feels the need to remove one of the groups, that's > not a problem, I will be monitoring both. > > Brian
As you pointed that your device will be on RTOS, I think Boa [ http://www.boa.org/0.92/ ] web server should be the good choice. It is a single-task web server so that means very less resources are required which makes it good candidate for embedded systems. WSDL/XML/SOAP are just common ways of information exchange for systems with ample processing and hell memory. IMHO, you got to make your own compact exchange layer(rather SOAP). Sure, XML does make life easier while having a parser on both sides to extract the real information out from request/response and invoking RMI or RPC services. And on the top you can use UPnP layer for service discovery. stack should be like this: 2) UPnP 1) XML 0) Web Server Thats too much abstraction here as you didn't really shared much details. maybe folks might give you better solutions if you can elaborate your requirements. ali
Ali wrote:
>> While there would be fairly powerful processing to an extent, it's >> still a resource-constrained environment, running on an RTOS (I think >> VxWorks). In particular they are concerned about dynamic memory (don't >> like it).
Remember, XML is just a syntax. How you represent the data after it has been parsed is a separate question. Depending on what you're doing, you may not need an in-memory representation at all; you may be able to feed the information parsed out of the XML directly into your application's data structures (sometimes referred to as "data binding"). The simplest way to start in that direction would be to use an efficient SAX (or SAX-like) parser.
> WSDL/XML/SOAP are just common ways of information exchange for systems > with ample processing and hell memory.
Disagree, somewhat. As noted above, memory consumption depends on the data representation you choose much more than the syntax you use to exchange it. And XML parses and serializes pretty rapidly, given decent code -- rapidly enough that the various attempts at "binary XML" have generally proven that the gains available are fairly minimal. Yes, if you have control over both ends of the wire you can certainly create a more compact/efficient representation, and XML does carry some features you may not need and pay some overhead for them (eg Unicode support)... but don't dismiss it out of hand, especially if you intend to expose this wire protocol to others. The overhead drops further if you're willing to constrain yourself to a specific set of messages. IBM's demonstrated that tremendous improvements in parsing performance are available if you know in advance what schema the document will belong to, with further gains if you're willing to insist that the doc have been validated on the sender's end (letting the parser rapidly skip over "boilerplate" and jump directly to the document's content). There are certainly folks putting web services in low-powered embedded boxes -- most cheap routers these days support a simple web GUI, for example. "If it happens, it must be possible." -- () ASCII Ribbon Campaign | Joe Kesselman /\ Stamp out HTML e-mail! | System architexture and kinetic poetry
Ali wrote:

> On Sep 1, 5:49 am, "Default User" <defaultuse...@yahoo.com> wrote: > > I work in software research and developement in the aerospace > > industry. We're assisting a project where they are interested in > > looking at web services in an embedded system. This would most > > likely be WSDL/XML/SOAP.
> As you pointed that your device will be on RTOS, I think Boa [ > http://www.boa.org/0.92/ ] web server should be the good choice. It is > a single-task web server so that means very less resources are > required which makes it good candidate for embedded systems.
Thanks, I'll take a look at that, and think about the other issues you raised. Brian -- If televison's a babysitter, the Internet is a drunk librarian who won't shut up. -- Dorothy Gambrell (http://catandgirl.com)
Joe Kesselman wrote:


> There are certainly folks putting web services in low-powered > embedded boxes -- most cheap routers these days support a simple web > GUI, for example. "If it happens, it must be possible."
Thanks for the input, I'll see what I can find along these lines. Brian