Friday, February 27, 2009

Why BPM?

In today’s business scenario, People are looking for a solution that can provide the end to end visibility of the business so that they have a better control on their business. People may have some artifacts in their existing business model where business driven changes are frequent. the artifact can be likeA business groups are faced with a dynamic, ever-changing business environment, IT groups are looking for ways to deliver new solutions while leveraging and managing their existing infrastructure. A robust Business Process Management System (BPMS) can address the needs of both groups in a collaborative manner. The question comes in to the mind that in which areas the BPM solutions are useful?

We Need Business Process Management Because
Enterprises do not have adequate understanding of or control over their processes.
BPM solves business problems not addressed by packaged software.
Know what's going on in your business to know how to stay on track.
Manage the 'entire' process, not just the fragments.
Change your processes without needing to change out your software.
Innovate in your business, do it differently, change it quickly.
Have analytics at your finger tips based on current process data.
Perform processes consistently.
Management might have a model of an ideal process, but the actual execution of that process might be strikingly different, leading toward redundancy, error, gaps, and inefficiency.
Businesses without agile control over their processes often impede their own success.Run your business the way you want, not the way the software wants.


To understand the terminology of BPM, we can define it

“Business Process Management is the ability to have end-to-end visibility and control over all parts of a long-lived, multi-step information request or transaction that spans multiple applications and people in one or more companies.”- Hurwitz Research Group

Story of Business process management:

Business process management (BPM) is a method of efficiently aligning an organization with the wants and needs of clients. This approach increases the effectiveness and efficiency of business. BPM attempts to continuously improve processes - the process to define, measure and improve your processes – a ‘process optimization' process. Organizations often start a BPM project or program with the objective to optimize an area which has been identified as an area for improvement. Business Process Management encompasses other process elements, such as Total Quality Management (TQM), Six Sigma, Performance Management, etc.Both of the concepts SOA and modeling go into the definition of Business Process Management. We can say that using software technology, BPM acts as the bridge between Information Technology (IT) and Business.
Business process management Cyclic Stages:
BPM have some certain stages in their life cycle which are listed below:
Design
Process Design encompasses both the identifying of existing processes (“As-is” and designing the "to-be" process). Areas of focus include:· representation of the process flow,· the actors within it,· alerts & notifications,· escalations,· Standard Operating Procedures,· Service Level Agreements,· And task hand-over mechanisms.Good design reduces the number of problems over the lifetime of the process. The aim of this step is to ensure that a correct and efficient theoretical design is prepared.
Modeling
By knowing the theoretical design, we implements it on the different variable to know how it respond under different circumstances.
Execution
As a response to these problems, software has been developed that enables the full business process (as developed in the process design activity) to be defined in a computer language which can be directly executed by the computer. The system will either use services in connected applications to perform business operations (e.g. calculating a repayment plan for a loan) or, when a step is too complex to automate, will message a human requesting input. Compared to either of the previous approaches, directly executing a process definition can be more straightforward and therefore easier to improve. However, automating a process definition requires flexible and comprehensive infrastructure which typically rules out implementing these systems in a legacy IT environment.Business rules have been used by systems to provide definitions for governing behavior, and a business rule engine can be used to drive process execution and resolution.
Monitoring
Monitoring encompasses the tracking of individual processes so that information on their state can be easily seen and statistics on the performance of one or more processes provided. An example of the tracking is being able to determine the state of a customer order (e.g. ordered arrived, awaiting delivery, invoice paid) so that problems in its operation can be identified and corrected. The degree of monitoring depends on what information the business wants to evaluate and analyze and how business wants it to be monitored, in real-time or ad-hoc.
Optimization
Process optimization includes retrieving process performance information from modeling or monitoring phase and identifying the potential or actual bottlenecks and potential rooms for cost savings or other improvements and then applying those enhancements in the design of the process thus continuing the value cycle of business process management.

PRPC System Architect

To be a system architect you should have following traits listed below:
Abstract thinker
Concise communicator
Wise decision-maker
Experienced business-focused technologist


A system architect must posses flowing responsibilities so that they can implement the business solution into technological solutions. The responsibilities to
Create and preserve conceptual integrity across multiple systems.
Promote architectural goals such as adaptability.
Understand the (business) problem domain, identifying requirements and constraints.
Understand technological possibilities.
Understand technological limits.
Identify risks and perform meaning feasibility studies

Technical Knowledge and Skills

The system architect is the Renaissance man (or woman) of computing, at least relative to the organization is which he/she works. Sometimes derogatorily called a "jack of all trades, master of none", the system architect should, indeed, be a jack of all trades, but will be a master of some, advanced in others, and at least intermediate in just about everything else. In a larger corporate environment today (or really in any organization doing distributed computing), the system architect should have knowledge and skill in most or all of the following areas.

Network Infrastructure

Routers, Switches and Hubs. Differences between devices, backplanes, configuration, throughput.Link Layer, Control and Routing Protocols.Higher Layer Protocols. DNS, HTTP, FTP, SMTP, Telnet, POP, IMAP, RPC, NFS, NetBIOS, SMB.Network Monitoring and Administration.Firewalls. Proxies, wrappers, relays, stateful inspection.

Server Platforms

Server Hardware. CPU chip, scalability (SMP, NUMA, MPP, clustering), system bus technology and throughput, I/O subsystem technology and throughput, RAID, SCSI.Server Operating Systems. Memory management, thread and process models, interprocess synchronization and communication, filesystems.Relational Database Management Systems. Disk and network I/O, thread and/or process model, physical database layout.File and Print Services.System Monitoring and Administration.

Middleware

Directory and Security Services.Remote Procedure Calls.Message Queuing.Message Brokering (Publish and Subscribe).Object Request Brokers.Transaction Processing Monitors.

Software Development

Development Process and Methodologies.Development Languages. 3GL (C, C++, Java, Ada, Pascal, COBOL, Fortran), 4GL (PowerBuilder, Visual Basic, Centura, Delphi), Enterprise (Forte, Dynasty, Seer HPS, Unify, Uniface, JAM), Miscellaneous (perl, UNIX shell, Smalltalk, CLOS, Eiffel)Testing and Quality Assurance.Application and Performance Monitoring.Client PlatformsGUI.Threading.Configuration Management.

Wednesday, February 18, 2009

PRPC code: SQL QUERY

Save:
External database
{SQLPage:SQLErrorPage}
UPDATE REPOSITORY.tabledetails
SET statusCode={.pyStatusWork}
WHERE name={.Name}
AND tr={.TransRef}

General approach to create Work Object with error handling:

Create new page and add model
Call add work activity on pywork page or pyworkCover
Commit by calling “Call WorkCommit”
If error then add message to “Param.Message” at the page
Call error handling flow.

PRPC Code: Lock/Unlock the string

Lock the string:
return tools.getDatabase().getLockManager().lock(lockString, false);
Unlock the string
return tools.getDatabase().getLockManager().unlock(lockString, false);

PRPC Code: Java code to check the privilege

// Check if the requestor has access ...
// The reqeustor must have either one of the Roles specified
// OR access to one of the privileges specified.
// If both lists are empty the the requestor passes this access check
// Also a list is considered empty if not defined correctly (ie not a page list of the expected class)
// The privilegeList property expects a Page List of Embed-Rule-PrivilegeSecurity

// find tools, as usual
PublicAPI tools = null;
PRThread thisThread = (PRThread)ThreadContainer.get();
if (thisThread != null) {
tools = thisThread.getPublicAPI();
}
ClipboardProperty privilegeList = RulePage.getProperty("pyPrivilegeList");
String strClassName = RulePage.getString("pyClassName");
if (privilegeList.size() == 0) return true;
Dictionary dict = thisThread.getDictionary();
boolean hasSecurity = true;
boolean privsEmpty = true;
String nextPrivValue = null;
String nextPrivClass = null;
ClipboardProperty nextPrivProp;
ClipboardPage nextPrivPage;
Iterator iter = privilegeList.iterator(); // loop over the list of privileges
while (iter.hasNext()) {
nextPrivProp = (ClipboardProperty) iter.next();
nextPrivPage = nextPrivProp.getPageValue();
nextPrivValue = nextPrivPage.getString(".pyPrivilegeName");
if (nextPrivValue == null || nextPrivValue.equals("")) return true;
if (nextPrivValue.equals(PrivilageToCheck)) hasSecurity = false;
} //end more privs
return hasSecurity;