Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

In this case, there may be several other departments who:

  • administer their own firewalls
  • have a "Firewall Request Change" process that differs from IET Application Development's process
  • have work groups that have the same name as IET's work groups, but may or may not have the same responsibilities

Development

...

Cycle

  1. Model the Business Process
  2. Model the Required Form Details
  3. Model the Document Workflow
  4. Procure Work Groups
  5. Create Workflow Components
    • Create the Parent Document Type
    • Create the Child Document Types
    • Create the eDocLite Form
      • Create the Definition
      • Create the Stylesheet
    • Create Rule Attributes
    • Create Rule Templates
    • Create Rules
  6. Implement Workflow Components
  7. Simulate the Business Process
  8. Create Validation Checklists

...

Model the Business Process

The process in detail:

  • This time there are four responsible parties: Requester, Desktop Services, Firewall Policy Group, and the Firewall Gatekeeper.
  • The Requester submits the request as before, except s/he is now allowed to tell us whether if the request is URGENT. If it is, we expedite the process. If not, we go through the process as normal.
  • The Desktop Services group will field all requests instead of the Firewall Policy Group. We want whoever receives the request to check if the firewall modification being requested is already in effect. If so, disapprove the request. The Requester will then get notification. Also if the request is URGENT, forward the request straight to the Firewall Gatekeeper to make the firewall modification. Otherwise, forward the request to the Firewall Policy Group.
  • The Firewall Policy Group will review all normal requests and, upon approval, forward the request to the Firewall Gatekeeper. This group will review all URGENT requests after the Firewall Gatekeeper has fulfilled them.
  • The Firewall Gatekeeper performs the actual modification of the firewall. As far as the process goes, all the gatekeeper will do is acknowledge the request and implement the modification to the firewall. Once the modification is complete, the gatekeeper will forward the request onward. We say "onward", because the gatekeeper is not routing the request to anyone per se. Behind the scenes, if the request is URGENT, then the request gets routed to the Firewall Policy Group. Otherwise the process is finished and the Requester gets a notification (and maybe all the other responsible parties too).
  • To complicate things further, if the Firewall Gatekeeper modified the firewall based on an URGENT request, and the Firewall Policy Group decides to disapprove the request after the fact, then the request goes back to the gatekeeper to reverse the firewall modification.
  • We documented the Review Non-Urgent Request and Review Urgent Request as subprocesses because there is the potential for the Firewall Policy Group to have continuous correspondence with the Requester. We'll address these in a future Way More Advanced tutorial.

...

  • A workflow diagram translated from the business process.
  • A form to capture the request details initially. As the process goes on, the form must accept additional details.
  • A way to bring the request to the attention of the Desktop Services, who will receive and do an initial review of the request, the Firewall Policy Group, who will review and approve or disapprove the request, and the Firewall Gatekeeper, who will fulfill the request.
  • A way for the requester to get the details on the actions taken on the request.

...

Model the Form Details

As part of the process, the Firewall Policy Group requires that anyone who wants the firewall rules modified must provide the following details:

...

  • The details we are asking from the Requester are almost the same as those in the Simple Workflow tutorial. This time we decided to split Source Specification and Destination Specification into two fields and allow for the Requester to tell us that this is an URGENT request.
  • The details of the request don't stop there. As the process moves along, we want the other responsible parties to add detail to the form.
  • Once Desktop Services fields the request, we want to capture whether the firewall modification being requested is already in effect or not. Depending on the answer, the workflow will route the form to the appropriate party.
  • If the Firewall Policy Group decides to disapprove the request, we want to capture their reason for doing so.
  • If the request is URGENT, and the Firewall Gatekeeper already modified the firewall rules, and the Firewall Policy Group disapproved the request afterward, we want our workflow to automatically check a box that prompts the Firewall Gatekeeper to revert the modification.

...

Model the Document Workflow

...

Here is the document workflow diagram based on our business process. In it, we want to represent:

...

Request

The first route node, a.k.a. the start node, in the workflow's route path. This is where the Request Firewall Change document is created by an initiator.

Violet Element

A node in the route path. Each node represents a point in the business process where a responsible party is viewing (and possibly editing) the Request Firewall Change document.

Lavender Parallelogram

A rule template that is applied to each node. Each rule template is associated with a set of rules and rule attributes.

Orange Element

A rule attribute associated with a rule template.

Lime Rectangle

The responsible party or parties who take action on a node.

Red Arrow

The action that must be taken to get from one node to the next node.

Blue Join Line

When connected to a rule attribute, it represents a rule that evaluates that rule attribute

Finish

Means the workflow has completed with flying colors.

...

Procure Work Groups

After going through the easy and expedient process of requesting Work Groups, the Kuali Rice administrator has notified us that the following groups are available for use in our workflow:

...

Code Block
titleRequestFirewallChange.eDoc.RoutingRules.xml
<?xml version="1.0" encoding="UTF-8"?>
<data xmlns="ns:workflow" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ns:workflow resource:WorkflowData">
<rules xmlns="ns:workflow/Rule" xsi:schemaLocation="ns:workflow/Rule resource:Rule">
	<rule>
      		<documentType>RequestFirewallChange.eDoc.ChildDocType</documentType>
      		<ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate>
      		<description>ReviewCurrentConfiguration Routing Rule</description>
      		<ignorePrevious>false</ignorePrevious>
      		<responsibilities>
        		<responsibility>
          			<workgroup>ucd.IET.DES.DevelopmentSupport.WorkGroup </workgroup>
          			<actionRequested>A</actionRequested>
          			<priority>1</priority>
        		</responsibility>
      		</responsibilities>
    	</rule>
	<rule>
      		<documentType>RequestFirewallChange.eDoc.ChildDocType</documentType>
      		<ruleTemplate>RequestFirewallChange.eDoc.FulfillUrgentRequest.RuleTemplate</ruleTemplate>
      		<description>FulfillUrgentRequest Routing Rule</description>
      		<ignorePrevious>false</ignorePrevious>
      		<ruleExtensions>
        			<ruleExtension>
         	 			<attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute>
          				<ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate>
          				<ruleExtensionValues>
            					<ruleExtensionValue>
              						<key>isUrgent</key>
              						<value>YES</value>
            					</ruleExtensionValue>
          				</ruleExtensionValues>
        			</ruleExtension>



	      	</ruleExtensions>
      		<responsibilities>
        		<responsibility>
          			<workgroup>ucd.IET.DCCS.FirewallSysAdmin.Workgroup</workgroup>
          			<actionRequested>K</actionRequested>
          			<priority>1</priority>
        		</responsibility>
      		</responsibilities>
    	</rule>
	<rule>
      		<documentType>RequestFirewallChange.eDoc.ChildDocType</documentType>
      		<ruleTemplate>RequestFirewallChange.eDoc.ReviewUrgentRequest.RuleTemplate</ruleTemplate>
      		<description>ReviewUrgentRequest Routing Rule</description>
      		<ignorePrevious>false</ignorePrevious>
      		<responsibilities>
        		<responsibility>
          			<workgroup>ucd.IET.AppDev.FirewallPolicyGroup.Workgroup </workgroup>
          			<actionRequested>A</actionRequested>
          			<priority>1</priority>
        		</responsibility>
      		</responsibilities>
    	</rule>
	<rule>
      		<documentType>RequestFirewallChange.eDoc.ChildDocType</documentType>
      		<ruleTemplate>RequestFirewallChange.eDoc.ReviewRequest.RuleTemplate</ruleTemplate>
      		<description>ReviewRequest Routing Rule</description>
      		<ignorePrevious>false</ignorePrevious>
      		<ruleExtensions>
        			<ruleExtension>
         	 			<attribute>RequestFirewallChange.eDoc.isUrgent.RuleAttribute</attribute>
          				<ruleTemplate>RequestFirewallChange.eDoc.ReviewCurrentConfiguration.RuleTemplate</ruleTemplate>
          				<ruleExtensionValues>
            					<ruleExtensionValue>
              						<key>isUrgent</key>
              						<value>NO</value>
            					</ruleExtensionValue>
          				</ruleExtensionValues>
        			</ruleExtension>
	      	</ruleExtensions>
      		<responsibilities>
        		<responsibility>
          			<workgroup>ucd.IET.AppDev.FirewallPolicyGroup.Workgroup </workgroup>
          			<actionRequested>A</actionRequested>
          			<priority>1</priority>
        		</responsibility>
      		</responsibilities>
    	</rule>
	<rule>
      		<documentType>RequestFirewallChange.eDoc.ChildDocType</documentType>
      		<ruleTemplate>RequestFirewallChange.eDoc.FulfillRequest.RuleTemplate</ruleTemplate>
      		<description>FulfillRequest Routing Rule</description>
      		<ignorePrevious>false</ignorePrevious>
      		<responsibilities>
        		<responsibility>
          			<workgroup>ucd.IET.DCCS.FirewallSysAdmin.Workgroup</workgroup>
          			<actionRequested>A</actionRequested>
          			<priority>1</priority>
        		</responsibility>
      		</responsibilities>
    	</rule>
	<rule>
      		<documentType>RequestFirewallChange.eDoc.ChildDocType</documentType>
      		<ruleTemplate>RequestFirewallChange.eDoc.AcknowledgeConfiguration.RuleTemplate</ruleTemplate>
      		<description>AcknowledgeConfiguration Routing Rule</description>
      		<ignorePrevious>true</ignorePrevious>
      		<responsibilities>
        		<responsibility>
          			<role>edu.iu.uis.eden.routetemplate.InitiatorRoleAttribute!INITIATOR</role>
				<approvePolicy>F</approvePolicy>
          			<actionRequested>K</actionRequested>
          			<priority>1</priority>
        		</responsibility>
      		</responsibilities>
    	</rule>
</rules>
</data>

...