简体   繁体   中英

Better solution for WCF service(s) that talk to 3rd party Java services?

I am in a scenario where I have to integrate with a 3rd party system here at my job that exposes Java-based web services. I can parse the service WSDL definitions and generate proxy classes and interact with them just fine in the .NET world. However, the services aren't very "clean" in the sense that the property names in the Java app's object model are extremely convoluted and the servers that host the Java environment will sometimes go down and, being point-to-point, my client apps don't enjoy it when the URI is not responding. I also wanted to not include the service implementation logic into my web app directly because there is lots of potential for reuse of these Java services since the business often asks for new things that utilize the same data.

So, what I have did a while back was write some "wrapper" WCF services that handle the property mapping and provide our developers a better interface to develop against. However, this solution doesn't feel great because I'd like to implement some routing and some other features and get away from the 1:1 wrapper WCF to Java service. Is there any good way to handle this a little more dynamically using WCF 4 features? I think the biggest hurdle is the fact that I have no access to the Java services for changes and the developers that support that side aren't familiar with much else than Java. Even trying to explain ESO/SOA concepts is normally a lost cause.

Anyone else using WCF as a pseudo service gateway to 3rd party services? If so, how do you handle the mapping of fields from your WCF data objects to the 3rd party service in a more dynamic way? Are you using the WSDL from the 3rd party service to generate binding contracts and proxy classes in your WCF layer?

Thanks. I know this is a very broad question and there is no 100% right or wrong solution. Just looking for some feedback on this architecture. I see a lot of info on a WCF service interacting with other WCF services as a routing service, but not often where WCF routes or acts as a gateway to Java-based services.

Again, here is my current architecture..

.NET client -> WCF service (mapping, property cleanup, and some minor biz logic) -> Java-based web service -> source data (large asset management system)

if you need 3th party integration, ensure service reuse, routing, mapping, etc you need an ESB that will provide you with a lot of features 'out of the box' and you will save time not developing your custom mediator, you may try with WSO2 (open source).

Regards, Jose

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM