First project: logging serial data and remote acquiring.

Hi to all,
I'm new in arduino and I need some advice by you before proceeding to buy the components
I want to realize a board that can acquire data by rs232 (to 40kbit/s) and send through a socket to a remote pc.
I think probably is better to log incoming data ( sd?) and then sending the logged data to the remote point.

I think I need :
-arduino Uno
-sd or microsd shield (Cooking Hacks - Electronic and IoT Kits, tutorials and guides for Makers and Education). In this case i read spi is the faster way to exchange data and this microsd shield has SPI.
-gprs/gps module (SIM908 Arduino GPS/GPRS/GSM Shield -DFRobot) this board appears cheap

Can you give me any suggestion if the configuration is complete and right please?
I have some doubt about speed : logging data on sd is enough respect acquiring speed.

Thanks a lot

You are proposing to use mobile data for network access. Is that the only option available to you? If you have any way to provide direct internet access or, even better' link to the remote machine directly, you should get better and more consistent network performance.

Is 40 Kbps the peak or average data rate? You need to ensure that the output network speed is at least as high as the input data rate, and if it is then the need for local buffering should be minimal. But if your data rate is such that the output could be swamped for short or long periods, then this makes the design more complicated.

Net could be temporarily unavailable, for this reason I prefer to keep data saved on SD...When net will be available, board will send data though slowly. I forgot to say : usually I will have no data but suddenly I could have 8*16bytes and every code repeated a lot of times...My goal is only to get the code once( I dont mind how many times it s read) and after it, sending...
Anyway I'm evaluating to develop the project on Raspberry pi for soem reasons: hardware most powerful, possibility to create the program in different languages, possiblity to use different common hardware...let's see