Bài giảng Web Technologies and e-Services

Brief history of Web Applications ● Initially: static HTML files only with HTML forms for input ● Common Gateway Interface (CGI) ○ Certain URLs map to executable programs that generate web page ○ Program exits after Web page complete ○ Introduced the notion of stateless servers: each request independent, no state carried over from previous requests. (Made scale-out architectures easier) ○ Perl typically used for writing CGI programsCS142 Lecture Notes - FrontEnd First-generation web app frameworks Examples: (PHP, ASP.net, Java servlets) ● Incorporate language runtime system directly into Web server ● Templates: mix code and HTML ● Web-specific library packages: ○ URL handling ○ HTML generation ○ Sessions ○ Interfacing to databasesCS142 Lecture Notes - FrontEnd Second-generation frameworks Examples: (Ruby on Rails, Django): ● Model-view-controller: stylized decomposition of applications ● Object-relational mapping (ORM): simplify the use of databases (make database tables and rows appear as classes and objects) ○ Easier fetching of dynamic data

pdf323 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 276 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Web Technologies and e-Services, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tả nội dung với XMLSchema 2 06/05/2021 2 1. Giới thiệu và cú pháp XML 1. Giới thiệu XML 2. Đặc điểm XML 3. Ứng dụng XML 4. Cú pháp XML § Định chuẩn của XML § Thẻ khai báo tham số § Thẻ chỉ thị xử lý § Thẻ ghi chú § Thẻ CDATA và PCDATA 5. Cấu trúc, đặc tả cấu trúc và nội dung của XML 6. Sử dụng thẻ thực thể, tên thẻ 7. Namespace 3 Giới thiệu XML XML: eXtensible Markup Language - là một ngôn ngữ đánh dấu được sử dụng để tạo ra thẻ riêng, tạo nên các văn bản với dữ liệu tự mô tả. Được tạo nên bởi Liên minh mạng toàn cầu W3Schools nhằm khắc phục những hạn chế của HTML - ngôn ngữ đánh dấu siêu văn bản. Giống như HTML, XML cũng được dựa trên SGML – Standard Generalized Markup Language. Là cơ sở của nền công nghệ thương mại điện tử, các công ty đang sử dụng XML để giải quyết những vấn đề kinh doanh. 4 4 06/05/2021 3 Giới thiệu XML XML là ngôn ngữ đánh dấu mở rộng với mục đích chung do W3C đề nghị, để tạo ra các ngôn ngữ đánh dấu khác. Là một tập con của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau. Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet. 5 5 Giới thiệu XML 6 HTML XML HTML được thiết kế cho mục đích trình bày dữ liệu XML được thiết kế cho mục đích lưu trữ và truyền tải dữ liệu giữa các hệ thống khác nhau HTML dùng để hiển thị dữ liệu và chú trọng vào việc dữ liệu được hiển thị như thế nào XML dùng để mô tả dữ liệu và chú trọng vào nội dung của dữ liệu HTML hiển thị thông tin XML mô tả thông tin 6 06/05/2021 4 Giới thiệu XML Văn bản có cấu trúc XML cho phép biểu diễn thông tin về các đối tượng trong thực tế XML dùng để phục vụ cho việc mô tả dữ liệu (thông tin lưu trữ bao gồm những gì, lưu trữ ra sao) để các hệ thống khác nhau có thể đọc và sử dụng những thông tin này một cách thuận tiện Các thẻ (tag) của XML thường không được định nghĩa trước mà chúng được tạo ra theo quyước của người, (hoặc Chương trình) tạo ra XML theo những quyước riêng. XML sử dụng các khai báo kiểu dữ liệu DTD (Document Type Definition) hay lược đồ Schema đểmô tả dữ liệu. 7 7 Ưu điểm XML Dữ liệu độc lập là ưu điểm chính của XML. Do XML chỉ dùng để mô tả dữ liệu bằng dạng text nên tất cả các chương trình đều có thể đọc được XML. Dễ dàng đọc và phân tích dữ liệu, nhờ ưu điểm này mà XML thường được dùng để trao đổi dữ liệu giữa các hệ thống khác nhau. Dễ dàng tạo 1 file XML. Lưu trữ cấu hình cho web site Sử dụng cho phương thức Remote Procedure Calls (RPC) phục vụ web service 8 8 06/05/2021 5 Đặc điểm của XML XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó. Tại mức căn bản, mọi thông tin đều thể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc, các phần tử (element) dùng để chứa dữ liệu và các thuộc tính của các phần tử đó. 9 9 Đặc điểm của XML XML sử dụng bộ kí tự toàn cầu Universal Character Set làm cơ sở, kết hợp các chuỗi kí tự với nhau tạo nên một tài liệu XML. XML dùng để mô tả thông tin nhưng không biết về ngữ nghĩa của dữ liệu. Vậy nên được dùng cho nhiều loại dữ liệu đa phương tiện. 10 10 06/05/2021 6 Đặc điểm của XML Rất nhiều các phần mềm soạn thảo hỗ trợ soạn thảo và bảo trì XML. Dữ liệu có tên, cấu trúc thứ bậc và các thuộc tính. XML có cú pháp chung cho các tài liệu để các phần mềm XML Parser có thể đọc và phân tích, hiểu bố cục tương đối của thông tin trong tài liệu. XML không hạn chế về việc được sử dụng như thế nào, có rất nhiều các phần mềm với chức năng trừu tượng hóa dữ liệu thành các định dạng khác giàu thông tin hơn. 11 11 Ứng dụng của XML Mô ta ̉ câ ́u hi ̀nh cu ̉a 1 Website, ứng du ̣ng. Ví dụ trong ASP.NET là tâ ̣p tin web.config; khi xây dựng web application bằng JSP là faces-config.xml va ̀ web.xml. Cung câ ́p tin, dữ liê ̣u cho ca ́c hê ̣ thô ́ng kha ́c nhau để co ́ thể khai tha ́c, sử du ̣ng. Ví dụ sử du ̣ng ti ́nh năng cung câ ́p RSS cu ̉a ca ́c web site co ́ cung câ ́p ti ́nh năng da ̣ng na ̀y như : www.vnExpress.net, www.tuoitre.vn, để lâ ́y tin tự đô ̣ng như gia ́ va ̀ng, tin thể thao, thời sự, tin thời tiê ́t Xây dựng các hệ thống thu thập dữ liệu XML theo thời gian từ các hệ thống con. 12 12 06/05/2021 7 Ứng dụng của XML 13 Ví dụ tệp web.xml: 13 Cú pháp XML Văn bản có cấu trúc XML cho phép biểu diễn thông tin về các đối tượng trong thực tế. Đối tượng x thuộc loại X trong thực tế được biểu diễn bởi thẻ X trong tài liệu XML bao gồm cả các thuộc tính a của x. Ví dụ: Phân số 4/5 trong thực tế có thẻ: 14 14 06/05/2021 8 Cú pháp XML Ví dụ (tiếp): Dãy các số nguyên a bao gồm các số nguyên 1,4,5,-3 sẽ được biểu diễn bởi thẻ 15 15 Định chuẩn XML Hệ thống các thẻ đánh dấu: Các thẻ đánh dấu trong ngôn ngữ theo định chuẩn XML bao gồm 2 loại: Thẻ có nội dung và thẻ rỗng. § Các thẻ có nội dung có dạng: Nội dung § Các thẻ rỗng có dạng: Các thẻ có thể có hoặc không có các thuộc tính (trong cùng thẻ ). Thuộc tính trong một thẻ có dạng: Ten_thuoc_tinh=”Gia_tri” 16 16 06/05/2021 9 Định chuẩn XML Ví dụ : Tài liệu XML 17 17 Định chuẩn XML Quan hệ lồng nhau giữa các thẻ có nội dung: § Nội dung bên trong thẻ có nội dung có thể là các thẻ khác. Khi thẻ A có nội dung là thẻ B ta gọi: Thẻ A là thẻ cha của B , thẻ A chứa thẻ B. § Qui định yêu cầu các thẻ với quan hệ lồng nhau hoàn toàn. Khi thẻ A là thẻ cha của thẻ B, A phải chứa phần bắt đầu và cả phần kết thúc của thẻ B. 18 18 06/05/2021 10 Định chuẩn XML Ví dụ: Thẻ A là thẻ cha của B với dạng lồng nhau hoàn toàn (hợp lệ): . Thẻ A là thẻ cha của B với dạng lồng nhau không hoàn hoàn toàn (không hợp lệ): 19 19 Định chuẩn XML Một tài liệu XML phải có duy nhất một và chỉ một thẻ chứa tất cả các thẻ còn lại, gọi là thẻ gốc – Root element (Document element): Ví dụ: Let me know what you think Yin Yang 20 20 06/05/2021 11 Định chuẩn XML Các kiểu tài liệu XML: § Well-formed Document: tài liệu XML đúng cú pháp. § DTD - Constrained Document: Tạo XML có khai báo DTD (Document type definition) để mô tả cấu trúc dữ liệu trong XML. § XML-Schema - Constrained Document: Tạo XML có sử dụng “lược đồ” Schema để kiểm tra ti ́nh hợp lệ của XML. 21 21 Định chuẩn XML Well-formed XML Document (đúng cú pháp) : § Co ́ duy nhâ ́t co ́ mô ̣t phâ ̀n tử thuô ̣c câ ́p cao nhâ ́t trong ta ̀i liê ̣u, co ̀n go ̣i la ̀ nu ́t gô ́c (root element). § Mô ̃i mô ̣t the ̉ mở đê ̀u pha ̉i co ́ the ̉ đo ́ng và tên the ̉ la ̀ phân biê ̣t hoa thường. § Ca ́c the ̉ khi đo ́ng pha ̉i theo đu ́ng trình tự (mở sau đo ́ng trước) § Tên the ̉ không nên co ́ khoa ̉ng trắng, không nên bắt đâ ̀u bằng “xml”. § Ca ́c thuô ̣c tính (atributes) cu ̉a mô ̣t the ̉ luôn luôn tô ̀n ta ̣i theo cặp theo quy ước: = “”; không nên đặt tên thuô ̣c tính tru ̀ng nhau, và gia ́ trị cu ̉a thuô ̣c tính pha ̉i đặt trong cặp dâ ́u nha ́y ke ́p hay nha ́y đơn. Tên cu ̉a thuô ̣c tính (atribute) se ̃ theo qui luâ ̣t đặt tên giô ́ng như đô ́i với tên the ̉. § Ca ́c the ̉ (tag) trong XML co ́ thê ̉ lô ̀ng nhau (The ̉ na ̀y co ́ thê ̉ chứa nhiê ̀u the ̉ kha ́c ở bên trong).22 22 06/05/2021 12 Nội dung tài liệu XML Nội dung của tài liệu XML bao gồm 2 phần: § Nội dung chính: Hệ thống các thẻ đánh dấu (có hoặc không có nội dung) tương ứng với các thông tin cần biểu diễn. § Nội dung phụ: Hệ thống các thẻ khác có ý nghĩa bổ sung, tăng cường một số thông tin về tài liệu XML. Các thẻ này có tác dụng giúp cho việc sử dụng, xử lý trên tài liệu XML tốt hơn trong một số trường hợp nhất định. 23 23 Nội dung tài liệu XML Các thẻ bên trong nội dung phụ bao gồm: § Thẻ khai báo tham số § Thẻ chỉ thị xử lý § Thẻ ghi chú § Thẻ CDATA § Thẻ khai báo cấu trúc (đặc tả cấu trúc với DTD) § Thẻ khai báo thực thể (Kĩ thuật đặc tả nội dung tài liệu XML) 24 24 06/05/2021 13 Thẻ khai báo tham số Thẻ khai báo tham số: mô tả thêm một số thông tin chung (tham số) về tài liệu XML ngoài các thông tin biểu diễn trong nội dung chính. Cú pháp: Ten_1, Ten_2, : các tên các tham số và Gia_tri_1, Gia_tri_2, là các giá trị tương ứng. Có 3 tham số được dùng là version, encoding, và standalone. 25 25 Thẻ khai báo tham số Tham số version : Khai báo về phiên bản của định chuẩn XML được sử dụng. Ví dụ : Tài liệu XML thuộc định chuẩn 1.0 26 26 06/05/2021 14 Thẻ khai báo tham số Tham số encoding : Khai báo về cách mã hóa các ký tự trong tài liệu. Ví dụ: Tài liệu XML sử dụng cách mã hóa Unicode ký hiệu utf-8: Tài liệu XML sử dụng cách mã hóa Unicode ký hiệu utf-16: 27 27 Thẻ khai báo tham số Tham số standalone : Khai báo về liên kết của tài liệu XML và các tài liệu khác. Tham số này chỉ có 2 giá trị hợp lệ là “yes” , “no”. Giá trị định sẵn là “no”. Ví dụ: Tài liệu XML có liên kết với các tài liệu khác: Tài liệu XML không có liên kết với các tài liệu khác: 28 28 06/05/2021 15 Thẻ chỉ thị xử lý Thẻ chỉ thị xử lý: cho phép mô tả thêm một số thông tin (liên quan xử lý) về tài liệu XML có ý nghĩa riêng với một công cụ xử lý nào đó. Dạng khai báo chung: Bo_xu_ly là ký hiệu của bộ xử lý sẽ tiến hành một số xử lý nào đó trên tài liệu XML . Du_lieu là thông tin được gởi đến Bo_xu_ly. 29 29 Thẻ chỉ thị xử lý Ví dụ: § Là thẻ chỉ thị cần xử lý định dạng thể hiện tài liệu XML với “chương trình định dạng ” theo ngôn ngữ css được lưu trữ bên trong tập tin Dinh_dang.css. 30 30 06/05/2021 16 Thẻ ghi chú Thẻ ghi chú: cho phép bổ sung các thông tin ghi chú có ý nghĩa đối với con người và hoàn toàn không có ý nghĩa với các hệ thống xử lý tài liệu XML. Cú pháp: Chú ý: § Trong nô ̣i dung cu ̉a ghi chú không co ́ ky ́ tự “-“. § Không nên đặt ghi chú trong 1 the ̉ (Thuô ̣c giới ha ̣n mở the ̉ đo ́ng the ̉). § Không nên đặt ghi chú trước do ̀ng khai ba ́o . 31 31 Thẻ CDATA Thẻ CDATA: yêu cầu các bộ phân tích tài liệu XML Parser bỏ qua và không phân tích vào nội dung bên trong của thẻ này. Tác dụng của thẻ là cho phép sử dụng trực tiếp bên trong thẻ một số ký hiệu không được phép nếu sử dụng bên ngoài ( ví dụ các ký tự “” , ). Dạng khai báo chung: 32 32 06/05/2021 17 Thẻ PCDATA PCDATA (Parsed character data): la ̀ dữ liê ̣u se ̃ được đo ̣c va ̀ phân ti ́ch bởi chương tri ̀nh phân ti ́ch XML. Trong PCDATA không được phe ́p du ̀ng ca ́c ky ́ tự đặc biê ̣t co ́ liên quan đê ́n viê ̣c xa ́c đi ̣nh ca ́c tha ̀nh tố cu ̉a XML như ,&, 33 33 Cấu trúc tài liệu XML Khái niệm về cấu trúc tài liệu XML: § Tươngứng với cấu trúc của nội dung chính § Cách thức tổ chức, sắp xếp của các thẻ (có hay không có nội dung) trong nội dung chính. Ngôn ngữ đặc tả cấu trúc: Có rất nhiều ngôn ngữ đặc tả để mô tả cấu trúc tài liệu Xml như: DTD, XML Schema, XMl- Data, Schematron , RELAX NG, v,v.. .Trong số đó có 2 ngôn ngữ thông dụng là DTD, XML Schema. 34 34 06/05/2021 18 Cấu trúc tài liệu XML Đặc điểm của DTD: § Ra đời rất sớm § Cho phép mô tả văn bản có cấu trúc bất kỳ § Đơn giản, dễ học và sử dụng § Chỉ cho phép đặc tả một số “kiểu dữ liệu đơn giản” trong nội dung chính của tài liệu XML Đặc điểm của XML Schema: § Được đề xuất bởi W3C § Chỉ áp dụng cho tài liệu XML § Khó học và sử dụng so với DTD § Cho phép đặc tả chi tiết về các “kiểu dữ liệu” được sử dụng trong nội dung chính của tài liệu XML 35 35 Cấu trúc tài liệu XML Ví dụ : Với tài liệu Xml: 4 3 36 36 06/05/2021 19 Cấu trúc tài liệu XML Đặc tả với DTD: <!DOCTYPE PHAN_SO [ 0 --> 0 --> ]> 37 37 Cấu trúc tài liệu XML Đặc tả với Xml Schema: <xs:schemaid="PHAN_SO" targetNamespace="" xmlns:xs=""> 38 38 06/05/2021 20 Sử dụng đặc tả cấu trúc Ý nghĩa của đặc tả cấu trúc: Có 2 trường hợp chính cần thiết sử dụng các tài liệu đặc tả cấu trúc: § Trường hợp 1 : Sử dụng cho việc trao đổi thông tin người – người. § Trường hợp 2 : Sử dụng cho việc trao đổi thông tin người – hệ thống xử lý. 39 39 Sử dụng đặc tả cấu trúc Trường hợp 1: với trường hợp này tài liệu đặc tả cấu trúc được sử dụng như phương tiện giao tiếp giữa các chuyên viên tin học có liên quan đến tài liệu XML tương ứng. Có thể được lưu trữ theo bất kỳ định dạng nào thích hợp cho việc sử dụng ( trình bày, xem báo cáo , v.v..). 40 40 06/05/2021 21 Sử dụng đặc tả cấu trúc Ví dụ: Có thể sử dụng các tài liệu đặc tả cấu trúc (DTD/ XML Schema trên ) trong: § Hồ sơ thiết kế phần mềm hay giáo trình này ( theo dạng tập tin của Microsoft Word) § Tài liệu mô tả cách thức trao đổi thông tin giữa các chuyên viên tin cùng xây dựng các phần mềm bài tập phân số. Có thể có một số qui ước riêng mang tính cục bộ trong một nhóm, có thể mở rộng các ngôn ngữ đặc tả cấu trúc hiện có để bổ sung thêm các từ vựng, cú pháp và ngữ nghĩa riêng. 41 41 Sử dụng đặc tả cấu trúc Trường hợp 2: chỉ được sử dụng khi Có hệ thống xử lý (phần mềm, hàm , đối tượng thư viện ) “hiểu” và thực hiện các xử lý tương ứng nào đó với tài liệu đặc tả cấu trúc. Xử lý thông dụng nhất là kiểm tra một tài liệu XML có theo đúng cấu trúc được mô tả trong tài liệu đặc tả cấu trúc hay không. 42 42 06/05/2021 22 Namespace Namespace giu ́p cho viê ̣c truy xuâ ́t đê ́n ca ́c tha ̀nh phâ ̀n (Element) mô ̣t ca ́ch tường minh. Namespace la ̀ tâ ̣p hợp ca ́c tên du ̀ng để cho phe ́p kê ́t hợp với ca ́c tha ̀nh phâ ̀n va ̀ thuô ̣c ti ́nh bên trong mô ̣t ta ̀i liê ̣u XML nhằm gia ̉i quyê ́t nguy cơ xung đô ̣t vê ̀ tên cu ̉a ca ́c phâ ̀n tử khi thông tin được tô ̉ng hợp từ nhiê ̀u nguô ̀n kha ́c nhau. Thông qua Namespace, tri ̀nh duyê ̣t co ́ thể kê ́t hợp ca ́c file XML từ nhiê ̀u nguô ̀n kha ́c nhau, co ́ thê ̉ truy xuâ ́t đê ́n DTD đê ̉ kiê ̉m tra câ ́u tru ́c cu ̉a XML nhâ ̣n được co ́ thực sự thi ́ch hợp, từ đo ́ xa ́c đi ̣nh được ti ́nh hợp lê ̣ cu ̉a XML tương ứng. 62 62 Namespace Giải quyết xung đột: Italian coffee style training oval wood Orange Strawberry 63 63 06/05/2021 23 Namespace Cú pháp khai báo namespace và thuộc tính xmlns: nameSpacePrefix: phâ ̀n viê ́t tắt đa ̣i diê ̣n cho nameSpace được sử du ̣ng như la ̀ tiê ̀n tố (prefix) cho ca ́c tag trong cu ̀ng nho ́m. xmlns: la ̀ thuô ̣c ti ́nh được sử du ̣ng để khai ba ́o va ̀ chi ̉ ra nameSpace câ ̀n thiê ́t se ̃ a ́p du ̣ng trong câ ́u tru ́c XML. URI (Uniform Resource Identifier): chuô ̃i ky ́ tự mô ta ̉ cho 1 nguô ̀n ta ̀i nguyên na ̀o đo ́ duy nhất trên Internet. 64 64 Namespace <dataCombination xmlns:p=”” xmlns:s=”” Italian coffee style training oval wood Orange Strawberry 65 65 06/05/2021 24 Namespace Ví dụ khai ba ́o NameSpace co ́ sử du ̣ng prefix kê ́t hợp với URL: 66 66 Namespace Khai ba ́o Default Namespaces ma ̀ không sử du ̣ng prefix: 67 67 06/05/2021 25 2. DTD 1. Đặc tả cấu trúc tài liệu XML với DTD 2. Đặc tả cấu trúc nội dung thẻ 3. Đặc tả thuộc tính của thẻ 68 DTD Đặc tả cấu trúc tài liệu XML với DTD Có nhiều dạng khác nhau cho phép khai báo (đặc tả) cấu trúc của tài liệu XML: Dạng 1: Khai báo cấu trúc tài liệu XML được lưu trữ ngay bên trong chính tài liệu XML đó: <!DOCTYPE Ten_the_goc [ đặc tả cấu trúc nội dung các thẻ đặc tả thuộc tính các thẻ ]> 69 69 06/05/2021 26 DTD Dạng 2: Khai báo cấu trúc tài liệu XML được lưu trữ bên ngoài dưới dạng một tập tin chứa đặc tả cấu trúc nội dung các thẻ, đặc tả thuộc tính các thẻ. Cú pháp: Ví dụ : 70 70 Đặc tả cấu trúc nội dung thẻ Cú pháp chung đặc tả cấu trúc nội dung của một thẻ: Bieu_thuc có thể chỉ là một từ khoá Bieu_thuc cũng có thể bao gồm nhiều từ khóa khác mô tả cách bố trí, sắp xếp các thành phần con bên trong thẻ Với A, B là 2 thẻ con của thẻ X: A, B A, B sắp xếp theo thứ tự tuần tự A đến B A* A có thể lặp lại ít nhất 0 lần (>=0) B+ B có thể lặp lại ít nhất 1 lần(>=1) A? A có thể xuất hiện 0 hoặc 1 lần (0 or1) A|B Có thể chọn sử dụng A hay B 72 72 06/05/2021 27 Đặc tả cấu trúc nội dung thẻ DTD Đặc tả cách 1: Từ khóa ANY : Thẻ có nội dung bất kì theo định chuẩn XML. Ví dụ : § X có thể chứa nội dung bất kỳ, khai báo này chỉ để mô tả sự tồn tại của bên trong X một hoặc nhiều thẻ khác. Từ khóa EMPTY : Thẻ không có nội dung. Ví dụ : § PHAN_SO không thể có nội dung mà chỉ có thể có các thuộc tính. 73 73 Đặc tả cấu trúc nội dung thẻ DTD Từ khóa #PCDATA : Thẻ với nội dung là chuỗi văn bản. Ví dụ : § Ho_ten có nội dung là chuỗi và không thể chứa các thẻ khác Với DTD muốn mô tả chi tiết hơn, dùng thẻ ghi chú. Ví dụ : 74 74 06/05/2021 28 Đặc tả cấu trúc nội dung thẻ DTD Đặc tả cách 2: Dạng tuần tự: Các thẻ con chỉ có thể xuất hiện 1 lần duy nhất và phải theo đúng thứ tự xuất hiện trong biểu thức Cú pháp : Ý nghĩa : The_1, The_2, ..., The_k phải xuất hiện một lần duy nhất theo đúng thứ tự trên. Ví dụ: Thẻ DON_THUC phải bao hàm bên trong 2 thẻ con He_so,So_mu theo đúng thứ tự trên 75 75 Đặc tả cấu trúc nội dung thẻ DTD Ghi chú: Các thẻ bên trong có thể có tên trùng nhau. Ví dụ : Có thể sử dụng từ khóa #PCDATA trong biểu thức tuần tự ( và các loại biểu thức khác ). Ví dụ : § Thẻ X phải bao gồm 3 thành phần : § Thành phần thứ 1 là chuỗi văn bản, thành phần thức 2 là thẻ có tên A, thành phần thứ 3 là chuỗi văn bản 76 76 06/05/2021 29 Đặc tả cấu trúc nội dung thẻ DTD Dạng tùy chọn: Thẻ con có thể được sử dụng hay không sử dụng. Cú pháp ( dạng đơn giản) : § Thẻ đang xét có thẻ chứa 1 hay 0 lần xuất hiện của thẻ có tên là Ten_the_con Ví dụ : Thẻ DON_THUC có thể chứa hay không thẻ Ten 77 77 Đặc tả cấu trúc nội dung thẻ DTD Có thể kết hợp với biểu thức tuần tự: Có thể cho phép tùy chọn một tập hợp các thẻ: § X có thể chứa bên trong các thẻ A,B,C ( theo thứ tự trên ) hay cũng có thẻ không chứa bất kỳ thẻ nào Dạng chọn : Bắt buộc chọn một thẻ con để sử dụng trong tập hợp thẻ cho trước. Cú pháp: 78 78 06/05/2021 30 Đặc tả cấu trúc nội dung thẻ DTD Có thể kết hợp với biểu thức tuần tự: § Thành phần đầu tiên của thẻ X là thẻ A, kế đến là thẻ B hay thẻ C và thành phần cuối cùng phải là D Có thể cho phép chọn một tập hợp các thẻ § X có thể bao hàm bên trong cặp thẻ A,B ( theo thứ tự trên ) hay cặp thẻ C,D ( theo thứ tự trên ) 79 79 Đặc tả cấu trúc nội dung thẻ DTD Dạng lặp: Dạng lặp ít nhất 0 lần : Các thẻ con có thể lặp lại nhiều lần hay có thẻ không có lần nào. Cú pháp : Ý nghĩa: Thẻ đang xét có thể bao hàm bên trong nhiều thẻ có tên là Ten_the_con hay cũng có thể là thẻ rỗng ( không có nội dung ) Ví dụ : § Thẻ LOP có thẻ chứa nhiều thẻ HOC_SINH hay không có thẻ HOC_SINH nào 80 80 06/05/2021 31 Đặc tả cấu trúc nội dung thẻ DTD Có thể mô tả lặp đồng thời nhiều thẻ con § Các thẻ A,B,C theo thứ tự trên có thẻ lặp lại ít nhất 0 lần trong thẻ X Có thể kết hợp với biểu thức tuần tự. Ví dụ : § Thẻ X có thành phần đầu tiên là thẻ A, kế đến có thể có nhiều hay 0 lần lặp của thẻ B và cuối cùng là thẻ C 81 81 Đặc tả cấu trúc nội dung thẻ DTD Có thể kết hợp với biểu thức tùy chọn. Ví dụ : 82 82 06/05/2021 32 Đặc tả cấu trúc nội dung thẻ DTD Dạng lặp ít nhất 1 lần : Các thẻ con có thể lặp lại nhiều lần và ít nhất là một lần. Cú pháp : Ý nghĩa : Thẻ đang xét có thể bao hàm bên trong ít nhất một thẻ có tên là Ten_the_con. Ví dụ : § Thẻ DATHUC phải bao hàm bên trong ít nhất một thẻ DON_THUC 83 83 Đặc tả cấu trúc nội dung thẻ DTD Có thể mô tả lặp đồng thời nhiều thẻ con § Các thẻ CT_HOA_DON phải bao hàm ít nhất 1 lần 3 thẻMat_hang,So_luong,Don_gia Có thể kết hợp với biểu thức tuần tự. Ví dụ <!ELEMENT DA_GIAC (DIEM,DIEM,DIEM+) > § Các thẻ DA_GIAC phải bao hàm ít nhất 3 thẻ DIEM 84 84 06/05/2021 33 Đặc tả thuộc tính của thẻ DTD Cú pháp khai báo đặc tả thuộc tính chung: <!ATTLIST Ten_the Ten_thuoc_tinh_1 Kieu_1 Tham_so_1 Ten_thuoc_tinh_2 Kieu_2 Tham_so_2 ... Ten_thuoc_tinh_k Kieu_k Tham_so_k > 85 85 Đặc tả thuộc tính của thẻ DTD Ý nghĩa : Ten_the : tên thẻ cần khai báo các thuộc tính Ten_thuoc_tinh_1,Ten_thuoc_tinh_2, ...Ten_thuoc_tinh_k : Tên các thuộc tính của thẻ Kieu_1,Kieu_2, ..., Kieu_k : Mô tả tập hợp các giá trị mà thuộc tính có thể nhận Tham_so_1,Tham_so_2,.., Tham_so_k: Mô tả một số tính chất trên thuộc tính tương ứng 86 86 06/05/2021 34 Đặc tả thuộc tính của thẻ DTD Ví dụ: Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về biểu thức phân số: P = 4/5 + 6/7*1/3 - 10/3 +11/2*2/3 87 87 Đặc tả thuộc tính của thẻ DTD <!DOCTYPE BIEU_THUC [ <ATTLIST BIEU_THUC Ten CDATA #IMPLIED > <ATTLIST PHAN_SO Tu_so CDATA #REQUIRED Mau_so CDATA #REQUIRED 0 --> > ]> 88 88 06/05/2021 35 Đặc tả thuộc tính của thẻ DTD Kiểu thuộc tính : Mô tả tập hợp các giá trị của thuộc tính. Một số cách thông dụng mô tả: Cách 1 : Dùng từ khoá CDATA Cú pháp : <!ATTLIST Ten_the ... Ten_thuoc_tinh CDATA ... > Tập hợp các giá trị của thuộc tính với khai báo CDATA chính là tập hợp các chuỗi 89 89 Đặc tả thuộc tính của thẻ DTD Ví dụ : Đặc tả cấu trúc tài liệu XML biểu diễn phương trình đường thẳng trong mặt phẳng <!DOCTYPE DUONG_THANG [ 90 90 06/05/2021 36 Đặc tả thuộc tính của thẻ DTD <ATTLIST DUONG_THANG Ten CDATA #IMPLIED a CDATA #REQUIRED b CDATA #REQUIRED c CDATA #REQUIRED > ]>91 91 Đặc tả thuộc tính của thẻ DTD Cách 2: dùng biểu thức liệt kê. Cú pháp : <!ATTLIST Ten_the ... Ten_thuoc_tinh ( Gia_tri_1,Gia_tri_2,...._gia_tri_k) ... > Ý nghĩa : Tập hợp các giá trị có thể có của thuộc tính đang xét chính là tập hợp các giá trị được liệt kê Gia_tri_1,Gia_tri_2, ....,Gia_tri_k: Các giá trị này là các chuỗi ký tự 92 92 06/05/2021 37 Đặc tả thuộc tính của thẻ DTD Ví dụ: Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về phiếu điểm của một học sinh: <!DOCTYPE PHIEU_DIEM [ 93 93 Đặc tả thuộc tính của thẻ DTD <ATTLIST HOC_SINH Ho_ten CDATA #REQUIRED Ngay_sinh CDATA #REQUIRED Xep_loai(“Giỏi”, “Khá”, Trung bình”, Yếu”)#IMPLIED > <ATTLIST DIEM Ten_mon CDATA #REQUIRED Gia_tri CDATA #REQUIRED > ]> 94 94 06/05/2021 38 Đặc tả thuộc tính của thẻ Tham số của thuộc tính: mô tả tính chất của thuộc tính, một số cách mô tả: Cách 1: Dùng từ khóa #REQUIRED. Cú pháp : <!ATTLIST Ten_the ... Ten_thuoc_tinh Kieu #REQUIRED ... > Ý nghĩa : Thuộc tính đang xét là thuộc tính bắt buộc phải có. Đây là cách sử dụng phổ biến nhất 95 95 Đặc tả thuộc tính của thẻ DTD Ví dụ : Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về các đơn thức với tên bắt buộc phải có <!DOCTYPE DON_THUC [ <ATTLIST DON_THUC Ten CDATA #REQUIRED Bien_so CDATA #REQUIRED > =0 --> ]> 96 96 06/05/2021 39 Đặc tả thuộc tính của thẻ DTD Cách 2 : Dùng từ khóa #IMPLIED. Cú pháp : <!ATTLIST Ten_the ... Ten_thuoc_tinh Kieu #IMPLIED ... > Ý nghĩa : Thuộc tính đang xét là tùy chọn và không bắt buộc phải có. 97 97 Đặc tả thuộc tính của thẻ DTD Ví dụ : Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về tam thức P(x) =2x2 -4x +6. <!DOCTYPE TAM_THUC [ <ATTLIST TAM_THUC Ten CDATA #IMPLIED <!-- Ten : A_String > 98 98 06/05/2021 40 Đặc tả thuộc tính của thẻ DTD <ATTLIST DON_THUC He_so CDATA #REQUIRED So_mu (0,1,2) #REQUIRED > ]> 99 99 Đặc tả thuộc tính của thẻ DTD Cách 3: Dùng từ khóa #FIXED. Cú pháp : <!ATTLIST Ten_the ... Ten_thuoc_tinh Kieu #FIXED Gia_tri ... > Ý nghĩa : Thuộc tính đang xét phải có giá trị cố định là Gia_tri. Trường hợp này ít được sử dụng 100 100 06/05/2021 41 Đặc tả thuộc tính của thẻ DTD Ví dụ :Đặc tả cấu trúc tài liệu XML biểu diễn thông tin về các đơn thức chỉ với biến số x: <!DOCTYPE DON_THUC [ <ATTLIST DON_THUC Ten CDATA #REQUIRED Bien_so CDATA #FIXED “x” > 101 101 Đặc tả thuộc tính của thẻ DTD =0 --> ]> 102 102 06/05/2021 42 XML Schema XML Schema: khai báo XML Schema là tạo lập tài liệu XML mà nội dung chính là các thẻ đánh dấu, các thẻ này mô tả cho cấu trúc các thẻ của một tài liệu XML khác. Cú pháp: <xs:schema xmlns:xs=""> Đặc tả các thẻ Đặc tả các kiểu 103 103 XML Schema Thông tin về một thẻ được mô tả tập trung qua một phương cách duy nhất là kiểu. Mỗi thẻ sẽ có tương ứng một kiểu, đặc tả kiểu mô tả kiểu của thẻ cùng với một số thông tin khác chính là cách sắp xếp các thành phần bên trong của thẻ và hệ thống các thuộc tính của thẻ. 104 104 06/05/2021 43 XML Schema <xs:schema xmlns:xs=""> 105 105 XML Schema Tài liệu XML có thẻ gốc là DA_THUC thẻ này có kiểu là kiểu phức hợp tên là K_DA_THUC ( có thể dùng cùng tên là DA_THUC). Kiểu phức hợp K_DA_THUC bao gồm bên trong: § Thẻ DON_THUC có kiểu là kiểu phức hợp và thẻ DON_THUC phải xuất hiện ít nhất 1 lần § 2 thuộc tính : Ten với kiểu là kiểu cơ sở dạng chuỗi Bien_so với kiểu là kiểu cơ sở dạng chuỗi 106 106 06/05/2021 44 XML Schema 107 107 XML Schema Kiểu phức hợp K_DON_THUC không có nội dung và chỉ bao gồm các thuộc tính: § He_so có kiểu là kiểu cơ sở loại số thực § So_mu có kiểu là kiểu đơn giản với tên SO_TU_NHIEN Kiểu đơn giản SO_TU_NHIEN chính là kiểu cơ sở số nguyên với hạn chế: giá trị phải lớn hơn hay bằng 0 108 108 06/05/2021 45 XML Schema Đặc tả kiểu XML Schema có 3 loại kiểu chính : § Loại 1 : Kiểu định nghĩa sẵn (BultinType) § Loại 2 : Kiểu đơn giản (simpleType) § Loại 3 : Kiểu phức hợp (complexType). 109 109 XML Schema kiểu định nghĩa sẵn 110 110 06/05/2021 46 XML Schema kiểu định nghĩa sẵn Kiểu định nghĩa sẵn – thư viện Ý nghĩa sử dụng : § Được sử dụng đểmô tả trực tiếp kiểu của các thuộc tính hay của thẻ thỏa 2 điều kiện : Điều kiện 1 : thẻ không có thuộc tính Điều kiện 2 : thẻ không chứa thẻ khác (nội dung là chuỗi văn bản) và có miền giá trị (tập hợp giá trị có thể có) thích hợp với kiểu 111 111 XML Schema kiểu định nghĩa sẵn Cú pháp : § Khi dùng với thẻ: § Khi dùng với thuộc tính: Ví dụ: 112 112 06/05/2021 47 XML Schema kiểu đơn giản Kiểu đơn giản (simpleType): Là các kiểu do người dùng định nghĩa dựa trên các kiểu cơ sở có sẵn. Ý nghĩa sử dụng: để mô tả trực tiếp kiểu của các thuộc tính hay các thẻ thỏa mãn: § Điều kiện 1 : Không có thuộc tính § Điều kiện 2 : Không chứa thẻ khác ( nội dung là chuỗi văn bản) và có miền giá trị ( tập hợp giá trị có thể có ) là tập con của miền giá trị một kiểu cơ sở nào đó 113 113 XML Schema kiểu đơn giản Cú pháp: Giới hạn ( ràng buộc ) trên miền giá trị 114 114 06/05/2021 48 XML Schema kiểu đơn giản Khai báo cận dưới: Sử dụng từ khoá minInclusive ( cận dưới cho phép sử dụng biên ), minExclusive ( cận dưới không cho phép sử dụng biên) Khai báo cận trên: Sử dụng từ khoá maxInclusive ( cận trên cho phép sử dụng biên), maxExclusive ( cận trên không cho phép sử dụng biên) 115 115 XML Schema kiểu đơn giản 116 116 06/05/2021 49 XML Schema kiểu đơn giản Giới hạn loại liệt kê trên kiểu cơ sở: Cho phép xác định miền giá trị của kiểu đơn giản bằng cách liệt kê các giá trị. Cú pháp: ... 117 117 XML Schema kiểu đơn giản Ví dụ: 118 118 06/05/2021 50 XML Schema kiểu phức hợp Kiểu phức hợp complexType: Là các kiểu do người dùng tự định nghĩa cho phép mô tả nội dung và các thuộc tính của các thẻ được khai báo thuộc về kiểu đang xét. Ý nghĩa sử dụng : § Được sử dụng đểmô tả kiểu của các thẻ thỏa một trong 2 điều kiện : Điều kiện 1 : Có thuộc tính Điều kiện 2 : Có chứa thẻ khác 119 119 XML Schema kiểu phức hợp Cú pháp chung: Dac_ta_cau_truc_noi_dung Dac_ta_thuoc_tinh 120 120 06/05/2021 51 XML Schema kiểu phức hợp Dac_ta_cau_truc_noi_dung : Mô tả cách thức tổ chức, sắp xếp các thẻ con bên trong. Tương tự như DTD, XML Shema cho phép nhiều dạng tổ chức sắp xếp ( tuần tự, chọn, lặp ) các thẻ con.Ngoài ra cho phép khai báo chi tiết hơn về số lần lặp của một thành phần. Dac_ta_thuoc_tinh: Mô tả hệ thống các thuộc tính của thẻ. Việc mô tả các thuộc tính trong XML Shema cũng tương tự nhưmô tả thuộc tính trong DTD nhưng cho phép định nghĩa và sử dụng các kiểu đơn giản đểmô tả chi tiết vềmiền giá trị của một thuộc tính. 121 121 XML Schema kiểu phức hợp Đặc tả cấu trúc nội dung dạng tuần tự: Dạng tuần tự : Sử dụng thẻ/từ khóa sequence. Cú pháp : Thanh_phan_1 Thanh_phan_2 Thanh_phan_k .... 122 122 06/05/2021 52 XML Schema kiểu phức hợp Ví dụ: 123 123 XML Schema kiểu phức hợp Đặc tả cấu trúc nội dung dạng tùy chọn: Dạng tùy chọn : Sử dụng thẻ/từ khóa choice Cú pháp : Thanh_phan_1 Thanh_phan_2 Thanh_phan_k .... 124 124 06/05/2021 53 XML Schema kiểu phức hợp Ví dụ : 125 125 XML Schema kiểu phức hợp Đặc tả cấu trúc nội dung dạng lặp: Dạng lặp : Sử dụng thuộc tính/từ khóa minOccurs , maxOcuurs. Cú pháp: ... <xs:element name="Ten_the_con” type="Kieu_the_con" minOccurs=”So_lan_lap_toi_thieu” maxOccurs=”So_lan_lap_toi_da” /> ... .... 126 126 06/05/2021 54 XML Schema kiểu phức hợp Ví dụ: <xs:element name="DON_THUC” type="DON_THUC" minOccurs=”1” /> ... 127 127 XML Schema kiểu phức hợp <xs:element name="DIEM” type="DIEM" minOccurs=”3” maxOccurs=”3” /> ... 128 128 06/05/2021 55 XML Schema kiểu phức hợp Đặc tả thuộc tính: cho phép mô tả hệ thống các thuộc tính của một thẻ Cú pháp : Đặc tả cấu trúc nội dung .... <xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh" Tinh_chat_thuoc_tinh /> .... 129 129 XML Schema kiểu phức hợp Tinh_chat_thuoc_tinh : Mô tả một số tính chất của thuộc tính, mỗi tính chất tương ứng với một từ khóa riêng. <xs:attribute name="Ten_thuoc_tinh" type="Kieu_thuoc_tinh" Tu_khoa_1=”Gia_tri_1” Tu_khoa_2=”Gia_tri_2” Tu_khoa_k=”Gia_tri_k” /> Một số tính chất thông dụng: § Giá trị định sẵn : từ khóa default § Giá trị cố định: từ khóa fixed § Tùy chọn (có hay không có) sử dụng : từ khóa use 130 130 06/05/2021 56 XML Schema kiểu phức hợp Đặc tả thẻ: các thông tin cần mô tả khi đặc tả một thẻ trong XML bao gồm: § Tên thẻ § Kiểu của thẻ § Một số tính chất khác của thẻ Cú pháp khai báo: 131 131 XML Schema kiểu phức hợp Tên của kiểu: mô tả thông tin về thẻ, tên kiểu và tên thẻ được đặt trùng nhau. Thuộc tính của thẻ: mô tả các tính chất của thẻ, thông dụng nhất là minOccurs, maxOccurs . Khi đặc tả các thẻ vấn đề quan trong nhất là xác định loại kiểu sẽ dùng trong thẻ. 132 132 06/05/2021 57 XML Schema kiểu phức hợp Phân loại thẻ: 2 nhóm chính: § Nhóm 1 : Nhóm các thẻ có thuộc tính § Nhóm 2 : Nhóm các thẻ không có thuộc tính Với các thẻ có thuộc tính, nhất thiết phải sử dụng kiểu phức hợp § = > Khai báo kiểu phức hợp Y (có thể dùng tên thẻ đang xét ) § => Sử dụng Y là kiểu của thẻ đang xét 133 133 XML Schema kiểu phức hợp Các thẻ không có thuộc tính bao gồm 2 nhóm: § Nhóm 2.1 : Nhóm các thẻ không có thuộc tính và có chứa các thẻ con bên trong => phải sử dụng kiểu phức hợp § Nhóm 2.2 : Nhóm các thẻ không có thuộc tính và không chứa các thẻ con bên trong ( nội dung là chuỗi văn bản) Có thể chọn sử dụng kiểu cơ sở hay kiểu đơn giản phụ thuộc vào miền giá trị của chuỗi văn bản bên trong thẻ 134 134 06/05/2021 58 XML Schema kiểu phức hợp Thuật giải đặc tả thẻ: Xét loại kiểu của A: A là kiểu phức hợp,đặc tả kiểu phức hợp A bao gồm: Đặc tả hệ thống các thẻ con của thẻ gốc X § Đặc tả thẻ X1 với thông tin về kiểu (giả sử là A1) § Đặc tả thẻ X2 với thông tin về kiểu (giả sử là A2) § ... § Đặc tả thẻ XK với thông tin về kiểu (giả sử là Ak) Đặc tả hệ thống các thuộc tính của thẻ gốc X § Đặc tả thuộc tính T1 với thông tin về kiểu (giả sử là B1) § Đặc tả thuộc tính T2 với thông tin về kiểu (giả sử là B2) ... § Đặc tả thuộc tính Tk với thông tin về kiểu (giả sử là Bk) 135 135 XML Schema kiểu phức hợp A là kiểu đơn giản: Đặc tả kiểu đơn giản A bao gồm § Đặc tả kiểu cơ sở của A § Đặc tả các hạn chế trên kiểu cơ sở của A 136 136 06/05/2021 59 XML Schema kiểu phức hợp A là kiểu cơ sở : Không cần Đặc tả thêm Xét loại kiểu của A1 Xét loại kiểu của A2 ... Xét loại kiểu của Ak Xét loại kiểu của B1 Xét loại kiểu của B2 ... Xét loại kiểu của Bk Xét loại kiểu của T1 Xét loại kiểu của T2 ... Xét loại kiểu của Tk ..... Xét loại kiểu của các kiểu phát sinh thêm khi ñặc tả các kiểu phía trên ..... 137 137 Tài liệu tham khảo www.w3schools.com/xml – XML là gì Sách: Công nghệ XML và ứng dụng – Tác giả: Nguyễn Tiến Huy Charles F. Goldfarb and Paul Prescod. XML Handbook™, Fifth Edition. Prentice Hall, December, 2003 138 138 06/05/2021 60 139 139 Bài tập trên lớp 1 – Chuyển đổi Nguyen Kim Anh Nguyen ly cac he co so du lieu Cong Nghe Thong Tin 32.000 Dai Hoc Quoc Gia Ha Noi 2004 120 140 140 06/05/2021 61 Bài tập trên lớp 2 – Sửa các lỗi The Quest Tom Smith 2007 Summer 1998 Susie Black Paul White Hello World 141 141 CS142 Lecture Notes - FrontEnd Front End Programming Mendel Rosenblum CS142 Lecture Notes - FrontEnd Brief history of Web Applications ● Initially: static HTML files only with HTML forms for input ● Common Gateway Interface (CGI) ○ Certain URLs map to executable programs that generate web page ○ Program exits after Web page complete ○ Introduced the notion of stateless servers: each request independent, no state carried over from previous requests. (Made scale-out architectures easier) ○ Perl typically used for writing CGI programs CS142 Lecture Notes - FrontEnd First-generation web app frameworks Examples: (PHP, ASP.net, Java servlets) ● Incorporate language runtime system directly into Web server ● Templates: mix code and HTML ● Web-specific library packages: ○ URL handling ○ HTML generation ○ Sessions ○ Interfacing to databases CS142 Lecture Notes - FrontEnd Second-generation frameworks Examples: (Ruby on Rails, Django): ● Model-view-controller: stylized decomposition of applications ● Object-relational mapping (ORM): simplify the use of databases (make database tables and rows appear as classes and objects) ○ Easier fetching of dynamic data CS142 Lecture Notes - FrontEnd Third-generation frameworks Example: AngularJS ● JavaScript frameworks running in browser - More app-like web apps ○ Interactive, responsive applications ● Frameworks not dependent on particular server-side capabilities ○ Node.js - Server side JavaScript ○ No-SQL database (e.g. MongoDB) ● Many of the concepts of previous generations carry forward ○ Model-view-controllers ○ Templates CS142 Lecture Notes - FrontEnd Model-View-Controller (MVC) Pattern ● Model: manages the application's data ○ JavaScript objects. Photo App: User names, pictures, comments, etc. ● View: what the web page looks like ○ HTML/CSS. Photo App: View Users, View photo with comments ● Controller: fetch models and control view, handle user interactions, ○ JavaScript code. Photo App: DOM event handlers, web server communication MVC pattern been around since the late 1970's ○ Originally conceived in the Smalltalk project at Xerox PARC CS142 Lecture Notes - FrontEnd View Generation ● Web App: Ultimately need to generate HTML and CSS ● Templates are commonly used technique. Basic ideas: ○ Write HTML document containing parts of the page that are always the same. ○ Add bits of code that generate the parts that are computed for each page. ○ The template is expanded by executing code snippets, substituting the results into the document. ● Benefits of templates (Compare with direct JavaScript to DOM programming) ○ Easy to visualize HTML structure ○ Easy to see how dynamic data fits in ○ Can do either on server or browser CS142 Lecture Notes - FrontEnd AngularJS view template (HTML/CSS) ... Hello {{models.user.firstName}}, You have {{models.photos.count}} photos to review. Angular has rich templating language (loops, conditions, subroutines, etc.). Later... CS142 Lecture Notes - FrontEnd Controllers ● Third-generation: JavaScript running in browser Responsibilities: ● Connect models and views ○ Server communication: Fetch models, push updates ● Control view templates ○ Manage the view templates being shown ● Handle user interactions ○ Buttons, menus, and other interactive widgets CS142 Lecture Notes - FrontEnd AngularJS controller (JavaScript function) function userGreetingView ($scope, $modelService) { $scope.models = {}; $scope.models.users = $modelService.fetch("users"); $scope.models.photos = $modelService.fetch("photos"); $scope.okPushed = function okPushed() { // Code for ok button pushing } } Angular creates $scope and calls controller function called when view is instantiated CS142 Lecture Notes - FrontEnd Model Data ● All non-static information needed by the view templates or controllers ● Traditionally tied to application's database schema ○ Object Relational Mapping (ORM) - A model is a table row ● Web application's model data needs are specified by the view designers But need to be persisted by the database ● Conflict: Database Schemas don't like changing frequently but web application model data might (e.g. user will like this view better if we add and lose ...) CS142 Lecture Notes - FrontEnd Angular doesn't specify model data (JavaScript objs) ● Angular provides support for fetching data from a web server ○ REST APIs ○ JSON frequently used On Server: ● Mongoose's Object Definition Language (ODL) has "models" var userSchema = new Schema({ firstName: String, lastName: String, }); var User = mongoose.model('User', userSchema); CS142 Lecture Notes - FrontEnd Fourth-generation frameworks Examples: React.js, Vue.js, Angular(v2) ● Many of the concepts of previous generations carry forward ○ JavaScript in browser ○ Model-view-controllers ○ Templates ● Focus on JavaScript components rather than pages/HTML ○ Views apps as assembled reusable components rather than pages. ○ Software engineering focus: modular design, reusable components, testability, etc. ● Virtual DOM ○ Render view into DOM-like data structure (not real DOM) ○ Benefits: Performance, Server-side rendering, Native apps 5/13/21 1 Instructor: Dr. Thanh-Chung Dao Slides by Dr. Binh Minh Nguyen Department of Information Systems School of Information and Communication Technology Hanoi University of Science and Technology IT4409: Web Technologies and e-Services 2020-2 Service-Oriented Architecture (SOA) 1 TOPICS Introduction to SOA § Service § Service Oriented Architecture Web services Web services programming § SOAP Web services § REST Web services 2 5/13/21 2 History of creating application Programming with § 0 and 1 § Assembly § Procedural programming language § OOP programming §Service-Oriented Architecture 3 What is a service? Restaurant provides food: a service After the order is taken, food is produced, served, : service may consist of other services The menu indicates the service provided: a service description The order is written down, or yelled at, the cook: services communicate through messages 4 5/13/21 3 What is a service in IT? An entity that provides some capability to its clients by exchanging messages (request - response) Request Response 5 Service characteristics § Services can (must) be discovered § Services can be composed to form larger services § Services adhere to a service description/contract § Services are loosely coupled § Services are stateless n Services are autonomous n Services hide their logic n Services are reusable n Services use open standards 6 5/13/21 4 Loosely coupled, stateless, autonomous & hide logic § Loosely coupled: system is one in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components § Stateless: Rental agencies come and go, the agencies cannot retain information: it doesn’t know if and when it will be invoked again, and by whom § Autonomous: Its logic does not depend on the tenants § Hide logic: Rental agency has its own rules on how to structure its process 9 What is SOA? SOA is a software architecture model in which business functionality are logically grouped and encapsulated into self contained, distinct and reusable units called services represent a high level business concept can be distributed over a network can be reused to create new business applications contain contract with specification of the purpose, functionality, interfaces, usage 10 5/13/21 5 SOA from different views Business A set of business services composed to capture the business design that an enterprise wants to expose to its customers and clients Architecture An architectural style that requires a service provider, requester and a service description Programming A programming model complete with standards, tools, methods and technologies such as Web services 11 Application centric Application Application Finance DistributionManufacturing Supply Narrow Consumers Limited Business Processes Overlapped resources Overlapped providers Business scope Application Integration Architecture Business functionality is duplicated in each application that requires it. Redundancy 12 5/13/21 6 Service centric Service Architecture Service Service Service Service Finance DistributionManufacturing Supply Service virtualizes how that capability is performed, and where and by whom the resources are provided, enabling multiple providers and consumers to participate together in shared business activities. Multiple Service Consumers Multiple Business Processes Multiple Discrete Resources Multiple Service Providers Business scope SOA structures the business and its systems as a set of capabilities that are offered as Services, organized into a Service Architecture Shared Services 13 Application centric vs Service centric 14 5/13/21 7 Why SOA? Enabling a virtual federation of participants to collaborate in an end-to-end business process Enabling alternative implementations Enabling reuse of Services Enabling virtualization of business resources Enabling aggregation from multiple providers Identification Ticket Sales Ticket Collection Inventory Logistics Manufacturing Availability Service Service Service Service Service Service Service Service Service Service Ordering 15 SOA is an evolutionary step 16 5/13/21 8 SOA layered architecture Reasons for Layering 1. Flexible composition. 2. Reuse. 3. Functional standardization in lower levels 4. Customization in higher layers 5. Separation of Concerns. 6. Policies may vary by Layer Example Layers Presentation & workflow Composed Services Basic Services Underlying API 19 TOPICS Introduction to SOA § Service § Service Oriented Architecture Web services Web services programming § SOAP Web services § REST Web services 21 5/13/21 9 Web services & SOA Web services is chosen for SOA because: § Loose coupling Service requesters depend only the interface described in WSDL and not on the implementation of the service provide § Interoperability Service interactions are based on the exchange of XML-based SOAP messages over standards based transport protocols § Wide industry support Wide industry support for adoption of Web services standards promotes interoperability of various vendor platforms that support Web services 22 What is web service? Implementation means to realize services Based on open standards: § XML § SOAP: Simple Object Access Protocol § WSDL: Web Services Description Language § UDDI: Universal Description, Discovery and Integration § BPEL4WS: Business Process Execution Language for Web Services Main standardization bodies: OASIS, W3C 23 5/13/21 10 One for all Browser Web Server HTTP GET/POST DB JDBC Web Server DB JDBC Browser Web Server SOAP GUI Client SOAP WSDL WSDL W S D LW S D L 24 OSI and Web service Application Presentation Session Transport Datalink Network Physical OSI Model Device Driver & Hardware Ipv4, IPv6 OthersTCP UDP Application Internet Protocol Suite Device Driver & Hardware Ipv4, IPv6 TCP Web Services Application Web Services Model 25 5/13/21 11 Example Web Services Client Application Web Services Based Travel Web Site Airlines -- Delta Hotels -- Marriot Automobiles -- Hertz Travel Services -- Sabre RDMS Travel Customers Web Browser Web Browser Web Browser 26 Open standard technologies for web service XML – tagging data such that it can be exchanged between applications and platforms SOAP – messaging protocol for transporting information and instructions between applications (uses XML) WSDL – a standard method of describing web services and their specific capabilities (XML) UDDI – defines XML-based rules for building directories in which companies advertise themselves and their web services 27 5/13/21 12 XML Developed from Standard Generalized Markup Method (SGML) XML widely supported by W3C Essential characteristic is the separation of content from presentation XML describes only data Any application that understands XML can exchange data 28 XML XML parser checks syntax If syntax is good the document is well-formed XML document can optionally reference a Document Type Definition (DTD), also called a Schema If an XML document adheres to the structure of the schema it is valid 29 5/13/21 13 SOAP SOAP enables between distributed systems SOAP message has three parts § envelope – wraps entire message and contains header and body § header – optional element with additional info such as security or routing § body – application-specific data being commuicated 30 TOPICS Introduction to SOA § Service § Service Oriented Architecture Web services Web services programming § SOAP Web services § REST Web services 34 5/13/21 14 Three Most Common Styles of Use RPC (Remote Procedure Calls) § A distributed function call interface SOAP (Simple Object Access Protocol) § The basic unit of communication is a message, rather than an operation REST (Representational State Transfer) § Standard operations in HTTP: GET, POST, PUT, DELETE § Interacting with stateful resources, rather than messages or operations 35 RPC Web Services Basic unit: WSDL operation Widely deployed and supported, but not loosely coupled Other approaches: CORBA, DCE/RPC, Java RMI 36 5/13/21 15 SOAP Web Services Basic unit: message Supported by most major vendors, loose coupling Envelope Body Message Payload Header 37 Representational State Transfer (REST) Interacting with stateful resources, rather than messages or operations Using HTTP standard operations such as GET, POST, PUT, DELETE WSDL 2.0 offers support for binding to all HTTP request methods § WSDL 1.1 only GET and POST 38 5/13/21 16 SOAP web service § HTTP-XML-based protocol § Enables application to communicate over Internet § Uses XML documents called messages § SOAP message contains an envelope § Describes message’s content and intended recipient § Ability to make a Remote Procedure Call (RPC) § Request to another machine to run a task 39 SOAP — Using Web Services and SOAP, the request would look something like this: <soap:Envelope xmlns:soap="" soap:encodingStyle=""> 12345 40 5/13/21 17 Pros & cons Advantages § Human readable XML § Easy to debug § SOAP runs over HTTP § Firewalls not affected § Services can be written in any language, platform or operating system n Disadvantages n S-L-O..-W n XML produces a lot of overhead for small messages n Web Services speed relies on Internet traffic conditions n Not strictly-typed XML 41 SOAP web service by Java Web Service Server RDBS Framework •Java •.Net Java RDBMS Application WS Endpoint Interface WS Endpoint Publisher WSDL wsimport Web Service Client Application JSE 6 .jar javax.jws javax.xml.ws javax.xml.rpc javax.xml.soap javax.xml.bind WS Attribute Classes Java Enterprise Environment Internet Java Client Environment • Java Web Services Development Environment • Fully Integrated Framework and Utilities • End to End Enterprise/Client Communications 42 5/13/21 18 Android Web Services Development Environment Web Service RDBS Framework •Java •.Net Java RDBMS Application WS Endpoint Interface WS Endpoint Publisher WSDL wsimport Proc beansxml Abst Java .jars javax.jws javax.xml othes... Android Java WS Client kSOAP2 Missing Tool Components Missing Library Components 43 SOAP vs REST SOAP REST Meaning Simple Object Access Protocol Representational State Transfer Design Standardized protocol with pre-defined rules to follow. Architectural style with loose guidelines and recommendations. Approach Function-driven (data available as services, e.g.: “getUser”) Data-driven (data available as resources, e.g. “user”). Statefulness Stateless by default, but it’s possible to make a SOAP API stateful. Stateless (no server-side sessions). Caching API calls cannot be cached. API calls can be cached. Security WS-Security with SSL support. Built-in ACID compliance. Supports HTTPS and SSL. Performance Requires more bandwidth and computing power. Requires fewer resources. Message format Only XML. Plain text, HTML, XML, JSON, YAML, and others. Transfer protocol(s) HTTP, SMTP, UDP, and others. Only HTTP Recommended for Enterprise apps, high-security apps, distributed environment, financial services, payment gateways, telecommunication services. Public APIs for web services, mobile services, social networks. Advantages High security, standardized, extensibility. Scalability, better performance, browser- friendliness, flexibility. Disadvantages Poorer performance, more complexity, less flexibility. Less security, not suitable for distributed environments. 44 5/13/21 19 Q&A email: chungdt@soict.hust.edu.vn 45

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_web_technologies_and_e_services.pdf
  • pdfLec0 - introduction_to_course.pdf
  • pdfLec1 - overview.pdf
  • pdfLec2-1 - HTML.pdf
  • pdfLec2-2 - web_development_models.pdf
  • pdfLec2-3 - introduction_to_PHP.pdf
  • pdfLec3-1 - javascript.pdf
  • pdfLec3-3 - advanced_PHP_read.pdf
  • pdfLec4-1 - mySQL.pdf
  • pdfLec4-2 - MVC _ PHP Frameworks.pdf
  • pdfLec5-1 - DOM.pdf
  • pdfLec6 - CSS.pdf
  • pdfLec7-1 - RESTful.pdf
  • pdfLec7-2 - Ajax.pdf
  • pdfLec8-1 - XML, DTD and XML Schema.pdf
  • pdfLec9-1 - FrontEnd.pdf
  • pdfLec9-2 - SOA.pdf