Xây dựng giải pháp eForms thông minh dựa trên DB2 pureXML, Lotus Form và dịch vụ Web

Tạo ứng dụng biểu mẫu điện tử trong ba bước

Xử lý biểu mẫu là một trong những nhiệm vụ chủ yếu hàng ngày tại nhiều doanh nghiệp nhà nước và tư nhân. Quy trình dựa trên các biểu mẫu in giấy gây tốn phí tài nguyên, tốn thời gian và thường dẫn đến dữ liệu không chính xác hoặc không đầy đủ. Bài viết này mô tả cách làm thế nào để bạn có thể xây dựng một giải pháp điện tử hiệu quả cho việc thu thập, đệ trình và quản lý dữ liệu từ biểu mẫu. Bài viết hướng dẫn bạn thông qua ba bước để xây dựng một giải pháp thu thập dữ liệu biểu mẫu điện tử XML có hiệu quả với Lotus® Forms để thu thập dữ liệu, DB2® pureXML® để lưu trữ và truy vấn dữ liệu và sự kết nối giữa hai sản phẩm đó thông qua một dịch vụ web đơn giản mà bạn có thể tạo ra với Data Studio Developer. Trong ba bước, bạn có thể có một ứng dụng biểu mẫu điện tử sẵn sàng hoạt động, nó có thể là cơ sở để thu thập và quản lý dữ liệu một cách hiệu quả, nhanh chóng và chính xác.

Dexiong Terry Zhang, Kỹ sư phần mềm, IBM

Author Photo: Dexiong Terry ZhangDexiong Terry Zhang là kỹ sư phần mềm cộng tác viên của phòng thí nghiệm tại Thung lũng Silicon của IBM. Ông tốt nghiệp trường Đại học bang San Jose, ngành Khoa học máy tính. Ông gia nhập đội DB2 pureXML Enablement năm 2008 và đang làm việc về giải pháp tích hợp pureXML trong nhiều dự án khác nhau



Bryan Patterson, Kiến trúc sư giải pháp cao cấp, IBM

Author Photo: Bryan PattersonBryan Patterson là kiến trúc sư giải pháp cao cấp của phòng thí nghiệm tại Thung lũng Silicon của IBM, ông chuyên về quản lý cơ sở dữ liệu. Ông đã có hơn 20 năm kinh nghiệm trong công nghiệp phần mềm, bao gồm các cương vị quản lý trong việc phát triển, bảo đảm chất lượng và lập kế hoạch sản phẩm



06 11 2009

Giới thiệu

Các hoạt động hàng ngày của các doanh nghiệp ngày nay phụ thuộc rất nhiều vào các biểu mẫu để thu thập dữ liệu, bao gồm các hoạt động như mở tài khoản, xin vay tiền, yêu cầu dịch vụ và thậm chí nộp thuế. Rất nhiều quá trình thu thập dữ liệu vẫn dựa vào các biểu mẫu in giấy để thu thập thông tin, nhưng cả doanh nghiệp nhà nước lẫn tư nhân đang chuyển từ các biểu mẫu trên giấy sang các biểu mẫu điện tử trực tuyến (eForms). So với hệ thống dựa trên giấy thì giải pháp eForms nhanh hơn, hiệu quả hơn, dễ dàng sử dụng hơn, và kết quả là các dữ liệu tốt hơn. Đề nghị của World Wide Web Consortium (W3C) cho eForms là công nghệ XForms dựa trên XML (Extensible Markup Language).

Nhiều người cho rằng XML là công nghệ thích hợp nhất để chuyển dữ liệu trực tuyến và đã được sử dụng rộng rãi trong nhiều ngành công nghiệp cho các nghiệp vụ trực tuyến. Khả năng tự miêu tả, linh hoạt và mở rộng được của XML cũng làm cho nó trở thành sự lựa chọn tốt nhất làm mô hình dữ liệu để thu thập và đệ trình dữ liệu biểu mẫu điện tử. XForms, được hỗ trợ bởi XML, có thể trình bày và thu thập dữ liệu biểu mẫu điện tử một cách hiệu quả. XForms hỗ trợ xác nhận hợp lệ dữ liệu biểu mẫu dựa vào lược đồ XML, lược đồ này có thể bao gồm các từ vựng chuyên sâu ngành dọc, chuẩn công nghiệp như ACORD, HL7 và NIEM. XForms cũng hỗ trợ việc đệ trình trực tiếp dữ liệu XML lên máy chủ. Việc đệ trình dữ liệu XML trực tiếp loại bỏ quá trình chuyển đổi định dạng dữ liệu trước khi truyền. XForms là độc lập với nền hệ thống, điều đó có nghĩa là việc phát triển một biểu mẫu duy nhất có thể được triển khai đến nhiều thiết bị tại phía khách. IBM® Lotus Forms cung cấp giải pháp eForms dựa trên XForms với các khả năng trình bày và bảo đảm an ninh bổ sung thêm, có thể cải thiện rất nhiều quá trình thu thập dữ liệu.

Sau khi dữ liệu được thu thập bởi một biểu mẫu, ta cần một phương pháp hiệu quả để quản lý dữ liệu biểu mẫu XML. Theo truyền thống, trong cơ sở dữ liệu quan hệ, dữ liệu XML hoặc được coi là một đối tượng lớn hoặc bị phân rã vào các cột quan hệ. Khi dữ liệu XML được coi là một đối tượng lớn trong cơ sở dữ liệu, thì bất kỳ truy vấn dữ liệu nào cũng đòi hỏi lấy ra toàn bộ tài liệu XML đầy đủ, thay vì chỉ lấy dữ liệu cần thiết, và nội dung của dữ liệu không thể dùng để xác định tài liệu nào sẽ lấy ra. Mặt khác, việc phân rã dữ liệu XML vào các cột quan hệ là một quá trình phức tạp và tốn kém, và nó loại bỏ các thông tin ngữ nghĩa tự mô tả trong XML. Quá trình phân tách cũng loại bỏ sự linh hoạt và khả năng mở rộng của XML. Nếu cấu trúc của tài liệu XML gốc đã thay đổi, điều này có khả năng xảy ra theo định kỳ đối với các ứng dụng biểu mẫu, thì ánh xạ ban đầu tới các cấu trúc quan hệ sẽ không còn có giá trị nữa và sẽ cần phải cập nhật để kết hợp các thay đổi.

IBM đã giải quyết nhu cầu quản lý dữ liệu XML một cách hiệu quả trong cơ sở dữ liệu quan hệ bằng việc đưa thêm đặc tính pureXML vào IBM DB2 9. Với DB2 pureXML, bạn có thể lưu trữ dữ liệu XML vào và lấy dữ liệu ra từ cơ sở dữ liệu trong cấu trúc phân cấp nguyên gốc của nó mà không cần phải xử lý thêm hoặc định dạng lại dữ liệu. Điều này cho phép quản lý một cách hiệu quả các dữ liệu biểu mẫu XML.

Kết hợp DB2 pureXML và Lotus Forms sẽ cung cấp cho ta một nền tảng cho một giải pháp biểu mẫu điện tử đơn giản nhưng hiệu quả.

Tổng quan về giải pháp

Giải pháp eForms thông minh của IBM được xây dựng trên DB2 pureXML và Lotus Forms. Lotus Forms thu thập dữ liệu tại mặt trước trong một cấu trúc XML và DB2 pureXML quản lý dữ liệu biểu mẫu dạng XML tại mặt sau. Mặt trước và mặt sau được kết nối với một dịch vụ web được tạo ra bởi IBM Data Studio Developer và cho chạy trên một máy chủ ứng dụng như IBM WebSphere® Application Server. Giải pháp này cung cấp khả năng thu thập, đệ trình và quản lý dữ liệu XML thông suốt từ đầu đến cuối với các sản phẩm phần mềm đáng tin cậy và có khả năng mở rộng của IBM. Kiến trúc của giải pháp tại hình 1 cho thấy các công cụ được sử dụng tại cả hai giai đoạn: thời gian phát triển và thời gian chạy.

Hình 1: Kiến trúc của giải pháp eForms thông minh của IBM
Development time: Lotus Forms Designer, Data Studio Developer, DB2 Command Editor. Run time: Lotus Forms, Web service on WebSphere Application Server, DB2 pureXML

Các phần sau của bài viết sẽ mô tả một cách ngắn gọn các khả năng của các sản phẩm chính tạo nên giải pháp. Xin tham khảo phần Tài nguyên để có các liên kết đến các thông tin chi tiết hơn về các sản phẩm này.

DB2 pureXML

Đặc tính pureXML lần đầu tiên được đưa vào DB2 IBM phiên bản 9. Nó cung cấp khả năng lưu trữ dữ liệu XML một cách nguyên bản với định dạng phân cấp của nó trong một hệ thống cơ sở dữ liệu quan hệ. Điều này có nghĩa là tài liệu XML được lưu trữ với với sự hiểu biết đầy đủ của cơ sở dữ liệu về cấu trúc phân cấp nội bộ của tài liệu và với các phần tử và các thuộc tính riêng lẻ. Với pureXML, bạn có thể lưu trữ, kiểm soát, truy vấn, và cập nhật dữ liệu XML một cách hiệu quả cùng với các dữ liệu quan hệ được lưu trữ trong cùng một bảng hoặc trong cùng một cơ sở dữ liệu.

Dữ liệu XML trong DB2 pureXML được trình bày như là một cột trong một bảng, giống như các dữ liệu quan hệ khác, với kiểu dữ liệu XML. DB2 hỗ trợ các truy vấn được viết bằng các ngôn ngữ tiêu chuẩn công nghiệp như SQL/XML và XQuery để truy cập và thao tác các dữ liệu XML. Các dịch vụ của DB2, chẳng hạn như tối ưu hóa, lập chỉ mục, kiểm soát tương tranh và các tiện ích được mở rộng để hỗ trợ dữ liệu XML cùng với các dữ liệu quan hệ. Hình 2 miêu tả cách mà DB2, với pureXML, đã trở thành một cơ sở dữ liệu lai, nó có thể truy cập và quản lý dữ liệu quan hệ và dữ liệu XML theo cùng một cách hiệu quả như nhau.

Hình 2: Kiến trúc DB2 với hỗ trợ được cài sẵn cho dữ liệu quan hệ và dữ liệu XML
SQL/XML and XQuery can retrieve both relational and XML data from DB2 a database table

Với việc lưu trữ XML nguyên sinh của pureXML, bạn có thể tận dụng tính linh hoạt của cấu trúc XML và giảm tải công việc cho ứng dụng trong giải pháp eForms của bạn. Với pureXML, bạn có thể chèn toàn bộ dữ liệu dạng biểu mẫu XML vào chỉ một cột XML của DB2, trong khi vẫn duy trì được hiệu quả truy cập vào các phần tử dữ liệu riêng. Bạn có thể trả về toàn bộ tài liệu hoặc các phần con của tài liệu, tùy theo cần cái gì. Các dữ liệu biểu mẫu XML được lưu trong DB2 có thể được truyền trực tiếp qua mạng nội bộ hoặc qua mạng Internet để xử lý bổ sung, phân tích hoặc chia sẻ thông tin mà không cần thao tác thêm.

Lưu ý: pureXML có sẵn kể từ phiên bản 9 của DB2 cho các hệ điều hành Linux®, UNIX® và Windows® và DB2 cho hệ điều hành z/OS. Giải pháp trong bài viết này sử dụng ấn bản DB2 Express-C phiên bản 9.5 cho Linux, UNIX, và Windows, đây là phiên bản miễn phí để tải về và sử dụng. Xin tham khảo phần Tài nguyên để có liên kết đến trang tải về.

Data Studio Developer

IBM Data Studio là một danh mục các công cụ dựa trên nền Eclipse, bao gồm một tập hợp đầy đủ các đặc tính để thiết kế, phát triển và quản lý dữ liệu, cơ sở dữ liệu và các ứng dụng hướng dữ liệu. Nó cung cấp một môi trường phát triển và kiểm thử mà bạn có thể sử dụng để xây dựng các đối tượng của cơ sở dữ liệu và các ứng dụng cơ sở dữ liệu. Data Studio Developer cho phép bạn sử dụng SQL, SQL/XML, XQuery và Java để tạo và thi hành các truy vấn cơ sở dữ liệu, các thủ tục lưu sẵn, dịch vụ Web, các tầng truy cập dữ liệu dùng Java. Bạn có thể tạo ra dịch vụ web dữ liệu trực tiếp từ câu lệnh SQL và các thủ tục lưu sẵn mà không phải viết một dòng mã ứng dụng nào. Các dịch vụ web và hỗ trợ cả các kết buộc SOAP lẫn REST và bạn có thể triển khai ngay lập tức chúng đến các máy chủ ứng dụng có hỗ trợ, ví dụ như máy chủ WebSphere Application Server.

Bài viết này mô tả cách sử dụng Data Studio Developer để tạo ra một dịch vụ Web dữ liệu đơn giản để nhận dữ liệu XML từ một eForm và lưu trữ nó trực tiếp vào DB2.

Máy chủ ứng dụng WebSphere

Máy chủ ứng dụng WebSphere của IBM là một máy chủ ứng dụng Java, J2EE, và các ứng dụng dựa trên dịch vụ web. Nó cung cấp một môi trường triển khai ứng dụng phong phú với một tập hợp đầy đủ các dịch vụ ứng dụng, bao gồm cả khả năng để quản lý giao dịch, an ninh, tạo phân cụm, hiệu năng cao, sẵn sàng để sử dụng, khả năng kết nối và khả năng mở rộng. Giải pháp trong bài viết này sử dụng máy chủ ứng dụng WebSphere, Community Edition cho việc triển khai các dịch vụ web. Máy chủ ứng dụng WebSphere, Community Edition là máy chủ miễn phí. Xin tham khảo phần Tài nguyên để có liên kết đến trang tải về.

Lotus Forms

Lotus Forms của IBM giúp bạn tự động hoá các quy trình nghiệp vụ dựa trên biểu mẫu và tạo điều kiện tích hợp dữ liệu hiện với các hệ thống công nghệ thông tin hiện có. Các công nghệ nền tảng của Lotus Forms là XForms theo chuẩn mở của W3C và Ngôn ngữ mô tả biểu mẫu có thể mở rộng (XFDL - Extensible Forms Description Language). Ở mức cao, XForms cung cấp mô hình dữ liệu XML, tách biệt dữ liệu biểu mẫu và vẻ ngoài của biểu mẫu, và XFDL điều khiển tầng trình bày và lôgic nghiệp vụ. Với Lotus Forms, bạn có thể tạo eForms với dáng vẻ và cảm nhận như biểu mẫu in giấy hoặc với kiểu dáng các mẫu câu hỏi - trả lời có hướng dẫn. Lotus Forms có khả năng kiểm tra hợp lệ việc nhập dữ liệu dựa trên các tiêu chí đã xác định và áp dụng lôgic nghiệp vụ dựa trên dữ liệu được nhập vào. Lotus Forms cũng cung cấp hỗ trợ chữ ký số để đảm bảo an ninh. Lotus Forms có thể được triển khai như phần mềm máy tính để bàn phía khách hoặc dưới dạng các biểu mẫu của máy chủ web mà bạn có thể truy cập thông qua một trình duyệt Web.

Bài viết này mô tả cách sử dụng trình thiết kế Lotus Forms (Lotus Froms Designer) và trình xem Lotus Forms (Lotus Forms Viewer). Trình thiết kế Lotus Forms là công cụ phát triển để xây dựng các biểu mẫu điện tử dựa trên XForms. Trình này được xây dựng trên nền Eclipse và cung cấp môi trường WYSIWYG (What you see is what you get - Nhìn thấy gì thì nhận được đúng như thế) với các đặc tính tiên tiến cho sự phát triển nhanh chóng eForms. Trình xem của Lotus Forms là trình khách phong phú (rich client) chạy thi hành trên máy tính bàn cho phép bạn xem, hoàn tất và gửi eForms.

Xây dựng các giải pháp

Phần này hướng dẫn bạn qua các bước để tạo ra giải pháp biểu mẫu điện tử. Đây là ba bước chính để tạo ra giải pháp biểu mẫu điện tử đầy đủ (xin xem lại sơ đồ tại hình 1):

  1. Tạo cơ sở dữ liệu và bảng để lưu trữ dữ liệu biểu mẫu trong DB2 pureXML - sử dụng trình biên tập lệnh DB2 (DB2 Command Editor)

  2. Tạo và triển khai các dịch vụ Web dữ liệu - sử dụng sản phẩm Data Studio Developer

  3. Tạo biểu mẫu điện tử - sử dụng trình thiết kế Lotus Forms

Toàn bộ quá trình này có thể được hoàn tất khá nhanh chóng sau khi bạn đã cài đặt phần mềm cần thiết. Sau đó tất cả những gì mà bạn cần làm là điền vào biểu mẫu và gửi dữ liệu bằng cách sử dụng Lotus Forms Viewer. Bài viết cũng hướng dẫn bạn các thao tác này.

Cuối cùng, bài viết chỉ cho bạn cách để truy vấn các dữ liệu biểu mẫu XML được lưu trữ trong cơ sở dữ liệu DB2.

Điều kiện cần có

Trước khi bắt đầu xây dựng giải pháp, bạn cần phải cài đặt và định cấu hình cho các phần mềm sau đây tại hệ thống của bạn:

  • DB2 phiên bản 9 hoặc các phiên bản sau, trong đó có pureXML

  • Data Studio Developer V2.1, có sẵn để tải về dùng thử miễn phí

  • WebSphere Application Server Community Edition V2.1

  • Lotus Forms Designer V3.5

  • Lotus Forms Viewer V3.5

Tham khảo phần Tài nguyên để lấy các liên kết tải về và hướng dẫn cài đặt, định cấu hình chi tiết của từng sản phẩm.

Bài viết hướng dẫn bạn qua các bước để xây dựng giải pháp biểu mẫu điện tử. Nếu bạn có kế hoạch để tạo ra giải pháp tại hệ thống của bạn, thì bạn cần phải có kiến thức cơ bản về các hệ thống cơ sở dữ liệu, DB2 và câu lệnh SQL. Bạn cũng cần phải có hiểu biết cơ bản về công nghệ XML và khái niệm về dịch vụ Web.

Tạo cơ sở dữ liệu và bảng để lưu giữ các dữ liệu biểu mẫu

Hãy theo các bước dưới đây để tạo ra cơ sở dữ liệu và bảng cho các giải pháp eForms trong cơ sở dữ liệu DB2.

  1. Mở cửa sổ DB2 Command Editor và nhập lệnh sau để tạo một cơ sở dữ liệu:

    create database eformdb using codeset utf-8 territory us
  2. Nhập lệnh sau để kết nối tới cơ sở dữ liệu:

    connect to eformdb
  3. Nhập lệnh sau để tạo ra một bảng. Để đơn giản, bảng cho giải pháp này chỉ có một cột, nhưng bạn lưu ý rằng cột có kiểu dữ liệu XML.

    create table eformtable (form xml)

Tạo và triển khai dịch vụ web dữ liệu

Hãy theo các bước dưới đây để tạo một dịch vụ Web dữ liệu với Data Studio Developer. Dịch vụ web dữ liệu nhận dữ liệu biểu mẫu XML và chèn nó vào cơ sở dữ liệu. Giải pháp này chỉ đòi hỏi một dịch vụ web đơn giản, mặc dù các dịch vụ phức tạp hơn chắc chắn có thể thực hiện được.

  1. Khởi chạy Data Studio Developer.

  2. Tại cửa sổ Data Source Explorer, nhấp đúp chuột vào Database Connections > EFORMDB [DB2 Alias] để hiện lên cửa sổ thuộc tính của nó (Hình 3). Nếu bạn không thấy cơ sở dữ liệu EFORMDB trong danh sách, nhấp chuột phải lên mục Database Connections và chọn New... để tạo ra kết nối.

  3. Tại cửa sổ thuộc tính, chọn IBM Data Server Driver for JDBC and SQLJ Default từ trình đơn thả xuống Drivers. Nhập tên người sử dụng và mật khẩu DB2 của bạn và đánh dấu chọn vào ô Save password. Bạn có thể kiểm tra kết nối bằng cách nhấn vào nút Test Connection. Nhấn OK để kết thúc.

    Hình 3: Các thuộc tính cho kết nối cơ sở dữ liệu EFORMDB
    Screen shot highlights: Drivers drop down, User name, Password, Save password fields and Test Connection button
  4. Nhấn chuột phải vào bất kỳ nơi nào tại cửa sổ Data Project Explorer và chọn New > Data Development Project để làm hiện ra cửa sổ Dự án phát triển dữ liệu mới (New Data Development Project). Nhập eFormProject vào mục tên dự án. Nhấn Next, sau đó chọn EFORMDB từ danh sách các kết nối tại màn hình Chọn kết nối (hình 4), và nhấn Finish.

    Hình 4: Cửa sổ Dự án phát triển dữ liệu mới
    Screen shot highlights the EFORMDB connection

    Lưu ý: Các thông tin chẳng hạn như tên dự án được sử dụng trong WSDL do Data Studio Developer tạo ra cho các dịch vụ web, do đó, bạn phải lưu ý rằng nó phân biệt chữ hoa chữ thường.

  5. Tại cửa sổ Data Project Explorer, nhấp vào dấu cộng (+) để mở rộng mục eFormProject, nhấn chuột phải vào eFormProject > SQL Scripts và chọn New > SQL or XQuery Script để tạo ra một lệnh SQL mới. Gõ nhập insertForm vào mục tên (Hình 5) và nhấn Finish.

    Hình 5: Cửa sổ New SQL or XQuery Script
    Screen shot highlights Name field with insertForm value entered

    Lưu ý: Giải pháp này sử dụng các trình soạn thảo SQL và XQuery (tùy chọn mặc định) để tạo ra các lệnh SQL. Bạn cũng có thể xây dựng các câu lệnh từ trình tạo truy vấn SQL (SQL Query Builder ) bằng cách sử dụng trình thủ thuật.

  6. Tại cửa sổ insertForm.sql, bạn gõ nhập lệnh sau đây:

    insert into eformtable (form)
    values (:document)

    Đóng và ghi lưu tệp tin insertForm.sql. Bây giờ bạn có thể thấy kịch bản lệnh này được liệt kê tại phần SQL Scripts trong mục eFormProject tại cửa sổ Data Project Explorer.

  7. Tại cửa sổ Data Project Explorer, nhấn chuột phải vào eFormProject > Web Services và chọn New Web Service... để tạo một dịch vụ web. Nhập eFormWebService vào trường tên và nhập eForm làm URI vùng tên (Hình 6). Một lần nữa, bạn nhớ phải gõ nhập đúng chính tả và các chữ viết hoa của các giá trị mà bạn nhập vào. Nhấn Finish.

    Hình 6: Cửa sổ New Web Service
    Screen shot with Project, Name, and Namespace URI fields filled in
  8. Tại cửa sổ Data Project Explorer, kéo thả tệp eFormProject > SQL Scripts > insertForm.sql vào eFormProject > Web Services > eFormWebService*. Thao tác này tạo ra một hoạt động mới tại eFormWebService có tên là insertForm.

    Hình 7: Kéo và thả để tạo ra hoạt động cho dịch vụ web
    Screen shot with arrow depicting insertForm.sql being dragged and dropped onto eFormProject
  9. Tại cửa sổ Data Project Explorer, nhấp chuột phải vào eFormProject > Web Services > eFormWebService* và chọn Build and Deploy... để hiện lên cửa sổ Deploy Web Service (Hình 8). Nhấn chọn nút tròn Server và chọn mục IBM WASCE v2.1 Server at localhost từ trình đơn thả xuống. Nhấn chọn hộp Launch Web Services Explorer after deployment và nhấn vào Finish. (Thao tác này khởi chạy WASCE nếu nó chưa được kích hoạt.)

    Hình 8: Cửa sổ triển khai dịch vụ Web
    Screen shot highlights selection for Server and selected check box for Launch Web Services Explorer after deployment
  10. Tại cửa sổ the Web Services Explorer (hình 9), nhấp vào URL trong WSDL Main trong ô Navigator và sau đó cuộn xuống trong ô Actions để chọn Import WSDL To File System. Lưu tập tin với tên eForm.wsdl trên ổ cứng của bạn.

    Hình 9: Cửa sổ Web Service Explorer
    Screen shot highlights selection of URL under WSDL Main and the Import WSDL to File System action

Bây giờ bạn đã hoàn tất việc tạo và triển khai các dịch vụ web.

Tạo biểu mẫu điện tử

Bạn theo các bước dưới đây để tạo ra một biểu mẫu điện tử đơn giản.

Lưu ý rằng phần Tải về của bài viết này có chứa một liên kết đến một biểu mẫu làm ví dụ. Biểu mẫu này làm việc với dịch vụ web mà bạn đã tạo trong phần trước miễn là bạn theo cùng các quy ước đặt tên được mô tả tại các bước thực hiện. Bạn có thể sử dụng biểu mẫu đính kèm như một lựa chọn thay thế để tạo biểu mẫu của riêng bạn hoặc bạn có thể tạo biểu mẫu của riêng bạn và sử dụng cả hai biểu mẫu đó để xem các ví dụ về một biểu mẫu đơn giản và phức tạp. Cùng dịch vụ web và bảng cơ sở dữ liệu làm việc cho cả hai biểu mẫu đó.

  1. Khởi chạy trình Lotus Forms Designer và chọn File > New Lotus Form... để hiện ra thủ thuật tạo biểu mẫu mới (NewLotus Form Wizard). Chọn A blank form (tùy chọn mặc định) và nhấn Finish. (Nếu một cửa sổ bật lên và hỏi bạn có muốn chuyển đổi phối cảnh không, thì bạn chọn No.) Chọn Window > Open perspective > Other..., chọn Advanced Lotus Forms Designer từ danh sách và sau đó nhấn OK.

  2. Tại cửa sổ Enclosures (hình 10), nhấn chuột phải vào WSDL > WebServices và chọn Enclose WSDL File. Chọn tệp eForm.wsdl mà bạn đã ghi lưu trước đó trên ổ cứng của mình để gắn nó vào biểu mẫu.

    Hình 10: Chèn tệp WSDL vào biểu mẫu
    Screen shot highlighting Enclose WSDL File selection
  3. Tại cửa sổ Instance (Hình 11), nhấn chuột vào nút Creates a new Instance from a WSDL message.

    Lưu ý: Cửa sổ Instance hiển thị một cá thể với tên là Instance:Generated. Tuy nhiên, đối với giải pháp này bạn tạo một cá thể của chính bạn từ tệp tin WSDL được đính kèm để bạn có thể đệ trình biểu mẫu tới dịch vụ web.

    Hình 11: Tạo một cá thể từ WSDL kèm theo trong cửa sổ Instance
    Screen shot highlighting the Creates a new Instance from a WSDL message button
  4. Tại cửa sổ WSDL Message (Hình 12), đánh dấu chọn vào ô insertFormSoapInput và nhấn OK. Một cá thể mới có tên là INSTANCE được tạo ra.

    Hình 12: Chọn hoạt động cần thiết tại cửa sổ WSDL Message
    Screen shot showing selection of insertFormSoapInput
  5. Chuyển sang khung nhìn Source bằng cách nhấn vào phiếu Source ở phần dưới cùng của trang vải nền (Hình 13). Tìm thẻ xforms:instance id="INSTANCE" được tạo ra từ thông điệp WSDL. Như tại hình 13, bạn thay đổi các phần tử con của phần tử <document> để chứa các phần tử sau:

    <document>
        <data>
           <name>
              <firstname></firstname>
              <lastname></lastname>
           </name>
        </data>
    </document>
    Hình 13: Thay đổi cá thể INSTANCE tại khung nhìn Source
    Screen shot highlighting selection of Source tab and changes to child elements of the document element
  6. Bạn quay trở lại khung nhìn Design bằng cách nhấn vào phiếu Design ở dưới cùng của trang vải nền. Tại cửa sổ Instance (Hình 14), mở rộng mục chọn Instance: INSTANCE và sau đó kéo và thả các phần tử data vào trang vải nền. Thao tác này tự động tạo ra nhãn tương ứng và các trường nhập dữ liệu cho các phần tử dữ liệu và các phần tử con cháu của nó. Cột Refs được tô mầu bên cạnh mỗi phần tử cho biết phần tử bị kết buộc vào một trường nhập dữ liệu trên biểu mẫu, và con số cho biết phần tử đó được tham chiếu bao nhiêu lần.

    Hình 14: Kéo và thả các phần tử để tạo các nhãn, các trường nhập dữ liệu và các kết buộc
    Screen shot indicating the data element being dragged to the canvas
  7. Tại cửa sổ XForms (Hình 15), nhấn chuột phải vào XForms > Model: Default > instance: INSTANCE và chọn Create Submission for Instance. Thao tác này tạo ra một chức năng đệ trình mới có tên là SUBMISSION, đây là thủ tục để gửi dữ liệu biểu mẫu tới dịch vụ web.

    Hình 15: Tạo chức năng đệ trình cho biểu mẫu
    Screen shot highlighting selection of Create Submission for Instance
  8. Chuyển sang khung nhìn Source. Tìm và thay đổi thẻ xforms:submission sao cho thành giống như sau:

    <xforms:submission id="SUBMISSION" replace="none" method="post"
      action="http://localhost:8080/eFormProjecteFormWebService/Services/eFormWebService"
      mediatype="application/soap+xml action=eForm/insertForm">
    </xforms:submission>

    Giá trị của các thuộc tính action ở phía trên là URL của kết buộc SOAP đối với các dịch vụ web. URL có thể được tìm thấy trong thẻ soap:address trong tệp WSDL kèm theo, như trong hình 16.

    Hình 16: Tìm thẻ soap:address trong tệp tin WSDL kèm theo
    Screen shot highlighting the URL of the SOAP binding for the Web service

    Giá trị của action bên trong thuộc tính mediatype là tên của hoạt động SOAP. Hoạt động này có thể thấy trong thẻ soap:operation trong tệp WSDL kèm theo như trong hình 17. Bạn phải chắc chắn rằng giá trị của action trong thuộc tính mediatype không nằm trong dấu nháy kép.

    Hình 17: Tìm soap:operation trong tệp tin WSDL kèm theo
    Screen shot highlighting soapAction value of eForm/insertForm

    Lưu ý: Đối với một dịch vụ web phức tạp, có thể có nhiều mục soap:operation. Hãy tìm mục soap:operation mà bạn sử dụng để tạo ra cá thể. Trong trường hợp này, vì bạn đã chọn insertFormSoapInput trong hình 12 khi tạo cá thể, nên bạn chọn hoạt động eForm/insertForm trong hình 17.

  9. Quay trở lại khung nhìn Design. Tại cửa sổ Palette ở phía dưới khung Advanced Library (Hình 18), chọn Button (Submit) và nhấn vào trang vải nền để tạo ra nút đệ trình.

    Hình 18: Sử dụng Palette để tạo nút đệ trình (Submit)
    Screen shot indicating that Button (Submit) was selected and canvas was clicked on

    Bạn có thể thấy xuất hiện hộp thoại Properties bật lên (Hình 19) cho phép bạn thiết lập các thuộc tính của đối tượng mà bạn vừa tạo ra. Thay đổi các thuộc tính như bạn muốn và nhấn OK.

    Hình 19: Hộp thoại Properties có thể bật lên khi tạo đối tượng mới
    Properties dialog for describing the submit button created in this step
  10. Nhấn chọn nút đệ trình trên trang vải nền và sau đó mở rộng mục XForms (Submit). Sử dụng trình đơn thả xuống để trỏ tùy chọn submission đến chức năng đệ trình SUBMISSION mà bạn đã tạo ra ở bước trên.

    Hình 20: Trỏ nút đệ trình đến chức năng đệ trình mà chúng ta đã tạo ra
    Screen shot of Properties window highlighting the selection of the submission named SUBMISSION
  11. Tại cửa sổ Enclosures (hình 21), nhấn chuột phải vào WSDL > WebServices > eForm.wsdl sau đó chọn Delete để xóa thông điệp WSDL khỏi biểu mẫu.

    Hình 21: Tệp tin WSDL kèm theo cần phải được xóa
    Screen shot highlighting selection of Delete for the eForm.wsdl
  12. Ghi lưu biểu mẫu với tên eForm.xfdl và đóng trình thiết kế của Lotus Forms lại.

Đệ trình dữ liệu eForm

Bây giờ bạn đã sẵn sàng sử dụng eForm để lấy thông tin và gửi dữ liệu đến cơ sở dữ liệu thông qua dịch vụ web. Bạn theo các bước dưới đây:

  1. Mở tệp eForm.xfdl bằng trình xem của Lotus Forms. Nhập một số dữ liệu ví dụ và nhấp nút Submit để gửi biểu mẫu đến cơ sở dữ liệu thông qua dịch vụ web.

  2. Điền và gửi thêm một vài biểu mẫu ví dụ nữa. Các ví dụ truy vấn trong phần kế tiếp dựa trên dữ liệu mẫu được hiển thị trong bảng 1.

  3. Khi bạn gửi xong ví dụ mẫu, bạn chỉ cần đóng trình xem của Lotus Forms lại.

Bảng 1: Dữ liệu mẫu
First NameLast NameUser IDPhone
JohnSmith6932(483)483-2838
TedWilson4823(593)583-4824
AdamSmith9583(284)099-8488
CharlesBrown4388(483)238-2273
JeffGordon7447(558)387-3112

Truy vấn dữ liệu XML của eForm từ cơ sở dữ liệu

Sau khi dữ liệu biểu mẫu đã được gửi đi, bạn có thể truy vấn các dữ liệu biểu mẫu XML đã được chèn vào cơ sở dữ liệu DB2. DB2 phiên bản 9 hỗ trợ cả SQL/XML và XQuery để truy vấn XML. Ví dụ này sử dụng truy vấn SQL/XML. Để có những giải thích chi tiết về câu lệnh SQL/XML và XQuery, xin xem phần Tài nguyên.

Mở cửa sổ soạn thảo lệnh DB2 (DB2 Command Editor) hoặc trình xử lý dòng lệnh (Command Line Processor) hoặc sử dụng Data Studio để tạo ra một kịch bản lệnh SQL mới cho truy vấn này. Nhập và thực hiện các câu lệnh SQL/XML dưới đây.

  1. Truy vấn sau đây tìm mã định danh người sử dụng “userid” từ tất cả các biểu mẫu gửi lên và trả chúng về dưới dạng chuỗi ký tự varchar:

    select xmlcast(xmlquery('$f/data/userid/text()'passing form as
           "f") as varchar(15)) as ID
    from eformtable

    Với dữ liệu mẫu đã cho tại bảng 1, kết quả truy vấn từ câu lệnh nói trên được thi hành tại cửa sổ trình soạn thảo lệnh DB2 được hiển thị trong hình 22.

    Hình 22: Kết quả truy vấn của truy vấn mẫu số 1
    Screen shot of query result showing the IDs from Table 1
  2. Truy vấn sau đây tìm các thông tin của tất cả các người dùng với tên họ là Smith và trả lại dữ liệu ở định dạng quan hệ:

    select t.fname as "First Name",
           t.lname as "Last Name", 
           t.id as "User ID",
           t.phone as "Phone"
    from eformtable, xmltable('$d/data' passing form as "d" 
         columns fname varchar(20) path 'name/firstname', 
                 lname varchar(20) path 'name/lastname',
                 id varchar(20) path 'userid',
                 phone varchar(20) path 'phone') as t 
    where xmlexists('$d/data/name[lastname="Smith"]' 
          passing form as "d")

    Với dữ liệu mẫu đã cho tại bảng 1, kết quả truy vấn từ câu lệnh nói trên khi thi hành trong cửa sổ trình soạn thảo lệnh DB2 được hiển thị trong hình 23. Nếu bạn không sử dụng cùng dữ liệu mẫu này, thì bạn loại bỏ hoặc thay đổi nội dung của vị từ xml exists.

    Hình 23: Kết quả truy vấn của truy vấn mẫu số 2
    Screen shot of query result showing first name, last name, user id, and phone number for each entry in Table 1

Lưu ý: IBM cũng cung cấp các công cụ thông mính nghiệp vụ tiên tiến như IBM DataQuant và Cognos để tạo các báo cáo toàn diện với dữ liệu XML trong DB2. Xin tham khảo liên kết wiki DB2 pureXML trong phần Tài nguyên để biết thêm thông tin.

Tóm tắt

DB2 pureXML và Lotus Forms, được nối với nhau bởi các dịch vụ Web, có thể được kết hợp với nhau để giải quyết các nhu cầu thu thập và quản lý dữ liệu dựa trên các biểu mẫu điện tử có hiệu quả. Bài viết này minh hoạ cách một giải pháp biểu mẫu điện tử có thể được tạo ra mà không cần nhiều nỗ lực bằng cách sử dụng ba công cụ phát triển công nghiệp hàng đầu của IBM: DB2 pureXML, Data Studio Developer và Lotus Forms. Giải pháp này cung cấp các công nghệ hiện đại để thiết kế và đệ trình eForms (Lotus Forms), để phát triển và triển khai các dịch vụ web (Data Studio Developer), và lưu trữ kiểm soát và truy cập dữ liệu của biểu mẫu XML (DB2 pureXML). Tính đơn giản của giải pháp eForms này có được là do nó dựa trên luồng dữ liệu XML thông suốt từ đầu đến cuối: dữ liệu được thu thập tại Lotus Froms dưới dạng XML, được gửi đến dịch vụ web trong cùng một định dạng XML đó, và được lưu trữ trực tiếp tại DB2 pureXML mà không có bất kỳ chuyển đổi hay thao tác trung gian nào. Luồng XML thông suốt từ đầu đến cuối không chỉ đơn giản hóa quá trình phát triển giải pháp mà còn đơn giản luồng thi hành. Giải pháp này có thể được triển khai thực hiện khá đơn giản nhưng lại có thể cải thiện rất nhiều hiệu quả của việc thu thập, quản lý và phân tích các thông tin cho các doanh nghiệp nhà nước và tư nhân.

Lời cám ơn

Các tác giả xin cảm ơn những người đã cung cấp thông tin hoặc hiệu đính bài viết này, đặc biệt là Eric Dunn, người đã cung cấp các hướng dẫn có giá trị về Lotus Forms.


Tải về

Mô tảTênKích thước
A sample form using the database and Web service.HouseholdCensusSurvey.zip376KB

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management, Nguồn mở, SOA và dịch vụ Web
ArticleID=444943
ArticleTitle=Xây dựng giải pháp eForms thông minh dựa trên DB2 pureXML, Lotus Form và dịch vụ Web
publish-date=11062009