How compatible wso2 DSS for application development? - wso2

How compatible WSO2 DSS for application development?
It means, we need to write all of our transaction (insert, update, delete, select) in the DSS.
There are any pros / cons?
I'm not sure, but some of big query takes long time over the web service.
Any suggestion or case study for application development.
BR,
Eba

WSO2 Dss is very flexible and have enough features for you to use it for app development. You can expose all your data services ops(select,update,delete,insert and any complex data base stored procedures) thru wso2 DS, and invoke them in a light weight manner from your apps. i.e You can you can expose each such operation as SOAP/REST. In your case, exposing them via REST is the way to go. If you want you can expose a set of ops as a group and etc. There are quite a few such useful features in DSS you can find as a app developer.
THis is the wiki doc for WSO2 DSS https://docs.wso2.org/display/dss311/WSO2+Data+Services+Server+Documentation.
Here is how to expose data services as REST resources
https://docs.wso2.org/display/DSS311/Exposing+Data+as+REST+Resources

Related

How to implement Edge computing using WSO2

I am currently running WSO2 Analytics on a windows server but I want implement the analysing part somehow that a client can connect to the server and do some processing like visualization on its own rather than all processing being done on the server. Is this something possible on WSO2 platform?
Thanks
You can setup database you want ( see the documentation ). For production usage I woudn't even recomment using the bundled H2 database. WSO2 analytics supports number of databases by default, I believe Oracle is one of them.
As stated in the comments - you can create a client or service which reads the data from the database and displays them its own way.
most challenging part for me is that how the client uses the information from the database?
This is already on your own (outside scope of this question). You've asked if your client can access the analytics (result) data - yes you can. How to do that is up to you. (depending what the client is, ..)
For example at our client they are building data APIs which are directly consumable by different frontend libraries creating nicer charts and reports.

What is the official way to customize, extend and move the API Publisher and API Store out of the WSO2 API Manager server?

WSO2 reached out to me in Twitter and told me to put a question here if I had one.
My client wants to customize (for now it only means changing the layout of things) the API Publisher and API Store from a WSO2 API Manager 2.0.0.
Since I know that inevitably we will get to the point where the changes are going to be profound and require external libraries for new functionality (we have a library of AngularJS code which I know they will want to use), I want to know:
What is the official, recommended way to customize and extend the web applications for the API Store and the API Publisher? I need to have version control, unit testing, etc.
Is there a way to move these web apps out of the APIM server and into their own server? All our UI applications are hosted in a specific server.
Realistically, how much change can I introduce before make making an awful mess?
Thank you.
You can create new themes and subthemes for API publisher and store UIs. You can refer docs here.
Please note that publisher and store apps are written in Jaggery. You need a Jaggery server to host Jaggery apps.
If you want to add more functionality to the UI, you can either write jaggery, or you'll have to write your own web application (maybe with AngularJS or any other). In that case, you can use APIM REST APIs to talk to APIM backend.

WSO2 API Manager Mashup

Is there any way to create a mash up service using WSO2 API Manager? My goal is to create two Web services, then generate some data on which business logic is applied. This final data then needs to be fed into a third Web service.
I think you can use Apache Camel to create a mashup API easily.

What is the best practices for WSO2 ESB in perticular XSLT transformations

I am working on WSO2 ESB 4.0.3 on MAC OS X Lion (10.7.4)
I would like to know what are the best practices for development for WSO2 ESB 4.0.3.
Currently I am using Data Services Feature in it and existing tomcat application, which we are trying to port to WSO2 ESB, does the SQL query in 2-3 seconds where as WSO2 ESB 4.0.3 with Data Services feature taking around 16-17 secodns.
I would be thankful if some body can let me know best practices for WSO2 and in perticular XSLT transformation.
Hoping for answer.
thanks
Hi Prabath
Here is how my environment is
I am using WSO2 ESB 4.0.3 with Data Services Feature 3.2.2. Proxy service front ends the DS service. Data sources are defined as carbon data sources in datasources.properties.
I tried to run the same service in the WSO2 Data Services Server 2.6.3 and the performance is comparable to what existing tomcat application does but the ESB 4.0.3 with Data Services Feature 3.2.2 takes 8 times more time than tomcat application. Looks like XSLT is not a issue as I thought earlier.
I have all the error handling & input validation in the proxy service which calls this DS.
Also I tried changing it to local for the transport but still same performance issue. Also I have to make sure the format of the forwarded XML is SOAP 12 in the end point definition otherwise proxy service does not forward with local transport.
Can you please suggest so that I can use WSO2 ESB with Data Services Feature 3.2.2 and get comparable performance?
Help really appreciated.
thanks
Abhijit
Hi Prabath
Thanks for reply.
Proxy service validation and transformation is not a problem. Looking at the logs it looks like Data Service deployed in ESB with Data Services feature is taking 8 times more time than the tomcat application. So it is Data Services Feature which is problem I believe and not the proxy service.
Even if we remove the proxy service where you will do the input validations and error handling?
Please let me know.
thanks
Abhijit
Abhijit,
I'm not quite clear of whether this problem is related to executing SQL using dbReport/dbLookup mediators against doing the same thing having data services features installed in ESB OR transforming responses using XSLT at the ESB layer against doing it at the DSS layer.
If it's the former, then you should be able to effectively use the db mediator pair (namely dbLookup and dbreport) to execute simple SQL queries such as SELECT, INSERT, UPDATE, DELETE, etc. However, it is not recommended to do use those mediators to do much complex queries such as stored procedures with "OUT and INOUT" parameters etc as WSO2 DSS is specifically designed to serve any sort of complex queries like that. However, this (using data services) comes at the cost of network latency. Because, you're invoking a data service endpoint through the network which obviously adds the network latency to the end-to-end time taken to get your task done. However, if you're using Data Services features installed in the WSO2 ESB, you always have the option of using "local" transport instead of "http/https" which does an in-JVM call and thus would not dispatch the request over the network.
If this is related to the later, meaning, if you refer to the XSLT transformations, I believe there's no such hard and fast rules in doing this and this would completely depend on your requirements and the usecase. For example, if you're only using WSO2 DSS and want to get some request transformed into a particular format that is expected by the client side, it would only be enough for you to get it done at the WSO2 DSS layer. Because, dispatching it into ESB ONLY for the sake of getting the XSLT transformation done, would add an additional unwanted overhead to the end-to-end completion time of your task. On the other hand, if you're doing this as a part of a configuration flow at the ESB side, then it's perfectly okay to use something like XSLT mediator inside the flow itself.
Hope this helps!
Regards.
Prabath
I hope Prabath already gave the answer to your question.
However, it is not recommended to do use those mediators to do much complex queries such as stored procedures with "OUT and INOUT" parameters etc as WSO2 DSS is specifically designed to serve any sort of complex queries like that. However, this (using data services) comes at the cost of network latency. Because, you're invoking a data service endpoint through the network which obviously adds the network latency to the end-to-end time taken to get your task done. However, if you're using Data Services features installed in the WSO2 ESB, you always have the option of using "local" transport instead of "http/https" which does an in-JVM call and thus would not dispatch the request over the network.

SOA and web services and ESB

I want to understand some points :
Does using- SOA mean that I am using web services ? (or vice-verse?)
If I use web services with CXF, do I need an ESB ? what are the advantages of ESB like MULE in an architecture with web services ?
if I publish my web services in Java, does that means any client who has my WSDL can use my service, even if he/she uses .NET or something else than Java? Can ESB handle that?
Does using- SOA mean that I am using web services ? (or vice-verse?)
- SOA is a concept and web service is an implementation of SOA. There can be many ways to implement it but the most common one is the web services.
If I use web services with CXF, do I need an ESB ? what are the advantages of ESB like MULE in an architecture with web services ?
ESB is a major component in you SOA. Its the main integration hub.
Following diagram will give you a more understanding about SOA and ESB. (Disclaimer : I work for WSO2 and this is one of the diagram that gives you a clear understanding about SOA and ESB)
http://4.bp.blogspot.com/_yO8q3CIhuZs/S-Zq88vkJlI/AAAAAAAAAak/QAJeDVXVL_4/s1600/wso1.png
if I publish my web services in Java, does that means any client who has my WSDL can use my service, even if he/she uses .NET or something else than Java? Can ESB handle that?
If you are talking about web services, that means they are independent from programming language. Of course ESB can handle it and it can handle many other protocols as it is the integration hub.
Unfortunately, only the use of a specific technology is not a concrete evidence that you are doing SOA, as said in other response by Kasun Indrasiri, SOA is a concept, a technique that can be implemented using various tools from different vendors.
If you are designing services following the SOA Principles, you will be probably doing SOA, even if the tools you are using do not have all the features present in other modern platforms.
In my opinion, if your company does not have a of multi million dollars budget to spend on software licenses, you can still benefit from SOA using current tools.