Qu n lý sinh viên

Nhóm PTV

L I M Đ U Ờ Ở Ầ ☼☼☼☼☼☼☼☼

ờ c s h ượ ự ướ ứ ộ ướ Sau m t th i gian h c t p nghiên c u và đ ọ ậ ồ ẫ ầ ợ ữ ệ ư ụ ả t). ứ ớ ử ế ế Khi nói v XML thì đó là m t ngôn ng siêu đánh d u cho vi c trình bày ng d n t n tình c a ủ ẫ ậ Xây gi ng viên h Đ tài 01: ng d n th y H Diên L i nhóm PTV đã hoàn thành ề ả d ng trang thông tin ng d ng qu n lý sinh viên. (d li u l u dang XML, có các ự ch c năng thêm, b t, s a, tìm ki m, trình bày chi ti ứ ữ ấ c g i là ng d ng XML. ề ỗ ộ ấ ự chuyên ngành. M i ngôn ng đánh d u d a trên XML đ ữ ượ ọ ệ ụ ả ứ ị ấ ữ ư ệ ể ặ ả ọ d ng XML có th đ c t ụ h c, ho c GML cho cây ph h ọ

ụ ỗ ứ ữ riêng c a nó, nh ng ố ừ ữ ủ v n t ố ừ ượ ạ ấ ở ở t , làm c ch n là c s ọ ệ ấ ố ắ ủ ẻ ấ ạ ễ ộ ứ VD:Trình duy t Moliza, b ng tính Gnumeric, trình biên d ch XML, m t ng chuyên ngành nh là Ngôn ng đánh d u hóa h c cho hóa ả ệ ặ M i ng d ng XML g m có nh ng cú pháp và v n t ồ và cú pháp này tuân theo nh ng qui t c c a XML ữ XML là m t đ nh d ng r t m m d o cho d li u. XML đ ữ ệ ề ộ ị cho nh ng ngôn ng khác vì XML cung c p m t s đ nh d ng tài li u r t t ộ ự ị ữ ữ cho vi c truy xu t tài li u đó d dàng. ệ ấ t XML r t líấ ệ đ sồ ộ và ph c t p ,nó ứ ạ ầ ử trong tài li u, mà ệ không chỉ cho còn chó phép ch raỉ ưở ự này. ệ ng cho nh ng tài li u ữ phép b n chạ ỉ rõ từ v ng đ nh nghĩa các ph n t m i quan h gi a các ph n t ệ ữ ố thu t tích h p d ồ ậ ợ ữ li u tệ ừ nhi uề ị ầ ử ấ ệ XML cũng cung c p phía client bao g m kĩ ấ ữ trình bày nó chỉ trong m t tài li u duy nh t . ngu n và ồ ề ệ ộ ử ụ c vi Đ tài nhóm PTV cũng s d ng ngôn ng XML.N i dung tài li u XMl mà ộ ằ t b ng ngôn ng PHP v i c s d li u b ng ớ ơ ở ữ ệ ế ằ ượ ữ ự ệ nhóm PTV đang th c hi n đ XML

ự ệ ồ ề ế Trong quá trình th c hi n đ án nhóm PTV cũng g p nhi u khó khăn v ki n ợ ng d n c a th y H Diên L i ầ ề ặ ẫ ủ i s h ướ ự ướ ữ ư i trong nhóm cu i cùng nhóm PTV đã hoàn thành đ tài. th c r t r ng c a ngôn ng PHP,nh ng d và s h c a m i ng ườ ứ ấ ộ ự ỗ ủ ủ ọ ỡ ậ ủ ầ ồ ề ồ ế ộ đã giúp em hoàn thành đ tài m t cách t nh ng l n sau nhóm em s hoàn thành t ố ợ Nhóm PTV xin chân thành c m n s giúp đ t n tình c a th y H Diên L i ả ơ ự t nh t.Kính mong th y đóng góp ý ki n đ ể ố ầ ấ t h n. ố ơ ề ẽ ư ầ

Qu n lý sinh viên

Nhóm PTV

N I DUNG CHI TI T: Ộ Ế

I.Đ NH D NG TÀI LI U XML(DTD): Ạ Ệ Ị

II.TÀI LI U XML: Ệ

ồ ễ

Nguy n H ng Phú 08/07/1990 Nam Q9 - TP.HCM Tin32B Công Ngh Thông Tin Khóa 32 Toán RR 8

Qu n lý sinh viên

Nhóm PTV

LT for win 9 LT web 10 Nguy n Quang Vinh 15/03/1990 Nam Q9 - TP.HCM Tin32B Khoa CNTT Khoa 32 Toán RR 8 LT for win 9 LT web 10 Le Thi Trang 08/07/1990 Nam Q9 - TP.HCM Tin32B

Qu n lý sinh viên

Nhóm PTV

ế

ể ự t 1 s function đ th c

ượ ớ ệ c đ nh nghĩa s n cho phép ta truy c p các tài li u ậ ị Khoa CNTT Khoa 32 Toán RR 8 LT for win 9 LT web 10 Trong quá trình hi n th và thao tác ta c n vi ầ hi n vi c truy c p DOM trên tài li u XML DOMDocument php là 1 l p đ ẵ XML, HTML, XHTML,...

preserveWhiteSpace = false; $xmldoc->load("xml/sinhvien.xml"); $xmldoc->formatOutput = true;

ớ ủ ị ủ ả ề ề

ả ề ủ ề ầ

// Hàm tr v giá tr c a node đ u tiên v i tên tag c a node đó truy n vào ầ function getFirstValue($node,$tag){ return $node->getElementsByTagName($tag)->item(0)->nodeValue; } // Hàm tr v node đ u tiên v i tên tag c a node đó truy n vào ớ function getFirstNode($node,$tag){ return $node->getElementsByTagName($tag)->item(0); }

ị ớ ị

// Hàm gán giá tr cho 1 node $node có tag $tag v i giá tr $value function setNodeValue($node,$tag,$value){ getFirstNode($node,$tag)->nodeValue = $value; }

tag masv ả ề c t ượ ừ

// Hàm tr v node sinhvien tìm đ function getSinhVien($xmldoc,$masv){ // L y t t c các node sinh viên ấ ấ ả

Qu n lý sinh viên

Nhóm PTV

ệ ừ

c masv v i masv là 1 attribute ớ ượ

c ượ

ừ ủ

$allSinhVien = $xmldoc->getElementsByTagName("sinhvien"); // Duy t t ng node sinh viên foreach($allSinhVien as $sinhvien) { // Tìm đ if(trim(getValueAttribute($sinhvien,"masv")) == trim($masv)) return $sinhvien; // Tr v node sinh viên tìm đ ả ề } } // function tìm 1 t c a tên function TrimName($name) { $name = @explode(" ",trim($name)); return $name[0]; }

1 th b t kỳ trong node ẻ ấ c t ượ ừ ả ề ả

i hàm d ng l ị ạ ế ử ụ

ệ ừ

ủ ọ ọ ặ

c giá tr ị ượ ế

i ạ ữ

// Hàm tr v m ng các node sinhvien tìm đ sinhvien // Ví d sinh viên có tag ngaysinh ụ function searchSinhVien($xmldoc,$tag,$value){ // N u tìm theo mã, vì mã mà 1 attribute đ nh danh nên ta s getSinhVien if($tag == "masv") return array(getSinhVien($xmldoc,$value)); // Tìm t t c sinhvien ấ ả $allSinhVien = $xmldoc->getElementsByTagName("sinhvien"); // Duy t t ng sinhvien foreach($allSinhVien as $sinhvien) { // N u tìm theo h ho c tên (vì h tên là 2 tag con c a tag tensv trong node ế sinhvien) if($tag == "ho" || $tag == "ten") { $nodeTensv=$sinhvien->getElementsByTagName("tensv")->item(0); // N u tìm đ if(TrimName(getFirstValue($nodeTensv,$tag)) == TrimName($value)) $arraySinhVien[] = $sinhvien; // gán vào m ngả } // Tìm nh ng tag không có children node còn l else if(getFirstValue($sinhvien,$tag) == $value) { $arraySinhVien[] = $sinhvien; }

} return $arraySinhVien;

Qu n lý sinh viên

Nhóm PTV

}

ng $node ph i ch a $value tìm ố ượ ứ ả ị

// Hàm tìm giá tr thu c tính atribute, đ i t ộ ki mế // Ví d node sinhvien có masv là attribute function getValueAttribute($node,$value) { return @$node->getAttribute($value); }

c, $node ph i t n t i attribute ị ượ ả ồ ạ

// Hàm gán giá tr cho 1 attribute tìm đ $nameAttribute function setNodeAttribute($node,$nameAttribute,$value) { $node->setAttribute($nameAttribute,$value); }

?>

III.TRANG HI N TH N I DUNG TÀI LI U XML: Ị Ộ Ệ Ệ

III.1.Hình nh trang hi n th n i dung: ị ộ ệ ả

Qu n lý sinh viên

Nhóm PTV

III.2.Ph n code trang hi n th n i dung: ị ộ ệ ầ

: ế

i tính ớ

Danh sách sinh viên

ế ế

cượ

ỗ ế ế

ấ ệ ừ

" size="30" /> ế

Không tìm th y sinh viên!

"); // Duy t t ng sinhvien foreach($arraysv as $sinhvien) { // Gán k t quế $masv = getValueAttribute($sinhvien,"masv"); $tensv = getFirstValue($sinhvien,"ho")." ".getFirstValue($sinhvien,"ten"); $ngaysinh = getFirstValue($sinhvien,"ngaysinh"); $gioitinh = getFirstValue($sinhvien,"gioitinh"); $diachi = getFirstValue($sinhvien,"diachi"); $lop = getFirstValue($sinhvien,"lop"); $khoa= getValueAttribute(getFirstNode($sinhvien,"khoa"),"makhoa"); ?>

Qu n lý sinh viên

Nhóm PTV

ng ườ ể

$qlsinhvien = $xmldoc->getElementsByTagName("sinhvien"); foreach($qlsinhvien as $sinhvien) { $masv = getValueAttribute($sinhvien,"masv"); $tensv = getFirstValue($sinhvien,"ho")." ".getFirstValue($sinhvien,"ten"); $ngaysinh = getFirstValue($sinhvien,"ngaysinh"); $gioitinh = getFirstValue($sinhvien,"gioitinh"); $diachi = getFirstValue($sinhvien,"diachi"); $lop = getFirstValue($sinhvien,"lop"); $khoa = getValueAttribute(getFirstNode($sinhvien,"khoa"),"makhoa");

?>

Qu n lý sinh viên

Nhóm PTV

ầ ồ ễ ệ ồ ị ễ

?>

Mã sinh viên Tên sinh viên Ngày sinh Gi ớ Đ a ch ị L pớ Khoa S aử Xóa
S aử Xóa
S aử Xóa

Danh sách sinh viên XMLThêm Sinh viên

GVHD: Th y H Diên L i
Nhóm th c hi n: PTV - Nguy n H ng Phú - Lê Th Trang - ự Nguy n Quang Vinh

IV.TRANG C P NH T N I DUNG TÀI LI U XML: Ậ Ộ Ậ Ệ

IV.1.Hình nh trang c p nh t n i dung: ậ ộ ậ ả

ố ử ẽ ượ ệ đ l u l i thông tin đã ấ S a sinh viên ử ể ư ạ ử

Thông tin mu n s a s đ c hi n th lên trang. ị Khi hoàn thành xong thông tin s a thì nh n c s a. đ ượ ử Nh p ấ Quay l i trang hi n th . ị iạ đ tr l ể ở ạ ệ

IV.2.Ph n code trang c p nh t n i dung: ậ ộ ậ ầ

Qu n lý sinh viên

Nhóm PTV

require_once("function.php"); $masv = $_GET["masv"];

cượ ấ

i tính ớ

ị ị ấ ị

ị ấ ị

ấ ị

ọ ố ế

// Node sinh viên tìm đ $sinhvien = getSinhVien($xmldoc,$masv) or die("Không tìm th y sinh viên"); // Tên SV $hosv = getFirstValue($sinhvien,"ho"); $tensv = getFirstValue($sinhvien,"ten"); // Ngày sinh $ngaysinh = getFirstValue($sinhvien,"ngaysinh"); // Gi $gioitinh = getFirstValue($sinhvien,"gioitinh"); // Đ a ch ỉ ị $diachi = getFirstValue($sinhvien,"diachi"); // L pớ $lop = getFirstNode($sinhvien,"lop"); // xác đ nh node lop trong node sinhvien $malop = $lop->getAttribute("malop"); // l y giá tr attribute malop trong node lop ấ $tenlop = getFirstValue($sinhvien,"lop"); // l y giá tr tenlop trong node lop // Khoa $khoa = getFirstNode($sinhvien,"khoa"); // xác đ nh node khoa trong node khoa $makhoa = $khoa->getAttribute("makhoa"); // l y giá tr attribute makhoa trong node khoa $tenkhoa = getFirstValue($sinhvien,"khoa"); // l y giá tr tenkhoa trong node khoa // Khóa h cọ $khoahoc = getFirstValue($sinhvien,"khoahoc"); // Đ m s môn h c trong node ketqua $nodeKetqua = getFirstNode($sinhvien,"ketqua"); $arrayMonHoc = $nodeKetqua->getElementsByTagName("monhoc"); $somon = 0; foreach($arrayMonHoc as $monhoc) { $ketqua["tenmh"][$somon] = getFirstValue($monhoc,"tenmh"); // l y tên môn h c ọ $ketqua["diem"][$somon] = getFirstValue($monhoc,"diem"); $somon++; } ?>

S a sinh viên



Qu n lý sinh viên

Nhóm PTV

i tính:

style="margin-left:100px;" type="submit" value="S a sinh viên" ử

style="" type="button" value="Quay l i"ạ

CODE S A :Ử if(isset($_POST["edit"]))// S aử {

Qu n lý sinh viên

Nhóm PTV

ử ị ủ

i tính ớ ử

ị ử

ớ ử

ị ừ ử

ư ệ

// Tìm node sinhvien c n s a ầ ử $nodeSinhVien = getSinhVien($xmldoc,$masv); // Tìm node tensv trong node sinhvien $nodeTenSV = getFirstNode($nodeSinhVien,"tensv"); // S a giá tr c a các children node $nodeTenSV setNodeValue($nodeTenSV,"ho",$hosv); setNodeValue($nodeTenSV,"ten",$tensv); // S a node ngày sinh setNodeValue($nodeSinhVien,"ngaysinh",$ngaysinh); // S a node gi setNodeValue($nodeSinhVien,"gioitinh",$gioitinh); // S a node Đ a ch ỉ setNodeValue($nodeSinhVien,"diachi", $diachi); // S a node L p $nodeLop = getFirstNode($nodeSinhVien,"lop"); setNodeAttribute($nodeLop,"malop",$malop); setNodeValue($nodeSinhVien,"lop",$tenlop); // S a node Khoa $nodeKhoa = getFirstNode($nodeSinhVien,"khoa"); setNodeAttribute($nodeKhoa,"makhoa",$makhoa); setNodeValue($nodeSinhVien,"khoa",$tenkhoa); // S a node Khóa h c ọ setNodeValue($nodeSinhVien,"khoahoc",$khoahoc); // S a các node con trong node Ketqua $nodeKetQua = getFirstNode($nodeSinhVien,"ketqua"); $allNodeMonHoc = $nodeKetQua->getElementsByTagName("monhoc"); // S a node ketqua ử $i = 0; foreach($allNodeMonHoc as $nodeMonHoc) { // s a giá tr t ng node setNodeValue($nodeMonHoc,"tenmh",$_POST["tenmh".$i]); setNodeValue($nodeMonHoc,"diem",$_POST["diem".$i]); $i++; } // L u tài li u XML và chuy n đ n sv v a s a ừ ử ể ế $xmldoc->save("xml/sinhvien.xml"); header("Refresh:0; url=editXml.php?masv=$masv");

: V.TRANG THÊM M U TIN VÀO N I DUNG TÀI LI U XML Ộ Ẫ Ệ

V.1.Hình nh trang thêm m u tin : ẫ ả

Qu n lý sinh viên

Nhóm PTV

V.2.Ph n code trang thêm m u tin: ẫ ầ

label>

?>

Thêm Sinh Viên



CODE THÊM M U TIN: Ẫ

ạ if(isset($_POST["add"])) { // Tao node sinhvien $nodeSinhvien = $xmldoc->createElement("sinhvien"); // T o attribute masv $attMasv = $xmldoc->createAttribute("masv"); // Gán giá tr cho attribute masv $attMasv->appendChild($xmldoc->createTextNode($masv)); $nodeSinhvien->appendChild($attMasv); // T o node tensv $nodeTensv = $xmldoc->createElement("tensv");

Qu n lý sinh viên

Nhóm PTV

ạ ọ

ắ // T o node h $nodeHo = $xmldoc->createElement("ho",$hosv); // T o node tên $nodeTen = $xmldoc->createElement("ten",$tensv); // G n node h vào node tensv ọ $nodeTensv->appendChild($nodeHo); // G n node ten vào node tensv $nodeTensv->appendChild($nodeTen); // G n node tensv vào node sinhvien $nodeSinhvien->appendChild($nodeTensv); // T o node ngaysinh $nodeNgaysinh = $xmldoc->createElement("ngaysinh",$ngaysinh); // G n node ngaysinh vào sinhvien $nodeSinhvien->appendChild($nodeNgaysinh); // T o node gioitinh $nodeGioitinh = $xmldoc->createElement("gioitinh",$gioitinh); // G n node gioitinh vào sinhvien $nodeSinhvien->appendChild($nodeGioitinh); // T o node diachi $nodeDiachi = $xmldoc->createElement("diachi",$diachi); // G n node diachi vào sinhvien $nodeSinhvien->appendChild($nodeDiachi); // T o node lop $nodeLop = $xmldoc->createElement("lop",$tenlop); // T o attribute malop $attrMalop = $xmldoc->createAttribute("malop"); // Gán giá tr cho attribute malop $attrMalop->appendChild($xmldoc->createTextNode($malop)); // G n attribute malop cho node lop $nodeLop->appendChild($attrMalop); // G n node lop vào node sinhvien $nodeSinhvien->appendChild($nodeLop); // T o node Khoa $nodeKhoa = $xmldoc->createElement("khoa",$tenkhoa); // T o attribute makhoa $attrMakhoa = $xmldoc->createAttribute("makhoa"); // Gán giá tr cho attribute makhoa $attrMakhoa->appendChild($xmldoc->createTextNode($makhoa)); // G n attribute makhoa cho node khoa $nodeKhoa->appendChild($attrMakhoa); // G n node khoa cho node sinhvien $nodeSinhvien->appendChild($nodeKhoa); // T o node Khoahoc $nodeKhoahoc = $xmldoc->createElement("khoahoc",$khoahoc); // G n node Khoahoc cho node sinhvien $nodeSinhvien->appendChild($nodeKhoahoc);

Qu n lý sinh viên

Nhóm PTV

ạ ủ

ạ ủ

ủ ạ

ắ ừ ố

ắ // T o node KetQua $nodeKetQua = $xmldoc->createElement("ketqua"); for($i = 0; $i < $somon ; $i++) { // T o node monhoc child c a nodeKetqua $nodeMonHoc = $xmldoc->createElement("monhoc"); // T o node TenMonhoc children c a monhoc $nodeTenMonhoc = $xmldoc->createElement("tenmh", $_POST["tenmh".$i]); // G n vào monhoc $nodeMonHoc->appendChild($nodeTenMonhoc); // T o node Diem children c a monhoc $nodeDiem = $xmldoc- createElement("diem", $_POST["diem".$i]); // G n vào monhoc $nodeMonHoc->appendChild($nodeDiem); // Cu i cùng g n t ng monhoc và ketqua $nodeKetQua->appendChild($nodeMonHoc); } // G n ketqua cho sinhvien $nodeSinhvien->appendChild($nodeKetQua); // G n node sinhvien cho node qlsinhvien getFirstNode($xmldoc,"qlsinhvien")->appendChild($nodeSinhvien);

ệ ư ừ

// L u tài li u XML và chuy n đ n sv v a thêm ể ế $xmldoc->save("xml/sinhvien.xml"); header("Refresh:0; url=editXml.php?masv=$masv");

querystring ấ ừ

node qlsinhvien xóa node sinhvien ứ ở

ư ệ

VI.XÓA M U TIN: if(isset($_GET["masv"])) // Xóa { // l y masv xóa t $masv = $_GET["masv"]; // tìm node sinhvien c n xóa ầ $nodeSinhVien = getSinhVien($xmldoc,$masv); // đ ng getFirstNode($xmldoc,"qlsinhvien")->removeChild($nodeSinhVien); // L u tài li u XML $xmldoc->save("xml/sinhvien.xml"); header("Refresh:0; url=index.php"); } ?>

K T LU N: Ậ Ế

ự ề ớ ẻ ả ộ Xây d ng m t trang xml không ph i là v n đ m i m . Quanh XML luôn có ấ ng đi u và l n x n. Tuy nhiên, nó không khó khăn nh b n nghĩ -- nh t là nhi u c ư ạ ệ ấ ộ ộ ề ườ

Qu n lý sinh viên

Nhóm PTV

ộ ạ ệ ự ữ ớ ạ ẽ ấ ạ ể ể ử ụ ề Trong th gi ộ ở ạ trong m t ngôn ng l n nh PHP. Khi b n hi u và th c hi n XML đúng cách, b n s ư th y có nhi u công c m nh mà b n có th s d ng. ệ ệ ế ề ứ ớ ườ ề ủ ờ ờ ả ệ ữ i đã ti ệ ế ớ ộ ố ự ệ ỗ ợ t ki m đ ượ ệ ấ ườ

ở ệ ủ ch c l u tr ữ ứ ư ả ệ ả ẻ ố ệ ữ ệ ọ ệ ổ ớ ạ ơ ệ ờ ấ ệ ấ ặ ệ ở ơ ữ ằ ề ự ộ ở ụ ạ ầ i hi n đ i ngày nay, công ngh thông tin đã tr thành m t ph n ệ t y u trong cu c s ng. V i nh ng h tr ngày càng nhi u c a công ngh thông tin t ấ ế trong các lĩnh v c, con ng c khá nhi u th i gian và công s c làm vi c, nh đó hi u qu công vi c tăng lên g p nhi u l n. M t trong nh ng đóng góp ề ầ ữ ộ ch c l u tr d li u. i là vi c t quan tr ng c a công ngh thông tin cho con ng ữ ữ ệ ệ ổ ứ ư ố i thoát kh i m t kh i thông tin trên máy tính, con ng V i vi c t ộ ỏ ườ ớ l ng l n công vi c ph i ghi chép, giúp cho vi c trao đ i và chia s thông tin tr nên ổ ượ linh ho t h n, còn giúp đ m b o an toàn d li u và d dàng th ng kê… Các hình ễ ả th c l u tr ng dùng ngày nay là: c s d li u quan h , các d ng tài d li u th ạ ơ ở ữ ệ ườ ữ ữ ệ ứ ư li u văn b n, tài li u XML… Nh c u trúc đ n gi n, d truy xu t và đ c bi t không ệ ệ ễ ả ả ph thu c vào m t n n t ng nào, vi c l u tr b ng tài li u XML ngày càng tr nên ụ ệ ư ộ ề ả ộ ẩ c ng d ng r ng rãi trong nhi u lĩnh v c… XML đã tr thành chu n ph bi n, đ ượ ứ ổ ế ti n l ệ ệ ợ ườ ệ ấ ệ ầ ư ủ ộ ệ ạ ế ị ả ở ở ỏ ọ ế ể ể ộ ọ ơ ế ư ụ ề ự i, các thi ơ ế ấ ữ ủ ằ ừ ệ ế ạ ộ ứ ệ ề ậ ợ ng d li u di đ ng: tính toán di đ ng, thi ấ ọ ẹ ợ ư ộ ữ ạ ẹ ủ ộ ế ị ộ ữ ệ ế ị ữ ự ệ ế ộ ụ i cho vi c trao đ i thông tin trên Web. ổ ơ ở ữ ệ ng c s d li u Hi n nay, v n đ ng d ng công ngh XML trong môi tr ề ứ c a các nhà nghiên c u. Nh t là di đ ng đang thu hút nhi u s quan tâm, đ u t ấ ứ ổ ế t b di đ ng đang tr nên quan tr ng và ph bi n trong hoàn c nh hi n t ộ ọ nên nh g n và t b di đ ng ngày càng tr trong xã h i chúng ta. H n th các thi ế ị ộ thông minh, có th truy xu t thông tin m i lúc m i n i, có th trao đ i, giao ti p v i ớ ọ ổ ự các h th ng khác b ng nh ng công ngh vô tuy n nh : Wifi, BlueTooth,… Chính s ệ ố ệ t b di đ ng và công ngh vô tuy n đã t o ra phát tri n không ng ng c a các thi ế ị ể i cũng nh thách th c trong vi c nghiên c u các v n đ liên quan đ n nhi u thu n l ế ứ ề ớ t k d li u g n nh phù h p v i môi tr ữ ệ ế ế ữ ệ ườ t b , truy v n hi u qu và đ ng b d li u… không gian l u tr h n h p c a các thi ồ ả ệ ấ ư S hòa h p gi a các thi t b di đ ng và công ngh vô tuy n tr thành lĩnh v c nghiên ở ợ ự c u nhi u ti m năng. ề ứ ề