This article intends to showcase the supported platforms which can be used with Savvion Business Manager. This should be helpful for those who wish to decide if Savvion can run on their technology stack. Please note these have been put together for Savvion Business Manager 7.6. Your requirements could vary based on your Savvion version
Having better server hardware definitely helps. Normally you would need at least three boxes for Development, User Acceptance and Production Environment. If you plan to implement clustering your hardware needs might increase. Also note the recommendations below are for a typical production environment. For Development environments you can very well use cheaper and slower machines.
Recommended By Vendor
BPM Geek recommendation
Pentium IV 1GHz or
UltraSPARC-III 900 MHz
Dual CPU Pentium IV 1GHz & up or
Dual CPU UltraSPARC-III 900 MHz and up
Quad Core Duo Processor 2.66 GHz or better.
Faster is better. Please note your licensing might depend on this
2 GB RAM
2 GB RAM
8 GB RAM.
Having more memory will help in getting better server performance
Free disk space
2 GB and above. Depending on the application
server you are using, you may need additional
free disk space.
40 GB if you have the database on the same server
Attachments, Event information etc could fill up really fast. It’s better to have adequate Storage available
CD-ROM or DVD Reader
Twice the memory
Twice the Memory
Twice the memory
Virtual memory could help solve caching problems. If you can afford RAM nothing like it, otherwise have adequate Virtual memory
Given below are the software requirements for Savvion
MS Windows Server 2003 Standard/Enterprise R2
Solaris, AIX, and Linux
MS Windows Server 2003 Standard/Enterprise R2
Red Hat linux installations are also pretty popular
Pramati 6.0 SP4 (embedded in BusinessManager)
WebSphere 18.104.22.168 or WebSphere 22.214.171.124
JBoss Community Edition 5.1 (embedded in Business Manager)
and JBoss Enterprise Application Platform 5.0.1
A number of companies use Pramati as it is very fast and comes embedded. JBoss Enterprise Server has also picked up recently. WebLogic is also popular. My personal favorite is Pramati as It just works out of the box with no hassles.
Microsoft Internet Explorer 7.0 or above
Mozilla FireFox 3.6 or above
Internet Explorer although Firefox is my personal favorite
Oracle 10g, Oracle 10g
Express Edition, and Oracle 11g
Microsoft SQL Server 2005
Microsoft SQL Server 2008
IBM DB2 9.5
Lot of people use SQL Server and Oracle. I have also come across a custom version here Sybase was supported. We wish MySQL was supported as well. I think recently patches have Open Edge Database integration as well
JDK 1.6 is most popular. J2EE normally gets available based on your application server
Microsoft Active directory
Sun Java System Directory
LDAP happens to be most popular. Although some companies prefer to have their custom Realms based on organizational policies
SMTP/POP3 Mail Server authenticated/Non Authenticated
Microsoft Exchange Server
Any Server which exposes SMTP/POP3 works
Based on my experience, the following types of Technology stacks are most popular for Savvion Business Manager
Red Hat Linux Stack
Red Hat Enterprise Server
Pramati Application Server
SSO using Site minder/Kerberos
Windows 2000 with Weblogic
Windows 2003 R2
Weblogic Application Server
Windows 2000 with JBoss
Windows 2003 R2
JBoss Enterprise Application Server
MS SQL Server Database
Active Directory Authentication
SSO Using Netegrity
Life is always about finding the best ways of achieving your goals. These guidelines have been formulated from experience and knowledge of the tool to help anybody to design better mature workflows as well as for easier migration to a structured workflow paradigm.
The provided workflow patterns and programming suggestions should not be taken as the only way to implement the corresponding concepts. They are intentionally simplified to readily convey the general design principles as well as to clearly point out models or workflow. Your business may require different implementations or design variations for some of these concepts and your workflow designs will probably be more complex than the patterns presented as examples in this article.
Best Practices in Process Modeling
Process modeling can be used to define, document, analyze and improve valuable corporate processes and achieve the so called Business Process Management maturity. Effective process modeling makes use of a common naming conventions and methodology, shows the integration of processes with systems, organizations and data, and supports process walkthroughs for validation.
- A process represents a prescribed, directed path and each instance follows a predictable, repeatable and measurable process. Action or Paths that are not defined cannot be taken.
- The processes should not include extra and/or redundant worksteps that reflect logic. Instead, this logic should go into an external performer.
- The process template should not have redundant worksteps or we should try to complete process with least number for worksteps for better performance.
- If you have 2 manual activities adjacent to each other with the same performer, do not make the user go to the task list for the next activity. You should model it as one activity. Products like Savvion have BizSolo Applications which can help you with this.
- Prepared model should be validated against requirement.
- At times process model may not look the same as Business Process since processes could have subprocesses, merged worksteps etc.
Process Template Names
- The name of the process template should be such which describe the main purpose of designing or having a workflow. It should not be space separated eg:- CapitalExpense. Remember your first template’s name will be used as app name going forward. Name it wisely.
- Designing the new version of the process should be done by using the functionality of “Use an existing file from file system as template”. Versioning happens as V1, V2 etc.
- While creating a new application, use proper name for Label, Version, Group, Duration, Category and Sub-category.
- Always provide a nice label as that is what your users will see in their application list.
- Process should contain Swim lanes and Phases. Swim lanes help to distinguish different performer involved in process, whereas Phases define the stages to which process is liable to pass in course of reaching to completion.
- Savvion uses an underlying database. Corresponding to each template that you install there will be a table created. Some databases like Sybase have a limitation that table names cannot be more than 28 characters. Make sure you name your templates with less that the prescribed limit.
Human/Adapter Work step
- The name should be Short & meaningful, alpha-numeric, and with spaces.
- The label should be any meaningful string value which describes what the entity does.
- Make sure that your names describe what you are doing in the step. It makes understanding the model much easier.
- Remember it is a work step. The name should reflect what it does rather than who does it. For example the work step name should be “Review Loan Application” rather than “Branch Manager review”. As your model matures your actual performers might change and changing workflow model then could be very difficult.
- The name should be Short & meaningful, alpha-numeric, and with spaces.
- The label should be Short & meaningful string that will valuedecision phrase. The label will be showed in the decision box by default.
- Branches should be short string value description of decisions (For Example: yes, no, forget it)
- The name should be Short & meaningful, alpha-numeric, and with spaces.
- The label is a string value which depends on the requirements. It should be shortly described.
- Avoid using typed names. For example naming something as “FullNameStr” or “Full Name String” or “Str_Full_Name”. At times using str, date etc might help you in figuring out the type but if you want to change the type of dataslot later .. you are stuck
Separation of workstep in Design
- Unnecessary spacing should be reduced to avoid unnecessary scrolling.
- To Avoid Cluttering of components, the path should be clear and adequate distance should be maintained.
- The size of worksteps boxes should be same as much as possible
- The size of the Decisions boxes should be even.
- Joins should be of same size.
- Connector lines should be aligned with the blocks.
End of a process
- When process complexity demands multiple Ends for the process then join them all with “Or” join to one end.
- Ends should be annotated with What is achieved on successful end.
- The data slots should be defined only with a purpose. Unnecessary Data slots will increase burden on process.
- Do not use Dataslot of string type all the time. Use specific type dataslot as per usage.
- Do not use String with default value of storage capacity. After using change it as per requirement and instead setting it 256 char to upper limit of your requirement.
- Corresponding to your dataslots there will be columns in backend table. Some databases have a limit on how wide the table could be (For example Sybase has 16K or 32K). Make sure you use the space allotted to each dataslot wisely, otherwise you will reach the limit and will not be able to install processes anymore.
Pattern – Parallelism
While using a split join to create parallel activity, make sure that all parallel paths are rejoined at an “and-join” node.
Each loop and parallel paths sections should be considered a block construct that has a single entry and exit point. Avoid breaking the block structure by creating a link into the middle of the block or creating a link from the middle of the block that bypass the existing point of the block. Doing so may create an infinite loop or create a race condition where the process execution is unpredictable.
While calling a sub process, make sure that all the input and output parameters are provided.
If the sub process is called asynchronously, you may need to create an activity workstep that is used as a synch point, if the main process must wait for the sub process to complete at a certain point. The sub process will use BizLogic API call to programmatically complete the synch point step.
- Define all input/outputs
- Define Performers
- Documentation – Write brief description of what is going to be done in the step. Sometimes the name or label is not adequate and this can help you figure out what is going on in the step instead of looking at code.
- Duration and what to do if it expires
- Handling errors :-
- Decide how you will handle errors (suspend, add a step to correct the problem.
- Minimize pre/post scripts. Add this to an external performer if possible. This will help minimize code in multiple places.
- Adapters can be replicated; you don’t have to reuse the same one all the time. If it makes the process easier to read, just replicate it in another part of the process.
Becker, Kugeler, Rosemann. Process Management. Springer-Verlag, August 2003.
Often new developers and users tend to assume that a BPM Suite is a magic wand to do everything. Sometimes such an apprehension comes in because the presales team had shown numerous features during the sales pitch and convincing you to choose (and Buy) their product. But the question is What should really not be done using Workflow and moreover a BPM Tool. I have compiled certain scenarios from my experience where a workflow might be an over kill. It is worth noting here that these might end up being good use cases for workflow depending on the finder details, but from a 30,000 feet perspective these should not be done in workflow.
Data, especially master data happens to be the core building block of any organization. This could comprise of a Series of Policies, Database/Tables, Documents and other complex stores. Several BPM Tools provide rich set of user interface design tools using which you could create complex screens to manipulate this data and then provide code to update the masters. But is it the right approach? Think about it. Why cannot this be done using a Simple J2EE/.NET Application? Does it need approvals, probably not? Is there an SLA attached to it, Probably No? Think about it.
Some BPM Tools like Savvion Business Manager comes with Non Workflow components like Biz Solo which can be used to create front end to such masters.
In certain scenarios, users get tempted to build screens using a workflow/BPM tool. Scenarios could be when we are using some other data management product for which licensing is costly or the tool is too complex to use. For the sake of making it look like a workflow, we add an approval step. Not recommended. Definitely not recommended.
Workflow tools specialize in Workflow development. To achieve agility, they have been optimized for workflow scenarios. In fact for simple front end screens, use of custom application is recommended as it will give you both speed and flexibility.
Some Business Cases are not meant for workflow. For example consider an application which allows you to manage the reporting hierarchies like organizational charts. The application should allow you to do drag and drop, add pictures and manage employee meta data. Another could be a system which manages quote generation. Quote Generation needs a series of inputs to generate a quote. No need to do it in Workflow. However, if you need an approval for the Quote, yes that should be done with workflow. Similarly, if you want you can create a Workflow for “Request a Quote” then this application will be the Glue between Request a quote and then approval.
Typically before making a choice if the current business case falls as BPM or not, I try to parameterize the problem based on following factors
- Stages Required – It has a workflow and handoffs.
- User Interface Complexity – UI needs a stage wise approach to manage.
- Integration required – Systems should push and pull data.
- Back and Forth – There is a Accept/Reject/Resubmit cycle involved.
- Process variants – Based on the input data the process could follow multiple paths.
- Reporting – Reporting requirements with respect to performance measurements are high.
- Business Rules – The process has a lot of rules which need to be checked.
- Auditability – We need keep track of process state and transition.
- Business Impact – The process has high business impact and needs to managed closely.
- Business Volume – There is a huge business volume and automation will help.
- SLA Adherence - Things need to complete on time, Escalate.
- Agility and Response – Process changes very fast and business needs to scale.
Normally grade on a scale of 1 to 10 for the above and then average it out. If anything scores more than 60% then it should be done in workflow. For 30% or less do review the approach.
Here do note that some factors are weighed high like Stages Required, Back and forth, business Rules, SLA Adherence, Agility and Response. If you get a high score in 2-3 of these then even a lower score would mean go for a workflow.
Hope this helps.
Most of the people who have worked with Form Designer would have come across widgets. These are the drag and drop components which you use in form designer. Some of them are basic ones like Tree, Grid, Text field etc. But do you know there are a whole lot of goodies (Thanks to Savvion) which you can enable. Let me show you what’s available.
Accordion, Combobox, Clock, Datepicker, Dijit, Drawer, Dropdowndatepicker, Editor, Etable, Fisheye, Inlineedit, Spinner, Tabbedview, Table, Timepicker, Tree
Grid, Menu, Tree
Calculator, Googlemaps, Googletalk, Outlook, Stockcharts, Youtube
Map, Mappopup, Search
AccordionMenu, Areachart, Barchart, BlockList, Dcontainer, Menu, TabMenu
Browser, Checkbox, Combobox, Elist, Image, List, Radio, Textarea, Textfield, XMLArray,
Accordion, AccordionXML, Widgets
Autocomplete, Button, Calendar, DataTable, Editor, Flashmap, Geocoder, Grid, Logger, Map, Menu, Rgbslider, Search, Simpledlg, Slider, Tabbedview, Tooltip, Tree, Weather
Amazing right! Savvion does not include all of these by default . Now how do you show them on your BPM Studio? Well, for that you will need to drill down to where these widgets are located. Let’s try to enable say Google Maps.
Assuming you have installed BPM Studio on your Windows machine and your workspace is C:\BPMStudio76\workspace you will need to
- Open your workspace in Windows Explorer
- Go inside the folder .com.savvion.studio
- Go to the forms folder
- Open the file widget.xml in a text editor
- You will see a commented line like
<googlemaps icon="googlemapssmall.png" enableServiceBinding="false" enableDataSlotBinding="false" enableTargetBinding="false" />
- Uncomment that line as well as its parent XML element
- Restart your BPM Studio.
You should be able to see the Google Maps icon in your right sidebar. Cheers!!!
If you notice, the widgets are available in sub folders under this directory itself. You can try out some of them as well.
Widgets are incredibly good option to have draggable reusable components. In one of my previous assignment I got a chance to create a few custom widgets. Most of the work was hit and trial as very less help is available. It took me several weeks before I could have a productionized version. However the component we got at the end of it saved several weeks for other developers.
Would you like a step by step article on creating widgets? Let me know ....
Although Identity and Access Control may seem to be an entire application, a large portion specially the ones involving approvals can actually be done using a Business Process Management tool. In this case study, we will be talking about how to build an identity control system using Savvion Business Manager.
The AS-IS Process: Company A, an insurance giant is struggling with its identity approval system. The firm has a huge list of applications whose access control is managed on individual application level. Any user who needs access to an application needs to send an email (with business justification) to the application owners. Application owners can be found by going through the help section of the particular application’s home screen. Application owner first asks the user to get an approval from his manager (or manager’s manager ) who is at-least a vice president. The application owners logs into the application and provides the required privileges.
Here are the gaps in the process
- Current Access control system is email based and cannot be tracked.
- End user needs to identify the application owners.
- Requests coming via email do not have a standard format and fields.
- There is no SLA Monitoring and Delay escalations.
- Metrics and report maintenance is done on excel sheets.
The Access control problem can be easily solved using Savvion Business Manager Workflow based solution. Since a large number of application owners, Business rules and handoffs are involved, using an automated workflow can fill in the identified gaps.
End users would use Savvion Business manager to fill in a form where they can choose their particular application from a master list. They can provide business justification, any additional information required (based on the application) and submit the request. Savvion can take care of finding user’s manager, getting his approval and then routing it to the concerned application owner. For certain cases where access can be automated, Savvion can automatically invoke the access control logic.
Using Savvion’s Reporting and Escalations feature, SLA and metrics can be easily captured.
Here is how the implementation should be approached.
Step 1: Requirements Gathering
Identify the list of applications for which Access needs to be given. Get answers to the following
- Who would be the stakeholders and signing authority for the project?
- Where will the list of applications be obtained from. Would it be a phase wise implementation?
- What are the fields required for each application?
- How to determine the approval matrix?
- What would be the Service Level Agreements for each application?
- Would there be a Straight through processing (STP) i.e. automatic access granting?
- Would user be able to submit request for a single application or multiple applications together?
- What would be the format of notification emails and the final email based on approval/rejection?
Document the requirements, create screen mockups and get the end user signoff. Create Functional tests cases as well.
Step 2: Design and Development
In the design phase, do the following
- Design the Savvion workflow. Keep the work step performers in dataslots.
The workflow should be like:
- 1st Step - > Requestor
- 2nd Step - > Manager
- 3rd Step (with N Iterations) -> Application owners
- 4th Step -> Confirmation Mail to Requestor
- 5th Step -> Request Confirming Access is available
- There will be email notifications at each step to the concerned performer.
- Please note that often the end users forget to confirm if an access is available or not. Having an overdue logic to complete in a day or two will give you better metrics.
- Identify the workflow SLA Times. Assign it as Due Dates for the work steps. Provide escalation mails if they are not met.
- Create a Table/XML which contains application list and approvers for each application.
- Design your front end screens. Link application pull down to the table. Provide client side validations.
- After the request steps provide an adapter which, based on the approval matrix/table, will determine which all approvers would be required.
- Design email formats – Task Emailer can be done using standard Savvion Emailer. Confirmation mail can also be done in the same way. If a more complex email is required use an adapter.
- For Straight through processing, provide adapters which can invoke the required logic. Chances are that you would need to ask the application owners to provide some web service, API or stored procedure to do automatic access granting/revoking
Step 3: Testing and Deployment
Test the workflow for various scenarios. To reduce the work effort you can write automated script which chooses each application and creates requests for them. Use JUnit to test your adapters.
Execute your Functional and User Interface test cases.
Step 4: Monitoring and reports
Simple SLA reports, Open Item reports etc can be easily created using Savvion Biz Manage. You can also create Dashboards for application owners where they can see how many tasks are pending on them. Use report builder to create custom reports.
Some business ask for a dashboard on email. I have a prototype for the same. Will share it on BPMgeek soon. Let me know if you are interested.
Hope this helps. Comments and Suggestions are welcome.
Savvion works on process versioning. Process versioning helps you to have multiple versions of processes running simultaneously while making sure that new requests always follow the new process and old ones follow the process which was applicable when they were submitted.
You can read a full article of process versioning here http://bpmgeek.com/blog/process-versioning
If you installed the second one as new version over first you can roll it back. Normally the BizLogic Admin command to install a new version looks like
yourservername>connect ebms ebms
yourservername>createAndInstallPtVersion NewProcess.xml OldProcess
Which means install the New Process as a new Version of Old Process. This will make sure that the App names of both processes are same and the start link on the applications page now points to the new version. Internally, the old process is now suspended. You cannot create new requests for the old template. However, any instance still active follows the old path itself.
If you are using the studio, if you can specify the base version in the property of the template (Normally done by saying use this old version as the template). Any installs are automatically versioned install.
When you install a process as a new version to an existing process, you have the capability to roll it back.
Step 1: Find out the names
Find out the names of the old and new processes. For now, we will assume them to be “OldProcess” and “NewProcess”.
Step 2: Start BizLogic Admin Console
Go to the bin folder of your Savvion Installation and double click on startBizLogicAdmin. You can see it in the first steps screen as well. Double click to start it.
Step 3: Connect with your username and password
On the prompt, Connect with the username and password. If you are using standard Savvion realm it could be ebms/ebms. The command would be
yourservername>connect ebms ebms
Step 4: Remove New template
Issue the following command to remove the new template
Step 5: Resume the old template
Normally resuming should happen automatically. Otherwise you can use the command
Hope this helps.
Savvion clients and developers often struggle with how to have their processes ready for rollout in a shorter development timeframe. Normally process development could take weeks or even months depending on complexity.
This is an effort to list some of the productivity enhancement techniques.
- Have your primary client stake holders participate in requirement. If someone is part of the processes he should be in the room. This will help you reduce the iterations when doing subsequent User Acceptance Tests
- Document while you discuss, preferably on a shared screen. If your users can see what you are are noting down, even if its an MoM, the requirements will be clearer and implementation straight forward
- Have repeated meetings. Do your homework in between meetings. If you are working on a document, update it after every meeting so that open items are identified
- Run your requirements through an architect or a person who understands the technology as well as business
- Create Mockups immediately. Use Excel or similar tool to create screen mockups right infront of client. This will give them UI look and feel and will reduce changes and iterations
- Document, Get signoff. Make sure you make your client aware that he will get what he has signed off. Anything extra will come as a Change Request will additional Time and complexity
- A after the requirements, re-estimate and come up with realistic figures
- Have your functional test cases ready. This will save time later
- Let Business Analysts define the business process only. Savvion process should be defined by the developer
- Develop your basic process first. For adapters, create a simple skeleton and go ahead. You can add the internals later
- Use form Designer for quick drag and drop. Custom Pages can be very time taking
- Use Form Fragments – Form Fragments help you reuse parts. This can save you a large amount of time creating and maintaining your workflow
- When developing adapters, develop them as common resources. This way you can reuse them and lower the subsequent development time
- Try to convince clients for default screens as much as possible. Grids, interactive User interface are good to have but can take up huge amount of development time
- Avoid BizSolo in your workflow. Having a BizSolo and interaction with the main flow, screens etc could take up huge amount of time. Try to have simple one page work steps screens wherever possible
- Test your adapters first with a public static void main and then incorporate into your business process. If required do their unit test before you place them into your adapters
- Place libraries in the lib folder of your workflow. Placing them in common location or server lib directory would need server restarts and will kill a lot of your time
- Write enough debug lines – this will help resolve issues faster
- Once you have the core functionality ready show it to the client for feedback. Don’t wait for the last moment. He is anyways going to ask for changes
- Do parallel Standards Review and UAT. This will reduce the waiting time
- Defer documentation to be done after process rollout. Typing takes time
- Do your vanilla tests every time you move from one server to another
- Double check your integrations for input output using standard java application and then push into the workflow
Workflow development , as everything else follows the 80-20 rule. You can finish 80% functionality in 20% time but the remaining 20% could eat up 80% of your time.
In this cut-throat competitive world, we often wonder how to take our business ahead of our competitors! “Operational Responsiveness” seems to provide us the solution. This is the ability of your business to sense and respond to the opportunities and threats and the ability to continuously improve your business processes to drive greater efficiencies.
Thought of sharing these videos I found while searching about Operational Responsiveness. See what Dr. John Bates (Chief Technology Officer, Progress Software) has to say about the same.
What is Operational Responsiveness?
Three-Minute Video Introducing Progress RPM
You can read more about Responsive Process Management on http://web.progress.com/en/business-need/responsive-process-management.html
Checkout this 3 part video series where "Savvion Workflow: Development to deployment" has been demonstrated. The video details the steps of Creating a simple two step application, Deploying the application on the server and using the application. Part IPart IIPart III
BPMgeek now has its own YouTube Channel. Check it out here
We are planning to share with our readers’ wide variety of Case Studies, Tutorials, Presentations, Templates etc that will help you to better understand BPM
Much more to come...Stay tuned...