Hi Sagara, KasunG,

As part of the R&D work, we tried couple of 3rd party RPC Implementation
libraries with ProtoBuf.

We got our own sample services working.

protobuf-rpc-pro[1] is a best one in terms of features. Notable features
are,

   - TCP connection keep-alive.
   - Bi-directional RPC calls from client to server and server to client.
   - SSL socket layer encryption option.
   - Data Compression option.
   - RPC call cancellation.
   - RPC call timeout.
   - Out-of-Band RPC server replies to client.
   - Non RPC Protocol Buffer messaging for peer to peer communication.
   - Protocol Buffer wire protocol.
   - Semantics for calls handling on TCP connection closure.
   - Pluggable logging facility.
   - Author is very active (His last commit was the day before yesterday)
   - It is available in maven repo.

You can find an architecture diagram of this library here[2]

However, we are going to demonstrate 3 different sample client-sever
applications implemented using 3 different libraries.

We will demonstrate you that, using protobuf-rpc-pro library[1],

   - Multiple services can be exposed at a single server port
   - Multiple clients can access them simultaneously

We would like to have a meeting as early as possible today. If we are okay
with this library, we can go ahead and discuss about architecture.

1. https://code.google.com/p/protobuf-rpc-pro/

2. https://code.google.com/p/protobuf-rpc-pro/wiki/ComponentArchitecture

Thanks.


On Thu, May 22, 2014 at 12:44 PM, Denuwanthi De Silva
<[email protected]>wrote:

> Hi,
>
> Yes, it supports TCP.
> We are currently working on developing a sample with multiple services.
>
> Thanks & Regards,
> Denuwanthi.
>
>
>
> On Thu, May 22, 2014 at 12:21 PM, Sagara Gunathunga <[email protected]>wrote:
>
>>
>>
>>
>> On Thu, May 22, 2014 at 11:50 AM, Kasun Gajasinghe <[email protected]>wrote:
>>
>>> Hi Rajkumar,
>>>
>>> These implementations looks interesting. It's better if we can adapt a
>>> framework like this.
>>>
>>> Thrift has a built-in RPC framework, but the issue there was the need to
>>> have one network port per service. So, make sure the library you are going
>>> to use do not have this type of issues. It might be better if you could
>>> look into the internals of the chosen RPC framework to better understand
>>> the architecture.
>>>
>>> The MIT license is compatible with ASL 2.0. But GPL is not. So, RCFProto
>>> is out of the picture.
>>>
>>> Thanks,
>>> KasunG
>>>
>>>
>>> On Thu, May 22, 2014 at 11:14 AM, Rajkumar Rajaratnam <
>>> [email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> We just went through Protocol Buffers yesterday and got to know some
>>>> more information.
>>>>
>>>> We can define 'RPC Service Interface' in a .proto file and the protocol
>>>> buffer compiler will generate service interface code and stubs in your
>>>> chosen language.
>>>>
>>>> The stub forwards all calls to an RpcChannel, which in turn is an
>>>> abstract interface that you must define yourself in terms of your own RPC
>>>> system. For example, you might implement an RpcChannel which
>>>> serializes the message and sends it to a server via HTTP[1].
>>>>
>>>> Hence, we can define our own RpcChannel.
>>>>
>>>> But, there are number of third party project with specific RPC
>>>> implementations. Some of Java implementations are,
>>>>
>>>>
>>>>    - protobuf-socket-rpc [2]
>>>>
>>>>    Java and Python protobuf rpc implementation using tcp/ip sockets
>>>>    MIT License
>>>>
>>>>    - cxf-protobuf [3]
>>>>
>>>>    Integrate Google's Protocol Buffers and Apache CXF
>>>>    Apache License 2.0
>>>>
>>>>    - protobuf-rpc-pro [4]
>>>>
>>>>    A java ProtocolBuffers RPC implementation featuring bidirectional
>>>>    calls.
>>>>    Apache License 2.0
>>>>
>>>>  It seems this has nice TCP handling capabilities ? do you guys have
>> any working sample ?
>>
>>   BTW we need to ensure whether it can listen on one port and accept
>> requests from multiple services.
>>
>> Thanks !
>>
>>
>>
>>>
>>>>    -
>>>>    - RCFProto [5]
>>>>
>>>>    RPC implementation for Google Protocol Buffers, based on the RCF
>>>>    networking library
>>>>
>>>>    GPL v2, for open source usage.
>>>>    Commercial license, for closed source usage.
>>>>
>>>> WDYT about using these 3rd party libraries? If we can use these, we can
>>>> look into details.
>>>>
>>>> 1. https://developers.google.com/protocol-buffers/docs/proto#services
>>>>
>>>> 2. https://code.google.com/p/protobuf-socket-rpc/
>>>>
>>>> 3. https://code.google.com/p/cxf-protobuf/
>>>>
>>>> 4. https://code.google.com/p/protobuf-rpc-pro/
>>>>
>>>> 5. http://www.deltavsoft.com/RCFProto.html
>>>>
>>>>
>>>> Thanks.
>>>>
>>>> --
>>>> Rajkumar Rajaratnam
>>>> Software Engineer | WSO2, Inc.
>>>>  Mobile +94777568639 | +94783498120
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> *Kasun Gajasinghe*Senior Software Engineer, WSO2 Inc.
>>> email: kasung AT spamfree wso2.com
>>> linked-in: http://lk.linkedin.com/in/gajasinghe
>>> blog: http://kasunbg.org
>>>
>>>
>>>
>>
>>
>>
>> --
>> Sagara Gunathunga
>>
>> Senior Technical Lead; WSO2, Inc.;  http://wso2.com
>> V.P Apache Web Services;    http://ws.apache.org/
>> Linkedin; http://www.linkedin.com/in/ssagara
>> Blog ;  http://ssagara.blogspot.com
>>
>>
>
>
> --
> Denuwanthi De Silva
> Software Engineer;
> WSO2 Inc.; http://wso2.com,
> Email: [email protected]
>
>
>


-- 
Rajkumar Rajaratnam
Software Engineer | WSO2, Inc.
Mobile +94777568639 | +94783498120
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to