pex-demo


Follow
0
Star
0
Details
Version history
Issues
This application is not supported by InterSystems Corporation. Use it at your own risk.
Demo showcasing InterSystems IRIS integration with Kafka via PEX (java, .net)

PEX demo

Demo showcasing InterSystems IRIS integration with Kafka via PEX.

PEX

The Production EXtension (PEX) framework provides you with a choice of implementation languages when you are developing interoperability productions. Interoperability productions enable you to integrate systems with different message formats and communication protocols. If you are not familiar with interoperability productions, see Introduction to Productions.

As of July 2020, PEX supports Java and the .NET languages. PEX provides flexible connections between business services, processes, and operations that are implemented in PEX-supported languages or in InterSystems ObjectScript. In addition, you can use PEX to develop, inbound and outbound adapters. The PEX framework allows you to create an entire production in Java or .NET or to create a production that has a mix of Java, .NET, or ObjectScript components. Once integrated, the production components written in Java and .NET are called at runtime and use the PEX framework to send messages to other components in the production.

Running the demo

  1. Install:
  2. Execute:
git clone https://github.com/intersystems-community/pex-demo.git
cd pex-demo
docker-compose pull
docker-compose up -d

Demo Production

  1. Open Production and test KafkaProducer operation by sending a dc.KafkaRequest message (topic: test, with any text). It would send a message to Kafka via Java Gateway.
  2. Open Kafka Manager and Navigate to Resources > Topics > test > Browse Data > Fetch to see that your message is enqueued.
  3. Open Message Viewer on KafkaConsumer service
  4. Start KafkaConsumer service. It would start receiving messages from test topic via .Net Gateway. If you want to receive messages from another topic, modify Remote Settings value for the Service.
  5. Refresh Message Viewer to see new messages.

Demo Dynamic Gateway

Example of working with dynamic proxy objects:

docker-compose exec iris iris session iris
set GW = ##class(%Net.Remote.Gateway).%New()
set sc = GW.%Connect("netgw", 55556)
set random = ##class(%Net.Remote.Object).%New(GW,"System.Random")
write random.Next(100)
set sc = GW.%Disconnect()

What's inside

UI

  • InterSystems IRIS: http://localhost:52773/csp/user/EnsPortal.ProductionConfig.zen
  • Eco Kafka Manager: http://localhost:8082

Other ports

  • SuperServer: 51773
  • Java Gateway: 55555
  • .Net gateway: 55556
  • Zookeeper: 2181
  • Kafka: 9092
Category
Technology Example
Works with
InterSystems IRIS
Tags
Info
Version
1.0.0
Last updated
2020-07-16
Repository
Open
Documentation
Open
License
Link