Saturday, May 28, 2016

Long Weekend ... in the name of... Improvement? Not Sure////

Planned to study over the memorial weekend 2016

and still studying... :)

http://www.ibm.com/developerworks/bpm/library/

Embed reference data in IBM ODM decision service implementations
http://www.ibm.com/developerworks/bpm/bpmjournal/1512_berlandier1-trs/1512_berlandier1.html

Cross-site replication and recovery with IBM ODM Decision Server Insights
What you need for high availability and disaster recovery
http://www.ibm.com/developerworks/bpm/bpmjournal/1512_johnson-trs/1512_johnson.html

Diversify your IBM ODM application with Bluemix and the Business Rules service, Part 2
Configure tracing and performance

http://www.ibm.com/developerworks/bpm/bpmjournal/1512_siddiqui2-bluemix-trs/1512_siddiqui2.html

IBM Business Process Manager operation overview, Part 3: Advanced operations
Part 3 of this series introduces advanced operations tasks that administrators for IBM® Business Process Manager (IBM BPM) complete in their daily operation work. The maintenance of a clustered server environment for IBM BPM that interacts with many back-end and front-end systems and services can be a challenging task. This final part in the series guides administrators through advanced operations such as troubleshooting, performance tuning, disaster recovery, and high availability - including an operation checklist.

http://www.ibm.com/developerworks/bpm/library/techarticles/1510_chan3-trs/1510_chan3.html

Integrate IBM MQ with your IBM Business Process Manager processes
Learn the various approaches to send and receive messages from a business process through IBM® MQ, communicating with back-end systems. Walk through examples with sample code to see the steps that are required to integrate IBM MQ V8.x with IBM Business Process Manager (BPM) V8.5.x. Gain an understanding of fundamental approaches to use IBM MQ to exchange data with other systems from IBM BPM processes.

http://www.ibm.com/developerworks/bpm/library/techarticles/1510_liu-trs/1510_liu.html

IBM Business Process Manager operation overview, Part 1: Topology, security, basic administration, and monitoring
The maintenance of a clustered server environment for IBM® Business Process Manager (BPM) that interacts with many back-end and front-end systems and services can be a challenging task. Administrators can follow the IBM Business Process Manager operation overview series to guide their daily operation work. Part 1 helps administrators with topology, security, and basic administrative and monitoring operations.

http://www.ibm.com/developerworks/bpm/library/techarticles/1507_chan1-trs/1507_chan1.html

Top 10 editor's picks for IBM Operational Decision Manager
Here are my top 10 editor's picks of IBM® Operational Decision Manager content published on developerWorks. I selected content that helps you through the planning, configuration, modeling, and development phases of your business rules applications, guiding you in using recent versions of the product. I updated this list in July 2015 to include some of the best tutorials published in the past year.

http://www.ibm.com/developerworks/bpm/library/techarticles/1409_reinholds2/1409_reinholds2.html

Top 10 editor's picks for IBM Business Process Manager
Here are my top 10 editor's picks of IBM® Business Process Manager content published on developerWorks. I selected content that helps you through the planning, configuration, development, and deployment phases of your business process applications, guiding you as you use recent versions of the product. I updated this list in July 2015 to include some of the best tutorials published in the past year.

http://www.ibm.com/developerworks/bpm/library/techarticles/1409_reinholds1/1409_reinholds1.html

Improve performance for IBM Operational Decision Manager, Part 3: Reduce response times for hosted transparent decision services
IBM® Operational Decision Manager (ODM) offers a variety of options for optimal performance. Each organization's environment and needs are unique, so guidance about settings to increase performance and to streamline resource management is essential. As part 3 in a series, this tutorial provides recommended settings for addressing performance issues encountered when working with hosted transparent decision services.
http://www.ibm.com/developerworks/bpm/library/techarticles/1505_siddiqui3/1505_siddiqui3.html

Improve performance for IBM Operational Decision Manager, Part 2: Reduce rule execution resource consumption
IBM® Operational Decision Manager (ODM) offers a variety of options for optimal performance. Each organization's environment and needs are unique, so guidance about settings to increase performance and to streamline resource management is essential. As part 2 in a series, this tutorial provides recommended settings for addressing performance issues encountered when working with the Rule Execution Server.

http://www.ibm.com/developerworks/bpm/library/techarticles/1505_siddiqui2/1505_siddiqui2.html

Complement business rule debugging in IBM Operational Decision Manager with a logging framework
Logging and tracing play an integral role in problem diagnosis and understanding the flow of many applications. Common logging methods such as adding print statements placed through the code are often used to trace the flow of an application or a component during development. However this method falls short on scalability and flexibility by making it difficult to dynamically and easily change and control the amount and destination of logged information. A logging framework, such as the logging APIs available in Java SE or Apache Log4J, provide feature rich, flexible logging mechanisms that aid with debugging and tracing. This tutorial explains how to use a Java Logging framework in IBM® Operational Decision Manager (ODM) to assist with debugging and tracing business rule projects. This content is part of the IBM Business Process Management Journal.

http://www.ibm.com/developerworks/bpm/bpmjournal/1503_delima/1503_delima.html

Improve performance for IBM Operational Decision Manager, Part 1: Reduce rule execution time
IBM® Operational Decision Manager (ODM) offers a variety of options for optimal performance. Each organization's environment and needs are unique, so guidance about settings to increase performance and to streamline resource management is essential. This tutorial provides a brief overview of the different IBM ODM modules, and how they interact with each other, and recommended settings for performance improvements that have been found to have the most impact on rule execution. This content is part of the IBM Business Process Management Journal.

http://www.ibm.com/developerworks/bpm/bpmjournal/1503_siddiqui1/1503_siddiqui1.html

IBM Business Process Manager testing methodology, Part 1: General testing guidelines
This tutorial is part 1 of IBM Business Process Manager Testing Methodology series. It describes the necessity of IBM® Business Process Manager (BPM) project testing, general testing guidelines and when to test in the IBM BPM project lifecycle. This tutorial shares good practices of IBM BPM project development and helps you get the big picture of quality assurance for business process applications. This series of tutorials describes test methodology for IBM BPM projects. Part 1 describes the necessity of IBM BPM project testing, general testing guidelines, and when to test in the IBM BPM project lifecycle. Part 2 describes details of various testing that should be included in IBM BPM project tests and specific information for environments. Part 3 discusses good testing practices, automation, and testing tools in IBM BPM. This content is part of the IBM Business Process Management Journal.

http://www.ibm.com/developerworks/bpm/bpmjournal/1412_chan1/1412_chan1.html

IBM Business Process Manager testing methodology, Part 3: Good practices
This tutorial, part 3 of the IBM Business Process Manager Testing Methodology series. It describes good testing practices, including how to make IBM® Business Process Manager (BPM) applications testable, how to conduct IBM BPM automation testing, and what testing tools that can be leveraged in IBM BPM projects. Part 1 and Part 2 of the series discussed the overall testing guidelines, the IBM BPM test lifecycle, and detailed test methods. This content is part of the IBM Business Process Management Journal.

http://www.ibm.com/developerworks/bpm/bpmjournal/1412_chan2/1412_chan2.html

Think big! Scale your business rules solutions up to the world of big data
Build an app that uses Business Rules and IBM Analytics for Hadoop services on IBM Bluemix

http://www.ibm.com/developerworks/bpm/library/techarticles/1411_crowther-bluemix/1411_crowther.html

Invoking a secured web service using HTTP basic authentication from a BPEL process
This tutorial shows you how to invoke web services that require HTTP basic authentication using the HTTP Header Setter mediation primitive available in IBM® Business Process Manager (BPM). HTTP basic authentication employs a user name and password to authenticate a service client to a secure endpoint. You can set up HTTP basic authentication when sending or receiving web service requests.

http://www.ibm.com/developerworks/bpm/library/techarticles/1410_sharath/1410_sharath.html

Creating a decision service in IBM Operational Decision Manager that accesses a database table to make decisions
Most enterprise applications today are very dynamic in nature. Customer scenarios often require querying database tables for fetching values, which are then used to execute the rules instead of using static data. This tutorial shows you how to create a decision service in IBM® Operational Decision Manager V8.5 that accesses a database table to make decisions. This content is part of the IBM Business Process Management Journal.

http://www.ibm.com/developerworks/bpm/bpmjournal/1409_sharath/1409_sharath.html

DeveloperWorks Articles

https://developer.ibm.com/odm/docs/recommended-reading/developerworks-articles/





Thursday, April 21, 2016

Useful Stuff Points

Do you want to add the TODO when you generate the methods/classes? Then you could use code templates for that. Like // TODO Auto-generated method stub is added when you generate a method you could put any other comment on top of a method. Window -> Preferences -> Java -> Code Style -> Code Templates
Or do you want to add the TODO to all methods/classes which currently do exist? Thats a bit harder, you could write a plugin which does that for you: Eclipse JDT
If that TODO should always be created when you have modified a class or method you could also write an eclipse plugin which monitors the CompilationUnit in the editor. See recordModifications() here
http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FCompilationUnit.html&anchor=recordModifications%28%29

recordModifications

public void recordModifications()
Enables the recording of changes to this compilation unit and its descendants. The compilation unit must have been created by ASTParserand still be in its original state. Once recording is on, arbitrary changes to the subtree rooted at this compilation unit are recorded internally. Once the modification has been completed, call rewrite to get an object representing the corresponding edits to the original source code string.
Throws:
IllegalArgumentException - if this compilation unit is marked as unmodifiable, or if this compilation unit has already been tampered with, or recording has already been enabled
Since:
3.0

System Requirements for IBM ODM 8.5.1

http://www-969.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1346253507478&osPlatform=Linux

https://developer.ibm.com/answers/questions/265577/changing-jdk-to-18-instead-of-shipped-jdk-17-with.html

https://www.ibm.com/developerworks/community/forums/html/topic?id=cb9a807a-2fb5-4d87-bbf0-2537e1f781fb

https://www.ibm.com/developerworks/community/forums/html/topic?id=1acc7a5e-2537-4a06-83ca-5da87674c8ef

https://www.ibm.com/developerworks/community/forums/html/topic?id=5de3137b-1368-4f79-8ecb-94a6386fa8a8

https://www.ibm.com/developerworks/community/forums/html/topic?id=0eea0370-2a66-4b9b-aba6-7e212b8efdd9

https://developer.ibm.com/answers/users/257099/ajay-kandula/

https://developer.ibm.com/answers/questions/257351/execution-object-model-xom-logic-changes-no-update.html


Thursday, October 29, 2015

Deploying Rule Applications with ILOG JRules

http://logic.stanford.edu/POEM/externalpapers/iRules/WP-JRules6Deployment.pdf

Useful review concerning the three main aspects of rule applications including ZERO development/deployment/administration.

Changing the business rules that govern rating can be done through a “hot deploy” process directly to the production application server, with zero application downtime. Typically, the new business rules will have gone through an extensive testing cycle on a staging server prior to hot deployment to the production server. The support for hot-deployment of rulesets is one of the key features of the Rule Execution Server, and discussed in detail in a subsequent section.

Creating a simple rules engine using the Java scripting API

http://mcqueeney.com/blog/creating-a-simple-rules-engine-using-the-java-scripting-api/

Invoke dynamic languages dynamically, Part 1: Introducing the Java scripting API

Invoke dynamic languages dynamically, Part 1: Introducing the Java scripting API

Use the javax.script API to change a running application
http://www.ibm.com/developerworks/java/library/j-javascripting1/

Guideline for Deciding WHETHER to use a Rules Engine

Some Guidelines For Deciding Whether To Use A Rules Engine

  1. Is your algorithm primarily compute-intensive or is there significant decision-making capability involved?
    • If your basic algorithm is compute-intensive or a table-lookup, without much conditional branching or decision-making involved, then don't use a rules engine.
    • If however, the algorithm involves significant conditional branching or decision-making, then consider using a rules engine.
  2. Once you've determined that your algorithm involves significant decision-making capability, you ought to be able to write some rules specifying the decisions that need to be made. Are the decisions that need to be made relatively simple, or potentially complex?
    • If you find that you can't write the decision rules, for whatever reason, then stop here until you can, or use some other tool instead that will help you discover the rules you need. Put another way, if you can't state some rules, don't use a rules engine.
    • If you have 2, or fewer, conditions in your rules (or, for example, a block with 2 nested if-statements or less), don't use a rules engine-it's probably overkill.
    • If you have 3 or more conditions in your rules (or, for example, a block with 3 or more nested if-statements in pseudo-code), then consider using a rules engine.
  3. Once you've determined that the decisions are complex enough, is your algorithm basically static, or are the rules likely to change reasonably often over time?
    • If the rules/logic are well-defined and static, then don't use a rules engine-you probably don't need the overhead or flexibility.
    • If the rules are likely to change over time due to the nature of the application, then consider using a rules engine-the flexibility is worth the overhead.
  4. Once you've determined that rules may need to be flexible, are you going to maintain the code or finished product over time, or is this effort a one-shot effort?
    • If the code is not going to be maintained over time, then don't use a rules engine-you probably won't gain any significant advantage from it.
    • If the code is going to be maintained over time, consider using a rules engine-the ROI will be worth it (see question #6).
  5. Rules engines continue to get faster and faster, but some applications simply require every bit of speed and performance optimization you can reasonably give. Does your customer require a custom solution or do you need to hard-wire the algorithm for absolute high-end performance, or can the solution accommodate a rules engine?
    • If you need to optimize for speed and memory, or your customer requires a custom solution, then don't use a rules engine.
    • If the performance requirements will accommodate a rules engine solution, then consider using one.
  6. If you answered all the other questions appropriately, can the project/product line afford the overall cost of using a rules engine over the project/product lifecycle?
    • There are a number of costs typically associated with using rules engine tools:
      • Licensing fees for development and deployment of the engine
      • Training developers and (if necessary) end-users (time and money)
      • ROI (return on investment)-financial analysts have shown that you don't begin to break even monetarily on the typical investment in rules engine technology until at least 1 year after deployment to your customer. However, at that point, the flexibility and ease-of-maintenance begin to show significant returns.
    • If the project schedule or product lifecycle can't accommodate the cost of a rules engine, in terms of time and money, then don't use one.
    • If you can't afford to wait at least a year to break even and begin to see a significant ROI, don't use a rules engine.
    • If you can't afford to train your developers and end-users, and you can't afford to hire a consultant, don't use a rules engine.
    • If, however, your project/product lifecycle costs can accommodate the use of a rules engine, it would be well worth the investment, so use one.

Additional Note

A rules engine tool can be very helpful during software development, regardless of other considerations:
  • For simulation and prototyping.
  • In cases where you find you may not really know or understand the rules you are trying to encode in your algorithm, a rules engine can provide a flexible way to encode and modify the rules over time as they are discovered.
  • A rules engine architecture also provides a convenient structure for separating "business logic" from the rest of the system, aiding in the effort to clearly "separate concerns".