8 Sept 2009

What is g in Oracle's grid computing?


Oracle defines Grid Computing like this -
With grid computing, groups of independent, modular hardware and software components can be connected and rejoined on demand to meet the changing needs of businesses.
What does it exactly mean?
We already know what is parallel computing. A complex task is dividided into smaller parts and each part is processed independently by a computer. Then the outputs are combined to get final result.
How does grid computing differ from this parallel computing?
Grid computing is an abstract (or virtualization, as Oracle says) concept. A grid can be an infrastructure grid, an appllication grid, an information grid and so on.
What - getting more confused? Ok, please read on.
In early days (~ 1980s) of database, the relational database management was starting to gain populartity. In RDBMS terms, a customer buys products and a transaction is generated. All these info like customer, product, transaction etc. are stored in RDBMS. They are linked together (by foreign keys, in 3rd normal form). So from a high level view, customer, product, transaction are all part of RDBMS.
Now come to the present days. We are gathering data like never before! Besides RDBMS, we now have lots of different stuffs like OLAP (Business Intelligence/Data Warehouse etc.), OLTP (transactional data), BPEL (Business Process Execution Language), Web services (using XML), OWB (Oracle Warehouse Builder) etc.
The grid is collection of all these - i.e. different applications and data which speak with one another.
Oracle has product of almost everything nowadays - which is wrapped around a buzzy name called Fusion Middleware. These components are designed so that one component (say OWB ) can interact with another (say core Oracle database). This constitute an architectural grid.
The relational data on your RDBMS can be termed as information grid.
There's another aspect of grid. Take Oracle Real Application Cluster or RAC. Here multiple instances of database are inter-connected to safeguard single point of failure. This is an example of infrastructure grid. Everything is part of grid. It is a concept. It could have been told as Matrix computing too. (Did you enjoy Matrix series of movies?)
Now you know what the buzzword Grid computing mean!

What is Oracle Fusion Middleware (OFM) and Service Oriented Architecture (SOA)?


If you are not sure about what are these things and try to have a look at Oracle's website, there is a good chance that you might find yourself confused.
That's quite expected. Oracle's website is for marketing their product. It's not their interest to describe their products in a way that people think it is there is no magic about it!
So, here I try to explain the things in non-geeky terms.
The Fusion Middleware conisists of Oracle's non core-database products - some of which are not actually middleware!
This includes Oracle's Developer suite (Forms & Reports), Java related tools, web logic server, content management etc. OFM depends on open standards such as BPEL, SOAP, XML and JMS.
Oracle SOA is a part of OFM.

What is SOA?

The main essence of SOA is that applications will talk with each other in a language (i.e. data format, process steps) which is understood by all others applications communicating with.
SOA is about reuse.
SOA helps business to move, change, partner and re-invent itself with ease and grace.
SOA extends idea of reuse not only to web services but also with business services.
SOA components are loosely coupled.
SOA can contain web service, BPEL etc.
Web service
Example, you throw a postcode to Yahoo Geocoder and it gives you back latitude, longitude of that post code.
You ask for price of particular item to a website, it suplies you the price.
Usually, web service results are returned in XML format to ensure universal compatibility.
In SOA segment, you will often hear the term "Orchestration". What does it mean?
If you seen an orchestra, you know that conductor just draws some invisible drawings in mid air by moving his magic wand from one side to another. However, musicians can decipher his rhythm and plays their instruments so that every one plays same tune at same pace.
Orchestration in SOA has similar meaning. It ensures that all applications under SOA, know how to be in sync with other applications in the group.
But how orchestration is implemented?
It is done via BPEL or Business Process Execution Language.
BPEL is a tool, using which you can draw how data moves from one application to another. For those who have not used it, it is like a Visio flow chart diagram editor. But, when you draw objects in BPEL, you tell them what to do. You instruct them where to read data from, how to process it and where to send output after processing finished. So, basically it is a graphical tool to define business process. Without BPEL, the whole process will look like thousands of lines of PL/SQL (or Java or C++ or whatever) codes!
Behind the scene BPEL still writes codes - but it just make simpler (!) for any business user to understand and define the process. Now whether that is good or bad is debatable - I am just outlining the concept here.
So, BPEL works to integrate several applications. BPEL usually follows XML standard as interface to several components.
Let us take a bigger example. Your supplies sends you a file which contains all the products, quantities and unit price you ordered for. You need to update your inventory accordingly. Now assume that your supplier quoted the price in € but you need to put that in £ in your database. Using absolute minium technology, you need to write a small program to convert € to £ while loading that data to your system. But if you are using BPEL, you can visually draw the program!

6 Sept 2009

What is best Smart Phone?

I was looking in market for a comprehensive feature rich smart phone. But more I looked, more I got confused!
Although iPhone is probably current market leader, but it has two serious drawbacks - too pricey and comes locked to network! Though it is possible to jailbreak iPhone, it invalidates warranty. Too bad :(
Nokia's N97 is again too pricey. Its user interface is no match to that of iPhone's. Although a separate key board does help a lot.
I am currently an old generation Palm PDA user. So, naturally I keep an eye on its next release Palm Pre model. But I don't think it would be any cheaper.
Nokia E71 looks like Blackberry but I'm not sure if I'd be interested in carry a full size keyboard [which does not hide itself as in N97]. But it is cheaper though screen size is smaller.
This leaves two other candidate - HTC Hero and Blackberry. The former uses Google's Android OS and still have a hefty price tag.
Somehow, I've never been a fan of Blackberry.