Tiểu luận phát triển các hệ dịch vụ
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
------------------------------------
TIỂU LUẬN: PHÁT TRIỂN CÁC HỆ DỊCH VỤ
Giảng viên: Trần Đình Quế
Lớp: D08CNPM3
Hà Nội
Mục lục
CHƯƠNG 1. GIỚI THIỆU..........................................................................................................................3
1.
Lý do phát triển dịch vụ....................................................................................................................3
2.
Lý do phát triển web ngữ nghĩa........................................................................................................3
3.
Ví dụ so sánh tìm kiếm trên web với google và wolfram..................................................................3
CHƯƠNG 2. BIỂU DIỄN WEB NGỮ NGHĨA VÀ DỊCH VỤ WEB NGỮ NGHĨA..................................5
1.
Các ngôn ngữ biểu diễn web ngữ nghĩa và dịch vụ web ngữ nghĩa..................................................5
2.
RDF/RDFS và OWL/OWL-S...........................................................................................................5
3.
2.2.
RDF-S......................................................................................................................................5
2.3.
OWL.........................................................................................................................................6
2.4.
OWL-S.....................................................................................................................................6
Mục đích và ý nghĩa của các ngôn ngữ biểu diễn này......................................................................7
CHƯƠNG 3. BIỂU DIỄN VÍ DỤ SINH VIÊN BẰNG RDF/OWL VỚI PROTÉGÉ..................................8
CHƯƠNG 4. CASE STUDY: HỆ Q.LÝ DỊCH VỤ ĐÀO TẠO THEO TÍN CHỈ......................................13
1.
Phát biểu bài toán...........................................................................................................................13
2.
Tạo một OWL-S Service................................................................................................................13
3.
2.1.
Tạo Service Process................................................................................................................13
2.2.
Tạo Service Grounding...........................................................................................................17
2.3.
Tạo Service Profile.................................................................................................................18
2.4.
Tạo Service.............................................................................................................................18
Graph..............................................................................................................................................19
CHƯƠNG 5: DEMO LOGIN WEB SERVICE..........................................................................................20
1.
Tạo cơ sở dữ liệu............................................................................................................................20
2.
Tạo Login Web Service..................................................................................................................20
3.
Tạo JSP Web Client truy xuất Web Service....................................................................................27
Tài liệu tham khảo.....................................................................................................................................31
CHƯƠNG 1. GIỚI THIỆU
1. Lý do phát triển dịch vụ
Các công nghệ phổ biến sử dụng trong các hệ thống phân tán đó là:
J2EE.
[dot]NET.
CORBA.
Web Services.
Các Framework này có điểm chung là đều sử dụng công nghệ hướng thành phần (componentoriented). Web services cung cấp các ứng dụng cho người sử dụng thông qua môi trường web. So
với các công nghệ khác thì Web Services có những ưu điểm sau:
Cross – platform.
Cross – programming languages.
Là một giải pháp thân thiện với tường lửa.
Các công nghệ khác đều phải sử dụng một giao thức đặc biệt gây khó khăn trong việc xử
lý phân tán. Web Services hoạt động trên bộ giao thức SOAP/XML/HTTP/TCP/IP được
sử dụng rất rộng rãi.
Web Services dễ dàng triển khai, phát triển và sử dụng. Đặc biệt trong thương mại điện tử,
B2B và các ứng dụng enterprise.
Web Services dễ dàng sử dụng lại và mở rộng.
2. Lý do phát triển web ngữ nghĩa
Web hiện hành đã vội vã chọn lựa đối tượng phục vụ tiện lợi nhất cho mình đó là con người. Sự
tiện lợi này đã tạo nên sự đơn giản về công nghệ. Và sự đơn giản này cùng với sự phát triển của
mạng Internet đã tạo đà cho sự phát triển của công nghệ web tạo ra thành công trên cả mong đợi
của công nghệ này. Ngày nay một số lượng vô cùng lớn các trang web đã được tạo ra và công
nghệ web bây giờ đã cung cấp cho con người một thế giới thông tin đầy đủ và sống động.
Tuy nhiên sự thành công ngoài mong đợi đó lại nẩy sinh ra vô vàn những vấn đề. Và một
trong những vấn đề quan trọng nhất đó là việc khai thác thông tin như thế nào. Trước đây chúng ta
gặp phải vấn đề thiếu hụt thông tin do những rào cản về địa lý, thì ngày nay chúng ta phải đối mặt
với vấn đề quá tải thông tin. Việc tìm kiếm và chắt lọc các thông tin hữu ích trong một tài nguyên
quá lớn là một công việc không phải dễ dàng.
Con người coi máy tính là một thiết bị xử lý thông tin hiện đại và tiên tiến nhất, do vậy mọi
vấn đề của thông tin tốt hơn hết là giao cho máy tính. Thế nhưng công nghệ web hiện hành lại
nằm ngoài quy luật đơn giản này. Thông tin trên Web được hướng tới con người, và như thế vấn
đề tất yếu là khai thác thông tin sẽ trở nên khó khăn khi khối lượng thông tin trở nên nhiều lên.
Thông tin trên web cần phải được biểu diễn theo một quy cách khác mà các máy tính có thể
hiểu và xử lý được chúng. Hay nói cách khác cần trang bị ngữ nghĩa cho các dữ liệu trên web. Và
giải pháp cho vấn đề này chính là Semantic Web hay web ngữ nghĩa.
3. Ví dụ so sánh tìm kiếm trên web với google và wolfram
Từ khóa
Eath
Google
Phần mềm Google Eath, Trang bản
đồ Google Maps, sự kiện Eath Day
Wolfram
Thông tin về trái đất như thông tin về
quỹ đạo, các thông số vật lý, thông tin về
I want to flight
from Paris to
New York?
How to get from
HaNoi to
ThanhHoa?
2012, tạp chí EATH Magazine,
trang web Eath Photos …
Trang web của công ty du lịch trực
tuyến Expedia.com, trang web của
hãng hàng không Air France, trang
web giao dịch chuyến bay với các
ưu đãi cheapflights.co.uk…
Wikipedia giới thiệu Thanh Hóa,
blog nói về du lịch Thanh Hóa,
bảng giá vé tàu hỏa Thống Nhất từ
Hà Nội tới Thanh Hóa, tại sao
người Thanh Hóa lại bị ghét…
How much is
iphone 4s?
Các trang công nghệ bàn luận về
giá iPhone 4s như Engadget,
Gizmodo. Các bài báo nói về giá
iPhone 4s, iPhone 4s trên Apple
Store, so sánh iPhone 4s với các
smartphone khác…
What color is the
sky?
Bài hát trẻ em mang tên “What
color is the sky”, trò chơi flash trên
web “colors in the sky”, wiki
answer với câu hỏi “What color is
the sky” hay trang web hỏi đáp với
chủ đề “What color was the sky
millions or billions of years
ago?”…
Các trang web học Tiếng Anh trực
tuyến, các diễn đàn, bài báo nói về
cách học Tiếng Anh hiệu quả.
How to learn
English?
bầu khí quyển, vị trí trong hệ mặt trời,
hình ảnh trái đất…
Lịch trình các chuyến bay trong 24 giờ
tới từ Paris đến New York, thông tin các
chuyến bay đang trên đường từ Paris tới
New York, các chuyến bay vừa hạ cánh
đến New York.
Khoảng cách từ Hà Nội tới Thanh Hóa,
thời gian đi từ Hà Nội đến Thanh Hóa
bằng ôtô, thời gian âm thanh truyền từ
Hà Nội tới Thanh Hóa, thời gian ánh
sáng truyền trong chân không và trong
không khí từ Hà Nội tới Thanh Hóa, bản
đồ địa lý, giờ hiện tại ở Hà Nội và Thanh
Hóa, dân số Hà Nội và Thanh Hóa.
Giá của iPhone 4s thấp nhất 699.99
USD, trung bình 799.99 USD, cao nhất
899.99 USD, giá iPhone 4s tính theo
VND 16.66 triệu, biểu đồ biến động giá
trong 1 năm qua, giá quy đổi sang một
số đơn vị tiền tệ như JPY, EUR, GBP,
CNY, CAD, MXN…
Kết quả là một mầu sắc: mầu blue sky
với các thông tin như mã mầu, các cách
biểu diễn mầu dưới dạng RGB, CMYK,
vị trí của nó trong bảng mầu, mã mầu
khi nhúng vào HTML, mã của nó khi in
ấn, các mầu khác liên quan đến mầu
này…
Không hiểu.
Nhận xét:
Về Google: Hầu như mọi thứ bạn gõ vào đều có kết quả, kết quả ở đây thường là các
trang web liên quan đến từ khóa tìm kiếm. Sự liên quan này có thể là cả cụm từ khóa,
cũng có thể chỉ một từ trong cụm từ bạn gõ vào. Ví dụ: bạn gõ vào “How to get from
HaNoi to ThanhHoa?” thì Google có thể cho ra các kết quả chỉ liên quan đến ThanhHoa,
hoặc liên quan đến HaNoi và ThanhHoa. Để đạt được mục tiêu tìm kiếm, bạn phải chọn ra
cho mình một kết quả hợp lý trong các kết quả mà Google tìm ra, điều này có thể làm bạn
tốn rất nhiều thời gian, thậm chí bạn không thể tìm được điều mình muốn.
Về Wolfram: Không phải những gì bạn gõ vào Wolfram đều hiểu. Ví dụ bạn gõ câu “How
to learn English?” thì kết quả sẽ là “Wolfram|Alpha doesn't understand your query”. Điều
này cho thấy, Wolfram chỉ nhận các lệnh tìm kiếm với một số cấu trúc nhất định, đó là
hạn chế của bộ máy tìm kiếm này. Đổi lại, kết quả tìm kiếm trên Wolfram rất tuyệt, nó sẽ
cho bạn kết quả bạn muốn nếu câu truy vấn của bạn hợp lý. Ví dụ với câu “I want to flight
from Paris to New York?” thì Wolfram sẽ cho ra ngay thông tin các chuyến bay từ Paris
tới New York.
CHƯƠNG 2. BIỂU DIỄN WEB NGỮ NGHĨA VÀ DỊCH VỤ WEB NGỮ NGHĨA
1. Các ngôn ngữ biểu diễn web ngữ nghĩa và dịch vụ web ngữ nghĩa
Ngôn ngữ biểu diễn ngữ nghĩa cho dịch vụ web được W3C (World Wide Web Consortium) đệ
trình đầu tiên vào tháng 11 năm 2004 là OWL-S (Web Ontology Language for Services). Sau đó
các ngôn ngữ khác lần lượt ra đời như WSMO (Web Service Modeling Ontology) vào tháng 6
năm 2006 hay SAWSDL (Semantic Annotations for WSDL) vào tháng 8/2007. Trong các ngôn
ngữ biểu diễn ngữ nghĩa cho dịch vụ web, OWL-S là ngôn ngữ ra đời đầu tiên và cũng là ngôn
ngữ có nhiều dịch vụ được ứng dụng rộng rãi.
2. RDF/RDFS và OWL/OWL-S
2.1. RDF
RDF là gì?
RDF (Resource Description Framework) là một khung dùng để mô tả tài nguyên trong
môi trường web.
Cú pháp của RDF dựa trên XML, giúp nó có thể dễ dàng trao đổi giữa các ứng dụng.
RDF là một mô hình dữ liệu đơn giản để biểu diễn thông tin.
RDF chứa một ngữ nghĩa mà nó dùng để suy luận ý nghĩa của một biểu thức RDF.
RDF Graph
Mô hình RDF mô tả mối quan hệ gồm ba thành phần là: Subject, Predicate và Object
(RDF Triple).
Predicate: là vị từ để miêu tả một mối quan hệ giữa một chủ đề (Subject) và một đối
tượng (Object).
Subject: là một tài nguyên trên web. Tài nguyên được định danh bằng URI (Uniform
Resource Identifier). Tài nguyên có thể là một trang web, một phần của trang web, toàn
bộ trang web hay một đối tượng trong thế giới thực.
Object: Cũng có thể là một tài nguyên hoặc một giá trị (value).
2.2. RDF-S
RDF cung cấp một cách để mô tả các phát biểu đơn giản về các tài nguyên (resource), sử
dụng các thuộc tính và giá trị đã được định nghĩa trước. Tuy nhiên, nhu cầu của con người
đỏi hỏi phải có một cách để tự định nghĩa các thuật ngữ mà họ muốn dùng trong các phát
biểu đó. Ví dụ như, công ty example.com trong ví dụ.. muốn mô tả các lớp như exterms:Tent,
và sử dụng thuộc tính exterms:model, exterms:weighInKg và exterms:packedSize để mô tả
chúng. Chúng ta có thể sử dụng môt hình RDF (RDF Graph) để mô tả mối quan hệ giữa
những tài nguyên này.
Tuy nhiên, mô hình dữ liệu RDF không có cơ chế nào để khai báo những thuộc tính này,
cũng không cung cấp bất kỳ cơ chế nào để định nghĩa mối quan hệ giữa những thuộc tính
này và những tài nguyên khác. Và mục đích của RDF là làm những điều đó. Những khai báo
của các thuộc tính tài nguyên và ngữ nghĩa tương ứng với chúng được định nghĩa trong phạm
vi của RDF như RDFS. Một RDFS không chỉ định nghĩa thuộc tính (thuộc tính trong RDFS)
của tài nguyên (ví dụ: title, author, subject, size, …) mà còn có thể định nghĩa ra loại tài
nguyên (các lớp trong RDFS) được mô tả (book, people, companies, …) và các mối quan hệ
qua lại giữa tài nguyên với tài nguyên, giữa thuộc tính với thuộc tính, và giữa tài nguyên với
thuộc tính.
RDFS cung cấp một hệ thống kiểu mẫu (type system) cơ bản để dùng trong những mô
hình RDF. Nó định nghĩa những tài nguyên và những thuộc tính như rdfs:Class và
rdfs:subClassOf mà chúng dùng để xác định những giản đồ chuyên biệt về ứng dụng. RDFS
cung cấp thông tin về sự giải thích của những phát biểu trong một mô hình dữ liệu RDF và
nó cũng xác định những ràng buộc nên được dùng trong những mô hình dữ liệu.
2.3. OWL
OWL là gì?
Web Ontology Language (OWL) là ngôn ngữ đánh dấu được sử dụng để xuất bản và
chia sẻ dữ liệu sử dụng các ontology trên Internet. OWL là một bộ từ vựng mở rộng của
khung mô tả tài nguyên (RDF) và được kế thừa từ ngôn ngữ DAML+OIL Web ontology
– một dự án được hỗ trợ bởi W3C.
OWL biểu diễn ý nghĩa của các thuật ngữ trong các từ vựng và mối liên hệ giữa các
thuật ngữ này để đảm bảo phù hợp với quá trình xử lý bởi các phần mềm.
OWL được xem như là một kỹ thuật trọng yếu để cài đặt cho Semantic Web trong tương
lai. OWL được thiết kế đặc biệt để cung cấp một cách thức thông dụng trong việc xử lý
nội dung thông tin của Web. Ngôn ngữ này được kỳ vọng rằng sẽ cho phép các hệ thống
máy tính có thể đọc được thay thế cho con người. Vì OWL được viết bởi XML, các
thông tin OWL có thể dễ dàng trao đổi giữa các kiểu hệ thống máy tính khác nhau, sử
dụng các hệ điều hành và các ngôn ngữ ứng dụng khác nhau. Mục đích chính của OWL
là sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài sản, tích hợp mức doanh
nghiệp và để chia sẻ cũng như tái sử dụng dữ liệu trên Web. OWL được phát triển bởi
nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn so với XML, RDF và RDFS,
và vì OWL ra đời sau các ngôn ngữ này, nó có khả năng biểu diễn các nội dung mà máy
có thể biểu diễn được trên Web.
OWL được chia làm 3 phiên bản là:
OWL Lite hỗ trợ những người sử dụng chủ yếu cần một hệ thống phân cấp phân loại và
hạn chế đơn giản.
OWL DL hỗ trợ những người dùng muốn biểudiễn tối đa trong khi vẫn giữ lại tính đầy
đủ.
OWL Full có nghĩa là cho những người dùng muốn biểu diễn và tự do tối đa các cú
pháp của RDF mà không có bảo đảm tính toán.
2.4. OWL-S
OWL-S là gì?
OWL-S (Web Ontology Language for Services) là một Ontology được xây dựng dựa trên
Web Ontology Language(OWL), được sử dụng để biểu diễn ngữ nghĩa cho Web. OWL-S
có lịch sử bắt nguồn từ DAML-S được công bố năm 2001, OWL-S chính thức được tổ
chức W3C đệ trình vào ngày 22 tháng 11 năm 2004.
Các thành phần của OWL-S
OWL-S bao gồm ba Ontology: ServiceProfile, ServiceModel và ServiceGrounding.
ServiceProfile: Khách hàng tiềm năng của dịch vụ ? ServiceProfile phục vụ cho việc
quảng cáo và phát hiện dịch vụ.
Service Profile cho biết dịch vụ làm gì, nói cách khác nó cho biết các dịch vụ mà nó
cung cấp, để môi giới dịch vụ hoặc các agent tìm dịch vụ, xác định xem dịch vụ đó có
đáp ứng nhu cầu của chúng. Service profile như một mô tả về dịch vụ mà nó cung cấp
bao gồm: những gì được được thực hiện bởi dịch vụ, hạn chế áp dụng dịch vụ và chất
lượng dịch vụ và yêu cầu bên yêu cầu dịch vụ phải cần những gì để sử dụng dịch vụ.
ServiceModel: Sử dụng dịch vụ như thế nào? ServiceModel chịu trách nhiệm mô tả
hoạt động của dịch vụ.
Service Model cho khách hàng biết cách làm thế nào để sử dụng dịch vụ, bằng cách cụ
thể hóa nội dung ngữ nghĩa cảu yêu cầu, các điều kiện sử dụng dịch vụ, các cách thực
hiện dịch vụ và kết quả cụ thể, khi cần thiết có thể bao gồm cả các bước dẫn đến kết quả
đó. Nói ngằn gọn thì nó mô tả cách làm thể nào để yêu cầu dịch vụ và những gì sẽ xảy
ra khi dịch vụ được thực hiện. Đối với các dịch vụ không tầm thường (nontrivial
services) (bao gồm một vài bước theo thời gian), những mô tả này có thể được sử dụng
bởi một service-seeking agent theo ít nhất bốn cách khác nhau: (1) để thực hiện phân
tích sâu hơn xem các dịch vụ này có đáp ứng nhu cầu của mình; (2) để soạn những bản
mô tả dịch vụ từ nhiều dịch vụ để thực hiện một nhiệm vụ cụ thể; (3) trong quá trình
của việc ban hành dịch vụ, phối hợp các hoạt động của những bên tham gia khác, và (4)
để giám sát việc thực hiện các dịch vụ.
ServiceGrounding: Làm thế nào tương tác với dịch vụ? ServiceGrounding chịu trách
nhiệm cung cấp cách tương tác với dịch vụ.
Service Grounding quy định một cách chi tiết làm thế nào để một agent có thể truy cập
dịch vụ. Thông thường một Service grounding sẽ chỉ định một giao thức truyền thông,
định dạng message và những thông số cụ thể khác của dịch vụ như số cổng (port
number) sử dụng trong giao tiếp dịch vụ. Ngoài ra Service grounding cần phải chỉ định
các kỹ thuật để làm việc với nhau (trao đổi thông điệp, dữ liệu…).
3. Mục đích và ý nghĩa của các ngôn ngữ biểu diễn này
RDF: mục đích của RDF là mô tả siêu dữ liệu về các tài nguyên trên Web. RDF là nền tảng và
là linh hồn của Semantic Web.
RDFS: RDF schema cung cấp một khung để mô tả các lớp, thuộc tính của ứng dụng cụ thể. Các
lớp trong RDFS giống như các lớp trong lập trình hướng đối tượng, cho phép các tài nguyên
được định nghĩa như là 1 thực thể của lớp, hay lớp con của lớp.
OWL: cung cấp ngữ nghĩa mà máy có thể hiểu được cho các tài nguyên của Web ngữ nghĩa.
OWL-S: biểu diễn ngữ nghĩa cho dịch vụ web.
CHƯƠNG 3. BIỂU DIỄN VÍ DỤ SINH VIÊN BẰNG RDF/OWL VỚI PROTÉGÉ
Ví dụ xây dựng Ontology với Protégé
Đồ thị Ontology
Mô hình phân lớp – Asserted Model
CHƯƠNG 4. CASE STUDY: HỆ Q.LÝ DỊCH VỤ ĐÀO TẠO THEO TÍN CHỈ
1. Phát biểu bài toán
Hệ quản lý đào tạo đại học theo tín chỉ là một dịch vụ web cung cấp các chức năng trực tuyến cho
sinh viên và giảng viên. Ở ví dụ này, chúng ta sẽ tạo một phiên bản đơn giản của dịch vụ này với
tên gọi EduManage.
Dịch vụ web EduManage cung cấp những chức năng sau:
Sinh viên: Tìm môn học, lựa chọn môn học, đăng ký môn học.
Giảng viên: Lựa chọn môn dạy, đăng ký môn dạy.
2. Tạo một OWL-S Service
2.1. Tạo Service Process
2.1.1. Automic Process
Chúng ta sẽ mô tả 3 hoạt động cho dịch vụ EduManage bao gồm: tìm môn học, lựa chọn
môn học và đăng ký môn học. Cả 3 hoạt động trên đều là các tiến trình nguyên tử automic processes vì chúng không thể chia nhỏ thành các hoạt động khác. Việc quyết định
một hoạt động là tiến trình nguyên tử - automic process hay không tùy thuộc vào người
thiết kế.
Hơn nữa, chúng ta cần phải quyết định xem các đầu vào và đầu ra cho mỗi tiến trình
nguyên tử này là gì. Hình dưới cho chúng ta biết điều này.
Hình 1: Đầu vào và đầu ra của automic process Tìm môn học
Hình 2: Đầu vào và đầu ra của automic process Chọn môn học
Hình 3: Đầu vào và đầu ra của automic process Đăng ký môn học
Tên của mỗi đầu vào hoặc đầu ra được quy định cụ thể (mầu đen) cũng như kiểu của chúng
(mầu xanh).
Domain otologies phải được định nghĩa để sử dụng trong OWL-S Editor. Các lớp mô
tả kiểu tham số của đầu vào và đầu ra là một phần của các domain ontologies. Vì vậy,
chúng ta sẽ bắt đầu với việc định nghĩa các lớp sẽ được sử dụng như các kiểu tham số cho
đầu vào và đầu ra cho các tiến trình nguyên tử. Khai báo các lớp này được thực hiện trong
tab OWLClasses. Hình dưới cho thấy các kiểu tham số mà chúng ta tạo ra cho ví dụ
EduManage(các lớp mới được tạo ra có icon là chấm tròn mầu vàng).
Hình 4: Domain ontologies
Tiếp theo, chúng ta tạo các Automic Process.
Hình 5: Automic Process TimMonHoc
Hình 6: Automic Process ChonMonHoc
Hình 7: Automic Process DangKyMonHoc
2.1.2. Composite Process
Chúng ta tạo một Composite Process chứa tất cả các Automic Process đã tạo ở trên. Đặt
tên cho nó là “EduManageDangKyMonHoc”.
Hình 8: CompositeProcess
2.2. Tạo Service Grounding
Tạo Service Grounding với tên “EduManage_Grounding”.
Hình 9: EduManage Grounding
2.3. Tạo Service Profile
Tạo Service Profile với tên “EduManage_Profile”
Hình 10: EduManage Profile
2.4. Tạo Service
Tạo dịch vụ với tên “EduManage_DangKyMonHocAgent” liên kết đến process, profile vầ
grounding mà ta đã tạo trước đó.
Hình 11: EduManage Service
3. Graph
Hình 12: EduManage Graph
CHƯƠNG 5: DEMO LOGIN WEB SERVICE
1. Tạo cơ sở dữ liệu
Dùng Access tạo một cơ sở dữ liệu với tên LoginWS, tạo một bảng Users với các thuộc tính:
Tạo một Data Source Name tham chiếu đến cơ sở dữ liệu này.
2. Tạo Login Web Service
Trong Eclipse tạo một Dynamic Web Project đặt tên là LoginWebService
- Xem thêm -