ANANDHAN SUBBIAH - INSPIRE AND INNOVATE



SOA Maturity Model

Writing by Anandhan Subbiah on Friday, 28 of March , 2008 at 1:56 pm

The phases of the maturity model include:

  • Early Learning
  • Re-engineering
  • Integration
  • Maturity

 Early Learning

In the early learning phase is where an organization begins the journey to adopt SOA. During this phase is where the Enterprise Architecture function is founded and staffed with the leaders of the SOA definition and adoption program. Also, small cores of service procurement and operations resources are assembled. In Early Learning is where the first revision of the service taxonomy, roadmap, and foundational architecture decisions are made. Success metrics are defined along with a working financial model to project the investments and associated financial returns expected from the SOA roadmap. Finally, in early learning an appropriate number of hands-on proof-of-concept and pilot projects should be completed to demonstrate the viability of the services, service infrastructure, and associated architecture. As part of these pilot projects, documentation regarding key learnings and shifts in operational policy should be delivered to the organization in preparation for the ramp into the Re-engineering phase.

 Re-engineering

Re-engineering is the phase where the SOA adoption roadmap gets out of the lab an into the software factory. At this point the Enterprise Architecture team will have completed the definition of the first generation services inventory, the architecture for the services infrastructure, and have defined an approved roadmap for solution adoption. The starting team of Service Procurement and Operations will have established a “pilot light” of services and infrastructure that provide real working examples for additional engineering and project manager resources to handle and understand the shift to SOA. During reengineering a shift of resources from the built-to-order or made-for-order teams will migrate to the Service Procurement, Operations and Service Assembly teams. At this point there should a number of production solution development projects underway which leverage the services inventory and infrastructure to deliver the application functionality. During re-engineering the beach-head of the assemble-to-order software factory is definitively established.

 Integration

Once re-engineering is completed, the integration phase will begin. Integration starts when a mature service inventory and infrastructure is established and the first phase of identified solutions on the Enterprise Architecture roadmap have transitioned to SOA. The Enterprise Architecture and Service Procurement teams are fully established and at a reasonably mature state of operation. At this point, multiple and simultaneous teams will address the remaining targeted business domains on the roadmap and initiate the transition to SOA. Integration will involve continuous improvement to the service inventory and infrastructure as well as a substantial rise in the Solution Assembly and Operations teams. At this point, the established metrics and associated communications processes should be driving adjustments to the future roadmap.

 Maturity

Once re-engineering and integration phases are completed, then you enter the maturity phase of the roadmap. Maturity is a state where that the material defined aspects of the service inventory, infrastructure and organizational shifts are completed and work going forward is primarily focused on continuous improvement from the foundation established by the Integration phase. At this point the full shift to an assemble-to-order manufacturing model is completed.

It is important to pace technology investments, organizational shifts and new funding/reward policies in alignment with one another. You do not want to be crawling in one area while running in another … doing so will cause you to trip in the execution of the SOA transition.

Leave a comment

Category: General programming Concepts, Technical Articles

Seal culling - and we are in the modern era.

Writing by Anandhan Subbiah on Wednesday, 26 of March , 2008 at 8:15 am

http://www.theregister.co.uk/2008/03/26/seal_cull/

This is the modern civilization. These are the same morons who have an issue with the rest of the world not being civilized enough. These are the same immoral bunch of savages who claim high moral ground and feel that the rest of the world has not grown up yet. I can understand this happening in a country with no law but when this happens in a country like Canada you are left wondering how these guys can have families and raise children when they have the scantest regard for life. It becomes even more difficult when you have the vice-president of the world’s most powerful country wanting to kill birds that can’t even fly. I can understand if animals are killed for food but there is always the right way to do it which is not always the case . In nature animals kill to survive and there are very few rare occasions do we see them kill for the heck of it but humans are such a messed up race who clearly understand the pain and suffering that they cause but still continue on their own merry way. The biggest joke is that after doing all this most of them go to their place of worship and pray with their children and then talk about world peace .

I am not sure when it became the job of the Canadian citizens to control the seal population. I honestly wish the people who engage in this heinous act face the same grief and pain that they cause those poor seals. The world will be a lot better and justice will prevail if these savages die the most horrible death possible. How about if thier boats sink and they get slaughtered by sharks ? We can call it the culling of human pigs  and laugh about it . I sure will .

These guys are worthy candidates to be the victims in the Hostel ( the movie).

Leave a comment

Category: Animal Cruelty

Infiniti G35 Pictures

Writing by Anandhan Subbiah on Tuesday, 25 of March , 2008 at 7:21 pm

Leave a comment

Category: Cool Products

Seals Continue to Be Massacred for Their Skin: Help Save Them!

Writing by Anandhan Subbiah on Tuesday, 25 of March , 2008 at 7:11 pm

 

Despite a public outcry across the globe, every year hunters in Canada massacre hundreds of thousands of seals in order to sell their skins and rake in profits, and this year the total allowable catch has been set at 275,000 baby harp seals. Your voice is urgently needed to help urge the Canadian government to ban the killing of seals once and for all!

Sealers bludgeon seals with clubs and “hakapiks” (clubs with a metal hook on the end), drag conscious seals across the ice floes with boat hooks, and toss dead and dying animals into heaps, leaving their carcasses to rot because there is no market for their meat. Seals are also shot, but bludgeoning is preferred, because pelt buyers deduct money for every bullet hole in a seal’s skin. Click here to watch the video.

Rebecca Aldworth, a native Newfoundlander who for years has worked to stop the seal slaughter, described this scene during a previous year’s hunt:

“A movement catches my eye, and I realize with horror that a clubbed baby seal is still conscious. She is writhing around on the ice in pain, moving her flippers. She lies next to another seal who has been killed, vacant eyes staring up, blood already frozen in the ice under her mouth. It is a macabre scene—the dead and the dying huddled together here in the rain.”

We need your help! Please send an e-mail, a letter, or a fax to Canadian Prime Minister Stephen Harper urging him to support a nationwide ban on seal hunting.

Original Source : http://getactive.peta.org/campaign/seal_hunt_skins

Leave a comment

Category: Animal Cruelty

Urge Australian PM to Stop Lamb Mutilations!

Writing by Anandhan Subbiah on Tuesday, 25 of March , 2008 at 7:09 pm

Prestigious retailers and fashion designers—including Abercrombie & Fitch, H&M, and dozens of other major retailers across Europe and the U.S.—have joined the movement to stop buying wool from lambs who have endured the mulesing mutilation. In addition, Australia’s own New South Wales Farmers Association has called for an immediate ban on mulesing, and the Western Australia Department of Agriculture has announced that its own research flocks will no longer be mulesed.

Despite this overwhelming trend, the Australian wool industry continues to drag its feet on developing humane alternatives to the mulesing mutilation, instead allowing millions of lambs to be partially flayed alive every year in a cruel attempt to control flystrike.

Rather than focusing its efforts on good animal husbandry and long-term humane solutions like bare-breech breeding, the Australian wool industry wastes time and effort on cheap, cruel flystrike-control methods, like painful plastic mulesing “clips.” These so-called “alternatives” are ineffective, inhumane, and unacceptable to retailers and consumers around the world.

Please write to Australian Prime Minister Kevin Rudd right now and ask him to ban mulesing mutilations and demand that only effective, humane alternatives be used instead.

Original Source : http://getactive.peta.org/campaign/australia_lamb

Leave a comment

Category: Animal Cruelty

Songs Of Illayaraja

Writing by Anandhan Subbiah on Monday, 24 of March , 2008 at 7:06 pm

Check out these songs from Masestro Illayaraja http://anandhansubbiah.com/gallery/Songs/Illayaraja/

Leave a comment

Category: Movies, Music

Hibernate Events

Writing by Anandhan Subbiah on Thursday, 20 of March , 2008 at 11:24 am

Hibernate 3 actually implements most of its functionality as event listeners. Event listeners are always registered globally for the event that they handle. You can register them in the configuration file or programmatic ally. Either way, you will need to map your implementation of one of the interfaces to the associated types.Here is the different types of events supported by hibernate

AutoFlushEventListener

DeleteEventListener

DirtyCheckEventListener

EvictEventListener

FlushEventListener

FlushEntityEventListener

LoadEventListener

InitializeCollectionEventListener

LockEventListener

MergeEventListener

PersistEventListener

PostDeleteEventListener

PostInsertEventListener

PostLoadEventListener

PostUpdateEventListener

PreDeleteEventListener

PreInsertEventListener

PreLoadEventListener

PreUpdateEventListener

RefreshEventListener

ReplicateEventListener

SaveOrUpdateEventListener
Let us consider the following example

class : EventExample.java
public class EventExample {
public static void main(String[] args) {
Configuration config = new Configuration();

// Apply this event listener (programmatically)
config.setListener(”save-update”, new BookingSaveOrUpdateEventListener());

SessionFactory factory = config.configure().buildSessionFactory();
Session session = factory.openSession();

Transaction tx = session.beginTransaction();

// Make our bookings… seat R1 is NOT to be saved.
session.saveOrUpdate(new Booking(”charles”,”R1″));
session.saveOrUpdate(new Booking(”camilla”,”R2″));

// The confirmation letters should not be sent
// out until AFTER the commit completes.
tx.commit();
}
}

Class : BookingSaveOrUpdateEventListener.java

import java.io.Serializable;

import org.hibernate.HibernateException;
import org.hibernate.event.SaveOrUpdateEvent;
import org.hibernate.event.def.DefaultSaveOrUpdateEventListener;

public class BookingSaveOrUpdateEventListener
extends DefaultSaveOrUpdateEventListener
{
public Serializable onSaveOrUpdate(SaveOrUpdateEvent event)
throws HibernateException {
if( event.getObject() instanceof Booking) {
Booking booking = (Booking)event.getObject();
System.out.println(”Preparing to book seat ” + booking.getSeat());

if( booking.getSeat().equalsIgnoreCase(”R1″)) {
System.out.println(”Royal box booked”);
System.out.println(”Conventional booking not recorded.”);

// By returning null instead of invoking the
// default behavior‚ we prevent the invocation
// of saveOrUpdate on the Session from having
// any effect on the database!
return null;
}
}

// The default behavior:
return super.onSaveOrUpdate(event);
}
}

The objective of the listener is to prevent R1 from getting saved so the default behavior is overridden by the listener class.

Leave a comment

Category: General programming Concepts, Java, Technical Articles

Invoking a stored procedure using hibernate

Writing by Anandhan Subbiah on Thursday, 20 of March , 2008 at 10:56 am

Stored procedures may be a thing of the past but sometimes they can be very helpful. They reduce network traffic and can perform efficient and fast computations if required.

<sql-insert callable="true">
{call insertClient(?,?,?,?,?,?)}
</sql-insert>

This example may be very trivial but really complex computations can be performed using stored procedures. The drawback with hibernate and stored procedures is hibernate session cache cannot track any modifications done using a stored procedure.

Leave a comment

Category: General programming Concepts, Java, Technical Articles

Inserting SQL in the Hibernate mapping file

Writing by Anandhan Subbiah on Thursday, 20 of March , 2008 at 6:58 am

There are three tags you can use to override the default behaviour of hibernate


<sql-insert/>
<sql-update/>
<sql-delete/>
 
<class name="com.hibernatebook.legacy.Client" table="Client">
<id type="int" name="id" column="id">
<generator class="native">
</generator></id>
<property type="text" name="name" column="name"></property>
<property type="text" name="number" column="number"></property>
<property type="text" name="streetname" column="streetname"></property>
<property type="text" name="town" column="town"></property>
<property type="text" name="city" column="city"></property>  
<sql-insert>
insert into client(name,number,streetname,town,city,id,country)
values (?,?,?,?,?,?,'UK');
</sql-insert>
</class>

As you can see the advantage is you can specify default values explicitly.

The biggest disadvantage is you lose hibernates cross platform portability.

Leave a comment

Category: General programming Concepts, Java, Technical Articles

Limitation of Hibernate

Writing by Anandhan Subbiah on Wednesday, 19 of March , 2008 at 1:07 pm

First and foremost, Hibernate wants every entity to be identifiable with a primary key. Ideally, it would like this to be a surrogate key (a single column distinct from the fields of the table). Hibernate will accept a primary key that is not a surrogate key. For example, the username column might be used to uniquely identify an entry in the user table. Hibernate will also accept a composite key as its primary key, so that the username and hostname might be used to form the primary key if the username alone does not serve to identify the row.

In the real world, things do not really work like that. Any database that has been around the block a few times is likely to have at least one table for which the primary key has been omitted. For instance, the contents of the table may not have needed to be involved in any relations with other tables. While this is still bad database design, the error is only exposed when Hibernate tries to map objects to data. It may be that adding a suitable surrogate key column is an option—when this is the case, we urge you to do so. In practice, however, the fundamental schema may not be under the developer’s control, or other applications may break if the schema is radically changed.

In most scenarios, a developer will be able to arrange the creation of views or stored procedures. It may be possible to create the appearance of a suitable primary key using these if no other options present themselves, but you should consult with your database administrators, since a table for which no true primary key can be obtained is likely to cause long-term corruption of your data.

Finally, if you can neither change a broken schema nor add views or stored procedures to ameliorate its effects, you have the option of obtaining a pure JDBC connection.

Leave a comment

Category: General programming Concepts, Java, Technical Articles

  • Register
  • anandhansubbiah.com

    Anandhan Subbiah

    I always wanted to share the things I have learnt over the years as a software engineer and I honestly believe that I can achieve that using this blog . I will publish technical articles related to design and coding. I will also review cool products and presentthe issues I have faced  using diffrent applications.I am not a major animal activist by any means but i react  to killing without reason and inhumane treatment of animals so there will be some articles linking to PETA.org