Kiến trúc hướng dịch vụ SOA và các giải pháp của Oracle

MỤC LỤC

Giới thiệu kiến trúc hướng dich vụ SOA 1. Kiến trúc hướng dịch vụ là gì

    Kiến trúc hướng dịch vụ (Service Oriented Architecture) là một hướng tiếp cận với việc thiết kế và tích hợp các phần mềm, chức năng hệ thống theo dạng module, trong đó mỗi module đóng vai trò là một “dịch vụ có tính loose coupling” và có khả năng truy cập thông qua môi trường mạng. Để thực hiện điều này, các dịch vụ cần duy trì đầy đủ thông tin cần thiết cho quá trình hoạt động của mình để có thể tiếp tục hoạt động trong trường hợp dịch vụ cộng tác của nó bị hỏng, đồng thời sử dụng các biện pháp bảo mật để tránh các cuộc tấn công ồ ạt từ bên ngoài vào như gửi thông điệp lỗi hoặc thông điệp ồ ạt. Việc quản lý các Policy tăng khả năng tạo ra các đặc tính tái sử dụng dịch vụ vì các Policy được thiết kế tách biệt và tuỳ vào mỗi ứng dụng nên giảm tối đa các thay đổi phần mềm đồng thời có thể chia các nhóm làm việc mà không cần phụ thuộc vào nhau (nhóm phát triển phần mềm và nhóm điều hành,nhóm hỗ trợ).

    Tức là một số tiến trình cũ có khả năng được kết hợp với nhau bên trong một cổng thông tin (portal) giúp cho người dùng có thể truy cập một lần mà vẫn có thể có hàng loạt thông tin về các sản phẩm của các doanh nghiệp. Ví dụ, dịch vụ “Submit New Order” có thể được xem như một process service thực hiện tương tác với CSDL khách hàng để lấy thông tin khách hàng, quyết định dựa trên thông tin tài khoản của khách hàng, tương tác hệ thống lưu kho và hệ thống tài chính để hoàn tất đơn đặt hàng. Data service thường không chỉ được xem như một dịch vụ orchestration mà nó còn chịu trách nhiệm tương tác trực tiếp với CSDL bên dưới thông qua những phương thức truy cập phi dịch vụ (non – service oriented access) như JDBC hoặc J2CA.

    Nhờ tính linh hoạt của SOA và đặc tính của các dịch vụ được tổng hợp từ tầng orchestration, các ứng dụng có khả năng biểu diễn mọi loại thông tin từ mọi nguồn thông tin, thậm chí cho phép người sử dụng gửi thông tin tổng hợp mà thông tin đó sẽ được phân phối lại cho các hệ thống bên dưới.

    Xây dựng một hệ thống SOA

    Chu trình phát triển của SOA

    - web service: để bên ngoài tương tác với service chúng ta - myservice: hiện thực service bằng Java class hoặc EJB. Do đó, chúng ta nên mapping giữa CSDL và đối tượng Java, khi bạn mapping xong thì bạn chỉ cần read hoặc write 1 đối tượng thì hệ thống runtime sẻ lo công việc query CSDL. Rule: nhằm để tách giữa ứng dụng và nghiệp vụ, do đó bạn có thể thay đổi nghiệp vụ 1 cách đễ dàng mà không cần phải code lại chương trình.

    Business process được tích hợp xong cũng được xem là một service và nó tương tác với bên ngoài thông qua web service. Đối với các hệ thống phát triển theo mô hình SOA thì hệ thống ngày càng phức tạp dần, và càng ngày có nhiều service hơn do đó thì yêu cầu quản lí và bảo mật các Web service được đặt ra.

    Các kỹ thuật hỗ trợ SOA - Giao thức vận chuyển SOAP

    Bạn test nó cẩn thận và đạt rồi thì chúng ta tiến hành đóng gói các service và sau đó deploy nó lên server đích. Hiện nay bạn có thể sử dụng Oracle Web service Manager cho công việc bảo mật này. Với bộ này chúng ta có thể đưa ra những chiến lược cho việc tổ chức và bảo mật một cách dễ dàng.

    Dịch vụ và các nguyên tắc thiết kế một dịch vụ

    Sẽ hữu ích và thực tế hơn nếu trong quá trình thiết kế ta đoán trước những tính năng sẽ phục vụ cho những yêu cầu mới trong tương lai, từ đó kết hợp với những yêu cầu hiện tại áp dụng cho việc thiết kế cho service của mình. Điều này sẽ dẫn đến thêm vào môt số phương thức có thể không cần thiết cho những yêu cầu ở hiện tại so với phạm vi, ngân sách, hay những yêu cầu có liên quan. Sử dụng những file XSD schema để định nghĩa những kiểu dữ liệu phức tạp, từ đó ta có thể sử dụng cùng một file XSD schema cho nhiều file WSDL.

    Chuẩn WS-I Basic Profile yêu cầu đặt thuộc tính targetNamespace để định ra một namespace cho một file WSDL hoặcmột file XSD schema được nhúng trong những file WSDL. Khi thiết kế một document cho server theo kiểu metadata nghĩa là khi có một request đến sẽ trả về cho requestor tất cả những thông tin của service provider.

    Vấn đề bảo mật trong SOA 1. Đặt vấn đề

    Tại những vị trí quan trọng thì việc tích hợp, mở rộng hệ thống như giữa nhà cung cấp và các đối tượng sử dụng dịch vụ; giữa nhà cung cấp dịch vụ và cơ sở hạ tầng của kiến trúc bảo mật bên dưới; giữa những kiến trúc bảo mật của những miền khác nhau phải được thiết kế với các yêu cầu về tính ổn định, đồng nhất và hiệu quả dựa trên các chuẩn mở. Nghĩa là chúng ta sẽ sử dụng lại các kỹ thuật, dịch vụ bảo mật hiện có dựa trên những nguyên tắc của SOA để tạo nên một kiến trúc bảo mật hướng dịch vụ mới.Mục tiêu là tạo ra một tầng liên kết bên trên các dịch vụ, công nghệ bảo mật đó. - Cơ chế xác nhận (Policy Assertion): một Policy Assertion có thể xem như một quy tắc liên quan đến cách thức hoạt động của hệ thống. Ví dụ như loại security token nào cần được dùng, thông điệp trao đổi có cần được chứng thực, thời gian trao đổi thông điệp còn được bao lâu?..).

    - WS – Security chỉ định nghĩa thêm cấu trúc mở rộng cho phần đầu của một thông điệp dạng SOAP nhằm mang thông tin bảo mật (chữ ký điện tử, security token, mã hoá…) trong quá trình trao đổi thông điệp với mục đích là phía nhận sẽ tin tưởng vào nội dung của thông điệp cũng như đối tượng gửi thông điệp. - Với WS – SecureConversation, hai bên đều có thể tái sử dụng được ngữ cảnh bảo mật (security context) trong những lần trao đổi thông điệp, tức là hai bên sẽ không cần thực hiện lại những thủ tục như trong lần trao đổi đầu tiên. Mỗi mạng STS cung cấp một dịch vụ tin cậy khác nhau như là máy chủ chứng thực sẽ cung cấp khả năng chứng thực của một STS trong mạng các STS, hay máy chủ quản lý về quyền sẽ có nhiệm vụ kiểm tra về quyền của của nhiều STS.

    - Sử dụng XML-Signatures đảm bảo tính toàn vẹn và xác thực của dữ liệu WS-Sercurity cũng bao gồm cả việc xác định xem chèn những dữ liệu nhị phân khác biệt và dấu hiệu của XML sercurity trong phần đầu WS – Sercurity cho mục đích xác thực về phân quyền.

    Hình 4: Cấu trúc phân tầng của Standard-based Security Info Exchange Platform
    Hình 4: Cấu trúc phân tầng của Standard-based Security Info Exchange Platform

    Vấn đề tích hợp trong SOA

    - X.509 Certificate: Một cấu trúc dữ liệu được đánh dấu thiết kế để gửi một khoá công cộng tới một địa điểm nhận. - Kerberos ticket: phân quyền và xác nhận phiên làm việc - SAML (Sercurity Assertion Markup Language). - REL (Right Expression Language) là ngôn ngữ được thêm vào header của WS-Sercurity để phân quyền.

    Chuẩn này quan tâm đến cú pháp và cách xử lý trong việc chứng thực một thành phần nào đó trong tài liệu XML bằng các công nghệ chứng thực khoá đồng bộ hay bất đồng bộ. Những thông tin bảo mật này có thể là: thông tin chứng thực, các quyết định về phân quyền, hoặc là thuộc tính của các đối tượng được lưu trữ ở dạng XML và được cấp phát bởi nơi cung cấp chứng thực SAML.

    Quản lý tiến trình nghiệp vụ trong SOA 1.7. Kết luận

    - XCBF: ngôn ngữ XML Common Biometric Format định nghĩa cho việc xác thực với WS – Sercurity. SAML định nghĩa một nền tảng cho việc trao đổi các thông tin bảo mật dưới dạng XML. SAML cũng định nghĩa các giao thức, quy tắc trong quá trình vận chuyển các thông tin bảo mật.

    Do trình độ có hạn và thời gian gấp rút nên em mới chỉ tìm hiểu được một phần nhỏ về công nghệ SOA. Rất mong thầy nhận xét và chỉ bảo thêm cho em hoàn thành đề tài tốt hơn.

    Bộ giải pháp về SOA của Oracle 2.1. Ứng dụng SOA Suite

    Giới thiệu về SOA Suite

     Độc lập với phần xử lý của các dịch vụ: tính năng này giúp ta có thể xây dựng hệ thống từ nhiều nguồn khác nhau mà không phải quan tâm đến phần xử lý bên trong được xây dựng trên ngôn ngữ hay hệ nền nào.  Liên kết dạng loose coupling với các KB: do khả năng thay đổi các môi trường của hệ thống và những thành phần tích hợp cao dẫn đến các KB cũng phải thay đổi theo. Với dịch vụ boot, ta có thể thiết lập thay đổi trạng thái khởi động ban đầu của service bus khi cần thiết bao gồm một số hoạt động liên quan đến việc nạp và khởi động các thành phần khi cần thiết.

     Hỗ trợ một số bộ lọc chuẩn: thực hiện tuỳ biến một cách linh hoạt cho cách thức xử lý các dịch vụ, có ý nghĩa trong việc tái sư dụng chức năng dùng chung.  Hỗ trợ tích hợp với IIS: các dịch vụ không chỉ được dùng trong một môi trường cục bộ mà có thể sẽ có nhu cầu cung cấp chức năng của dịch vụ đó ra bên ngoài.