Tải bản đầy đủ (.pdf) (56 trang)

Thư viện hỗ trợ thông dịch mã nguồn trên windows phone

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.84 MB, 56 trang )

Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

MỤC LỤC
LỜI CAM ĐOAN .................................................................................................................. 3
LỜI CẢM ƠN ........................................................................................................................ 4
DANH MỤC CÁC TỪ VIẾT TẮT VÀ KÝ HIỆU TOÁN HỌC ......................................... 5
Từ viết tắt ............................................................................................................................... 5
DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU ........................................................................... 7
Hình vẽ ................................................................................................................................... 7
LỜI MỞ ĐẦU ........................................................................................................................ 9
Tính cấp thiết ......................................................................................................................... 9
Mục tiêu của đề tài ................................................................................................................. 9
Nội dung nghiên cứu ............................................................................................................ 10
Đối tượng phạm vi nghiên cứu ............................................................................................ 10
Kết quả của đề tài................................................................................................................. 11
Chương 1 – TỔNG QUAN .................................................................................................. 12
1.1 Tổng quan về thông dịch mã nguồn ............................................................................ 12
1.1.1 Ngôn ngữ biên dịch ............................................................................................... 12
1.1.2 Ngôn ngữ thông dịch .............................................................................................. 13
1.2 Phát biểu bài toán ........................................................................................................... 13
1.3 Chọn hướng giải quyết .................................................................................................. 14
Chương 2 - XÂY DỰNG BỘ ĐỌC DỮ LIỆU CHO FRAMEWORK ............................... 16
2.1 Xây dựng hàm đọc file từ webservices .......................................................................... 16
2.2 Xây dựng thư viện cho việc đọc file class tiêu chuẩn.................................................... 19
2.2.1. Mô hình class tiêu chuẩn ....................................................................................... 19
2.2.2. Xây dựng thư viện core java để đọc các class tiêu chuẩn ..................................... 20
Chương 3 – CHUYỂN ĐỔI SANG JSON TỪ CLASS TIÊU CHUẨN ............................. 22
3.1 Giới thiều về Json ......................................................................................................... 22
3.2 Cấu trúc một Json .......................................................................................................... 22
3.3 So sánh Json và XML: ................................................................................................... 27


Trang 1


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone
3.4. Chuyển mã nguồn từ Class tiêu chuẩn thành file Json: ................................................ 28
Chương 4 - XÂY DỰNG WEBSERVICES NHẬN, TRẢ JSON ....................................... 32
4.1 Giới thiệu mô hình Spring MVC ................................................................................... 32
4.2 Xây dựng Web services ................................................................................................. 33
Chương V - XÂY DỰNG THƯ VIỆN CHO WINDOWS PHONE ................................... 39
5.1 Lập trình Windows Phone 8: ......................................................................................... 39
5.1.1 Khái niệm Windows phone .................................................................................... 39
5.1.2 Kiến trúc Windows phone ...................................................................................... 39
5.2 Xây dựng chương trình trên windows phone nhận trả file json..................................... 44
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN ............................................ 54
Kết luận ................................................................................................................................ 54
Hướng phát triển của đề tài .................................................................................................. 54
TÀI LIỆU THAM KHẢO ................................................................................................... 55

Trang 2


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của chính bản thân.
Các kết quả nghiên cứu trong luận văn là trung thực và chưa được công bố trong
các công trình nào khác.

Tác giả luận văn


Nguyễn Hùng Anh

Trang 3


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

LỜI CẢM ƠN
Luận văn được hoàn thành tại trường Đại học bách khoa Hà Nội, là kết quả của
khoá cao học CH2013B.
Đầu tiên cho phép tôi chân thành cám ơn tới Thầy giáo TS.Lã Thế Vinh đã trực
tiếp hướng dẫn và sửa chữa trong suốt thời gian nghiên cứu hoàn thành luận văn
này.
Tôi cũng xin bày tỏ lòng biết ơn sâu sắc tới các thầy cô giáo Viện đào tạo sau
đại học đã tham gia giảng dạy lớp Cao học ngành công nghệ thông tin. Tôi xin cảm
ơn gia đình, các đồng nghiệp, các phòng ban chức năng và bạn bè đã giúp đỡ động
viên tôi trong suốt thời gian học tập và hoàn thiện luận văn.
Xin chân thành cảm ơn!

Người thực hiện

Nguyễn Hùng Anh

Trang 4


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

DANH MỤC CÁC TỪ VIẾT TẮT VÀ KÝ HIỆU TOÁN HỌC
Từ viết tắt


Từ viết tắt

Tiếng anh

Nghĩa tiếng việt

JVM

Java Virtual Machine

Máy ảo Java

JRE

Java Runtime Environment

Môi trường Java

JIT

Just In Time

Tức thời

OS

Openrating System

Hệ điều hành


XML

Extensible Markup Language

Ngôn ngữ đánh dấu mở rộng

Spring

Spring Framework

Framework theo mô hình Spring

AOP

Aspect Oriented Programming

Kỹ thuật lập trình cho phép đóng
gói những hành vi có liên quan
đến nhiều lớp

MVC

Model View Control

Mô hình Dữ liệu- Hiển thị- Điều
khiển

JSON


Java Script Object Notation

Cú pháp để lưu trữ và trao đổi
thông tin văn bản

SOAP

Simple Object Access protocol

Giao thức sử dụng XML để định
nghĩa dữ liệu dạng thuần văn
bản

DAO

Data Access Object

Đối tượng truy cập dữ liệu

Trang 5


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

DOM

Document Object Model

Mô hình các đối tượng trong tài
liệu HTML


DB

Database

Cơ sở dữ liệu

JDBC

Java Database Connectivity

Phương thức kết nối cơ sở dữ
liệu của Java

Trang 6


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU
Hình vẽ
Hình 1.1: Quá trình biên dịch .............................................................................................. 12
Hình 1.2: Quá trình thông dịch ............................................................................................ 13
Hình 1.3: Mô hình tổng thể giải quyết bài toán ................................................................... 15
Hình 2.1: Luồng làm việc của java ...................................................................................... 17
Hình 2.2: Mô hình UML cho việc đọc File ......................................................................... 18
Hình 2.3 Thư viện core java ................................................................................................ 20
Hình 3.1: Mô hình JSON dạng đối tượng ............................................................................ 22
Hình 3.2: Mô hình JSON kiểu mảng ................................................................................... 24
Hình 3.3: Tổng quan các dịch vụ với sự hỗ trợ của JSON .................................................. 25

Hình 3.4: Các mô hình lưu trữ json ..................................................................................... 26
Hình 3.5: Lưu dữ liệu Json vào ổ đĩa ................................................................................... 29
Hình 3.6: Hướng dẫn mở file Json bằng NotePad ............................................................... 30
Hình 3.7: Kết quả file Json .................................................................................................. 30
Hình 4.1: Mô hình nhận file json từ client ........................................................................... 32
Hình 4.2: Tạo web services.................................................................................................. 34
Hình 4.3: Kết quả trả về của web services trên trình duyệt ................................................. 37
Hình 4.4: Kết quả sau khi sửa đường dẫn URL ................................................................... 37
Hình 4.5: Kết quả của web services khi sử dụng đường dẫn server .................................... 38
Hình 5.1: kiến trúc Windows phone .................................................................................... 39
Hình 5.2: Mô hình điều hướng trong Windows phone ........................................................ 40
Hình 5.3: Điều hướng của 3 trang ....................................................................................... 41
Hình 5.4: Thiết kế màn hình đăng nhập............................................................................... 41
Hình 5.5: Cơ chế đăng nhập và chứng thực ......................................................................... 42
Hình 5.6: Cập nhật CSDL với Web services ....................................................................... 42
Hình 5.7: Mối liên kết giữa Code behide với giao diện ....................................................... 43

Trang 7


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone
Hình 5.8: Mô hình các lớp MVVM ..................................................................................... 44
Hình 5.9: Giao diện để nhận trả Json ................................................................................... 45
Hình 5.10: Kết quả Web services trả về .............................................................................. 48
Hình 5.10: Cách lấy địa chỉ máy.......................................................................................... 48
Hình 5.11: Kết quả thực hiện chương trình ......................................................................... 52

Trang 8



Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

LỜI MỞ ĐẦU
Tính cấp thiết
Khoa học công nghệ là đặc trưng của thời đại, nghiên cứu khoa học đã trở thành
một hoạt động sôi nổi và rộng khắp trên phạm vi toàn cầu. Các thành tựu khoa học
hiện đại đã làm thay đổi bộ mặt thế giới. Khoa học và công nghệ đã trở thành động
lực thúc đẩy sự tiến bộ của nhân loại. Cùng với nghiên cứu khoa học hiện đại, mọi
người đang chú ý đến phương pháp nhận thức khoa học, coi đó là nhân tố quan
trọng để phát triển khoa học.
Hiện nay có thể nói là thời kỳ phát triển các thiết bị di động với tốc độ vũ bão
nhất từ trước đến nay. Nếu bàn hệ điều hành cho thiết bị di động thì hiện nay có 2
hệ điều hành chiếm thị phần lớn nhất đó là IOS và Android. Sự ra đời của điện thoại
dùng hệ điều hành Windows Phone 7 là kết quả của việc xây dựng lại hoàn toàn hệ
điều hành di động của Microsoft và mở đầu cho những nổ lực của hãng để dành lại
thị phần di động vốn rất có tính cạnh tranh này. Sau Windows Phone 7 Microsoft
cho ra đời Windows Phone 8 ngày càng khẳng định vị thế của Windows Phone. Vì
vậy tác giả muốn vận dụng kiến thức để tìm hiểu, phân tích việc thực thi một mã
nguồn của ngôn ngữ lập trình trên Windows Phone.
Mặc dù, tác giả cố gắng hoàn thành bài luận văn trong khoảng thời gian và khả
năng cho phép. Tuy nhiên không thể tránh khỏi những sai sót, tác giả mong muốn
nhận được những đánh giá khách quan và công tâm nhất từ phía hội động để bài
luận văn trở nên hoàn chỉnh hơn.
Mục tiêu của đề tài
Trong luận văn này tác giả sẽ nghiên cứu sự chuyển đổi ngôn ngữ lập trình trên
Windows phone thông qua webservices.

Trang 9



Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Luận văn đưa ra giải pháp dùng ngôn ngữ lập trình java chuyển đổi một chương
trình nguồn viết bằng ngôn ngữ bất kỳ (ngôn ngữ được đưa ra để minh họa là một
class tiêu chuẩn) sang dạng file json đặt ở server, Windows Phone sẽ nhận file json
này thông qua webservice restful và sẽ sử dụng engine( cơ chế) được cài đặt để thực
thi nội dung của chương trình nguồn ban đầu.
Nội dung nghiên cứu
Luận văn gồm phần mở đầu, 05 chương và kết luận.
Chương 1: Nghiên cứu về tổng quan, đưa ra mô hình hệ thống và hướng giải
quyết.
Chương 2: Xây dựng bộ đọc dữ liệu cho framework.
Chương 3: Chuyển đổi sang json từ class tiêu chuẩn
Chương 4: Xây dựng webservices nhận, trả json
Chương 5: Xây dựng chương trình cho Windows Phone thực thi nội dung file
json
Cuối cùng là kết luận, hướng nghiên cứu tiếp theo của luận văn.
Đối tượng phạm vi nghiên cứu
Trong luận văn này chúng ta sẽ tập trung nghiên cứu sự chuyển đổi giữa các
class tiêu chuẩn từ các thiết bị vào windows phone thông qua webservices restful.
Luận văn tập trung nghiên cứu sự tương thích của việc chuyển đổi này vào
Windows phone, một hệ điều hành Microsoft hổ trợ cho thiết bị điện thoại di động.

Trang 10


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Luận văn tập trung nghiên cứu cơ bản những class tiêu chuẩn tiêu biểu nhất,
phân tích kết cấu class, sự chuyển đổi khi chuyển từ hệ thống này sang Windows

phone.
Kết quả của đề tài
Nghiên cứu tổng quan sự chuyển đổi class tiêu chuẩn thông qua webservice
restful, từ đó sẽ được chuyển đổi về Windows phone.
Giới thiệu cơ bản về Windows phone, sự hổ trợ mạnh mẽ của webservices từ
Windows phone.
Xây dựng được mô hình khả thi để các chương trình viết bằng ngôn ngữ bất kỳ
có thể được chuyển đến và thực thi trên Windows Phone.

Trang 11


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Chương 1 – TỔNG QUAN
1.1 Tổng quan về thông dịch mã nguồn
Có rất nhiều ngôn ngữ lập trình trên thế giới. Một số được gọi là ngôn ngữ biên
dịch, và phần mềm sử dụng để hiện thực ngôn ngữ đó được gọi là trình biên dịch.
Một số ngôn ngữ khác được gọi là ngôn ngữ thông dịch và phần mềm hiện thực
ngôn ngữ đó được gọi là trình thông dịch. Khái niệm này cũng không hoàn toàn
chính xác bởi biên dịch và thông dịch chỉ là những cách hiện thực của một ngôn
ngữ. Cho nên về mặt lý thuyết, ngôn ngữ nào cũng có thể là ngôn ngữ biên dịch hay
là ngôn ngữ thông dịch và nó phụ thuộc vào cách mà chúng ta hiện thực hóa ngôn
ngữ đó thành ngôn ngữ máy.

1.1.1 Ngôn ngữ biên dịch
Ngôn ngữ biên dịch là ngôn ngữ lập trình mà những trình biên dịch có thể biên
dịch mã nguồn thành ngôn ngữ máy. Ngôn ngữ biên dịch cũng có thể là ngôn ngữ
thông dịch. Chẳng hạn như C++ là một ngôn ngữ biên dịch nhưng nó cũng có nhiều
trình thông dịch cho ngôn ngữ này, chẳng hạn như là UnderC, Cint, hay Ch ... Tại

sao ngôn ngữ biên dịch lại có trình thông dịch nhưng không có điều ngược lại xảy
ra? Bởi vì các ràng buộc trong ngôn ngữ máy và ngôn ngữ biên dịch được tạo ra để
thỏa mãn các ràng buộc này trong khi các ngôn ngữ thông dịch thì không có tính
chất đó.

Hình 1.1: Quá trình biên dịch

Trang 12


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

1.1.2 Ngôn ngữ thông dịch
Với một số ngôn ngữ, mã nguồn có thể được thực thi từng dòng một bởi một
chương trình được gọi là trình thông dịch. Đây cũng là một trong những lý do khiến
cho ngôn ngữ lập trình thông dịch xử lý chậm hơn ngôn ngữ biên dịch. Ngoài ra,
các ngôn ngữ thông dịch như C#, Java có hỗ trợ thêm nhiều công cụ, chẳng hạn như
là kiểu dữ liệu động, thông tin về các kiểu dữ liệu này sẽ được lưu trữ trong trình
thông dịch làm giảm hiệu suất xử lý của các chương trình được viết bằng ngôn ngữ
thông dịch. Một điểm bất lợi nữa của những ngôn ngữ thông dịch là trình thông dịch
phải được cài đặt trên máy tính hoặc đóng gói đi cùng với ứng dụng sử dụng ngôn
ngữ thông dịch, và điều đó có thể gây khó khăn cho người sử dụng.
Một vài trình biên dịch sẽ chuyển đổi mã nguồn của ngôn ngữ lập trình nhất
định thành ngôn ngữ trung gian (intermediate language) hoặc là bytecode và nhúng
vào file thực thi. Sau đó máy ảo hoặc trình thông dịch sẽ thi hành ngôn ngữ trung
gian này trong suốt thời gian thực thi của chương trình, đây là nguyên tắc hoạt động
của bộ thư viện .NET của Microsoft. Ngôn ngữ lập trình Java còn có một dạng thực
thi khác là bytecode sẽ được chuyển đổi thành ngôn ngữ máy bởi trình thông dịch
và thực thi.


Hình 1.2: Quá trình thông dịch

1.2 Phát biểu bài toán
Trong thời đại ngày nay công nghệ lập trình ngày càng phát triển rộng rãi trên
thế giới. Hầu hết các ngôn ngữ đều có những thế mạnh riêng, nhưng cùng có điểm
Trang 13


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

chung là đa phần xây dựng theo hướng giúp đối tượng nghiên cứu dễ dàng sử dụng.
Do đó việc nắm bắt công nghệ cũng như chuyển từ một ngôn ngữ này sang một
ngôn ngữ khác là điều không khó đối với một lập trình viên, nhưng thời gian để làm
việc này mất khá nhiều thời gian, điển hình như với IOS khi mỗi lần thay đổi một
phiên bản thì người lập trình lại phải cập nhật công nghệ mới để đáp ứng nhu cầu
làm việc. Các lập trình viên mong muốn có một thư viện để có thể tương tác cập
nhập các ngôn ngữ khác nhau. Nên từ đó tác giả nghĩ ngay đến việc xây dựng một
thư viện giúp chuyển đổi class, hàm… từ ngôn ngữ này sang một ngôn ngữ khác để
giảm thiểu tối đa quỹ thời gian của người lập trình trong việc chuyển đổi các ngôn
ngữ, từ đó tăng hiệu quả trong công việc của họ.

1.3 Chọn hướng giải quyết
Như tác giả đã phân tích ở trên, chúng ta cần có một thư viện để tương tác giữa
những ngôn ngữ khác nhau. Thực chất, việc này đã được làm và tích hợp trên các
ngôn ngữ thông qua việc sử dụng mã nguyên thủy( native code). Vấn đề ở đây, tác
giả mong muốn xây dựng một thư viện cộng đồng mà ở đó không những chúng ta
có thể chia sẻ các thư viện mới để việc chuyển đổi hiệu quả hơn mà còn giúp người
lập trình cập nhật phiên bản mới đáp ứng nhu cầu làm việc. Do đó tác giả đã nghĩ
đến phương án xây dựng một mô hình có thể tương tác trực tiếp trên thư viện cũng
như trao đổi ý kiến để cộng đồng thư viện ngày càng phát triển hướng đến việc đơn

giản hóa cho việc lập trình. Lúc đó mọi ngôn ngữ có thể tương tác cơ bản với nhau,
do mục đích của đề tài là rất rộng và xuyên suốt không giới hạn ở một ngôn ngữ
nào. Trong thời gian có hạn tác giả đã quyết định sẽ thực hiện ý tưởng mô hình với
Windows Phone và class tiêu chuẩn, sau khi hoàn thành tác giả sẽ xây dựng tiếp các
ngôn ngữ khác như Java, Object C, C++, Delphi… Tác giả xin trình bày mô hình
xây dựng dự kiến như sơ đồ sau:

Trang 14


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

JAVA CORE

WEBSERVICE

WEBSERVICE

WINDOWS
PHONE

JSON

JSON

WINDOWS
PHONE
CORE
Hình 1.3: Mô hình tổng thể giải quyết bài toán


Dựa vào mô hình trên chúng ta thấy, chương trình viết bằng ngôn ngữ Java sẽ
đọc các file thông qua webservice (file ở đây là các class của các ngôn ngữ lập trình
khác nhau- trong luận văn này tác giả sẽ sử dụng class tiêu chuẩn), sau đó parser
(chuyển đổi) về dạng cú pháp lưu trữ Json gồm các class, hàm, phương thức, biến…
tiếp đến nội dung file Json lại được trả về lại cho webservices. Từ đó Windows
Phone (sau này chúng ta có thể thay đổi các ngôn ngữ bất kỳ) nhận Json này và
chuyển cho thư viện của Winphone để thực thi nội dung của file json đó. Đối với
các thư viện import tùy vào sự tương ứng của các ngôn ngữ thì các lập trình viên sẽ
tùy chọn việc import này giúp cho việc chuyển đội các ngôn ngữ diễn ra thuận tiện
hơn.

Trang 15


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Chương 2 - XÂY DỰNG BỘ ĐỌC DỮ LIỆU CHO
FRAMEWORK
2.1 Xây dựng hàm đọc file từ webservices
Giới thiệu về Java: lần đầu tiên xuất hiện vào năm 1992 như là một một ngôn
ngữ dùng trong nội bộ tập đoàn Sun Microsystems để xây dựng ứng dụng điều
khiển các bộ xử lý của máy điện thoại cầm tay, lò vi sóng, các thiết bị điện tử dân
dụng khác. Không chỉ là ngôn, Java còn là một nền tảng phát triển và triển khai ứng
dụng thông qua bộ máy ảo JVM và bộ toolkit JDK, java nhanh chóng trở thành
công nghệ mang tính cách mạng có khả năng chạy thống nhất trên nhiều hệ điều
hành khác nhau do sử dụng máy ảo JVM.
Luồng Java

Trang 16



Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Hình 2.1: Luồng làm việc của java

Với các mô hình trên chúng ta thấy Java với sự hỗ trợ của JVM là JRE tương
thích với các hệ điều hành khác nhau Linux và Windows, bên cạnh đó với việc phát
triển nhanh chóng trong những năm vừa qua, cùng với việc hổ trợ ngôn ngữ hướng
đối tượng, dễ dàng tiếp cận và phát triển, do những nguyên nhân đó, chúng ta chọn
sử dụng Java cho việc xây dựng chương trình đọc dữ liệu đầu vào cho Framework.
Hàm có mục đích chuyển file thành dạng string để thuận tiện cho việc đọc
chuyển đổi thông qua Json, hàm có các thông số truyền vào String pathFile, return
String of File, hàm có kiểu như sau:
String getStringFromFile (String pathFile) throws IOException{
FileInputStream in=null;
//StringBuilder strbuilder=new StringBuilder() ;
StringBuffer strbuilder=new StringBuffer();
try {
in = new FileInputStream(pathFile);
int c;
while((c=in.read())!=-1){
strbuilder.append(String.valueOf((char)c));
//System.out.println(String.valueOf((char)c));

Trang 17


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

}

} catch (FileNotFoundException e) {
//e.printStackTrace();
return "File Not Exist";
} catch (IOException e) {
//e.printStackTrace();
return "Error:"+e.getMessage().toString();
}
finally{
//System.out.println("----------------\n"+strbuilder.toString());
if(in!=null)in.close();
}
return strbuilder.toString();

Ta có được UML như sau:
WebService

ReadFile

LibCoreJava

Check file
exits
Object(Json,”messageRetur
n”)

Hình 2.2: Mô hình UML cho việc đọc File

MessageReturn là success(thành công) nếu file tồn tạị thì Json được trả về với
messageReturn:success ngược lại nếu file không tồn tại messageReturn thì
Failure(lỗi) với message error.


Trang 18


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

2.2 Xây dựng thư viện cho việc đọc file class tiêu chuẩn
Phân tích class:
Như chúng ta đã biết trên thế giới có rất nhiều tiêu chuẩn như ISO, JIS, BS… và
hàng trăm tiêu chuẩn khác của các nước như Mỹ, Pháp, EUR… Tiêu chuẩn đặt ra
để chúng ta có một cái nhìn như nhau về một sự vật sự việc, Class cũng vậy. Theo
Oracle, một class tiêu chuẩn phải có comment (chú thích) cho class, comment cho
các biến, comment các hàm (function). Dựa vào các chú thích đó chúng ta dễ dàng
hiểu được mục đích của các phương phức trong class. Do đó các class đưa vào thư
viện cũng phân tích trên các class tiêu chuẩn. Việc này dễ dàng cho việc lập trình
cũng như tổ chức chúng để kết hợp qua các hệ điều hành khác như Windows
Phones, IOS…

2.2.1. Mô hình class tiêu chuẩn
Chúng ta sẽ tìm hiểu nội dung class như sau:
/**
*method add two number
*@param x1
*@param x2
**/
function addTwoPrams(int x1,int x2){
return x1 + x2;
}
/**
*method three two number

*@param x1
*@param x2
*@param x3
**/
function addThreePrams(int x1,int x2,int x3){
return x1 + x2 + x3;
}
/**
*method multiple two number
*@param x1
*@param x2
**/
function mulTwoPrams(int x1,int x2){

Trang 19


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone
return x1 * x2;
}
/**
*method multiple three number
*@param x1
*@param x2
*@param x3
**/
function mulThreePrams(int x1,int x2,int x3){
return x1 * x2 * x3;
}


Đây là class gồm các hàm cộng và nhân 2 và 3 tham số kiểu int( số nguyên)
Chúng ta sẽ khảo sát việc đọc class này thông qua webservice và Windows phone.

2.2.2. Xây dựng thư viện core java để đọc các class tiêu chuẩn
Ta sẽ xây dựng thư viện java core như sau:

Map<String, Object>

List
Command

List Name
Function

List Param
Function

Map
Result

List Return
Function

Hình 2.3 Thư viện core java

Chúng ta sẽ chứa giá trị class tiêu chuẩn trong map gồm 4 list String, List
Command chứa nội dung các chú thích (comment) của hàm (function), List Name
Function chứa tất cả các tên của hàm có trong class tiêu chuẩn cần phân tích, List
Param chứa tất các các biến tương ứng với các tên của hàm, List return chứa kết quả
trả về của hàm.

Các List này có độ dài như sau, mỗi phần tử của chúng tương đương với 1 giá
trị hàm của class tiêu chuẩn cần khảo sát.
Trang 20


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Map result cho chúng ta biết được kết quả trả về đúng hay bị lỗi của chuỗi map.
Bình thường result là Ok, trong trường hợp có lỗi result sẽ trả về giá trị Fail.

Trang 21


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Chương 3 – CHUYỂN ĐỔI SANG JSON TỪ CLASS TIÊU CHUẨN
3.1 Giới thiều về Json
JSON là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu
tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có
thể đọc được, có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ
dàng. Do định nghĩa theo dạng Object nên việc sử dụng, truy xuất dữ liệu cũng gần
gũi hơn. Json còn là một dạng chuẩn dùng để mô tả, chuẩn hóa dữ liệu. Chúng dễ
dàng cho chúng ta đọc và viết, Json là một dạng kiểu text mà hoàn toàn độc lập với
các ngôn ngữ khác như C, C++, Java... Json cũng như XML là chỉ mô tả dữ liệu,
không có khả năng trình bày, ta chỉ có thể nhận Json rồi làm gì đó, hoặc chuyển
thành Json gửi đi.

3.2 Cấu trúc một Json
Ta có thể định nghĩa Json theo nhiều dạng khác nhau để thuận tiện cho việc
truyền dữ liệu, có 2 dạng định nghĩa như sau:

 Dạng 1:
Trong Json, gồm một đối tượng bắt đầu bởi dấu ngoặc đơn trái “{“ và kết thúc
với dấu ngoặc đơn phải “}”. Bên trong sẽ chứa các đối tượng con (subObject)
và các mảng con (subArray)

Hình 3.1: Mô hình JSON dạng đối tượng

Trang 22


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Ví dụ Json với tổ chức Object

 Dạng 2:
Trong Json gồm một mảng bắt đầu bằng dấu mở ngoặc vuông “[“ và kế thúc
bằng dấu ngoặc vuông phải “]”, bên trong là các đối tượng con (subObject) và
mảng con (subarray)
Ta thấy có 2 cách cơ bản để biểu diễn Json dạng Object bên trong là các sub
Object và sub array, một dạng khác cũng hay được biểu diễn đó là dạng Array, bên
trong mảng array là các sub Object và subarray.
Giá trị: Trong Json một giá trị có thể là một chuỗi String, số, đối tượng, mảng,
một dạng luận lý và kể cả giá trị null.

Trang 23


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Hình 3.2: Mô hình JSON kiểu mảng


Ví dụ Json với tổ chức array:

Trang 24


Thư viện hỗ trợ thông dịch mã nguồn trên Windows Phone

Tổng quan về kiến trúc các dịch vụ phổ thông với sự hỗ trợ Json:

Hình 3.3: Tổng quan các dịch vụ với sự hỗ trợ của JSON

Trang 25


×