#
Vinci Part #12 – XML-RPC PHP Client CodeGen
by Carlo Kok, May 24th, 2007,
Categories: ROFX, RemObjects
Yesterday I finished the article about XML-RPC in RemObject SDK (which can be found here).
XML-RPC is a Remote Procedure Call specification based on XML, similar to SOAP, but written to be as simple as possible, while still allowing for more complex data structures. As it is simple and easy to use, there are now many implementations for just about any programming language including C, Perl, PHP, Java, Javascript , Python, Delphi and .NET (the latter two are supported by the RemObjects SDK).
The cool new thing in V5 is a Service Builder code generation plug-in that creates .inc files to use from PHP. As XML-RPC doesn’t have any metadata like WSDL has for a SOAP service, the declarations for using XML-RPC services have to be provided. To do this manually, the xmlrpcmsg for every call and the xmlrpcval for every parameter would need to be added by hand, making it much easier to make mistakes.
Check out the article for more info
by Carlo Kok, May 24th, 2007
Posted in ROFX, RemObjects | No Comments »
#
Vinci Part #7 – “Internet Pack” for Delphi
by Carlo Kok, May 4th, 2007,
Categories: Delphi, Free Pascal, Linux, Mac, ROFX, Windows
When we started working on the Super HTTP Channel for Delphi, we soon realized that none of the TCP/IP socket wrappers we currently use were a good idea for the server part of the channel, as Indy, Synapse and BPDX all use one thread per connection – which would amount to 2 thread per client and wouldn’t scale very well.
What we had to do is write our own socket wrapper that would work 100% async, like the .NET code does, and still would scale properly. Our new socket class uses Begin/End pairs for every method that would be blocking and accept a callback as a parameter for when the data was available, the connection accepted or the socket was ready to send data. The actual implementation uses the portable “select” call on 64 sockets at once, keeping the thread usage down quite a lot. On top of that we wrote our own simple Http server class, using only async callbacks.
We didn’t tie the Super HTTP Channel to this socket implementation, however, instead we wrote an abstract implementation and a subclass that implements it based on the async IP code. So it’s always possible to implement it on top of alternative HTTP server implementations.
We’re considering the async socket and http layer to be the first step towards an “Internet Pack for Delphi” – although will be treating is a part of the RemObjects SDK, for now.
by Carlo Kok, May 4th, 2007
Posted in Delphi, Free Pascal, Linux, Mac, ROFX, Windows | No Comments »