WSO2 Local Transport - wso2

I'm interested in understanding a little more about how local transport may aid performance within the WSO2 ESB. I have looked at http://heshans.blogspot.co.uk/2011/06/local-transport-implementation-for-wso2.html which suggests that the Proxy Services can communicate via local transport with the local prefix. However, if a Web Application is also installed on the same ESB, is it possible to use local transport to communicate with the actual Web Service Endpoint? The reason I ask is that I am investigating the differences in JBoss SOA in comparison with WSO2 and would like to understand if there are any performance advantages using JBoss over WSO2 as it appears that JBoss supports InVM transport.
Any help would be much appreciated.
Regards.

The purpose of the local transport is communicate efficiently with the services runs on the same JVM. For instance ESB proxy talking to another proxy service. You can use WSO2 Application Server to deploy web apps, but if you call it from another ESB instance then you cannot use local transport(because there are two jvms).
What you can do is that, you can install the WSO2 Application Server features on WSO2 ESB and then deploy the webapp. In that case you can use local transport between the webapp and esb proxy services etc.

Related

WSO2 API Manager - Exposing services to third parties

We have architecture pattern (Layered DMZ) where:
1. External facing applications are deployed in 3 layered DMZ (DMZ1 for Web Server, DMZ2 for App Server and DMZ3 for Database server)
2. We do not allow DMZ1 directly talking to LAN, however DMZ2, DMZ3 can talk to LAN
WSO2 API Manager will be installed in LAN, the issue is how do we expose services from LAN API store to external world. Which design pattern is best suited for this? I have couple of options
Option 1:
Deploy another instance of API Manager in DMZ1 which 3rd party can access
Deploy set of services in DMZ1 API Manager only for 3rd party access
Have reverse proxy in DMZ2 which talks to LAN server
Option2:
Single instance of API Manager deployed in LAN
Reverse proxy in DMZ1
Forward proxy in DMZ2 (which currently we do not have)
Forward proxy talks to LAN
I remember IBM has virtual/physical Datapower appliance which acts as ab external API gateway, how do we achieve similar design pattern with WSO2?
Many thanks in advance
WSO2 API Manager will be installed in LAN, the issue is how do we expose services from LAN API store to external world
WSO2 API Manager has a component API Gateway. Actually todays there are two ways to do that
Use API Gateway
API Gatway is an instance of API Manager with parameters specifying, that the instance is a gateway, so other modules (key manager, store, publisher) are disabled or not used
We use API Gateway in DMZ. This instace will authenticate and authorize the calling clients. However, the gateway still needs to call KeyManager web services for token validation and the publisher needs to call gateway for API deployment
(KeyManager and publisher are the services in the APIM in LAN)
Using API Micro Gateway
Needs to be deployed as individual modules and are able to validate client's tokens (jwt tokens) even without any connection to the LAN instance
Note: When not using static api keys, but OAuth authentication, then you need to expose a route to the token and revoke service
Resources:
https://docs.wso2.com/m/mobile.action#page/97564467
https://apim.docs.wso2.com/en/latest/Learn/APIGateway/overview-of-the-api-gateway/
https://wso2.com/api-management/api-microgateway/
There are several common deployment patterns recommended by WSO2 for API Manager which can be found below.
https://docs.wso2.com/display/AM260/Deployment+Patterns#DeploymentPatterns-WSO2APIManagerdeploymentpatterns
You can go for pattern #4 or #5. Pattern #5 will keep your total cost down in terms of license fee and infrastructure fee.

WSO2 ESB doesn't have security options for services

I'm trying to deploy this example:
http://wso2.com/library/articles/2012/08/securing-sts-security-token-service-kerberos/
I'm doing in the version of the ESB 4.9.0. The problem I'm facing is that I can't find the security options for the echo proxy service.
Could you help me? Thanks in advance.
Enabling security for services via the UI was removed from ESB 4.9.0. This is removed from other service hosting supported middleware of WSO2 such as Data Services server and Application Server. Now the recommended way of securing the services is via the WSO2 Developer Studio. See the following webinar.
http://wso2.com/library/webinars/2015/12/how-to-secure-your-enterprise-services-with-wso2-esb-4.9/
And also the following documentation.
https://docs.wso2.com/display/ESB490/Applying+Security+to+a+Proxy+Service

It is possible to automatically discover the services hosted on the ESB by the GREG

I’m working with the WSAS, GREG and the ESB of wso2, I have seen a lot of examples of discovering services hosted on the WSAS with the GREG and using the ESB as a client of the GREG, but as a government strategy, I think I should have registered and managed all my services, them it would be useful if I could automatically discover the services hosted in the ESB to, so, I try to do it in the same way as with the WSAS but it didn´t work.
It is possible to automatically discover the services hosted on the ESB by the GREG?
it should work for ESB also
Did you configure ESB DiscoveryProxy at ESB axis2.xml?
[1]https://docs.wso2.org/display/Governance460/WS-Discovery+with+Governance+Registry
[2]http://wso2.com/library/articles/2011/08/rediscover-soa-wso2-carbon-wsdiscovery/

WSO2 Application Server - REST Service, deploy as Application or Service?

If I have some functionality I want to expose via REST in the WSO2 Application Server and it seems that I have two main choices:
Deploy as a JAX-RS Application
Deploy as a Service
When deploying as a service, it appears that I have options for Quality of Service that don't appear to be available for Applications.
Question: If I am creating a REST based functionality from scratch, should I prefer to design as a service rather than as an application, because the service has more flexibility?
In WSO2 Application Server there are two approaches to create RESTfull services.
Create RESTfull service using Axis2, then you should deploy them as "service"
Create JAX-RS spec based service using CXF, then you should deploy them as "JAX-RS" applications.

WSO2 ESB to invoke secured web service deployed on weblogic

How do one invoke a secured SOAP web service deployed on weblogic using WSO2 ESB ? Example's given in the tutorial seems to work only for secured web services deployed on Axis 2 server, using Apache Rampart.
Please guide.
Thanks.
It won't make any difference whether its developed in Axis2 or not. If you want to invoke a secured service through WSO2 ESB you need to attach the corresponding security policy to the end point.If you can share any errors you get with that approach that be helpful to answer better.