Windows Open Services Architecture được phát triển bởi Microsoft nhằm mục đích "...tạo một môi trường lập trình với giao tiếp mở". Quan điểm của WOSA là thiết kế một phương cách sao cho khi sử dụng các dịch vụ của hệ điều hành Windows ta chỉ cần phải cung cấp càng ít thông tin cho dịch vụ càng tốt . Ví dụ như MAPI (Message API) là một chuẩn được thiết kế sao cho người lập trình các ứng dụng thư tín điện tử có thể sử dụng các dịch vụ tương ứng của hệ điều hành mà không bị lệ thuộc bởi các phần cứng và phần mềm hệ thống phức tạp bên dưới (trên cùng các hệ điều hành Windows khác nhau).
Để đạt tới sự mềm dẻo nói trên , WOSA định ra hai giao diện khác nhau là : Client API (Application Programming Interface) và Server SPI (Service Provider Interface) . Khi ấy , một ứng dụng client phải tuân theo các luật giao tiếp của API còn ứng dụng server cũng vậy , nhờ đó mà hai loại ứng dụng này luôn tương thích với nhau (chừng nào mà chúng còn tuân thủ các luật của API và SPI) , bất chấp sự thay đổi của một trong hai ứng dụng hoặc cả hai cùng thay đổi .
Mô hình của WOSA chia làm ba phần phân biệt nhau :
Ta có hình minh họa sau đây :
Figure -1 : Client API gởi yêu cầu đến Server SPI qua trung gian DLL Interface
Client API là giao diện của ứng dụng yêu cầu dịch vụ từ hệ điều hành Windows . MAPI là một ví dụ điển hình của client API WOSA .
Ví dụ tác vụ login vào mail server , tạo một thông điệp , định địa chỉ cho thông điệp và gởi thông điệp cho ứng dụng client khác đều là các hàm được cung cấp trong MAPI . Các dịch vụ trên được yêu cầu bởi ứng dụng client , còn việc thực hiện cụ thể bởi phía ứng dụng server .
Điểm mấu chốt là ứng dụng client chỉ được phép gởi yêu cầu về dịch vụ tới ứng dụng server , ứng dụng client không được phép truy cập vào lớp bên dưới một cách trực tiếp . Tuy nhiên các yêu cầu của ứng dụng client cũng không được gởi trực tiếp cho ứng dụng server mà thông qua giao diện DLL .
Server SPI đáp ứng yêu cầu
Server SPI (Service Provider Interface) nhận và đáp ứng theo yêu cầu . SPI không được thiết kế để giao tiếp trực tiếp với ứng dụng client . Thông thường SPI được cài đặt để thực thi trên máy server mạng .
Trong mô hình WOSA , mọi yêu cầu dịch vụ đều thông qua DLL interface để được tới client API và ngược lại .
Một điểm cần chú ý là SPI trong mô hình WOSA còn đáp ứng cho nhiều client cùng lúc nữa .
Ta có hình minh họa sau :
Figure -2 : DLL interface làm trung gian giữa API và SPI
Do ý tưởng thiết kế muốn bảo đảm sự độc lập giữa client API và server SPI , Microsoft xây dựng DLL interface . Lợi điểm của việc dùng DLL interface là ứng dụng client-server không cần tham khảo DLL lúc dịch , cũng như ta có thể thay đổi và dịch lại DLL không làm ảnh hưởng ngược lại ứng dụng client-server .
Nhiệm vụ thứ nhất của DLL interface là tách biệt yêu cầu của client API ra khỏi sự đáp ứng của server SPI . DLL không tạo ra một yêu cầu thật sự nào cho server SPI , cũng như nó không thay thế server SPI để đáp ứng bất cứ dịch vụ gì , DLL chỉ làm mỗi một việc là chuyển yêu cầu từ client API cho server SPI .
Ghi chú : Thật ra DLL interface có yêu cầu server SPI lúc khởi động hệ thống , nó yêu cầu server SPI các thông tin cơ bản nhằm phục vụ cho các yêu cầu thật sự của client API .
Trong quá khứ (trước khi có WOSA) , DLL interface chỉ làm trung gian giửa client API với lớp dưới (back-end product) . Ví dụ DLL interface của MAPI trước đây được cài đặt khác nhau ứng với từng loại service provider khác nhau .
Figure -3 : Đây là hình minh họa DLL interface kiểu củ .
Ngày nay , trong mô hình WOSA , chỉ dùng duy nhất một DLL interface dùng cho nhiều server SPI khác nhau .
Figure -4 : Hình minh họa về DLL interface của mô hình WOSA mới : Dùng một DLL Interface giao tiếp với nhiều Server SPI khác nhau
Microsoft đã phát triển ba loại dịch vụ WOSA sau :
Common Application services cho phép các ứng dụng có thể truy cập các dịch vụ do nhiều nhà cung cấp khác nhau .
Nhờ vào việc định nghĩa một bộ các hàm API duy nhất để truy cập các dịch vụ , mà các nhà cung cấp khác nhau (third-party vendor) được bảo đảm hổ trợ như nhau trong môi trường hệ điều hành Windows . Do mặt giao tiếp là bền vững , các nhà cung cấp bên thứ ba có thể yên tâm phát triển các SPI mà người sử dụng thường dùng .
Mặc khác các nhà cung cấp bên thứ ba cũng có thể tin cậy rằng mặc dù hệ điều hành Windows có thể tiến triển nhưng mô hình WOSA sẽ không thay đổi , vì vậy ứng dụng SPI của họ không bị loại bỏ .
Sau đây là các SPI dưới mô hinh WOSA :
Communication Services hổ trợ các dịch vụ truyền thông trên mạng . Bằng cách xác định một giao diện phổ dụng (universal interface) giữa máy tính PC và mạng , ứng dụng theo mô hình WOSA có thể giao tiếp với mọi loại mạng .
Sau đây là các communition services theo mô hình WOSA :
Các Vertical Market Services là :