Wednesday, July 17, 2013

Watch This! Google Hangout: Using Application Performance Diagnostics Tools to Increase the Effectiveness of Shift-Left Testing

How many times do software developers need the ability to debug their application on a live server? Most developers have great code profiling tools used against their local development working environment, though are often challenged to get similar data from a fully deployed application environment. The unit tests may have passed and given good results in the local development environment, though has issues in the fully deployed environment.

We at Prolifics are using the newly released IBM Application Diagnostics Lite tool to provide our own and customers software developers a quick easy tool to use in troubleshooting issues on a single application server running IBM WebSphere and Portal. This tool provides a quick deployment to provide insight into the execution of requests running on the App Server, for real time viewing or recording for offline review. Our WebSphere and Portal developer, architects and administrators are always interested in new and valuable troubleshooting tools.

One of the best features of APD Lite, is that it is a free download from IBM, only requiring a valid ID on the IBM.com website. You can carry this tool on a USB memory stick and provide quick value to your project.

I  recently participated in a Google Hangout with IBM experts where we discussed the benefits of IBM's application performance diagnostic tools and how they can help application teams reduce time and effort associated with shift-left testing.

Click here to watch!

Abstract: 
The purpose of shift-left testing is to reduce costs by identifying and eliminating issues earlier in the application development life cycle. Compare that to the purpose of application performance diagnostics tools, which is reduce the time and effort required to identify and resolve issues, and it's easy to see how these tools could provide value when used as part of one's shift left testing practices. Join Redmonk Analyst Donnie Berkholz as he leads a discussion with IBM and Prolifics experts on the how IBM's application performance diagnostic tools can help application teams test their code early and often. We'll discuss the concept of shift-left testing and identify use cases in which tools can be used to reduce the time and effort necessary to effectively implement shift-left testing.

Roundtable panelists:
  • Dan Kern, Solution Architect, Prolifics
  • Donnie Berkholz, RedMonk Analyst
  • Dan Berg, IBM Chief Architect at DevOps
  • Lindsay Farmer, Release Manager, Application Performance Diagnostics
  • Joydeep Banerjee, Architect, Application Performance Diagnostics
  • Todd Kindsfather, Product Manager, Application Performance Diagnostics
Want to connect? Email me at dkern@prolifics.com.

To learn more about Prolifics, visit www.prolifics.com.
Dan Kern is a Solution Architect at Prolifics and an IBM Champion for Tivoli. Dan joined Prolifics as a Senior WebSphere Administrator and Performance Tuning expert. Over the past 7 years, he has held roles as a Technical Solution Director, Practice Director for the Automation and Systems Management area and now helps customers realize the full potential of their software investments as a Solution Architect. Dan is highly regarded in the Tivoli SAPM product and business areas and continues his focus on top quality solutions.

Wednesday, July 3, 2013

Using HTDS with Java XOM in IBM Operational Decision Manager 8

Until version 7.1, IBM ILOG-JRules had Hosted Transparent Decision Service (HTDS) working only when you had dynamic Execution Object Model (XML XOM). However, in IBM Operational Decision Manager (ODM) 8, IBM enables you to still use the HTDS when have static XOM (java XOM).

Though this is good for the projects where XOM was defined in Java and Rules needs to be exposed as Web-Service, in ODM 8 we don’t have to write custom web-service code for exposing Rules as Web-Service if you have Java XOM. This saves a significant amount of time, however, there are still some changes you can make if you have Java XOM to make it work with HTDS in ODM 8 seamlessly.

When you deploy your Rules and Java XOM in RES internally, your Java XOM gets converted to XML format and then it gets exposed through the WSDL to call your Rules as Web-Service.

The caveat here is when the conversion from Java XOM to XML format happens inside RES for HTDS you need to tell the engine how XML will get generated. For example if you have List and Date in your XOM you need to generate XML elements accordingly and change the date format from Java util date to XML date.

As we know there isn't a unique correct mapping between Java Object structures and XML documents. We will need to use Java XML binding implementations to provide ways to fine tune the mapping.

For converting your Java XOM seamlessly into HTDS and working with Web-Service (Request/Response) you will have to use JAXB annotations to tell the engine the specific format you want your XML to be generated.

Below is the code how you should be annotating your List in Java XOM.

Let’s say you have your Java code for List defined below:

List yourObjectList = new ArrayList();

In the getter method you need to have your annotations defined like below.



Note: You can give any string for your name (name = "YourObjects") in the annotation but whatever you define here will be part of your generated XML element in your Request/Response, so choose name as per your requirement. Some like it with List at the end while others prefer something Plural, like YourObjects.

When you are dealing with the Date in Java XOM in HTDS you need to have XmlAdapter class extended and then write your own class like below:

Then, wherever you get methods for your date, you should annotate that as indicated below:


This will make sure the conversion from Java-XOM to XML format happening seamlessly.


Alok Keshri, a Technology Manager for Prolifics focusing mainly on ILOG-JRules and ODM space, has over twelve years experience in IT industry spanning across various industry, He is experienced and resourceful enterprise software Tech Lead/Architect and has worked with J2EE/ SOA/BRMS/ BPM technology. He is specialized in Object Oriented Analysis, Design, Development, and Estimation of project with heterogeneous Web technologies in complex business systems based on variety of platforms, he has extensive experience in IBM middleware products such as WebSphere Application Server, WebSphere ILog-JRules, WebSphere Message Broker and other products in the IBM BPM stack. He is certified in WebSphere ILog-JRules and Filenet, Alok received his BE in Electrical Engineering in year 2000.

Wednesday, June 19, 2013

Project Showcase - Prolifics Delivers IBM WebSphere DataPower Solution to Office Supplies Company

At IBM Impact, Prolifics co-hosted a session with our customer that showcased a recent IBM WebSphere DataPower solution. Learn more about how our experts were able to help our customer improve security and achieve full Payment Card Industry (PCI) compliance.

Prolifics' customer has been serving business customers for over 20 years, offering everything from office supplies to technology products to furniture and more. Dedicated to improving customer experiences, the Company embarked on a growth strategy in 2012 aimed at uniting the Web and brick and mortar stores through a corporate revamp. In order to keep personal information secure, company leaders also looked to improve security and policy enforcement for their website as a critical component of supporting this new strategy. Further, the Company was driven to comply with the Payment Card Industry (PCI) Data Security Standard (DSS). With this in mind, the Company began to explore WebSphere DataPower to address their security concerns. Business and IT leaders were confident that DataPower would enable better, faster security and a higher level of compliance for their website. Seeking the expertise of a trusted partner, the Company engaged Prolifics to implement the solution, demonstrating DataPower's ability to help the meet compliance regulations far more quickly and efficiently than before. The appliance now offers front line defense for inbound and outbound internet traffic by acting as a Web facing application firewall and isolates information for further security.

To learn more about Prolifics' DataPower solutions, email solutions@prolifics.com or visit www.prolifics.com.

Monday, May 20, 2013

Prolifics' AJ Aronoff on Healthcare Infrastructure Demands

AJ Aronoff is a Practice Director and IBM Champion covering Application Infrastructure at Prolifics. Recently at IBM Impact, AJ was interviewed on current infrastructure demands in the healthcare industry. Specializing in solutions for the healthcare industry, AJ explains how he can help the industry understand the latest healthcare regulations. In this video, he discusses the value that IBM WebSphere Application Server (WAS) brings to the industry, and the latest advancements in WAS 8.5. In addition, AJ explains the impact mobile technology is having on the healthcare space, opening up the possibility to cut down on a lot of the paperwork as well as allowing doctors and medical staff to record information at each bedside.

View AJ's interview on Healthcare Infrastructure Demands!


Interested in learning more? Contact AJ Aronoff today - aj@prolifics.com.

To learn more about Prolifics, visit www.prolifics.com.


AJ Aronoff is the Application Infrastructure Practice Director for Prolifics and an IBM Champion for IBM WebSphere. AJ first joined Prolifics as a Developer, then specialized in WebSphere MQ. He has 25 years experience in the IT field — 17 of those years at Prolifics. As a Prolifics consultant, he has done MQ design, implementation, infrastructure, monitoring and security assignments at several large financial, insurance, retail and communication firms (Bloomberg, Credit Suisse, Deutsche Bank, DTCC, Fidelity, ITG, JPMC, Och Zif, Tokyo Marine, Pep Boys and British Telecom). He has presented on security and infrastructure at Impact, Hursley comes to Minneapolis and Palisades, and MQ User Groups. His customers use Omegamon to monitor over a thousand systems across the globe.

Application Performance Testing Best Practices

Application Scalability:
  1. Define Application Scalability in two ways:    a. Vertical         b. Horizontal
  2. Vertical scalability is defined as the scalability of an application as additional CPUs are added to the same server
  3. Horizontal scalability is defined as the scalability of an application as additional servers are added to the environment
  4. Scalability of an application is important for large enterprise Portal deployments where an individual server cannot support the anticipated load. In such cases, the Portal provides the capability to cluster multiple instances of the application. This can be achieved by either installing multiple instances of the Portal on a single server with a large number of CPUs or having each instance run in a separate Java Virtual Machine (JVM), a combination of both
  5. Performance improvements are depends an operating system, application server and JVM handle the scheduling of threads across a larger number of CPUs. This is also subject to change as subsequent versions of JVMs are released to market. In addition, careful tuning of the application server is required to ensure that the load on a single instance can be most effectively supported (e.g., Web Sphere Web Container Thread Pool parameters)
  6. For horizontal scalability, the only limitation on the scalability of the Portal will most likely be from the network or database perspective (the database is a shared resource between all instances of the Portal in a particular cluster). Any other system component that is shared by all Portal instances (e.g., LDAP Directory server) can potentially create a bottleneck and prevent further scaling of the application.
  7. Portal instances running in a clustered environment it is required Portal network throughput is below 70% of the maximum network bandwidth available at peak periods (i.e. maximum of 8 MB/sec on a 100 Mb/sec network). Network throughput levels above this will impact the average response times for end users during these periods.
  8. Database CPU utilization of above 75% at peak periods can greatly impact the Portal performance depending on the types of queries being executed at that time

Web Server:
  1. If a web server (e.g., Apache, Sun ONE, IIS) is using proxy to accept request from the application server in a production environment, it is recommended to host the web server on a separate physical server. Such a configuration may be encountered in an Internet deployment with a DMZ (Demilitarized Zone)
  2. The net effect of this is that more resources, in the form of memory and CPU, will be available to the application server to process requests. This will have a small impact on the response times due to an additional network hop but will increase the overall throughput of the application due to the additional CPU resources that will be available

Application Server:
Tuning parameters for Web Sphere & Apache Tomcat application servers
WebSphere:
  1. The optimal number for the Web Container Thread Pool Maximum Size is 75 (default is 50). Both lower and higher values result in slightly lower throughput.
  2. Increasing Thread Pool Minimum Size has adverse effect on performance.
  3. Similarly, increasing Thread Inactivity Timeout has a slightly negative effect on performance.
  4. Running Performance Monitoring Service introduces about 30% overhead
Apache Tomcat:
The development time issues relate to how the Java code for the Web application was designed and implemented. Again, there is a whole set of implementation best practices surrounding this area, such as:
  1. Do not create sessions for JSPs if they are not required
  2. Do not store large objects in your session.
  3. Time out sessions quickly, and invalidate your sessions when you are done with them.
  4. Use the right scope for objects.
  5. Use connection pooling for improving performance.
  6. Cache static data.
  7. Use transfer objects to minimize calls to remote services.
  8. Minimize logging from Web applications, or use simple logging formats
Database Server:
For large enterprise deployments of the Portal, it is recommended that a dedicated database server be used to host the Portal schema. In addition, certain database subsystems (e.g., MetaStore, Users) can be further distributed across several database servers. Deploying the Portal schema in this manner will help to ensure that the database will not become a bottleneck as the Portal is scaled to support a continually growing user base
Oracle 11g:
To assist in the rollout, build a list of tasks that increase the chance of optimal performance in production and enable rapid debugging of the application. Do the following:
  1. When you create the control file for the production database, allow for growth by setting MAXINSTANCES, MAXDATAFILES, MAXLOGFILES, MAXLOGMEMBERS, and MAXLOGHISTORY to values higher than what you anticipate for the rollout. This technique results in more disk space usage and larger control files, but saves time later should these need extension in an emergency
  2. Set block size to the value used to develop the application. Export the schema statistics from the development or test environment to the production database if the testing was done on representative data volumes and the current SQL execution plans are correct
  3. Set the minimal number of initialization parameters. Ideally, most other parameters should be left at default. If there is more tuning to perform, then this appears when the system is under load
  4. Be prepared to manage block contention by setting storage options of database objects. Tables and indexes that experience high INSERT/UPDATE/DELETE rates should be created with automatic segment space management. To avoid contention of rollback segments, use automatic undo management
  5. All SQL statements should be verified to be optimal and their resource usage understood
  6. Validate that middleware and programs that connect to the database are efficient in their connection management and do not logon or logoff repeatedly
  7. Validate that the SQL statements use cursors efficiently. The database should parse each SQL statement once and then execute it multiple times. The most common reason this does not happen is because bind variables are not used properly and WHERE clause predicates are sent as string literals. If you use precompiles to develop the application, then make sure to reset the parameters MAXOPENCURSORS, HOLD_CURSOR, and RELEASE_CURSOR from the default values before precompiling the application
  8. Validate that all schema objects have been correctly migrated from the development environment to the production database. This includes tables, indexes, sequences, triggers, packages, procedures, functions, Java objects, synonyms, grants, and views. Ensure that any modifications made in testing are made to the production system
  9. As soon as the system is rolled out, establish a baseline set of statistics from the database and operating system. This first set of statistics validates or corrects any assumptions made in the design and rollout process 

Monday, May 13, 2013

Showcasing Effecta at SAPPHIRE NOW - Prolifics Tool for Test Automation & Data Validation

Prolifics kicks off SAPPHIRE NOW & ASUG Annual Conference this week in Orlando. At the conference, we will be showcasing our SAP testing solutions and share recent success stories with customers like McKesson and Pacific Coast. At booth #2715, we will also showcase a demo of our Test Automation and Data Validation tool - Effecta.

Get a sneak peek of Effecta by viewing the demo below.

Learn more about our SAP testing solutions for our customers here:
McKesson Transforms Business with Script-less Test Automation
Pacific Coast Builds SAP Test Automation Strategy with Effecta

Effecta Demo


To learn more about Prolifics' week at SAPPHIRE NOW, visit: http://www.prolifics.com/sapphirenow-2013.htm

Thursday, May 9, 2013

BPM in the Music Industry - IBM Impact Presentation Replay

At IBM Impact, I had the opportunity to co-present with one of Prolifics' BPM clients Broadcast Music, Inc. The exciting thing about this presentation is that it we introduced BPM in the context of the dynamic and rapidly changing music industry. With new digital music outlets such as Pandora, Hulu and others, music is no longer confined to vinyl albums, CDs or traditional venues like live concerts, karaoke bars or radio. Music is truly global and ubiquitous which presents interesting new process challenges for those in the music business.

Take a closer look by viewing my presentation from Impact.


BMI: Innovating the Music Industry with BPM from Prolifics

Want to learn more? Connect with me!
Email - hwebb@prolifics.com
LinkedIn - Howard Webb

For more information about Prolifics, visit: www.prolifics.com


Howard Webb is a Director of Prolifics' BPM Advisory Services. Howard and his team provides consulting and guidance to clients in transitioning to highly efficient Process Managed business models, and equips them for success in their BPM initiatives. For over 25 years he has been a consultant, trainer, facilitator, and speaker on the topics of Business Process Management (BPM), data architecture, and project management. He founded the Midwest BPM Users Group and has published articles on BPM and enterprise architecture. Prior to coming to Prolifics Howard was founder and partner of Bizappia, a consulting and services firm focused on business agility, performance and innovation. Prior to Bizappia, he was a Sr. BPM Technical Specialist with IBM.