Ví dụ về SIPServlet

Một phần của tài liệu KỸ THUẬT PHÁT TRIỂN DỊCH vụ CHO MẠNG THẾ hệ mới THEO CÔNG NGHỆ SOA (Trang 25 - 30)

Trong phần này ta sẽ miêu tả một ứng dụng được triển khai trong mạng di động thế hệ mới NGN. Cụ thể ta sẽ tìm hiểu ứng dụng Click-to-dial sử dụng công nghệ IMS và SIP Servlet.

1. Chuẩn bị để cài đặt ứng dụng

Hoàn tất các bước sau để chạy ứng dụng:

• Download OpenIMSCore về máy và cài đặt OpenIMSCore trên Ubuntu. • Cài đặt máy chủ Sailfin

• Cài đặt dịch vụ click-to-dial

2. Back-to-back user agent (B2BUA)

Trong ứng dụng này, máy chủ đóng vai trò như một B2BUA, vì vậy khi nhận được bản tin HTTP POST từ phía người dùng đầu cuối, nó kiểm tra trong tiêu chuẩn lọc. Nếu thỏa mãn các điều kiện, máy chủ sẽ thực hiện dịch vụ bằng cách tạo ra một bản tin INVITE dựa vào các thông tin S-CSCF phục vụ người dùng tải được về thông qua giao diện Sh, nó sẽ chuyển tiếp bản tin INVITE khởi tạo đến S-CSCF của người gọi để khởi tạo dịch vụ.

3. Thủ tục đăng ký trong IMS

Các thủ tục đăng ký IMS:

• UE xác định địa chỉ của P-CSCF, P-CSCF sử dụng như một proxy biên SIP trong suốt quá trình đăng ký và cho tất cả các báo hiệu SIP khác trong khi nó đã được đăng ký.

• UE gửi bản tin REGISTER tới mạng chủ của tobias để thực hiện đăng ký SIP cho nhận dạng người dùng công cộng của tobias.

• I-CSCF lựa chọn S-CSCF phục vụ người dùng khi nó đã đăng ký. • S-CSCF tải các dữ liệu xác thực người dùng từ HSS.

• UE và mạng S-CSCF xác thực mỗi dữ liệu đó.

• Các chức năng bảo mật IP (IP sec) giữa UE và P-CSCF được thiết lập. • UE học đường đến S-CSCF.

• S-CSCF học đường đến UE.

Hình – Call flow đăng ký trong IMS

Quá trình đăng ký tiếp tục với các thủ tục:

• S-CSCF tải về hồ sơ người dùng từ HSS.

• S-CSCF đăng ký nhận dạng người dùng công cộng mặc định của người dùng.

• S-CSCF có thể dựa trên hồ sơ người dùng để đăng ký nhận dạng người dùng công cộng khác.

• UE biết về tất các nhận dạng người dùng công cộng đã được gán cho tobias và trạng thái đăng ký hiện tại của anh ta.

• P-CSCF biết tất cả các nhận dang công cộng được gán cho tobias và trạng thái đăng ký hiện tại của anh ta.

Dịch vụ được khởi tạo khi người dùng click vào đường dẫn để gửi bản tin yêu cầu HTTP POST. HTTP POST gửi một cặp tên hoặc cặp giá trị tới web server. Cách sử dụng hay dùng nhất là sử dụng biểu mẫu ngôn ngữ siêu văn bản (html form). Thông thường các bản tin HTTP POST có thể không chứa số điện thoại của người gọi và số điện thoại của người bị gọi. Số điện thoại của người gọi thường có thể nhận được bởi ứng dụng web từ cơ sở dữ liệu đầu cuối, bởi vì người dùng phải đăng nhập vào trang web, cung cấp cho máy chủ ứng dụng một ngữ cảnh cần thiết. Còn số điện thoại của người bị gọi thu được thông qua:

• Bước 1: trên trình duyệt web của người dùng 1 đăng nhập vào tài khoản để thực hiện cuộc gọi, user 1 này click vào SIP URI của user 2 nhằm thiết lập một phiên tới user 2 (bản tin HTTP POST được gửi tới máy chủ ứng dụng có hỗ trợ dịch vụ click to dial). Máy chủ ứng dụng sẽ trả về bản tin hồi đáp OK để báo rằng yêu cầu được chấp nhận.

• Bước 2: máy chủ ứng dụng tạo ra bản tin INVITE tới bên khởi tạo phiên (user 1) bao gồm mô tả phiên (SDP) nhưng không có mô tả loại dữ liệu (no media). Như vậy lúc này trong bản tin SIP không có dòng m. Điều này ẩn ý rằng media của phiên sẽ được thiết lập sau.

• Bước 3: bên liên quan trả lời cuộc gọi và hồi đáp lại bản tin 200 OK có chứa giao thức mô tả phiên nhưng không có media (SDP no media). • Bước 4: máy chủ ứng dụng gửi bản tin tới bên người bị gọi (user 2), lúc

này chưa có giao thức mô tả phiên (no SDP).

• Bước 5: bên người bị gọi (user 2) trả về bản tin hồi đáp 200 OK kèm theo giao thức mô tả phiên để cho máy chủ ứng dụng sử dụng trong việc gửi lại bản tin INVITE tới bên khởi tạo cuộc gọi.

• Bước 6: máy chủ ứng dụng gửi bản tin Re-INVITE tới bên khởi tạo cuộc gọi. SDP trả về từ bên khởi tạo cuộc gọi user 1 trong khi bản tin 200 OK, được sử dụng để trả lời đề nghị trong bản tin ACK gửi tới bên bị gọi.

• Bước 7: bên gọi và bên bị gọi trao đổi thông tin dựa trên giao thức thời gian thực (RTP).

Hình – Thực hiện khởi tạo cuộc gọi click-to-dial thành công sử dụng bản tin INVITE

Máy chủ ứng dụng trong ứng dụng này quyết định xem cần gửi bản tin INVITE tới S-CSCF nào, điều này có thể đạt được thông qua:

• Kiểm soát trạng thái đăng ký của thuê bao mà nó phục vụ. • Truy vấn cơ sở dữ liệu HSS thông qua giao diện Sh. • Cấu hình tĩnh.

Có một vài thiếu sót trong mô hình này. Trước hết, user 1 sẽ được cảnh báo mà không có bất kỳ một media nào được thiết lập. Điều này có nghĩa là user 1 sẽ không thể từ chối hay chấp nhận cuộc gọi dựa trên cấu tạo media của nó. Hơn nữa, cả user 1 và user 2 đều kết thúc trả lời cuộc gọi (ví dụ tạo ra bản tin 200 OK) trước khi nó biết liệu có loại media tương thích hay không. Nếu không có phương thức media chung giữa hai người dùng, cuộc gọi có thể bị kết thúc cùng với bản tin BYE.

5. Các ứng dụng của thành phần

Ứng dụng của thành phần bao gồm các thành phần chính sau:

• Loginsuccess.java: là HTTP servlet xử lý các sự kiện khi người dùng đăng nhập trên web.

• Registration.java: là một đối tượng Java không thực hiện bất kỳ một interface nào để mô tả người dùng đã đăng ký.

• RegistrarServlet: là một SIP servlet cho phép người dùng đăng ký.

• RegistrationBrowserServlet.java: là một HTTP Servlet cung cấp giao diện để chọn người dùng đã đăng ký cho cuộc gọi.

• SipCallSetupServlet.java: là một HTTP Servlet gửi bản tin INVITE khởi tạo tới người dùng đầu tiên.

• B2BCallServlet.java: là một SIP Servlet xử lý các hồi đáp nhận được từ người dùng đầu tiên và thiết lập cuộc gọi tới người dùng thứ hai.

• Web.xml: kịch bản triển khai cho HTTP servlet. • Sip.xml: kịch bản triển khai cho SIP servlet.

Hình – Sơ đồ thực hiện dịch vụ

V. Kết luận

Qua tìm hiểu và nghiên cứu đề tài, chúng em đã nắm được các cơ sở lý thuyết về kiến trúc hướng dịch vụ (SOA) và sự phát triển dịch vụ cho mạng thế hệ mới, bao gồm các khái niệm, các tính chất và các nguyên tắc thiết kế, cũng như các bước cần thực thi

khi xây dựng hệ thống SOA. Rõ ràng là có rất nhiều thách thức và nhiều vấn đề cần quan tâm trong việc ứng dụng giải pháp SOA trong một dự án cụ thể. Thế nhưng những khó khăn này không làm cản trở sự quan tâm của các tổ chức, các doanh nghiệp và các nhà quản lý hệ thống bởi vì chúng quá nhỏ bé so với những giá trị thiết thực mà một hệ thống SOA đem lại nếu được triển khai thành công.

SOA thật sự là một kiến trúc “lý tưởng” cho các hệ thống quản lý của các tổ chức, các doanh nghiệp. Với kết cấu mở, linh hoạt, khả năng dễ mở rộng và tính liên kết cao làm cho hệ thống SOA thật sự có “sức đề kháng” cao đối với những rủi ro về sự thay đổi xảy ra trong môi trường hoạt động nghiệp vụ của các tổ chức. Thay đổi là yếu tố không thể thiếu trong các hoạt động nghiệp vụ nhằm nâng cao hiệu quả và chất lượng phục vụ, đặc biệt là trong môi trường cạnh tranh hiện nay. Một hệ thống SOA khi đó có thể dễ dàng tùy biến để đáp ứng nhanh chóng các yêu cầu thay đổi với mức chi phí thấp hơn nhiều so với các giải pháp trước đây. SOA làm được điều này bởi khả năng tái sử dụng lại các tài nguyên sẵn có, khả năng mở rộng và liên kết tốt với các hệ thống mới để tạo nên một môi trường đồng nhất.

Với những kết quả tìm hiểu được, chúng em tin rằng SOA thực sự là một giải pháp tốt để giải quyết các vấn đề khó khăn mà các giải pháp trước chưa xử lý được và sẽ trở thành nền tảng mang tính chiến lược của các tổ chức doanh nghiệp trong tương lai.

Một phần của tài liệu KỸ THUẬT PHÁT TRIỂN DỊCH vụ CHO MẠNG THẾ hệ mới THEO CÔNG NGHỆ SOA (Trang 25 - 30)