With an array of products in the JEE Application Server markets, Prolifics set out to compare IBM WebSphere Application Server Network Deployment (WAS ND) version 8.5 and the Red Hat JBoss Enterprise Application Platform (JBoss EAP) version 6. During this extensive analysis, Prolifics compared features and total cost of ownership (TCO), including tests that covered a wide variety of conditions and factors and using the same hardware, OS and patch levels and vendor agnostic applications to ensure that no vendor had an unfair advantage.
In this study, Prolifics found that in most environments, while acquisition costs for JBoss EAP are lower, IBM WAS ND provides lower overall TCO due to its advantages in stability, high availability, manageability, documentation and performance. In fact, over the period of 5 years, “free” JBoss is 35% more expensive than WAS ND.
The cost of web application server ownership doesn't end with the initial purchase. When choosing the best server for your organization, it's important to be aware of the additional costs that come with open source software. Read this in-depth analysis for more on the study.
Prolifics has over 12 years of experience in the Java sphere and is the leading specialist in migrating applications between application server environments and upgrading existing applications to newer standards. For more information, visit www.prolifics.com or email solutions@prolifics.com.
Wednesday, December 19, 2012
Monday, December 17, 2012
BPM on the Go with IBM Worklight - Part 1
Many enterprises have been making tremendous investments in the area of business process management. With human tasks forming a critical element of these business processes, providing required information in a timely and efficient manner is key to improving the overall process and making informed decisions.
However, in an increasingly mobile and geographically dispersed business world, people are constantly on the go. Extending your business processes to support mobile use helps to bridge this gap, providing seamless and efficient human interactions.
In this 3 part series, we will look at capabilities that are needed to achieve efficiencies in business processes, a mobile framework that addresses the capabilities and a real world example that illustrates the same.
The following capabilities are the key to achieve efficiencies in business processes:
Mobile has been growing exponentially over the past few years with Smartphones and Tablets overpowering Desktops for the first time ever in 2011. Given the projected growth rate , it is imperative that business processes are optimized for mobile devices and provide much needed capabilities like Notifications and Offline access in a seamless manner.
There are various solutions available for developing smartphone applications ranging from Native Development to Hybrid Apps to HTML 5 Sites. IBM’s answer to address the smartphone conundrum is IBM Worklight. Before we get into any details, let us take a quick look at IBM’s Enterprise Mobile Strategy.
IBM’s Enterprise Mobile Strategy to address today’s challenges is plain and simple:
To conclude, we understood the challenges facing current BPM landscape, capabilities needed to achieve efficiencies in business processes and IBM’s Mobile Strategy. In next part of this series, we will take a deep dive into IBM Worklight and understand how it addresses each of the required capabilities in detail.
Prolifics will be a sponsor at the upcoming IBM Connect conference, held January 27-31 in Orlando, FL. During this conference, we will be showcasing our end-to-end mobile development solutions and sharing some recent success stories. Want to meet our team? Stop by booth C18-19 in the Solution Showcase or reach out to solutions@prolifics.com. For more information, please visit www.prolifics.com.
However, in an increasingly mobile and geographically dispersed business world, people are constantly on the go. Extending your business processes to support mobile use helps to bridge this gap, providing seamless and efficient human interactions.
In this 3 part series, we will look at capabilities that are needed to achieve efficiencies in business processes, a mobile framework that addresses the capabilities and a real world example that illustrates the same.
The following capabilities are the key to achieve efficiencies in business processes:
- Send prompt notifications as a process waits for decision
- Connect to processes on the move
- Access the decision data in a secure disconnected mode for review and approval
Figure 1 - Efficient Business Process
Mobile has been growing exponentially over the past few years with Smartphones and Tablets overpowering Desktops for the first time ever in 2011. Given the projected growth rate , it is imperative that business processes are optimized for mobile devices and provide much needed capabilities like Notifications and Offline access in a seamless manner.
There are various solutions available for developing smartphone applications ranging from Native Development to Hybrid Apps to HTML 5 Sites. IBM’s answer to address the smartphone conundrum is IBM Worklight. Before we get into any details, let us take a quick look at IBM’s Enterprise Mobile Strategy.
IBM’s Enterprise Mobile Strategy to address today’s challenges is plain and simple:
IBM Worklight accomplishes each of the above strategies’ by providing a platform that seamlessly integrates with existing suite of products and opens new avenues to businesses.
To conclude, we understood the challenges facing current BPM landscape, capabilities needed to achieve efficiencies in business processes and IBM’s Mobile Strategy. In next part of this series, we will take a deep dive into IBM Worklight and understand how it addresses each of the required capabilities in detail.
Prolifics will be a sponsor at the upcoming IBM Connect conference, held January 27-31 in Orlando, FL. During this conference, we will be showcasing our end-to-end mobile development solutions and sharing some recent success stories. Want to meet our team? Stop by booth C18-19 in the Solution Showcase or reach out to solutions@prolifics.com. For more information, please visit www.prolifics.com.
Laks Sundararajan is a Solution Architect at Prolifics, an IBM Champion for Collaboration Solutions and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led implementations of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management and Tivoli. He holds a Masters in Information Technology from Carnegie Mellon University and a Graduate Degree in Engineering from BITS, Pilani.
Tuesday, November 27, 2012
Social Business FutureCast hosted by Prolifics & IBM
Earlier this month, Prolifics' Handly Cameron participated in a Live Social Business FutureCast. The panelists discussed what the future will look like for midsized businesses who adapt to the agility of social business culture and practices.
The panelists shared their views on why a midsized business should adopt social business practices now to prepare for the new demands of business in the next year and in the next 5 years.
View the replay of the Social Business FutureCast below!
Be sure to follow the panelists and tweet any questions or comments!
Handly Cameron, Prolifics
Ed Brill, IBM
Laurie McCabe, SMB Group
Geoffrey Colon, Ogilvy & Mather
Luis Suarez, IBM
For more videos from IBM Midsize Business, visit the YouTube channel.
Looking for more information?
Visit IBM's Midsize Business Solutions website
Visit Prolifics' website
The panelists shared their views on why a midsized business should adopt social business practices now to prepare for the new demands of business in the next year and in the next 5 years.
View the replay of the Social Business FutureCast below!
Be sure to follow the panelists and tweet any questions or comments!
Handly Cameron, Prolifics
Ed Brill, IBM
Laurie McCabe, SMB Group
Geoffrey Colon, Ogilvy & Mather
Luis Suarez, IBM
For more videos from IBM Midsize Business, visit the YouTube channel.
Looking for more information?
Visit IBM's Midsize Business Solutions website
Visit Prolifics' website
Thursday, November 8, 2012
IBM developerWorks Article: Achieving PCI Compliance Using DataPower
PCI compliance is important to organizations dealing with cardholder data, and failing a PCI audit often results in heavy fines and damage to a company's brand reputation. WebSphere® DataPower provides a "drop-in" solution for customers facing PCI audits.
I recently published on article on IBM developerWorks which describes DataPower's capabilities for PCI compliance requirements, and how to position DataPower to achieve the maximum return on investment (ROI) in a short amount of time. To read the article, please click here: Achieving PCI Compliance Using WebSphere DataPower.
Prithvi Srinivasan is a Technology Manager at Prolifics and has extensive expertise in the IBM WebSphere suite of products. He has played a key role at several strategic clients by providing technical leadership. Prithvi has an extensive background in the design and development of SOA and Integration solutions, with a proven track record of consulting and architecting solutions for several industry verticals like Banking, Finance, Retail, Insurance, HealthCare and Technology.
I recently published on article on IBM developerWorks which describes DataPower's capabilities for PCI compliance requirements, and how to position DataPower to achieve the maximum return on investment (ROI) in a short amount of time. To read the article, please click here: Achieving PCI Compliance Using WebSphere DataPower.
Prithvi Srinivasan is a Technology Manager at Prolifics and has extensive expertise in the IBM WebSphere suite of products. He has played a key role at several strategic clients by providing technical leadership. Prithvi has an extensive background in the design and development of SOA and Integration solutions, with a proven track record of consulting and architecting solutions for several industry verticals like Banking, Finance, Retail, Insurance, HealthCare and Technology.
BPMN Process Monitoring using IBM Business Monitor 7.5
Business Process Modeling Notation (BPMN) Process Monitoring functionality has been introduced in BPM V7.5 Advanced by integrating with IBM Business Monitor V7.5. Similar to a BPEL process and a mediation flow, a BPMN process (BPD in the process application) can also be monitored using Business Monitor. I’d like to share with everyone my recent experience of BPMN process monitoring implementation, which might be helpful for you in any of your projects implemented using BPM 7.5 and later.
Please find below the steps involved in the process monitoring implementation using Process Designer and Integration Designer.
Process Designer:
After a BPD (Business Process Definition) is created in a process application, the tracking definitions have to be added in the BPD. These tracking definitions can be added using Intermediate Tracking Event in the BPD. Before adding the tracking definition, a tracking group has to be created containing all the fields, which need to be tracked in the BPD. A tracking group and can either be created from Performance tab in the left panel under the process application or from the intermediate tracking event in the BPD. Please look at the screen shot below for the tracking group.
After the tracking group is created with all the fields, to be tracked, drag and drop an intermediate event from the palette in the BPD, where you want to define tracking. Please look at the screen shot below for the intermediate event and the implementation part of it.
The tracking group has to be selected or created and the tracked fields should be assigned values (either from process variables or hard coded values) as shown above. Similarly, we can add multiple tracking events in BPD where ever you want to define the tracking. Finally, we need to enable process monitoring in the process app settings (under Monitor Settings) for the process application as shown below.
Integration Designer:
After the changes are done in the Process Designer, a monitor model has to be created using the Integration Designer. A monitor model can either be generated from the process application directly(right click the process app in Business Integration view) or created separately. If we want to create and define our own monitor model instead of generating from the existing process app with predefined inbound events and metrics, we have to create a monitoring project and then create a monitor model. After opening the monitor model in the monitor model editor, we need to define the monitoring context, inbound events and metrics. Before defining the event parts in the inbound event, we would need to know the event(CBE) xml structure for the events emitted from the BPMN process.
We can look at the actual event data using either CBE browser(after enabling event data store) or Event Recording(after enabling event recording) in the admin console in our local test environment, as shown below.
The type/format of the events(emitted from BPD) differs from that of a BPEL process.
http://www.ibm.com/xmlns/prod/websphere/monitoring/7.5
is the namespace of the XML Catalog, defined for the events emitted from a BPD. It contains the predefined data types(like mon:eventPointData ), which needs to be selected while adding the event type in the event parts of the inbound event.
In a BPEL process or a mediation component, we have an option to configure any activity or a variable to emit events, so that we can limit the number of events getting emitted to the Business Monitor. However, in BPD, events will get emitted for each and every activity in the BPD and I believe there is no option to control or filter the events getting emitted to the Business Monitor. So, its better to filter the events in the monitor side (receiving end) by adding a filter in the inbound event. Since we have added the tracking events in the BPD, we just need to filter only those events in the monitor side in order to consume the data for the metrics, as long as we don’t need data from the other activities. The following condition would filter out only the tracked events
xs:string(Task_Created_or_Completed/EventPointData/mon:kind) = 'EVENT_THROWN'
After the inbound event is defined, we have to create all the metrics, triggers, timers, counters, cubes, dimensions, KPIs etc., based on our reporting requirements. The reports can be viewed in the Business Space during runtime, after the process app and the monitor model are deployed.
Parthasarathi Jayapathi, a Consultant at Prolifics, has over 8 years of IT experience having expertise in the IBM WebSphere suite of products. Partha has worked with many customers implementing SOA and Integration solutions using IBM and J2EE technologies. He is specialized and certified in BPM V7.5, WebSphere Process Server, WebSphere ESB, WebSphere Business Monitor and WebSphere Lombardi Edition with extensive design and development background. He holds a BE degree in Computer Science, graduated in 2003 from Bharathiar University, India.
Please find below the steps involved in the process monitoring implementation using Process Designer and Integration Designer.
Process Designer:
After a BPD (Business Process Definition) is created in a process application, the tracking definitions have to be added in the BPD. These tracking definitions can be added using Intermediate Tracking Event in the BPD. Before adding the tracking definition, a tracking group has to be created containing all the fields, which need to be tracked in the BPD. A tracking group and can either be created from Performance tab in the left panel under the process application or from the intermediate tracking event in the BPD. Please look at the screen shot below for the tracking group.
After the tracking group is created with all the fields, to be tracked, drag and drop an intermediate event from the palette in the BPD, where you want to define tracking. Please look at the screen shot below for the intermediate event and the implementation part of it.
The tracking group has to be selected or created and the tracked fields should be assigned values (either from process variables or hard coded values) as shown above. Similarly, we can add multiple tracking events in BPD where ever you want to define the tracking. Finally, we need to enable process monitoring in the process app settings (under Monitor Settings) for the process application as shown below.
Integration Designer:
After the changes are done in the Process Designer, a monitor model has to be created using the Integration Designer. A monitor model can either be generated from the process application directly(right click the process app in Business Integration view) or created separately. If we want to create and define our own monitor model instead of generating from the existing process app with predefined inbound events and metrics, we have to create a monitoring project and then create a monitor model. After opening the monitor model in the monitor model editor, we need to define the monitoring context, inbound events and metrics. Before defining the event parts in the inbound event, we would need to know the event(CBE) xml structure for the events emitted from the BPMN process.
We can look at the actual event data using either CBE browser(after enabling event data store) or Event Recording(after enabling event recording) in the admin console in our local test environment, as shown below.
The type/format of the events(emitted from BPD) differs from that of a BPEL process.
http://www.ibm.com/xmlns/prod/websphere/monitoring/7.5
is the namespace of the XML Catalog, defined for the events emitted from a BPD. It contains the predefined data types(like mon:eventPointData ), which needs to be selected while adding the event type in the event parts of the inbound event.
In a BPEL process or a mediation component, we have an option to configure any activity or a variable to emit events, so that we can limit the number of events getting emitted to the Business Monitor. However, in BPD, events will get emitted for each and every activity in the BPD and I believe there is no option to control or filter the events getting emitted to the Business Monitor. So, its better to filter the events in the monitor side (receiving end) by adding a filter in the inbound event. Since we have added the tracking events in the BPD, we just need to filter only those events in the monitor side in order to consume the data for the metrics, as long as we don’t need data from the other activities. The following condition would filter out only the tracked events
xs:string(Task_Created_or_Completed/EventPointData/mon:kind) = 'EVENT_THROWN'
After the inbound event is defined, we have to create all the metrics, triggers, timers, counters, cubes, dimensions, KPIs etc., based on our reporting requirements. The reports can be viewed in the Business Space during runtime, after the process app and the monitor model are deployed.
Parthasarathi Jayapathi, a Consultant at Prolifics, has over 8 years of IT experience having expertise in the IBM WebSphere suite of products. Partha has worked with many customers implementing SOA and Integration solutions using IBM and J2EE technologies. He is specialized and certified in BPM V7.5, WebSphere Process Server, WebSphere ESB, WebSphere Business Monitor and WebSphere Lombardi Edition with extensive design and development background. He holds a BE degree in Computer Science, graduated in 2003 from Bharathiar University, India.
Tuesday, November 6, 2012
"It's the Business Process, Stupid"
It is election day in America and with the economy being the central theme, all of us are reminded of the words made famous by James Carville during the Clinton campaign of 1992 – “It's the economy, stupid”. Today, IT Departments around the world are coming to an important realization as they try to align their solutions to their respective business clients – A successful IT strategy revolves around BPM and making Business Processes the core of every solution that they build for their business. The historic challenge of aligning IT with Business is finally seeing a solution with BPM.
However, BPM is no panacea and if not implemented right will end up being yet another IT initiative. When I say right, I am not just talking about the right tool or the right architecture. No doubt those are important, but there are other aspects of BPM Implementation that need to be prioritized and really focused on which, if not done correctly, will not result in why you wanted BPM in the first place: To offer your business clients the real deal.
1. Alignment to Business Goals: It is extremely essential to map every BPM initiative to one of more of measurable goals that a business has. Every business has a Business Plan and in that plan there are defined Business Objectives and SMART Business Goals. Businesses setup new processes or re-engineer existing processes to achieve these goals. Every BPM initiative that is implemented should be able to clearly define what Objective / Goal in the business plan that it will help achieve. For e.g. in an Insurance vertical, loss ratios, combined ratios, underwriting ratios are typical metrics that are monitored by business units and any process re-engineering initiatives that can help improve these ratios for the company is of extremely high importance.
2. Measurement: When it comes to Real Estate, it is all about – ‘Location, Location, Location’ and when it comes to BPM, it is all about ‘Measurement, Measurement, Measurement’. No BPM initiative can be deemed successful if you are not able to measure the change that has been achieved based on the new process that has been put in place and how that maps to the strategic business objectives and goals. In key BPM engagements the Prolifics has been involved in, we have been able to quantitatively demonstrate to the business owners the efficiencies in the re-engineered processes in terms of time and cost efficiencies achieved.
3. BPM Adoption Strategy: While business focus in paramount in BPM, it is still the IT organization that needs to champion BPM and ensure that it is adopted and well executed within an organization. While I have seen a lot of focus by customers on the choosing the right BPM platform, focusing on architecture and design patterns, discussing best practices etc. it is most important for IT leadership to realize that this is a BPM journey and you need to think holistically from multiple dimensions.
I strongly believe that BPM is not just yet another three letter acronym but is the “Change” that will revolutionize the way IT does Business.
To find out more about Prolifics' BPM practice, please visit: http://prolifics.com/bpm.htm
Rajiv Ramachandran is the Vice President of the BPM & Connectivity Practice at Prolifics. He has 14 years experience in the IT field — 3 of those years at IBM working in the development teams at its Object Technology Competency Center in Bangalore, India. He was then a Solution Architect implementing IBM WebSphere Solutions at Fireman's Fund Insurance. Currently at Prolifics, he manages a 100+ member worldwide team that focuses on BPM, SOA, Decision Management, Architecture and Infrastructure. An author at the IBM developerWorks community, Rajiv has presented at IBM Impact and IBM WebSphere Services Technical Conference. He holds an MBA from UCLA Anderson School of Management.
However, BPM is no panacea and if not implemented right will end up being yet another IT initiative. When I say right, I am not just talking about the right tool or the right architecture. No doubt those are important, but there are other aspects of BPM Implementation that need to be prioritized and really focused on which, if not done correctly, will not result in why you wanted BPM in the first place: To offer your business clients the real deal.
1. Alignment to Business Goals: It is extremely essential to map every BPM initiative to one of more of measurable goals that a business has. Every business has a Business Plan and in that plan there are defined Business Objectives and SMART Business Goals. Businesses setup new processes or re-engineer existing processes to achieve these goals. Every BPM initiative that is implemented should be able to clearly define what Objective / Goal in the business plan that it will help achieve. For e.g. in an Insurance vertical, loss ratios, combined ratios, underwriting ratios are typical metrics that are monitored by business units and any process re-engineering initiatives that can help improve these ratios for the company is of extremely high importance.
2. Measurement: When it comes to Real Estate, it is all about – ‘Location, Location, Location’ and when it comes to BPM, it is all about ‘Measurement, Measurement, Measurement’. No BPM initiative can be deemed successful if you are not able to measure the change that has been achieved based on the new process that has been put in place and how that maps to the strategic business objectives and goals. In key BPM engagements the Prolifics has been involved in, we have been able to quantitatively demonstrate to the business owners the efficiencies in the re-engineered processes in terms of time and cost efficiencies achieved.
3. BPM Adoption Strategy: While business focus in paramount in BPM, it is still the IT organization that needs to champion BPM and ensure that it is adopted and well executed within an organization. While I have seen a lot of focus by customers on the choosing the right BPM platform, focusing on architecture and design patterns, discussing best practices etc. it is most important for IT leadership to realize that this is a BPM journey and you need to think holistically from multiple dimensions.
- Are you ready for this? What you need from People, Process, Skills etc. to start adopting BPM
- It is not just architecture and best practices – it is also about an overall organizational adoption across the entire SDLC from inception all the way to construction and transition – not just at a project level but at a program level.
I strongly believe that BPM is not just yet another three letter acronym but is the “Change” that will revolutionize the way IT does Business.
To find out more about Prolifics' BPM practice, please visit: http://prolifics.com/bpm.htm
Rajiv Ramachandran is the Vice President of the BPM & Connectivity Practice at Prolifics. He has 14 years experience in the IT field — 3 of those years at IBM working in the development teams at its Object Technology Competency Center in Bangalore, India. He was then a Solution Architect implementing IBM WebSphere Solutions at Fireman's Fund Insurance. Currently at Prolifics, he manages a 100+ member worldwide team that focuses on BPM, SOA, Decision Management, Architecture and Infrastructure. An author at the IBM developerWorks community, Rajiv has presented at IBM Impact and IBM WebSphere Services Technical Conference. He holds an MBA from UCLA Anderson School of Management.
Wednesday, October 3, 2012
IBM Worklight – Part 3: Best Practices
So far, we have looked into folder structure, logging device information, splash screen, Offline Mode, State Manager and Navigation. In this final part, we will look into callbacks, source control and finally put together all our learnings and come up with an InitPage.js that implements all Best practices discussed so far.
1) Callbacks:
Callbacks form an essential part of JavaScript and it is always a good practice to keep callbacks clean and simple. There is not much material on the Web about DOJO callbacks other than dojo.deferred. Here is a simple callback function in DOJO that can be used as an example:
The following function will initiate a callback i.e. call getCurrentLocation – wait for it to execute and then call drawMap with obtained value rather than proceeding asynchronously.
2) Source Control:
worklightServerRootURL in application-descriptor.xml needs to have a process in place to customize Worklight URL for each environment ${local.IPAddress} is pretty generic and may not work when environment is clustered.
iPhone and Android folders have nativeResources folder which is a great place to have all icons for the app. When checking in the project into Source Control, it is a best practice to check-in common folder (source code) and just nativeResources folder in iPhone, android and other devices if any (windows, blackberry). It is always a good practice to have native code generated every time on developer workstations and through build scripts from common code. If assets under js folder are modified there is an option to check them in as well but if an App is running the same codebase, the folders in blue are the ones that must be checked into Source Control.
application tag has an id field which should match mainFile name in application-descriptor.xml i.e. if the id says ‘hello’ mainFile should be hello.html
Altering the id field means changing the main file name as well. If they are not in sync, the App might have issues running on various platforms as native code is generated based on this assumption.
If dojo is employed, make sure the app.id in build-dojo.properties is the same as id in applicationtag
The above snippet would be the skeletal structure of main JavaScript for a Worklight Starter application. However, the actual implementation would have more controllers, variables and utility methods. This structure makes the Application versatile and easy to adapt to changes.
1) Callbacks:
Callbacks form an essential part of JavaScript and it is always a good practice to keep callbacks clean and simple. There is not much material on the Web about DOJO callbacks other than dojo.deferred. Here is a simple callback function in DOJO that can be used as an example:
The following function will initiate a callback i.e. call getCurrentLocation – wait for it to execute and then call drawMap with obtained value rather than proceeding asynchronously.
worklightServerRootURL in application-descriptor.xml needs to have a process in place to customize Worklight URL for each environment ${local.IPAddress} is pretty generic and may not work when environment is clustered.
iPhone and Android folders have nativeResources folder which is a great place to have all icons for the app. When checking in the project into Source Control, it is a best practice to check-in common folder (source code) and just nativeResources folder in iPhone, android and other devices if any (windows, blackberry). It is always a good practice to have native code generated every time on developer workstations and through build scripts from common code. If assets under js folder are modified there is an option to check them in as well but if an App is running the same codebase, the folders in blue are the ones that must be checked into Source Control.
If dojo is employed, make sure the app.id in build-dojo.properties is the same as id in application
Putting it All Together:
After implementing the best practices we talked about in the 3 part series, an InitPage.js looks like the following:
The above snippet would be the skeletal structure of main JavaScript for a Worklight Starter application. However, the actual implementation would have more controllers, variables and utility methods. This structure makes the Application versatile and easy to adapt to changes.
Conclusion:
I hope you have enjoyed this 3-part blog series on Worklight best practices. If you have any questions or would like more information, please email solutions@prolifics.com. For more information about Prolifics, please visit www.prolifics.com.
If you would like to connect with me, please add me on LinkedIn and follow me on Twitter! I would love to hear your thoughts on this series and your experiences with IBM Worklight.
Laks Sundararajan is a Solution Architect with Prolifics and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management, Tivoli and Mashup’s. He holds Masters in Information Technology from Carnegie Mellon University and a Graduate Degree in Engineering from BITS, Pilani.
Wednesday, September 26, 2012
IBM Worklight – Part 2: Best Practices
In the initial part of the series, we focused on the folder structure, logging device information and splash screen. In this part, we dive deeper into core Worklight features and focus on Offline Mode, State Manager and Navigation. Let us get right to the subject.
1. Offline Mode/ Processing:
Even though Mobiles are supposed to have 24*7 connectivity; reality is different. Given that every Application should implement Offline Mode. To enable Offline Mode, modify body tag of InitPage.html as follows:
Now, implement doConnectionFailure() method inside InitPage.js
Additionally, have a global busy indicator that could be used across pages to show processing cycles. This will ensure in uniformity across applications.
Applications can then show/hide busy indicator as follows:
2) State Manager:
Mobile Applications need to manage state on client side. This could be achieved through a State Manager that intercepts each View and stores relevant information globally. A code sample that illustrates the same is shown below:
The following snippet is present in InitPage.html to define the view name.
3) Navigation:
Navigation is key part of Mobile Applications. Implementing a versatile framework is essential for a quality application. Content fragments should be isolated so that they can be sourced from external systems if needed. It is also a best practice to keep UI in small pieces as opposed to a single large HTML serving up the entire application.
A sample snippet that implements recommended navigation framework in InitPage.html containing to 2 pages: demo1View.html and demo2View.html is shown below:
Now, demoView.html contains the following snippet to take the user back to InitPage.html. Note that mainView corresponds to view name in InitPage.html. For more details on views, refer to StateManager.
If the snippets are present in same page moveTo should be employed in both places. The above example is for navigating between fragments.
Laks Sundararajan is a Solution Architect with Prolifics and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management, Tivoli and Mashup’s. He holds Masters in Information Technology from Carnegie Mellon University and a Graduate Degree in Engineering from BITS, Pilani.
1. Offline Mode/ Processing:
Even though Mobiles are supposed to have 24*7 connectivity; reality is different. Given that every Application should implement Offline Mode. To enable Offline Mode, modify body tag of InitPage.html as follows:
Now, implement doConnectionFailure() method inside InitPage.js
Additionally, have a global busy indicator that could be used across pages to show processing cycles. This will ensure in uniformity across applications.
Applications can then show/hide busy indicator as follows:
2) State Manager:
Mobile Applications need to manage state on client side. This could be achieved through a State Manager that intercepts each View and stores relevant information globally. A code sample that illustrates the same is shown below:
The following snippet is present in InitPage.html to define the view name.
3) Navigation:
Navigation is key part of Mobile Applications. Implementing a versatile framework is essential for a quality application. Content fragments should be isolated so that they can be sourced from external systems if needed. It is also a best practice to keep UI in small pieces as opposed to a single large HTML serving up the entire application.
A sample snippet that implements recommended navigation framework in InitPage.html containing to 2 pages: demo1View.html and demo2View.html is shown below:
Now, demoView.html contains the following snippet to take the user back to InitPage.html. Note that mainView corresponds to view name in InitPage.html. For more details on views, refer to StateManager.
If the snippets are present in same page moveTo should be employed in both places. The above example is for navigating between fragments.
Laks Sundararajan is a Solution Architect with Prolifics and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management, Tivoli and Mashup’s. He holds Masters in Information Technology from Carnegie Mellon University and a Graduate Degree in Engineering from BITS, Pilani.
Friday, September 21, 2012
IBM Worklight Series – Part 1: Best Practices
IBM Worklight provides an open, comprehensive and advanced mobile application platform for smartphones and tablets, helping organizations of all sizes to efficiently develop, connect, run and manage HTML5, hybrid and native applications.
Worklight Supports the following frameworks for developing HTML5 and Mobile Applications
Out of the above frameworks DOJO is widely used by IBM in their Portal and BPM suite of products and signifies IBM’s choice when it comes to RIA Frameworks.
In this 3 part series, we talk about Best Practices for developing Worklight based HTML5 and Mobile Applications in general. Note that some of them specific to DOJO Framework. However, parallels can be drawn and similar practices could be employed for Sencha and JQuery frameworks as well.
In the initial part, we focus on the folder structure, logging device information and splash screen.
1) Folder Structure:
Following is the recommended folder structure for Worklight Application (common folder)
Creating controllers and widgets folder under js folder helps in better organization of JavaScript assets as opposed to a single folder. Having a folder for html assets provides a clean structure and avoids them residing directly at root level.
When a Worklight built HTML5 Website or Mobile Application loads, InitPage.html or rather defined under application-descriptor.xml is invoked. A JavaScript file with same name InitPage.js contains necessary scripting information for the framework. Interactions between various components are shown below for better understanding. We will be discussing more on Web Framework in next couple of installments.
For the purposes of this discussion we call the as InitPage.html and main JavaScript file as InitPage.js. Normally, these are named as per Application created i.e. An Application with name ‘HelloWorldApp’ would have HelloWorldApp.html and HelloWorldApp.js as main HTML and JavaScript files.
2) Logging Device Information:
It is always a good practice to log device specific information for troubleshooting/ audits given the vast number of platforms and devices available today. This could be accomplished by calling the simple function below from a dojo listener in InitPage.js
3) Splash Screen/Text:
Mobile Applications have an initial splash screen that is displayed when an Application is launched. Following that, the initial page (in this case InitPage.html) is loaded. While the page is loaded, it might take a few seconds for framework libraries and CSS to load and user may experience a noticeable blip. To prevent this from happening, it is always a best practice to show some text/image when InitPage.html gets called for first loaded (call it as secondary splash screen/text). This is accomplished as follows:
Add the following snippet to InitPage.html
Add the following snippet to InitPage.js and call the function from dojo listener after page is loaded
In the second part of the series, we will be looking at some core features like Offline Mode, State Manager and Navigation.
Laks Sundararajan is a Solution Architect with Prolifics and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management, Tivoli and Mashup’s. He holds Masters in Information Technology from Carnegie Mellon University and a Graduate Degree in Engineering from BITS, Pilani.
Worklight Supports the following frameworks for developing HTML5 and Mobile Applications
- DOJO
- Sencha Touch
- JQuery
Out of the above frameworks DOJO is widely used by IBM in their Portal and BPM suite of products and signifies IBM’s choice when it comes to RIA Frameworks.
In this 3 part series, we talk about Best Practices for developing Worklight based HTML5 and Mobile Applications in general. Note that some of them specific to DOJO Framework. However, parallels can be drawn and similar practices could be employed for Sencha and JQuery frameworks as well.
In the initial part, we focus on the folder structure, logging device information and splash screen.
1) Folder Structure:
Following is the recommended folder structure for Worklight Application (common folder)
Creating controllers and widgets folder under js folder helps in better organization of JavaScript assets as opposed to a single folder. Having a folder for html assets provides a clean structure and avoids them residing directly at root level.
When a Worklight built HTML5 Website or Mobile Application loads, InitPage.html or rather
In the second part of the series, we will be looking at some core features like Offline Mode, State Manager and Navigation.
Laks Sundararajan is a Solution Architect with Prolifics and a key member of highly specialized team working on IBM WebSphere Portal, Content Management and Collaboration technologies. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise SOA solutions leveraging WebSphere Portal, Content Management, Tivoli and Mashup’s. He holds Masters in Information Technology from Carnegie Mellon University and a Graduate Degree in Engineering from BITS, Pilani.
Thursday, August 30, 2012
Error Handling for Composite IBM DataPower Services
In general, when it comes to error handling i am a big believer in “Defense in Depth”. I prefer a multi-layered approach in which I try to account for the maximum possible conditions at each layer and eventually have a “catch all” net where I catch and process the errors that ‘slipped through the cracks’.
Let’s take a scenario where we have an orchestration service which is tied to a bunch of back-end proxy services. Each of the back-end proxies is tied to corresponding back-end application.
Below is the logical representation of a complex composite service on IBM DataPower:
Below is a description of the “Happy Path” i.e. the ideal scenario in which there is no error:
Below is the description of handling error scenarios or the “unhappy path”.
Following are the various types of errors that we have to contend with:
Errors occurring in the back-end applications:
The orchestration service checks if the response from the back-end proxy is a soap:fault, and it if is then it might decide to rollback any of the previous calls (like an adduser or a insert DB row) with another call(like deleteuser or delete DB row).
You can use the dp:url extension to do this:
These errors come back as soap:Fault messages with HTTP Response code ‘500 Fail’. Generate a custom error message which includes the following fields (at least):
Now, convert the HTTP Response Code from ‘500 Fail’ to ‘200 OK’:
We convert the HTTP Response Code from 500 to200 so that the orchestration service treats the soap:fault message as a valid response instead of an error.
Errors occurring in the back-end DataPower Proxies: Such errors can be caught and processed by using a combination of the On-Error action with the Error Rule in the back-end proxy’s policy.
The error rule can be configured to generate a custom fault/error message with HTTP response Code set to “200 OK”.
Errors occurring in the Orchestration service: Again, such errors can be caught and processed by using a combination of the On-Error action with the Error Rule in the orchestration service’s policy. We send back the error message with a HTTP Response code of “500 Fail” to the front-end calling service.
Prithvi Srinivasan is a Technology Manager at Prolifics and has extensive expertise in the IBM WebSphere suite of products. He has played a key role at several strategic clients by providing technical leadership. Prithvi has an extensive background in the design and development of SOA and Integration solutions, with a proven track record of consulting and architecting solutions for several industry verticals like Banking, Finance, Retail, Insurance, HealthCare and Technology.
Let’s take a scenario where we have an orchestration service which is tied to a bunch of back-end proxy services. Each of the back-end proxies is tied to corresponding back-end application.
Below is the logical representation of a complex composite service on IBM DataPower:
Below is a description of the “Happy Path” i.e. the ideal scenario in which there is no error:
- The incoming request is received by the ‘Orchestration Service’.
- The orchestration service then makes a series of calls to the various back-end proxies. The request message for each call is dependent on the response messages from the previous calls.
- The back-end proxy receives the message and in turn calls the back-end application.
- The back-end application processes the message and replies with a response message.
- The back-end DataPower proxy receives the response, reformats it and forwards it to the orchestration service.
- The orchestration service receives the response and reformats it. It then either calls another back-end proxy, or forwards the reformatted message to the calling service.
Below is the description of handling error scenarios or the “unhappy path”.
Following are the various types of errors that we have to contend with:
- Errors occurring in the back-end applications: These errors occur when the back-end application is able to successfully receive the request message from the DataPower proxy, but is unable to process it. This condition results in DataPower receiving a fault/error message from the back-end application
- Errors occurring in the DataPower back-end proxy: These errors occur when the back-end DataPower proxy receives the request message successfully but is unable to process it. This results in the back-end DataPower proxy returning a fault/error message to the orchestration service.
- Errors occurring in the DataPower orchestration service: These errors occur when the DataPower orchestration service receives the request message successfully but is unable to process it. This results in the DataPower orchestration service returning a fault/error message to the front-end calling service.
Errors occurring in the back-end applications:
The orchestration service checks if the response from the back-end proxy is a soap:fault, and it if is then it might decide to rollback any of the previous calls (like an adduser or a insert DB row) with another call(like deleteuser or delete DB row).
You can use the dp:url extension to do this:
These errors come back as soap:Fault messages with HTTP Response code ‘500 Fail’. Generate a custom error message which includes the following fields (at least):
- Error Code service variable
- Error Details service variable
- Timestamp service variable
- MsgId/UUID response payload
Now, convert the HTTP Response Code from ‘500 Fail’ to ‘200 OK’:
We convert the HTTP Response Code from 500 to200 so that the orchestration service treats the soap:fault message as a valid response instead of an error.
Errors occurring in the back-end DataPower Proxies: Such errors can be caught and processed by using a combination of the On-Error action with the Error Rule in the back-end proxy’s policy.
The error rule can be configured to generate a custom fault/error message with HTTP response Code set to “200 OK”.
Errors occurring in the Orchestration service: Again, such errors can be caught and processed by using a combination of the On-Error action with the Error Rule in the orchestration service’s policy. We send back the error message with a HTTP Response code of “500 Fail” to the front-end calling service.
Prithvi Srinivasan is a Technology Manager at Prolifics and has extensive expertise in the IBM WebSphere suite of products. He has played a key role at several strategic clients by providing technical leadership. Prithvi has an extensive background in the design and development of SOA and Integration solutions, with a proven track record of consulting and architecting solutions for several industry verticals like Banking, Finance, Retail, Insurance, HealthCare and Technology.
Monday, June 25, 2012
ILOG Integration with Process Designer (IBM BPM 7.5.1)
Some information I gathered on best practice of ILOG Integration with Process Designer (IBM BPM 7.5.1):
Connecting JRules directly from IBM BPM Via Webservice-SOAP connector:
Just want to add that this is not a best practice, but a nice description of one way to integrate BPM 7.5.1 with JRules. There are multiple factors that impact the integration pattern. You always have to consider the information model in scope for the rules, that is far different from the model for the process. So the BPD will most likely not be able to send all the data to JRules. There is always a middle man, service, responsible to populate the data graph needed for the rule processing. With BPM Advance this could be a SCA component integrated as Advance Integration Service, in BPM Standard a java component exposed as web service and consumed as such within the BPD.
JRules connector directly in IBM BPM
The goal of embedding the ILOG rule editor inside IBM BPM is to provide a much simpler way to modify the behavior of the processes. Those rules live within the process and as such a new version of the process needs to be redeployed every time a rule needs to be changed.
SOA Best Approach:
The SOA based approach for Business Process Management suggests the options as below:
Identify the Hosted Transparent Decision Service (HTDS) interface .
Create an SCA library for HTDS WSDL.
Defines a mediation module for the interface mapping.
Joel Krishnan, a Solution Architect for Prolifics, has over 9+ years of IT experience and has worked in many customers implementing technology solutions across multiple business verticals.He is specialized in IBM BPM specifically in ProcessDesigner.He has extensive experince in Architecture/Design and Devopment of IBM BPM.He is also certified in IBM BPM. Joel received his BE in Electrical Engineering in 2002.
Connecting JRules directly from IBM BPM Via Webservice-SOAP connector:
Just want to add that this is not a best practice, but a nice description of one way to integrate BPM 7.5.1 with JRules. There are multiple factors that impact the integration pattern. You always have to consider the information model in scope for the rules, that is far different from the model for the process. So the BPD will most likely not be able to send all the data to JRules. There is always a middle man, service, responsible to populate the data graph needed for the rule processing. With BPM Advance this could be a SCA component integrated as Advance Integration Service, in BPM Standard a java component exposed as web service and consumed as such within the BPD.
JRules connector directly in IBM BPM
The goal of embedding the ILOG rule editor inside IBM BPM is to provide a much simpler way to modify the behavior of the processes. Those rules live within the process and as such a new version of the process needs to be redeployed every time a rule needs to be changed.
SOA Best Approach:
The SOA based approach for Business Process Management suggests the options as below:
- Blueworks Live -> Business Process Manager
- ILOG(create Business rules) -> Websphere Integration Developer -> Process Server
Identify the Hosted Transparent Decision Service (HTDS) interface .
Create an SCA library for HTDS WSDL.
Defines a mediation module for the interface mapping.
Joel Krishnan, a Solution Architect for Prolifics, has over 9+ years of IT experience and has worked in many customers implementing technology solutions across multiple business verticals.He is specialized in IBM BPM specifically in ProcessDesigner.He has extensive experince in Architecture/Design and Devopment of IBM BPM.He is also certified in IBM BPM. Joel received his BE in Electrical Engineering in 2002.
Wednesday, June 6, 2012
How to Delete Process Applications from IBM BPM 7.5.1
As a new feature of the Business Process Manager V7.5.1 platform, process applications can now be deleted from the repository. In the previous version of BPM, version 7.5.0 & 7.5.0.1, users could only archive snapshots within a process application. This did not remove the application; rather it was merely hidden from the default view and it was still stored in the repository and the database.
In the latest version of BPM, users can now actually delete the process application, and in turn, delete all snapshots and instances tied to that application, including deletion of these entries from the database.
To delete a process application, click on the process application that you want to delete and then click on Manage.
Next, click on Archive Process App and click on Archive.
Click on the Process Apps tab of Process Center and then click on Archived.
Click on the process app that you previously archived and select Delete Process App, click on Delete.
If you then return to the Process Apps tab in Process center, you will notice that the process app no longer appears in the list.
We can actually confirm that all database entries are also removed as part of the process app deletion. Here we can see that the entry for our application named TestApplication was added to the BPMDB in the table LSW_PROJECT.
After deleting the process app, this entry is no longer present in the table. If the application contained snapshots and BPDs, these entries would also be removed from the LSW_SNAPSHOT and LSW_BPD tables respectively.
Please keep in mind, that this cleanup only happens in Process Center. Currently, the product does not have the capaibility to clean up these components on the Process Server side. However, this is an important new feature to help keep your Process Center repository clean and its database clean and efficient.
Seth Gagnon, a Senior Consultant for Prolifics, has over eight years experience in the healthcare industry and has worked with business process management technology to automate member enrollment and claim adjudication for a Fortune 200 healthcare client. He has experience in IBM middleware products such as WebSphere Application Server, WebSphere Process Server, WebSphere Business Process Manager, and other products in the IBM BPM stack. Seth received his BS in Management Information Systems from the University of CT and his MS in Technology Commercialization from Northeastern University.
In the latest version of BPM, users can now actually delete the process application, and in turn, delete all snapshots and instances tied to that application, including deletion of these entries from the database.
To delete a process application, click on the process application that you want to delete and then click on Manage.
Next, click on Archive Process App and click on Archive.
Click on the Process Apps tab of Process Center and then click on Archived.
Click on the process app that you previously archived and select Delete Process App, click on Delete.
If you then return to the Process Apps tab in Process center, you will notice that the process app no longer appears in the list.
We can actually confirm that all database entries are also removed as part of the process app deletion. Here we can see that the entry for our application named TestApplication was added to the BPMDB in the table LSW_PROJECT.
After deleting the process app, this entry is no longer present in the table. If the application contained snapshots and BPDs, these entries would also be removed from the LSW_SNAPSHOT and LSW_BPD tables respectively.
Please keep in mind, that this cleanup only happens in Process Center. Currently, the product does not have the capaibility to clean up these components on the Process Server side. However, this is an important new feature to help keep your Process Center repository clean and its database clean and efficient.
Seth Gagnon, a Senior Consultant for Prolifics, has over eight years experience in the healthcare industry and has worked with business process management technology to automate member enrollment and claim adjudication for a Fortune 200 healthcare client. He has experience in IBM middleware products such as WebSphere Application Server, WebSphere Process Server, WebSphere Business Process Manager, and other products in the IBM BPM stack. Seth received his BS in Management Information Systems from the University of CT and his MS in Technology Commercialization from Northeastern University.
Thursday, May 31, 2012
Leveraging IBM Rational to Manage your WebSphere Environment
We’re gearing up for another exciting Innovate 2012 conference in Orlando this year, having just come back from presenting at the IBM Impact conference in Las Vegas. The great thing about these conferences is they give Prolifics the opportunity to share stories and lessons learned with customers old and new – and lets us bring a number of our customers together so they can swap ideas amongst themselves.
Over the last year, since Innovate 2011 conference, Prolifics has helped a number of our WebSphere customers improve their configuration and release management processes through a combination of good practices and IBM Rational tooling. We’ve seen weaknesses in these areas be a major drag on otherwise technically sound development projects – and helping both our own as well as our customers’ teams improve in these areas has been a top priority of my own practice within Prolifics.
In addition to sharing our experiences at IBM Innovate, I am introducing them in this Prolifics whitepaper as well: Leveraging IBM Rational to Manage your WebSphere Environment.
To learn more about my upcoming speaking session at IBM Innovate and Prolifics’ presence at the conference, click here.
@greg_hodgkinson
Gregory Hodgkinson is the Rational Practice Director at Prolifics (www.prolifics.com). Previous to that he was a Founder, Director, and the SOA Lead at 7irene, a visionary software solutions company in the United Kingdom. He has 16 years of experience in software architecture , initially specializing in the field of component-based development (CBD), then moving seamlessly into service-oriented architecture (SOA). His extended area of expertise is the Software Development Lifecycle (SDLC), and he assists Prolifics and IBM customers in adopting agile development processes and SOA methods. He is still very much a practitioner, and has been responsible for service architectures for a number of FTSE 100 companies. He presents on agile SOA process and methods at both IBM (Rational and WebSphere) and other events, has also co-authored a Redbook on SOA solutions, and contributes to DeveloperWorks.
Over the last year, since Innovate 2011 conference, Prolifics has helped a number of our WebSphere customers improve their configuration and release management processes through a combination of good practices and IBM Rational tooling. We’ve seen weaknesses in these areas be a major drag on otherwise technically sound development projects – and helping both our own as well as our customers’ teams improve in these areas has been a top priority of my own practice within Prolifics.
In addition to sharing our experiences at IBM Innovate, I am introducing them in this Prolifics whitepaper as well: Leveraging IBM Rational to Manage your WebSphere Environment.
To learn more about my upcoming speaking session at IBM Innovate and Prolifics’ presence at the conference, click here.
@greg_hodgkinson
Gregory Hodgkinson is the Rational Practice Director at Prolifics (www.prolifics.com). Previous to that he was a Founder, Director, and the SOA Lead at 7irene, a visionary software solutions company in the United Kingdom. He has 16 years of experience in software architecture , initially specializing in the field of component-based development (CBD), then moving seamlessly into service-oriented architecture (SOA). His extended area of expertise is the Software Development Lifecycle (SDLC), and he assists Prolifics and IBM customers in adopting agile development processes and SOA methods. He is still very much a practitioner, and has been responsible for service architectures for a number of FTSE 100 companies. He presents on agile SOA process and methods at both IBM (Rational and WebSphere) and other events, has also co-authored a Redbook on SOA solutions, and contributes to DeveloperWorks.
Friday, May 18, 2012
The Importance of a Focused Mobile Strategy
For the past few years I have been speaking in several conferences about social and mobile solutions for organization for different industry verticals and I am surprised that I still get asked this question. “Does our organization need a dedicated and focused mobile strategy?” I have 2 words. Yes, Yes and Yes. Oh wait that’s 3!
Here is a sampling of stats:
1 billion of the world’s 4+ billion mobiles phones are now Smart Phones
Over 85% of new handsets will have Web access
Usage - What are mobile users doing:
95% send or receive text messages
65% access the internet on their mobile device
48% have accessed a social networking site on their phone
20% have purchased something or charitable donation their mobile phones
Social Impact
Over 1/3 of Facebook’s 600million + user base uses Facebook Mobile
Twitter has 165million users and 50% of them us Twitter Mobile
A whopping 200million + Youtube views occur on mobile devices per day
Not my research!! Women aged 35 - 54 are the most active group in mobile socialization
Traditionally we are used to accessing information via desktop and mobile web browser (more like WAP)
Then came the wonder of Apps. The app revolution got developers to build native apps using C# or objective C or vendor approved programming language.
But the tide is really riding on the app revolution where the next generation of apps are a combination of apps called Hybrid apps. Which is a combination of native code and open html framework.
The different kinds of apps presented great opportunity to exploit the ways developers can present their data. But it also presented a significant challenge. The need for a common toolset, which can provide a platform to develop these mobile apps and an overall strategy. Q1 2012 IBM acquired Worklight to enhance their mobile arsenal. Worklight, offers an open platform that helps speed the delivery of existing and new mobile applications to multiple devices. Essentially it gives a great platform to develop all service level mobile applications.
I wont go in details of the product but here is a quick overview of IBM Worklight
Worklight and iPad
While working for our customers on the mobile app development using the Worklight, a colleague of mine (@VishSinha) had to create to have Split view layout for tablets specifically iPad. There are several ways to achieve it but the need was to create a unified User Experience that is seamless if accessed via non-tablet devices. So he decided to use jquery mobile Split view plugin for IBM Worklight, to achieve the split view look and feel for iPad version of app. Here is a quick approach to it.
Two Panel Split View Layout
To build a two-panel layout, called menu (left navigational links) and main (contents) panels for iPad, there are two divs inside the body tag of the main App.html page. Menu div panel is mainly responsible for handling all the navigation links on the left hand side and main div panel is mainly for rendering/loading the contents on the right side of the screen once user clicks on the left side navigational links.
Here is a preview of the Prolifics homepage of the iPad Split View:
The HTML code for the menu div panel looks like this:
The point being, everyone knows mobility is very important but it is almost imperative to use a platform for development of mobile devices that can scalable and can support multiple formats of mobile applications.
Sources:
http://www.thefonestuff.com/news/10/Mobile-Phone-Facts-2011.html http://www.pewinternet.org/Reports/2010/Mobile-Access-2010/Summary-of-Findings.aspx
http://www.worklight.com
Niral Jhaveri is the VP of User Experience at Prolifics and has extensive expertise in the IBM Lotus, WebSphere and Rational family of products. He has played a key role at several strategic clients by providing technical leadership. Niral has an extensive background in the design and development of IBM WebSphere Portal, SOA and Web 2.0 applications with a proven track record of consulting and architecting solutions for several industry verticals like Finance, Retail, Insurance and Technology.
Here is a sampling of stats:
1 billion of the world’s 4+ billion mobiles phones are now Smart Phones
Over 85% of new handsets will have Web access
Usage - What are mobile users doing:
95% send or receive text messages
65% access the internet on their mobile device
48% have accessed a social networking site on their phone
20% have purchased something or charitable donation their mobile phones
Social Impact
Over 1/3 of Facebook’s 600million + user base uses Facebook Mobile
Twitter has 165million users and 50% of them us Twitter Mobile
A whopping 200million + Youtube views occur on mobile devices per day
Not my research!! Women aged 35 - 54 are the most active group in mobile socialization
Traditionally we are used to accessing information via desktop and mobile web browser (more like WAP)
Then came the wonder of Apps. The app revolution got developers to build native apps using C# or objective C or vendor approved programming language.
But the tide is really riding on the app revolution where the next generation of apps are a combination of apps called Hybrid apps. Which is a combination of native code and open html framework.
The different kinds of apps presented great opportunity to exploit the ways developers can present their data. But it also presented a significant challenge. The need for a common toolset, which can provide a platform to develop these mobile apps and an overall strategy. Q1 2012 IBM acquired Worklight to enhance their mobile arsenal. Worklight, offers an open platform that helps speed the delivery of existing and new mobile applications to multiple devices. Essentially it gives a great platform to develop all service level mobile applications.
I wont go in details of the product but here is a quick overview of IBM Worklight
While working for our customers on the mobile app development using the Worklight, a colleague of mine (@VishSinha) had to create to have Split view layout for tablets specifically iPad. There are several ways to achieve it but the need was to create a unified User Experience that is seamless if accessed via non-tablet devices. So he decided to use jquery mobile Split view plugin for IBM Worklight, to achieve the split view look and feel for iPad version of app. Here is a quick approach to it.
Two Panel Split View Layout
To build a two-panel layout, called menu (left navigational links) and main (contents) panels for iPad, there are two divs inside the body tag of the main App.html page. Menu div panel is mainly responsible for handling all the navigation links on the left hand side and main div panel is mainly for rendering/loading the contents on the right side of the screen once user clicks on the left side navigational links.
Here is a preview of the Prolifics homepage of the iPad Split View:
The HTML code for the menu div panel looks like this:
The point being, everyone knows mobility is very important but it is almost imperative to use a platform for development of mobile devices that can scalable and can support multiple formats of mobile applications.
Sources:
http://www.thefonestuff.com/news/10/Mobile-Phone-Facts-2011.html http://www.pewinternet.org/Reports/2010/Mobile-Access-2010/Summary-of-Findings.aspx
http://www.worklight.com
Niral Jhaveri is the VP of User Experience at Prolifics and has extensive expertise in the IBM Lotus, WebSphere and Rational family of products. He has played a key role at several strategic clients by providing technical leadership. Niral has an extensive background in the design and development of IBM WebSphere Portal, SOA and Web 2.0 applications with a proven track record of consulting and architecting solutions for several industry verticals like Finance, Retail, Insurance and Technology.
Monday, May 14, 2012
Why Every Organization Needs Its Own Permalink Service
I would recommend to any organization that they create and use their own URL bookmarking service. The benefits of creating and using such a service are many. The most compelling force is that you can create permanent URL's that have no dependency on a particular website version, technology, changes to taxonomy, changes in branding (assuming the URL service remains intact), and the ability to create multiple URL's to the same hypermedia, create vanity URL's, and many many more interesting uses.
Myself being a long time WebSphere Portal guy you might ask; "well isn't the IBM portal's URL mapping and friendly URL services exactly what you're talking about." To that my answer would be; 'Yes, They overlap, but the forces are different.' One of the objectives of such a URL is to remain technology independent and avoid any vendor locking. If you've ever done a major Portal upgrade project or even better a migration from another Portal product you'll quickly realize that you have a big problem whenever asked to maintain inbound links to the old technology or site.
The solution to this challenge is not entirely to use a link service and I won't go into details around what else needs to be done. The basics are that some links "you" company "X" control and others you can't control. The links and bookmarks that you control is the focus of this recommendation. The links you don't control have a laundry list in a project plan:
Wikipedia References to Related Concepts:
http://en.wikipedia.org/wiki/Permalink
http://en.wikipedia.org/wiki/URL_shortening
Myself being a long time WebSphere Portal guy you might ask; "well isn't the IBM portal's URL mapping and friendly URL services exactly what you're talking about." To that my answer would be; 'Yes, They overlap, but the forces are different.' One of the objectives of such a URL is to remain technology independent and avoid any vendor locking. If you've ever done a major Portal upgrade project or even better a migration from another Portal product you'll quickly realize that you have a big problem whenever asked to maintain inbound links to the old technology or site.
The solution to this challenge is not entirely to use a link service and I won't go into details around what else needs to be done. The basics are that some links "you" company "X" control and others you can't control. The links and bookmarks that you control is the focus of this recommendation. The links you don't control have a laundry list in a project plan:
- communicate with search engines to get re-indexed quickly after launch
- contact partners and use site analytics to determine who is linking to you
- develop a 404 strategy
- use mod_rewrite or your content router rules
- continue to evaluate misses on dead links in web analysis reports
- eventually cut-loose and let the dead links die
- URL shortening
- Vanity URLs in paths
- Meaningful terms in the URL
- a rules engine! (Surprising, but with that you can enforce logic based routing of links, start and expiration times, etc)
- A must is a nice administrative user interface for creating the link and pointing to the destination
Wikipedia References to Related Concepts:
http://en.wikipedia.org/wiki/Permalink
http://en.wikipedia.org/wiki/URL_shortening
WebSphere and Portal SSL Termination Consideration
Francis recently ran into some issues in an environment with SSL termination at the F5 BigIP content routers. Initially, I thought his issue had to do with how the URL's that had been put into forms and content by the developers for his project. I later realized the issue after he sent me this link:
http://www-01.ibm.com/support/docview.wss?uid=swg21221253
It makes perfect sense now. The application server receives requests and determines if the request came in on a secure port (SSL / HTTPS.) This is important in two ways; first the Servlet API and second the Portal's URL generation. The Servlet API has the ServletRequest#isSecure method as well as the ServletRequest#getScheme method. The application servers behind SSL termination points see this as being non-encrypted traffic. Next, Portal URL generation causes an issue since it generates URL for themes and Portlets using this information. When URL's are generated in their full form (absolute URL's) they are generated for non-secure (http) traffic.
One way to try to mitigate the issue is to change the Portal settings in the State Service to use relative URL's. # enables or disables the generation of relative URLs by default if URLs are generated # from tags # this setting can be overridden on a per-tag basis # # Default: false #com.ibm.portal.state.accessors.url.URLContext.enableRelative = false The solution presented in the Technote should be applied in any event since there may be circumstances where relative URL's are either undesirable or not feasible. One setting in the WebSphere Portal asks for traffic to be redirected to secure transport and without the above issues would still occur.
Applying both changes may be the best solution however usage scenarios vary so... test.
Tim Reilly is a Technology Manager with Prolifics. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise J2EE and Portal solutions leveraging WebSphere Portal, Content Management, Tivoli and 3rd party integrations. He has over 9 years of experience with Websphere Portal and is a former Apache Software Foundation committer.
It makes perfect sense now. The application server receives requests and determines if the request came in on a secure port (SSL / HTTPS.) This is important in two ways; first the Servlet API and second the Portal's URL generation. The Servlet API has the ServletRequest#isSecure method as well as the ServletRequest#getScheme method. The application servers behind SSL termination points see this as being non-encrypted traffic. Next, Portal URL generation causes an issue since it generates URL for themes and Portlets using this information. When URL's are generated in their full form (absolute URL's) they are generated for non-secure (http) traffic.
One way to try to mitigate the issue is to change the Portal settings in the State Service to use relative URL's. # enables or disables the generation of relative URLs by default if URLs are generated # from tags # this setting can be overridden on a per-tag basis # # Default: false #com.ibm.portal.state.accessors.url.URLContext.enableRelative = false The solution presented in the Technote should be applied in any event since there may be circumstances where relative URL's are either undesirable or not feasible. One setting in the WebSphere Portal asks for traffic to be redirected to secure transport and without the above issues would still occur.
Applying both changes may be the best solution however usage scenarios vary so... test.
Tim Reilly is a Technology Manager with Prolifics. He has led the implementation of many global projects using IBM WebSphere Portal and has extensive background in design and development of enterprise portals. He specializes in providing Enterprise J2EE and Portal solutions leveraging WebSphere Portal, Content Management, Tivoli and 3rd party integrations. He has over 9 years of experience with Websphere Portal and is a former Apache Software Foundation committer.
Thursday, April 26, 2012
Establishing a BPM Center of Excellence - IBM Impact Session #2135
Next week at Impact, I will be presenting on the topic of establishing a BPM Center of Excellence. When business process thinking becomes more ingrained in the culture of an organization, and the benefits of process improvement and innovation begin to be realized, the demands on BPM teams will increase, sometimes dramatically. It is by that point organizations must consider how to manage, prioritize and support multiple initiatives across the enterprise. A properly defined and established BPM Center of Excellence will provide the structure and orchestration needed to ensure an organization gets the most from its valuable resources, while continuing down the path of process maturity. This session will look at how a BPM Center of Excellence should be established and staffed, and where in the organization it should reside to deliver the most value.
People should attend this session to gain an understanding of how BPM Centers of Excellence can and should be the hub for all things BPM in an organization.
Session Details:
Establishing a Business Process Management Center of Excellence
Session Number: 2135
Speaker: Howard Webb, Prolifics
Date: Tuesday, May 1, 2012
Time: 3:15pm - 4:30pm
Location: Delfino 4101B
Howard Webb is the Director of BPM Advisory Services at Prolifics. Howard and his team provide consulting and guidance to clients in transitioning to highly efficient Process Managed business models, and equip them for success in their BPM initiatives. For over 25 years he has been a consultant, trainer, facilitator, and speaker on the topics of Business Process Management (BPM), data architecture, and project management. He founded the Midwest BPM Users Group and has published articles on BPM and enterprise architecture. Prior to coming to Prolifics Howard was founder and partner of Bizappia, a consulting and services firm focused on business agility, performance and innovation. Prior to Bizappia, he was a Sr. BPM Technical Specialist with IBM.
People should attend this session to gain an understanding of how BPM Centers of Excellence can and should be the hub for all things BPM in an organization.
Session Details:
Establishing a Business Process Management Center of Excellence
Session Number: 2135
Speaker: Howard Webb, Prolifics
Date: Tuesday, May 1, 2012
Time: 3:15pm - 4:30pm
Location: Delfino 4101B
Howard Webb is the Director of BPM Advisory Services at Prolifics. Howard and his team provide consulting and guidance to clients in transitioning to highly efficient Process Managed business models, and equip them for success in their BPM initiatives. For over 25 years he has been a consultant, trainer, facilitator, and speaker on the topics of Business Process Management (BPM), data architecture, and project management. He founded the Midwest BPM Users Group and has published articles on BPM and enterprise architecture. Prior to coming to Prolifics Howard was founder and partner of Bizappia, a consulting and services firm focused on business agility, performance and innovation. Prior to Bizappia, he was a Sr. BPM Technical Specialist with IBM.
Tuesday, April 24, 2012
Viva Las Vegas!
It's almost IMPACT time and for all of us in the IBM community – it is our version of “March Madness." Starting on the 29th of April, Las Vegas will play host to the largest gathering of professionals that use the IBM WebSphere platform to build solutions that power Fortune 500 companies to the latest start up in the Silicon Valley.
For us at Prolifics, this is our largest event of the year and a great opportunity for us to get together with our customers, IBMers and peers in the industry. It’s our chance to discuss all of the great work we have done over the last year and learn from everyone in this community on the challenges facing us and the direction this industry is taking. However 2012 is very special for us in multiple ways – This year our customer Steve George from Huntington National Bank (HNB) will be a keynote speaker at IMPACT. On every occasion that Steve and I have met in Columbus, we have had very interesting conversations on what Steve’s vision for implementing SOA at the bank. He is one of those thought-leaders who clearly understands the opportunities and challenges that HNB faces. We at Prolifics are proud to have been and continue to be part of the journey at Huntington National Bank as they build their agile service-oriented enterprise and take their next steps to process-oriented excellence. I am really looking forward to listening to Steve and speaking with him again in Vegas. In addition to Huntington we will have Apple Vacations, CIGNA, IDP and several of our other customers presenting their success stories and how Prolifics helped them achieve their business needs. While you are in Vegas and enjoying the conference, please make your way to our booth and our sessions – this consolidated list should help you make Prolifics part of your IMPACT plans:
Visit www.prolifics.com/impact-2012.htm to see a complete list and read more about our upcoming speaking sessions.
For me personally, IMPACT 2012 adds another milestone to my professional career. I will be part of a panel of IBM Business Partners who will be discussing our success stories with the broader IBM community. I am really looking forward to hearing from my peers on the panel and adding value by providing my insights into what IBM and its Business Partner community can do together to help our customers and make them successful.
I’m looking forward to a great week and seeing everyone at IMPACT - "Viva Las Vegas!"
Rajiv Ramachandran first joined Prolifics as a Senior Consultant, and today is Vice President of the BPM & Connectivity Practice. As the leader of the BPM & Connectivity Practice, he leads a global consulting team at Prolifics that is responsible for helping our customers implement successful Enterprise Integration and BPM solutions. He has over 14 years of experience in the IT field having worked at IBM and at many of our key customers as a Solution Architect for several years implementing technology solutions in the Insurance and Healthcare sectors. An author in the IBM developerWorks community, Rajiv has presented at IBM Impact and IBM WebSphere Services Technical Conference.
For us at Prolifics, this is our largest event of the year and a great opportunity for us to get together with our customers, IBMers and peers in the industry. It’s our chance to discuss all of the great work we have done over the last year and learn from everyone in this community on the challenges facing us and the direction this industry is taking. However 2012 is very special for us in multiple ways – This year our customer Steve George from Huntington National Bank (HNB) will be a keynote speaker at IMPACT. On every occasion that Steve and I have met in Columbus, we have had very interesting conversations on what Steve’s vision for implementing SOA at the bank. He is one of those thought-leaders who clearly understands the opportunities and challenges that HNB faces. We at Prolifics are proud to have been and continue to be part of the journey at Huntington National Bank as they build their agile service-oriented enterprise and take their next steps to process-oriented excellence. I am really looking forward to listening to Steve and speaking with him again in Vegas. In addition to Huntington we will have Apple Vacations, CIGNA, IDP and several of our other customers presenting their success stories and how Prolifics helped them achieve their business needs. While you are in Vegas and enjoying the conference, please make your way to our booth and our sessions – this consolidated list should help you make Prolifics part of your IMPACT plans:
Visit www.prolifics.com/impact-2012.htm to see a complete list and read more about our upcoming speaking sessions.
For me personally, IMPACT 2012 adds another milestone to my professional career. I will be part of a panel of IBM Business Partners who will be discussing our success stories with the broader IBM community. I am really looking forward to hearing from my peers on the panel and adding value by providing my insights into what IBM and its Business Partner community can do together to help our customers and make them successful.
I’m looking forward to a great week and seeing everyone at IMPACT - "Viva Las Vegas!"
Rajiv Ramachandran first joined Prolifics as a Senior Consultant, and today is Vice President of the BPM & Connectivity Practice. As the leader of the BPM & Connectivity Practice, he leads a global consulting team at Prolifics that is responsible for helping our customers implement successful Enterprise Integration and BPM solutions. He has over 14 years of experience in the IT field having worked at IBM and at many of our key customers as a Solution Architect for several years implementing technology solutions in the Insurance and Healthcare sectors. An author in the IBM developerWorks community, Rajiv has presented at IBM Impact and IBM WebSphere Services Technical Conference.
Thursday, April 19, 2012
Universal Messaging: Five MQ 7.1 Security Use Cases - IBM Impact Session #1869
This year at Impact, Prolifics’ AJ Aronoff will be teaming up with T. Rob Wyatt (IBM) to host a speaking session focused on the new and improved security model of WebSphere MQ 7.1. We had a chance to sit down with our IBM Champion himself and find out what we can expect.
Tell us about your speaking session at Impact.
AJ: T. Rob and I will be co-presenting on the new security features of MQ, which was designed to be the most secure version of MQ ever. We will showcase all the exciting new security features of this version of MQ, including securing queue managers by default, and creating channel policies that grant appropriate access based on custom authentication rules. Many companies are tightening their security practices, and we are looking forward to presenting a variety of security use cases, that should apply to most environments.
Why will Impact attendees want to attend this session?
AJ: Those that have worked with previous versions of WMQ know that security was a challenge that required attention to every detail. The latest version has a whole new security model that lets administrators create policies that apply to every channel. Organizations today are very concerned about security breaches and the damage they can bring to their business. WMQ 7.1 helps to avoid this “end of the world” nightmare in simplified and efficient ways. T. Rob and I have been involved in a variety of WMQ implementations and have seen all types of situations, both good and bad and we are always happy to share our experiences.
Other than your speaking session, what are you most looking forward to at Impact?
AJ: Impact is the greatest conference in the world! I look forward to spending time with people from Hursley, previous Impact conventions and the world. It’s always nice to see old friends!
Thanks for your time AJ! Sounds like this is a session not to be missed!
Session Details:
Title: Universal Messaging: Five MQ 7.1 Security Use Cases
Date: Monday, April 30th, 2012
Time: 12:15pm - 1:15pm
Location: Marcello 4403
To find out more about AJ's upcoming session, or to see a full list of Prolifics' speaking sessions at Impact, click here.
Tell us about your speaking session at Impact.
AJ: T. Rob and I will be co-presenting on the new security features of MQ, which was designed to be the most secure version of MQ ever. We will showcase all the exciting new security features of this version of MQ, including securing queue managers by default, and creating channel policies that grant appropriate access based on custom authentication rules. Many companies are tightening their security practices, and we are looking forward to presenting a variety of security use cases, that should apply to most environments.
Why will Impact attendees want to attend this session?
AJ: Those that have worked with previous versions of WMQ know that security was a challenge that required attention to every detail. The latest version has a whole new security model that lets administrators create policies that apply to every channel. Organizations today are very concerned about security breaches and the damage they can bring to their business. WMQ 7.1 helps to avoid this “end of the world” nightmare in simplified and efficient ways. T. Rob and I have been involved in a variety of WMQ implementations and have seen all types of situations, both good and bad and we are always happy to share our experiences.
Other than your speaking session, what are you most looking forward to at Impact?
AJ: Impact is the greatest conference in the world! I look forward to spending time with people from Hursley, previous Impact conventions and the world. It’s always nice to see old friends!
Thanks for your time AJ! Sounds like this is a session not to be missed!
Session Details:
Title: Universal Messaging: Five MQ 7.1 Security Use Cases
Date: Monday, April 30th, 2012
Time: 12:15pm - 1:15pm
Location: Marcello 4403
To find out more about AJ's upcoming session, or to see a full list of Prolifics' speaking sessions at Impact, click here.
Wednesday, April 18, 2012
Ohio National Financial Services: IBM WebSphere Virtual Enterprise Implementation in a Mid-Size Company with Big Company Needs - IBM Impact Session #2417
Prolifics customer Ohio National Financial Services is presenting at IBM Impact 2012! Join Ohio National on Wednesday, May 2nd at 1:30pm for a look into the organization’s IBM WebSphere Virtual Enterprise Solution.
Here’s a preview of what Ohio National will outline during this session:
Ohio National Financial Services’ implementation of WebSphere Virtual Enterprise proves that companies of any size can reap benefits from the product. During this session, attendees will learn how WebSphere Virtual Enterprise has allowed them to do more with less by helping them consolidate their WebSphere Application Server infrastructure on a smaller set of virtual machines saving them capital costs. Operationally they have taken advantage of uninterrupted application rollouts to reduce downtime and increase staff productivity. As they mature with the product, they will be able to achieve even greater benefits for their WebSphere Application Server infrastructure using by implementing service policies to ensure service level agreements are met for their applications.
We’re looking forward to hearing more of Ohio National’s presentation! For more information, click here.
Session Details:
Session Number: 2417
Date: Wednesday, May 2, 2012
Time: 1:30pm – 2:45pm
Location: Palazzo M
Here’s a preview of what Ohio National will outline during this session:
Ohio National Financial Services’ implementation of WebSphere Virtual Enterprise proves that companies of any size can reap benefits from the product. During this session, attendees will learn how WebSphere Virtual Enterprise has allowed them to do more with less by helping them consolidate their WebSphere Application Server infrastructure on a smaller set of virtual machines saving them capital costs. Operationally they have taken advantage of uninterrupted application rollouts to reduce downtime and increase staff productivity. As they mature with the product, they will be able to achieve even greater benefits for their WebSphere Application Server infrastructure using by implementing service policies to ensure service level agreements are met for their applications.
We’re looking forward to hearing more of Ohio National’s presentation! For more information, click here.
Session Details:
Session Number: 2417
Date: Wednesday, May 2, 2012
Time: 1:30pm – 2:45pm
Location: Palazzo M
Monday, April 16, 2012
Customer Case Study: Cigna Healthcare and BPM Process-Centric Tools - IBM Impact Session #2108
At Impact 2012, Prolifics and Cigna are joining together to deliver an exciting case study focused around Cigna's innovation through BPM. During this presentation Anant Gupta (VP BPM at Prolifics) and Kevin Hutt (Cigna) will provide an exclusive look into the organization's strategic vision and how leveraging BPM process-centric tools brings the agility needed to grow and evolve over time.
We sat down with Prolifics' Howard Webb to get a better idea of what attendees can expect to hear at this session:
Can you tell us a little more about the session hosted by Prolifics and Cigna?
Business Process Management is often considered a solution for businesses that are struggling and in need of improvement. While this is true, successful organizations as well must be diligent about continuous improvement. This session, presented by Cigna will examine how a successful company is taking advantage of BPM as a new approach to aligning process execution with business strategy to provide even greater levels of customer service while continuing to drive down operating costs.
Why should someone at Impact attend this session?
People who are either beginning their BPM journey or have been involved in BPM for some time should attend this session. I believe they will be interested in hearing how a successful company is dealing with both the challenges and opportunities presented by moving to a process managed culture.
For more information about the session, click here. Be sure to stop by Prolifics' booth G1 at Impact and check out our other speaking sessions.
Session Details:
Prolifics & Cigna: Customer Case Study: Cigna Healthcare and BPM process-centric tools
Session Number: 2108
Date: Tuesday, May 1, 2012
Time: 1:30pm - 2:45pm
Location: Lando 4201A
We sat down with Prolifics' Howard Webb to get a better idea of what attendees can expect to hear at this session:
Can you tell us a little more about the session hosted by Prolifics and Cigna?
Business Process Management is often considered a solution for businesses that are struggling and in need of improvement. While this is true, successful organizations as well must be diligent about continuous improvement. This session, presented by Cigna will examine how a successful company is taking advantage of BPM as a new approach to aligning process execution with business strategy to provide even greater levels of customer service while continuing to drive down operating costs.
Why should someone at Impact attend this session?
People who are either beginning their BPM journey or have been involved in BPM for some time should attend this session. I believe they will be interested in hearing how a successful company is dealing with both the challenges and opportunities presented by moving to a process managed culture.
For more information about the session, click here. Be sure to stop by Prolifics' booth G1 at Impact and check out our other speaking sessions.
Session Details:
Prolifics & Cigna: Customer Case Study: Cigna Healthcare and BPM process-centric tools
Session Number: 2108
Date: Tuesday, May 1, 2012
Time: 1:30pm - 2:45pm
Location: Lando 4201A
Tuesday, April 10, 2012
Business Orchestration Server for IBM WebSphere Operational Decision Management
The event runtime is a shared, secured component that runs Decision Server Events assets such as business objects, events, and actions. After the business events are defined and developed using development tools such as Event Designer and Business Space it needs to be deployed to be available at runtime to be executed.
Interaction between event runtime and outer application happens using the various connectors. The event runtime starts collecting and filtering the business event information it receives from the connectors that have been implemented and business users have described and stored. The event runtime environment sorts through the volume of event information it receives and associates the relevant information it detects, it can then match whether the event is pertinent to the defined patterns and correlations that the business users have described and sorted.
Business information can be from short activity, combination of multiple events or may be complex events processing, once runtime senses a defined pattern it initiates action which can be anything defined by the system. Once we deploy the event runtime it retrieves the assets and uses them as instructions during event handling to do tasks such as creating business objects, evaluating filters in event rules and firing actions.
The picture below depicts high level architecture for Business Orchestration Server (The event runtime)
As shown in the picture above Business Orchestration Server (rhe event runtime) is implemented on WebSphere Application Server. It is installed and deployed as an application (wberuntimeear) with in WebSphere Application Server to take advantage of all the benefits of WebSphere Application Server including high availability, scalability, security and transparency of operations and use.
Since event runtime is actually an application running within WebSphere Application Server its access is controlled by WebSphere Application Server. The event runtime is based on publish/subscribe architecture and it supports messaging layers of WebSphere Application server and utilizes WebSphere messaging platform. Basic concept and mechanism on which event runtime works on is CBE (Common Base Events) and CEI (Common Event Infrastructure)
CBE is defined as standard/platform independent XML schema to be used for the format of business events to be sent to runtime using connectors
CEI is an event notification and event transmission framework that is used as a mechanism for passing events in CBE format to event runtime
The CEI is IBM's implementation of a consistent, unified set of APIs and infrastructure for the creation, transmission, persistence and distribution of a wide range of business, system and network CBE-formatted events
CEI provides public interfaces to:
The CEI provides a point of integration to consolidate events from a number of potentially disparate and diverse sources. It also provides the ability to distribute these events to consumers. These events are represented using the CBE model described.
Using CEI products, applications and functions are able to integrate their events. This enables the support of the end-to-end business-centric process views that these services make up.
At the runtime during the execution of Business Events we need to have database system configured as the runtime configuration for Business Events is stored within the database and at the time of initialization and real run time it retrieves the data to process the incoming events. For complex processing of events and executing actions database can also be configured to store information about for subsequent processing.
The event runtime supports almost all Professional RDBMS databases
The picture below depicts the Business Orchestration server run-time architecture
Business Orchestration Server (The event runtime) mostly consists of these following components:
The following picture depicts the event runtime processing:
The event runtime manages the real-time business event coordination that was defined during application development. As an event occurs in a touchpoint that potentially requires one or more actions in another touchpoint, the relevant data (field name, field type, and value), called an event payload, and is passed using the connector of the touchpoint to the JMS message queue. Web services environments that employ SOAP to package messages and other protocols like HTTP, can direct those messages through the JMS queue.
The event runtime retrieves the message from the JMS queue and populates the appropriate intermediate objects with the values contained in the event payload. The event runtime parses the event, identifies the interaction sets that reference the event and determines whether any filters exist that require further evaluation.
If an action includes a filter, the event runtime attempts to evaluate it to determine if the filter conditions for a given action have been met. For complex event processing, this includes determining if referenced events or actions have occurred or not occurred as described in the filter condition. If any values are missing, the event runtime will attempt to retrieve the missing information from an external data source. The action is initiated only if the filter condition is true.
If the action does not include a filter, then the appropriate action will be initiated.
The event runtime passes the relevant data (field name, field type, and value) associated with the action from intermediate objects as an action payload to the outbound message queue, where it is picked up by the appropriate connector. The connector pushes the data to the appropriate touchpoint(s) and initiates logic within the touchpoint to perform the appropriate activity. The connector might return a result back to the JMS queue, where it is retrieved by the event runtime as a new event and processed appropriately.
If the action requires human intervention, it is directed to User Console, where the user can access it. When the user responds to the information displayed on the screen, the response is sent back to the JMS queue as a result event, where it is retrieved by event runtime as a new event and processed appropriately.
History for events, actions and filters used in event rule group evaluation is stored in a History database manager. This information is retrieved, formatted and displayed as charts in real time in Business Space by the Event Chart widget.
Alok Keshri, a Technical Manager for Prolifics focusing mainly on ILOG-JRules and WODM 7.5, has over eleven years of experience in the IT industry spanning across various industries. He is an experienced and resourceful enterprise software Tech Lead/Architect and has worked with J2EE/ SOA/BRMS/ BPM technologies. He is specialized in Object Oriented Analysis, Design, Development, and Estimation of projects with heterogeneous Web technologies in complex business systems based on a variety of platforms. He has extensive experience in IBM middleware products such as WebSphere Application Server, WebSphere ILog-JRules, WebSphere Message Broker and other products in the IBM BPM stack. He is also certified in WebSphere ILOG-JRules and FileNet. Alok received his BE in Electrical Engineering in 2000.
Interaction between event runtime and outer application happens using the various connectors. The event runtime starts collecting and filtering the business event information it receives from the connectors that have been implemented and business users have described and stored. The event runtime environment sorts through the volume of event information it receives and associates the relevant information it detects, it can then match whether the event is pertinent to the defined patterns and correlations that the business users have described and sorted.
Business information can be from short activity, combination of multiple events or may be complex events processing, once runtime senses a defined pattern it initiates action which can be anything defined by the system. Once we deploy the event runtime it retrieves the assets and uses them as instructions during event handling to do tasks such as creating business objects, evaluating filters in event rules and firing actions.
The picture below depicts high level architecture for Business Orchestration Server (The event runtime)
As shown in the picture above Business Orchestration Server (rhe event runtime) is implemented on WebSphere Application Server. It is installed and deployed as an application (wberuntimeear) with in WebSphere Application Server to take advantage of all the benefits of WebSphere Application Server including high availability, scalability, security and transparency of operations and use.
Since event runtime is actually an application running within WebSphere Application Server its access is controlled by WebSphere Application Server. The event runtime is based on publish/subscribe architecture and it supports messaging layers of WebSphere Application server and utilizes WebSphere messaging platform. Basic concept and mechanism on which event runtime works on is CBE (Common Base Events) and CEI (Common Event Infrastructure)
CBE is defined as standard/platform independent XML schema to be used for the format of business events to be sent to runtime using connectors
CEI is an event notification and event transmission framework that is used as a mechanism for passing events in CBE format to event runtime
The CEI is IBM's implementation of a consistent, unified set of APIs and infrastructure for the creation, transmission, persistence and distribution of a wide range of business, system and network CBE-formatted events
CEI provides public interfaces to:
- Publish (or emit) an event
- Subscribe to events that match a particular filter (event group)
- Consume an event
- Query historical event data (if the optional event data store is enabled, this can be achieved via a published interface)
The CEI provides a point of integration to consolidate events from a number of potentially disparate and diverse sources. It also provides the ability to distribute these events to consumers. These events are represented using the CBE model described.
Using CEI products, applications and functions are able to integrate their events. This enables the support of the end-to-end business-centric process views that these services make up.
At the runtime during the execution of Business Events we need to have database system configured as the runtime configuration for Business Events is stored within the database and at the time of initialization and real run time it retrieves the data to process the incoming events. For complex processing of events and executing actions database can also be configured to store information about for subsequent processing.
The event runtime supports almost all Professional RDBMS databases
The picture below depicts the Business Orchestration server run-time architecture
- The event runtime is the core of Business Events. This is where the logic of business event processing takes place.
- Connectors are internal system components that provide codeless connection to and from touchpoints via a variety of protocols.
- The repository provides shared, secured storage for definitions of Business Events assets.
Business Orchestration Server (The event runtime) mostly consists of these following components:
- WebSphere Application Server Network Deployment
- A RDBMS to contain the repository such as business objects, events, actions….
- The Decision Server Events application for business event processing (BEP), wberuntimeear
- The WebSphere Business Events application installed and deployed with in WebSphere Application Server Network Deployment.
- Java Message Service message queue managed by a message queue server such as WebSphere Application server ND service integration bus or WebSphere MQ.
- Event connectors and action connectors for touchpoints
- A database manager to serve as a message store for persistent messages
- A LDAP or Microsoft Active Directory, if user authentication is required
- JDBC drivers for database access at runtime
The following picture depicts the event runtime processing:
The event runtime manages the real-time business event coordination that was defined during application development. As an event occurs in a touchpoint that potentially requires one or more actions in another touchpoint, the relevant data (field name, field type, and value), called an event payload, and is passed using the connector of the touchpoint to the JMS message queue. Web services environments that employ SOAP to package messages and other protocols like HTTP, can direct those messages through the JMS queue.
The event runtime retrieves the message from the JMS queue and populates the appropriate intermediate objects with the values contained in the event payload. The event runtime parses the event, identifies the interaction sets that reference the event and determines whether any filters exist that require further evaluation.
If an action includes a filter, the event runtime attempts to evaluate it to determine if the filter conditions for a given action have been met. For complex event processing, this includes determining if referenced events or actions have occurred or not occurred as described in the filter condition. If any values are missing, the event runtime will attempt to retrieve the missing information from an external data source. The action is initiated only if the filter condition is true.
If the action does not include a filter, then the appropriate action will be initiated.
The event runtime passes the relevant data (field name, field type, and value) associated with the action from intermediate objects as an action payload to the outbound message queue, where it is picked up by the appropriate connector. The connector pushes the data to the appropriate touchpoint(s) and initiates logic within the touchpoint to perform the appropriate activity. The connector might return a result back to the JMS queue, where it is retrieved by the event runtime as a new event and processed appropriately.
If the action requires human intervention, it is directed to User Console, where the user can access it. When the user responds to the information displayed on the screen, the response is sent back to the JMS queue as a result event, where it is retrieved by event runtime as a new event and processed appropriately.
History for events, actions and filters used in event rule group evaluation is stored in a History database manager. This information is retrieved, formatted and displayed as charts in real time in Business Space by the Event Chart widget.
Alok Keshri, a Technical Manager for Prolifics focusing mainly on ILOG-JRules and WODM 7.5, has over eleven years of experience in the IT industry spanning across various industries. He is an experienced and resourceful enterprise software Tech Lead/Architect and has worked with J2EE/ SOA/BRMS/ BPM technologies. He is specialized in Object Oriented Analysis, Design, Development, and Estimation of projects with heterogeneous Web technologies in complex business systems based on a variety of platforms. He has extensive experience in IBM middleware products such as WebSphere Application Server, WebSphere ILog-JRules, WebSphere Message Broker and other products in the IBM BPM stack. He is also certified in WebSphere ILOG-JRules and FileNet. Alok received his BE in Electrical Engineering in 2000.
Subscribe to:
Posts (Atom)