Why IBM Websphere DataPower? - ibm-datapower

I am beginer in learning IBM DataPower so please let me know why it is used and
where it is used and what is the purpose that we use it.
Thank you.

IBM Datapower is called an appliance because it is purpose built with an OS of its own. The datapower appliance is usually located in the DMZ layer where an organization communicates with the other 3rd party vendor. Datapower has the ability to transform messages as well and the inbuilt security feature makes it a stronghold to secure the DMZ layer. It can connect using many protocols such as MQ, HTTP, HTTPS, JMS, SFTP, FTP, IMS , AS2, AS3 etc as well. It is also used to host APIs and SOAP web services. In short it is used for integrating with application outside of the organization layer.

Related

Is gRPC not suited for small projects?

For the past 2 weeks I have been struggling to setup a simple backend that utilises gRPC and communicates with a mobile client.
Reading online about this technology it feels like it is the proper easy going solution for my needs.
Bridging client/server communication written in multiple languages Java/Kotlin/Swift/Go.
Backwards compatibility checks for the API realized with buf
Efficient communication by transferring binary data and utilising HTTP2
Support for both RPC and REST thanks to grpc-gateway
However when I decided to go down the gRPC path I faced a ton of issues (highlights of the issues, not actual questions):
How to share protobuf message definitions across clients and server?
How to manage third party protobuf message dependencies?
How to manage stub generation for projects using different build tools?
How to secure the communication using SSL certificates? Also keep in mind that here I am talking about a mobile client <--> server communication and not server <--> server communication.
How to buy a domain because SSL certificates are issued agains public domains in order to be trusted by Certificate Authorities?
How to deploy a gRPC server as it turns out that there aren't any easy to use PaaS that support gRPC and HTTP2? Instead you either need to configure the infrastructure like load balancers and machines hosting the server by installing the appropriate certificates or just host everything on your own bear metal.
How to manage all of the above in a cost effective way?
This is more of a frustration question.
Am I doing something wrong and misunderstanding how to use gRPC or is it simply too hard to setup for a small project that should run in production mod?
I feel like I wasted a ton of time without having made any progress.

How does a customer connect WKC (cloud) to their on-prem data sources?

Looking for documentation on our overall networking for WKC on Cloud in order to feel confident in its viability & security. Want to know all connectivity and networking options for WKC.
The recommended way is to use the IBM Cloud Secure Gateway service. WKC has direct support for it.
Here are the docs
for creating a connection.
Here are the docs
for configuring a secure gateway service.
Here are the docs
for all connections available out of the box in WKC.

Is it possible host other protocols besides HTTP inside ASP.NET on Azure Websites?

This probably sounds like an 'out-there' idea, but I would like to host non-HTTP services inside Azure Websites. I would like my code to be able to respond to FTP or SMTP requests on port 80, in addition to HTTP. Specifically, I would like to take in files from a net camera via FTP, process them, and store them in blob storage, etc. I'm aware I could do a VM, but Websites appeals to me because it is cheaper. Is this even possible?
At this point in time it is not possible to host protocols other than HTTP or Web Sockets in Azure Websites - now known as Azure Web Apps.
You can do it in Cloud Services or in VMs, but not in Web Apps.
You can submit feature ideas or suggestions to http://feedback.azure.com/forums/34192--general-feedback .
Hope this helps. Healy in Tampa.

Is it good to use ASP.net Web API as a Service Layer?

Myself and my architect are designing the architecture for one of our products and he suggested to go with Web Api as a Service Layer (because it's a light weight component).
Straight away I'm thinking how it can be used for non-http based clients and also for external clients. How can we provide the proxy information about our API (in case the API is having a complex type as parameter)?
Please advice whether we can use Web API as Service Layer?
Straight away I'm thinking how it can be used for non-http based clients
Well, it can't. The Web API works only on top of the HTTP protocol. If you need to use some other transport protocols such as UDP you might consider WCF instead.
How can we provide the proxy information about our API
RESTful services do not have the notion of proxy information. They should be documented well for non .NET clients. For .NET clients you could share the contracts (Request/Response Dto) between your server and client application. The client application could then reuse those Dtos which may act as what you call proxy and which is something that exists in the SOAP world but not in the REST world.

Doing research on SOA LoadBalancing NameServers

When looking at SOA (Service Oriented Architectures) the main problems seems to be distributing a services load across multiple hosts and then managing these hosts (taking hosts off line or adding new hosts)
When one service talks to another it should not need to know any host information (at the application level). Rather the SOA Environment should be able to route a service request to a specific host based on the hosts current load characteristics (so it must know all hots a service is running on and their relative load).
Are there any existing open protocols for service to report their existence and load to an SOA Environment.
SOA is a set of high-level software architecture guidelines. It is not a technical standard or recommendation and it has nothing to do with technical implementation details, like load balancing.
Load balancing is based on addressing, which is dependent on the service access technology.
Systems built in "SOA-way" may be using different service access technology, like SOAP (over HTTP, JMS, etc.), REST, asynchronous XML messages over JMS, etc.
With SOAP, the service consumer may look up a UDDI registry to locate the service provider. Some of the latest UDDI registry software provide simple (e.g. round-robin) load balancing.
Another SOAP idea is using WS-Addressing, but it is not really meant for load balancing.
I think currently the best place for load-balancing is the underlying network transport layer. With HTTP transport you can choose hardware or software (e.g. Apache HTTPD modules) load balancers that can adapt the distribution based on response times and time-outs. With JMS transport, the most popular JMS servers provide some form of load balancing. Other protocols - like CORBA or Rendezvous - usually require a custom solution.
You can also utilize an ESB software, e.g. Oracle Service Bus or TIBCO AMX Service Bus. With an ESB you can easily create a load-balancing proxy for your service instances. The proxy may be enhanced with some logic, like look-up a database table for guidance.
As you can see, there is no one-size-fits-all solution for service load balancing. The optimal solution will be based on the actual implementation architecture and vendors' recommendations.
After reading a lot the concept I was actually looking for was the Enterprise Service Bus ESP.
Though it does not explicitly define an explicit protocol it defines an architectural style that allows the solving of the problems I stated above.

Resources