[slickquiz id=11]
Jun 01
অ্যাপ এমএল স্থাপত্য (AppML Architecture)
নাজমুল ইসলাম
আধুনিক ওয়েব স্থাপত্য
AppML সমসাময়িক কৌশল এবং আধুনিক ওয়েব ডেভেলপমেন্ট এর ধারনাকে একত্রিত করে।
AppML গতি, সরলতা, এবং কম খরচে উপর নজর দেয়:
- সেবামূলক MVC আর্কিটেকচার
- অত্যন্ত কম ব্যান্ডউইথ খরচ
- ক্লাউড কম্পিউটিং জন্য অনুকূল
- উপস্থাপনা বা প্রেজেন্টেশন থেকে কন্টেন্টসময়হ সম্পূর্ণ আলাদা করা
- ইন্টেলিজেন্ট ঘোষণামূলক প্রোগ্রামিং
- দ্রুত এবং তৎপর ওয়েব ডেভেলপমেন্ট
- উচ্চ আকার পরিবর্তনযোগ্য এবং পরীক্ষাসক্ষম
- কনফিগারেশন এবং পুনরায় কনফিগার করা সহজ
- ব্যবহারকারীর অ্যাকাউন্ট এবং কর্মের জন্য নিপুণ সহায়তা
MVC আর্কিটেকচার
AppML এ MVC আর্কিটেকচার ব্যবহার
MVC বলতে বোঝায় মডেল, ভিউ, কন্ট্রোলার
- মডেল আপনার অ্যাপ্লিকেশন সম্পর্কে বর্ণনা দেয়
- ভিউ আপনার ডাটা প্রদশন করে
- কন্ট্রোলার আপনার অ্যাপ্লিকেশনকে নিয়ন্ত্রণ করে
উইকিপিডিয়া: মডেল, ভিউ, কন্ট্রোলার
মডেল – কেবল JSON
মডেল অ্যাপ্লিকেশনকে বর্ণনা করে
মডেল বিভিন্ন হার্ডওয়্যার এবং সফটওয়্যার প্ল্যাটফর্ম এ পুনরায় ব্যবহার করা যায় (সার্ভার, পিসি, আইফোন, ট্যাবলেট, ইত্যাদি)
মডেল উপস্থাপনা বা ইউজার ইন্টারফেস (UI) এর সাথে সংশ্লিষ্ট নয়।
মডেল JSON এর মধ্যে লিখিত হয়:
Model
{
"rowsperpage" : 10,
"database" : {
"connection" : "localmysql",
"sql" : "SELECT CustomerName, City, Country FROM Customers",
"orderby" : "CustomerName"
},
"filteritems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}
],
"sortitems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}
]
}
ভিউ – কেবল এইচটিএমএল
ভিউ হচ্ছে ডাটা (এবং ইনপুট) দেখানোর জন্য ইউজার ইন্টারফেস (UI)
ভিউ HTML এবং CSS এ লেখা হয়:
এইচটিএমএল ভিউ
<!DOCTYPE html>
<html lang="en-US">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
<body>
<div class="container" appml-data="local?model=model_customers">
<h1>Customers</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>
<table class="table table-striped table-bordered">
<tr>
<th>Customer</th>
<th>City</th>
<th>Country</th>
</tr>
<tr appml-repeat="records">
<td>{{CustomerName}}</td>
<td>{{City}} </td>
<td>{{Country}} </td>
</tr>
</table>
</div>
</body>
</html>
নিয়ামক (কন্ট্রোলার) – ক্লায়েন্ট এবং / অথবা সার্ভার স্ক্রিপ্ট
একটি ক্লায়েন্ট স্ক্রিপ্ট হচ্ছে একটি ওয়েভ পেজ যা অ্যাপ্লিকেশনকে নিয়ন্ত্রণ করতে পারে।
- অ্যাপ এমএল মেথড এ সঙ্গায়িত ডাটা প্রদর্শন করতে পারে
- অ্যাপ এমএল এইচটিএমএল অ্যাট্রিবিউট এ সঙ্গায়িত ডাটা প্রদর্শন করতে পারে
- অ্যাপ এমএল অ্যাপ্লিকেশন এইচটিএমএল এ কারো সহায়তা ছাড়াই চালু হতে পারে (লুকানো ভাবে)
- (ঐচ্ছিক) অ্যাপ এমএল ওয়েব সার্ভার থেকে মডেল ডাটার জন্য অনুরোধ করতে পারে (এসকিউএল সার্ভার)।
- (ঐচ্ছিক) অ্যাপ এমএল ব্যবহারকারীরা ডাটা সম্পাদনা বা পরিবর্তন করতে পারে।
- (ঐচ্ছিক) অ্যাপ এমএল ওয়েব সার্ভারে ডাটা প্রদান করতে পারে।
সার্ভার স্ক্রিপ্ট অ্যাপ্লিকেশনকে নিন্মক্তভাবে নিয়ন্ত্রণ করতে পারে :
- গ্রাহকের (ব্রাউজার) কাছ থেকে অনুরোধ গ্রহণ করে
- গ্রাহককে ডাটা ফেরত দিয়ে
- গ্রাহকের কাছ থেকে ডাটা গ্রহণ করে
- সার্ভার এর ডাটা আপডেট করে
- অনুমোদন ও নিরাপত্তা তদারকী করে
প্রোগ্রামিং এর শিল্প
আবেদন আকার এবং কম জটিলতা রাখা, সকল প্রোগ্রামিং এর প্রধান সমস্যা।
কম্পিউটার অ্যাপ্লিকেশন এর জটিলতা নিয়ন্ত্রণ, প্রোগ্রামিং এর সঠিক কৌশল।
ঘোষণামূলক প্রোগ্রামিং
সফটওয়্যার উন্নয়ন প্রায়শই সময়সীমা এবং বাজেটের জন্য ক্ষতিগ্রস্থ হয়। সম্পন্ন সফটওয়্যার এ প্রায়ই প্রচুর কোডিং সমস্যা থাকে। এর কারণ হচ্ছে কোড উন্নয়ন, পরীক্ষা করা এবং পরিচালনা করা কঠিন।
কোডিং এর ক্ষেত্রে আপনাকে কিভাবে করতে হবে থেকে কি করতে হবে তা বর্ণনা করার উপর বেশি গুরুত্ব দিতে হবে।
অ্যাপ এমএল এ মডেল এবং ভিউ এ আপনার অ্যাপ্লিকেশন ঘোষণা করতে হবে।
অ্যাপ এমএল এ খুব কমই (অনেক সময় কিছুই নয়) কোডিং করতে হয়।
উইকিপিডিয়া: ঘোষণামূলক প্রোগ্রামিং
দ্রুত এবং তৎপর এপ্লিকেশন উন্নয়ন (ডেভেলপমেন্ট)
কম্পিউটার অ্যাপ্লিকেশন এর জটিলতা নিয়ন্ত্রণ, প্রোগ্রামিং এর সঠিক কৌশল।
আবেদন আকার এবং কম জটিলতা রাখা, সকল প্রোগ্রামিং এর প্রধান সমস্যা।
RAD হচ্ছে একটি সফটওয়্যার ডেভেলপমেন্ট মেথড যা দ্রুত প্রোটোটাইপিং এর উদ্দেশ্যে নুন্যতম পরিকল্পনা ব্যবহার করে।
অ্যাপ এমএল অতিদ্রুত প্রোটোটাইপিং সরবরাহ করে, ঐতিহ্যগত উন্নয়ন পদ্ধতির তুলনায় ১০০ গুণ দ্রুত।
অ্যাপ্লিকেশন প্রোটোটাইপ অ্যাপ্লিকেশন মডেল থেকে কোন কোডিং ছাড়াই সরাসরি চালু হতে পারে।
উইকিপিডিয়া: দ্রুত এপ্লিকেশন ডেভেলপমেন্ট
এজাইল সফটওয়্যার উন্নয়ন (Agile software development) হচ্ছে একটি ধাপে ধাপে উন্নয়নের একটি পদ্ধতি, যেখানে ব্যবহারকারী এবং ডেভেলপারদের প্রত্যেক্ষ সহযোগিতায় সমাধান তৈরি করা হয়।
অ্যাপ এমএল দিয়ে অ্যাপ্লিকেশন ধাপে ধাপে অল্প বৃদ্ধি করে, প্রোটোটাইপ থেকে সম্পন্ন অ্যাপ্লিকেশন লেখা যেতে পারে।
উইকিপিডিয়া: তৎপর সফটওয়্যার ডেভেলপমেন্ট
চলবে (To be continue)
Jun 01
অ্যাপ এমএল রেফারেন্স – এপিআই (AppML Reference – API)
আদনান নাহিদ
অ্যাপ এমএল মেথড
| মেথড বা পদ্ধতি | বিবরণ |
| new AppML() | একটি নতুন AppML অবজেক্ট বা বস্তু তৈরি করুন |
| appml (“name”) | নির্দিষ্ট নামের AppML অবজেক্ট বা বস্তু ফেরত দেয় |
| displayMessage(text) | নির্দিষ্ট বার্তা প্রদর্শন করে |
| getData() | অ্যাপ্লিকেশন থেকে তথ্য গ্রহণ করে |
| run() | একটি অ্যাপ্লিকেশন অবজেক্ট বা বস্তু চালু করে |
| setError(no, description) | একটি নির্দিষ্ট ত্রুটি এবং ত্রুটির বর্ণনা সেট করুন |
AppML প্রোপার্টি
| প্রোপার্টি | বিবরণ |
| appName | অ্যাপ্লিকেশন নাম (ধারক আইডি) |
| controller | Aplication ধারক উপাদান |
| data | অ্যাপ্লিকেশন ডাটা অবজেক্ট বা বস্তু |
| dataSource | অ্যাপ্লিকেশন তথ্যের উৎস |
| displayType | অ্যাপ্লিকেশন টাইপ (“ফর্ম” অথবা “তালিকা”) |
| message | আবেদন বার্তা |
| error | অ্যাপ্লিকেশন অবজেক্ট বা বস্তুর ত্রুটি |
ডেটা বস্তুর বৈশিষ্ট্যাবলী
| প্রোপার্টি | বিবরণ |
| data.model | অ্যাপ্লিকেশন তথ্য মডেল |
| data.records | অ্যাপ্লিকেশন রেকর্ড (তথ্য) |
AppML ফরম মডেল বা পদ্ধতি
| পদ্ধতি | বিবরণ |
| newRecord() | বর্তমান ফর্ম পুনরায় সেট করা |
| saveRecord() | বর্তমান রেকর্ড সংরক্ষণ |
| deleteRecord() | বর্তমান রেকর্ড মুছে ফেলা |
| closeForm() | বর্তমান ফর্ম বন্ধ করা |
AppML ফিল্টার প্রোপার্টি
| পদ্ধতি | বিবরণ |
| OrderBys | ফিল্ডের নাম অনুসারে অ্যারে (Array) এর ক্রম |
| orderByDirections | নির্দেশ অনুসারে অ্যারে (Array) এর ক্রম |
| queryFields | ক্যোয়ারী ফিল্ডের নামের অ্যারে (Array) |
| queryValues | ক্যোয়ারী মানের অ্যারে (Array) |
| queryTypes | ক্যোয়ারী এর প্রকারের অ্যারে (Array) |
Jun 01
অ্যাপ এম এল রেফারেন্সঃ ডাটাবেস (AppML Reference – Databases)
রিদওয়ান বিন শামীম
ডাটাবেসের বৈশিষ্ট্য
ডাটাবেসের বৈশিষ্ট্য ডাটাবেসকে ডাটা সোর্সরূপে প্রদর্শন করে। এর কিছু উপবৈশিষ্ট্য আছে,
| Element (উপাদান) |
বর্ণনা |
| “connection” | ডাটাবেসের কানেকশনের নাম |
| “execute” | এসকিউএল বিবৃতির অ্যারি যা ডাটা পুনঃরসজ্জিত করার আগে সম্পাদন করতে হয় (ঐচ্ছিক) |
| “keyfield” | মূল টেবিলের জন্য প্রধান ক্ষেত্র(ঐচ্ছিক) |
| “maintable” | এপ্লিকেশনের জন্য মূল টেবিল(ঐচ্ছিক) |
| “orderby” | নির্ধারিত এসকিউএল আরোপিত ক্লস(ঐচ্ছিক) |
| “sql” | পুনঃরসজ্জিত ডাটার জন্য এসকিউএল বিবৃতি। |
ডাটাবেস থেকে ডাটা গ্রহণ
এই মডেল এসকিউএল ডাটাবেসের কাস্টমার টেবিল থেকে কাস্টমার, সিটি, দেশ ইত্যাদি তথ্য গ্রহন করে থাকে।
Example
{
"database": {
"connection": "mysql",
"sql" : "SELECT CustomerName, City, Country FROM Customers",
"orderby" : "CustomerName"
}
}
ফিল্টার সীমাবদ্ধতা
ব্যবহারকারীদের ফিল্টার ডাটায় প্রবেশযোগ্য করতে মডেলে ফিল্টার তথ্য যোগ করা যায়,
"filteritems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}]
সর্টিং সীমাবদ্ধতা
ব্যবহারকারীদের সর্টিং ডাটায় প্রবেশযোগ্য করতে মডেলে সর্টিং বিষয়ক তথ্য যোগ করা যায়,
“sortitems” : [
{“item” : “CustomerName”, “label” : “Customer”},
{“item” : “City”},
{“item” : “Country”}]
আপডেট সীমাবদ্ধতা
ব্যবহারকারীদের আপডেট ডাটায় প্রবেশযোগ্য করতে মডেলে আপডেট তথ্য যোগ করা যায়,
উদাহরণঃ
"updateItems" : [
{"item" : "CustomerName"},
{"item" : "Address"},
{"item" : "PostalCode"},
{"item" : "City"},
{"item" : "Country"}]
বাই ডিফল্ট অ্যাপ এম এল ফিল্টার, সর্টিং বা আপডেটের সুযোগ দেবে কেবল উল্লেখিত মডেল অনুসারে।
ডাটাবেস কানেকশন
ডাটাবেস কানেকশনকে appml_config.php এর মধ্যে বিবৃত করা হয়,
appml_config.php
<?php echo("Access Forbidden");exit();?>
{
"dateformat" : "yyyy-mm-dd",
"databases": [
{
"connection" : "mysql",
"host" : "127.0.0.1:3306",
"dbname" : "Northwind",
"username" : "myUserId",
"password" : "myPassword"
},
{
"connection" : "googleDB",
"host" : "192.168.1.1:3306",
"dbname" : "Northwind",
"username" : "myUserId",
"password" : "myPassword"
},
{
"connection" : "amazonDB",
"host" : "mydbinstance.amazon.com:3306",
"dbname" : "Northwind",
"username" : "myUserId",
"password" : "myPassword"
},
{
"connection" : "azureDB",
"host" : "azure.cloudapp.net",
"dbname" : "Northwind",
"username" : "myUserId",
"password" : "myPassword"
}
]
}
কনফিগারেশন ফাইল অনেকগুলো ডাটাবেস কানেকশন ধারন করতে পারে।
ডাটাবেস তৈরি করা
যেহেতু অ্যাপ এম এল এপ্লিকেশন চালুর আগেই এসকিউএল বিবৃতি সম্পাদনের সুযোগ দেয় তাই কোনও ডাটাবেস তৈরির জন্যও আমরা এটিকে ব্যবহার করতে পারি,
Model
{
"database" : {
"connection" : "myCDs",
"execute" : [
"DROP TABLE IF EXISTS CD_Catalog",
"CREATE TABLE IF NOT EXISTS CD_Catalog (CDID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (CDID),
Title NVARCHAR(255),Artist NVARCHAR(255),Country NVARCHAR(255),Price NUMBER)"
]
}}
দ্রুত প্রোটোটাইপিঙের জন্য উপযুক্ত।
May 31
অ্যাপ এম এল রেফারেন্সঃ ডাটা ফাইল (AppML Reference – Data Files)
রিদওয়ান বিন শামীম
ডাটাবেসের বৈশিষ্ট্য
ডাটাবেসের বৈশিষ্ট্য ডাটাবেসকে ডাটা সোর্সরূপে প্রদর্শন করে।এর কিছু উপবৈশিষ্ট্য আছে,
| উপাদান | বিবরণ |
| “type” | ডাটা ফাইলের ধরণ (“csvfile”, “xmlfile”, or “jsonfile”) |
| “filename” | ফাইলের নাম |
| “record” | এক্সএমএল ডাটা নডের নাম (যদি xmlfile হয়) |
| “items” | ডাটা আইটেম |
টেক্সট ফাইল থেকে ডাটা
এই মডেল কমা দিয়ে আলাদা করা টেক্সট ফাইল থেকে টাইটেল, আর্টিস্ট, মূল্য এসব রেকর্ড খুঁজে নেয়,(আইটেম ১, ২, ৫ এর মত)।
উদাহরণ
{
"data": {
"type" : "csvfile",
"filename": "cd_catalog.txt",
"items" : [
{"name": "Title", "index": 1},
{"name": "Artist","index": 2},
{"name": "Price", "index": 5}
]
}
}
উদাহরণের ব্যাখ্যা টেক্সট ফাইলের অনুরূপ
এক্সএমএল ফাইল থেকে ডাটা
এই মডেল এক্সএমএল ফাইলের সিডি নড থেকে টাইটেল, আর্টিস্ট, মূল্য এসব রেকর্ড খুঁজে নেয়।
উদাহরণ
{
"data": {
"type" : "xmlfile",
"filename": "cd_catalog.xml",
"record" : "CD",
"items" : [
{"name": "Artist", "nodename": "ARTIST"},
{"name": "Title", "nodename": "TITLE"},
{"name": "Country","nodename": "COUNTRY"}
]
}
}
উদাহরণের ব্যাখ্যা এক্সএমএল ফাইলের অনুরূপ
জেএসওএন ফাইল থেকে ডাটা
এই মডেল জেএসওএন ফাইলের সিডি অবজেক্টের আরি থেকে টাইটেল, আর্টিস্ট, মূল্য এসব রেকর্ড খুঁজে নেয়।
উদাহরণ
{
"data" : {
"type" : "jsonfile",
"filename" : "cd_catalog.js",
"record" : "cd",
"items" : [
{"name" : "Title", "nodename" : "title"},
{"name" : "Artist", "nodename" : "artist"},
{"name" : "Price", "nodename" : "price"}
]
}
}
উদাহরণের ব্যাখ্যা জেএসওএন ফাইলের অনুরূপ
May 31
অ্যাপ এম এল রেফারেন্স (AppML Reference)
রিদওয়ান বিন শামীম
অ্যাপ এম এল এইচটিএমএল এট্রিবিউট
উদাহরণ,
<div appml-include-html="inc_header.htm"></div>
<h1>Customers</h1>
<table appml-data="customers.js" appml-controller="myController">
<tr>
<th>Customer</th>
<th>City</th>
<th>Country</th>
</tr>
<tr appml-repeat="records">
<td>{{CustomerName}}</td>
<td>{{City}}</td>
<td>{{Country}}</td>
</tr>
</table>
<divappml-include-html="inc_footer.htm"></div>
| Attribute | Description | Explained |
| appml-controller | AppML controller হিসাবে বিবৃত | AppML Controllers |
| appml-data | এপ্লিকেশনের জন্য ডাটা সোর্স বিবৃত করে | AppML Data |
| appml-include-html | যে এইচটিএমএল ব্যবহৃত হবে তার বিবরণ | AppML Includes |
| appml-repeat | যে এইচটিএমএল পুনরাবৃত্ত হবে তার বিবরণ | AppML Howto |
অ্যাপ এম এল ম্যাসেজ
উদাহরণ,
function myController($appml) {
if ($appml.message == "display") {
if ($appml.display.name == "CustomerName") {
$appml.display.value = $appml.display.value.toUpperCase();
}
}
}
| Message | Description |
| “ready” | অ্যাপ এম এল শুরুর পরে দেখায়, লোড করতে প্রস্তুত |
| “loaded” | অ্যাপ এম এল লোডেড, ডাটা দেখাতে প্রস্তুত |
| “display” | অ্যাপ এম এল কোনও ডাটা আইটেম দেখানোর আগে দেখায়। |
| “done” | অ্যাপ এম এল সম্পন্ন হওয়ার পর দেখায় |
| “submit” | অ্যাপ এম এল ডাটা সাবমিটের আগে দেখায় |
| “error” | অ্যাপ এম এল কোনও ভুলের সম্মুখীন হলে দেখায় |
অ্যাপ এম এল ম্যাসেজ অধ্যায়ে এগুলো আরও বিস্তারিত ব্যাখ্যা করা হবে।
অ্যাপ এম এল মডেল
উদাহরণ ,
{
"security": "admin",
"rowsperpage" : 10,
"database": {
"connection": "mysql",
"sql" : "SELECT * FROM Customers",
"orderby" : "CustomerName"}},
"filteritems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}],
"sortitems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}]
}
অ্যাপ এম এল মডেলের বৈশিষ্ট্য
| উপাদান | বর্ণনা |
| “data” | মডেলের ফাইল সোর্স বর্ণনা করে। |
| “database” | মডেলের ডাটাবেস সোর্স বর্ণনা করে। |
| “filteritems” | ফিল্টারের সীমাবদ্ধতা নির্দেশ করে |
| “rowsperpage” | প্রতি পেজে সারির সংখ্যা খুঁজে, বিবৃত করে |
| “security” | মডেলের নিরাপত্তা বিবৃত করে |
| “sortitems” | সর্টিং সীমাবদ্ধতা বিবৃত করে। |
এপ্লিকেশন নিরাপত্তা
এপ্লিকেশনে ঢুকতে এডমিন মেম্বার হিসেবে লগ ইন করতে হবে।
উদাহরণ,
{
"security": "admin",
"database": {
"connection": "mysql",
"sql" : "SELECT * FROM Customers",
"orderby" : "CustomerName"}
}
প্রাইভেট মডেলঃ মডেলে নিজের প্রাইভেট ডাটা যোগ করার উপায় আছে, এই উদাহরণে ডাটার ক্ষেত্রে সীমাবদ্ধতা দেখানো হল,
"restrictions" : {
"fname" : {"maxlength": 40},
"price" : {"max": 999,"min": 100}
}
মডেল ডাটা সার্ভার এপ্লিকেশনেও ব্যবহৃত হয়, অ্যাপ এম এল কন্ট্রোলার দ্বারা।
নিচের উদাহরণে ইনপুট ভ্যালিডেশনের জন্য মডেল ডাটা ব্যবহৃত হয়েছে।
function myController($appml) {
if ($appml.message == "submit") {
var price = document.getElementById("price").value;
if (price < $appml.model.restrictions.price.min) {
$appml.displayError(15, "Price too low!");
return;
}
}
May 31
অ্যাপ এমএল এ অ্যামাজন ডাটাবেজ ব্যবহার করা (AppML using Amazon Database)
হ্যালো বন্ধুরা,
আমাদের সাইটে আসার জন্য ধন্যবাদ…
এখানে আমরা আমাজন ডাটাবেজ সম্পর্কে আলোচনা করব। ডাটাবেজ এ সংযুক্ত হওয়া খুব একটা কঠিন কাজ নয়। একটু জানলই তোমরা সহজেই ডাটাবেজ এর সাথে সংযুক্ত হতে পারবে
আস জেনে নেই…
আমাজন রিলেশনাল ডাটাবেস সার্ভিস কি (RDS)
বিভিন্ন ডাটাবেজ প্রতিষ্ঠানের মধ্যে আমাজন হলো একটি প্রতিষ্ঠান। এই প্রতিষ্ঠান বিভিন্ন ডাটাবেজের সুবিধা দিয়ে থাকে।
কেন আমরা আমাজন ডাটাবেজ ব্যবহার করব?
আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) একটি চলমান ডাটাবেজ এর অনেক চ্যালেঞ্জ মুখোমুখি পরিচালনা করে।
আপনার প্রয়োজন অনুসারে আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) এর সাথে কর্মক্ষমতা এবং স্টোরেজে এর পরিমান পরিবর্তন করতে পারেন।
রিলেশনাল ডাটাবেস সার্ভিস (RDS) স্বয়ংক্রিয় ব্যাকআপ, সংস্কার এবং পুনরুদ্ধারের পরিচালনা করে।
এটি জনপ্রিয় ডাটাবেজ পণ্যগুলো সমর্থন করে। যেমন:
- MySQL
- PostgreSQL
- Oracle
- Microsoft SQL Server
- and the new, MySQL-compatible Amazon Aurora DB engine
শুরু করা যাক
আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) শুরু করার আগে, অবশ্যই আমাজান ওয়েব সার্ভারে সাইন আপ করে নিতে হবে এবং ডাটাবেস ব্যবহারকারী এবং নিরাপত্তা গ্রুপ সেট আপ করে নিতে হবে।
আমাজন ওয়েব সার্ভিসেস এ সাইন আপ
যখন আপনি আমাজন ওয়েব সার্ভিসেস (AWS) এ সাইন আপ করবেন, AWS অ্যাকাউন্ট স্বয়ংক্রিয়ভাবে আমাজন রিলেশনাল ডাটাবেস সার্ভিস (RDS) সহ AWS এর সকল সেবার সাথে সাইন আপ করা হয়ে যাবে।
আপনি যদি AWS এর নতুন গ্রাহক হন তাহলে, বিনামূল্যে প্রদত্ত অ্যামাজন RDS দিয়ে শুরু করতে পারেন।
বিনামূল্যে প্রদত্ত AWS সাইন আপ করার ১২ মাস পর্দন্ত বিনামূল্যে ব্যবহার করার সুযোগ দেবে। আরো জানার জন্য দেখুন বিনামূল্যে AWS ব্যবহার।
মুক্ত স্তর আপনি সাইন আপ করার পরে আপনাকে 12 মাসের জন্য বিনামূল্যে জন্য Aws চেষ্টা করতে পারবেন না. আরো তথ্যের জন্য, Aws ফ্রী ব্যবহার টিয়ার দেখতে.
আপনার ফ্রী ব্যবহারের সময় শেষ হওয়ার পরও (বা ফ্রী ট্রায়য়াল অফার এর চেয়ে বেশি স্টোরেজ বা কার্যকারিতা প্রয়োজন হলে) আপনি যদি আপনার ব্যবহার চালিয়ে যেতে চান, তাহলে আপনি শুধুমাত্র যে রিসোর্স ব্যবহার করবেন তার উপর ভিত্তি করে মূল্য প্রদান করবেন।
AWS অ্যাকাউন্ট তৈরি করার জন্য http://aws.amazon.com/, এবং তারপর সাইন আপ এ ক্লিক করুন।
পর্দায় প্রদর্শিত নির্দেশাবলী অনুসরণ করুন। AWS একাউন্ট নম্বর লিখে রাখুন, কেননা এটি পরবর্তীতে প্রয়োজন হবে।
একটি মাইএসকিউএল ডাটাবেস ইনস্ট্যান্স তৈরি
এন এই উদাহরণে আমরা মাইএসকিউএল চলমান একটি বিনামূল্যে ডাটাবেস ইনস্ট্যান্স সেট আপ হবে. (এটা পরীক্ষার জন্য দেয়ার উদ্দেশ্যে করা হচ্ছে, কারণ এটি বিনামূল্যে).
একটি মাইএসকিউএল ডিবি উদাহরণস্বরূপ তৈরি করুন:
- আমাজান RDS কনসোল এ যান: https://console.aws.amazon.com/rds/
- নেভিগেশন প্যানেল থেকে Instances এ ক্লিক করুন
- Launch DB Instance এ ক্লিক করুন
- নির্বাচিত ইঞ্জিন পৃষ্ঠায় MySQL আইকন এ ক্লিক করুন এবং তারপর MySQL DB engine এ ক্লিক করে নির্বাচন করুন।
- উৎপাদন? (Production?) পৃষ্ঠায় “No, this instance is intended for use outside of production…….” লেখা চেক বক্স এ ক্লিক করুন এবং তারপর Next Step এ ক্লিক করুন
- Specify DB Details পৃষ্ঠার নির্দেশাবলী অনুসরণ করুন। (বিনামূলে টেস্ট ডাটাবেজ সেটিং করতে এই নির্দেশাবলী অনুসরণ করুন)
- Configure Advanced Settings পৃষ্ঠার নির্দেশাবলী অনুসরণ করুন। (বিনামূলে টেস্ট ডাটাবেজ সেটিং করতে এই নির্দেশাবলী অনুসরণ করুন)
- Launch DB Instance এ ক্লিক করুন।
- View Your DB Instances এ ক্লিক করুন।
- ডিবি ইনস্ট্যান্স এর তালিকায় নতুন ডিবি ইনস্ট্যান্স দেখা যাবে (এটি ব্যবহার করার উপযুক্ত অবস্থা আসার আগ পর্যন্ত “creating” অবস্থা দেখাবে)।
- যখন অবস্থা পরিবর্তীত হয়ে “available” হবে তখন আপনি ডাটাবেজ এ সংযুক্ত হতে পারবেন।
- বিস্তারিত দেখার জন্য details আইকনে ক্লিক করুন এবং “Endpoint” থেকে পোর্ট সহ URL কপি করুন।
নোটঃ URL এর শেষের দিকে অনেকটা এরকম দেখা যেতে পারে:
databasename.aaabbbcccddd.region.rds.amazonaws.com:3306
আ্যাপ এম এল -এ ডাটাবেজ সংযোগ স্থাপন
AppML ডাটাবেস সংযোগ কনফিগার
ডাটাবেস সংযোগ কনফিগার করার জন্য, appml_config ফাইল এডিট:
{
"dateformat" : "yyyy-mm-dd",
"databases" : [{
"connection" : "mydatabase",
"host" : "yourDatabaseURL",
"dbname" : "yourDatabaseName",
"username" : "yourUserName",
"password" : "yourPassword"
}]
}
নিম্নোক্ত বিষয়গুলো পরিবর্তন করুন
- mydatabase – আপনার অ্যাপ্লিকেশন এ ডাটাবেজ কানেকশন কল করা প্রয়োজন হলে এটি পরিবর্তন করুন।
- yourDatabaseURL – পূর্ববর্তী ধাপ থেকে Endpoint URL পরিবর্তন করুন।
- yourDatabaseName – আপনার Amazon RDS এর নাম অনুসারে আপনার ডাটাবেজ এর নাম পরিবর্তন করুন।
- yourUserName – আপনার Amazon RDS অনুসারে ইউজার এর নাম পরিবর্তন করুন।
- yourPassword – আপনার Amazon RDS অনুসারে পাসওয়ার্ড পরিবর্তন করুন।
অ্যাপ এমএল এখন Amazon RDS এর সাথে সংযুক্ত হওয়ার মতো কনফিগার করা হয়েছে।
আপনি এখন আপনার ডাটাবেজ কে ডাটা দ্বারা পূরণ করতে পারবেন:
- আপনার যদি পিএইচপি সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML PHP অধ্যায় এ আলোচনা করা হয়েছে।
- আপনার যদি ASP.NET সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML .NET অধ্যায় এ আলোচনা করা হয়েছে।
- আপনার যদি কোন সার্ভার এ প্রবেশাধিকার না থাকে তাহলে তা AppML WebMatrix অধ্যায় এ আলোচনা করা হয়েছে।
May 30
অ্যাপ এম এল -এ গুগল ক্লাউড এসকিউএল ব্যবহার করা (AppML using Google Cloud SQL)
রফিকুল ইসলাম
গুগল ক্লাউড এসকিউএল কী
গুগল ক্লাউড এসকউএল হচ্ছে ক্লাউড ভিত্তিক ডাটাবেজ সেবা।
গুগল ক্লাউড এসকিউএল কেন?
গুগল ক্লাউড এসকিউএল, মাই এসকিউএল ডাটাবেজকে কোন অতিরিক্ত বিরম্বনা ছাড়াই ক্লাউড এ স্থাপন করে।
গুগল শক্তিশালী ডাটাবেজ অফার করে এবং এর ব্যয় খুবই নমনীয় (যতটুকু ব্যবহার সেইঅনুপাতে বিল প্রদান করতে হয়)
গুগল স্বয়ংক্রিয় ব্যাকআপ, সংস্কার, এবং পুনরুদ্ধার পরিচালনা করে।
শুরু করা যাক
গুগল ক্লাউড এসকিউএল এর ব্যবহার শুরু করার আগে আপনার একটি গুগল একাউন্ট থাকতে হবে এবং গুগল ডেভেলপার কনসোল (Google Developers Console) এ সাইন আপ করতে হবে।
আপনার যদি গুগল একাউন্ট না থাকে তাহলে এখান থেকে গুগল একাউন্ট খুলুন।
গুগল ডেভেলপার কনসোল (Google Developers Console) এ সাইন আপ করা
যখন আপনি গুগল ডেভেলপার কনসোল এ সাইন আপ করবেন তখন, আপনার গুগল একাউন্ট সয়ংক্রিয়ভাবে গুগল ক্লাউড ও এসকিউএল এর সকল সেবার সাথে সাইন আপ করা হয়ে যাবে।
যদি আপনি ক্লাউড এর নতুন ব্যবহারকারী হন, তাহলে শুরু করার জন্য নির্দিষ্ট সময় বিনা মূল্যে ব্যবহার করতে পারেন। (ক্লাউড এসকিউএল প্রথম ৬০ দিনের জন্য বিনামূল্যে ব্যবহার করা যায়)। আরো জানতে বিনামূল্যে ক্লাউড দেখুন।
আপনার ফ্রী ব্যবহারের সময় শেষ হওয়ার পরও (বা ফ্রী ট্রায়য়াল অফার এর চেয়ে বেশি স্টোরেজ বা কার্যকারিতা প্রয়োজন হলে) আপনি যদি আপনার ব্যবহার চালিয়ে যেতে চান, তাহলে আপনি শুধুমাত্র যে রিসোর্স ব্যবহার করবেন তার উপর ভিত্তি করে মুল্য প্রদান করবেন।
গুগল ডেভেলপার কনসোন একাউন্ট খুলতে গুগল ডেভেলপার কনসোন একাউন্ট এ ক্লিক করুন এবং নির্দেশাবলী অনুসরণ করুন।
উদাহরণস্বরূপ মাইএসকিউএল ডাটাবেজ তৈরি করন
এই উদাহরণে চলন্ত মাইএসকিউএল এ আমরা ডাটাবেস ইনস্ট্যান্স সেট আপ করবো।
মাইএসকিউএল ডিবি ইনস্ট্যান্স তৈরি
- আপনি যখন আপনার একাউন্ট তৈরি করবেন তখন সয়ংক্রিয়ভাবে গুগল আপনার জন্য “My First Project” নামে একটি প্রোজেক্ট তৈরি করবে। আমরা এই উদাহরণে উক্ত প্রোজেক্টটি ব্যবহার করবো
- মেনু থেকে “Storage” এ ক্লিক করুন এবং তারপর “Cloud SQL” এ ক্লিক করুন
- “Create an instance” এ ক্লিক করুন
- “Create Cloud SQL instance” পেজ এ আপনার ডিবি এসকিউএল ইনস্ট্যান্স এর জন্য নাম, অঞ্চল এবং কর্মক্ষমতা স্তর ইত্যাদি নির্বাচন করুন। এই উদাহরন এর জন্য আপনি এডভান্স অপশন ছেড়ে যেতে পারেন।
- “Create” এ ক্লিক করুন।
- ডিবি ইনস্ট্যান্স এর তালিকায় নতুন ডিবি ইনস্ট্যান্স দেখা যাবে (যখন এর অবস্থা “Runnable” থাকবে তখন এটি ব্যবহারের জন্য উপযুক্ত অবস্থায় থাকবে)।
- ইনস্ট্যান্স এর নামের উপর ক্লিক করুন এবং নেভিগেশন প্যানেল এর “Access Control” এ ক্লিক করুন।
- সাব নেভিগেশন প্যানেল এর “IP address” এ ক্লিক করুন এবং “Request IPv4 address” বাটন এ ক্লিক করুন।
- এই আইপি এড্রেসটি সংরক্ষণ করে রাখুন। এই আইপি এড্রেসটি ডাটাবেজ এ সংযুক্ত হওয়ার সময় প্রয়োজন হবে।
- সাব নেভিগেশন প্যানেল এর “Users” এ ক্লিক করুন এবং “New user” বাটন এ ক্লিক করুন।
- আপনার ডাটাবেজ এর জন্য একটি ইউজার নেম ও পাসওয়ার্ড নির্দিষ্ট করে দিন।
- সাব নেভিগেশন প্যানেল এর “Authorization” এ ক্লিক করুন এবং তারপর Allowed Networks এর অধিন “+ Add item” বাটন এ ক্লিক করুন।
- এখানে আপনি নির্দিষ্ট করে দিতে পারবেন কারা আপনার ডাটাবেজ এ প্রবেশ করতে পারবে, এটা হতে পারে
- আপনার নিজস্ব আইপি বা আপনার সার্ভার এর আইপি। এভাবে আপনি আপনার ডাটাবেজ এ প্রবেশ করতে পারবেন।
- বা 0.0.0.0/0, যা বাহিরের যেকোন আইপি এড্রেস আপনার ডাটাবেজ এ প্রবেশ করতে পারবে (এটি নিরাপত্তা ঝুকি সৃষ্টি করতে পারে এবং আপনাকে এর জন্য অতিরিক্ত মুল্য প্রদান করতে হতে পারে)
- “Save” এ ক্লিক করুন।
- নেভিগেশন প্যানেল থেকে “Databases” এ ক্লিক করুন এবং “New database” বাটন এ ক্লিক করুন।
- আপনার ডাটাবেজ এর জন্য একটি নাম নির্দিষ্ট করুন। (আপনার প্রয়োজন অনুসারে অন্যান্য অপশনগুলে ছেড়ে যেতে পারেন)।
এখন আপনার একটি গুগল ক্লাউড এসকিউএল ডাটাবেজ আছে, সাথে আছে একটি আইপি আপনার ডাটাবেজ এ সংযুক্ত হওয়ার জন্য।
আ্যাপ এম এল -এ ডাটাবেজ সংযোগ স্থাপন
ডাটাবেজ সংযোগ স্থাপন করতে appml_config ফাইল কি সম্পাদনা করুন
PHP example: appml_config.php
<?php echo("Access Forbidden");exit();?>
{
"dateformat" : "yyyy-mm-dd",
"databases" : [{
"connection" : "mydatabase",
"host" : "yourDatabaseURL",
"dbname" : "yourDatabaseName",
"username" : "yourUserName",
"password" : "yourPassword"
}]
}
নিম্নোক্ত বিষয়গুলো পরিবর্তন করুন
- mydatabase – আপনার অ্যাপ্লিকেশন এ ডাটাবেজ কানেকশন কল করা প্রয়োজন হলে এটি পরিবর্তন করুন।
- yourDatabaseURL – পূর্ববর্তী ধাপ থেকে আইপি পরিবর্তন করুন এবং 3306 পোর্ট যোগ করুন। (উদাহরণ স্বরুপ: 192.168.1.1:3306)
- yourDatabaseName – আপনার গুগল ক্লাউড এসকিউএল এর নাম অনুসারে আপনার ডাটাবেজ এর নাম পরিবর্তন করুন।
- yourUserName – আপনার গুগল ক্লাউড এসকিউএল অনুসারে ইউজার এর নাম পরিবর্তন করুন।
- yourPassword – আপনার গুগল ক্লাউড এসকিউএল অনুসারে পাসওয়ার্ড পরিবর্তন করুন।
অ্যাপ এমএল এখন গুগল ক্লাউড এসকিউএল এর সাথে সংযুক্ত হওয়ার মতো কনফিগার করা হয়েছে।
আপনি এখন আপনার ডাটাবেজ কে ডাটা দ্বারা পূরণ করতে পারবেন।
- আপনার যদি পিএইচপি সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML PHP অধ্যায় এ আলোচনা করা হয়েছে।
- আপনার যদি ASP.NET সার্ভার এ প্রবেশাধিকার থাকে তাহলে তা AppML .NET অধ্যায় এ আলোচনা করা হয়েছে।
- আপনার যদি কোন সার্ভার এ প্রবেশাধিকার না থাকে তাহলে তা AppML WebMatrix অধ্যায় এ আলোচনা করা হয়েছে।
