On Fri, May 23, 2014 at 8:50 AM, Rajkumar Rajaratnam <[email protected]>wrote:
> 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], > Shall we meet around 2 PM today ? Thanks ! > > - 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 > -- 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
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
