Monday, July 12, 2010
Wednesday, June 23, 2010
The "Pull" mode process!
This is my favorite subject that is applicable in Marketing, Production, Consulting and also in Philosophy.
The question here is what is the best method of process control?
a. should a process push its output to the next stage? or
b. should a process pull its input from the previous stage?
In marketing:
Do we sell the product to customer or
Do we make the customer buy our product?
Who should be an active participant of a transaction?
Is it the giver?
or
the taker?
Pull mode is the natural and sustainable model in most of the situations. A process should be designed to make the next stage "pull" the product of the previous stage.
A customer sees the "value" in the product and starts the buying process.
Once the "buy" in initiated, all the necessary steps will be executed to fulfill the request.
The skill of designing such a process lies in reducing the "waiting time" of the customer when he requires the product. Depending on the type of the product, the sufficient inventory should be maintained. But even in the case of customer to wait for a reasonable period, it is fine. (As the value is attractive, customer will wait!)
Pull will gently fill a gap and add value to the customer.
Push will generally "replace" something at the customer. (or cause over consumption or wastage!)
Present World human population is suffering from a "Great PUSH Syndrome" in all the production to consumption processes. Customer has really no time even to "think" about it. That is the force of PUSH in this world as of today.
I can only hope customers and the producers will understand the gentle nature of "pull" process as explained and make the world a better place by using it!
Wednesday, June 16, 2010
Send-off to Prasad (Good Luck Prasad)
Today, after having spent 4+ years at Oracle in Enterprise Manager Grid Control Strategic Customer program, worked with internal and external customers, I am moving on. My Oracle colleagues have given me a wonderful send off treat at Little Italy. This picture is when Gagan is presenting me the gift of "Kautilya's Arthasastra (Three volume set!)"
I would thank everyone of my colleagues who made my stay at Oracle a really memorable one. It has just gone in a jiffy starting with internal customers, training the Japan team, working with customers in Australia, Korea, Hongkong, China, India, Germany and North America. The trips to Oracle HQ for Open World 2006 and 2009 and CAB are very memorable. It is the demo booths, sessions and Hands on Labs and various activities around helping customers achieve their goals and enable them serve their customers better!
I wish all my Oracle colleagues all the best!
Saturday, May 1, 2010
Maximum Security Architecture
In one of the past posts, I have just listed different technologies that are available in the Data Security area. (in Feb 2008)
With Oracle 11g database, the security focus has taken more methodical and architectural approach.
To put things together data security is placed under the following broad (four) categories:
1. User Management
2. Access Control
3. Encryption and Masking
4. Auditing/Monitoring
Just like Maximum Availability Architecture for Highly available architectural patterns, we can call this as Maximum Security Architecture for highly secure architecture....
One should choose the required options and implement it properly to really make the data SECURE!
This Link gives more details of MSA on Oracle 11g database.
With Oracle 11g database, the security focus has taken more methodical and architectural approach.
To put things together data security is placed under the following broad (four) categories:
1. User Management
2. Access Control
3. Encryption and Masking
4. Auditing/Monitoring
Just like Maximum Availability Architecture for Highly available architectural patterns, we can call this as Maximum Security Architecture for highly secure architecture....
One should choose the required options and implement it properly to really make the data SECURE!
This Link gives more details of MSA on Oracle 11g database.
Saturday, April 10, 2010
Enterprise Data Fabric - data grids
Enterprise Data Fabric or "in memory data grid" can improve the distributed or clustered application performance dramatically.
The Problem:
Distributed applications need to share the "application objects" across multiple processing nodes. As the application objects are not "relational" there is a need for the Object Relational Mapping (ORM) to share the application objects using a relational database.
The ORM technology involves converting the object into a set of relational (table/column) information and and turns slow.
The Solution:
Using an in-memory data grid to store the application objects on distributed multiple node cache and managing the transactions in once and only once manner.
This will dramatically improve the performance and scalability of the application.
This is also going to be a key enabler of the Private PaaS Cloud Computing in future.
IBM WebSphere eXtreme Scale and Oracle Coherence are the examples of Distributed Caching Platforms that provide Enterprise Data Fabrics or in-memory data grid solutions.
Let us see how this technology shapes up the future!
The Problem:
Distributed applications need to share the "application objects" across multiple processing nodes. As the application objects are not "relational" there is a need for the Object Relational Mapping (ORM) to share the application objects using a relational database.
The ORM technology involves converting the object into a set of relational (table/column) information and and turns slow.
The Solution:
Using an in-memory data grid to store the application objects on distributed multiple node cache and managing the transactions in once and only once manner.
This will dramatically improve the performance and scalability of the application.
This is also going to be a key enabler of the Private PaaS Cloud Computing in future.
IBM WebSphere eXtreme Scale and Oracle Coherence are the examples of Distributed Caching Platforms that provide Enterprise Data Fabrics or in-memory data grid solutions.
Let us see how this technology shapes up the future!
Tuesday, March 23, 2010
migration, upgrade, enhancement
Migration of a software application from one platform (32bit OS1 on xxx hardware) to another platform (64bit OS2 on yyy hardware)
Upgrade of a software application involves upgrading the software from a lower version to a higher version (like XX version of database to YY version of database)
Both the above activities are technical and no business benefit is directly attributed to this type of activity on the software applications.
An application enhancement will involve providing a new feature or functionality to the end-user of the application. Sometimes when the application is majorly enhanced, the new enhanced application can get migrated to a new platform and/or the underlying technology stack upgraded to higher version.
The key question I am dealing in here is:
When there is no "enhancement" involved, purely a migration and/or upgrade is planned:
a. is it good to do both together in a big bang? OR
b. is it good to migrate first to the new platform and upgrade the software later? OR
c. is is good to upgrade the software first and then migrate to new platform?
a. One can do it together but if there is an issue it is difficult to find the cause of the problem due to new platform or new software version.... each can point fingers at the other....
b. is a good choice if the platform migration is more complex than software upgrade.
c. is a good choice if the software is more stable on the higher version and if any specific platform related issues are fixed in the higher version.
If the software application has multiple tiers with database, application server etc., one should carefully choose the overall path of migrate and upgrade. Making sure the impact on the business SLAs is minimized; It is also important to have a very good "back-out" plan, if something badly goes wrong!!
Upgrade of a software application involves upgrading the software from a lower version to a higher version (like XX version of database to YY version of database)
Both the above activities are technical and no business benefit is directly attributed to this type of activity on the software applications.
An application enhancement will involve providing a new feature or functionality to the end-user of the application. Sometimes when the application is majorly enhanced, the new enhanced application can get migrated to a new platform and/or the underlying technology stack upgraded to higher version.
The key question I am dealing in here is:
When there is no "enhancement" involved, purely a migration and/or upgrade is planned:
a. is it good to do both together in a big bang? OR
b. is it good to migrate first to the new platform and upgrade the software later? OR
c. is is good to upgrade the software first and then migrate to new platform?
a. One can do it together but if there is an issue it is difficult to find the cause of the problem due to new platform or new software version.... each can point fingers at the other....
b. is a good choice if the platform migration is more complex than software upgrade.
c. is a good choice if the software is more stable on the higher version and if any specific platform related issues are fixed in the higher version.
If the software application has multiple tiers with database, application server etc., one should carefully choose the overall path of migrate and upgrade. Making sure the impact on the business SLAs is minimized; It is also important to have a very good "back-out" plan, if something badly goes wrong!!
Thursday, March 11, 2010
Performance Analysis & Tuning
Performance of any system is defined as "accomplishment of a 'task' measured against agreed quality, cost and time."
The software tasks are primarily divided into "transactional" tasks and "analytical" tasks.
One big area in Software Systems management is the Performance Analysis and Tuning.
How to measure the performance?
The basic thing needed for "Performance" is the "Measurement" - What is to be measured and How?
Generally people measure the "response time" (time taken to complete the task) if the task is transactional
and
throughput (number of tasks performed in a fixed unit of time) if the task is analytical.
So, in both the cases what is measured is "time". What happened to the original definition that consisted the "quality" and "cost"?
In Software systems the "tasks" are automated and once the automation is tested well, "quality" is guaranteed for the task.
The "cost" of performing the automated task of a software application is the computing resources (CPU and memory) that are allocated to the application and how well the application can use additional resources to carryout the tasks.
Assuming the application can take full advantage of available CPU and Memory resources allocated to it, "TIME" becomes the best measure to analyze the performance of a software system.
How to Tune the system?
Reduce the amount of time taken to perform the 'task'. As simple as that.
Is it that simple?
Let us take a close look at this approach. Can we really reduce the time taken to perform a task?
Answer is "NO". If a task takes "x" amount of seconds to do, it takes "x" seconds to finish it.
But,
Every Software task has two components of this "time". What are they?
a. The time taken to actually DO the work
b. The time taken while waiting for a dependent sub-task to get completed.
So, Now if we ask the same question Can we reduce the time taken to perform a task?
The answer is YES - by reducing the time "waiting"!
Performance Tuning is all about scheduling and executing the sub-tasks of a "task" optimally such that the waiting time is minimized (if not completely removed) thereby using the available resources optimally and reducing the "cost" of performing the "task" That is the secret of performance tuning!
The software tasks are primarily divided into "transactional" tasks and "analytical" tasks.
One big area in Software Systems management is the Performance Analysis and Tuning.
How to measure the performance?
The basic thing needed for "Performance" is the "Measurement" - What is to be measured and How?
Generally people measure the "response time" (time taken to complete the task) if the task is transactional
and
throughput (number of tasks performed in a fixed unit of time) if the task is analytical.
So, in both the cases what is measured is "time". What happened to the original definition that consisted the "quality" and "cost"?
In Software systems the "tasks" are automated and once the automation is tested well, "quality" is guaranteed for the task.
The "cost" of performing the automated task of a software application is the computing resources (CPU and memory) that are allocated to the application and how well the application can use additional resources to carryout the tasks.
Assuming the application can take full advantage of available CPU and Memory resources allocated to it, "TIME" becomes the best measure to analyze the performance of a software system.
How to Tune the system?
Reduce the amount of time taken to perform the 'task'. As simple as that.
Is it that simple?
Let us take a close look at this approach. Can we really reduce the time taken to perform a task?
Answer is "NO". If a task takes "x" amount of seconds to do, it takes "x" seconds to finish it.
But,
Every Software task has two components of this "time". What are they?
a. The time taken to actually DO the work
b. The time taken while waiting for a dependent sub-task to get completed.
So, Now if we ask the same question Can we reduce the time taken to perform a task?
The answer is YES - by reducing the time "waiting"!
Performance Tuning is all about scheduling and executing the sub-tasks of a "task" optimally such that the waiting time is minimized (if not completely removed) thereby using the available resources optimally and reducing the "cost" of performing the "task" That is the secret of performance tuning!
Wednesday, February 17, 2010
Platform As A Service - Private Cloud
Sometime back, Oracle has published this white paper.
This gives a clear vision of where Oracle is heading in the technological direction of Cloud Computing.
By standardization on the technology stack for enterprise application and fusion middleware enhancements, the PaaS seems the natural direction for enterprises in medium term.
Link to my past blog post on Private Clouds Here.
This gives a clear vision of where Oracle is heading in the technological direction of Cloud Computing.
By standardization on the technology stack for enterprise application and fusion middleware enhancements, the PaaS seems the natural direction for enterprises in medium term.
Link to my past blog post on Private Clouds Here.
Tuesday, February 9, 2010
SOA Governance standalone? or merge with IT Management?
"Governance" in general and SOA Governance in particular has been a buzz word for sometime now.
My definition for Governance is making sure that a "thing" works as it is supposed to work. Replace the "thing" with SOA, IT, state, country etc.,
One of the emerging trends for past few years is "Business Transaction Management" for managing the composite IT applications configuration, performance and "Governance"
Traditionally the IT management tools and frameworks have looked at the IT as operations management, quality management, performance management, configuration management etc., disciplines.
In this trend the problem of IT management is from a business point of view. That is good. So, what is happenning in the technology?
1. Application Performance Management
2. Composite Application Management using run time discovery of relationships between the components (services) of the application
3. Business transaction management tools
Here is the question:
Will the new trend merge in traditional IT Management tools?
or
A standalone set of new SOA Governance tools emerge due to the new trend?
Based on my "UNIX" philosophy, I think an integrated set of tools that consist of traditional IT management with the new SOA Governance would be a best fit to tailor to the needs of contemporary corporates!
Let us wait and see....
My definition for Governance is making sure that a "thing" works as it is supposed to work. Replace the "thing" with SOA, IT, state, country etc.,
One of the emerging trends for past few years is "Business Transaction Management" for managing the composite IT applications configuration, performance and "Governance"
Traditionally the IT management tools and frameworks have looked at the IT as operations management, quality management, performance management, configuration management etc., disciplines.
In this trend the problem of IT management is from a business point of view. That is good. So, what is happenning in the technology?
1. Application Performance Management
2. Composite Application Management using run time discovery of relationships between the components (services) of the application
3. Business transaction management tools
Here is the question:
Will the new trend merge in traditional IT Management tools?
or
A standalone set of new SOA Governance tools emerge due to the new trend?
Based on my "UNIX" philosophy, I think an integrated set of tools that consist of traditional IT management with the new SOA Governance would be a best fit to tailor to the needs of contemporary corporates!
Let us wait and see....
Wednesday, February 3, 2010
Hybrid Columnar Compression (HCC)
Oracle has introduced a new data storage technology in Exadata V2 called Hybrid Columnar Compression. This method uses a "compression unit" that is made of several rows; it is physically stored in compressed "column vectors" in multiple blocks of storage.
There are two flavors of columnar compression that are optimized for "QUERY" (warehouse compression better for executing queries) and "ARCHIVE" (best data storage for archive compression)
Each of the QUERY and ARCHIVE come with another modifier to set the "LOW" or "HIGH" compression mode.
This technical white paper gives an overview of the new technology.
This article on Oracle Magazine may also be useful in understanding this new feature.
More data can be stored in "less" space. Good!
There are two flavors of columnar compression that are optimized for "QUERY" (warehouse compression better for executing queries) and "ARCHIVE" (best data storage for archive compression)
Each of the QUERY and ARCHIVE come with another modifier to set the "LOW" or "HIGH" compression mode.
This technical white paper gives an overview of the new technology.
This article on Oracle Magazine may also be useful in understanding this new feature.
More data can be stored in "less" space. Good!
Subscribe to:
Posts (Atom)
