Friday, February 18, 2011

What is SOA ( Service Oriented Architecture ) ? Simple picture

Often  I heard  some  developers  used to say  that , “ I am open source person “  or I am Microsoft person else I am mobile guy . Well, having competence and expertise knowledge on one selected programming language is a good thing. And it is must. But do you know? Today whole world is moving towards service oriented architecture. (SOA). Naturally people always willing to favor the platform where they good at. We can’t change it (difficult …: P). so best thing is to host your programme as a service which is independent from the consumer’s platform.  So no more blames and no more platform / language criticisms.

We will take simple story. Your familiar with Microsoft technologies, your brother is a totally open source person. Interesting scene is your father is a good mobile application developer.
Father asks you all to develop simple monthly expense calculator to make family budget for month.
Sad part of the story is you all lives separately at 3 ends. So how do you solve this problem?
Here is the answer.
Develop small samples with your favorite languages (platform) which calculate all ur expenses and return some common output (ill later come to this common thing).
All three applications have common input output and endpoints (End point can be differing).

  • Inputs- your expenses
  • Output – Total
 This endpoint is a magic. It will be SOAP or REST (I always prefer REST).
Endpoints simply handle your output and return it as some common medium.
Simply as a XML or lightweight JSON (REST is perfect architectural style to handle  JSON result which returned by service )
 Then finally your father can make simple java client to his mobile and speak with  services you all hosted , via  endpoints .( REST/SOAP)

I didn’t try make fed up you all by explaining shitty technical terms in details. But actually that is what happens in SOA.
Microsoft delivers kind of framework name WCF by enveloping all technologies related to SOA. Ill provide WCF sample in my next article.
Good luck guys.

Wednesday, February 16, 2011

How to use web technologies effectively ?

A good engineer should have capability to provide good technical solutions as well as business solutions .Understanding business domain and, design a scalable /flexible, clean /readable, architecture is never easy. Even after modeling the system next step is to find out technical feasibilities. How to achieve it technically. Well this article is small support for initiatives that love and live with technologies, and finds suitable /perfect technical solutions.
Web is a massive area. Many stuff to learn. Updating frequently. So best thing is keep in touch refresh the stuff always. When you have a good look you can find out few big nouns/ names with today’s web standard (web 2.0 -3.0).
  • SOA (simply I take Web services)
  • Jquery (Second most beautiful JavaScript framework …. I always love EXTJS /Sencha first because I started career with it)
  • JSON (Lightweight JS objects ... Perfect replacement to XML)
  • MVC (A simple yet awesome pattern mostly use in open source frameworks (codeignitor) / CMS systems (word press))

Lot of lazy young programmers today willing to study server side and backend only. Eventually they never see complete picture of the applications. Sometimes they make complex logic and succeeded with server side code but stuck around final steps. Reason is lack of knowledge about the client side. Always keep in mind today’s way is “MUCH MORE INTO CLIENTSIDE “. Once you make everything in server side your application stuck with performance issues. Once many users use your application concurrently it hardly uses many server resources.
If you make your logic in server and pass the result as serialized object. What do you think? Magic starts …
You can easily consume your result nice and awesome manner in client side to format with classic output. (Then you are a super hero).
What you need to learn to do it so? Jquery and JSON, Simple yet beautiful technologies always used to do client side magic. What you do in client side, working on your client’s computer/ browser and no droughts it is efficient.

You will start blame me. “Crazy nothing is clear “. This article is a series of upcoming articles and ill stepwise explain how to take good approach in web projects.