Kiến trúc hướng dịch vụ (webservice)
Trong khi các nhà quản lý công nghệ thông tin đang phải đối đầu với việc giảm giá thành và tối đa lợi ích của các công nghệ hiện có, họ vẫn phải liên tục cố gắng để phục vụ khách hàng được tốt hơn, trở nên cạnh tranh hơn và phản ứng nhanh hơn ...
Trong khi các nhà quản lý công nghệ thông tin đang phải đối đầu với việc giảm giá thành và tối đa lợi ích của các công nghệ hiện có, họ vẫn phải liên tục cố gắng để phục vụ khách hàng được tốt hơn, trở nên cạnh tranh hơn và phản ứng nhanh hơn với chiến lược cửa doanh nghiệp.
Có hai yếu tố chính ẩn sau những áp lực này, đó là tính không đồng nhất của các hệ thống, ứng dụng và kiến trúc khác nhau với thời gian tồn tại và công nghệ khác nhau. Việc tích hợp nhiều sản phẩm từ nhiều nhà cung cấp và nhiều nền tảng thực sự là điều khó khăn. nhưng chúng ta cũng không thể cố gắng tiếp cận theo kiểu một nhà cung cấp công nghệ thông tin vì các bộ ứng dụng và kiến trúc hỗ trợ rất không mềm dẻo.
Sự thay đổi về mặt công nghệ là yếu tố thứ hai mà các nhà quản lý công nghệ thông tin phải đối mặt. Sự toàn cầu hoá và kinh doanh điện tử đang làm tăng tốc sự thay đổi và dẫn đến sự cạnh tranh gay gắt trong việc rút ngắn chu kỳ sản xuất để có thể chiếm ưu thế đối với đối thủ cạnh tranh. Các thay đổi về yêu cầu và nhu cầu của khách hàng nhanh chóng hơn do tác động của phân phối cạnh tranh và sự phong phú về thông tin sản phẩm và dịch vụ diễn ra nhanh hơn.
Các cải tiến trong công nghệ tiếp tục tăng nhanh, làm tăng sự thay đổi yêu cầu của khách hàng. Doanh nghiệp phải nhanh chóng thích nghi để tồn tại, chưa kể đến việc phải thành công trong môi trường cạnh tranh đông ngày nay, và hạ tầng công nghệ thông tin phải đem lại khả năng thích nghi cho các doanh nghiệp.
Vì vậy, các tổ chức kinh doanh đang phát triển từ sự phân chia doanh nghiệp theo chiều dọc, cô lập của những năm 1980 về trước thành các cấu trúc chú trọng quy trình kinh doanh theo chiều ngang của những năm 1980, 1990, tới mô hình kinh doanh mới trong đó các doanh nghiệp có tác động lẫn nhau. Các dịch vụ doanh nghiệp hiện nay cần phải được thành phần hoá và phân tán. Cần trú trọng vào dây chuyền cung cấp mở rộng, cho phép khách hàng và đối tác truy cập tới các dịch vụ kinh doanh.
Làm thế nào để môi trường công nghệ thông tin trở nên linh hoạt và nhạy bén hơn đối với sự thay đổi của các yêu cầu kinh doanh? Làm thế nào để các hệ thống và ứng dụng không đồng nhất trao đổi với nhau một cách liền mạch? Làm thế nào để đạt mục tiêu kinh doanh mà không bị phá sản các doanh nghiệp?
Đã có nhiều giải pháp được đề ra song song với sự phát triển của các vấn đề kinh doanh: kiến trúc các đơn vị riêng lẻ,có cấu trúc, mô hình khách chủ, mô hình ba lớp, mô hình đa lớp, mô hình đối tượng phân tán, các thành phần, dịch vụ. Hiện nay, nhiều nhà quản lý và các chuyên gia công nghệ thông tin tin rằng chúng ta đang tiến ngày một gần hơn tới câu trả lời với kiến trúc hướng dịch vụ (SOA).
Để đáp ứng được các yêu cầu về sự không đồng nhất, tính liên thông và sự thay đổi yêu cầu không ngừng, một kiến trúc như vậy phải đem lại một nền tảng cho việc xây dựng dịch vụ ứng dụng các đặc tính sau:
- Liên kết lỏng lẻo (Loosely Couple).
- Vị trí trong suốt (Location Transparent).
- Độc lập về giao thức (Protocol Independent)
Dựa trên một kiến trúc hướng dịch vụ như vậy, người dùng dịch vụ thậm chí không cần quan tâm tới một dịch vụ cụ thể mà mình đang trao đổi thông tin vì hạ tầng cơ sở, hay là tuyến dịch vụ (Services bus), sẽ tạo ra một lựa chọn thích hợp cho người dùng. Các đặc tả kỹ thuật cụ thể từ các công nghệ cài đặt khác nhau như J2EE hay .NET không làm ảnh hưởng tới người dùng SOA. Người dùng cũng có thể cân nhắc và thay thế một cài đặt dịch vụ tốt hơn nếu tồn tại một dịch vụ khác có chất lượng tốt hơn.
Thuật ngữ kiến trúc hướng dịch vụ (SOA–Service Oriented Architectural) tuy không mới nhưng gần đây được nói đến rất nhiều, đặc biệt khi Microsoft cho ra đời công nghệ .NET, mà ở đó việc phát triển các dịch vụ (Service) trở nên dễ dàng hơn bao giờ hết.
Tùy theo quan điểm người dùng, hiện có rất nhiều định nghĩa khác nhau về kiến trúc hướng dịch vụ. Ví dụ về một định nghĩa của kiến trúc hướng dịch vụ:
"Kiến trúc hướng dịch vụ là một cách tiếp cận để tổ chức các tài nguyên công nghệ thông tin mà ở đó dữ liệu, logic và nguồn lực hạ tầng được truy cập thông qua các giao diện (interface) và thông điệp (Message)."
Xét về khía cạnh sử dụng thì có thể hiểu đơn giản như sau: "Dịch vụ là một tập các chương trình con (thư viện) cho phép các chương trình chạy trên các máy tính khác trong mạng có thể triệu gọi và sử dụng..."
Nói tóm lại, SOA có thể được hiểu là một hướng tiếp cận để xây dựng các hệ thống phân tán cung cấp các chức ứng dụng dưới các dạng dịch vụ tới các ứng dụng người cuối cùng hoặc các dịch vụ