tag:blogger.com,1999:blog-18220881607254480062024-03-13T09:40:48.139-07:00Prolifics Technology Blog - Global IT Solutions ProviderUnknownnoreply@blogger.comBlogger173125tag:blogger.com,1999:blog-1822088160725448006.post-30777439714925580102014-11-18T10:30:00.000-08:002014-11-19T15:01:51.991-08:00The Prolifics Blog has Moved!<b>We've had a makeover!</b> There are plenty of reasons to be excited for the new Prolifics Blog. Better design, greater search functionalities and increased reach to name a few. Best of all, our blog is now fully integrated on the Prolifics website, delivering a more seamless experience for our readers.<br />
<br />
Please visit us at: <a href="http://www.prolifics.com/blog?utm_source=blogger&utm_medium=social-media&utm_campaign=blog-14-11-18-moving">www.prolifics.com/blog</a><br />
<br />
We look forward to connecting with you through our new blog!Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-43194358103619190572014-10-21T13:43:00.000-07:002014-10-21T13:44:20.902-07:00HIPAA Compliance: A Document Management Approach<b>Key Healthcare Challenge:</b><br />
To comply with Compliance for the Health Insurance Portability and Accountability Act (HIPAA).<br />
<br />
<b>HIPAA Background:</b><br />
The Health Insurance Portability and Accountability Act (HIPAA), and its enabling regulations, ensures patient information and records are protected and maintain their integrity.<br />
<br />
This requires healthcare organizations to control the use and access to a patient’s private identity and medical information.<br />
<br />
HIPAA defines regulations for:<br />
<ul>
<li>Electronic healthcare transactions</li>
<li>Health information privacy</li>
<li>Security requirements</li>
<li>Unique identification for providers</li>
<li>Unique identification for health plans</li>
<li>Enforcement procedures </li>
</ul>
<b>Solution:</b><br />
Document Management for Electronic Medical Records<br />
<br />
<b>Implementation:</b><br />
<ul>
<li>Simple and easy to implement</li>
<li>Replaces paper patient records and archives with immediate ROI</li>
<li>Enables physicians to maintain current work practices:</li>
<ul>
<li>Does NOT require any menu-driven patient information input workflows</li>
<li>Can use current paper-based note taking during office visits</li>
<li>Provides flexibility to access patient charts immediately at remote locations</li>
</ul>
<li>Can also be implemented in concert with a formal EMR system</li>
<ul>
<li>Link external information (lab reports, correspondence from specialists, signed consent forms) to EMR records</li>
</ul>
</ul>
<b>Features:</b><br />
<ul>
<li>Security</li>
<li>Audit trail</li>
<li>Reporting</li>
<li>Electronic Payment Standardization</li>
</ul>
<br />
<b>ROI:</b><br />
<ul>
<li>Access and quality of care: users report very significant gains in fast access to patient information. </li>
<li>Reduce costs associated with copying and retrieving health information. </li>
<li>Ensure aspects of system are compliant. </li>
<li>Health information is more tightly controlled, while at the same time more accessible to those who need it. </li>
<li>Data is protected. </li>
<li>Flexible and Scalable</li>
<ul>
<li>Small Medical Practice Applications:</li>
<ul>
<li>Electronic patient records</li>
<li>Billing, insurance EOB</li>
</ul>
<li>Personnel records</li>
<li>Hospital Applications:</li>
<ul>
<li>Patient records and consent forms linked to EMR system</li>
<li>Accounts Payable</li>
<li>Billing</li>
<li>HR and credentialing</li>
<li>Purchasing and supply chain</li>
</ul>
</ul>
</ul>
<br />
<b>What does it mean to all healthcare organizations?</b><br />
Regardless of where patient information originates - scanned from hard copy, faxed, e-mailed, PC-based or mainframe-based - Document Management Software solutions provides a secure repository that can track all aspects of patient information.<br />
<br />
<i>Ritesh Sujir is a Delivery Manager in the Testing Practice at Prolifics. He is an accomplished project management professional with 14+ years of experience working with Fortune 500 clients. Ritesh specializes in all aspects across project management and is accountable for the development and maintenance of project plans, risk assessments, and status reports. His recent experience includes clients in the Banking, Retail, and Healthcare verticals.</i><br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-32596809225228430852014-10-14T10:30:00.000-07:002014-10-14T10:30:10.741-07:00The Case for Penetration Testing<b>Overview</b><br />
Penetration Testing is the method of testing that focuses on finding areas of weakness in software systems in terms of security. These areas are put to the test to determine if they can be broken into or not.<br />
<br />
A penetration test is a proactive and authorized attempt to evaluate the security of an IT infrastructure by safely attempting to exploit system vulnerabilities, including OS, service and application flaws, improper configurations, and even risky end-user behavior. Such assessments are also useful in validating end-users’ adherence to security policies.<br />
<br />
The fundamental purpose of penetration testing is to measure the feasibility of systems or end-user compromise and evaluate any related consequences such incidents may have on the involved resources or operations.<br />
<div>
<br /></div>
<div>
<div>
<b>Reason for Penetration Testing</b></div>
<div>
<ul>
<li>Security breaches and service interruptions are costly</li>
<ul>
<li>Security breaches and any related interruptions in the performance of services or applications can result in direct financial losses, threaten organizations’ reputations, hamper customer loyalties, and trigger significant fines and penalties.</li>
</ul>
<li>Identifies and prioritizes security risks </li>
<ul>
<li>Penetration testing evaluates an organization’s ability to protect its networks, applications, endpoints and users from external or internal attempts to circumvent its security controls to gain unauthorized or privileged access to protected assets.</li>
</ul>
</ul>
</div>
</div>
<div>
<br /></div>
<div>
<b>When Should Penetration Testing be Performed?</b></div>
<div>
<div>
Penetration testing should be performed on a regular basis to ensure more consistent IT and network security management by revealing how newly discovered threats or emerging vulnerabilities may potentially be assailed by attackers. Tests should also be run whenever:</div>
<div>
<ul>
<li>New network infrastructure or applications are added</li>
<li>Significant upgrades or modifications are applied to infrastructure or applications</li>
<li>New office locations are established</li>
<li>Security patches are applied</li>
<li>End user policies are modified</li>
</ul>
</div>
</div>
<div>
<br /></div>
<div>
<b>Benefits of Penetration Testing</b></div>
<div>
<div>
<ul>
<li>Intelligently Manage vulnerabilities</li>
<li>Avoid the cost of downtime</li>
<li>Meet Regulatory requirements and avoid fines</li>
<li>Preserve customer loyalty and corporate image</li>
</ul>
</div>
<div>
<br /></div>
<div>
<b>How to Conduct Penetration Testing</b></div>
<div>
<ul>
<li>It starts with a list of Vulnerabilities/potential problem areas that would cause a security breach for the systems.</li>
<li>If possible, this list of items has to be ranked in the order of priority/criticality.</li>
<li>Devise penetration tests that would work (attack your system) from both within the network and outside (externally) to determine if you can access data/network/server/website unauthorized.</li>
<li>If the unauthorized access is possible, the system has to be corrected and the series of steps need to be re-run until the problem area is fixed.</li>
</ul>
</div>
<div>
<br /></div>
<div>
<b>Criteria for Selecting the Best Penetrating Tool</b></div>
<div>
<ul>
<li>It should be easy to deploy, configure and use.</li>
<li>It should scan your system easily.</li>
<li>It should categorize vulnerabilities based on severity that needs immediate fix.</li>
<li>It should be able to automate verification of vulnerabilities.</li>
<li>It should re-verify exploits found previously.</li>
<li>It should generate detailed vulnerability reports and logs.</li>
</ul>
</div>
<div>
<br /></div>
<div>
<b>Some of Tools Used for Penetration Testing</b></div>
<div>
<ul>
<li>Metasploit</li>
<ul>
<li>This is the most advanced and popular Framework that can be used to for pen-testing. It is based on the concept of ‘exploit’ which is a code that can surpass the security measures and enter a certain system. If entered, it runs a ‘payload’, a code that performs operations on a target machine, thus creating the perfect framework for penetration testing.</li>
<li>It can be used on web applications, networks, servers etc. It has a command-line and a GUI clickable interface, works on Linux, Apple Mac OS X and Microsoft Windows. </li>
</ul>
<li>WireShark</li>
<ul>
<li>This is basically a network protocol analyzer –popular for providing the minutest details about your network protocols, packet information, decryption etc. It can be used on Windows, Linux, OS X, Solaris, FreeBSD, NetBSD, and many other systems. The information that is retrieved via this tool can be viewed through a GUI, or the TTY-mode TShark utility. </li>
</ul>
<li>Core Impact</li>
<ul>
<li>CORE Impact Pro can be used to test mobile device penetration, network/network devise penetration, password identification and cracking, etc. It has a command-line and a GUI clickable interface, works Microsoft Windows. This is one of the expensive tools in this line and all the information can be found at below page.</li>
</ul>
</ul>
</div>
<div>
<b>Conclusion</b></div>
<div>
Penetration testing must be performed to manage </div>
<div>
<ul>
<li>Intelligently Manage vulnerabilities</li>
<li>Avoid the cost of downtime</li>
<li>Meet Regulatory requirements and avoid fines</li>
</ul>
</div>
<div>
To learn more about Prolifics' testing solutions, visit: <a href="http://www.prolifics.com/solutions/quality-assurance-testing">http://www.prolifics.com/solutions/quality-assurance-testing</a></div>
<div>
<br /></div>
<div>
<i>Ritesh Sujir is a Delivery Manager in the Testing Practice at Prolifics. He is an accomplished project management professional with 14+ years of experience working with Fortune 500 clients. Ritesh specializes in all aspects across project management and is accountable for the development and maintenance of project plans, risk assessments, and status reports. His recent experience includes clients in the Banking, Retail, and Healthcare verticals.</i></div>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-17806623064962504102014-09-30T11:00:00.000-07:002014-09-30T11:00:42.187-07:00The Key to a Successful ECM SolutionWithout intending to diminish the features of ECM, I think it's important that we recognize that most of what we rely on for content management and document management is the solution that wraps around the core capabilities of ingestion, extraction, storage, rendition, metadata, classification, retention, and workflow within ECM platforms. In the vast majority of solutions, the user experience is not driven by the ECM core capabilities. It's delivered by a business activity aligned user interface that supports a work task with the content, metadata, and workflow necessary to get the job done.<br />
<br />
In the solution narrative, business users are so important that they get forgotten. Establishing an ECM platform can be a sizable investment, and the temptation is to aim for generic user interfaces and start by pushing out of the box capabilities onto users. When that works, I'm all for it! ECM can be done on a configuration basis, and new UIs like Content Navigator do so much more than prior front ends were capable of. Unfortunately, that doesn't work very often.<br />
<br />
The reality of our world - or so my selection of specific smartphone apps informs me - is that successful adoption is tied to a user experience first. Capability is the second factor. Reliability is the third. What came out of the box is pretty much an infrastructure concern, and most users are happily unaware of the underpinnings and the technology that they rely on unless it breaks down too often or they lose their data or it requires a manual to use.<br />
<br />
Solutions leverage ECM. ECM out of the box is not, per se, a solution. There's so much more we can do with the digital paper trail of our organizations. We do that by enabling the business solution with ECM and enhancing the business capabilities with the content and metadata and content initiated workflows within ECM. Out of the box is great when it comes to delivering the engine, transmission, and chassis. Business users get excited when you bolt on the rest so they can go for a drive.<br />
<br />
<br />
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.7900009155273px; width: 630px;"><tbody>
<tr><td><a href="http://3.bp.blogspot.com/-pspYkNM4jNA/VCruKEh6s-I/AAAAAAAABIU/KR1w9G_XeX0/s1600/joe_ruske.jpg" imageanchor="1" style="clear: left; font-family: 'Times New Roman'; font-size: medium; line-height: normal; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://3.bp.blogspot.com/-pspYkNM4jNA/VCruKEh6s-I/AAAAAAAABIU/KR1w9G_XeX0/s1600/joe_ruske.jpg" height="200" width="184" /></a><div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<span style="color: black; font-family: inherit;"><i><span style="font-size: small;">Joe Ruske is the ECM Technology Manager at Prolifics. He has o<span style="line-height: normal;">ver twenty years of experience in Information Technology including analysis, design, development, integration, facilitation, vendor management, and management. His p</span></span></i><span style="line-height: normal;"><i><span style="font-size: small;">rofessional expertise includes business process design, information systems architecture, software design, security, heterogeneous systems integration, project implementation, and client management.</span></i><span style="font-size: small;"> </span></span></span></div>
</div>
</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-pspYkNM4jNA/VCruKEh6s-I/AAAAAAAABIU/KR1w9G_XeX0/s1600/joe_ruske.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div>
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-45232130635313816732014-09-30T10:52:00.003-07:002014-09-30T10:52:32.950-07:00Mid-Level Company Mobility Program - iOS or Android?<b>Case at Hand:</b><br />
A mid-sized company with a workforce of 500+ employees, out of which 40-60% are stationed at client locations more than 50% of the working hours. The company wants to provide a mobile platform to keep the employees connected at all times. With BB on its way to decline, the company decides to establish a new mobile computing platform for its employees, along with a BYOD support option, provided the mobile device is compatible with the company network and user has complete documentation supporting his/her proof of purchase etc.<br />
<br />
Evaluating the various options, the company IT admins should look into the following factors here:<br />
<br />
<b>Getting the Work Done: </b><br />
Both android iOS supports MS Exchange accounts, android even has the meeting invite response.<br />
<br />
Both android and iOS support MS office. There are multiple 3rd party app providers for working with MS office on both leading mobile platform. Google recently even release Google Docs, Sheet and Slides – which have the native capability to edit the MS office 3 most important formats – Word, Excel and PowerPoints, and that too for free! Also google drive provides a large cloud drive for free which can be used for free and seamlessly integrates with Google’s office solutions. So, a ‘+1’ for android in this department.<br />
<br />
<b>Network Support for Admins: </b><br />
This is important – as there is a BYOD option that the company wants to explore. However if the company decides to go with android instead of iOS, the network admins are sure to have a tough time due to android fragmentation. Even if most of the android users are on KitKat (4.2+), the various UI customizations by the OEMs can still create nightmares for the admins trying to troubleshoot device related issues over a call. Here the iOS scores +1 due to vertical integration between software and hardware and minimal fragmentation and more or less the same UI over all iOS devices.<br />
<br />
<b>Security: </b><br />
Both android and iOS provides robust security with device encryption and remote wipe features. iOS maintains an edge here as android devices are easier to unlock bootloader and obtain ‘root’. It’s also easier to ‘sideload’ applications in android than in iOS which can be security admin nightmare.<br />
<br />
Also starting from iOS 8 the device encryption will be switched on by default. Starting with Android L google is rumored to keep android device encryption switched on by default which will give it added protection. However despite all this, the perception of security in iOS is more than that of android as it had issues of malware infections in the past through the official Google Play Store. Due to fingerprint scanner present on all newer iOS devices, iOS gains one more +1 here.<br />
<br />
<b>Cloud Implementation: </b><br />
Google’s cloud services are much robust than apple’s which is just foraying into the cloud area with its iCloud initiatives. Android can use enterprise J2EE backend services, whereas iOS is a bit limited in scope in this area. Hence developer support can be better for android than iOS due to the popularity with J2EE framework. +1 for android here<br />
<br />
<b>Killer Apps: </b><br />
For many Google maps and Google Now are two killer apps that overshadow the apple maps / Siri by a large margin. Google seamless integration of data across its multiple services results in a much powerful contextual device. Regarding other apps, google and Apple are almost tied as both platforms carry almost all the required apps by developers. The android emulator is supposed to be one of the best and hence app development is a breeze. +1 for Android here.<br />
<br />
<b>Conclusion:</b><br />
Office work – Google<br />
Network admin – iOS<br />
Security – iOS<br />
Cloud implementation – Google<br />
Apps / Solutions – Google<br />
<br />
The company management should allocate weights to the various parameters and evaluate the costs associated with network administration of each platform. As of now both platforms are quite competitive and provide their own sets of value addition and challenges for a company-wide BYOD program.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-45334812933907037912014-09-08T09:14:00.004-07:002014-09-08T09:14:36.688-07:00Adding IT Value to Evolving Business Models<b>Executive Summary:</b><br />
Change has become the new normal across industries. The healthcare industry is dealing with changing market dynamics and is only now realizing the full impact of the Affordable Care Act. The financial services sector is facing growing regulatory challenges on one side and the opportunities offered by the recovering global economy on the other side. The US retail and B2B banking sector is under the impact of changing customer preferences vis-à-vis mobile banking. US Retailers are also dealing with domestic “low price” challengers and the avenues offered by the investment opportunities in the emerging economies, especially in the e-commerce sector. Manufacturers have the need to optimize the production and supply chains in order to lower costs. This article explores how effective IT decision making could help firms deal with the constant flux in their business models.<br />
<br />
<b>Healthcare:</b><br />
The market dynamics in healthcare is changing, as the firms involved understand the true impact of the Affordable Care Act. There is increased competition because of insurance exchanges and the existing market shares are being disrupted (see exhibit 1).The reimbursement models are being updated, the healthcare networks are evolving and the Medicare market is expanding as more baby boomers retire. Hospitals are revamping their service delivery models to better improve patient outcomes and insurance companies (payers) are trying to negotiate better contracts with hospitals (providers) and formulate the most optimal benefit plans for patients. Under such a scenario, it’s critical for both the payers and providers to understand the evolved preferences of the old and new clients/customers. Do customers prefer a high deductible plan with wide coverage or a low deductible plan with narrow coverage? What type of group insurance are the employers demanding with geographically diversified work force? Are more employees telecommuting to work and if yes, have their insurance needs changed?<br />
<br />
The second key aspect is to re-evaluate the firm’s business value. How can I drive better business value in the changed landscape? Are we targeting the correct market segment? Are our plans/benefits still relevant? Are our claim adjudication systems capable of meeting the new SLA’s? After deliberating on the above questions, the firms have to assess the capabilities that need shoring up. Creating a rules based, flexible reimbursement, network, contract and benefit management systems and having a better control of the business processes by automating them will help the insurance companies. Since the changes are continuous, it’s beneficial to set up a Service Oriented Architecture within the enterprise and better integrate the disparate source systems. Firms can deal with changes better when a service oriented enterprise is created.<br />
<br />
<b>Exhibit 1:</b><br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-9EzqgG2eHiA/VA3UUULNZmI/AAAAAAAABH4/pCKyh7tJRO0/s1600/it-value-1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-9EzqgG2eHiA/VA3UUULNZmI/AAAAAAAABH4/pCKyh7tJRO0/s1600/it-value-1.png" height="472" width="640" /></a></div>
<b>Financial Sector:</b></div>
<div>
<div>
As the global economy recovers from the financial crisis of 2008, it presents both challenges as well as opportunities. Various regulatory requirements put in place such as Basel III, Dodd Frank Act, Simpson-Bowles Plan etc., to prevent a repeat of the financial crisis force significant changes to the business model of the financial firms. A KPMG study on the impact of regulations on the financial services sector predicts a high impact on the net income of the firms (See exhibit 2). With these regulatory changes, firms have to update their IT systems to better capture critical data. Firms are better off undertaking an effort to optimize their IT infrastructure, overhauling their enterprise application security, enhancing their digital user experience interfaces to capture additional data and migrating and modernizing their IT applications. These efforts could be staggered to prevent disruptions to the everyday business but are very critical to effectively comply with regulatory requirements. </div>
<div>
<br /></div>
<div>
The recovery of the global economy also provides new opportunities for growth to the sector. As new business models are discovered and new market segments identified, the firms have to put in place business processes and rules to capture those segments. Digitizing business processes and rules gives better control to the firms and the required flexibility to deal with any future changes.</div>
<div>
<br /></div>
<div>
<b>Exhibit 2: </b></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-UhMy048A_5g/VA3UUV1855I/AAAAAAAABH8/rY4IlklSLGE/s1600/it-value-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-UhMy048A_5g/VA3UUV1855I/AAAAAAAABH8/rY4IlklSLGE/s1600/it-value-2.png" height="350" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<b>Banking:</b></div>
<div>
<div>
The new retail and B2B banking customer is increasingly conducting his/her transactions via the mobile application. As per a McKinsey & Co survey, today 65 percent of customers interact with their banks through multiple channels. Human interactions are generally reserved for more complex problems: only 25 percent of agent phone calls are inquiries that could be serviced in other channels. Banks that do not provide the seamless banking experience to customers across various channels – branch, mobile and web – risk the possibility of losing out the customer’s business to other banks that provide a seamless experience. Effective mobile strategy that provides banking value to the customer and also provides banks an ability to cross sell products to the consumer similar to a physical branch is needed. Banks need to adopt cloud mobile development platform such as IBM Worklight to quickly create mobile applications and roll it out to the end consumer.</div>
<div>
<br /></div>
<div>
In a B2B setting, banks that can quickly set up new accounts and add/update financial products to the banking business customer can capture additional market share. The sales representatives should be able to present the product information and capture customer information on a tablet. Designing and selling new financial products that offer convenience to the businesses will provide the competitive edge to the banks.</div>
<div>
</div>
<div>
<b>Retail:</b></div>
<div>
US retailers are being challenged over price by “online only” retailers such as Amazon and other competitors that are offering e-commerce channel. The retailers are struggling to reduce high costs due to big investment in stores. A key method to reduce high inventory costs is to have an integrated supply chain visibility and to be able to sync the merchandize ordering with that of supplier inventories. Also retailers can no longer have fulfillment channels in silos. There is a need to integrate the fulfillment channels and provide visibility across – a consumer should be able to add a desired product to their wish list on the website, review that product in store, purchase the product in store or place an order online and receive the product. The product return procedures should be similar irrespective of where the product was purchased. In order to provide the new business value, the retailers need to transform the customer digital experience, better integrate their source systems and modernize their IT applications by moving them into new platforms.</div>
<div>
<br /></div>
<div>
E-Commerce provides an exciting opportunity in the emerging markets. As per RESEARCHANDMARKETS study, the e-Commerce industry in India is expected to grow at a CAGR of 40%, from US $ 5.9 billion in 2010 to US $ 34.2 billion in 2015E. An India based e-Commerce retailer, Flipkart, recently raised $1 billion in fresh funding. Amazon is increasing its presence in India as well. The emerging middle class of the developing economies provides a huge opportunity for the retailers. The new consumers with disposable income favor purchases of latest technology products, mainly electronic goods, over the internet. There is a significant margin that could be captured here. These new markets provide additional area of growth for those retailers with global ambitions. The retailers should fortify their e-commerce offerings and build a strong supply chain integrated with their e-commerce sites both over the web and mobile. The proliferation of smart phones in emerging economies also provides a huge opportunity in the m-commerce space. The mobile development strategy is critical to capture this opportunity.</div>
<div>
</div>
<div>
<b>Manufacturing:</b></div>
<div>
With increased competition from global competitors, US manufacturers face a growing need to optimize production and reduce costs. It is more critical than ever to identify the core strengths in manufacturing and outsource any parts that are better off supplied by a supplier with a low cost. The manufacturers need to constantly evaluate available supply chain options and choose the most cost effective option. As per a KPMG survey, many manufacturing executives (49 percent globally; 54 percent U.S.) admit that their companies currently do not have visibility of their supply chain beyond Tier 1 suppliers. Moreover, only 9 percent of the 335 global respondents of the 2013 KPMG survey say they have complete visibility of their supply chains. This number is even lower among U.S. executives, with only 7 percent claiming complete supplier visibility (see exhibit 3). Adopting a robust Business Analytics and Decision Management solution is a key lever in the changed landscape. Using a business analytics and reporting software such as IBM Cognos provides the manufacturers with access to real time data on production capacity, inventory management, supplier inventories, budgeting, forecasting etc., so that more informed decisions could be made.</div>
</div>
<div>
<br /></div>
<div>
<b>Exhibit 3:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ZYnbXUfZRMo/VA3UUbCNPGI/AAAAAAAABH0/776Yj6JlLJc/s1600/it-value-3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-ZYnbXUfZRMo/VA3UUbCNPGI/AAAAAAAABH0/776Yj6JlLJc/s1600/it-value-3.jpg" height="328" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
<b>Conclusion:</b></div>
<div>
While updating the business model to better deal with the changing landscape is a challenge, overhauling and effectively implementing an IT ecosystem will help smooth the journey to a great extent. Taking the help of advances in IT will help to reduce the productivity disruptions caused while modifying the current business model. Choosing a trusted IT business partner that can provide holistic IT services will also go a long way in alleviating this pain.</div>
</div>
<div>
<br /></div>
<div>
To learn about how Prolifics provides business value to clients around the world, visit <a href="http://www.prolifics.com/">www.prolifics.com</a>.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.7900009155273px; width: 630px;"><tbody>
<tr><td><a href="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" imageanchor="1" style="clear: left; color: #6699cc; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center; text-decoration: none;"><img border="0" src="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" style="border: none; position: relative;" /></a><br /><div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>N.R. Vijay is a Solution Architect in the Business Process Management division of Prolifics. He has over 10 years of consulting experience across domains such as Retail, Healthcare and Banking. Specializing in technology, management concepts and enterprise strategy, he is focused on change management and process improvement initiatives. He co-authored a whitepaper titled "<a href="http://www.prolifics.com/customer-loyalty-bpm-analytics.htm." style="color: #6699cc; text-decoration: none;" target="_blank">Improving Customer Loyalty through Business Process Optimization and Advanced Business Analytics</a>"</i><br /><br /><a href="http://www.linkedin.com/profile/view?id=24862963&authType=NAME_SEARCH&authToken=mkg4&locale=en_US&srchid=2981910231398449822855&srchindex=1&srchtotal=57&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A2981910231398449822855%2CVSRPtargetId%3A24862963%2CVSRPcmpt%3Aprimary" style="color: #6699cc; text-decoration: none;" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-46951840173817607872014-08-27T06:40:00.000-07:002014-08-27T06:40:02.134-07:00Achieving Regulatory Compliance with Decision ManagementThe 2008 financial crisis affected each of us in some manner. In particular, financial institutions and banks felt most of the heat. There were several repercussions of this crisis in the form of increased regulations and various legislation in an effort to curtail such an occurrence in the future. The aim of such regulations is to maintain confidence in the financial system, to increase financial stability, to protect consumers at some level and to reduce financial irregularities.<br />
<br />
Since financial institutions now live in a climate of increased compliance and regulation, there has been an increase of consulting firms – both technical and advisory – in providing specialized services to help these institutions implement regulatory compliance so that these institutions can focus on their business while complying with these ever changing regulations.<br />
<br />
It would be futile to jump into a solution of how this can be achieved without understanding what regulatory compliance means. Compliance means conforming to a rule which can be a policy, standard or law. Regulatory Compliance describes the goal that companies aspire to achieve in order to comply with relevant laws and regulations.<br />
<br />
<b>Where do business rules fit in the picture?</b><br />
Business rules are by definition a statement that describes the policies or constraints of an organization. Since compliance requires conforming to a policy in general, business rules fit the perfect picture as a placeholder of such policies. This is for various reasons. First, rules are repeatable and tractable to automation. Second, rules are transparent and easily traceable. This makes for increased visibility of the policies which are to be complied with. Business rules implemented with IBM’s Operational Decision Management software can be exported to a word or excel document, and even be emailed to an organization’s legal department in the format they are written. Third, rules can be changed easily with zero down time to make the change to production. This helps organizations cope with an ever-changing regulatory environment and allow them to focus on its business rather than inviting preseason resources keeping up with a changing regulatory environment.<br />
<br />
<b>How can regulatory compliance be achieved by Operational Decision Management (ODM)?</b><br />
The best way to describe ODM’s capabilities for regulatory compliance would be to take existing compliance policies that firms have to constantly deal with, and propose an implementation using ODM. We take one of the most challenging regulations that was recently (2010) enacted by the 111th US Congress – it is the <b>Foreign Account Tax Compliance Act </b>or more popularly known as <b>FATCA</b>. The act aims to tackle tax evasion by US Citizens to tax havens or strong data protection countries like Switzerland. Foreign financial institutions like banks, insurance firms and fund houses are affected by FATCA and need to comply with FATCA regulations. Individuals with US nationality, US address or phone number and corporations with substantial US ownership are affected by this legislation. Complying with FATCA became so complex and necessary at the same time that IBM has offered a <a href="http://www-01.ibm.com/software/info/bpm/fatca-foreign-account-tax-compliance-act/" target="_blank">specialized FATCA solution</a> in their offerings.<br />
<br />
One of the challenges FATCA brings is the amount of information it requires an organization to process which especially creates a hassle to the organization’s technology platform. There are three different impacts to the technology platform with FATCA – customer classification, transaction monitoring and finally IRS reporting.<br />
<br />
In our business case example, let us study customer classification. In order to comply with FATCA, financial organizations have to collect a W-9 form from all account holders who are US Persons. This is clearly business logic which can take an ugly and complex turn when implemented in application code. The solution: <b>WebSphere Operational Decision Management (ODM).</b> The above business logic can be copied word to word and represented in the form of a business rule. It can be created in what is called a <b>rule designer</b>. This is how the same business logic looks like when written in ODM as a business rule:<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-IXktJXmkFww/U_z5V7mC-qI/AAAAAAAABG8/3wlKEqYdHuo/s1600/odm-reg-0826-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-IXktJXmkFww/U_z5V7mC-qI/AAAAAAAABG8/3wlKEqYdHuo/s1600/odm-reg-0826-1.png" height="181" width="400" /></a></div>
The above business rule can be exported as-is to what is called the decision center which is the special portal that business users have access to with the ODM suite of products. Decision Center gives immense visibility to the rules across an organization. Major stakeholders can log in to this portal and view the contents of critical decision tables or business rules. Returning to our scenario above, the same FATCA rule when deployed to the decision center, can be edited by business users by click of a button. Clicking on the “Edit” link below, the rule can be easily modified by a non-technical user:<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-pL2rkFN4wo4/U_z5V1HW0pI/AAAAAAAABHA/qNeh9wAITBw/s1600/odm-reg-0826-2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-pL2rkFN4wo4/U_z5V1HW0pI/AAAAAAAABHA/qNeh9wAITBw/s1600/odm-reg-0826-2.png" height="128" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
<br /></div>
<div>
Any changes to these business rules in general can be directly deployed to production environment, through the decision center portal. Obviously, there are various recommended governance strategies that provide checks and balances along with regression testing, so that incorrect information is not pushed to production servers. Nevertheless, the capability to change an existing policy (or a decision table) is available with ODM.</div>
<div>
<br /></div>
<div>
<b>Conclusion</b></div>
<div>
Regulations are here to stay and the sooner organizations adapt to implement compliance with these regulations, the better they will become for their competition. In our example for FATCA we just saw how ODM can be leveraged to implement changes at a lightning pace. There is much more that can be achieved with ODM, this just gives a small glimpse of what your organization can look forward to when selecting ODM as a solution to meet your organization’s compliance.<br />
<br />
<br />
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-5Ol4PpjpGxE/U_3feBDfeXI/AAAAAAAABHU/FUyKBodK7pQ/s1600/self_photo.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-5Ol4PpjpGxE/U_3feBDfeXI/AAAAAAAABHU/FUyKBodK7pQ/s1600/self_photo.JPG" height="200" width="189" /></a></div>
</div>
<br /><div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<div>
<span style="color: black; font-family: 'Times New Roman'; font-size: small; line-height: normal;"><i>Akshat Srivastava is a Senior ODM Consultant at Prolifics with about 7 years of experience in the IT industry having worked in insurance, banking, retail and public sector companies. He is experienced in all aspects of the development life cycle, including bottom-up estimates, analysis, design, development, testing, release management, and bug-fixing. He has created rule based solutions at various clients, authored rule repositories and best practice documents while focusing on WebSphere Operational Decision Management as the implementation environment. He has also created BPM applications for client onboarding for leading financial institutions. Akshat holds a bachelor’s degree in computer science from California State University.</i></span></div>
<br /><a href="https://www.linkedin.com/profile/view?id=48169982&authType=NAME_SEARCH&authToken=VFwQ&locale=en_US&srchid=416564021409146695293&srchindex=1&srchtotal=63&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A416564021409146695293%2CVSRPtargetId%3A48169982%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
<br /></div>
</div>
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-84495912579259731702014-08-26T06:36:00.000-07:002014-08-27T06:26:46.877-07:00Testing Philosophy in ODM: Feasibility of Complete Rule Testing in Decision Validation Services (DVS)Software testing is an important step in the software development life cycle. IBM Operational decision Management (ODM) is not an exception. Testing in ODM is done through Decision Validation Services (DVS). It automatically generates an excel sheet with specified input fields from the Execution Object Model (XOM). To run a test you need to fill out the excel sheet with test cases and expected outputs. Each row would represent a test case. In this article I would like to discuss the feasibility of running a complete (or close to complete) test in DVS based on the number of fields and the complexity of the decision (rules).<br />
<br />
Let us first consider the feasibility of complete test regardless of the technology/software choice. For simplicity let us consider rules around only three fields (Field1, Field2, Field3), which carry binary values. The maximum number of test cases needed to run a complete test for the ruleset is 2^3=8.<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
#<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
Field1<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
Field2<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
Field3<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
Ruleset Output<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
1<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
2<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
3<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
4<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
5<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
6<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
7<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 88.6pt;" valign="top" width="118"><div class="MsoNormal">
8<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 97.1pt;" valign="top" width="129"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.9pt;" valign="top" width="132"><div class="MsoNormal">
<br /></div>
</td>
</tr>
</tbody></table>
<br />
This is a simple example (n=3), but it can help us visualize and understand how to handle the test cases with a lot more fields/elements. Note: 2^3=8 is also the maximum number of unambiguous rules that can be implemented with 3 fields. This can also be visualized as a binary tree. The height represents the number of fields and the leaves of the tree represent the rules. E.g. the left most leaf R1 corresponds to the rule#1 in the above table (F1=true and F2=true and F3=true).<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-3NfcW-XYq1w/U_yLbDAdMaI/AAAAAAAABGE/Y09b0kH71lk/s1600/odm_0826_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-3NfcW-XYq1w/U_yLbDAdMaI/AAAAAAAABGE/Y09b0kH71lk/s1600/odm_0826_1.png" height="153" width="400" /></a></div>
<div>
<br /></div>
<div>
<div>
In general for N fields, each of which can take K values (group of values), there can be at most K^N unambiguous rules implemented. In the above example N=3 and K=2 (binary fields). We can generalize it even further. There can be fields with different number of accepted values (group of values). If there are n fields, each of which can take k values and there are m fields each of which can take p values, there can be at most k^n* p^m unambiguous rules implemented. </div>
<div>
<br /></div>
<div>
Another philosophical question we should ask is how much testing is sufficient. E.g. if we have implemented R1,R2,R3, do we have to implement test cases for the tracks R4, R5, R6, R7,R8 , i.e. do we have to prove that unimplemented rules did not fire(unintentionally)?!?! The answer is - it depends!! We may have to do 1 or 2 test cases for unimplemented rules, depending on the complexity of the rules. Example: loan approval application that has a rule: “if the age of the applicant is greater than 40 and the credit score is “good” then approve”. If we were to write test cases for that single rule, we might have to do the following:</div>
</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.9pt;" valign="top" width="61"><div class="MsoNormal">
#<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;" valign="top" width="174"><div class="MsoNormal">
Age is greater than 40<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal">
Credit score is “good”<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal">
Expected output<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.9pt;" valign="top" width="61"><div class="MsoNormal">
1<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;" valign="top" width="174"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal">
Approve<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 45.9pt;" valign="top" width="61"><div class="MsoNormal">
2<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;" valign="top" width="174"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 121.5pt;" valign="top" width="162"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 2.5in;" valign="top" width="240"><div class="MsoNormal">
The default approval status<o:p></o:p></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<div>
Theoretically we did not “have to” do the second test case, but it is good to make sure the approval is set by the implemented rules and not by some bug that sets it to “approve” regardless of rule conditions. </div>
<div>
<br /></div>
<div>
What if there were 100 fields instead and let us keep them binary for simplicity (would not change the problem if they could accept 3, 4, 5 ... n values). The max number of rules constructed and the max number of test cases need to do a complete case is 2^100. </div>
</div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 70.3pt;" valign="top" width="94"><div align="center" class="MsoNormal" style="text-align: center;">
#<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
Field1<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
Field2<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.95pt;" valign="top" width="100"><div class="MsoNormal">
…<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
Field100<o:p></o:p></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 85.6pt;" valign="top" width="114"><div class="MsoNormal">
Ruleset Output<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 70.3pt;" valign="top" width="94"><div align="center" class="MsoNormal" style="text-align: center;">
1<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.95pt;" valign="top" width="100"><div class="MsoNormal">
<br /></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 85.6pt;" valign="top" width="114"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 70.3pt;" valign="top" width="94"><div align="center" class="MsoNormal" style="text-align: center;">
2<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
T<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.95pt;" valign="top" width="100"><div class="MsoNormal">
<br /></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 85.6pt;" valign="top" width="114"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 70.3pt;" valign="top" width="94"><div align="center" class="MsoNormal" style="text-align: center;">
…<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
…<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
…<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.95pt;" valign="top" width="100"><div class="MsoNormal">
<br /></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
…<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 85.6pt;" valign="top" width="114"><div class="MsoNormal">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 70.3pt;" valign="top" width="94"><div class="MsoNormal">
<!--[if gte msEquation 12]><m:oMathPara><m:oMath><m:sSup><m:sSupPr><span
style='font-family:"Cambria Math","serif";mso-ascii-font-family:"Cambria Math";
mso-hansi-font-family:"Cambria Math"'><m:ctrlPr></m:ctrlPr></span></m:sSupPr><m:e><i
style='mso-bidi-font-style:normal'><span style='font-family:"Cambria Math","serif"'><m:r>2</m:r></span></i></m:e><m:sup><i
style='mso-bidi-font-style:normal'><span style='font-family:"Cambria Math","serif"'><m:r>100</m:r></span></i></m:sup></m:sSup></m:oMath></m:oMathPara><![endif]--><!--[if !msEquation]--><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 12.0pt; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-US; mso-hansi-theme-font: minor-latin;"><v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f">
<v:stroke joinstyle="miter">
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
<v:f eqn="sum @0 1 0">
<v:f eqn="sum 0 0 @1">
<v:f eqn="prod @2 1 2">
<v:f eqn="prod @3 21600 pixelWidth">
<v:f eqn="prod @3 21600 pixelHeight">
<v:f eqn="sum @0 0 1">
<v:f eqn="prod @6 1 2">
<v:f eqn="prod @7 21600 pixelWidth">
<v:f eqn="sum @8 21600 0">
<v:f eqn="prod @7 21600 pixelHeight">
<v:f eqn="sum @10 21600 0">
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas>
<v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f">
<o:lock aspectratio="t" v:ext="edit">
</o:lock></v:path></v:stroke></v:shapetype><v:shape id="_x0000_i1025" style="height: 13.5pt; width: 20.25pt;" type="#_x0000_t75">
<v:imagedata chromakey="white" o:title="" src="file:///C:\Users\MABINA~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png">
</v:imagedata></v:shape></span><!--[endif]--><o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 74.95pt;" valign="top" width="100"><div class="MsoNormal">
<br /></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 82.65pt;" valign="top" width="110"><div class="MsoNormal">
F<o:p></o:p></div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 85.6pt;" valign="top" width="114"><div class="MsoNormal">
<br /></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
<div>
Often times we implement rules with more than 100 XOM elements and to run a complete test we would need 2^100~1.27*〖10〗^30test cases. Theoretically this is an unfeasible problem if we consider the worst case scenario. </div>
<div>
<br /></div>
<div>
The number of fields is relevant only in theoretical discussion, considering the worst cases (2^n , where n is the number of fields). In practice though the number of test cases is needed for DVS is equal or comparable to the number of rules. That means that if it was feasible to create N number of rules, then it would be feasible to implement sufficient test cases for complete testing in DVS. </div>
</div>
<div>
<br /></div>
<div>
To learn more about Prolifics' ODM solutions, <a href="http://www.prolifics.com/solutions/business-analytics-decision-management/decision-management" target="_blank">visit our website</a> or contact <a href="mailto:solutions@prolifics.com">solutions@prolifics.com</a>.</div>
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-zFPJeG1_g_c/U_yLvfIhDtI/AAAAAAAABGM/Y7kOOj5Oqys/s1600/ASahakyan.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-zFPJeG1_g_c/U_yLvfIhDtI/AAAAAAAABGM/Y7kOOj5Oqys/s1600/ASahakyan.jpg" height="200" width="200" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<div>
<i>Artur Sahakyan is an Associate Consultant at Prolifics specializing in IBM WebSphere Operational Decision Management (v5.xx - v8.xx). Artur has a strong background in mathematics and probability/statistics. He also has profound knowledge of IBM Business Process Manager, IBM Integration Bus (IIB v9), IBM WebSphere MQ (v7), IBM SPSS Modeler, IBM SPSS Statistics, Java, C++, C. </i></div>
<br />
<a href="https://www.linkedin.com/profile/view?id=39996192&authType=OUT_OF_NETWORK&authToken=kxoM&locale=en_US&trk=tyah2&trkInfo=tarId%3A1409059813136%2Ctas%3Aartur%2Cidx%3A1-1-1" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-24550043784688804562014-07-29T06:56:00.000-07:002014-07-29T06:56:45.288-07:00Customers Purchase Benefits, Not ProductsBusiness organizations have core competency in certain areas and are more likely to have strong capabilities in those areas. Firms are also likely to look for outside consultants in areas where they do not have enough home grown talent and more likely to outsource capabilities such as IT in case of an internal gap. This article is a quick overview of some of the decision challenges faced by the firms while trying to decide what capabilities to outsource.<br />
<br />
Businesses are facing a challenging landscape. The customer is connected and empowered. The customer can compare healthcare insurance plans at the click of a button. He or she can search for the best price for consumer goods online and order it online to have it delivered the same day. The customer is purely shopping for benefits while the firms are selling products/services to provide those benefits. Consumer needs have changed, since they are exposed to products from across the globe. A customer's access to information is unbound, thanks to internet. This has resulted in firms re-evaluating their business model to see if they are still serving the evolving customer needs. An insurance company offering high deductible plans with a wide coverage might no longer be relevant in a new target market. The new market demand, due to changing demographics, might be for lower deductibles with a smaller specialist network. An historically well-performing video game with MP3 song playing capabilities might no longer be relevant because of the availability of music on smartphones.<br />
<br />
Under such scenarios, the firm has to re-think its business model and make key decisions about how best to leverage its existing capabilities to meet the new market demands. After the firm has decided to revamp its product/service to best meet the new consumer needs, it has to review its existing capabilities - human resource capabilities, IT capabilities, supplier capabilities etc. Because of the competitive landscape, the time to market for modified products/services has to be very short. Productivity of its employees becomes critical in order to achieve high speed to market. IT systems play a key role in increasing the productivity of a firm's employees. During the process of selecting a suitable IT product, the firms have to select a product that best compliments its employees’ skills. Not every "out of the shelf" product will meet the needs of the firms. Especially since the changing business needs require updated employee skills, it is rare for "off-the-shelf" products to meet the new needs of the firms exactly. The IT products needs to be customized to the needs of the firms. Under such a scenario, it is critical for the firms to engage with IT product & consulting companies that have worked with firms from various industries and effectively understand the changing needs of its clients. Firms such as IBM have worked with clients from various industries for a long time and collected extensive domain knowledge. This knowledge is helping IBM and other firms in its ecosystem to quickly develop products and solutions to effectively deal with the emerging challenges. IBM products such as IBM BPM 8. X (Business Process Manager), Cognos, ODM (Operations Decision Management) carry with them an history of experience with business clients with evolving needs. This experience has resulted in development of features that are applicable and adaptable to various business needs. E.g.: The business process design and integration capabilities are as adaptable to a retailers in-house legacy mainframe systems as they are adaptable to a newly on-boarded supplier’s web services. Cognos data analytics capabilities can “talk” to an insurance firm’s legacy data source systems as well as capture real time data generated by the process.<br />
<br />
When the time to market is so short, it might be difficult for firms to build the IT capabilities in-house. Firms are more likely to benefit from outsourcing IT development in areas where the internal employees have not yet matured at. Besides, the key upside of outsourcing an IT skill is quick development of IT applications and helping in the final goal of delivering a firms product/ service to market faster. Before making the decision to choose an IT consulting firm, the business firm has to evaluate the client portfolio of the IT consulting firm, it's nature of projects implemented historically and breadth of domain expertise. IT consulting firms that have worked with key players in a particular industry have better exposure to industry challenges. Consultants that have a shorter learning curve will achieve higher productivity while helping to design and build an suitable IT application.<br />
<br />
Bottom Line: When businesses choose the right, flexible IT application and partner with consultants with right skills, they increase their chances of effectively catering the evolving needs of their customers.<br />
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><a href="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" imageanchor="1" style="clear: left; color: #6699cc; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center; text-decoration: none;"><img border="0" src="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" style="border: none; position: relative;" /></a><br /><div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>N.R. Vijay is a Solution Architect in the Business Process Management division of Prolifics. He has over 10 years of consulting experience across domains such as Retail, Healthcare and Banking. Specializing in technology, management concepts and enterprise strategy, he is focused on change management and process improvement initiatives. He co-authored a whitepaper titled "<a href="http://www.prolifics.com/customer-loyalty-bpm-analytics.htm." style="color: #6699cc; text-decoration: none;" target="_blank">Improving Customer Loyalty through Business Process Optimization and Advanced Business Analytics</a>"</i><br /><br /><a href="http://www.linkedin.com/profile/view?id=24862963&authType=NAME_SEARCH&authToken=mkg4&locale=en_US&srchid=2981910231398449822855&srchindex=1&srchtotal=57&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A2981910231398449822855%2CVSRPtargetId%3A24862963%2CVSRPcmpt%3Aprimary" style="color: #6699cc; text-decoration: none;" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-49874236571535113262014-07-24T11:57:00.005-07:002014-07-24T11:57:50.311-07:004 Steps to Risk-Based Software TestingRisk-based testing is the approach that allows us to plan our testing efforts in a way that reduces the residual level of product risk when the system is deployed. A risk-based approach helps you to understand the risks at the initial stage so that the mitigation strategy will be scheduled and implemented. Test effectiveness indicates the level of effort that is required in order to mitigate the risk of implementing a change. The higher the test effectiveness required, the more rigorous the test and evaluation activities should be. The following factors are used in determining the required test effectiveness:<br />
<ol>
<li>Impact</li>
<li>Probability of Failure</li>
<li>Regression</li>
<li>Recovery</li>
</ol>
<b>1. Determine Impact by Analyzing: (1. Min, 2. Low, 3. Medium, 4. High, 5. Severe)</b><br />
Impact refers to the potential damage that the business might suffer if the intended functionality is not delivered. When assessing impact, the chances of the change negatively affecting other functions/features are not considered as that is captured under a separate attribute (Regression). The higher the impact, the more rigorous the tests should be. For example, if a simple report is being implemented and is used by only few users, then the potential damage would be minimal and therefore the impact assessment should result in a rating of ""min"".<br />
<br />
The following checkpoints should be considered when assigning a rating for the impact factor:<br />
<br />
<ul>
<li>A. Is the solution component a primary function/feature of the solution (i.e. must have vs. Nice to have)?<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>B. Is the solution component independent or other business processes dependent on it?</li>
<li>C. Does the data pertaining to transactional volume, financial and other operational considerations indicates significant utility?<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>D. Is the Solution component used by important stakeholders (Large customers, Regulatory etc.)</li>
<li>E.Is the impact to external stakeholders or Internal?<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>F.Is the impact to a single business unit vs. multiple business unit?<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>G. Number of stakeholders/users that might be impacted?</li>
<li>H. Impacts based on implementation and roll out strategy. For example, some process may not be executed immediately after implementation</li>
<li>I. How frequently is the solution component used?<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>J. Real time vs. Batch (Real time generally leads to immediate impacts and therefore more risky)<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
</ul>
<br />
<b>2. Determine probability of failure by analyzing: (1. Min, 2. Low, 3. Medium, 4. High, 5. Severe)</b><br />
Probability of failure is an assessment of overall risk-based on various consideration like the complexity of the solution, ambiguity in requirements, complex logic etc. The following checkpoints should be considered when assigning a rating for complexity:<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<ul>
<li>A. Technologies used (New technologies lead to higher risk)</li>
<li>B. Level of Customization (Higher customization leads to higher complexity)</li>
<li>C. Complex logic and business rules</li>
<li>D. Real time vs batch. Real time typically would be more risky as impacts are immediate</li>
<li>E. Higher defect density as perceived from prior testing engagements</li>
<li>F. Development effort (The larger the development, the more potential for failure) </li>
<li>G. Ambiguity in requirements<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>H. Complexity of solution<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>I. Rushed schedule<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>J. Dependency on integration with external systems/partners<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
</ul>
<b><br /></b>
<b>3. Determine Regression Impact (1. Min, 2. Low, 3. Medium, 4. High, 5. Severe)</b><br />
Regression impact is the impact to the existing business processes and functions and is weighted very heavily in terms of the overall determination of the test effectiveness required. This is also the most important focus of the service validation and test group.<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<ul>
<li>A. Changes to high risk areas</li>
<li>B. Changes to highly integrated areas (same code is shared by multiple business units/processes etc)<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>C. Lack of clear definition of the scope of changes (like support packs without clear release notes etc)</li>
<li>D. Scope of regression based on the change<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
</ul>
<br />
<b>4. Determine Recovery Effort/Difficulty from Potential Failure (1. Min, 2. Low, 3. Medium, 4. High, 5. Severe)<span class="Apple-tab-span" style="white-space: pre;"> </span></b><br />
When determining the test effectiveness required to mitigate the risk of the change, the ability to recover from a potential failure needs to be considered. Even if a failure occurs, if recovery is possible quickly, then the risk is mitigated to an extent. However, if recovery is very difficult then the test effectiveness needs to be high if the solution component is critical to operations.<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<ul>
<li>A. Existence of work around if potential failure occurs</li>
<li>B. Existence of back out procedure and ease of performing back outs<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>C. Ability and turnaround time to fix problems in case of failure<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>D. Is the failure reflected real time or is it more batch oriented<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
<li>E. Existence of alerts or early warning indicators to aid proactive intervention<span class="Apple-tab-span" style="white-space: pre;"> </span></li>
</ul>
<br />
<b>Risk Based Testing – An Example:</b><br />
<a href="http://3.bp.blogspot.com/-O7AwQF-wOZQ/U8_5Wk3B_sI/AAAAAAAABFk/s_pkaZL6_Zw/s1600/riskbased-testing-1.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://3.bp.blogspot.com/-O7AwQF-wOZQ/U8_5Wk3B_sI/AAAAAAAABFk/s_pkaZL6_Zw/s1600/riskbased-testing-1.png" height="326" width="640" /></a><br />
<div>
<br />
Prolifics specializes in providing end-to-end testing and test automation solutions that are backed by a unique service framework, proven test accelerators and one of the highest defect removal efficiency rate in the industry. Our highly skilled team of testing specialists help to enhance IT productivity and improve application quality, saving millions of dollars through early detection and scope coverage.<br />
<br />
To learn more, visit <a href="http://www.prolifics.com/quality-assurance-testing">http://www.prolifics.com/quality-assurance-testing</a>.<br />
<br />
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-cMn3csFlh34/U9FVajFyJ4I/AAAAAAAABF0/TZuuJAReWnA/s1600/jagan_erra.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-cMn3csFlh34/U9FVajFyJ4I/AAAAAAAABF0/TZuuJAReWnA/s1600/jagan_erra.JPG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<i>Jagan Erra is a Delivery Manager in the Testing Practice at Prolifics. With over 15 years of experience, Jagan has a proven ability to identify, analyze and solve problems to increase customer satisfaction and control costs through expertise in program development and management, IT quality processes, models - ITIL, ISO, client training and cross-functional team leadership.</i></div>
</div>
</div>
</td></tr>
</tbody></table>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-30328275147982936372014-07-23T11:45:00.002-07:002014-07-24T07:36:06.980-07:00Client Showcase: Retailer Better Meets Customer Needs with Managed ServicesProlifics is committed to helping our clients create (and grow) competitive advantage in their industry. We are proud to have empowered this well known Retailer to do just that, again. After a successful e-commerce solution, Prolifics and our client teamed up again to bring ongoing managed services to further differentiate from the competition.<br />
<br />
Our client is a high-end department store chain based in the United Kingdom. Business leaders previously began a strategic initiative to expand the Company’s e-commerce capabilities by expanding the product lines available online and improving connectivity with their distribution service to shorten delivery times in support of a higher volume of online purchases. Prolifics successfully led the implementation of a centralized Warehouse Management System (WMS) that would serve as the foundation for this project. The Prolifics team continued to provide support as needed to deliver the necessary IBM WebSphere MQ and IBM Integration Bus skills required to troubleshoot issues and make updates within the system. Over time, the Company found that their internal IT staff was spending approximately 60% of their time supporting the WMS production environment rather than deepening the capabilities of the solution. Finally, as ad hoc support service costs for the solution began to balloon during the holiday season, their busiest season for online purchases, business leaders began to explore better long-term support options with Prolifics. Valuing the deep technical expertise Prolifics has with IBM WebSphere MQ and IBM Integration Bus, our client engaged the Prolifics team to provide ongoing managed services in order to effectively maintain their WMS system while releasing internal staff to focus on other critical business issues. Prolifics recommended the implementation of SmartCloud APM and SmartCloud Control Desk to enable real-time alerts and provide a centralized ticketing system for submitting and addressing IT issues. Prolifics experts then led the implementation of these tools and developed reasonable service level agreements (SLAs) for the ongoing services that would meet the Company's needs. With managed services now in place, the Company is assured of timely, knowledgeable support for the more than 50 workflows in their WMS solution, with dedicated Prolifics staff available during regular call center hours to rapidly address issues and provide development support as needed. Further, with the new monitoring tools in place, staff can more proactively identify and address potential failures to ensure functionality and ultimately create a better user experience for online consumers.<br />
<br />
To learn more about Prolifics Managed Services, visit: <a href="http://www.prolifics.com/managed-services">http://www.prolifics.com/managed-services</a>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-57493106091892896462014-07-23T11:12:00.001-07:002014-07-24T07:35:06.435-07:00Implementing an Enterprise Services Layer - Reusable Lessons LearnedTechnology implementations can be challenging. When the implementation involves several teams, multiple business units and requires a different approach than the one that is in place currently, the process can become even more demanding and at times daunting. However, if done right, the results can deliver significantly positive results for an organization.<br />
<br />
In this article, we will be looking at the implementation process of an Enterprise Services Layer built on Service Oriented Architecture by the Prolifics Integration team and the important lessons learned during the course of the implementation. After all, reusable lessons go hand in hand with the process of developing and implementing reusable services.<br />
<br />
This article is divided into three sections:<br />
<ul>
<li>Details of the solution and the major decisions taken during project lifecycle</li>
<li>The lessons learned during the implementation process</li>
<li>Project Success</li>
</ul>
<b>Solution Details</b><br />
<div>
<div>
<b>The Business Challenge</b></div>
<div>
Due to the lack of an enterprise wide integration layer, business units were unable to easily consume the services offered by other units and share business data. This prevented the organization from providing new and value added services to consumers resulting in lost market opportunities and revenue growth.</div>
<div>
<br /></div>
<div>
<b>The Business Requirements</b></div>
<div>
<ol>
<li>Develop a common service hosting layer that various business units can utilize to access enterprise services</li>
<li>Build a highly available, scalable and flexible solution that provides maximum throughput and 99.999% uptime</li>
<li>Implement an effective service governance framework</li>
<li>Implement a platform and services monitoring and reporting solution</li>
</ol>
</div>
<div>
<b>Project Kick-Off Approach</b></div>
<div>
The Prolifics team worked with leaders and representatives from customer IT departments and business units to understand the corporate culture in general and team culture in specific. The idea was to understand the way projects typically get done at the customer and customize our approach to developing and deploying the solution by understanding the current processes and practices. </div>
<div>
<br /></div>
<div>
<b>1. Team Education</b></div>
<div>
One of the first tasks undertaken was to educate the stakeholders involved and bring about a common understanding of the project goals and solution. The goal was to make sure that we clearly communicate the scope of the solution; that is what the solution is meant for and what the solution is not meant for. </div>
<div>
<br /></div>
<div>
<b>2. Create SOA principles</b></div>
<div>
This project being the first to build an enterprise-wide services layer based on SOA, we established a set of SOA principles in-order to keep the project implementation aligned with the project requirements and maximize the organization’s return on investment in this project. </div>
<div>
<ol>
<li>Consistent service definitions and implementation</li>
<li>Consistent and secure access to corporate processes and data</li>
<li>Standard-compliant enterprise governance</li>
<li>Consistent and well-defined data model</li>
<li>Cross-enterprise platform and services monitoring</li>
</ol>
</div>
<div>
<b>3. Establish an SOA Center of Excellence</b></div>
<div>
A successful implementation of a large scale SOA initiative requires bringing people from different business and technical areas together to support the implementation goals. The COE team was tasked with creating a solution blueprint to drive the overall implementation tasks and help the organization to adopt, formalize and improve the development process. </div>
<div>
<br /></div>
<div>
The following were the main responsibilities of the COE team.</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-FKsMIBcObC8/U8_zUPPkIpI/AAAAAAAABEk/pnmtOdT1-fs/s1600/blog_enterpriseservicelayer_pic1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-FKsMIBcObC8/U8_zUPPkIpI/AAAAAAAABEk/pnmtOdT1-fs/s1600/blog_enterpriseservicelayer_pic1.JPG" height="264" width="640" /></a></div>
<div>
<br /></div>
<div>
<b>The Technology Foundation</b></div>
<div>
<div>
To meet the service layer requirements, choosing the right technology foundation to host the solution is an important aspect; this is especially true since multiple components and systems need to integrate and function together seamlessly. It is important to consider not just the current requirements, but rather the long-terms requirements; the future growth, flexibility to add additional services, integrate with new and disparate systems, support additional throughput and at the same time maintaining the performance, scalability and availability. </div>
<div>
<br /></div>
<div>
The solution comprised of the following products:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-wA0U9NIwlRg/U8_zUDRkIfI/AAAAAAAABE4/Wv1zhvfGoEU/s1600/blog_enterpriseservicelayer_pic2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-wA0U9NIwlRg/U8_zUDRkIfI/AAAAAAAABE4/Wv1zhvfGoEU/s1600/blog_enterpriseservicelayer_pic2.JPG" height="168" width="640" /></a></div>
<div>
<br /></div>
<div>
<div>
<b><br /></b></div>
<div>
<b><br /></b></div>
<div>
<b><br /></b></div>
<div>
</div>
<div>
<b>Key Factors in Choosing the Technology:</b></div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Xup0AkAtb4g/U8_zUI_yt_I/AAAAAAAABFE/F-pVerV4y9U/s1600/blog_enterpriseservicelayer_pic3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Xup0AkAtb4g/U8_zUI_yt_I/AAAAAAAABFE/F-pVerV4y9U/s1600/blog_enterpriseservicelayer_pic3.JPG" height="468" width="640" /></a></div>
<div>
<br /></div>
<div>
</div>
<div>
<b>Deployment Topology:</b></div>
<div>
<div>
<br /></div>
<div>
The below diagram shows the solution deployment topology.</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-l9BCuKeSArA/U8_zUvnQLcI/AAAAAAAABFQ/-gEMW3o9Uoc/s1600/blog_enterpriseservicelayer_pic4.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-l9BCuKeSArA/U8_zUvnQLcI/AAAAAAAABFQ/-gEMW3o9Uoc/s1600/blog_enterpriseservicelayer_pic4.JPG" height="425" width="640" /></a></div>
<div>
<div>
<br /></div>
<div>
<br /></div>
<div>
</div>
<div>
<ol>
<li>The service consumers connect to the global Load Balancer which based on the consumer region and load balancing algorithms, connect to one the of the available downstream load balancers</li>
<li>The service consumers can use a single endpoint that provides abstraction and high availability</li>
<li>The DataPower devices act as a secure gateway, provide additional internal load balancing and SOA policy enforcement point</li>
<li>IIB – A Highly available IBM Integration Bus architecture provides the service execution, message flow orchestration, advanced transformation and data enrichment platform</li>
<li>Fail-over infrastructure – Multi-node, inter-frame and cross site infrastructure provide advanced fail-over mechanisms </li>
<li>WSRR – WebSphere Service Registry and Repository provides service life-cycle governance features and acts as the service policy definition point</li>
</ol>
</div>
<div>
<b>Lessons Learned</b></div>
<div>
<b>Educate the Stakeholders</b></div>
<div>
Ensure that the stakeholders understand SOA principles, project scope and project goals. This step needs to done right at the start of the project; saves significant amount of time and money during the overall project roll-out and helps keep the project on schedule.</div>
<div>
<br /></div>
<div>
<b>Security </b></div>
<div>
Plan for security right at the start of the project; this includes determining the protocols, encryption technologies, authentication and authorization processes etc. If the customer does not have an enterprise wide common security standards, it is possible that individual teams use different and at time incompatible security practices and processes that can lead to substantial challenges during the integration process. </div>
<div>
<br /></div>
<div>
The Center of Excellence needs to provide sample code, documentation and implementation approaches to assist the different teams in pursuing a common security standard.</div>
<div>
<br /></div>
<div>
<b>Make sure service consumers understand the implementation details</b></div>
<div>
Ensure that the service consumers understand the details of connecting to the service layer and consuming the available services. Most often, service consumers face challenges when it comes to connectivity details, security implementation details etc. To make the process easier, have test beds made available for the consumers. Additionally, a functioning and well documented integration environment will further help in this process. </div>
<div>
<br /></div>
<div>
<b>Follow industry and internal standards</b></div>
<div>
As part of the Center of Excellence enterprise architectural decisions, make sure that the stakeholders agree on the industry as well as internal standards that need to be followed. With limited resources and budget, common standards and practices will help in easier and simpler overall implementation process. This will additionally help in ensuring that the various teams can talk a common language and provide common support and maintenance services. </div>
<div>
<br /></div>
<div>
<b>Avoid Service Layer Complexity</b></div>
<div>
The service layer complexity needs to be avoided. Additionally, only the necessary operations that directly enable integration connectivity and facilitate associated supporting activities should be deployed on the Service layer. It is important not to task the service layer with an application or service provider specific activity or functionality. The service layer needs to be lightweight, scalable and highly available. </div>
<div>
<br /></div>
<div>
<b>Iterative Deliverables</b></div>
<div>
When an organization is just getting started with an SOA based service layer approach, identify the services that can be easily and readily hosted on the service layer. By taking a long term and iterative deliverables approach, the return of investment can be maximized and risks can be reduced. </div>
<div>
<br /></div>
<div>
<b>Performance Testing</b></div>
<div>
Most often, it is difficult to understand the performance behavior of various applications and systems in an Enterprise Service solution. With services hosted by multiple business units and often running on different technologies, performance bottlenecks can be a recurring problem. </div>
<div>
<br /></div>
<div>
In order to properly understand the performance behavior of the various systems and the overall solution, it is important to do performance testing early and often. Surprises such as a bad network route or a wrongly configured server can be avoided if performance testing is incorporated as part of the development life-cycle and performance engineering best practices are followed. </div>
<div>
<br /></div>
<div>
<b>Monitoring and Reporting</b></div>
<div>
In a typical SOA based environment, tracking down performance and availability issues can be extremely challenging due to the loosely-coupled design. Additionally, with services hosted by multiple providers, keeping tracking of SLA and performance counters can prove to be even more difficult. </div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-jBw7t5I7M2s/U8_zU1LKDxI/AAAAAAAABFM/rR4QxKomMpA/s1600/blog_enterpriseservicelayer_pic5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-jBw7t5I7M2s/U8_zU1LKDxI/AAAAAAAABFM/rR4QxKomMpA/s1600/blog_enterpriseservicelayer_pic5.png" height="293" width="400" /></a></div>
<div>
<br /></div>
<div>
<div>
In order to deal with these challenges, it is important to have an end-to-end monitoring solution. The solution should ideally monitor not just the operating infrastructure (performance, availability etc.) but also the business services (SLAs, service availability etc.). It is also important to have a solution that can provide useful and easy-to-understand reports that will assist in planning for capacity planning and performance analysis. </div>
<div>
<br /></div>
<div>
<b>Organizational Readiness</b></div>
<div>
<ul>
<li>IT departments and organizational units typically find that the process of introducing new initiatives that change the way projects are typically done is difficult. To ensure project success and maximize IT investment returns, strong leadership support for these initiatives is required. It is essential that the leadership team communicate the significance of the project and establish a strong project management team.</li>
</ul>
</div>
<div>
<b>Importance of Service Governance </b></div>
<div>
<ul>
<li>In order to provide consistent and standardized development, delivery and implementation of services and reduce risks, a strong governance model needs to be established as part of the project life-cycle. In a large scale implementation involving numerous teams, a strong service governance model that can handle the entire service life-cycle can ensure that the implementation process aligns perfectly with the business requirements and organizational goals.</li>
</ul>
</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-gKqo4bYHGQs/U8_zU0HG1DI/AAAAAAAABFA/mHW7JHZeuLM/s1600/blog_enterpriseservicelayer_pic6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-gKqo4bYHGQs/U8_zU0HG1DI/AAAAAAAABFA/mHW7JHZeuLM/s1600/blog_enterpriseservicelayer_pic6.png" height="251" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
<b>Project Success</b></div>
<div>
The Enterprise Server Layer currently handles over 6 million transactions per day. With a strong architectural foundation in place, the platform can seamlessly support additional throughput by horizontal or vertical scaling in a highly available environment. Additionally, the solution delivered end-to-end governance, monitoring and performance reporting. </div>
<div>
<br /></div>
<div>
The solution proves that with proper architecture, design principles and team partnerships, organizations can achieve excellent return of investments and realize project success that can enable new market opportunities and business growth.<br />
<br />
<br />
Authors:<br />
The team of integration experts at Prolifics enable customers to maximize the return on their IT investments by providing end-to-end integration, governance and monitoring capabilities. To learn more about Prolifics' integration solutions, visit: <a href="http://www.prolifics.com/soa-universal-connectivity">http://www.prolifics.com/soa-universal-connectivity</a></div>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-18962951124306052782014-07-23T07:15:00.001-07:002014-07-23T07:25:57.785-07:00What We Can Expect from the IBM-Apple AllianceThe IBM-Apple deal was one of the most talked about news stories in the world of IT this week. As Premier IBM Business Partners, we at Prolifics are thrilled to hear how these two innovative enterprises will continue to shape the future of mobile.<br />
<br />
To learn more about the alliance, we decided to sit down with two experts who can share unique insight on what this means for IBM, today’s businesses and consumers around the word. At Prolifics’ Sea Change Summit this week in Montauk, New York, we met up with Ken Parmelee, Technology Business Development Executive, MobileFirst at IBM. We also sat down with Maya Abinakad, Marketing Communications Manager at Prolifics, to talk about what Prolifics clients<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-XTmjofA2COk/U87bllS6uNI/AAAAAAAABDo/noTn4SUurGE/s1600/kenparmelee_ibm.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-XTmjofA2COk/U87bllS6uNI/AAAAAAAABDo/noTn4SUurGE/s1600/kenparmelee_ibm.jpg" height="200" width="200" /></a></div>
<b><span style="color: #3d85c6;">Ken Parmelee, Technology Business Development Executive, MobileFirst at IBM</span></b><br />
<b>Why do you think this deal is happening now? </b><br />
Apple and IBM have an opportunity to shape the mobile enterprise market uniquely. The enterprise market has for years asked for stronger management, security and more scalable solutions. This partnership provides enterprise grade iOS solutions.<br />
<br />
<b>In your opinion, just how big is this announcement, when looking at IBM’s 100+ year history?</b><br />
IBM has had many historic announcements. This would rank high due to the explosion of the cloud and mobile markets and the lack of enterprise solutions in those spaces. Apple's strong consumer focus will lend to IBM design to create even better user experience for these. Both companies are at their best with their focus on the combined capabilities <br />
<br />
<b>What are your predictions in terms of what customers can expect as a result of this deal?</b><br />
Customers can expect:<br />
<ul>
<li>World-class enterprise purchase and support for their devices</li>
<li>More secure solutions and services</li>
<li>Developer tools and services that speed development while creating beautiful high fidelity iOS experiences that scale. </li>
</ul>
<b>Why is data such a critical component of this deal?</b><br />
The future of computing is all about predictive analysis and intelligent automation that drive personalized, contextual interactions and user experiences. Leveraging the capabilities of IBM MobileFirst for iOS developers will be able to create applications that bring this to reality on the mobile devices Apple creates that are renowned for their user experience.<br />
<br />
<a href="https://www.linkedin.com/profile/view?id=5489556" target="_blank">Connect with Ken Parmelee today!</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Xl3hxmCRoMI/U87b4STfIsI/AAAAAAAABDw/nToWzp0pQGo/s1600/maya_abinakad_2014.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Xl3hxmCRoMI/U87b4STfIsI/AAAAAAAABDw/nToWzp0pQGo/s1600/maya_abinakad_2014.jpg" /></a></div>
<b><span style="color: #3d85c6;">Maya Abinakad, Marketing Communications Manager at Prolifics</span></b><br />
<b>What do you think the Apple-IBM alliance says about technology and business today?</b><br />
I believe the message this is sending to the market is significant. Mobile has very much been a disruptive technology and has transformed both our personal and professional lives. Until now, we have seen a clear separation between these worlds when it comes to mobile devices. The IBM-Apple alliance will bring a greater overlap, as IBM and Apple combine proven enterprise solutions together with a best-in-class user experience. I hope that this will lessen the divide between business leaders and creative leaders.<br />
<br />
<b>What does this deal mean for Prolifics’ clients?</b><br />
It means they can have the best of both worlds. These solutions will include the market-leading strengths of IBM and Apple – bringing a completely new level of value for businesses. Our clients are forward-thinking, and this will enable them to leverage the full potential of mobility, all while benefiting from the excellent design and user experience of Apple mobile devices. We are excited to help them get to the next level in mobility.<br />
<br />
<b>In what ways do you think Prolifics will be able to contribute to this new alliance?</b><br />
As a Premier IBM Business Partner, Prolifics has always been committed to leveraging IBM technologies to create customized IT solutions that create competitive advantage. Now, we will be able to offer powerful mobile enterprise solutions on iOS, empowering our clients in ways that were never before possible. As our clients continue to lead their industries in innovation, they will rely more heavily on Prolifics’ technical excellence and industry focus.<br />
<br /><a href="http://www.linkedin.com/in/mabinakad/" target="_blank">Connect with Maya Abinakad today!</a><br />
<br />
Congratulations to IBM on this exciting initiative! We look forward to contributing to your continued innovation!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-GkE1JFAyrYs/U8_ClwEW-mI/AAAAAAAABEA/LwRZ5QsP3cM/s1600/ibm-apple.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-GkE1JFAyrYs/U8_ClwEW-mI/AAAAAAAABEA/LwRZ5QsP3cM/s1600/ibm-apple.JPG" height="136" width="320" /></a></div>
<br />
To learn more about Prolifics, visit <a href="http://www.prolifics.com/">www.prolifics.com</a>.<br />
<br />
To learn more about the IBM-Apple alliance, visit: <a href="http://www.ibm.com/mobilefirst/us/en/">http://www.ibm.com/mobilefirst/us/en/</a>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-39149226994223089312014-07-17T09:44:00.001-07:002014-07-17T09:44:11.813-07:00Client Showcase: Insurer Wins with Centralized, Reliable and Secure ESBAt Prolifics, our commitment to client success is at the core of our business. Recently, we celebrated a successful solution "go-live" with one of our clients in New York. The solution highlights our team's expertise and technical skill across IBM software.<br />
<br />
Our client is a large health insurer based in New York, servicing over 3 million people. Facing increasing challenges to maintain the disparate legacy technologies from the merged providers, the Company sought to integrate their systems under a centralized, reliable and secure enterprise service bus (ESB). Additionally, the Company wanted to move away from their traditional paper-based model by integrating a messaging framework into the new ESB that would enable faster, easier patient onboarding and care. They reached out to Prolifics to lead the project, wanting to leverage our strong ESB capabilities to build an optimal solution. Prolifics experts designed and installed an infrastructure architecture built on IBM Integration Bus (IIB), IBM Decision Server Rules and IBM DataPower to enable a robust ESB and integrated IBM Business Monitor and IBM Tivoli Composite Application Monitor (ITCAM) for Transactions to provide deeper monitoring and reporting capabilities, conducting testing throughout the effort to ensure optimal performance. The Prolifics team also developed a common rules framework to connect the disparate customer enrollment programs to various other internal systems. With the new ESB and rules engine in place, the Company can ensure consistent, secure sharing of customer enrollment information across the enterprise, improving efficiency and ultimately quality of care.<br />
<br />
To learn more about Prolifics' integration solutions, visit: <a href="http://www.prolifics.com/soa-universal-connectivity">http://www.prolifics.com/soa-universal-connectivity</a>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-63322842735176860982014-07-17T08:32:00.002-07:002014-07-17T08:32:53.741-07:00Introduction to Script Portlet using AngularJS<div class="separator" style="clear: both;">
<b><span style="color: #0b5394;">Introduction</span></b></div>
<div class="separator" style="clear: both;">
In this blog entry I would like to give an introduction to the NEW Script Portlet using AngularJS. I will also show you how to develop a sample weather application using the Script Portlet using AngularJS. </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
This sample is only for demo purposes, and is by no means a completed application. In addition, this blog entry does not cover all the features of AngularJS or the Script Portlet.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b><span style="color: #0b5394;">What is Script Portlet?</span></b></div>
<div class="separator" style="clear: both;">
The Script Portlet is IBM’s version of <a href="http://jsfiddle.net/">http://jsfiddle.net</a>. It allows developers to write an application using JavaScript, HTML and CSS technologies. You only need a browser to develop and run these technologies. </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b><span style="color: #0b5394;">Installing Script Portlet</span></b></div>
<div class="separator" style="clear: both;">
You can download Script Portlet from <a href="https://greenhouse.lotus.com/plugins/plugincatalog.nsf/assetDetails.xsp?action=editDocument&documentId=DDB5C467D991413285257C67002476E0" target="_blank">Greenhouse</a>. This Portlet is constantly being updated with new features. At the time of this writing the Portlet is at version 1, update 3.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Your portal server should be at least at V8.0.0.1 CF 11 to install version 1.3 of Script Portlet. </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Once your Portal is updated, follow the steps in the “readme.pdf” to install the Portlet. This file is located in the .zip file you downloaded from Greenhouse.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b><span style="color: #0b5394;">Hello World</span></b></div>
<div class="separator" style="clear: both;">
So now that you have your Script Portlet, let’s do a simple “Hello World” </div>
<div class="separator" style="clear: both;">
1. Place the Script Portlet on a portal page. </div>
<div class="separator" style="clear: both;">
2. Click “Edit Mode” on the top right of the page. This will enable the “Edit” link on your Portlet.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-ytbli8YVCec/U8fnmyedY8I/AAAAAAAABAU/8wSOvmD1dvw/s1600/portlet1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-ytbli8YVCec/U8fnmyedY8I/AAAAAAAABAU/8wSOvmD1dvw/s1600/portlet1.png" height="16" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-xMqWYSnwKTY/U8fnngmkTiI/AAAAAAAABAo/SO0JZKTBAMU/s1600/portlet2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-xMqWYSnwKTY/U8fnngmkTiI/AAAAAAAABAo/SO0JZKTBAMU/s1600/portlet2.png" height="35" width="400" /></a></div>
<br />
3.<span class="Apple-tab-span" style="white-space: pre;"> </span>Click the “Edit” link on the Portlet. This will launch four panels.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ZQnEoDiRXw0/U8fnn1Y28dI/AAAAAAAABA0/PmrCKieJIik/s1600/portlet3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-ZQnEoDiRXw0/U8fnn1Y28dI/AAAAAAAABA0/PmrCKieJIik/s1600/portlet3.png" height="256" width="400" /></a></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>HTML/<head>: </b>In this panel you can write your HTML code. Click on the <head> link to open the Head panel. Here you can write any code that you want to place in the <head> section of your Portal page. Note: If you want to include any JS or CSS files you can place them under the “Depedencies” section, explained later.</div>
<div class="separator" style="clear: both;">
<b>CSS:</b> In this section put any CSS classes you want to define.</div>
<div class="separator" style="clear: both;">
<b>JavaScript:</b> In this section place any JavaScript code you may have.</div>
<div class="separator" style="clear: both;">
<b>Preview:</b> Once you click the “Save” button, your application can be previewed in this panel. </div>
<div class="separator" style="clear: both;">
For all these panels you have an icon that looks like this:<a href="http://1.bp.blogspot.com/-0gFQbTFDCag/U8foZ_mMHVI/AAAAAAAABDE/VTYAymqAc_8/s1600/portlet_small.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-0gFQbTFDCag/U8foZ_mMHVI/AAAAAAAABDE/VTYAymqAc_8/s1600/portlet_small.png" /></a>. Click on this icon to expand the panel. In the Preview panel you can also preview the application in a new browser window, just click the new browser icon.</div>
<div class="separator" style="clear: both;">
<b>Dependencies:</b> You can define any external JS or CSS dependencies here. Just give the URL and click the “+” button to add the external resource to your application. Any dependencies you define here are automatically added to <head> section of the page. </div>
<div class="separator" style="clear: both;">
<b>Rename the Portlet:</b> You can rename the Portlet title. Click “Edit” link next to “Script Portlet Content Item”. Rename it to “Hello World”.</div>
<div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-eeik_n5Y7Wk/U8fnoCw3Y8I/AAAAAAAABAw/-lRJYV7rqgE/s1600/portlet4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-eeik_n5Y7Wk/U8fnoCw3Y8I/AAAAAAAABAw/-lRJYV7rqgE/s1600/portlet4.png" height="45" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-fAykO1dIeHE/U8fnoeNWJyI/AAAAAAAABA4/7OwDqsC8Rng/s1600/portlet5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-fAykO1dIeHE/U8fnoeNWJyI/AAAAAAAABA4/7OwDqsC8Rng/s1600/portlet5.png" height="157" width="400" /></a></div>
<br />
4. Now that we know the interface, let’s continue with our Hello World app. Place the below code in their respective panels.<br />
<b>HTML: </b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Pty2cFSXCLg/U8fnp0kOIlI/AAAAAAAABBg/RlpLjrqfdIY/s1600/portletcode1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-Pty2cFSXCLg/U8fnp0kOIlI/AAAAAAAABBg/RlpLjrqfdIY/s1600/portletcode1.JPG" height="35" width="320" /></a></div>
<br />
<b>JavaScript:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-CG5e1vsAqsE/U8fnrvM3f4I/AAAAAAAABCM/ILjfu5bxOTc/s1600/portletcode2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-CG5e1vsAqsE/U8fnrvM3f4I/AAAAAAAABCM/ILjfu5bxOTc/s1600/portletcode2.JPG" height="31" width="320" /></a></div>
<br />
5. Click the Save button. This will render the application in the Preview panel.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-je2a1qbIqtg/U8fno5MGKII/AAAAAAAABBM/LFy2LNpfg9M/s1600/portlet6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-je2a1qbIqtg/U8fno5MGKII/AAAAAAAABBM/LFy2LNpfg9M/s1600/portlet6.png" height="256" width="400" /></a></div>
<br />
6. Click on the “Click Me” button. It will display an alert that says “Hello, Script Portlet”.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-hPoor7-NnJo/U8fno5VvSwI/AAAAAAAABBE/w9PSRXbTzRw/s1600/portlet7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-hPoor7-NnJo/U8fno5VvSwI/AAAAAAAABBE/w9PSRXbTzRw/s1600/portlet7.png" /></a></div>
<br />
7. Great, we finished our first application.<br />
<br />
<b><span style="color: #0b5394;">Some More Details About Script Portlet</span></b><br />
All the code you develop in script Portlet is stored within IBM Web Content Management found on the Portal server.<br />
<div>
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-gmw_H_ulKN4/U8fnpUD2AtI/AAAAAAAABBU/EW3gjPqH0xg/s1600/portlet8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-gmw_H_ulKN4/U8fnpUD2AtI/AAAAAAAABBU/EW3gjPqH0xg/s1600/portlet8.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-dwKskbL3kJU/U8fnph12o7I/AAAAAAAABBY/fbA9YN7rQX8/s1600/portlet9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-dwKskbL3kJU/U8fnph12o7I/AAAAAAAABBY/fbA9YN7rQX8/s1600/portlet9.png" height="400" width="383" /></a></div>
<br />
You could create your own WCM project using managed pages and create a Portlet using Script Portlet. This project can then use WCM workflows to approve the page and Portlet for release and change management control.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-n5XimjKOcDs/U8fnm8wer8I/AAAAAAAABAY/0jxmmGbOVPw/s1600/portlet10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-n5XimjKOcDs/U8fnm8wer8I/AAAAAAAABAY/0jxmmGbOVPw/s1600/portlet10.png" height="143" width="400" /></a></div>
For more details on Managed pages please refer to the <a href="http://www-10.lotus.com/ldd/portalwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Web+Content+Manager+8+Product+Documentation#action=openDocument&res_title=Managed_pages_wcm8&content=pdcontent" target="_blank">IBM Wiki</a>.<br />
<br />
<b><span style="color: #0b5394;">What is AngularJS?</span></b><br />
<a href="https://angularjs.org/" target="_blank">AngularJS</a> is like any other JavaScript framework (such as jQuery, Dojo, Prototype.js etc.), but with one key difference. AngularJS is based on a MVC framework. With growing demand to make web applications work more like desktop applications, you need to carefully design your front end views. If your JavaScript is all over the place with <script> tags then it will be impossible to maintain. With other frameworks like jQuery and Dojo, you as a developer should put extra effort to design your application properly. But with AngularJS (much like Spring and Struts) it provides guidelines of how to develop an MVC application.<br />
<br />
<b><span style="color: #0b5394;">Say Hello to AngularJS</span></b><br />
Let’s develop a simple application before we develop a bigger application.<br />
1. Place the script Portlet on the portal page and open the editor.<br />
2. Add <a href="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.13/angular.min.js">https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.13/angular.min.js</a> as the<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-_N1n3BaAEtk/U8fnm5uh2XI/AAAAAAAABAg/VXtTuR5RoiE/s1600/portlet11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-_N1n3BaAEtk/U8fnm5uh2XI/AAAAAAAABAg/VXtTuR5RoiE/s1600/portlet11.png" height="150" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
3. <b>Directives</b>: Directives are notations letting AngularJS know what that block means. For example “ng-app” lets the framework consider that block as an application. This “ng-app” directive makes AngularJS take care of some important tasks on your behalf. The “ng-app” directive makes sure it initializes the models (ng-model), controllers (ng-controller), views (ng-view), etc. as the application is loaded.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
We use {{someModelReference}} format to reference a model, typically meaning a data element.</div>
<div class="separator" style="clear: both;">
This information is enough to complete our first AngularJS application.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
4. Copy the below code in HTML panel.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-aB5hHQOopUQ/U8frrpB0GBI/AAAAAAAABDQ/g5P6r1jc9m4/s1600/portletcode11.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-aB5hHQOopUQ/U8frrpB0GBI/AAAAAAAABDQ/g5P6r1jc9m4/s1600/portletcode11.JPG" height="71" width="400" /></a></div>
<div>
<br /></div>
<div>
5. Click the “Save” button. The application is opened in Preview panel. Type your name in the text box.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-mJ6ezK12ctg/U8fnoGC4dKI/AAAAAAAABB8/0z0q2EcH8Rc/s1600/portlet12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-mJ6ezK12ctg/U8fnoGC4dKI/AAAAAAAABB8/0z0q2EcH8Rc/s1600/portlet12.png" height="256" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b><span style="color: #0b5394;">AngularJS Building Blocks</span></b></div>
<div class="separator" style="clear: both;">
As seen in the above example, with some simple directives we made our code simple and clean, but at the same time we achieved some functionality without any JavaScript code. Now our code looks more readable. Let’s explore the building blocks of this framework:</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>Module:</b></div>
<div class="separator" style="clear: both;">
A module is like an application. You can have one or more modules/applications on a page. In the above application “ng-app” initializes an application. A module can be initialized as ng-app=”MyModuleName”.</div>
<div class="separator" style="clear: both;">
Modules contain models, controllers, views, factories, services, etc.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>Model:</b></div>
<div class="separator" style="clear: both;">
Any framework model represents your data. In AngularJS you can define what a model is. It can be as simple as string or it could be an object. You use “ng-model” to bind your data to HTML controls. You can also reference your model using {{yourObject.attribute}}. </div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Model data is properly scoped when you use “ng-app” directive. Models can be further scoped using “ng-controller”. They can also be passed between controllers or views.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>Controller</b></div>
<div class="separator" style="clear: both;">
As in any MVC framework, your controller is the bridge between model and view. Controller can do custom logic, invoke a factory/service to call backend and construct the data model and hand it over to appropriate view.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>View</b></div>
<div class="separator" style="clear: both;">
View is the markup for the application. “ng-view” defines a view. There can be multiple views in an application. Each view is a HTML template that has place holders for model data and event handlers to hand over control to Controllers.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b>Routing</b></div>
<div class="separator" style="clear: both;">
Routing is the configuration that defines which view to invoke and which control to be used. In the below example when “/list” is the path, it renders the “list.html” template and passes “ListCtrl” controller.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-WKChGg2o72Q/U8fnqt2qnNI/AAAAAAAABB0/p1TcaQU3jK0/s1600/portletcode4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-WKChGg2o72Q/U8fnqt2qnNI/AAAAAAAABB0/p1TcaQU3jK0/s1600/portletcode4.JPG" height="56" width="400" /></a></div>
<br />
<b>Factory/Service</b><br />
Factory/Service is used to make a reusable service. Typically controllers invoke one or more services.<br />
<br />
<b><span style="color: #0b5394;">Weather App</span></b><br />
Let’s develop a sample weather application using some of the features of AngularJS.<br />
<br />
Since we have only one view, we don’t have to define the view explicitly or configure the routing. You can explore more on views and routing at <a href="https://angularjs.org/">https://angularjs.org/</a>.<br />
<br />
We use a free REST API to develop this application. You need a create a free account at <a href="http://www.wunderground.com/weather/api/d/docs?d=data/index&MR=1">http://www.wunderground.com/weather/api/d/docs?d=data/index&MR=1</a><br />
<br />
This free account will generate a key, which should be used in our sample application.<br />
<br />
<b><span style="color: #0b5394;">Dependencies</span></b><br />
Define the following dependencies.<br />
1.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.13/angular.min.js">https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.13/angular.min.js</a><br />
2.<span class="Apple-tab-span" style="white-space: pre;"> </span><a href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css</a><br />
<br />
We use bootstrap to control the look and feel. Bootstrap is an open source CSS utility to create responsive applications.<br />
<br />
<b>JavaScript </b><br />
Place the following code in JavaScript panel. Code is explained with inline comments.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-mG9dGoKNx_M/U8fnq1qgqNI/AAAAAAAABCA/CI8aLsCIDj4/s1600/portletcode5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-mG9dGoKNx_M/U8fnq1qgqNI/AAAAAAAABCA/CI8aLsCIDj4/s1600/portletcode5.JPG" height="400" width="395" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-kzaPHS6DFMM/U8fnreLGkSI/AAAAAAAABCI/T4pd2vlE0QA/s1600/portletcode6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-kzaPHS6DFMM/U8fnreLGkSI/AAAAAAAABCI/T4pd2vlE0QA/s1600/portletcode6.JPG" height="190" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both;">
<b>HTML</b></div>
<div class="separator" style="clear: both;">
Place the following HTML code in HTML panel. Code is explained with inline comments.</div>
<div class="separator" style="clear: both;">
<br /> <a href="http://3.bp.blogspot.com/-lYKDPyoP3uc/U8fnrV3O1eI/AAAAAAAABCk/VK5aYskgutQ/s1600/portletcode7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-lYKDPyoP3uc/U8fnrV3O1eI/AAAAAAAABCk/VK5aYskgutQ/s1600/portletcode7.JPG" height="307" width="400" /></a></div>
<div class="separator" style="clear: both;">
<br /> <a href="http://2.bp.blogspot.com/-JgSvkBJx224/U8fnru-ZvxI/AAAAAAAABCQ/1XXWrS-XFNA/s1600/portletcode8.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-JgSvkBJx224/U8fnru-ZvxI/AAAAAAAABCQ/1XXWrS-XFNA/s1600/portletcode8.JPG" height="357" width="400" /></a></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<b><span style="color: #0b5394;">Ajax Proxy</span></b></div>
<div class="separator" style="clear: both;">
We cannot directly make an Ajax call to another domain as browsers do not allow cross site scripting for security reasons. Portal has a feature called “Ajax proxy” that allows this to happen. It just needs some configuration.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Copy “proxy-config.xml” from your Portals “IBM\WebSphere\wp_profile\config\cells\<YourCell>\applications\AJAX Proxy Configuration.ear\deployments\AJAX Proxy Configuration\wp.proxy.config.war\WEB-INF” directory and add the following policy.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Ad4Hbei7BtM/U8fnsJ9ySEI/AAAAAAAABCg/SQRgxtrlo0w/s1600/portletcode9.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-Ad4Hbei7BtM/U8fnsJ9ySEI/AAAAAAAABCg/SQRgxtrlo0w/s1600/portletcode9.JPG" height="56" width="400" /></a></div>
<div>
<br /></div>
<div>
Run the following command:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ft4Uh36jcpM/U8fnqE0gD-I/AAAAAAAABBo/ERWwqIH4xIo/s1600/portletcode10.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-ft4Uh36jcpM/U8fnqE0gD-I/AAAAAAAABBo/ERWwqIH4xIo/s1600/portletcode10.JPG" height="26" width="400" /></a></div>
<div>
<br /></div>
<div>
<div>
C:\IBM\proxy-config.xml is your updated file.</div>
<div>
<br /></div>
<div>
<b>Final output:</b></div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-bRmZ64-31EM/U8fnnfFoa4I/AAAAAAAABAk/4Psb6-IrTH0/s1600/portlet13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-bRmZ64-31EM/U8fnnfFoa4I/AAAAAAAABAk/4Psb6-IrTH0/s1600/portlet13.png" height="293" width="400" /></a></div>
<br />
<br />
<br />
<br />
<b><span style="color: #0b5394;">Features Coming Soon</span></b><br />
There are some NEW features that IBM plans to release soon:<br />
1. Upload zip files: In the next version you should be able to upload a zip file with multiple JS, CSS and HTML files.<br />
2. Copy existing scripts: You can copy existing scripts from a different project and update them as required.<br />
3. WebDav entry point: You should be able to update your files connecting to a WebDav entry point. This should be handy if you use any tool like <a href="http://brackets.io/" target="_blank">Brackets</a> to edit your code or store the files in source repository.<br />
<b><span style="color: #0b5394;"><br /></span></b>
<b><span style="color: #0b5394;">References:</span></b><br />
<b>Greenhouse Script Portlet URL:</b> <a href="https://greenhouse.lotus.com/plugins/plugincatalog.nsf/assetDetails.xsp?action=editDocument&documentId=DDB5C467D991413285257C67002476E0">https://greenhouse.lotus.com/plugins/plugincatalog.nsf/assetDetails.xsp?action=editDocument&documentId=DDB5C467D991413285257C67002476E0</a><br />
<br />
<b>Script Portlet Sample:</b><br />
<a href="http://openntf.org/main.nsf/project.xsp?r=project/Script%20Portlet%20Samples%20for%20IBM%20WebSphere%20Portal/summary" target="_blank"> http://openntf.org/main.nsf/project.xsp?r=project/Script%20Portlet%20Samples%20for%20IBM%20WebSphere%20Portal/summary</a><br />
<br />
<b>Script Portlet Webinar:</b><br />
<a href="https://developer.ibm.com/social/2014/05/05/webinar-replay-developing-portlets-using-html-css-javascript/">https://developer.ibm.com/social/2014/05/05/webinar-replay-developing-portlets-using-html-css-javascript/</a><br />
<br />
<b>Script Portlet Presentation:</b><br />
<a href="http://www.slideshare.net/IBMSBT/script-portlet-v30#">http://www.slideshare.net/IBMSBT/script-portlet-v30#</a><br />
<br />
<b>Sample Weather Service:</b><br />
<a href="http://www.wunderground.com/weather/api/d/docs?d=data/index">http://www.wunderground.com/weather/api/d/docs?d=data/index</a><br />
<br />
<b>AngularJS:</b><br />
<a href="https://angularjs.org/">https://angularjs.org/</a><br />
<br />
<b>AngularJS Video Tutorial:</b><br />
<a href="https://www.udemy.com/angularjs-jumpstart/?couponCode=AngularJSJumpStart40">https://www.udemy.com/angularjs-jumpstart/?couponCode=AngularJSJumpStart40</a><br />
<div>
<br /></div>
<br />
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><a href="http://4.bp.blogspot.com/-xk4MeFg6tyY/U8fsQlRt_fI/AAAAAAAABDY/r0WtPdebTnM/s1600/KBhupathi.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://4.bp.blogspot.com/-xk4MeFg6tyY/U8fsQlRt_fI/AAAAAAAABDY/r0WtPdebTnM/s1600/KBhupathi.jpg" height="320" width="220" /></a><div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<i>Krishna Bhupathi is a Technical Lead with strong background in J2EE and Portal technologies. With over 10 years of experience in IBM technologies, Krishna has been responsible for design and delivery of many intranet and internet web sites using IBM products. He is a certified Portal developer. Prior to Prolifics, Krishna worked for IBM Global Services. He used to design and develop portal solutions to customers. </i></div>
<div>
<i>Krishna attended college in India, he did his engineering in Computer Science at Visvesvaraya Technological University. He likes playing cricket, he plays for TCC at Triangle Cricket League, NC.</i></div>
<div>
<i><br /></i></div>
<div>
<i>email: <a href="mailto:krishna.bhupathi@prolifics.com">krishna.bhupathi@prolifics.com</a></i></div>
<div>
<i>linkedin: <a href="https://www.linkedin.com/in/bhupathikrishna">https://www.linkedin.com/in/bhupathikrishna</a> </i></div>
<div>
<i>twitter: <a href="https://twitter.com/bhupatikrish">https://twitter.com/bhupatikrish</a></i></div>
</div>
</div>
</td></tr>
</tbody></table>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-47181592234545051982014-06-23T11:26:00.000-07:002014-06-23T11:26:40.758-07:00How to Conduct a Quality Assessment Under a Short Timeframe With Limited ResourcesAs part of its service offering, Prolifics provides clients (or prospective clients) an assessment of their current quality processes. Recently, Prolifics engineers were requested to go onsite at a client location to render such an assessment of a complex, multi-tier, application. However, the client would only agree to a very short length of time for the assessment. Prolifics accepted this challenge – knowing that it would be a demanding project. This brief article describes, at a high level, the approach taken, the constraints that we worked under and the end result. <br />
<br />
<b>Rapid Assessment Approach</b><br />
For such an ambitious project, every hour of time is important. Thus, it is indispensable to initiate the project with remote outreach to the client, even prior to going onsite. Gather as much essential information as possible. This advance work can take the form of reviewing any existing documentation about the client and the systems under test. Once the early information is reviewed, it can in turn prompt you for additional items to request, again in advance of going onsite, or during that first day or two. For the assessment at this client, we reviewed relevant Prolifics correspondence and other documentation between the client and the quality practice. There was recent documentation from an initial round of discussions which included both the Head of the Testing Practice and the Director. We also held pre-assessment conference call discussions with the Sales team, who provided helpful insights into the client organization. <br />
<br />
We then requested the client to provide an initial set of test plan documents and test cases. We also requested high level information on system architecture. Every day of “front loading” the process advances the project to the engineer’s advantage. Thus, early on in the project we obtained a basic sense of how the client’s QA team conducted testing work within their test cycle. <br />
<br />
Also, to address items which could constrain us, we made requests for client network access and test case and defect tracking repositories. Both these items (network access and test case/defect tracking system access) are typically “long lead time” items which can further constrain the assessment schedule. Therefore it is important to request these in advance of going onsite. <br />
<br />
The day before our client visit, we developed a preliminary project plan, together with milestones and dates that we wanted to achieve for the assessment. <br />
<br />
<b>Selecting a Methodology:</b><br />
Various options are available for assessment methods. It is important to choose a methodology which provides as much quantitative and qualitative measurement as possible, in the time allotted. So, the assessment method must do the following:<br />
<br />
<ul>
<li>The methodology must be comprehensive enough to cover testing processes both in breadth and in depth.</li>
<li>It must be flexible in order to adapt to the constraints of limited time and resources. </li>
<li>It needs to be sufficiently objective such that it has credibility with the client.</li>
</ul>
<br />
With the Practice Head’s guidance, we utilized a Test Process Improvement (TPI) methodology to assess this client. The Prolifics version of TPI measures up to twenty (20) dimensions of testing effectiveness. In the brief two weeks that we had for this assessment, we had to select which of those twenty dimensions to assess. It came down to a combination of the most important dimensions of the testing process and the most available to measure. <br />
<br />
<b>Conducting the Assessment</b><br />
Knowing that we had just two weeks for the assessment, we placed much energy into “front loading” our activities during the first week. This involved meeting the key managers and leaders of the client. We scheduled a round of one-on-one interviews with those individuals. It is important to plan these interviews in advance of the actual meetings; plan the interview questions and carefully document the answers. Our interviewees were: the Business Owner, QA Manager, QA Team Leads, Development Manager and Leads, Project Manager, Business Analysts and test automation staff.<br />
<br />
In order to fully carry out our assessment, we made follow-up requests for information we had not yet received, plus requested system requirements, specifications and documentation. Various of these items were identified as useful during those interviews and meetings. <br />
<br />
<b>Data Gathering and Analysis</b><br />
Reviewing test artifacts (Test Strategies, Test Plans, Test Cases) is a natural place to look and evaluate. However, system requirements provide the initial “blueprint” for understanding the application under test. While clients may at first be reluctant to disclose requirements or design documents, it is essential to review a sufficient sample of requirements in order to comprehend what the application is intended to do. Then, proceed to interpret the Test Plans, cases, etc. in light of the requirements. <br />
<br />
From there, defect reports provide the essential, interlocking pieces of information. Though much can be gleaned from reviewing defect reports, a more complete interpretation is possible when requirements, test strategies, plans and test cases are first considered. Then, defect reports can be assessed fully illuminated. <br />
<br />
Having requirements and artifacts, we began preliminary analysis and compilation of the data. Day after day, we added incremental data, performed further analysis and began to identify deficiencies, patterns and gaps in the quality processes. For areas of significant concern, we continued to gather even more data to strengthen and validate our analysis. <br />
<br />
<b>Frequent Communication</b><br />
We decided from the outset to mandate frequent communications among the assessment team. This included the engineers onsite, our project manager, the practice director, sales team and project manager. At designated intervals, and on as as-needed basis, we also included the client executive. <br />
Our communication included daily conference calls between the above members, followed by daily email meeting minutes mailed out to the team, plus certain Prolifics executives. There were other communications (follow-up meetings, email, etc.) as needed to keep the assessment moving forward and deal with impediments. This all had the effect of transparency, delineating our progress and identifying potential problems. Trust among team members grew and helped this ambitious schedule proceed with less stress. <br />
<br />
<b>Interim Progress Briefing</b><br />
At the end of week one, we delivered an abbreviated status presentation to the client. This helped us to clarify that we were on the correct path for this assessment. If there were areas to go deeper, or areas that did not require much additional data gathering, this briefing helped to clarify matters. It also provided the opportunity to deliver preliminary findings that our analysis was surfacing. <br />
Although our presentation was intentionally limited in content, it did serve to firm up both our (Prolifics) and the clients sense that the assessment was proceeding in the correct direction and making meaningful progress. <br />
<br />
It is important that this particular briefing be a formal, scheduled milestone event. This gives the assessment team a midpoint goal to achieve. The client also has the opportunity to receive preliminary results, ask questions and offer suggestions and guidance. This interim briefing surfaced no surprises. We confirmed that we were on the right track and that progress was being made. Our client indicated they were looking forward to the final report. We took this as a good sign. <br />
<br />
<b>The Second Week</b><br />
After the interim briefing, we exerted ourselves to gather additional information. We performed second round interviews with client staff where needed. Then we went deeper into client test artifacts and the TestWare systems. Reviewing the way quality information is structured and organized and comparing that to release requirements is very useful aspect of an Assessment. Patterns became clearer, as did any gaps or deficiencies. <br />
<br />
While keeping good notes and other documentation is needed throughout the assessment, it is vital to begin to outline the assessment report at the earliest possible time. Ideally, you would want to start the report outline as the data begin to form facts – then as facts emerge into findings. <br />
<br />
Then, we circulated drafts of the assessment as early as practical within the quality practice. As is human nature, much of the feedback on the draft assessment report arrived late – bumping right up against the deadline. Fortunately, we had incorporated many early comments and suggestions in previously. So we were able to accommodate significant last day revisions. <br />
<br />
<b>Delivering the Assessment</b><br />
The act of delivering an assessment report to the client does not simply occur at the conclusion of the project. It is a cumulative effort that actually begins days before. An assessment is like a “report card” to the client. More often than not, it will convey information that is critical of their processes. Providing negative information must be done with sensitivity. Working under ambitious deadlines can be stressful to all involved. Adding negative findings into the mix can lead to unpredictable results. Therefore, these dynamics must be anticipated and managed. <br />
<br />
As described earlier, we built in frequent, open communication within the project. We approached the assessment in a balanced and fair way with all of those involved. Client stakeholders were hearing about our day to day activities from their staff; it is essential that feedback be positive. Objectivity is also important. Thus, we presented positive findings along with critical, or negative, findings. All of this fosters trust. <br />
<br />
The final presentation culminated with an onscreen presentation for the client. \ As the Assessment report was lengthy, was delivered the presentation as an executive briefing, with a summary up-front. The client requested a preview of the following detailed section, which we were happy to provide. Thereupon, the client asked questions and our answers were crisp and to the point. This laid the groundwork for the client to read the entire presentation. <br />
<br />
Our client recognized the hard work that went into a very short two week engagement. \ It was evident that our approach was objective and that the results had integrity. <br />
<br />
To learn more about Prolifics' testing practice, <a href="http://www.prolifics.com/quality-assurance-testing" target="_blank">visit our website.</a><br />
<br />
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-CJ2s-Uq2PB4/U6hvyfKD-HI/AAAAAAAABAE/qS1oWFq21Mc/s1600/Dex+Malone.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-CJ2s-Uq2PB4/U6hvyfKD-HI/AAAAAAAABAE/qS1oWFq21Mc/s1600/Dex+Malone.jpg" height="200" width="133" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>Dex Malone is a Delivery Manager at Prolifics specializing in Independent Validation and Verification (IV&V). With over twenty-five years’ experience, Dex specializes in large, complex IT systems. He has worked in Quality Engineering leadership roles in software development across various industries. These include regulated environments in healthcare, telecommunications, general business, banking and finance, across both public and private sectors. His interests are in software security and privacy. When not in front of a computer, he can be found with family, in the mountains or at the shore. </i></div>
</div>
</td></tr>
</tbody></table>
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-35827078414447747122014-06-12T11:21:00.000-07:002014-06-12T11:21:15.607-07:00Prolifics Employee Showcase: Alan Shemelya, VP of Healthcare Business DevelopmentAlan Shemelya is the Vice President of Healthcare Business Development and is responsible for growing Prolifics’ healthcare services and solutions for customers around the world. With more than 30 years of experience and thought leadership in the Healthcare industry, Alan has accomplished an impressive list of milestones over the course of his career and is passionate about not only helping businesses achieve success but also making significant strides in patient care.<br />
<br />
<span style="color: #0b5394;"><b>Commitment to Healthcare</b></span><br />
Alan’s passion for the healthcare industry began as a young child after a trip to the hospital. His interest grew in college when he wrote a thesis on healthcare finance. During this project, he realized that hospitals were manually driven in just about everything they did on a daily basis and were operating 10 years behind. From registration to billing, automated processes simply did not exist.<br />
<br />
It was at this time that Alan recognized an opportunity in the industry. Throughout his career, his work has always been driven by a consistent mission: finding ways to improve the care of sick children.<br />
<b><span style="color: #0b5394;"><br /></span></b>
<b><span style="color: #0b5394;">The Road to Prolifics</span></b><br />
Alan joined the Prolifics team in March 2014. Over his career, he has worked with a number of leading healthcare information technology (HIT) and consulting companies in Sales, Product Development, Marketing and Implementation of EMR, Revenue Cycle and ERP solutions. Prior to joining Prolifics, Alan provided his leadership and expertise at HCA/Parallon, Xerox/ACS, Allscripts and McKesson.<br />
<br />
Alan is driven by his motivation to provide innovative IT solutions for the provider and payer markets, specializing in improving patient, provider and payer communications, business process enablement, and outcomes. With Alan’s expertise in the healthcare industry, experts will have the experience, skills and knowledge necessary to deliver in this highly complex industry, aligning innovative and proven solutions to solve clients’ business goals.<br />
<br />
<b><span style="color: #0b5394;">Innovation & Thought Leadership</span></b><br />
Alan has written articles on the redesign of business processes and advancement in technologies that enable the automation of workflow decisions impacting both providers and payers. He has been a featured speaker with the Southern Healthcare Administrative Regional Process (SHARP) and has been on the National Speakers List for the Healthcare Financial Management Association (HFMA). Below is a list of articles that Alan has published throughout his career.<br />
<br />
HFMA ANI, 2009<br />
<a href="http://www.georgiahfma.org/Documents/Presentations/2010%20Summer%20Institute/Next-Gen%20Systems%20Panel%20-%20HFMA-GA%20-%2007-23-2010%20-%20FINAL.pdf" target="_blank">HFMA Georgia Meeting, 2010</a><br />
<a href="http://www.hfma.org/WorkArea/DownloadAsset.aspx?id=5180" target="_blank">HFMA Patient Friendly Billing – Accessibility of Data</a><br />
<br />
<b><span style="color: #0b5394;">The Future is Bright</span></b><br />
When asked, Alan selected the following three words to describe Prolifics:<b> agility, intelligence, responsibility. </b>He finds these characteristics as key drivers for success in building innovative healthcare IT solutions.<br />
<br />
<b><span style="color: #0b5394;">A Recent Journey</span></b><br />
Alan recently participated in the <a href="http://www.aidslifecycle.org/" target="_blank">AIDS/LifeCycle 2014</a> bike ride. This is a fully supported, 7-day bike ride from San Francisco to Los Angeles designed to raise money and awareness in the fight against HIV/AIDS. This event delivers a life-changing experience for thousands of participants from all backgrounds and fitness levels united by a common desire to do something heroic. Prolifics proudly supports Alan and this worthwhile cause!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-9VWZe6v8-Ns/U5nrLaySgKI/AAAAAAAAA_U/XOAAJBb63Co/s1600/IMAG0057.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-9VWZe6v8-Ns/U5nrLaySgKI/AAAAAAAAA_U/XOAAJBb63Co/s1600/IMAG0057.jpg" height="400" width="226" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-53zXNAtCN6s/U5ntYJitaRI/AAAAAAAAA_o/ntvdTbbUvww/s1600/Alan_Shelmelya_02_4x6.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-53zXNAtCN6s/U5ntYJitaRI/AAAAAAAAA_o/ntvdTbbUvww/s1600/Alan_Shelmelya_02_4x6.jpg" height="200" width="133" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>Alan Shemelya is the Vice President of Healthcare Business Development at Prolifics. He is responsible for growing Prolifics' healthcare services and solutions for customers around the world. Alan has 30 years of experience and thought leadership in the Healthcare industry, specializing in Sales, Product Development, Marketing and Implementation of EMR, Revenue Cycle and ERP solutions. As an industry expert in the healthcare financial arena, Alan has written articles on the redesign of business processes and advancement in technologies that enable the automation of workflow decisions impacting both providers and payers. He has been a featured speaker with the Southern Healthcare Administrative Regional Process (SHARP) and has been on the National Speakers List for the Healthcare Financial Management Association (HFMA).</i><br /><br /><a href="https://www.linkedin.com/profile/view?id=36313992&authType=NAME_SEARCH&authToken=O315&locale=en_US&srchid=416564021402597011383&srchindex=1&srchtotal=2&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A416564021402597011383%2CVSRPtargetId%3A36313992%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-87715103329946470342014-06-11T09:18:00.000-07:002014-06-23T11:15:43.041-07:00The Web Speech API and WebSphere Portal 8The evolution of speech recognition software has come a long way. Companies like AT&T Bell Labs, IBM, and Nuance Communications are leading speech recognition experts. Commercialized software like IBM ViaVoice and Dragon NaturallySpeaking were game changers in the speech recognition software industry. The backbone technologies in speech software (e.g Hidden Markov Models, noise filtering technology, acoustic signal processing, etc.) that were originally developed decades ago, but are finding their application today in products and services like gaming consoles, smartphones, customer help centers, and infotainment systems. The adoption of speech recognition technologies is becoming an important part of the way we live. The application of the technology is crossing multiple industries; from enforcing traffic laws, to educational training, and medical transcription. The pervasiveness of speech-enabled products and services will likely lead to further innovation and refinement. This article will show you a rudimentary way on how to bring speech recognition to your web experience using a few lines of JavaScript, CSS, and HTML code in the WebSphere Portal 8 environment.<br />
<br />
By leveraging the JavaScript API defined in the <a href="https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html" target="_blank">Web Speech API specification</a>, we’re able to tap into the browser’s audio stream to transcribe speech to text. Currently, the only browser that supports the Web Speech API specification is Google Chrome. As a note in the cited W3C specification, the Web Speech API specification is not a World Wide Web Consortium (W3C) standard nor is on track to becoming a standard.<br />
<br />
To enable speech recognition in our browser, there are a handful of events and attributes we need to handle and define in order to make this functional. The start, end, result, and error events will provide us the triggering points needed to initiate and terminate our speech recognition feature on the web page. There’s also a few attributes we need to set to assist us in the transcription process. <br />
<br />
<b>Explanation of Core JavaScript Functions and Attributes</b><br />
For this implementation, the anonymous functions correlating to the start, end, result, and error events defined in the Web Speech API Specification are defined below. The triggering points for start and end events are through button clicks; the end event could also be triggered by non-detected speech or if there’s an error detected by the speech recognition service (in our case, the service hosted by Google.)<br />
In the example code below, we adapted the W3C Web Speech API specification sample code as our foundation:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-iYNKrvX5Qic/U5h_uYEOiLI/AAAAAAAAA-A/JBtUocQ6tQM/s1600/webspeech1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-iYNKrvX5Qic/U5h_uYEOiLI/AAAAAAAAA-A/JBtUocQ6tQM/s1600/webspeech1.png" height="65" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-eMZc0oGaqHU/U5h_uPy-rqI/AAAAAAAAA98/0BrqrcCZUGE/s1600/webspeech2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-eMZc0oGaqHU/U5h_uPy-rqI/AAAAAAAAA98/0BrqrcCZUGE/s1600/webspeech2.png" height="93" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-l_PwBLBFylY/U5h_uB1mRaI/AAAAAAAAA-U/Gss2HuQCTW0/s1600/webspeech3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-l_PwBLBFylY/U5h_uB1mRaI/AAAAAAAAA-U/Gss2HuQCTW0/s1600/webspeech3.png" height="125" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-i6qh1qhuL4I/U5h_u6n3ZOI/AAAAAAAAA-E/S7vAuR5CvSk/s1600/webspeech4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-i6qh1qhuL4I/U5h_u6n3ZOI/AAAAAAAAA-E/S7vAuR5CvSk/s1600/webspeech4.png" height="190" width="400" /></a></div>
<br />
<br />
The SpeechRecognition (e.g. webkitSpeechRecognition) JavaScript object attributes that are utilized in this example are defined below:<br />
<ul>
<li><b>continuous:</b> Sets the behavior for discrete or continuous speech</li>
<li><b>interimResults:</b> Indicates if an interim transcript should be returned </li>
<li><b>lang:</b> Defines the language of the recognition</li>
</ul>
<br />
Please reference the <a href="https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html" target="_blank">Web Speech API specification</a> for a complete list of method, attribute, and event definitions.<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<br />
Enabling Speech Recognition in WebSphere Portal 8<br />
Copy the images, CSS, and JavaScript files from the “SpeechAPI.zip” file to its corresponding Portal theme static resource folders (e.g. <Theme>/images, <Theme>/css, <Theme>/js).<br />
<br />
<b><span style="color: #0b5394;">Enabling Speech Recognition in WebSphere Portal 8</span></b><br />
<div>
<br /></div>
<div>
Copy the images, CSS, and JavaScript files from the “SpeechAPI.zip” file to its corresponding Portal theme static resource folders (e.g. <Theme>/images, <Theme>/css, <Theme>/js).</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-9T7cJRh0TaY/U5h_9P6HyiI/AAAAAAAAA-c/3SFWaKuM1CY/s1600/webspeech5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-9T7cJRh0TaY/U5h_9P6HyiI/AAAAAAAAA-c/3SFWaKuM1CY/s1600/webspeech5.png" height="242" width="400" /></a></div>
<div>
<br /></div>
For a quick test, Edit the “search.jsp” file from “<WPS_HOME>\PortalServer\theme\wp.theme.modules\webapp\installedApps\ThemeModules.ear\ThemeModules.war\themes\html\dynamicSpots\modules\search\”:<br />
<div>
<div>
Include the following JSTL variable declarations at the top of the “search.jsp” file</div>
<div>
<span style="color: #6aa84f;"><!-- START: Speech Recognition JSTL variables --></span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><c:set var="sr_basePath" value="/wps/mycontenthandler/dav/fs-type1/themes/portal8WebSpeechTheme"/></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><c:set var="sr_imgPath" value="${sr_basePath}/images"/></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><c:set var="sr_cssPath" value="${sr_basePath}/css"/></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><c:set var="sr_jsPath" value="${sr_basePath}/js"/></div>
<div>
<span style="color: #6aa84f;"><!-- END: Speech Recognition JSTL variables --> </span></div>
<div>
<br /></div>
<div>
Include the following HTML Input-element after Input-element (id="wpthemeSearchBoxInput") of the “search.jsp” file</div>
<div>
<input class="wpthemeSearchText" id="sr_microphone_button" type="button" title="Click to start speaking" alt="Microphone Off" style="width: 22px; height: 22px; vertical-align: middle; background-image: url('${sr_imgPath}/microphoneOff_22pxs.png');" onclick="WebSpeechHelper.prototype.toggleStartStop(event, stateInfo)"></div>
<div>
<br /></div>
<div>
Include the following HTML snippet right after the last <div> in the “search.jsp” file</div>
<div>
<span style="color: #6aa84f;"><!-- START: Speech Recognition HTML --></span></div>
<div>
<div id="sr_webSpeechAPIContainer"></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><!-- Pull in Speech Recognition Resources --></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><LINK rel="stylesheet" type="text/css" href="${sr_cssPath}/speechRecognition.css"></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><SCRIPT src="${sr_jsPath}/speechRecognition.js"></SCRIPT></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><div id="sr_results" class="sr_results"><span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span id="final_span"></span> </div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span id="interim_span"></span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><SCRIPT></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span> var jsonText = '{"parameters":[' +</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'{'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"locale":"en-US",'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"imagePath":"${sr_imgPath}",'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"microphoneOnImage":"microphoneOnAnimated_22pxs.gif",'+<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"microphoneOffImage":"microphoneOff_22pxs.png",'+<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"microphoneDisabledImage":"microphoneDisabled_22pxs.png",'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"microPhoneButtonID":"sr_microphone_button",'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"finalSpanID":"final_span",'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"interimSpanID":"interim_span",'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'"searchBoxID":"wpthemeSearchBoxInput"'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>'}'+</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>']}';</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>var jsonObj = JSON.parse(jsonText);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>var stateInfo = new SpeechStateInformation(jsonObj);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>WebSpeechHelper.prototype.initializeVoiceRecognition(stateInfo);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></SCRIPT><span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
</div></div>
<div>
<span style="color: #6aa84f;"><!-- END: Speech Recognition HTML --></span></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
*** Please reference the “search.jsp” file, included in this blog, to verify that the code-placement is correct. ***</div>
<div>
<br /></div>
<div>
After making the modification to the “search.jsp”, log into WebSphere Portal with Google Chrome (version 25 or above) to see the microphone image appear on the left of the search-icon as such:</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-QCABQL2bnM4/U5iAZO5ZdmI/AAAAAAAAA-k/VhyTalkqsMY/s1600/webspeech6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-QCABQL2bnM4/U5iAZO5ZdmI/AAAAAAAAA-k/VhyTalkqsMY/s1600/webspeech6.png" height="88" width="400" /></a></div>
<div>
<br /></div>
<div>
By clicking on the microphone image, the browser will ask you to “allow” microphone usage. The microphone image will animate when it’s enabled. In this example, I searched for “web content manager”. (Note: Click on the native search button after you’re finished speaking)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-vTFC9xq5tEw/U5iAZP7FWsI/AAAAAAAAA-8/h-W66GMMhPo/s1600/webspeech7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-vTFC9xq5tEw/U5iAZP7FWsI/AAAAAAAAA-8/h-W66GMMhPo/s1600/webspeech7.png" height="102" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-tM7T38YCPsg/U5iAZIHxnBI/AAAAAAAAA-0/8YX-VDx-d9s/s1600/webspeech8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-tM7T38YCPsg/U5iAZIHxnBI/AAAAAAAAA-0/8YX-VDx-d9s/s1600/webspeech8.png" height="91" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-wGOgCDraiIA/U5iAZQ-_ylI/AAAAAAAAA-4/oRQr5pRBWLQ/s1600/webspeech9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-wGOgCDraiIA/U5iAZQ-_ylI/AAAAAAAAA-4/oRQr5pRBWLQ/s1600/webspeech9.png" height="212" width="400" /></a></div>
<div>
<br /></div>
<div>
<b><span style="color: #0b5394;">Summary</span></b></div>
<div>
<div>
This article we hope has helped introduce the possibilities of adding speech capabilities to the user experience in WebSphere Portal 8 and beyond. The referenced example and resources should help in getting started with exploring this emerging trend in voice enabled inputs in the digital experience. Many possibilities exist for reacting to and enabling voice input and interactions with the IBM Digital Experience platform. We look forward to increasing browser support and adaption in the near future. The solution presented here could also be abstracted into a portal theme module for re-use with the module theme framework. For the purpose of illustrating the voice API integration presented here we have not packaged the examples in the Portal 8 modular theme contributions as we normally would. A non-illustrative solution would contain the modular theme contribution configuration so that resource aggregation and minification are addressed and conform to Portal 8 best practices.</div>
</div>
<div>
<br /></div>
<div>
<div>
<b>References</b></div>
<div>
<a href="https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html">https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html</a></div>
<div>
<a href="http://www.w3.org/community/speech-api/">http://www.w3.org/community/speech-api/</a></div>
<div>
<a href="http://www.itbusiness.ca/news/history-of-voice-recognition-from-audrey-to-siri/15008">http://www.itbusiness.ca/news/history-of-voice-recognition-from-audrey-to-siri/15008</a></div>
<div>
<a href="http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/speechreco/breakthroughs/">http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/speechreco/breakthroughs/</a></div>
<div>
<a href="http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2047322/">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2047322/</a></div>
<div>
<a href="http://www-10.lotus.com/ldd/portalwiki.nsf/xpViewCategories.xsp?lookupName=Developing+Themes+for+WebSphere+Portal+8.0.0.1">http://www-10.lotus.com/ldd/portalwiki.nsf/xpViewCategories.xsp?lookupName=Developing+Themes+for+WebSphere+Portal+8.0.0.1</a></div>
</div>
<div>
<br />
<br />
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/--7TGIfk_IJ8/U6huhIXzdYI/AAAAAAAAA_4/eU6zbBeEaEs/s1600/ryu-prolifics.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/--7TGIfk_IJ8/U6huhIXzdYI/AAAAAAAAA_4/eU6zbBeEaEs/s1600/ryu-prolifics.jpg" /></a></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>Richard Yu is a Senior Consultant at Prolifics with over 11 years of experience in application design, development and migration. He has worked on projects of varying complexity and magnitude in healthcare, manufacturing, and government . He holds two Master's degrees from NYU Polytechnic School of Engineering and a Bachelor's from Stony Brook University.</i></div>
</div>
</td></tr>
</tbody></table>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-86064623458194002482014-06-11T08:58:00.001-07:002014-06-11T08:58:49.823-07:00Data Integration Platform Accelerator - Talend ETL Tool <h3>
<span style="color: #0b5394;">Business Challenge</span></h3>
Data integration and collaboration between enterprise applications is a key factor for any organization. The most important aspect is to ease the seamless integration of data and proper migration of different data sources and effective collaboration of multiple Enterprise Applications. The core problem is to address the integration needs and challenges of Enterprise Applications which are built on PostGres database.<br />
<br />
The following are the key problems that need to be addressed:<br />
<ol>
<li>Effective integration between multiple Enterprise Applications</li>
<li>Collaborative seamless data integration between various Enterprise Applications</li>
<li>Provide common source for various BI reports</li>
<li>Proper data migration of different kinds of data sources</li>
<li>Replication across multiple systems</li>
</ol>
<h3>
<span style="color: #0b5394;">Solution Approach</span></h3>
To address the problem the proposed solution approaches are:<br />
<ol>
<li>Trigger Based Approach - Talend CDC</li>
<li>Using xmin – Postgres CDC</li>
<li>Trigger & xmin - Slony-I replication</li>
<li>Using WAL & Trigger - Streaming Replication : PostGres 9.0 onwards</li>
</ol>
<h3>
<span style="color: #0b5394;">1. Trigger Based Approach - Talend CDC:</span></h3>
The approach using Trigger base – Talend CDE:<br />
<ul>
<li>Creates change tables for each source table which needs to be watched</li>
<li>Triggers store the primary key of the changed record</li>
<li>Triggers store metadata of the transaction in the change tables</li>
<ul>
<li>PK (Primary key of the transaction)</li>
<li>Change Type (Update / Insert / Delete)</li>
<li>Changed By</li>
<li>Changed Time</li>
</ul>
<li>Talend CDC component extracts the changes from the change tables</li>
<ul>
<li>Follows a publish / subscribe based model</li>
<li>Provides a view to extract from the source table based on the PK</li>
<li>Left-join with the source table</li>
<li>Provides the latest updates</li>
<li>Maintains its own control tables</li>
</ul>
</ul>
<h3>
<span style="color: #0b5394;">2. Using xmin – PostGres CDE:</span></h3>
The approach using xmin – PostGres CDE:<br />
<br />
<ul>
<li>Maintains configuration on which tables need to be watched</li>
<li>Extracts the xmin for the tables to watch and stores in control tables</li>
<li>Creates a generic view to extract the changes that happened after the last extract based on xmin</li>
</ul>
<br />
<b>Advantages:</b><br />
<br />
<ul>
<li>Non-Intrusive approach over the source schema</li>
</ul>
<b>Disadvantages:</b><br />
<ul>
<li>Indexes are not available over xmin</li>
<li>Wrap-around problem</li>
<li>Cannot track deletes</li>
</ul>
<b>Metrics:</b><br />
<ul>
<li>On a simulated environment time to extract on table with more than 500K rows on a 4GB RAM 2 Core VM takes around 4-5 seconds</li>
<ul>
<li>This would grow as the number of rows increases</li>
</ul>
</ul>
<br />
<h3>
<span style="color: #0b5394;">3. Trigger & xmin – Slony I Replication:</span></h3>
The approach using Trigger &xmin – Sloney I Replication:<br />
<br />
<ul>
<li>Master / Slave replication</li>
<li>Based on triggers on Master or Origin node</li>
<li>Publisher / Subscribe model</li>
<ul>
<li>Stores transactions in sl_log_1 / sl_log_2 tables</li>
<ul>
<li>Stores TableId</li>
<li>Stores TransactionId</li>
<li>Stores Audit info</li>
</ul>
</ul>
<li>Creates Sync Events for subscribers</li>
<li>Stores sync events in sl_event table</li>
<ul>
<li>Slony daemons on subscribers pull the events</li>
<li>Get the transactionid for that event from the log tables</li>
<li>Extract and load the data in the slave schema</li>
</ul>
<li>Have Talend CDC point to the slave and extract the changes based on the trigger based approach</li>
</ul>
<br />
<b>Advantages:</b><br />
<br />
<ul>
<li>Although xmin is used internally to detect and replicate the changes, the wraparound issues are handled by slony</li>
<li>Replication Set allows to replicate only certain tables not the whole schema</li>
</ul>
<b>Disadvantages:</b><br />
<ul>
<li>Pulling changes/modified data over wire may cause delay</li>
<li>Changes to the source schema</li>
</ul>
<b>Metrics:</b><br />
<ul>
<li>Accounting the existing stats by setting the SLON_DATA_FETECH_SIZE is between 100 to 400 the slony replication has good response times</li>
<li>As the triggers would be on the slave it would be faster for talend CDC extraction as they are based on PK’s</li>
</ul>
<br />
<div>
<br /></div>
<ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-y60ufRyrsJw/U3tha_TqsZI/AAAAAAAAA8s/x2uvb8pMy84/s1600/talend1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-y60ufRyrsJw/U3tha_TqsZI/AAAAAAAAA8s/x2uvb8pMy84/s1600/talend1.png" height="181" width="320" /></a></div>
<br />
<div>
<h3>
<span style="color: #0b5394;">4.<span class="Apple-tab-span" style="white-space: pre;"> </span>Using WAL & Trigger - Streaming Replication : PostGres 9.0 onwards</span></h3>
<b>Limitations with this approach:</b><br />
<br />
<ul>
<li>WAL-based replication requires that all databases use identical versions , running on identical architectures</li>
<li>WAL-based replication duplicates the model</li>
<li>Do not have the ability to have specific updates on Target Schema</li>
<li>Synchronous Replication based on 2-Phase commits</li>
</ul>
</div>
<div>
<br /></div>
<div>
<div>
<ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-Du9GD42D-0U/U3tiMJ1mWjI/AAAAAAAAA80/Qy_jgh11-0k/s1600/talend2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-Du9GD42D-0U/U3tiMJ1mWjI/AAAAAAAAA80/Qy_jgh11-0k/s1600/talend2.png" height="168" width="400" /></a></div>
<div>
<br /></div>
</div>
</div>
<div>
<h3>
<span style="color: #0b5394;">Proposed Solution (Talend Tool)</span></h3>
Based on all the above approaches, Trigger based approach seems to be the best option with using Talend CDC. The main advantage with this approach is the efficient retrieval you receive from source based on indexed columns.<br />
<br />
<b>Overview</b><br />
Talend is an Open Source Integration Software Company that provides open source middleware solutions that enable organizations to gain more value from their applications, systems and databases. Shattering the traditional proprietary model, Talend democratizes the integration market by providing enterprise-grade open source technologies that cover both the data integration and application integration needs of organizations of all sizes.<br />
<br />
Talend's unified integration platform addresses projects such as data integration, ETL, data quality, master data management and application integration. With their proven performance, user friendly, extensibility and robustness, Talend's solutions are the most widely used and deployed integration solutions around the world. Talend is a tool for people who are already making a Java program and want to save an abundant amount of time with a tool that generates code for them. The simple DW Architecture is below.<br />
<br />
<h3>
<span style="color: #0b5394;">Talend Features:</span></h3>
<ol>
<li><b>Collaborative Data Integration</b> - Talend’s data integration products provide powerful andflexible integration, so that firms can stop worrying about how databases and applications are talking to each other. Thus providing them with the ability to maximize the value of using their data.</li>
<li><b>Transform and Integrate Data between Systems</b> - Talend’s data integration products provide an extensible, highly-performant, open source set of tools to access, transform and integrate data from any business system in real time or batch to meet both operational and analytical data integration needs. With over 450 connectors, it has the ability to integrate almost any data source. The broad range of use cases addressed include: massive scale integration (big data/ NoSQL), ETL for business intelligence and data warehousing, data synchronization, data migration, data sharing, and data services.</li>
<li><b>A Comprehensive Solution</b> - Talend provides a Business Modeler, a visual tool for designing business logic for an application; a Job Designer, a visual tool for functional diagramming, delineating data development and flow sequencing using components and connectors; and a Metadata Manager, for storing and managing all project metadata, including contextual data such as database connection details and file paths.</li>
<li><b>Broad Connectivity to All Systems </b>- Talend connects natively to databases, packaged applications (ERP, CRM, etc.), SaaS and Cloud applications, mainframes, files, Web services, data warehouses, data marts, and OLAP applications. It offers built-in advanced components for ETL including string manipulators, Slowly Changing Dimensions, automatic lookup handling and bulk loading. Direct integration is provided with data quality, data matching, MDM and related functions. Talend connects to popular cloud apps including Salesforce.com and SugarCRM.</li>
<li><b>Teamwork and Collaboration</b> - The shared repository consolidates all project information and enterprise metadata in a centralized repository shared by all stakeholders: business users, job developers, and IT operations staff. Developers can easily version jobs with the ability to roll-back to a prior version.</li>
<li><b>Advanced Management and Monitoring</b> - Talend includes powerful testing, debugging, management and tuning features with real-time tracking of data execution statistics and an advanced trace mode. The product incorporates tools for managing the simplest jobs to the most complex ones, from single jobs to thousands of jobs. Processes can be deployed across enterprise and grid systems as data services using the export tool.</li>
<li><b>It uses a code-generating approach. Uses a GUI, but within Eclipse RC.</b></li>
<li><b>It generates java or Perl code which can run on any server.</b></li>
<li><b>It can schedule tasks (also with using schedulers’ like cron).</b></li>
<li><b>It has data quality features: from its own GUI, writing more customized SQL queries and Java.</b></li>
</ol>
<br />
<div>
<br /></div>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-2Gxj333ec6A/U3tigTUfSDI/AAAAAAAAA88/2MUA69z0c6w/s1600/talend3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-2Gxj333ec6A/U3tigTUfSDI/AAAAAAAAA88/2MUA69z0c6w/s1600/talend3.png" height="231" width="320" /></a></div>
<br /></div>
<div>
<div style="text-align: center;">
<b>Figure 2: Typical enterprise data integration model</b></div>
<br /></div>
<div>
<div>
<h3>
<span style="color: #0b5394;">Advantages of Using Talend Tool</span></h3>
<ul>
<li>Talend is used in an application to retrieve and transform the data across multiple systems at enterprise level. </li>
<li>With Talend Centralize data integration, enrichment and distribution is made easy</li>
<li>Capable of generating multiple BI Reports using unified transactional data model</li>
<li>Ability to configure the Talend Jobs to pick data from a certain period of time.</li>
<li>All such data flows are registered with an approval process for new ones, with special emphasis on extra-company flows</li>
<li>Metadata-driven architecture to ensure that critical data elements and transformations are documented, controlled (e.g., sensitive data) and kept in sync with implementation</li>
<li>Talend Slony replication is used to replicate data across multiple enterprise systems</li>
<li>Talend CDC is used to create Triggers and views on the source database to pull the changed data and insert / update the Target Database.</li>
</ul>
<h3>
<span style="color: #0b5394;">Value Addition using Talend Open Source Tool</span></h3>
<ul>
<li>Talend Open Source Tool enabled development for centralized location of data for various enterprise applications</li>
<li>With Talend Open Source we could achieve easy transactional data transformations across systems</li>
<li>Simplified tool to develop transactional data jobs</li>
<li>Insulates clients from changes in transactional systems</li>
<li>Reduces modelling and data quality effort downstream, e.g., at DW/BI for conforming dimensions, de-duping and resolving inconsistent reports</li>
<li>Provides good turn around on data retrievals</li>
<li>Provides source data for operational reporting</li>
<li>Talend CDC enabled Rapid Application development </li>
<li>Slony enabled smooth replication of data</li>
</ul>
</div>
</div>
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-52666559490399846722014-06-11T08:58:00.000-07:002014-06-11T08:58:28.294-07:00Enterprise Entitlement Engine and Framework<b><span style="color: #0b5394;">Overview</span></b><br />
A key goal of business technology systems is to ensure that the right people have access to the right information at the right time. <b>Entitlements Engine</b> is a fine grained authorization engine that externalizes, unifies, and simplifies the management of complex entitlement policies—strengthening security and compliance, improving IT efficiency, and enhancing business agility. These authorizations may be used to protect the most fine grained business or IT concept. Many organizations look into this as high prioritized need and to be managed by Centralized Application/Tools for proper Authentication and Authorizations.<br />
<br />
Essentially, systems accomplish these requirements by enforcing a set of policies that regulate the behavior of system components and resources to match the “access” profile of the user accessing the system. At the most abstracted level, the system forces a user to specify and verify who they are (authentication) and then limits resources that can be accessed or manipulated by the user (authorization). Policies and rules govern each of the two facets. These two components of access management impose different types of challenges and requirements.<br />
<br />
<b>Authentication</b> – establishing and validating identity. In most cases user ids and passwords presented at login screens/forms suffice. <br />
<b>Authorization</b> – what information is a user permitted to access and manipulate – can impose very complex requirements.<br />
<br />
The Entitlement Engine will be a critical enterprise component that addresses the requirements for fine-grained, context-sensitive authorization requirements. Authorization needs are not hard coded into applications, but rather specified as “configuration” in a UI provided by the Entitlement Framework. It is intended to be “application context aware”, thus providing a means to express very fine-grained authorization requirements to the system. It integrates as a service layer with the application, providing loose-coupling. In addition, it can be integrated within an application’s presentation and validation framework to eliminate screen-at-a-time integration effort – making the execution seamless to developers.<br />
<b><br /></b>
<b><span style="color: #0b5394;">Concepts</span></b><br />
<b>Authentication:</b> Before a user or another system can access any resource managed by the system, the requesting entity must establish and “authenticate” their identity. At a high (simple) level, this process is implemented using one of several authenticating forms (certificates, logins, biometrics, etc.), depending on the context of the request and the requirements of the established policy. Most commonly, a user provides credentials (user-id, password) at “login”. If the provided credentials meet the security requirements, system can proceed with the identity of the validated user. The authentication process is supported by a multitude of rules and policies (e.g., password rules, expiration policies, failed attempts, etc.) that guard against users (and other systems) trying to gain unauthorized access.<br />
<br />
In Current Entitlement Engine Authentication is not addressed as this is maintained by other Third party tool.<br />
<br />
<b>Authorization:</b> In an organization or business unit there are people in different roles who are required to perform specific tasks – but not authorized to perform other tasks. Enterprise applications and resources facilitate these individuals in performing their job functions efficiently and effectively. As these applications and resources will be accessed by people with different levels of authorization, applications require the capability to provide the necessary restrictions based on the role the user has.<br />
<br />
<b>Role Based Access Control (RBAC): </b><br />
The first part of the authorization approach relates to restricting system access to authorized users based on the role they have. Thus, authorization is expressed as permission sets based on roles.<br />
RBAC is considered “Coarse-grained” authorization and is used to define broader-level functionality (features or resources) a role can access. Users are assigned one or more roles. When that user logs in to a particular application, the application can determine what resources (menu items, screens, etc) that user can access, based exclusively on their role.<br />
<b><br /></b>
Limitations:<br />
At this level, we cannot define the “context” in which the feature is being accessed and, therefore, not specify a specific permission set for a “context”. For example, the authorization policy – that a Credit Reviewer cannot approve a Commitment – can be expressed and executed just based on a user’s role.<br />
We also do not have a way of creating a profile based on the user skill set and assign permissions that are based on attributes other than role.<br />
<br />
<b>Attribute Based Access Control: </b><br />
The second part of the authorization approach augments RBAC capabilities to allow policies based on attributes of a user (e.g., skill, age, etc) and/or the environment (e.g., time, network, etc). While this notion can be extended to additional attributes (like application or business object), there is no structured (or simple) mechanism in off-the-shelf products to facilitate accessing these attributes or to define policies applicable to these attributes. Further, these tools do not support out-of-the-box facilities to help integrate with applications to execute policies in a runtime environment. Managing fine-grained control in a flexible manner while lowering the cost of delivery and maintenance requires the framework to be “context aware”. It must support exposing application and object attributes (e.g., screens, forms, button in an application or loan amount, LTV, etc.) at definition time so that policies for these (and other) attributes can be defined for profiles and roles. In addition, the framework needs to support convenient integration with the application framework. Moreover, the architecture of the framework must allow efficient execution of privileges at runtime so that the system will scale with high volumes.<br />
<br />
<b><span style="color: #0b5394;">3. Objectives</span></b><br />
The objectives of the proposed Entitlement Engine are:<br />
<br />
<ol>
<li>Fine grained authorization which gives the flexibility in defining the permissions based on a context for a specific role or profile.</li>
<li>Policies can be defined with relevance to context. </li>
<li>To provide centralized way of defining and evaluating policies based on the application, object, roles, profiles and resources. Changes are achieved through “configuration”.</li>
<li>To integrate with the application framework and perform efficiently, since policies are defined as values, ranges and lists for attributes and not in a computer language.</li>
</ol>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-dA8rFuUQJvQ/U5h6HohpUeI/AAAAAAAAA9s/UOI9Wadh-mg/s1600/entitlement_engine1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-dA8rFuUQJvQ/U5h6HohpUeI/AAAAAAAAA9s/UOI9Wadh-mg/s1600/entitlement_engine1.png" height="242" width="400" /></a></div>
<br />
<br />
<b><span style="color: #0b5394;">4. Solution Approach</span></b><br />
The approach proposed here it to develop and deploy an Enterprise Entitlement Engine and Framework that specifically meets the sophisticated needs of the organization. Below is the level of access or security control that Entitlement Engine is proposed to have.<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-bPxNPDOFXs4/U5h6HtFTnII/AAAAAAAAA94/CRv7XdyRe_4/s1600/entitlement_engine2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-bPxNPDOFXs4/U5h6HtFTnII/AAAAAAAAA94/CRv7XdyRe_4/s1600/entitlement_engine2.png" height="115" width="320" /></a></div>
<div>
<br /></div>
<div>
Traditional IAM tools like (Oracle Enterprise Manager, IBM TIM and TAM, WSO2 Identity server) are good in providing a centralized way of access management at the enterprise resource level (show a form or not show a form) but not for managing “sub-resource” level details and privileges. They lack a centralized way of access management at the Object, Record and Field level, particularly in the context of an application that manipulates these objects. </div>
<div>
<div>
<br /></div>
<div>
The proposed Entitlement Engine provides some critical features to meet the necessary requirements.</div>
<div>
<ol>
<li>A business user interface to define profiles and associate access to the lowest level (field or data in a field) per application. </li>
<li>Entitlement engine provides the permissions for a specific role or profile based on the object hierarchy for the application once the user logs in. </li>
<li>As the permissions need to be evaluated for all the users who login the engine would be performance sensitive and would need to bring all the permissions and access on the whole object hierarchy. As we are not going to evaluate the permissions on each and every field, the approach is to cache the context specific retrieved entitlements so that there would be zero latency in the requests made by the application.</li>
<li>The Entitlement Engine also provides a way for certain role to delegate some of his permissions to the roles under him. This gives the flexibility for the manager to maintain business continuity even in his absence. All the activities done would be audited and tracked for future reference.</li>
<li>Entitlement engine provides services, which can be accessed by applications, which are built in any language and get the permissions. The engine provides RESTful web-services which could be integrated for better performance.</li>
<li>Entitlement engine provides various reports on the profiles created, usage of applications, delegations made by profiles, changes in object permissions etc. This helps the management as well as the compliance team to make sure the access to the applications and features within the applications is based on the standards defined.</li>
<li>Entitlement engine is built upon a framework which could be extended as needed as well can integrate with any existing systems as needed. </li>
<li>Entitlement engine has inbuilt caching mechanism’s implemented which bring down the response times for requests from applications. The architecture is built-in to consider high availability and fail-over by proper load balancing at various layers.</li>
</ol>
</div>
<div>
<b><span style="color: #0b5394;">5. Entitlement Engine Features</span></b></div>
<div>
Entitlements System has the following features:</div>
<div>
<br /></div>
<div>
<u>System Management</u></div>
<div>
In our entitlements system we treat every enterprise resource as a system. We can define different kinds of systems like Web Application, Web Service, Database, FTP server, any network device etc., by using our pre-configured metadata about different system types.</div>
<div>
Below are the high level features </div>
<div>
<ul>
<li>Defining System</li>
<li>Associating attributes defined in the System type to System</li>
<li>Associating Object Hierarchy to a system</li>
<li>Defining allowed access types to the objects in the object hierarchy</li>
</ul>
</div>
<div>
<u>Object Hierarchy Management</u></div>
<div>
This feature allows defining and associating an object hierarchy to a system. Every system has a specific object hierarchy. We have pre-configured object types which can be associated to these objects or we can extend the metadata as needed. At the object level we can define what different kind of access can be allowed on this object.</div>
<div>
<br /></div>
<div>
<u>Configuration Management</u></div>
<div>
Every feature (System, Profile, Access and Object) in the entitlement system is based on a type. The configuration management helps in defining the metadata for the features provided by the entitlement system. </div>
<div>
<br /></div>
<div>
Below are some of the configurations</div>
<div>
<ul>
<li>System Type</li>
<li>Object Type</li>
<li>Access Type</li>
<li>Identity Provider</li>
</ul>
<u>Profile Management</u></div>
<div>
Profile defines what level of access a user has with a particular system. Profiles are created for specific systems and then associated with user(s), role.</div>
<div>
High level features </div>
<div>
<ul>
<li>Profile Creation - A particular profile can be created for the System Object hierarchy. </li>
<li>Profile Delegation - This feature allows a manager to delegate some or all of his objects from a profile to a sub-ordinate. The manager can also specify the duration and can change the level of access for that delegated profile.</li>
<li>Profile Configuration - Profile can be configured against associated system object hierarchy. Extended data constraints can be configured for objects in object hierarchy.</li>
</ul>
</div>
<div>
<u>Integration with Third -Party Identity Providers</u></div>
<div>
The entitlements system is powered to integrate with any third party Identity provider. The system has also the capability to define identities internally or map/sync the identities from different third party vendors. The internal structure mapped based on Users,</div>
<div>
<ul>
<li> Users - We have regular sync job which update the users in our entitlements system with the third party provider.</li>
</ul>
</div>
<div>
<u>User Profile Management</u></div>
<div>
Entitlement Engine facilitates mapping profiles to users.</div>
<div>
<br /></div>
<div>
<u>Entitlement Services</u></div>
<div>
These are the different services provider by our entitlements engine to the enterprise applications (for getting the entitlements for the logged in user). We have pre-defined services which can be accessed by REST Protocol.</div>
<div>
<br /></div>
<div>
<u>Audit Control</u></div>
<div>
Every action done on the entitlements system is tracked. We have a view and edit history on every feature (System, Profile, Object Hierarchy etc.) of the system. </div>
<div>
<br /></div>
<div>
<u>Reports</u></div>
<div>
There are several reports provided by our entitlement system which gives a high level as well as detailed information to the business users.</div>
<div>
<br /></div>
<div>
Below are some of the canned reports</div>
<div>
<ul>
<li>Users based on selected profiles</li>
<li>Delegated profiles</li>
<li>Profiles based on system</li>
<li>Profiles mapped to users, organization units and cost center</li>
<li>System level profile usages by user</li>
</ul>
</div>
<div>
<u>Back-End jobs</u></div>
<div>
There are back-end scheduled job to sync-up the identity info from the configured identity provider.</div>
<div>
<br /></div>
<div>
Note: The below are handled by a third party tools.</div>
<div>
<ol>
<li>Identity Management: The third party tool will be taking care creation, updating and managing the User identities.</li>
<li>Authentication: The third party tool will be taking care of the authenticating the user based on the identity provider and provide a federated access or SSO implementation for the enterprise applications.</li>
</ol>
</div>
</div>
<div>
<b><span style="color: #0b5394;">6. Technologies </span></b></div>
<div>
<br /></div>
<div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; margin-left: 12.5pt; mso-border-alt: solid #1F497D .5pt; mso-border-insideh: .5pt solid #1F497D; mso-border-insidev: .5pt solid #1F497D; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 480;">
<tbody>
<tr style="height: 17.95pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="border: solid #1F497D 1.0pt; height: 17.95pt; mso-border-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Operating
System<o:p></o:p></span></b></div>
</td>
<td style="border-left: none; border: solid #1F497D 1.0pt; height: 17.95pt; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Windows XP/Windows 7(Development),
RedHat Enterprise Linux 5(Production)<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 1;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">IDE/Language<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Eclipse / Java<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 2;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Secondary
Cache/Persistence Frameworks<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Memcache<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 3;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Frameworks<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">PrimeFaces 3.5, Spring 3.0<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 4;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">UI/Ajax
Frameworks/HTML/CSS<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">JQuery<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 5;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Database <o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="background: white; font-family: Calibri, sans-serif; font-size: 11pt;">PostgreSQL</span><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 6;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Browser
Compatibility Test<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">IE 6.0+, FireFox, Chrome, Safari<o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .25in; mso-yfti-irow: 7; mso-yfti-lastrow: yes;">
<td style="border-top: none; border: solid #1F497D 1.0pt; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 150.5pt;" width="201">
<div class="MsoNoSpacing">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Web
Server/Application Server<o:p></o:p></span></b></div>
</td>
<td style="border-bottom: solid #1F497D 1.0pt; border-left: none; border-right: solid #1F497D 1.0pt; border-top: none; height: .25in; mso-border-alt: solid #1F497D .5pt; mso-border-left-alt: solid #1F497D .5pt; mso-border-top-alt: solid #1F497D .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 303.1pt;" width="404">
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-font-size: 8.0pt; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">JBoss 7.1.1<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
<div>
<b><span style="color: #0b5394;">7. Advantages on Building on Open Standards</span></b></div>
<div>
<br /></div>
<div>
Our solution is built on open standards so that it’s easy to integrate with any IAM tool and heterogeneous applications based on different environments. Below are some of the details.</div>
<div>
<ol>
<li>We have built-in adapters which could be used by the enterprise applications which do understand the authentication tokens which are SAML based.</li>
<li>We have built-in connectors which help the applications to communicate over SOAP, REST or Thrift. This gives the applications the flexibility to choose the protocol they need.</li>
<li>We have built in service providers for giving out the defined application level permissions in the form of XML, JSON or Compact mode.</li>
<li>We have built-in adapters when configured can talk to any XACML based PDP. This adapter does understand the XACML response and can provide the response back to the application based on their needs (SOAP/JSON/Compact etc.).</li>
<li>Our solution is built on open source frameworks (Spring, Primefaces) and deployed over JBOSS as the application server. </li>
</ol>
</div>
</div>
<div>
<br /></div>
<div>
To learn more about Prolifics, visit <a href="http://www.prolifics.com/">www.prolifics.com</a>.</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-40797184456108370352014-06-05T09:46:00.002-07:002014-06-05T09:46:51.651-07:00Measuring ROI from Business Process Management Initiatives<b><span style="color: #0b5394;">Executive Summary:</span></b><br />
Business process management projects are riddled with implementation challenges. Differing expectations on process performance and lack of communication between IT and business users, delays in “operationalizing” BPM applications, process design that changes the "we have always done it this way" style of operations are some of the main contributors to these challenges. The delays in implementing new applications make it difficult to correctly measure the return on investment (ROI). This article explores some of the tangible ways in which the ROI can be correctly measured after a BPM project implementation.<br />
<br />
<b><span style="color: #0b5394;">Why the delay?</span></b><br />
During the requirements phase, the business process (operations) users might have different expectations from an automated process. In most of the scenarios, the operations users tend to be influenced by the legacy systems while describing the process requirements. After the IT team develops the automated process application eliminating inefficiencies, differences crop up. This problem is compounded if the process "playback" methodology is not adopted while developing the application. The tug of war between the IT and operations leads to delays in implementing the process application, hence delaying the ROI and increasing the project costs. A lack of executive sponsorship for championing the process improvement cause among the business users is also one of the chief reasons that delays adoption of the new application. A process performance benchmark set before an IT initiative is undertaken would solve all these problems.<br />
<br />
<b><span style="color: #0b5394;">How to set process benchmarks?</span></b><br />
The first step is to achieve process maturity within the organization. This need not wait till a BPM initiative(s) is identified. A comprehensive process inventory capturing the existing processes within an organization gives a good view to plan the process benchmarking. If a Big Bang approach to process inventory is not possible, the process assessment can be limited to a business unit or function. It can be started with value map or capability map or organization chart. A combination of top down and bottom up approach to create process awareness should be adopted. Business users should be enlisted to help identify the critical process.<br />
<br />
<div>
<b>Steps to set process benchmarks:</b><br />
<br />
<b><span style="color: #0b5394;">Identify objectives for each area for next few years:</span></b><br />
<br />
<ul>
<li>What are the processes that currently exist in these areas? Who owns them?</li>
<li>Are these processes helping to achieve the objective?</li>
<li>What is the desired state for the processes to achieve the objectives?</li>
<li>How do you measure if processes are helping you achieve the objectives?</li>
<li>Which business units are involved in the business process?</li>
<li>What are the key areas impacted by the business process?</li>
</ul>
<br />
<div>
<div>
<b><span style="color: #0b5394;">Define KPI & SLAs:</span></b></div>
<div>
<ul>
<li>Is the goal to reduce time or achieve agility or improve visibility? or all of them?</li>
<li>What should be the end to end cycle time of the business process?</li>
<li>Do the current SLA's apply to the new objectives?</li>
<li>How do my SLA's compare against my competitors (if possible to compare)?</li>
<li>Do the current processes create enough and relevant data for me to measure my business performance? What should I do to create digital data?</li>
</ul>
</div>
</div>
<div>
<b><span style="color: #0b5394;">Set Employee Measures:</span></b></div>
<div>
<div>
<ul>
<li>What is the best utilization of my full time employees (FTE's) within these units? </li>
<li>Are the processes too much people dependent?</li>
<li>What will happen to my operations if my employees quit?</li>
<li>What type of employee skill sets do I need in the next few years? Do these processes support working with such skill sets?</li>
</ul>
</div>
</div>
<div>
<b><span style="color: #0b5394;">Set Revenue & Cost Measures:</span></b></div>
<div>
<div>
<ul>
<li>For revenue impacting processes, how do these processes measure up against the revenue targets for next quarter/month/year?</li>
<li>For customer impacting process, what do the customer satisfaction ratings say? What are the desired ratings?</li>
<li>What are my cost savings targets for next quarter/month/year?</li>
</ul>
</div>
</div>
<div>
These are some of the ideas for setting up process benchmarks. When these benchmarks are set up proactively, it keeps the measures independent of any BPM/Automation initiatives and provides an objective measure for ROI on the BPM/Automation initiatives.</div>
<div>
<div>
<br /></div>
<div>
<b><span style="color: #0b5394;">Setting ROI Measures:</span></b></div>
<div>
Once the process benchmarking has been set, it is a good time to identify BPM and other digital/automation initiatives. Select a critical process improvement initiative that can be implemented in around 4 months to show value and achieve a quick win. In order to regularly measure the progress of the process initiative, the benchmark targets should be broken down into multiple, phased targets. </div>
<div>
E.g.: </div>
<div>
<ul>
<li>After iteration one, the process cycle time should be reduced by X hours</li>
<li>After iteration two, the FTE utilization should only be 60% of process work</li>
<li>After iteration one, work assignment should be dynamic and flexible. </li>
</ul>
</div>
<div>
The ROI should be mapped against these benchmarks. The benchmarks should be assigned a $$ value, the expected time to achieve the benchmark taken into account and discount factor assigned to this $$ value. The increase in revenue $$ and cost savings $$ should be added to create the complete ROI figures.</div>
</div>
<div>
<br /></div>
<b><span style="color: #0b5394;">Measuring ROI:</span></b><br />
True continuous improvement is achieved in an iterative manner:</div>
<div>
<br /></div>
<div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: .5in; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 484px;">
<tbody>
<tr style="height: .2in; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: #4F81BD; border-bottom: solid white 3.0pt; border: solid white 1.0pt; height: .2in; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div align="center" class="MsoPlainText" style="text-align: center;">
<b><span style="color: white; font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin; mso-themecolor: background1;">ROI Measurement Cycle</span></b><span style="color: white; font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin; mso-themecolor: background1;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 1;">
<td style="background: #D0D8E8; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 3.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">Compare the process/rules/IT performance
against benchmarks regularly <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 2;">
<td style="background: #E9EDF4; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 1.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">Implement Data Analytics tools to measure
business data impacted by business processes <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 3;">
<td style="background: #D0D8E8; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 1.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">Compare the process KPIs with captured
data <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 4;">
<td style="background: #E9EDF4; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 1.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">Perform a regression, is there a
correlation between process KPIs and my revenue/cost drivers? <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 5;">
<td style="background: #D0D8E8; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 1.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">What KPI measures do you have to
meet/improve to achieve the desired objective? <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 6;">
<td style="background: #E9EDF4; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 1.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">Identify process areas that can improve
these KPIs <o:p></o:p></span></div>
</td>
</tr>
<tr style="height: .2in; mso-yfti-irow: 7; mso-yfti-lastrow: yes;">
<td style="background: #D0D8E8; border-top: none; border: solid white 1.0pt; height: .2in; mso-border-top-alt: solid white 1.0pt; padding: .05in .1in .05in .1in; width: 362.7pt;" valign="top" width="484">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-bidi-font-size: 10.5pt; mso-hansi-theme-font: minor-latin;">Get back to process improvement <o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
The ROI should be measured against a minimum of 3 process cycles (around 2 years):</div>
<div>
<br /></div>
<div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 587px;">
<tbody>
<tr style="height: 11.6pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="background: #4F81BD; border-bottom: solid white 3.0pt; border: solid white 1.0pt; height: 11.6pt; padding: .05in .1in .05in .1in; width: 440.6pt;" valign="top" width="587">
<div align="center" class="MsoPlainText" style="text-align: center;">
<b><span style="color: white; font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-themecolor: background1;">ROI
Measurement in Phases</span></b><span style="color: white; font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-themecolor: background1;"><o:p></o:p></span></div>
</td>
</tr>
<tr style="height: 29.2pt; mso-yfti-irow: 1; mso-yfti-lastrow: yes;">
<td style="background: #D0D8E8; border-top: none; border: solid white 1.0pt; height: 29.2pt; mso-border-top-alt: solid white 3.0pt; padding: .05in .1in .05in .1in; width: 440.6pt;" width="587">
<div class="MsoPlainText">
<span style="font-family: "Calibri","sans-serif"; font-size: 9.0pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Project
investment (-$$) + (Iteration 1 ROI/ (1+IRR) + (Iteration 2 ROI/ (1+ IRR)<sup>2</sup>)
+ (Iteration 3 ROI/ (1+ IRR3)<sup>3</sup>) = 0<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
<div>
<b><span style="color: #0b5394;">Closing Comments:</span></b></div>
<div>
Setting process benchmarks builds accountability into BPM projects. Setting the correct expectations and making budget decisions based on a ROI calendar helps in reducing the delays in implementing BPM projects and to add true value to the business.</div>
</div>
<div>
<br /></div>
<div>
To learn more about Prolifics' BPM solutions, <a href="http://www.prolifics.com/business-process-optimization-automation" target="_blank">visit our website</a>.</div>
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><a href="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" imageanchor="1" style="clear: left; color: #6699cc; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center; text-decoration: none;"><img border="0" src="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" style="border: none; position: relative;" /></a><br /><div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>N.R. Vijay is a Solution Architect in the Business Process Management division of Prolifics. He has over 10 years of consulting experience across domains such as Retail, Healthcare and Banking. Specializing in technology, management concepts and enterprise strategy, he is focused on change management and process improvement initiatives. He co-authored a whitepaper titled "<a href="http://www.prolifics.com/customer-loyalty-bpm-analytics.htm." style="color: #6699cc; text-decoration: none;" target="_blank">Improving Customer Loyalty through Business Process Optimization and Advanced Business Analytics</a>"</i><br /><br /><a href="http://www.linkedin.com/profile/view?id=24862963&authType=NAME_SEARCH&authToken=mkg4&locale=en_US&srchid=2981910231398449822855&srchindex=1&srchtotal=57&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A2981910231398449822855%2CVSRPtargetId%3A24862963%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-82746178261543779542014-06-05T06:16:00.000-07:002014-06-05T06:16:46.343-07:00ODM Integration with SPSS Predictive Analysis Suite - Part 1: PMML ImportThere are a few ways of integrating the SPSS Predictive Analytics Suite with ODM. To get started, it is required to install the SupportPac (LB02).<br />
<br />
The SupportPac provides two features that support the usage of business rules and Predictive Analytics together:<br />
<ul>
<li><b>Part 1:</b> Import a decision tree model via PMML (Predictive Model Markup Language) and generate an Operational Decision Management decision tree at design time (discussed in this article)</li>
<li><b>Part 2:</b> Reference predictive scores within business rules and obtain those scores at runtime from the SPSS Scoring Service (not discussed in this article)</li>
</ul>
In this article I am going to describe step-by-step the instructions to utilize the ODM capabilities of PMML Import of Decision Tree models. Part 2 will be a separate article describing ODM-SPSS Scoring Service approach. Both approaches require an installation of IBM WebSphere Operational Decision Management Integration with the SPSS Predictive Analytics Suite SupportPac.<br />
To install the IBM WebSphere Operational Decision Management Integration with the SPSS Predictive Analytics Suite SupportPac, you must:<br />
<ol>
<li>Unzip the SupportPac deliverable in the WebSphere Operational Decision Management installation directory.</li>
<li>Install the predictive analytics features from Rule Designer.</li>
</ol>
PMML is the leading standard for statistical and data mining models. It uses XML to represent mining models, so that models can be shared. In other words, using PMML, models can be developed on one system using one application and deployed on another system using a different application. Models can be created and PMML can be generated and exported using the SPSS Modeler.<br />
<br />
The PMML import approach works for Decision Tree models. Decision Tree models are produced by data mining algorithms (such as CHAID, C&RT, ID3, C4.5/C5.0) that identify various ways of splitting a dataset into branch-like segments, forming an inverted tree that starts with the root node at the top of the tree. Decision Tree models are used frequently in the data mining community for classification and prediction as they are easy to understand, easy to use, support both quantitative and qualitative measurements, and are very robust. Data mining workbenches, like the SPSS Modeler, provide rich toolsets for creating and validating Decision Tree models.<br />
<br />
The PMML import feature focuses on the Decision Tree model. After your Decision Tree model is exported from a modeling tool to a PMML file, you can import it into a decision tree.<br />
<br />
The primary difference between a Decision Tree model, as used in the data mining community, and a decision tree is that the decision tree has actions attached to the leaf nodes while the Decision Tree model usually has some sort of predicted variable or classification attribute specified for each node. In other words, a Decision Tree model can identify the business rules for classifying and predicting a specific variable, whereas the decision tree can actually execute those business rules along with the appropriate actions at run time.<br />
<div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-59OGXrvqCEI/U5Bscb8pspI/AAAAAAAAA9M/tYOua7nXkzU/s1600/spss1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-59OGXrvqCEI/U5Bscb8pspI/AAAAAAAAA9M/tYOua7nXkzU/s1600/spss1.png" height="330" width="400" /></a></div>
<div>
</div>
<div>
<br /></div>
<div>
1. Importing PMML you have a choice to either generate the BOM elements the model is using or to map existing BOM elements to the fields in the model. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-zBxVuWL-BEM/U5BscBOVT1I/AAAAAAAAA9c/iJJI1SAqyW0/s1600/spss2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-zBxVuWL-BEM/U5BscBOVT1I/AAAAAAAAA9c/iJJI1SAqyW0/s1600/spss2.png" height="307" width="400" /></a></div>
<div>
<br /></div>
<div>
2. The PMML import creates a Decision Tree and the BOM elements used in the model. You may get B2X errors and warnings until you create the corresponding XOM class.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-abSoJyFsrxE/U5BscDAn03I/AAAAAAAAA9Y/4VO1UyWgdak/s1600/spss3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-abSoJyFsrxE/U5BscDAn03I/AAAAAAAAA9Y/4VO1UyWgdak/s1600/spss3.png" height="249" width="640" /></a></div>
<div>
</div>
<div>
3. At this point you can treat the Decision Tree as other Decision Trees (if any) or rule artifacts created in Rule Designer. You are allowed to modify/edit the DT. Best practices around ruleflow orchestration suggest that each decision tree should be contained within its own rule task. </div>
<div>
<div>
<br /></div>
<div>
Note that an imported decision tree currently has no life-cycle link to the PMML file. Consequently, if you change the PMML model itself, you will have to repeat the import/modification process.</div>
</div>
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><img height="200" src="https://media.licdn.com/media/p/1/000/286/344/2f7aa76.jpg" style="color: black; font-family: 'Times New Roman'; font-size: medium; line-height: normal;" width="200" /><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<div>
<i>Artur Sahakyan is an Associate Consultant at Prolifics specializing in IBM WebSphere Operational Decision Management (v5.xx - v8.xx). Artur has a strong background in mathematics and probability/statistics. He also has profound knowledge of IBM Business Process Manager, IBM Integration Bus (IIB v9), IBM WebSphere MQ (v7), IBM SPSS Modeler, IBM SPSS Statistics, Java, C++, C. </i></div>
<br />
<a href="https://www.linkedin.com/profile/view?id=39996192&authType=NAME_SEARCH&authToken=QdIi&locale=en_US&srchid=416564021399565894425&srchindex=1&srchtotal=7&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A416564021399565894425%2CVSRPtargetId%3A39996192%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-28255397897111123762014-05-08T09:22:00.000-07:002014-05-09T07:01:58.241-07:00Operational Decision Management: In-Memory (RetePlus) vs. Input Parameter (RetePlus, Sequential)IBM Operational Decision Manager (ODM) supports multiple rule execution algorithms: RetePlus, Sequential and Fastpath. We are going to compare test run results of the first two algorithms.<br />
<br />
<h3>
<b><span style="color: #0b5394;">RetePlus Mode:</span></b></h3>
The default execution mode is RetePlus. Use its optimization techniques to improve performance: reduction of the number of rules and conditions, computation of the rules to execute, and prioritization of the rule order. The RetePlus algorithm operates as follows:<br />
<div>
<ol>
<li>The rule engine matches the conditions of the rules in the ruleset against the objects in working memory. During the pattern matching process, RetePlus creates a network based on semantic relationships between rule condition tests. </li>
<li>For each match, a rule instance is created and put into the agenda. Then the agenda, based on some ordering principles, selects the rule instance to be executed.</li>
<li>When the rule instance is executed, the rule action is executed. <br />This action modifies the working memory in the following ways:<br />- By adding a new object to the working memory<br />- By removing an object from the working memory<br />- By modifying the attributes of an existing object.</li>
<li>The process carries on cyclically until no more rule instances are left in the agenda</li>
</ol>
<h3>
<b><br /><span style="color: #0b5394;">Sequential Mode:</span></b></h3>
The sequential mode executes all the eligible rules for a given rule task in sequence, which provides specific performance advantages. The sequential algorithm operates as follows:<br />
<br />
<ol>
<li>The rule engine performs pattern matching on input ruleset parameters and on the conditions defined on the collections of objects in working memory.</li>
<li>For each match, a rule instance is created and immediately executed. When a rule instance is executed, it sets the value of an attribute or an output ruleset parameter.</li>
</ol>
<br />
Input/output objects can be passed in to the rule engine as ruleset parameters or rules can create and manipulate in-memory objects. <br />
<br />
Simple three rules were implemented to compare ruleset execution times for permutations of two execution algorithms and two ways of passing in input objects to the rule engine. Each of the three rules is in a separate ruletask in the ruleflow. Execution times are machine-dependent and therefore, execution time comparison of different algorithms is meaningful only relative to each other. Note that in-memory objects can only run RetePlus. Below is the execution times chart for the following cases:<br />
<br />
<ol>
<li>Using input parameters and RetePlus algorithm</li>
<li>Using input parameters and Sequential algorithm</li>
<li>Using in memory objects and RetePlus algorithm</li>
</ol>
<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div class="MsoNormal" style="text-align: center;">
<b><br /></b></div>
<div class="MsoNormal" style="text-align: center;">
<b><br /></b></div>
<div class="MsoNormal" style="text-align: center;">
<b>Input Size</b></div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div class="MsoNormal" style="text-align: center;">
<b>Using Parameters and </b></div>
<div class="MsoNormal" style="text-align: center;">
<b>RetePlus Algorithm </b></div>
<div class="MsoNormal" style="text-align: center;">
<o:p><b> </b></o:p>(time in seconds)</div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div class="MsoNormal" style="text-align: center;">
<b>Using Parameters and</b></div>
<div class="MsoNormal" style="text-align: center;">
<b>Sequential Algorithm</b></div>
<div class="MsoNormal" style="text-align: center;">
(time in seconds)</div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div class="MsoNormal" style="text-align: center;">
<b>Using in Memory Objects and</b></div>
<div class="MsoNormal" style="text-align: center;">
<b> RetePlus Algorithm</b></div>
<div class="MsoNormal" style="text-align: center;">
(time in seconds)</div>
</td>
<td style="border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div class="MsoNormal" style="text-align: center;">
<o:p><b> </b></o:p><b>Number of Rules <br />Fired</b></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
1000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
3</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
3</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
3</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
400</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
2000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
6</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
6</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
6</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
800</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
3000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
11</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
11</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
11</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
1200</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
4000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
16</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
16</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
17</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
1600</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
5000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
24</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
23</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
24</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
2000</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
6000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
32</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
31</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
32</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
2400</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
7000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
43</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
43</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
44</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
2800</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
8000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
53</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
53</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
58</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
3200</div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 93.4pt;" valign="top" width="125"><div align="center" class="MsoNormal" style="text-align: center;">
9000</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
65</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 101.1pt;" valign="top" width="135"><div align="center" class="MsoNormal" style="text-align: center;">
66</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 98.8pt;" valign="top" width="132"><div align="center" class="MsoNormal" style="text-align: center;">
72</div>
</td>
<td style="border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 84.4pt;" valign="top" width="113"><div align="center" class="MsoNormal" style="text-align: center;">
3600</div>
</td>
</tr>
</tbody></table>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-5oLT8-C0Tio/U2utN86fnYI/AAAAAAAAA8c/XAJsD0yOCNE/s1600/odm_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-5oLT8-C0Tio/U2utN86fnYI/AAAAAAAAA8c/XAJsD0yOCNE/s1600/odm_1.png" height="246" width="640" /></a></div>
<div>
</div>
<div>
<br /></div>
<div>
<div>
To improve the performance of RetePlus algorithm you can do one of the following: (<a href="http://pic.dhe.ibm.com/infocenter/dmanager/v8r5m1/index.jsp?topic=%2Fcom.ibm.odm.dserver.rules.designer.debug%2Foptimizing_topics%2Ftpc_opt_optimizingrete.html" target="_blank">Click here for details</a>)</div>
<div>
<ul>
<li>Optimize the object model</li>
<li>Optimize with optimize method </li>
<li>Optimize with static agenda</li>
<li>Activate dynamic rule compilation</li>
<li>Improve the performance of equality and/or comparison evaluation </li>
</ul>
</div>
<div>
<br /></div>
<div>
To improve the performance of Sequential algorithm you can try: </div>
<div>
(<a href="http://pic.dhe.ibm.com/infocenter/dmanager/v8r5m1/index.jsp?topic=%2Fcom.ibm.odm.dserver.rules.designer.debug%2Foptimizing_topics%2Ftpc_opt_optimizingseq.html" target="_blank">Click here for details</a>)</div>
<div>
<ul>
<li>Memory consumption reduction</li>
</ul>
</div>
</div>
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><img height="200" src="https://media.licdn.com/media/p/1/000/286/344/2f7aa76.jpg" style="color: black; font-family: 'Times New Roman'; font-size: medium; line-height: normal;" width="200" /><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<div>
<i>Artur Sahakyan is an Associate Consultant at Prolifics specializing in IBM WebSphere Operational Decision Management (v5.xx - v8.xx). Artur has a strong background in mathematics and probability/statistics. He also has profound knowledge of IBM Business Process Manager, IBM Integration Bus (IIB v9), IBM WebSphere MQ (v7), IBM SPSS Modeler, IBM SPSS Statistics, Java, C++, C. </i></div>
<br />
<a href="https://www.linkedin.com/profile/view?id=39996192&authType=NAME_SEARCH&authToken=QdIi&locale=en_US&srchid=416564021399565894425&srchindex=1&srchtotal=7&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A416564021399565894425%2CVSRPtargetId%3A39996192%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-50261483270222991892014-05-08T09:08:00.000-07:002014-05-08T09:08:09.658-07:00An Inside Look: Prolifics Identity Management Health CheckSome identity management solutions produce interfaces and results that look decadent, others homemade. Some are simple and pure, and others a blazing tangle of neon-lit panels. Whether an identity management solution appears simple or elaborate, the reality is those consumable interfaces sit atop a service bundle responsible for keeping access data to critical business systems flowing. <br />
<br />
If you see something like this on the front:<br />
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-nhpWPLfSlEE/U2up70vF2XI/AAAAAAAAA8E/GapNwsma738/s1600/iam_blog_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-nhpWPLfSlEE/U2up70vF2XI/AAAAAAAAA8E/GapNwsma738/s1600/iam_blog_1.png" height="238" width="320" /></a></div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
The measurements may come from something like this:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-RHfgfyxzQ0Q/U2up7gvm4xI/AAAAAAAAA8U/WNEB43GbtTg/s1600/iam_blog_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-RHfgfyxzQ0Q/U2up7gvm4xI/AAAAAAAAA8U/WNEB43GbtTg/s1600/iam_blog_2.jpg" height="240" width="320" /></a></div>
<div>
<br /></div>
<div style="text-align: center;">
<i>(not an actual IM administrative panel)</i></div>
<div>
<div>
<br /></div>
<div>
Robust solutions can be configured to heel systems into measurable formation, and report anticipated conditions to responsible parties. One picture can clearly call out an error, such as a connection choking on a query because an index became too fragmented and is now thrashing on I/O. Most facets of a functioning identity management solution can be known and therefore measured.</div>
<div>
<br /></div>
<div>
That is, until they change.</div>
<div>
<ul>
<li>Certificates or passwords expire</li>
<li>Software needs to be patched</li>
<li>Organizations want to adapt to new opportunities</li>
<li>Organizations anticipate growth</li>
<li>New security mandates are introduced</li>
</ul>
</div>
<div>
Entropy rules all, even in software.</div>
<div>
<br /></div>
<div>
Two ways to prepare for the changes that affect an identity management system are to be reactive - trust existing monitors and processes, wait for something to happen, and respond - or be proactive and review system health. The difference is fodder for FUD (Fear, Uncertainty, and Doubt). Only the most masochistic of us appreciate learning a litany of imminent problems and shortcomings on the back of resolving a current one. And, as experts in identity management, Prolifics prefers getting in front of a situation instead of waiting until a customer encounters one problem only to bear the bad news that they have five more.</div>
<div>
<br /></div>
<div>
The P<b>rolifics Identity Management Health Check</b> is a proactive review of an existing identity management installation. Prolifics inspects the environment, current running software, logs, and activity. The result of a health check is a forecast for upgrade potential and how current system monitors may respond if current conditions continue. </div>
<div>
<br /></div>
<div>
The following topics are included in a Health Check:</div>
<div>
<ul>
<li>Hardware and Operating System</li>
<li>Software Solution Infrastructure</li>
<ul>
<li>Documentation and Architecture</li>
<li>Utilization</li>
<li>Authorization</li>
</ul>
<li>Identity Management</li>
<ul>
<li>Services</li>
<li>Policies</li>
<li>Workflows</li>
<li>Operations</li>
<li>Lifecycles</li>
<li>Permissions</li>
<li>Schedules</li>
</ul>
<li>Directory Integrator</li>
<li>Databases</li>
<li>Directories</li>
<li>Customizations</li>
</ul>
</div>
<div>
After inspecting the previous areas, several important artifacts will be created:</div>
<div>
<ol>
<li>A detailed map of the current infrastructure, which can be used for audits, upgrades, customizations, and future problem resolution</li>
<li>Recommendations for configuration changes, patches and updates</li>
<li>Critical discoveries</li>
</ol>
</div>
<div>
When everything works the way it should, the little lights blink, texts and emails and robo-calls are made, and all is good, Then, one day, comes a furlong of stack trace or cryptic code to announce that something unexplainable happened. It could be an innocuous event, or it could be symptomatic of a more serious problem. Someone will have to look past the friendly front ends, behind the reports, and go below the surface. There they will confront the complexity of an identity management solution. </div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/--no-eWNlBSA/U2up7i7_z5I/AAAAAAAAA8M/zBlDVigwZKA/s1600/iam_blog_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/--no-eWNlBSA/U2up7i7_z5I/AAAAAAAAA8M/zBlDVigwZKA/s1600/iam_blog_3.jpg" height="240" width="320" /></a></div>
<div>
<br /></div>
<div>
<div style="text-align: center;">
<i>(An actual IM infrastructure)</i></div>
<div>
<br /></div>
<div>
In cases like this, it's always good to be prepared.</div>
</div>
<div>
<br /></div>
<div>
To learn more about Prolifics' security solutions, visit: <a href="http://prolifics.com/enterprise-security">http://prolifics.com/enterprise-security</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><img height="200" src="https://media.licdn.com/media/p/8/000/2ab/099/12e719c.jpg" style="color: black; font-family: 'Times New Roman'; font-size: medium; line-height: normal;" width="200" /><div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div style="text-align: left;">
<i>Stephen Cote is an Enterprise Solutions Architect at Prolifics. He brings extensive experience in orchestrating enterprise architectural initiatives while creating marketable products that drive revenue and protect assets. Stephen is a creative technology leader with more than 18 years of involvement in all aspects of software development from inception to release, as a manager, architect, and technical engineer.</i><br /><br /><a href="https://www.linkedin.com/profile/view?id=3289001&authType=NAME_SEARCH&authToken=wMZm&locale=en_US&srchid=416564021399564974520&srchindex=1&srchtotal=173&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A416564021399564974520%2CVSRPtargetId%3A3289001%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</td></tr>
</tbody></table>
</div>
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-1822088160725448006.post-44666995838879479762014-04-25T11:36:00.001-07:002014-04-25T11:38:54.148-07:00Case Management and Business Process Management – Benefits to Healthcare Payers<h3>
<b><span style="color: #0b5394;">Executive Summary:</span></b></h3>
Impact is one of the eagerly awaited events of the year, the main reason being the slew of products and new features that are introduced by IBM. The application of new products and features to solve real world problems, demonstrated by solutions implemented at some of the prominent fortune 500 firms, makes every penny spent attending the event worth its value. The big product offering I am looking forward to in this year’s event is the Case Management features embedded with Business Process Manager (BPM) capabilities, thus making the processes truly smarter. Application of flexible, intelligent Case Management capabilities combined with the visibility, control and integration capabilities that BPM provides would be interesting to watch. This is even more valuable in the current setting of the Healthcare sector.<br />
<br />
<h3>
<b><span style="color: #0b5394;">Need for Case Management in Healthcare:</span></b></h3>
With all the changes happening in the Healthcare payer sector in lieu of regulations and increasingly tough insurance market, now is the need more than ever to have flexible, smarter processes. The need of the hour is to continuously monitor market trends, identify insurance products that are not cost efficient, refine the market strategy, create flexible customized products and introduce the products within the shortest possible time to market. The best employees of Healthcare payers, with years of invaluable domain knowledge behind them, are better off applying their best judgment and making prudent decisions during the critical business processes than spend time in a swivel chair (duplicating data entry in multiple systems).<br />
<br />
Case Management, with its feature to provide the user with the ability to review documents and choose a workflow depending on the case, can be a valuable asset. For example, a claim review specialist reviewing a request for claim authorization, is better off reviewing the applicable benefits, claim pricing at one place in a single system with all required document images, rather than logging into different benefit systems and pricing systems, searching for the applicable benefits and pricings and performing the authorization review. After the review, the claim review specialist could choose to kick off a medical code review workflow or a payment approval workflow depending on the case. This flexibility, combined with the process visibility and legacy system integration capabilities offered by BPM could end up as a blessing. Robust document management capabilities provided by Case Management helps provide the user with the complete picture and reduces any time needed to develop a customized solution.<br />
<br />
Case Management, BPM, Decision Management and Advanced Data Analytical capabilities combined could even lead to new business models, products and services for the Healthcare payers.<br />
<br />
Smart people in organizations deserve to work with smarter processes and this new offering promises to provide that.<br />
<br />
All in all, it sure is an exciting time to be in Vegas.<br />
<br />
Next week, Prolifics will be a Platinum sponsor at IBM Impact 2014, where our team will be showcasing our BPM solutions and recent successes. If you are planning to attend IBM Impact, be sure to visit Prolifics at booth #401 or schedule a one-on-one meeting with one of our experts.<br />
<br />
To learn more about Prolifics’ BPM solutions, visit <a href="http://www.prolifics.com/">www.prolifics.com</a> or <a href="http://www.linkedin.com/profile/view?id=24862963&authType=NAME_SEARCH&authToken=mkg4&locale=en_US&srchid=2981910231398449822855&srchindex=1&srchtotal=57&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A2981910231398449822855%2CVSRPtargetId%3A24862963%2CVSRPcmpt%3Aprimary" target="_blank">connect with N.R. Vijay</a>.<br />
<div>
<br />
<br /></div>
<div>
<table border="1" style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; height: 118px; line-height: 20.790000915527344px; width: 630px;"><tbody>
<tr><td><a href="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" imageanchor="1" style="clear: left; color: #6699cc; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center; text-decoration: none;"><img border="0" src="http://1.bp.blogspot.com/-0AdXHZj4puA/UvvHlk5o7_I/AAAAAAAAA1k/UsyFjCPMywk/s1600/NRVijay_021214.jpg" style="border: none; position: relative;" /></a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</td><td><div style="text-align: justify;">
<div>
<div style="text-align: left;">
<i>N.R. Vijay is a Solution Architect in the Business Process Management division of Prolifics. He has over 10 years of consulting experience across domains such as Retail, Healthcare and Banking. Specializing in technology, management concepts and enterprise strategy, he is focused on change management and process improvement initiatives. He co-authored a whitepaper titled "<a href="http://www.prolifics.com/customer-loyalty-bpm-analytics.htm." target="_blank">Improving Customer Loyalty through Business Process Optimization and Advanced Business Analytics</a>"</i><br />
<br />
<a href="http://www.linkedin.com/profile/view?id=24862963&authType=NAME_SEARCH&authToken=mkg4&locale=en_US&srchid=2981910231398449822855&srchindex=1&srchtotal=57&trk=vsrp_people_res_name&trkInfo=VSRPsearchId%3A2981910231398449822855%2CVSRPtargetId%3A24862963%2CVSRPcmpt%3Aprimary" target="_blank"><img border="0" src="http://4.bp.blogspot.com/-lUPBOWbzKKk/Uvkjr5R80hI/AAAAAAAAA1A/M7HQ5g5tYJk/s1600/view_linkedin_Prolifics.png" style="border: none; font-size: 15px; position: relative;" /></a></div>
</div>
</div>
</td></tr>
</tbody></table>
<br /></div>
Unknownnoreply@blogger.com