01.Web Service - Introduction
WEB SERVICE
ඔබගේ wedding එකකට උටරට නිලමේ ඇදුම් ගන්න ඕනේ කියලා හිතන්න.එකට අපි මොකද කරන්නේ එහෙම ඇදුම් දෙන කෙනෙක් ලගට ගහින් ඒ අදුම රෙන්ට් එකට ගන්නවා නැත්තන් මසාගන්නවා.එහිදී අපිට ඇදුමක් ඕනේ එනම් සේවාවක් ඕනේ(service).එහිදී හිතමු අපි ඒ අදුම ගන්න යන්නේ ABC shop න්.අපට අවසානයේදී ඉල්ලන ඇදුම දෙද්දී එයාල කඩේ ඇතුලෙදි ලොකු process එකක් කරලා තම අඩුම rent එකට හෝ මහල ඕනෙනම් එහෙම හරි දෙන්නේ.අපිටම ඒ කඩේඇතුලේ වෙන process එක කරගන්න පුළුවන්.නමත් එකට අපිට එකටකාලයක් යනවා,ඇදුම් මැසීම සහ ඇදුම් සහ සම්බන්ද දේවල් ඉගෙන ගන්න වෙනවා.එහෙම ගොඩක් මහන්සි වෙලා තමා ඒ සේවාව පිටින් ගන්නේ නැතිව අපිම කරගන්නවනම් කරගන්න වෙන්නේ.එත් සමහර විට එක අපිට හොදට කරගන්න බැරි වෙන්නට් පුළුවන් අර කඩෙන් කර ගන්නවා වගේ.සරලව ක්වොත් යම් යම් දේවල් වලට සම්බන්දexpert අය ඉන්නවා.අපිට එයාල සම්බන්දවනfield එක සමබන්ද දෙයක් කරගනන්වන්ම් එහෙම කරලා දෙන ඒ පළපුරුද්ද තියන කෙනෙක් ලව කරගන්නවා සල්ලි දීලා හෝ නොදී.අපිට අන්තිමට කරගන්න ඕනේ එකට row material දීලා හරි නැතිව හරි.එනම් ඇදුම මසාගන්න රෙදි දීලා මහල දෙන්න කියන්න්ට පුළුවන් නැතතන් එයාලට රෙදි දන්නා කියලා එකටත් එක්ක සල්ලි දීලා අන්තිමට අඩුම විතරක් ගන්නට් පුළුවන්.මෙහිදී පැහැදිලි වෙන්නේ අපිටම කරගන්න අමරු වැඩක්(service) එක කරලා දෙන කෙනෙක් ලවා(server කෙනෙක්) කරගන්න වෙනවා.ඒ වැඩේ කරලා දෙන අය ගොඩක් ඉන්න පුළුවන් අපිට ගැලැපෙන කෙනෙක්ගෙන් ඒ වගේ කරගන්නවා(service එක දෙන server ගොඩාක් තිබෙන්න පුළුවන්).තවත් විදිහට කියනවනම් අපිට යම් service ඕනේ උනේ උනාම අපි server එකක් call කරක්ලා ඒ service එක ගන්නවා.එකට විවිද service තියෙන්න පුළුවන්.නමුට් අපේapplication එක අනුව සුදුසු server එකක් call කරලා අපේ service එක කරගන්නවා.
(මෙහිදී අප ඉල්ලන ඇදුම් ඒ වෙද්දී කඩේ තියනවනම් ඒක දෙනවා(Static).නැත්තන් කියන එක මහල හරි හදල හරි දෙනවනේ(Dynamic).එකට නම් ඇතුලේ process එකක් වෙනවා.කඩේ ඒ වෙද්දී හදල එල්ලලා තියන එක වගේ නෙවේ.එනම් අපි ඉල්ලන එක Static නම් ඒක එහෙම්ම return කරනවා(Server එකට ගියා අදාල එක ගත්ත, ඊට පස්සේ එක දුන්නෑ.වැඩි process නැ).එත් එක dynamic නම්, ඒ වෙලවෙදී එක backend එකේ තව process වෙලා ඒ page හෝ data එක හදල තමා return කරනනේ.එනම් මේ අවස්තවීදී එක කරන්න application server (tomcat, weblogic, websphere, glassfish ..) එකක් ඕනේ. එකේදී ඒක servlet වලට යවල තමා ඒ dynamic ඒවා process කරන්නේ.එක හරියට කඩේ මුදලාලි(server) ඒඇදුම ගැන විස්තර ඒ වැඩේ බරව ඉන්න ලොක්කෙක්ට බාර දෙනවා(application server). එයා ඒක ඕනේ ඕනේ තැන් වලට යවලා හදලා දෙනවා(servelets).Server එකක application servers run වෙනවා.ඒ application servers වල webservices deploy වෙලා තියෙනවා).
Webservices වලදී ඉගෙනගන්න තියෙන්නේ කොහොමද webservices හදන්නේ සහ කොහොමද හදපු Webservices පාවිච්චි කරන්නේ (call කරන්නේ).එය මෙහිදී සාකච්චා කරනවා.
web Service එකක් යනු web ලෝකයේ යම් serverice ලබාගැනීමට(කුමනහෝ යමක් පිලිබදව data ලබාගැනීමට) delevelop කර ඇති application එකක්.සාමාන්යයෙන් online acess කරන දෙයක් service එකක් වෙනවා.අපි FB පාවිච්චි කරද්දිත් වෙන්නේ facebook website එක හෙවත් facebook service එක access කරනවා.එහෙදි අපි browser එකෙන් අපිට ඕනේ ඒවා ඉල්ලද්දී ඒවා අපිට facebook service එකෙන් දෙනවා.නමුත් website එකක් සහ webservice එකක් අතර තියන වෙනස තමා.website එකකින් service එකදෙන්නේ customer ට, webservice එකක් හදලා තියෙන්නේ code හෙවත් application level consumtiion එකට.website එකක් එම code ඇතුලෙදි මෙම webservice call කරලා data හුවමාරු කරගන්නවා. website එක අපිට service දෙන්නේ webservice වලින් data එහෙම අරන් ඒවා website එකට ඕනේ විදිහට process කරගෙන.
සාමාන්යෙන් webservice එකක් වෙන වෙනම තියෙන application දෙකක් එකිනෙක connect කරනවා.එම web application දෙක එකම හෝ වෙනම තියෙන applicatiion server දෙකක host කරලා තියෙනවා වෙන්න පුළුවන්.එකක ඉදන් අනෙක් එකේ තියෙන දේවල් access කරලා data exchange කරගන්නවා හෙවත් එම applicatiion 2 එකිනෙක connect වෙනවා.ඉහත image එකේ applicatiion දෙකක් එකෙක් app_server_1 ද අනෙක් එක app_server_2 ද webservice විදිහට access කරන්න configure කරලා host කරලා තියනවා.applicaion 2 develop කරලා තියෙන්නේ ලෝකයේ රටවල් වල විස්ස්තර ගන්න කියලා හිතමු(රටවල් වලනම්, නගර,..).applicaion 1 දී යම් කොටසකට ලෝකයේ නගර පිළිබද විස්තර අවශ්යයයි සිතමු.මෙවිට webservice නැත්තන් applicaion 1 හි රටවල්වල details ගන්න code එකක් අපිට ගහන්න වෙනවා.එත් එහෙම code එකක් මේ වෙද්දීත් කවුරුහරි develop කරලා අනෙත් අයටත් එය පවිච් කරලා විස්තර ගන්න පුළුවන් විදිහටනම් හදල තියෙන්නේ එය ආයෙත් අපි code කරන එක අනවශ්ය වැඩක් වෙනවා.මෙවිට අපිට ඒ code එක JAR file එකක් විදිහට ගෙන applicaion 1 එකේ පාවිච්චි කරන්න ඒක applicaion 1 එකට දැම්ම කියමු.එත් අපි ඒකට file එක call කරට හරියන්නේ නෑ.මොකද database එකනැති නිසා.මොකද ඒකට හරියන database configure කරලා තියෙන්නේ applicaion 2 එකේ නිසා.නමුත් එහෙම database එකත් දාලා jar file එක වැඩකරවගත්ත හිතමු.ඒත් applicaion 2 java වලින් develop කරල නම් තියෙන්නේ, applicaion 1 එක c# වලින් නම් code කරලා තියෙන්නේ එකටj ar file දැම්මට වැඩක් නැ.මේකට කරන්න තියෙන හොදම වැඩේ තමා එම රටවල් පිළිබද විස්තර දෙන code එක(method එක) අපිට වෙන application එකක ඉදන් access කරන්න පුළුවන් විදිහට confugure කරලනම් තියෙන්නේ(webservice එකක්විදිහට configure කරලානම් තියෙන්නේ) applicaion1 එකේ සිටම applicaion2 එකේ එම method එක call කරන එක.මෙවිට ඒ method එක පස්සේ කාලෙක applicaion 2 delevelop කරපු අය upadate කරත්, applicaion 1 ප්රශ්නයක් වෙන්නේ නැ මොකටද access වෙන්නේ one and only ඒ applicaion 2 හි තියෙන method එකම නිසා.අර කලින්කිවුව jar file වැඩේ කරනම් ඒ upadate කරන වාරයක් වාරයක් ගැනේ jar file එක and datebase application 1 දී වෙනස් කරන්න වෙනවා.ඒ නිසා ඒ වැඩේ කරන්න යන්නේ නෑ.ඊට පස්සේ එන problem එක තමා laguadge, technology applocation දෙකේ වෙනස්වීම.එකට කරන්නේ c# application එකේ ඉදන් java application එක call කරලා data ඉල්ලන්නෙත්, ඉල්ලුවාම ඒ data අපහු c# application එකට එවන්නෙත් laguadge දෙකටම පොදු විදිහකට.එනම් data එහා මෙහා යවන්න ඕනේ laguadge 2 කට පොදු විදිහකට.එකට තමා data transfer කරන්න JSON, XML වගේ පොදු විදිහක් බාවිතා කරන්නේ.මෙවිට webservice එක හා webservice එක access කරන website එක විවිද laguadge වලින් develop කරලා තිබ්බට කිසි ප්රශ්නයක් වෙන්නේ නෑ.(Language Independent).එක හරියට මිනිස්සු 2ක් ඉන්නවා(webapplication 2ක් ) ඉන්නවා සිතමු එක්කෙනක් සිංහල(java) විතරයි දන්නේ අනෙක් කෙනා tamil(c#) විතරයි දන්නේ.දෙන්නා දෙන්නගේ ගෙවල් වල ඉන්නේ(application server 2 ක host කරලා තියෙන්නේ).සිංහල කෙනාට ඕනේ එයාගේ project(application එකේ පොඩි කොටසක්) එකකට tamil කෙනා වැඩ කරන කෝවිලේ(database යි සිතමු) විස්තර ගන්න.එයා මොකද කරන්නේ අහන්න ඕනේ ඔක්කොම චිත්ර විදිහට ඇදල(JSON,XML වගේ) තුන්වෙනි පුත්ගලයෙක්(HTTP) අතේ යවනවා.එය tamil කෙනාට එක දීලා tamil කෙනත් එයාගේ response එක චිත්ර විදිහට අදාල අපහු එවනවා වගේ වැඩක්.
Comments
Post a Comment