விண்டோஸ் கம்யுனிகெய்ஷன்
ஃபௌண்டெய்ஷன்(windows communication foundation) என்றால் என்ன என்று பார்ப்பதற்கு முன்
வெப் சர்வீஸ் மற்றும் அது போன்ற சில கருத்துகள் குறித்துன் பார்ப்போம்.
வெப் சர்வீஸ்
வெப் சர்வீஸ் என்பது
நிரலாக்க வரிகளின் ஒரு துண்டு .இது வெப் சர்வெரில் ஹோஸ்ட் செய்யப்பட்டிருக்கும்.இது
ஒரு குறிப்பிட்ட சேவையை வழங்குகின்றது.சரியாகச் சொல்வதென்றால் இது ஒரு சாப்ட்வேர் பயன்பாட்டின்
ஒரு பகுதி ஆகும். இது ஒரு பயன்பாட்டின் பிஸினஸ் லாஜிக்கை செயற்படுத்தப்பயன் படுகின்றது.எடுத்துக்காட்டாக
நீங்கள் சுலப வட்டியை கணக்கிடும் இணையத் தளத்தை உருவாக்க விரும்புகிறீர்கள் என்றால்
அதற்கான நிரல் வரிகளை எழுதி வெப் சர்வீஸ் ஆக உருவாக்கி அதனை நம் இணைய தளத்தில் நடைமுறைப்
படுத்தலாம்.
வெப் சர்வீஸ் என்பது
ஒரு இணையத் தளத்தை மற்ற இணையத் தளங்களுடன் தொடர்பு கொள்ள உதவுகின்றது.அதே போல் இது ஒரு விண்டோஸ் பயன்பாட்டினை மற்றொரு விண்டோஸ் பயன்பாட்டுடன் தொடர்பு கொள்ளவும்
பயன்படுகின்றது.அந்த இணையத் தளங்கள் வெவ்வேறு மொழிகளில் உருவாக்கப் பட்டிருக்கலாம்.
எந்த பிளாட்ஃபார்மிலும்(சாப்ட்வேர் மற்றும் ஹார்ட்வேர்) இயங்கலாம்.
வெப் சர்வீஸ் பயன்பாட்டிற்கு
வருவதற்கு முன்னால் ஒரு பயன்பாடானது மற்ற பயன்பாட்டுடன் தொடர்பு கொள்ள COM
(Component object model) மற்றும் DCOM(Distributed component object model) போன்ற
தொழில் நுட்பங்கள் பயன்பட்டன.
அவை கடை நிலை பயன்பாட்டினரின்
கணினியில் ரிஜிஸ்டர் செய்யப் பட்டிருக்க வேண்டும். அவை கணினியின் ரிஜிஸ்டரிக்கு சற்றே
தீங்கிளைப்பதாய் இருந்த்தது. வெப் சர்வீஸில் இவை சரியாக உள்ளன.
வெப் சர்வீஸ் ஆனது
பின் வரும் நிலைபாடுகளுடன் உடன் படவேண்டும்.
Simple Object Access Protocol(SOAP):
இவை வெப் சர்வீஸ்கள் ஒன்றுடன் ஒன்று தொடர்பு கொள்ள
அனுமதிக்கின்றது. SOAP என்பது ஒரு protocol ஆகும். அதாவது SOAP ஆனது இணைய தளமானது ஒரு
வெப் சர்வீஸை கேட்டு பெறும் போது பயன்படுத்துகின்ற xml செய்திகளின் வடிவம் எவ்வாறு
அமைய வேண்டுமென்ற விதி முறைகளின் தொகுப்பு ஆகும்.
Web Services Description language(WSDL):
இது வெப் சர்வீஸ்களை
வரையறுக்கும் XML சார்ந்த மொழியை குறிப்;பிடுகின்றது. ஒரு WSDL டாக்குமெண்ட்
ஆனது வெப் சர்வீஸின் இருப்பிடத்தையும், அந்த வெப் சர்வீஸ் எந்தெந்த சேவைகளை வழங்குகின்றது
என்ற தகவல்களையும் வழங்குகின்றது
WCF தொழில்நுட்பத்திற்கு
முன்னால் இருந்த சர்வீஸ் பயன்பாடுகள்::
ASMX Web Service:
தகவல் பரிமாற்றத்திற்கு
உதவுகின்றது. எந்த பிளாட்ஃபார்மிலிருந்தும் தகவல்களை அணுகலாம்.
.NET Remoting Service
விண்டோஸ் இயங்கு
தளத்தில் கிளையண்ட் மற்றும் சர்வர் இடையிலேலான தகவல் பரிமாற்றத்திற்கு உதவுகின்றது.
MSMQ Service:
செய்திகளை
queue முறையில் அனுமதிக்கின்றது. சர்வர் தொடர்பு
நிறுத்தப்பட்டிருந்தாலும் செய்திகளை queue முறையில் அனுப்பவும் பெறவும் முடியும்.
WCF ஏன் அறிமுகப்படுத்தப்பட்டது?
ஒரு நிரலாளர் மேலே
குறிப்பிட்டுள்ள அம்சங்களுடன் ஒரு இணைய பயன்பாட்டினை உருவாக்க வேண்டியிருந்தால் இந்த
நுட்பங்கள் அணைத்தையும் பயில வேண்டும். WCF
ஆனது இவை அனைத்தையும் ஒரே குடையின் கீழ் கொண்டுவந்தது. WCF என்பது இவை அனைத்திற்கும் பொதுவான ஒரே தொழில்
நுட்பமாக பயன்படுகின்றது. WCF விண்டோஸ் இயங்கு தளத்தில் சர்வீஸ்களை உருவாக்கவும்,பயன்படுத்தவும்
உதவுகின்றது. மேலும் WCF ஆனது
விரைவான சர்வீஸ் ஒரியண்டேடு அப்ளிகசன்களை உருவாக்க உதவும் ஃப்ரேம் வொர்க்கினை தருகின்றது.
கிளவுட் சேவைகள்:
மைக்ரோ சாப்ட்,
கிளவுட் சேவைகளை .NET FRAMEWORK 4.0 உடன் அறிமுகப்படுத்தியது. கிளவுட் கம்ப்யூட்டர்
வசதிகளை பயன்படுத்தி CPU மற்றும் memory போன்ற வளங்கள்,மென் பொருள்,தகவல் ஆகியவற்றை
கணினிகள் மற்றும் இன்டெர்னெட் இணைப்புடன் கூடிய கையடக்க தொலைபேசி போன்ற சாதனங்களிடையேயும்
பயன்படுத்தலாம்.
பொதுவாக கிளவுட்
என்பது இணைய பயன்பாடுகள் மற்றும் சேவைகள், மையப்படுத்தப்பட்ட டேட்டா அமைப்பு ,பயன்பாடுகளை
உருவாக்கவோ அல்லது பயன்படுத்தவோ உதவும் சூழலை வழங்குதல் போன்றவற்றை குறிக்கும்.மைக்ரோ
சாப்டால் சமீபத்தில் அறிமுகப்படுத்தப்பட்ட கிளவுட் ப்ளாட்ஃபார்ம் Windows Azure ஆகும். இது டாட்நெட் பயன்பாடுகளை இயக்கவும் தகவல்களை சேமிக்கவும்
உதவும் சூழலை தருகின்றது.
ABC OF WCF
பின்வருவனை WCF-ன் ABC எனப்படுகின்றது.
01. Address:
02. Binding
03. contract
Address (எங்கு?)
இது சர்வீஸ் ஹோஸ்ட்
செய்யப்பட்ட இருப்பிடத்தின் முகவரியை குறிப்பிட உதவுகின்றது. உதாரணத்திகு ஹோஸ்டிங்
url பின்வருமாறு இருக்கலாம்.
கிளையண்டுகள் நம்
வெப் சர்வீஸை அணுக இந்த முகவரியை தான் பயன்படுத்துவார்கள்.
Bindings (எப்படி?)
கிளையண்ட் ஆனது
சர்வீஸ் உடன் தொடர்பு கொள்ள எந்த ப்ரோட்டாகாலை பயன்படுத்த வேண்டும் என்பதை குறிப்பிடுகின்றது.
WCF ஆனது http,tcp,named
pipe,msmq போன்ற ப்ரோட்டாகால்களை ஆதரிக்கின்றது.
Contract (என்ன?)
இது வெப் சர்வீஸை
அழைக்கும் போது என்ன செயல்பாடு நடக்க வேண்டும் என்பதை குறிக்கின்றது. Data
Contract, Operation Contract, Message Contract, Fault Contract போன்ற விதமான contracts உள்ளன.
WCF Hosting வகைகள்
வெப் சர்வீஸ் ஆனது
ஹோஸ்ட் செய்யப்பட்டால் தான் அதை மற்றவர்கள் அணுகி பயன்பெற முடியும். WCF Host என்பது சர்வீஸின் வாழ்நாளை கட்டுப்படுத்தும்
பயன்பாடு ஆகும்.மூன்று விதமான ஹோஸ்டிங் முறைகள் உள்ளன. அவையாவன:
1.
Self hosting
வெப் சர்வீஸ் ஆனது செல்ஃப் ஹோஸ்ட் செய்யப்படுகின்றது
என்றால் தானியங்கு பயன்பாடாக இயங்குகின்ற்து என்று அர்த்தம். இதன் வாழ்நாளை இதுவே கட்டுபடுத்துகின்றது.
2.
Windows services hosting
WCF சர்வீஸ் ஆனது
விண்டோஸ் சர்வீஸாக ஹோஸ்ட் செய்யப்பட முடியும். இது இயங்கு தளத்தின் கட்டுப்பாட்டில்
இயங்கும். மேலும் விண்டோஸ் இயங்க ஆரம்பிக்கும் போதே இதுவும் இயங்க ஆரம்பிக்கும். எனினும்
இது சில WCF அம்சங்களை ஆதரிக்காது
3.
IIS hosting
WCF சர்வீஸை
IIS சர்வரில் ஹோஸ்ட் செய்வது என்பது பாரம்பரிய வழிமுறையாகும். இது செயற்பாடு மறுசுழற்ச்சி(Process
recycling), வாழாவிருக்கும் போது இயக்கத்தை நிறுத்துதல்(idle shutdown),செயற்பாடுகளின்
இயக்கத்தை கண்காணித்தல்( process health monitoring) போன்ற அம்சங்கள் இதில் உள்ளன.
4.
Windows Activation Services hosting
IIS சர்வரில் ஹோஸ்ட் செய்வதில்
சில குறைகள் உள்ளது. HTTPயை சார்ந்திருத்தல் மற்றும் WCF சர்வீஸ்களின் சில அம்சங்களை
பயன்படுத்த முடியாமை ஆகியவை குறைகளாக உள்ளன. எனவே Windows Activation Services
hosting என்ற புதிய முறை பயன்படுத்தப்படுகின்றது. இதற்கு குறைந்தபட்சம் IIS7 நிறுவப்பட்டிருக்க
வேண்டும்.
WCF அம்சங்கள்
1.
எண்ட்
பாய்ண்ட் சப்போர்ட்
2.
மேம்படுத்தப்பட்ட
ட்ரான்ஸ்போர்ட் லேயர்
3.
க்யூயிங்
சப்போர்ட்
4.
மேம்படுத்தப்பட்ட
பரிவர்த்தனை(transactional) செயல்பாடுகள்
5.
மேம்படுத்தப்பட்ட
பாதுகாப்பு
6.
வெவ்வேறு
சூழல்களில் ஹோஸ்ட் செய்வதை ஆதரித்தல்
7.
அஜாக்ஸ்
மற்றும் JSON ஆதரவு
1.
எண்ட்
பாய்ண்ட் சப்போர்ட்
எண்ட்
பாய்ண்ட் என்பது கிளையண்ட்டுக்கும் சர்வீஸ்க்கும் இடையேயான தொடர்பிற்கு பொறுப்பாகும்.
இதன்
கூறுகள்:
1.
சர்வீஸின்முகவரி
2.
தொடர்பு
கொள்ள உதவும் பைண்டிங் .
3.
சர்வீஸை
அணுகும் போது செய்யப்பட வேண்டிய செயல்பாடுகள்
4.
எண்ட்
பொய்ன்ட் நடத்தைகள்
2.
மேம்படுத்தப்பட்ட
ட்ரான்ஸ்போர்ட் லேயர்
ASMX சர்வீஸ்போல் அல்லாமல் பல
விதமான PROTOCOL-களை WCF SERVICE உபயோகிக்கின்றது. HTTP, TCP, HTTPS மற்றும் Named pipes
போன்ற
ப்ரோட்டாகால்கள் பயன்படுத்தப்படுகின்றன
3.
க்யூயிங்
சப்போர்ட்(QUEUEING SUPPORT)
WCF SERVICES செய்திகளை வரிசையாக நிறுத்தி
அவற்றை குறிப்பிட்ட நேரத்தில் செயல்படுத்துகின்றது.
4.
மேம்படுத்தப்பட்ட
பரிவர்த்தனை(transactional) செயல்பாடுகள்
சர்வீஸ்களின் இயக்கத்தின் போது செயல்பாடுகளில்
தடை ஏற்பட்டால் TRANSACTION SAVE ஆகாது. ROLLBACK ஆகிவிடும்.
5.
மேம்படுத்தப்பட்ட
பாதுகாப்பு
AUTHENTCATION முறை WCF-ல் முக்கிய பங்கு வகிக்கின்றது.
6.
வெவ்வேறு
சூழல்களில் ஹோஸ்ட் செய்வதை ஆதரித்தல்
Windows
NT Services, Windows Forms, Console Apps, IIS, Windows Activation Services(WAS]
போன்ற பலவிதமான சூழல்களில் WCF –ஐ
ஹோஸ்ட் செய்யலாம்.IIS சர்வரில் ஹோஸ்ட் செய்தால் தானாக சர்வீஸ் ஆரம்பித்தல் மற்றும்
தானாக நின்று போகுதல் ஆகியவை நடக்கும்.
7.
அஜாக்ஸ்
மற்றும் JSON ஆதரவு
ASP.NET AJAX ,JSON DATA FORMAT ஆகியவற்றை
WCF ஆதரிப்பதால் AJAX CLIENTS உடன் தொடர்பு கொள்ள முடிகின்றது. அஜாக்ஸை ஆதரிக்கும்
வெப் சர்வீஸ்களுக்கு இடையேயான தகவல் பரிமாற்றத்திற்கான வடிவமாக JSON பயன்படுகின்றது.
wcf service பயன்பாடு
ஒன்று முதலில் உருவாக்குவோம்.
முதலில்
visual studio 2010 open செய்யவும். பிறகு File->New->Project
–ஐ மெனு பாரில் செலக்ட் செய்யவும். New
project டயலாக் பாக்ஸ் வெளிப்படும். இடது பேனலில் visual c# என்பதன் கீழ் உள்ள
wcf என்பதை க்ளிக் செய்து மத்தியில் உள்ள பேனலில் WCF Service Application என்பதை தேர்ந்தெடுக்கவும்.அதற்கடுத்து பெயர் கொடுத்து(உதாரணமாக
இங்கு WcfService1 எனக் கொடுத்து , அடுத்ததாக அதனை சேமிக்கும் இடத்தை (நாம் விரும்பும்
location) தேர்ந்தெடுக்கவும். அடுத்ததாக ok பட்டனை க்ளிக் செய்யவும். solution
explorer வெளிப்படும். அதனில் default files தோன்றும்.
WCF சர்வீஸ் இரண்டு
படிகளாகச் செய்ய வேண்டும். முதலில் service contract உருவாக்க வேண்டும். பிறகு
Data contract உருவாக்க வேண்டும். service contract என்பது இண்டர்ஃபேசஸ் விதி முறைகளையும்
data contract என்பது உள்ளீடு,வெளியீடு செயல்பாடுகளின் போது பரிமாறப்படும் டேட்டாவிற்கான
விதிமுறைகளையும் குறிக்கின்றது. IService1.cs என்கின்ற டீஃபால்ட் ஃபைலினில் பின் வரும்
நிரல் வரிகளில் ஹைலைட் செய்யப்பட்டவற்றை மட்டும் சேர்க்கவும்
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WcfService1
{
// NOTE:
You can use the "Rename" command on the "Refactor" menu to
change the interface name "IService1" in both code and config file
together.
[ServiceContract]
public
interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
String GetDataUsingDataContract(UserData info);
//
TODO: Add your service operations here
}
// Use a data contract as illustrated in the
sample below to add composite types to service operations.
[DataContract]
public class UserData
{
String firstName;
String lastName;
[DataMember]
public string FirstName
{
get { return firstName; }
set {firstName = value; }
}
[DataMember]
public string LastName
{
get { return lastName; }
set {lastName = value; }
}
}
}
மேலே உள்ள
நிரல் வரிகளில் IService1 என்கின்ற இன்டர்ஃபேஸ் ஆனது
[ServiceContract] என அடையாளமிடப் பட்டிருப்பதை கவனிக்கவும்.இது WCF-க்கு உண்டான
Contract metadata ஆனதை IService1 கொண்டுள்ளது என்பதைக் குறிக்கின்றது. IService1 என்ற
இன்டர்ஃபேஸில் உள்ள மெத்தெட்கள் [Operation Contract] என அடையாளமிடப் பட்டிருப்பதை
கவனிக்கவும். [DataContract] ஆனது
UserData கிளாஸிற்கு அடையாளமிடப் பட்டிருக்கின்றது.
UserData கிளாஸின் மெம்பர்கள் [DataMember]
என அடையாளமிடப்பட்டிருப்பதை கவனிக்கவும்.
பின் வரும் நிரல் வரிகளில் ஹைலைட் செய்யப்பட்டிருக்கும் வரிகளை
Service1.svc.cs என்கின்ற ஃபைலில் சேர்க்கவும்.
using
System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WcfService1
{
// NOTE:
You can use the "Rename" command on the "Refactor" menu to
change the class name "Service1" in code, svc and config file
together.
public
class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You
entered: {0}", value);
}
public String
GetDataUsingDataContract(UserData info)
{
return "Welcome to" +
info.FirstName + " " + info.LastName;
}
}
}
F5 கீயை
அழுத்தி wcf சர்வீஸை இயக்கவும். Wcf Test
Client விண்டோ தோன்றும்.
அதில் உள்ள
Wcf வெப் சர்வீஸில் உள்ள URL-ஐ காப்பி செய்து வெப் பிரவுசரில் பேஸ்ட் செய்யவும். பின்
வரும் OUTPUT தோன்றும்.
இப்பொழுது
WCF சர்வீஸ் உருவாக்கப்பட்டு விட்டது. இதை
பயன்படுத்த கிளையண்ட் அப்ளிகேசன் உருவாக்கப்பட வேண்டும். அதற்கு முன்னால் WCF கிளையண்ட்
ஆனது WCF சர்வீஸை அழைக்க உதவும் proxy classes உருவாக்கப்பட வேண்டும்.
அதற்கு முதலில்
visual studio 2010 command prompt திறக்கவும்.பிறகு wcf service Application உள்ள
path (location in local computer) கொடுக்கவும். பின் வரும் வரிகளை அதில் எண்டர் செய்யவும்
குறிப்பு:
localhost போர்ட் எண் 50362 எனக்கொடுக்கப்பட்டுள்ளது. இது உங்கள்
கணினியில் மாறுபடலாம். அந்த எண்ணை தெரிந்து கொள்வதற்கு Wcf Test Client விண்டோவை பார்க்கவும்.
இப்போது proxy
classes (Service1.cs, app.config) உருவாக்கப்பட்டு அதன் இருப்பிடம் command
prompt விண்டோவில் தோன்றும்.
இப்போது
vs2010-ல் windows forms application ஒன்றை திறக்கவும். solution explorer விண்டோவில்
project பெயரை வலது க்ளிக் செய்து Add Service Reference என்கின்ற option க்ளிக் செய்யவும்
.அதன் பின் வரும் விண்டோவில் முகவரி பாரில் wcf service application –ன் url முகவரியை
கொடுக்கவும்.
உதாரணமாக பின்
வரும் முகவரி
பின் Go பட்டனை
க்ளிக் செய்யவும். ok பட்டனை அழுத்தவும்.
ஃபார்ம் விண்டோவில்
மூன்று லேபிள்களும் இரண்டு டெக்ஸ்ட் பாக்ஸும் மற்றும் ஒரு பட்டனும் உருவாக்கவும்.
பின் நாம் உருவாக்கிய
Service1.cs என்கின்ற proxy class –ஐ க்ளையண்ட் அப்ளிகேசனில் சேர்க்கவும்.பின்
app:config ஃபைலை svcutil.exe command மூலம் நாம் உருவாக்கிய app:config ஃபைலால்
replace செய்யவும்.
பட்டன் க்ளிக்
ஈவண்டில் பின் வரும் நிரல் வரிகளை சேர்க்கவும்.
private void
button1_Click(object sender, EventArgs e)
{
Service1Client c = new
Service1Client();
WcfService1.UserData u = new WcfService1.UserData();
u.FirstName = textBox1.Text;
u.LastName = textBox2.Text;
label3.Text = c.GetDataUsingDataContract(u);
c.Close();
}
f5 பட்டனை அழுத்தி
அப்ளிகேசனை இயக்கவும்.
டெக்ஸ்ட் பாக்ஸ்களில்
அதற்குறிய மதிப்புகளை எண்டர் செய்து பட்டனை அழுத்தவும் பின் வருமாறு output தோன்றும்.
இவ்வாறு
windows communication foundation இயங்குகின்றது
.
முத்து கார்த்திகேயன்,மதுரை