VỤ, XÂY DỰNG ỨNG DỤNG
Chương 4 SOA VÀ VẤN ĐỀ TÍCH HỢP
4.1. Giới thiệu về Enterprise Application Integration
Hệ thống của các tổ chức doanh nghiệp ngày càng trở nên cồng kềnh hơn với việc triển khai hàng loạt các ứng dụng phân tán dựa trên nhiều hệ nền, kỹ thuật, công nghệ khác nhau. Tình trạng chưa định hình được hoàn chỉnh các chuẩn hỗ trợ trong vấn đề giao tiếp giữa các hệ thống khiến cho việc tương tác, trao đổi thông tin giữa các hệ thống khác nhau thực sự trở thành một vấn đề nan giải. Khó khăn này không chỉ là đối với các nhà quản trị hệ thống, mà còn cả đối với các hãng, công ty đã cung cấp các kỹ thuật, công nghệ, giải pháp… Vì thế, việc xây dựng, triển khai các hệ thống phân tán hiện nay đòi hỏi ngày càng cao về chi phí cũng như độ phức tạp.
Ngày nay, nhiều công ty, hãng phát triển, các tổ chức đã bắt tay nhau để xây dựng các chuẩn chung. Bên cạnh đó là sự ra đời của 2 hệ nền .NET và J2EE được thiết kế với nhiều ưu điểm nổi trội về tính linh hoạt, tương thích, dễ mở rộng … và khả năng liên kết cao đã góp phần giải quyết được các vấn đề khó khăn mà các công nghệ trước chưa làm được. Nhưng vấn đề ở đây là ta không thể thực hiện việc “gỡ bỏ và thay mới” các hệ thống, các ứng dụng và chức năng hiện có. Vì chi phí bỏ ra để xây dựng lại từ đầu các hệ thống là rất cao. Ngoài vấn đề chi phí, còn có một nguyên nhân khác nữa là: các hệ thống hiện hành đã được chứng thực về tính đúng đắn, hiệu quả trong suốt quá trình vận hành, trong khi hệ thống mới chưa được đảm bảo về các vấn đề này.
Vấn đề đặt ra lúc này đó làm sao gắn kết những công nghệ mới cho hệ thống trong khi vẫn giữ lại được những gì hiện có. Chúng ta đang nói đến khái niệm tích hợp hệ thống.
4.1.2. Một số lý do khiến các tổ chức doanh nghiệp phải quan tâm đến vấn đề tích hợp (xét về mặt nghiệp vụ)
Thay đổi cơ cấu tổ chức tổng thể
Đây là tình trạng khi các tổ chức sáp nhập với một tổ chức khác, hay khi bán đi một chi nhánh của tổ chức. Khi đó các hệ thống tin học nào có những qui trình xử lý trùng lắp thì cần phải được kết hợp lại với nhau nhằm tăng hiệu quả hoạt động. Một ví dụ đó là khi các ngân hàng sáp nhập lại, thì các hệ thống phục vụ khách hàng cần phải được hỗ trợ để có thể quản lý được các tài khoản mà trước đó trực thuộc các ngân hàng khác nhau.
Thay đổi cơ cấu tổ chức nội bộ
Mặc dù đây chỉ là những thay đổi diễn ra trong phạm vi nội bộ một tổ chức, nhưng cũng sẽ đưa đến những kết quả tương tự như ở trường hợp đầu. Và thông thường những hoạt động này còn diễn ra với mật độ thường xuyên hơn.
Sát nhập các hệ thống, ứng dụng:
Nhiều hệ thống tin học của các tổ chức thường được sáp nhập lại hay thay thế hẳn để tiết kiệm chi phí quản trị các hệ thống này, cũng như là để tăng hiệu quả hoạt động của các xử lý nghiệp vụ. Ví dụ như một công ty truyền thông, có nhiều hệ thống thanh toán tương ứng với các cơ sở hạ tầng về mạng: mạng không dây, mạng có dây, mạng băng thông rộng… thì có thể tiết kiệm một lượng đáng kể thời gian và tiền bạc khi kết hợp các hệ thống này lại.
Tình trạng không đồng nhất, trùng lắp, phân mảnh dữ liệu
Các dữ liệu quan trọng thường được phân bố ở nhiều hệ thống. Và khi có nhu cầu, thì các dữ liệu này phải được chia sẻ, kết hợp và tinh chế để hỗ trợ cho các hoạt động phân tích, thống kê,… và đưa ra quyết định.
Thay đổi các chiến lƣợc kinh doanh
Các công ty thường có những thay đổi trong đường lối, chiến lược kinh doanh. Điều này khiến cho một số yếu tố môi trường khác cũng phải thay đổi theo để thích nghi. Một phần trong các yếu tố này là các hệ thống tin học.
Thay đổi để thích nghi với qui định chung
Trong lãnh vực kinh doanh thì các qui định, ràng buộc là điều không thể thiếu. Và các qui trình nghiệp vụ đều gắn chặt với các qui định này. Một khi các qui định này có sự thay đổi thì các qui trình nghiệp vụ liên quan cũng đòi hỏi phải được
Tối ƣu hóa các qui trình nghiệp vụ
Những qui trình xử lý nào mà đòi hỏi phải nhập dữ liệu một cách thủ công thì cần phải được thay thế bằng các hệ thống mới hỗ trợ xử lý tự động các luồng giao tác. Ví dụ: một công ty thương mại với qui trình hoạt động lúc trước như sau:
nhận đơn đặt hàng từ Internet, sau đó phải thực hiện các thao tác thủ công để nhập các thông tin này vào hai hệ thống quản lý đơn đặt hàng và quản lý sản xuất hàng.
Ta cần đưa ra một giải pháp để tích hợp hai hệ thống trên vào hệ thống của ta, như thế thì quá trình chuyển dữ liệu sẽ được thực hiện một cách tự động.
4.1.3. Các vấn đề tích hợp gặp phải trong tích hợp hệ thống
Các xung đột giữa các qui trình xử lý trong các hệ thống.
Sự khác biệt về cấu trúc cũng như là ngữ nghĩa của dữ liệu được dùng trong các hệ thống.
Sự không tương thích giữa các chuẩn, kỹ thuật, công nghệ sử dụng trong các hệ thống.
4.1.4. Các yêu cầu cho một giải pháp tích hợp
Chi phí triển khai không quá cao.
Dễ nắm bắt và quản lý
Không làm ảnh hưởng đến các hệ thống không liên quan.
Đáp ứng tốt các yêu cầu về tính dễ mở rộng, ổn định, hiệu quả, khả năng chịu lỗi, bảo mật…
Linh hoạt và dễ tùy biến để có thể dễ dàng thích nghi với những yêu cầu của từng dự án khác nhau.
4.1.5. Việc tích hợp có thể đƣợc áp dụng ở nhiều tầng khác nhau
Tích hợp dữ liệu
Quan tâm đến vấn đề tích hợp ở tầng dữ liệu, thường là thực hiện đồng bộ hóa dữ liệu ở các nguồn khác nhau Cơ sở dữ liệu (database), datamarts, kho dữ liệu (data warehouses). Vấn đề khó khăn chính đó là phải dung hòa được lược đồ cơ sở dữ liệu của các cơ sở dữ liệu cũng như là ngữ nghĩa của các thành phần dữ liệu.
Tích hợp thông điệp
Giải quyết vấn đề tích hợp bằng cách định nghĩa và xây dựng cơ chế trao đổi thông điệp giữa các hệ thống. Vấn đề khó khăn chính đó là sự chuyển đổi giữa dữ
liệu ứng dụng và thông điệp. Ngoài ra còn phải thực hiện chuyển đổi giữa các định dạng thông điệp sao cho mọi hệ thống đều hiểu.
Tích hợp thành tố
Xử lý bao bọc các hệ thống cũ bằng công nghệ hướng thành tố (CORBA, .NET, J2EE) và liên kết các thành tố này lại với nhau thông qua các thành phần giao tiếp. Khó khăn gặp phải đó là phải thực hiện liên kết các thành tố được xây dựng trên những công nghệ khác nhau (CORBA và .NET, J2EE và .NET)
Tích hợp ứng dụng
Thực hiện tích hợp các ứng dụng bằng cách sử dụng tập các hàm APIs, mô hình đối tượng, định dạng thông điệp, lược đồ cơ sở dữ liệu hay bất cứ kỹ thuật nào mà lập trình viên có thể tiếp cận. Khó khăn gặp phải đó là sự khác nhau về mô hình dữ liệu giữa các ứng dụng. Mô hình tích hợp này thường được dùng cho các ứng dụng đóng gói.
Tích hợp dịch vụ
Mô hình tích hợp này tạo ra các dịch vụ nghiệp vụ trừu tượng, không gắn chặt vào một cơ sở dữ liệu, mô hình thành tố hay ứng dụng đóng gói nào. Và sẽ sử dụng các dịch vụ này như những đơn vị cơ sở trong việc tích hợp hệ thống. Khó khăn của mô hình này đó là thường phải đòi hỏi phải xây dựng một kiến trúc tích hợp hoàn chỉnh như là SOA để có thể thực hiện tách biệt giữa thành phần giao tiếp và thành phần thực thi của service.
Tích hợp tiến trình
Giải pháp đó là tạo ra các tiến trình nghiệp vụ bằng cách tích hợp các tài nguyên có sẵn (dữ liệu, thành tố, ứng dụng và dịch vụ). Và sau đó là tập trung vào việc quản lý các tiến trình nghiệp vụ một cách độc lập với một ứng dụng riêng biệt nào đó. Vấn đề gặp phải đó là đạt được sự “thỏa thuận” giữa các tổ chức về việc định nghĩa các tiến trình nghiệp vụ và một kiến trúc tích hợp hoàn chỉnh nhằm hỗ trợ việc tích hợp những tài nguyên của các hệ thống được thực hiện một cách dễ dàng.
Tích hợp thành phần giao tiếp người dùng
Giải pháp này thường có hai cách thực hiện khác nhau:
Sử dụng hệ giao tiếp người dùng của các hệ thống cũ như là các thành phần giao tiếp để truy cập dữ liệu từ các ứng dụng hay các giao tác đang thực hiện. Cách này rất không bền vững, đặc biệt là khi hệ giao
Việc tích hợp được thực hiện ở tầng thể hiện như là desktop hay portal.