TIBCO Design consideration [closed] - tibco

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
I am planning to implement Tibco based EAI. I would like to know how are the following components used in a typical EAI scenario.
1- TIBCo BW
2- TIBCo EMS
3- TIBCo BW admin.
4- TIBCo HAWK

Simple answer : All of them.
Complex answer :
All of them are typically used by every TIBCO client I met, but they are all optional. ;-)
BW is the main reason people typically want to talk to TIBCO. It's one of the best solid/easy/reliable/RAD integration server. Comparable to IBM IIB or Software AG webMethods Integration Server. FOSS similar offerings are Talend, Mule or Apache Camel...
EMS is the typical BW back bone. Chances are that if you are into integration, you are also interested in messaging. Messaging allow clear separation between client and server, persistence, load sharing, asynchronous processes, tolerance to failure on client or server side, pub/sub and much more. EMS is VERY easy to install, under stand and manage. Think of it as a simple IBM MQ, or more corporate Active MQ. If you have layers in the BW architecture, chances are you will use EMS for inner layer communication. So much to say on EMS.
Administrator is useful and/or almost mandatory to administrate BW. More than a deployment platform (deployment can be done with scripts as well), the administrator allow you to change BW process properties and restart BW processes. There is also a section for basic EMS administration.
Hawk is a monitoring engine, tightly tied to BW, EMS (than can be used as Hawk's transport) and administrator. The product is facultative if you already have an OS/Servers monitoring solution... But is one of the easiest way to apply APPLICATIVE monitoring to all the product above (ex: give the state of a process in BW).
Note : Don't forget the DB requirement for the Administrator.
Note 2 : My answer is focused on TIBCO BW5... TIBCO BW6 engine and administrator are different... but my answer would be similar.

I am agree with GhislainCote till some extent but to be frank, you need professional consulting to implement a solution with Tibco stack.
Tibco EMS - backbone of Enterprise software
Tibco BW - where you will do some business logic
Tibco Admin - Used for governance, manage and deploy the services.
Tibco HAWK - it is used for Monitoring serices and Infra

1- TIBCo BW : where you have to develop your processes ( logic and alg)
2- TIBCo EMS : Entreprise Messaging system : a software to exchange messages via queues or topics
3- TIBCo BW admin : a tool for administration : deploying apps, manage space, show apps status ....
4- TIBCo HAWK : we can call it the tibco engine
if you want more you can check the Tibco official docs

Related

How to scale a Spring Boot app to keep the same performance? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 months ago.
Improve this question
My question is theoritical (I am not asking the steps about scaling) and related to keep the same performance.
For example our web site (Spring Boot based) is visited 100 person / day and after a year is şs started 1.000.000 visit per day. In this situation, I have the following ideas basically, but need to know more and if these ideas are good or bad:
Using Cloud services
LOad balancer
Using microservices and applying distributed system techniques.
If read operations are much more than write or update, a NoSQL db can be used.
If we use jwt token for authentication, dstributed system would not a problem for security auth side I think.
... etc.
Could you pls share your ideas and comment the idea above? Any help would be appreciated.
There have been several POC( proof of concept ) and proved deployment strategies for better availability.
Keeping your points, I am summarizing and possibly giving a bit more clarity!
Using Cloud services --> This is the platform you choose for e.g. One can choose on-premise service deployment or on cloud such as AWS,Azure GCP etc. Not related to scalability question at the moment.
Load balancer --> Balance the load when you have multiple instances of your Microservice, so for e.g. You can create docker images of your microservice & deploy as a Pod on Kubernetes platform where you can have more than one Replicas (Replica is copy of your same service). Load balancer will balance the HTTP requests among multiple pods.
Using microservices and applying distributed system techniques --> You can but make sure to adhere to best practices and proven Microservice deployment strategies. Read more about the more about them here https://www.urolime.com/blogs/microservices-deployment-strategies/
If read operations are much more than write or update, a NoSQL db can be used. --> Definitely, infact you can decompose your microservice based on number of transactions or read/write operations & you can use NoSql DB like Couchbase or MongoDb
If we use jwt token for authentication, dstributed system would not a problem for security auth side I think. --> Again such mechanisms are usually centralized and JWT token has some time validity!
So there might be several other options of scaling but most used is the one I mentioned in point 2.
I highly suggest you get a grip on basics, Here are few links which would be helpful!
https://microservices.io/patterns/microservices.html
https://medium.com/design-microservices-architecture-with-patterns/decomposition-of-microservices-architecture-c8e8cec453e

What is the best kafka ui dashboard to use with kafkajs? [duplicate]

Closed. This question is opinion-based. It is not currently accepting answers.
Closed 3 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I am new to kafka. We want to monitor and manage kafka topics. We tried different open source monitoring tools like
kafka-monitor
kafka-manager
Both tools are good. But we are unable to make a decision which should be included in our deployment stack. Which one is better and why, and in which scenario?
'kafka manager' from yahoo looks the older one and 'kafka monitor' from LinkedIn is newer one
Kafka Monitor-
Lenses
Lenses (ex Landoop) enhances Kafka with User Interface, streaming SQL engine and cluster monitoring. It enables faster monitoring of Kafka data pipelines.
They provide a free all-in-one docker (Lenses Box) which can serve a single broker for up to 25M messages. Note that this is recommended for development environments.
Cloudera SMM
Streams Messaging Manager is the solution for monitoring and managing clusters running Cloudera or Hortonworks kafka. It also comes with replication capability.
Confluent
Another option is Confluent Enterprise which is a Kafka distribution for production environments. It also includes Control Centre, which is a management system for Apache Kafka that enables cluster monitoring and management from a User Interface.
Yahoo CMAK (Cluster Manager for Apache Kafka, previously known as Kafka Manager)
Kafka Manager or CMAK is a tool for monitoring Kafka offering less functionality compared to the aforementioned tools.
KafDrop
KafDrop is a UI for monitoring Apache Kafka clusters. The tool displays information such as brokers, topics, partitions, and even lets you view messages. It is a lightweight application that runs on Spring Boot and requires very little configuration.
LinkedIn Burrow
Burrow is a monitoring companion for Apache Kafka that provides consumer lag checking as a service without the need for specifying thresholds. It monitors committed offsets for all consumers and calculates the status of those consumers on demand. An HTTP endpoint is provided to request status on demand, as well as provide other Kafka cluster information. There are also configurable notifiers that can send status out via email or HTTP calls to another service.
Kafka Tool
Kafka Tool is a GUI application for managing and using Apache Kafka clusters. It provides an intuitive UI that allows one to quickly view objects within a Kafka cluster as well as the messages stored in the topics of the cluster. It contains features geared towards both developers and administrators.
If you cannot afford licenses, then go for Yahoo Kafka Manager, LinkedIn Burrow or KafDrop. Confluent's and Landoop's products are the best out there, but unfortunately, they require licensing.
For more details, you can refer to my blog post Overview of UI Monitoring tools for Apache Kafka Clusters.
If you want to pay for licensing and Kafka cluster support, then you can use Confluent Control Center
Alternatively, the free route would be to use JMX exporters from Datadog and/or Prometheus/Influxdb (with Grafana dashboards) to see overall system health checks (CPU, network, memory, etc)... Much more information than what you get only by monitoring Kafka processes with Kafka tools
At my company, we used the Yahoo product, we investigated the LinkedIn product, and several others mentioned. My company ultimately chose to use Prometheus+Grafana. Everyone loves it and I'd highly recommend it.
There are two big advantages to Prometheus+Grafana. The first is it does full featured Kafka metrics ingestion+visualization+alerting but it's not limited to Kafka. While our initial needs were just to monitor Kafka, we also wanted metrics on HTTP servers+traffic, server utilization (cpu/ram/disk), and custom application level metrics. Prometheus handles all of the above. Secondly, Prometheus + Grafana are very high quality, well designed, and easy to use. A lot of other products in this space are old and complicated to work with. Prometheus + Grafana are both excellent to work with, they are very customizable, polished, and easy to use. Grafana has a very flashy + functional JavaScript interface that lets you make exactly the customized dashboards that you want. Prometheus has a very polished metric collection engine, storage engine, query language, and alerting system. Something like Yahoo Kafka Manager has much more limited functionality in all of these categories.
If you want to try Prometheus, you need to do two things:
1) install+configure the JMX->Prometheus exporter on your Kafka brokers:
https://github.com/prometheus/jmx_exporter
2) Setup a Prometheus server to collect metrics + and setup a Grafana dashboard to display the graphs that you want.
I'd also say that this is just for monitoring+dashboards+alerting. For management functions, you still need other tools.
The kafka-monitor is (despite the name) a load generation and reporting tool. Yahoo's kafka-manager is an overall monitoring tool.

Migrate from monolith to Micro service architecture [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 3 years ago.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Improve this question
We are on the initial stages of designing a micro service for my client from their standard monolith app that is sitting on 4 JBOSS servers in their own data center. Is micro service architecture target at only cloud based deployment? Can i deploy a micro service on premise production ready tomcat /JBOSS? Is that a good fit?
Sure you can.
Microservice architecture is a concept of having many small interracting components, where each of them performing well defined part of work, but good.
It's extention of the Linux way and the concept of decoupling components.
In your case you can split your service to several smaller services. Each one with own development and deployment cycles, each one with well defined API.
Is micro service architecture target at only cloud based deployment?
no it's is an architecture for application development. basic idea of micro services is separate complex application function to small functions to reduce complexity and get high performance.
there are few reasons you need to consider before moving micro services.
1.scale of you application.
if your application contain high number of complex functions its better go with micro services. and separate them and deploy separate, then easy to do changes and maintains.
2.performance of application
if some application function need high computing power. you can allocate separate hardware resources. if you implement it as micro services.
3.deploy and maintain
if you use micro services you can deploy and maintain service separate without effect other services.
4.data migration
if your databases contain high data table relation it will little bit difficult remove for function databases(each micro services need each DB) so as a first step keep DB as monolithic and separate function to services. then start to reactor DB
5.call each services
fronted end application keep clean and logic free. and wrap your micro services using API gate way and publish all the services as one service.
6.application security
each and every services running in separate no need to session tracking use JWT (oAuth2) API security.
7.multiple services & transnational
if you need to handle one business function but with more than one service you need to check each and every services function work correctly**(ex db operations ,rollbacks)** so need to developed transnational handler
implementing micro services
there is no specific technology stack for it but there are free more technology available
ex :
java spring boot for micro services (with inbuilt tom cat server )
zuul , eureka for API gate way
oAuth 2 and JWT for security
*Note
there is not fix way to implementation for micro services , use correct technology stack to get performance and implement small business function. and doesn't matter hosting in cloud or local servers.
strong text
There is definitely no limitations whether you deploy your microservices on local, physical servers or in the cloud. Both approaches are valid, but they impose different advantages and disadvantages.
With local/physical servers, you will have:
bigger operations overhead (it is better you have good DevOps in your team)
manual scaling (when you experience bigger traffic, you need to manually fire up new instances, or use some management tool for this)
manual fault detection - if a server goes down (this depends on your/company's server enviorenment) someone will need to fix this "manually"
it is cheaper (a friend is buying old server instances on Amazon and running their semi-microservice architecture on them, he calculated they achieve quite big savings this way)
With cloud infrastructure, you get some of the below advantages (in contrary to above disadvantages):
less operations overhead (the cloud will take care of most of operations)
flexible scaling (when your traffic goes up, cloud can automatically fire up new instances, when it goes down, it will shutdown instances)
error/fault handling - if there occurs a problem in the cloud, you do not need to worry
I did not mention all the advantages and disadvantages of given approaches, as it also depends on the project (will it receive different traffic on different times of day, does it need to keep data locally or can it be in a foreign country in a cloud, ...).

IBM MQ limitations [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
As I am evaluating IBM MQ, I am looking for some technical details on its strengths and limitations.
Maximum number of connections
How much high volume it can support
Maximum size of the message it supports
How do I redoif message was lost due to client was offline? Examples?
How do I apply transactions in the messages? Examples?
Are there any examples to send / subscribe messages directly from
mobile device?
What are the strong features IBM MQ provides which are not available
in other competitive JMS products (ex: Weblogic, Rabitt MQ, etc) ?
This sounds like your boss asked you to do some research on MQ but instead you posted the questions here. Did you read any of the IBM RedBooks on MQ? Here is the MQ Primer which is a good starting point for beginners. Did you read the MQ Knowledge Center?
You still need to do more research unless you want to hire me as a consultant (I'm not cheap!!) but here are some answers off the top of my head.
Depends on the horsepower of the server. Years ago, I've had queue managers handling thousands and thousands of connections without issue.
Again it depends on the horsepower of the server. On the mainframe, I know of customer moving hundreds of millions of messages per day without issue.
Come on, that is the easiest thing to look up in MQ. (default is 4MB - max is 100MB otherwise use message grouping)
Pub/Sub or Point-to-Point? For Pub/Sub use durable subscription and for P-2-P use persistent messages. Besides, MQ does NOT loose messages if the client application is not connected. It would be a pretty bad messaging system if it did - maybe you're using a bad one right now.
You can have local UOW or 2 Phase UOW.
Sure. Install MQ and select Samples then go and play around with the samples. Did you do any internet searches? The MQ Telemetry Transport (MQTT) Programming presentation should have been at the top. Note: There are more presentations on MQTT at MQTC's web site. You can also find lots of MQ samples here.
Ask your IBM sales rep.

Difference between IBM Websphere Application Server and IBM Websphere Process Server?

Im currently looking into the difference between IBM Websphere Application Server and IBM Websphere Process Server?
I am aware that the Process Server is like a higher level layer ontop of the App server, but was wondering if development using either would be the same or similar. I have been working with integration developer and App server for a while now, and was wondering if the skills transfered across for Process server.
thanks for any help :)
The process server has a built in WAS.
You can build and deploy standard Java EE applications on both servers this part carries over.
The process server is an extended ESB. If you want to create mediations and process flows, etc, with the full WID feature set then you require the process server. These can be created with the WebSphere Integration Developer as well. However I doubt that you where using these as they won't run on a simple WAS.
Creating mediations and process flows is totally different from the standard Java EE programming.
Udo's answer is correct but i would like to add a few more things to this.
WPS is superceded with the release of IBM BPM V7.5 which was released in June this year. IBM BPM is a merger of two BPM products - WPS and WebSphere Lombardi edition.
Do note that both WPS and BPM 7.5 will use typically a older version of WAS (currently they use a WAS 7.x version) while WAS 8 has been in the marketplace for a longer period of time.
To do Java EE stuff, you are better off using WAS as they will keep up pace with the Java EE specs while WPS and BPM 7.5 lags and you will not be able to take advantage as they lag for a good period of time.
WAS's focuses on Java EE and providing the base for products like WPS, WESB, WebSphere Portal etc. WPS and BPM 7.5 focus on providing a BPM platform for users to build and deploy their BPM solutions.
Hope this gives some clarity

Resources