செப்டம்பர் 07, 2012

தகவல் பறிமாற்றத்தில் JSONன் பங்கு

JSON, தகவல் பறிமாற்றத்தற்கான ஒரு வழிமுறை.  அதேன்ன தகவல் பறிமாற்றம்? எங்கு? யாருக்கிடையே? எப்படி? போன்ற கேள்விகளுக்கு இப்பதிவில் விடை காண முயலுவோம்.  பறவைகள், விலங்குகள் போன்ற உயிரினங்கள் தங்களது குரல்களாலும் செய்கைகளாலும் தகவல் பறிமாறிக் கொள்வதை டிஸ்கவரி சானலில் பார்த்திருப்பீர்கள்.  மனிதர்கள் தங்களுக்குள் தகவல் பறிமாறிக் கொள்ள மொழியை உருவாக்கினார்கள்.  ஒவ்வொரு ஒலிக்கும் ஒரு குறியீட்டை உருவாக்கினார்கள். அதுவே எழுத்துக்களாக வடிவம் பெற்றன. 

மென்பொருட்கள் எவ்வாறு தகவல்களை பறிமாறிக் கொள்கின்றன என்பது சுவாரஸ்யமாக இருக்கும்.

இன்று நாம் வெவ்வேறு பிராசசர்கள், மாறுப்பட்ட ஆப்பரேட்டிங் சிஸ்டங்கள் என பலவகையான கணினிகளைப் பயன்படுத்தினாலும் மையச் செயலியின் கட்டமைப்பு (அட processor architecture தாம்ப்பா..) x86, i386, x64 என ஒரே குட்டையில் ஊறிய மட்டைகளாகப் பகுத்து விடலாம்.  அந்தக் காலத்தில் அப்படியல்ல.  பெரிய ஜாம்பவான்களாக இருந்த ஐ.பி.எம், சன் மைக்ரோசிஸ்டம், ஹனிவெல், ஆப்பிள் போன்ற ஒவ்வொரு நிறுவனத்திடமும் ஒவ்வொரு வகையான கணினி இருக்கும்.  இவை போதாதென்று இராணுவ ஆராய்ச்சிக் கூடங்கள், பல்கலைக் கழகங்கள் போன்ற நிறுவனங்களில் ஆங்காங்கே தனித்தனி தீவுகளாக வெவ்வேறு கணினிகள் இயங்கி வந்தன (alien vs predator போல).  அதில் ஒரு பணித்தளத்திற்கென (platform) பிரத்யேகமாக உருவாக்கப்படும் நிரல் (program) மற்றொன்றில் சத்தியமாக இயங்காது.  இதுவே ஜாவா போன்ற தொழில்நுட்பங்கள் அடைந்த மாபெரும் வெற்றிகளுக்குக் காரணம்.

ஒரு பணித்தளத்தில் சேமித்த டெக்ஸ்ட் கோப்புகள் (text files) வேறொரு பணித்தளத்திலும் சிக்கலின்றி படிக்க முடிவதற்குக் காரணம், குறியீட்டு முறைமைகள்.  ASCII, UTF8, UTF16 போன்றவை வெவ்வேறு குறியீட்டு முறைகள் (text encodings).  யுனிகோட் முறையில் இந்த தமிழ் எழுத்துகளை கணினியில் எழுதியிருக்காவிட்டால், நீங்கள் தற்போது ஒரு பழங்கால கல்வெட்டை வாசிப்பது போல உணரக் கூடும். 

ஆகவே சீரிய தகவல் பறிமாற்றத்திற்கு ஒரு ஒருங்கினைந்த, எல்லோராலும் ஏற்றுக்கொள்ளப்பட்ட ஒரு தகுதரம் (standardization) வேண்டுமென்பது தெளிவாகிறது.  இதனுடைய மற்றொரு பரிணாமம்தான் இந்த JSON.

வெவ்வேறு இணைய தளங்கள், வெப் சர்வீஸ்கள், மொபைல் மென்பொருடகள் தங்களுக்குள் தகவல்களைப் பரிமாறிக் கொள்ள JSON என்கிற வடிவத்தை, ஒரு முறையைக் கையாளுகின்றன.

http://ta.wikipedia.org/s/fxy

-தொடரும்

செப்டம்பர் 06, 2012

ஜாவா புரொகிராமிங் - தேவையானதை மட்டும் படிங்க பாஸ்

     கமாண்ட் ப்ராம்ப்ட் வழியாக உள்ளீடு வாங்குவதெல்லாம் கற்றுக்கொள்ளும்போதுடன் நின்றுவிடும்.  பெரிய பெரிய ப்ராஜெக்ட்களில் எல்லாம் ஒவ்வொரு உள்ளீட்டையும் டெர்மினலில் கொடுத்துக் கொண்டிருக்க முடியாது.  அங்கு எளிதான GUI (Graphical User Interface) பயனர் இடைமுகப்புக்கு முக்கியத்துவம் அளிக்கப்படும்.  ஒரு ஜாவா ப்ராஜெக்டில் பல வகைகளில் GUI வடிவமைக்க முடியும்.  Swing, SWT, GWT... போன்ற frameworkகளை கொண்டு ஜாவா டெஸ்க்டாப் அப்ளிகேஷன்களை உருவாக்கலாம்.  அதுவே ஜாவா வெப் ப்ராஜெக்டாக இருந்தால் இருக்கவே இருக்கிறது HTML.  JSP, Servelet போன்ற ஜாவா தொழில்நுட்பங்களை தீர்வுகள் அளிக்கவும் (business logic), CSS, HTML, Javascript போன்ற தொழில்நுட்பங்களை பயனர் இடைமுகப்பு வடிவமைக்கவும் பயன்படுத்தலாம்.  இன்று பெரும்பாலான மென்பொருள் நிறுவனங்களில் GUI வடிவமைப்பு முழுக்க முழுக்க வெப் பக்க வடிவமைப்பாகவே உருவாக்கப் படுகிறது.  இந்த முறையில் இருக்கும் பெரிய நன்மை, தீர்வுகள் வழங்கக்கூடிய மையப் பகுதியை (business logic) ஒரு குழுவும், பார்த்தவுடன் கண்ணைக் கவரும் இடைமுகப்பை வேறொரு வெப் டெவலப்பரும் தனித்தனியே அவரவர் தனித்திறமைகளைக் கொண்டு கச்சிதமாகவும் விரைந்தும் முடிக்க இயலும்.

வெப் பக்கங்களில் இருந்து இயங்கும் ஜாவா அப்ளெட்டுகள் (Applet) மெல்ல மெல்ல மறைந்து வருகிறது.  மென்பொருள் நிறுவனங்களில் டெஸ்க்டாப் மென்கலங்களை விட இணைய மென்கலங்களே (web application) அதிகம் உருவாக்கப் படுகிறது.  மேலும் J2ME, Android போன்ற மொபைல் ப்ளாட்பார்ம்களில் இடைமுகப்பு உருவாக்க அதிக வளங்கள் தேவைப்படும் Swing போன்ற பேக்கஜ்கள் இருக்கவே இருக்காது.  ஏனெனில் மொபைல் அப்ளிகேஷன் வடிவமைப்பைப் பொருத்தவரை அதன் இடைமுகப்பு வெப், டெஸ்க்டாப் இவற்றிலிருந்து முற்றிலும் வேறுபட்டது.  அங்கு எளிமைக்கும் வேகத்திற்குமே முக்கியத்துவம்.  மற்றபடி ஜாவா மொழியின் அம்சம் (classலிருந்து threads கள் வரை) அதேதான். இதனால் இவையனைத்தையும் கருத்தில் கொண்டு கன்சோல் இன்புட் முறைகள் (DataInputStream, BufferedReaderInputStream ...blah blah..), Appletகள் (தாரளமாக படிக்கத் தேவையில்லை... விதிவிலக்கு: தேர்வுகளுக்கு மட்டும்), swings (அவசியம் ஏற்பட்டாலே தவிர) போன்ற ஜாவா கருத்துருக்களை அதிக சிரத்தை எடுத்து படிக்கத் தேவையில்லை.  அதற்கு HTML5, jQuery போன்றவற்றைக் கற்றுக் கொள்ளுங்கள், அவசியம் பயன்படும்.  Core javaவில் நன்கு தெளிந்திருந்தாலே servlet, struts, spring... போன்ற எந்த ஜாவா தொழில்நுட்பமும் வசப்படும்.

- தொடரும்