IBM Operational Decision Manager
IBM’s operational decision manager is a comprehensive decision automation solution that provides extensive capabilities that help you analyze, automate, and govern rules-based business decisions. IBM Operational Decision Manager can authorize a loan, decide on promotional offers, or detect a cross-sell opportunity with high precision and customization. It’s available for on-premises and public or private cloud environments.
Instead of coding your own business rules, use ODM to configure and codify your business rules in an understandable and accessible to everyone within your organization.
- some of the benefits of IBM’s Operational Decision Manager are:
- create and configure your business rules easily.
- Modify your business rules anytime.
- Edit your business rules using MS Word or MS Excel.
- Test and validate your business rule configurations.
The Operational Decision Manager golden topology, shown in the figure below, provides a solution for rule and event authoring, test, and execution.
The Decision Server cluster is designed to exploit the efficiency of local EJB calls within the same server to maximize the performance of rule and event execution, testing, and simulation. Therefore, all the rule and event testing, simulation, and execution are performed within this cluster. For the same reason, the messaging infrastructure for event processing (which is also usable by MDB rule sessions) is also present there, along with your applications that use rules and events. The constituent IBM ODM components in this cluster include the SSP, EJB, MDB, HTDS, event runtime, and various event connector enterprise applications.
The Decision Center consoles do not have the same performance and scalability requirements as the components mentioned in the Decision Server cluster. Therefore their enterprise application has been moved to a separate Decision Center cluster. This approach allows some flexibility in the design of the topology.
Amazon Web Services
AWS enables you to select the OS, programming language, database, and other services you desire. AWS Console allows to quickly and easily host existing application or newly developed ones. Then you will be paying only for the computing power, storage, and other resources you use, and you take advantage of a scalable, reliable, and secure global computing infrastructure. Your application can scale up or down, in or out, based on demand using AWS tools, Auto Scaling, and Elastic Load Balancing. AWS offers a secure infrastructure, including physical, operational, and software measures.
AWS Elastic Beanstalk
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
You can upload your code, and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time.
AWS RDA Aurora (Postgresql compatibility)
Amazon Aurora is a MySQL and PostgreSQL-compatible relational database built for the cloud, that combines the performance and availability of traditional enterprise databases with the simplicity and cost-effectiveness of open source databases.
Amazon Aurora is up to three times faster than standard PostgreSQL databases. It provides the security, availability, and reliability of commercial databases at 1/10th of the cost. Amazon Aurora is fully managed by Amazon Relational Database Service (RDS), which automates time-consuming administration tasks like hardware provisioning, database setup, patching, and backups.
Intermediate to advanced knowledge in Amazon Web Services, Intermediate knowledge in IBM Operational Decision Manager, AWS Console account, General knowledge in Linux commands for creating and navigating directories, Passion for AWS cloud technology and a lot of free time
Milestone A: installation
step 1: Downloading the necessary files
before starting the installation, please download the following files to your workspace, the files you are going to download are ZIP files for the Decision Center and Decision Server. the ZIP files contain WAR files for the deployment and a directory named .ebextentions, that is necessary for the deployment process, you can use this directory to set up the Tomcat environment without Logging in to the EC2 instance and modify it there. the .ebextentions directory contains:
- Tomcat-users.xml: you can set up your user credentials here for connecting to Decision Serverand Decision Center
- Server-update.config: this is the file responsible for updating the Tomcat server configuration
container_commands: replace-config: command: cp .ebextensions/server.xml /usr/share/tomcat8/conf/server.xml replace-users: command: cp .ebextensions/tomcat-users.xml /usr/share/tomcat8/conf/tomcat-users.xml add-driver: command: cp .ebextensions/postgresql-42.2.5.jar /usr/share/tomcat8/lib/postgresql-42.2.5.jar add-factory: command: cp .ebextensions/tomcat-dbcp-8.0.0-RC1.jar /usr/share/tomcat8/lib/tomcat-dbcp-8.0.0-RC1.jar
Step 2: AWS Aurora Provisioning
Decision Server Cluster
To create an Aurora DB cluster using the console
1. Sign in to the AWS Management Console and open the Amazon RDS console at https://console.amazonaws.cn/rds/.
2. In the upper-right corner of the Amazon RDS console, choose the AWS Region in which you want to create the DB instance.
3. In the navigation pane, choose Databases.
4. Choose Create database and make sure that Standard Create is chosen.
5. For Engine type, choose Amazon Aurora.
7. For Database, Features choose One writer and multiple readers.
8. For Template, choose Dev/Test.
9. For DB cluster identifier, enter a name for the DB cluster, or leave the default name.
10. For Master username, enter a name for the master user, or leave the default name.
11. To use an automatically generated master password for the DB cluster, make sure that the
Auto-generate a password checkbox is chosen.
To enter your master password, clear the Auto-generate a password checkbox, and then enter the same password in Master password and Confirm password.
12. For the DB instance class, choose Burstable classes.
13. Click on the Additional Connectivity Configuration arrow and select Yes for Publicly accessible.
14. For the VPC security group select Choose existing and leave it at default.
15. Click on the Additional configuration arrow and enter a name for the DB instance under the database options section.
leave the rest of the configuration as default
Decision Center Cluster
As for the Decision Center Cluster, redo the same steps as before and change the following :
leave the rest of the configuration as default
Next, click on Create database
To view the master user name and password for the DB instance, choose View credential details.
Copy the credentials to a notebook page.
your Database is now created
On the RDS console, the details for the new DB cluster appear. The DB cluster and its DB instance have a status of creating until the DB cluster is ready to use. When the state changes to available for both, you can connect to the DB cluster. Depending on the DB instance class and the amount of storage, it can take up to 20 minutes before the new DB cluster is available.
To connect to a database on an Aurora PostgreSQL DB cluster
1.Click on the decisioncenterdb-id link.
2. copy the value for the Endpoint name of the Writer endpoint. Also, note the port number for the endpoint.
3. scroll up and click on the configuration tab and copy the DB Name to your notebook.
Do the same for the other cluster, we will need these variables in the next steps
Step 3: AWS Beanstalk Deployment
To launch the Beanstalk environment
1. Open the Elastic Beanstalk console.
2. Choose to Create New Application.
Use the on-screen form to provide the required details.
3. For Application Name, enter a name for the application, or leave the default name.
4. For the Base Configuration section, select Tomcat as Platform.
5. Click on the Upload button and browse to the DecisionCenter.Zip file in your machine.
6. Click the Upload button to upload the code.
7. After the code is successfully uploaded, click on Create an Application button.
wait a few minutes until your environment is created
the environment status should be OK
8. Navigate to the management page for your environment.
9. Choose Configuration.
10. In the Software configuration category, choose Modify.
11. In the Environment properties section, define the variables that your application reads to construct a connection string. For compatibility with our ODM solution, use the following.
- Endpoint – The hostname of the DB instance.
- dbUsername – The user name that you configured for your database.
- dbPassword – The password that you configured for your database. Amazon RDS console label – DB Name
- dbName – The database name
past the values from your notebook
12. Choose Apply and wait until Beanstalk updates your environment.
The Health status should transition from info to OK.
You can now browse to your application by clicking on the link mentioned at the top of your console.
Repeat the same steps for the Decision Server
Milestone B: Testing
your application should now be accessible
log in using the default username and password: rtsAdmin/rtsAdmin
Milestone C: Cleanup
When you finish working with Elastic Beanstalk, you can terminate your environment. Elastic Beanstalk terminates all AWS resources associated with your environments, such as Amazon EC2 instances, database instances, load balancers, security groups, and alarms.
To terminate your Elastic Beanstalk environment
With Elastic Beanstalk, you can easily create a new environment for your application at any time.
In addition, you can terminate the database resources that you created outside of your Elastic Beanstalk environment. When you terminate an Amazon RDS database instance, you can take a snapshot and restore the data to another instance later.
To terminate your Aurora DB instance
1. Open the Amazon RDS console.
2. Choose Databases.
3. Choose your DB instance
4. Choose Actions, and then choose Delete.
5. Choose whether to create a snapshot and then choose Delete.
Use the on-screen dialog box to confirm the instance deletion.
the status of the DB instance should transition from Available to Deleting