KC Technical Architecture

Agile software development, the principles. Principle 11: The best architectures, requirements, and designs emerge from self-organizing teams.

This is the eleventh of 12 posts about the principles of agile software development. Purpose is to go back to the start of the agile manifesto (http://agilemanifesto.org/principles.html) and discuss the implementation of the 12 principles in real life software engineering. Goals of agility are to go deliver software of higher quality, faster, with a higher acceptance to end-users and able to follow the changing business requirements to strive for competitive advantage.
 
The question is: is this going to work in practice or is this only based on a nice marketing and sales story.
 
Principle 11: The best architectures, requirements, and designs emerge from self-organizing teams.
 
For a long time the engineering expertise (and also software engineering) was based upon the condition that you worked with specialists. These specialists emerged from the principle of division of labour and made it possible for these specialists to focus their attention on their specialism and create the best solution within their field of expertise. The Interaction designer designed a user interface, the architect created a global systems model, developers created code and infrastructure specialists created the necessary environment to run the application on.
 
Everyone was specialized and delivered the best solution within their capabilities. However when all these components where put together, noting worked. It is an illusion that specialists can design and foresee everything beforehand.
 
Within agile projects the solution is to use a self organizing team to perform these tasks. This team may consist of specialist, but this is not a requirement. The requirement of this team is that they work together and self-organize all aspects of the systems to be delivered. This team is permitted to make errors and invent their solutions, provided that they deliver and evaluate frequently (retrospective) and learn from their successes (and errors).

  Read the rest of this entry »

Enhancing fast queries using “Tapio-Indexes”

During the years I have a lot of times encountered performance problems that ended up to be fast queries (less than 10ms) which are executed very much. In these situations the execution plans, from such queries can look like:

 

OPERATION            OPTIONS                 OBJECT# NAME                        
-------------------- -------------------- ---------- -----------------------------------
SELECT STATEMENT                                     .                          
SORT                 ORDER BY                        .                          
TABLE ACCESS         BY INDEX ROWID           120713 XXX.TABLE_WITH_MANY_COLUMNS
INDEX                RANGE SCAN               121558 XXX.INDEX_WITH_FEW_COLUMNS 

 

In a lot of cases we deal with a query for example which is returning fewer columns than exists in the involved table like four, from an involved table having twenty columns. Although the execution plan looks already pretty “OK”, it still results in a query which is in top three most resource taking queries.

 

To enhance the query we can use “Fat Indexes” or nowadays better known “Tapio Indexes” (I call them like that nowadays). What are these kind of indexes…. In principle nothing really new, but for me a couple of years ago an (re)eye opener by Tapio Lahdenmaki. This Finish independent database performance consultant and instructor gave a presentation at Miracle Open World 2007 in Denmark, I attended. Tapio can present this topic in a very special way, and in my opinion “his message” should be known by all developers and dba’s.

Read the rest of this entry »

Session announcement: Oracle Service Bus (25 feb 2009)

Just wanted to draw your attention to a "Knowledge Center" session at AMIS this wednessday (25 feb 2009, starting at 16:30). It concerns the new Oracle Service Bus (previously the BEA Aqualogic Service Bus), and will be presented by former collegue Jeroen van Wilgenburg, now working at Xebia. Jeroen has worked with the OSB on his current project, so he will be able to give us real-life experiences, not just a "summary of features"! For more information, and information on how to register, take a look at the AMIS Agenda: http://www.amis.nl/activiteiten.php?id=681&preview=&draft=

 

Oracle Workflow, a brief introduction – Part 2 Building a simple workflow

 

In this blog I will show you how easy it is to build a process with Oracle Workflow. This demo consist of an automatic step (plsql function) and a FYI notification. The process will be deployed in the workflow environment described in my previous blog (Part 1).

 

Workflow Builder
To build a process you need Oracle Workflow Builder 2.6.3.5. The install file can be downloaded from the following url: www.oracle.com/technology/software/products/workflow/index.html

  Read the rest of this entry »

Accessing JVM arguments from Java (to determine if JVM is running in debug mode)

The other day, I was using the JDeveloper debugger to locally debug some code in an application that uses (and therefore becomes part of) an Oracle Coherence data grid. As it turned out, using step-by-step debugging in a JVM that is part of a Coherence cluster has significant impact on the rest of the grid. The other nodes see the node constantly alternating between being responsive and being frozen, and keep taking measures to ensure the "health" of the grid. As Coherence values "health" or better, "consensus" within the grid over response times, this regularly causes processing on the other nodes to temporarily stop as well.

To remedy this problem, I wanted to alter the "grid initialization" logic in my application to check whether the JVM is running in debug mode or not, and if so, to not do the grid initialization. I checked the java command line with which JDeveloper runs an application in debug mode, and found that there is a JVM argument  "-Xdebug" that is indicative of this fact. But as this is not a "custom argument", i.e. it does not follow the "-Dname=value" syntax, you won’t be able to obtain this argument at runtime using System.getProperty(). Read the rest of this entry »

Mr. Thomas Kyte goes Dutch – Guru4Pro

Smiley 

We Dutchies are in luck.

Mr. Thomas Kyte will be in Holland on the 3th of November presenting "11 Things about 11g" on the Logica premises during a Logica Guru4Pro event in Amstelveen. Besides this presentation, there will be the opportunity to askTom the questions you always wanted to ask him. You will be welcome from 14:30, and although the annoucement is in Dutch, Tom will present in English and probably also the "askTom" session afterwards will be answered in English. 

HTH

<M/>

The “X” Product – An X(ML) Database Opportunity?

"Exadata – Extreme Performance Warehousing", that’s how the presentation on the last Friday morning from Oracle Open World started (Orig. Presentation Title was "Oracle’s New Database Accelerator: Query Processing Revolutionized") while speaking about the new database machine. And indeed it was a revolution and it took the blogosphere by night. My notes from this session are already "for historic use" because a lot of people already blogged about it.

Another nice side effect is that Kevin Closson started blogging again. If you want to know all about there is to know regarding the "Exadata" hardware then you now can read up on Kevin’s: "Exadata Posts" page and FAQ’s. It must have been hard for Kevin not to blog about this cool piece of machinery and its smart database software.

 

So if you want you can skip the following, because it is old news

Smiley

.... Read the rest of this entry »

Oracle Workflow, a brief introduction – Part 1 Setting up an environment

Maybe the following question will arise after reading the title: Oracle Workflow isn’t that obsolete technology?

The answer can be very short: Yes it is. (Read the SOD on http://www.oracle.com/technology/products/ias/workflow/workflow_sod.html)
But it’s still interesting enough to dive into it. Oracle Workflow is heavy used in the E-Business Suite and also used by Warehouse Builder, with, in both cases, workflow customizations. There are also a lot of customers using the standalone variant. Imagine they all want to convert to Oracle BPEL…  Then it would be nice to know something about it.

In the next (at least) 3 blogs, i will give you a brief look into the world of Oracle Workflow, consisting of the following subjects:

•    Building a simple workflow
•    Setting up a workflow with email communication
•    Using the Business Event System

What do you need for a start?
Download the Oracle database 10.2.0.1 and the corresponding Companion CD from OTN. You also need the Workflow builder software (in a later stage). It can be found at the following link: http://www.oracle.com/technology/software/products/workflow/index.html

The basic installation of the database software with a starter database (I used the EE) will be enough to install and run the Workflow server.
.... Read the rest of this entry »

Oracle Data Mining meets performance method “GAPP”

Sunday 21 September 2008 at Oracle Open World, I had the opportunity to present my method "GAPP" once more (HOTSOS 2008 and Planboard may 2008). This time I also mentioned how the method can be used with Service Oriented Architectures (SOA). For people not knowing what "GAPP" is all about I give a small introduction to the method. I also like to tell you why I started with “GAPP” in the first place and what the added value is of the method above other methods.

"GAPP" means General Approach Performance Profiling and can be used to find out where in your architecture the most wait time variance can be explained from your business process. "GAPP" makes it possible with very little data, in higly complex technical infrastructures, still be able to find the performance bottlenecks for a specific business process. The nice thing about the method is that it is not only able to pinpoint a bottleneck which is already there, it is also able to pinpoint a future bottleneck in a normal running system. This is something what only "GAPP" can do.

What makes “GAPP” special:

  • The method can analyse the full infrastructure, so from front-end to back-end
  • The method is not focussing on one piece of the infrastructure, like only the database
  • The method is able to predict how the response time of a business process will react on changes in involved factors
  • The method is able to predict when a certain bottleneck will evolve to a real problem

.... Read the rest of this entry »

Extreme performance introduced by patchset 11.1.0.7 smart scan

Larry yesterday did his keynote here at Oracle Open World introducing the "Oracle(R) Exadata Storage Server". This morning I attended a session about the technical details behind the server. In principal the server works with 8 nodes running RAC on Oracle Enterprise Linux 5. For the storage management ASM is used and since 11.1.0.7 smart scan has been introduced. Smart scan has been designed for very big data sources used in queries, like in Data Warehouses, where tables from tera bytes are common. In principle the following is accomplished using smart scan:.... Read the rest of this entry »