2010-06-28 20 views
5

Ho recentemente avviato un nuovo progetto di sviluppo Web per un dispositivo incorporato e ho voluto sollecitare alcune raccomandazioni per le tecnologie da utilizzare. Il dispositivo servirà pagine HTML che includono il codice AJAX per recuperare i dati da un server JSON. Utilizziamo provvisoriamente Cherokee come server web, sebbene non siamo legati ad esso.Tecnologie Web per un server incorporato

Attualmente, sto considerando le seguenti tecnologie:

  • scrivere tutto in PHP. So che è grande, lento e gonfio, ma ho circa 10 MB disponibili per l'interfaccia web (molto per un sistema embedded), e non vedremo molto traffico su nessuno di questi dispositivi. Tuttavia, deve sembrare reattivo per gli utenti (le pagine dovrebbero essere caricate in meno di un secondo).

  • FastCGI + un programma C - Stiamo utilizzando un database in memoria, in modo che il programma C possa interagire con il database direttamente tramite l'API. Ciò avrebbe prestazioni molto migliori di PHP, ma i tempi di sviluppo e l'affidabilità sono una preoccupazione poiché C non è molto adatto allo sviluppo web.

  • Lua + Kepler - Questo sembra un bel compromesso tra prestazioni e tempi di sviluppo. Tuttavia, non ho mai lavorato con Lua, quindi non sono sicuro di come implementarlo in un progetto web incorporato. Sono anche incerto su come si integri bene con il server web Cherokee.

Quindi qualsiasi opinione o esperienza passata con le tecnologie sopra indicate? Eventuali altri che dovrei includere nell'elenco?

Grazie, Alex

risposta

9

Quando ero in questa zona, ho usato Lua e un semplice corridore FastCGI (Luaetta [perché sono sicuro che l'ultima fonte sarebbe disponibile se hai chiesto al ragazzo], anche se sono anche sicuro che non è l'unico uno, e ovviamente c'è Keplero), generato da lighttpd.

Ha funzionato abbastanza bene su un lettore multimediale incorporato ed è stato utilizzato per accedere da remoto ai contenuti e controllare il dispositivo. Anche se non lo mantieni più, puoi trovare ulteriori informazioni al riguardo a http://matthewwild.co.uk/projects/wooble. Se pensi che la fonte possa aiutarti a convincermi, è attualmente disponibile solo tramite un gestore di pacchetti, ma posso correggerlo data la motivazione.

Un altro progetto (ancora Lua) in questa area è LuCI. Questi ragazzi si dedicano a creare un'interfaccia web per i dispositivi embedded (in particolare i router) e hanno prodotto un buon framework con molte librerie di supporto orientate verso quel tipo di sistema.

Non mi preoccuperei di non conoscere Lua.Se conosci una lingua, puoi prendere Lua in un giorno o due, il manuale documenta l'intera lingua ed è piuttosto breve.

+0

Grazie per l'incoraggiamento. Ora ho Lua che lavora con la mia installazione desktop Cherokee, ma sono un po 'persa su come ottenere WSAPI/Kepler in corso (il sito Web non è nemmeno molto chiaro su cosa sia esattamente). – okalex

0

ne dite di guardare HipHop, di Facebook PHP compilatore?

http://wiki.github.com/facebook/hiphop-php/

In questo modo è possibile scrivere il codice in PHP e in modo efficace compilarlo in C++.

+0

Ero molto entusiasta dell'HipHop quando l'ho letto per la prima volta, ma mi è sfuggito rapidamente. Un'idea interessante e sicuramente degna di considerazione. L'hai mai usato con successo in un progetto? – okalex

+0

@Alex. No, non l'ho fatto, ma è sul mio radar per un possibile utilizzo in un paio di progetti. Non ho idea se sia adatto per l'uso come server web incorporato, ma vale la pena guardare. –

-1

ASP.NET. Supponendo che non ti interesserebbe Embedded Windows Server 2008, potresti comunque sfruttare ASP.NET incorporando Mono into Cherokee. È possibile sfruttare Visual Studio come ambiente di sviluppo RAD e utilizzare elementi come ASP.NET MVC 2. Anche molti controlli utente di terze parti "funzionano" con Mono (Telerik Announces Support for their ASP.NET controls on Mono!).

+0

Grazie per la rapida risposta, ma questo sarebbe esagerato per le nostre esigenze. L'applicazione che sto creando è un'interfaccia utente abbastanza semplice per monitorare e controllare l'hardware. Su una nota semi-correlata, trovo sconcertante che Windows Embedded Server richieda un minimo di CPU a 1,4 GHz, 512 MB di RAM e 10 GB di spazio su disco :) – okalex

+0

Ho pensato che sarebbe probabilmente eccessivo, ma non ho potuto resistere. E sì, la parte "Embedded" nella maggior parte degli Embedded di Windows è in realtà solo correlata al singolo scopo e al costo ridotto della licenza. Tuttavia, le riduzioni di costo riguardano ciò che ci si aspetterebbe. :-D –

Problemi correlati