TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐÀO TẠO SAU ĐẠI HỌC
BÀI TẬP LỚN MÔN NỀN TẢNG DỊCH
VỤ CHO MẠNG THẾ HỆ MỚI.
ĐỀ TÀI:
KỸ THUẬT PHÁT TRIỂN DỊCH VỤ CHO MẠNG THẾ HỆ
MỚI THEO CÔNG NGHỆ SOA.
Giảng viên hướng
dẫn
Học viên cao học
Lớp
: TS NGUYỄN TÀI HƯNG
: THÂN VĂN TRƯỜNG (CB110930)
ĐỖ XUÂN PHONG (CB110888)
: KTTT1B
Hà Nội
I.
Đặt vấn đề
Mạng viễn thông thế hệ mới (Next Generation Network – NGN) đang là xu
hướng phát triển ở nhiều nước trên thế giới do tính chất tiên tiến của nó như hội tụ
các loại tín hiệu, mạng đồng nhất và băng thông rộng. Tại Việt Nam, lĩnh vực viễn
thông đang phát triển rất mạnh và nhu cầu của người dùng về các loại hình dịch vụ
mới ngày càng cao vì vậy việc tiến lên NGN cũng là vấn đề cấp bách hiện nay cho
các nhà mạng. NGN là mạng hội tụ cả thoại, video và dữ liệu trên cùng một cơ sở
hạ tầng dựa trên nền tảng IP (Internet Protocol), làm việc trên cả hai phương tiện
truyền thông vô tuyến và hữu tuyến. NGN là sự tích hợp cấu trúc mạng hiện tại với
cấu trúc mạng đa dịch vụ dựa trên cơ sở hạ tầng có sẵn, với sự hợp nhất các hệ
thống quản lý và điều khiển. Các ứng dụng cơ bản bao gồm thoại, hội nghị truyền
hình và nhắn tin hợp nhất (unified messaging) như voice mail, email, fax mail, cùng
nhiều dịch vụ tiềm năng khác. Để xây dựng được các ứng dụng này, các nhà mạng
phải xây dựng các máy chủ ứng dụng (Application Server) tương thích với chuẩn
của mạng thế hệ mới. Các phần mềm viết cho máy chủ ứng dụng có thể được viết
bằng nhiều loại ngôn ngữ khác nhau tuân theo một quy tắc chặt chẽ, nhiều tầng. Để
giải quyết vấn đề này, thế giới đã đưa ra một giải pháp có thể khiến cho các ứng
dụng trên bắt tay, giao tiếp được với các ứng dụng khác một cách dễ dàng mà không
cần quan tâm đến các chi tiết kỹ thuật bên trong. Đó là kỹ thuật “kiến trúc hướng
dịch vụ” (Service Oriented Architecture – SOA). Service Oriented Architecture
(SOA) cung cấp cơ chế cho phép các hệ thống hoạt động trên các platform khác
nhau có thể giao tiếp với nhau. Hiện nay, có rất nhiều ngơn ngữ tn theo kỹ thuật
SOA như Sip Servler, JSP, Web 2.0,… Chúng ta sẽ đi vào nghiên cứu về Sip Servlet
và một vài ứng dụng của Sip Servlet trong mạng thế hệ di động mới sử dụng kỹ
thuật SOA.
II.
Mạng thế hệ mới và kiến trúc hướng dịch vụ SOA
1. Mạng viễn thông thế hệ mới
a. Mạng thế hệ tiếp theo (NGN)
Mạng viễn thông thế hệ mới – Next Generation Network (NGN) là mạng hội
tụ cả thoại, video và dữ liệu trên cùng một cơ sở hạ tầng dựa trên nền tảng IP, làm
việc trên cả hai phương tiện truyền thông vô tuyến và hữu tuyến. NGN là sự tích
hợp cấu trúc mạng hiện tại với cấu trúc mạng đa dịch vụ dựa trên cơ sở hạ tầng có
sẵn, với sự hợp nhất các hệ thống quản lý và điều khiển. Các ứng dụng cơ bản bao
gồm thoại, hội nghị truyền hình và nhắn tin hợp nhất (unified messaging) như voice
mail, email và fax mail, cùng nhiều dịch vụ tiềm năng khác.
Các đặc điểm của NGN:
• Sử dụng công nghệ chuyển mạch mềm (SW-SoftSwitch): Thay thế các
thiết bị tổng đài chuyển mạch phần cứng (hardware) cồng kềnh. Các
mạng của từng dịch vụ riêng rẽ được kết nối với nhau thông qua sự
điều khiển của một thiết bị tổng đài duy nhất, thiết bị tổng đài này dựa
trên cơng nghệ SW được ví như là “trái tim” của NGN.
• Mạng hội tụ thoại và dữ liệu, cố định và di động: Các loại tín hiệu
được truyền tải theo kỹ thuật chuyển mạch gói, xu hướng sắp tới đang
tiến dần lên sử dụng mạng IP với kỹ thuật QoS như MPLS.
• Mạng băng thơng rộng cung cấp đa dịch vụ: Mạng truyền dẫn quang
với công nghệ WDM (Wavelength Division Multiplexing) hay DWDM
(Dense WDM).
Cấu trúc của mạng NGN:
Cấu trúc mạng NGN bao gồm 5 lớp chức năng: lớp truy nhập dịch vụ
(service access layer), lớp chuyển tải dịch vụ (service transport/core layer), lớp điều
khiển (control layer), lớp ứng dụng/dịch vụ (application/service layer) và lớp quản
lý (management layer). Hình 1 thể hiện cấu trúc của NGN.
• Lớp ứng dụng / Lớp dịch vụ
Lớp ứng dụng và dịch vụ cung cấp các ứng dụng và dịch vụ như dịch
vụ mạng thông minh IN (Intelligent Network), trả tiền trước, dịch vụ giá trị
gia tăng Internet cho khách hàng thông qua lớp điều khiển... Hệ thống ứng
dụng và dịch vụ mạng này liên kết với lớp điều khiển thông qua các giao
diện mở API. Nhờ giao diện mở này mà nhà cung cấp dịch vụ có thể phát
triển các ứng dụng và triển khai nhanh chóng các dịch vụ trên mạng. Trong
mơi trường phát triển cạnh tranh sẽ có rất nhiều thành phần tham gia kinh
doanh trong lớp này.
• Lớp điều khiển
Lớp điều khiển bao gồm các hệ thống điều khiển kết nối cuộc gọi giữa
các thuê bao thông qua việc điều khiển các thiết bị chuyển mạch (ATM+IP)
của lớp chuyển tải và các thiết bị truy nhập của lớp truy nhập. Lớp điều
khiển có chức năng kết nối cuộc gọi thuê bao với lớp ứng dụng/dịch vụ. Các
chức năng như quản lý, chăm sóc khách hàng, tính cước cũng được tích hợp
trong lớp điều khiển.
Hình 1 - Cấu trúc lớp mạng NGN
• Lớp chuyển tải dịch vụ
Bao gồm các nút chuyển mạch (ATM+IP) và các hệ thống truyền dẫn
(SDH, WDM), thực hiện chức năng chuyển mạch, định tuyến các cuộc gọi
giữa các thuê bao của lớp truy nhập dưới sự điều khiển của thiết bị điều
khiển cuộc gọi thuộc lớp điều khiển. Hiện nay đang còn nhiều tranh cãi khi
sử dụng ATM hay MPLS cho lớp chuyển tải này.
• Lớp truy nhập dịch vụ
Bao gồm các thiết bị truy nhập cung cấp các cổng kết nối với thiết bị
đầu cuối thuê bao qua hệ thống mạng ngoại vi cáp đồng, hoặc cáp quang,
hoặc thông qua môi trường vô tuyến (thông tin di động, vệ tinh, truy nhập vơ
tuyến cố định...)
• Lớp quản lý
Đây là lớp đặc biệt xuyên suốt các lớp trên. Các chức năng quản lý
được chú trọng là: quản lý mạng, quản lý dịch vụ, quản lý kinh doanh.
NGN là mạng chuyển mạch gói, giao thức thống nhất. Mang thông tin hiện
nay, dù là mạng viễn thơng, mạng máy tính hay mạng truyền hình cáp, đều khơng
thể lấy một trong các mạng đó làm nền tảng để xây dựng cơ sở hạ tầng thông tin.
Nhưng mấy năm gần đây, cùng với sự phát triển của công nghệ IP, người ta mới
nhận thấy rõ ràng là mạng viễn thơng, mạng máy tính và mạng truyền hình cáp cuối
cùng rồi cũng tích hợp trong một mạng IP thống nhất, đó là xu thế lớn mà người ta
thường gọi là “dung hợp ba mạng”. Giao thức IP làm cho các dịch vụ lấy IP làm cơ
sở đều có thể thực hiện nối thơng các mạng khác nhau; con người lần đầu tiên có
được giao thức thống nhất mà ba mạng lớn đều có thể chấp nhận được; đặt cơ sở
vững chắc về mặt kỹ thuật cho hạ tầng cơ sở thông tin quốc gia (NII).
Giao thức IP thực tế đã trở thành giao thức ứng dụng phổ biến và bắt đầu
được sử dụng làm cơ sở cho các mạng đa dịch vụ, mặc dù hiện tại vẫn còn ở thế bất
lợi so với các chuyển mạch kênh về mặt khả năng hỗ trợ lưu lượng thoại và cung
cấp chất lượng dịch vụ đảm bảo cho số liệu. Tốc độ đổi mới nhanh chóng trong thế
giới Internet, mà nó được tạo điều kiện bởi sự phát triển của các tiêu chuẩn mở sẽ
sớm khắc phục những thiếu sót này.
b. Phân hệ IP Multimedia Subsystem (IMS)
IMS thuật ngữ viết tắt của IP Multimedia Subsystem, là một kiến trúc mạng
nhằm tạo sự thuận tiện cho việc phát triển và phân phối các dịch vụ đa phương tiện
đến người dùng, bất kể là họ đang kết nối thông qua mạng truy nhập nào.
IMS hỗ trợ nhiều phương thức truy nhập như GSM, UMTS, CDMA2000,
truy nhập hữu tuyến băng rộng như cáp xDSL, cáp quang, cáp truyền hình, cũng
như truy nhập vơ tuyến băng rộng WLAN, WiMAX. IMS tạo điều kiện cho các hệ
thống mạng khác nhau có thể tương vận (interoperability) với nhau. IMS hứa hẹn
mang lại nhiều lợi ích cho cả người dùng lẫn nhà cung cấp dịch vụ. Nó đã và đang
được tập trung nghiên cứu cũng như thu hút được sự quan tâm lớn của giới công
nghiệp. Tuy nhiên IMS cũng gặp phải những khó khăn nhất định và cũng chưa thật
sự đủ độ chín để thuyết phục các nhà cung cấp mạng đầu từ triển khai nó. Kiến trúc
IMS được cho là khá phức tạp với nhiều thực thể và vô số các chức năng khác nhau.
Bài viết này giúp bạn đọc có một cái nhìn tổng quan từ khía cạnh cơng nghệ của
giải pháp IMS. Nó cũng chỉ ra những lợi ích và khó khăn mà IMS đang phải đương
đầu.
Hình 2 – Kiến trúc tổng quan IMS
IMS được định hình và phát triển bởi diễn đàn cơng nghiệp 3G.IP, thành lập
năm 1999. Kiến trúc ban đầu của IMS được xây dựng bởi 3G.IP và sau đó đã được
chuẩn hóa bởi 3GPP (3rd Generation Partnership Project) trong Release 5 công bố
tháng 3 năm 2003. Trong phiên bản đầu tiên này, mục đích của IMS là tạo thuận lợi
cho việc phát triển và triển khai dịch vụ mới trên mạng thơng tin di động. Tiếp đến,
tổ chức chuẩn hóa 3GPP2 đã xây dựng hệ thống CDMA2000 Multimedia Domain
(MMD) nhằm hỗ trợ các dịch vụ đa phương tiện trong mạng CDMA2000 dựa trên
nền 3GPP IMS. Trong Release 6 của 3GPP IMS, cùng với khuynh hướng tích hợp
giữa mạng tế bào và mạng WLAN, mạng truy nhập WLAN đã được đưa vào như
một mạng truy nhập bên cạnh mạng truy nhập tế bào.
IMS khởi đầu như một chuẩn cho mạng vô tuyến. Tuy nhiên, cộng đồng
mạng hữu tuyến, trong quá trình tìm kiếm một chuẩn thống nhất, sớm nhận thấy thế
mạnh của IMS cho truyền thơng hữu tuyến. Khi đó ETSI (the European
Telecommunication Standards Institute) đã mở rộng chuẩn IMS thành một phần của
kiến trúc mạng thế hệ tiếp theo NGN (Next Generation Network) mà họ đang xây
dựng. Tổ chức chuẩn hóa TISPAN (Telecoms & Internet converged Services and
Protocols for Advanced Networking) trực thuộc ETSI, với mục đích hội tụ mạng
thơng tin di động và Internet, đã chuẩn hóa IMS như một hệ thống con của NGN.
Kết hợp với TISPAN, trong Release 7 của IMS, việc cung cấp dịch vụ IMS qua
mạng cố định đã được bổ sung. Năm 2005, phiên bản Release 1 của TISPAN về
NGN được coi như một sự khởi đầu cho hội tụ cố định-di động trong IMS. Gần
đây, 3GPP và TISPAN đã có được một thỏa thuận để cho ra phiên bản Release 8 của
IMS với một kiến trúc IMS chung, có thể hỗ trợ các kết nối cố định và các dịch vụ
như IPTV.
Đa phần các giao thức sử dụng trong IMS được chuẩn hóa bởi IETF (Internet
Engineering Task Force), điển hình nhất là giao thức tạo phiên SIP (Session
Initiation Protocol). Rất nhiều các phát triển và cải tiến của SIP để hỗ trợ các chức
năng theo yêu cầu của hệ thống IMS đã được đề nghị và chuẩn hóa bởi IETF như
SIP hỗ trợ tính cước, bảo mật v.v. Bên cạnh IETF và TISPAN, một tổ chức chuẩn
hóa khác mà 3GPP hợp tác chặt chẽ trong việc phát triển IMS là Liên minh di động
mở OMA (Open Mobile Alliance) nhằm phát triển các dịch vụ trên nền IMS. Một
trong những dịch vụ do OMA phát triển là Push-to-Talk over Cellular (PoC) hay
OMA SIMPLE Instant Messaging.
Lợi ích của IMS:
IMS, tạm dịch là hệ thống con đa phương tiện IP, không đơn thuần là một
nền tảng dịch vụ (service plaftorm) mà là một kiến trúc mạng dùng để thao tác,
quản lý và điểu khiển các dịch vụ đa phương tiện đến người dùng cố định và di
động. IMS định nghĩa một lớp quản lý dịch vụ chung cho tất cả các loại hình dịch
vụ đa phương tiện, độc lập với loại hình mạng truy nhập mà người dùng đang kết
nối. IMS xây dựng trên nền mạng lõi IP và cho phép nhiều mạng truy nhập khác,
bao gồm cả mạng di động lẫn mạng cố định, kết nối với nhau thông qua lớp dịch vụ
chung để cung cấp các gói dịch vụ hội tụ.
Ngày nay Internet đã trở thành một phần cuộc sống của hơn 15% số người
trên trái đất. Internet cung cấp phương thức để mọi người có thể liên lạc, trao đổi,
tuơng tác và làm việc cùng với nhau. Trong khi các mạng vận tải dữ liệu không cần
thời gian thực được sử dụng chủ yếu trong thế hệ Internet đầu tiên thì ngày nay các
dịch vụ thời gian thực (hoặc gần thực) với chất lượng dịch vụ QoS cao ngày càng
được phát triển rộng rãi. Sự chuyển đổi theo khuynh hướng hội tụ nhiều hệ thống
mạng khác nhau trên nền toàn IP sẽ sớm trở thành hiện thực. Trong bối cảnh đó,
người dùng trong tương lai mong muốn có các dịch vụ đa phương tiện chất lượng
cao, mang tính cá nhân, có khả năng tương tác thời gian thực mọi lúc mọi nơi trên
mọi thiết bị sử dụng. Điều này đặt ra nhữnng yêu cầu mới cho kiến trúc hạ tầng
mạng viễn thơng. Trong bối cảnh đó, IMS được xem như là một giải pháp hứa hẹn
để thỏa mãn tất cả những mục tiêu kể trên cho một thế hệ mạng tương lai.
Một trong những mục đích đầu tiên của IMS là giúp cho việc quản lý mạng
trở nên dễ dàng hơn bằng cách tách biệt chức năng điều khiển và chức năng vận tải
thông tin. Một cách cụ thể, IMS là một mạng phủ (overlay), phân phối dịch vụ trên
nền hạ tầng chuyển nối gói. IMS cho phép chuyển dần từ mạng chuyển nối mạch
sang chuyển nối gói trên nền IP, tạo thuận lợi cho việc quản lý mạng thông tin di
động. Việc kết nối giữa mạng cố định và di động đã góp phần vào tiến trình hội tụ
mạng viễn thơng trong tương lai. IMS cho phép người dùng có thể sử dụng một hay
nhiều loại thiết bị khác nhau, di chuyển từ mạng này sang mạng khác mà vẫn có thể
dùng cùng một dịch vụ.
Kiến trúc IMS cung cấp nhiều giá trị gia tăng cho nhà cung cấp mạng, người
phát triển ứng dụng, người cung cấp dịch vụ cũng như người sử dụng các thiết bị
đầu cuối. Kiến trúc IMS giúp các dịch vụ mới được triển khai một cách nhanh
chóng với chi phí thấp. IMS cung cấp khả năng tính cước phức tạp hơn nhiều so với
hệ thống tài khoản trả trước hay trả sau, ví dụ như việc tính cước theo từng dịch vụ
sử dụng hay phân chia cước giữa các nhà cung cấp dịch vụ và nhà cung cấp mạng.
Khách hàng sẽ chỉ nhận một bảng tính cước phí duy nhất từ một nhà cung cấp mạng
thường trú. IMS hứa hẹn mang đến nhiều dịch vụ đa phương tiên, giàu bản sắc theo
yêu cầu và sở thích của từng khách hàng, do đó tăng sự trải nghiệm của khách hàng
(customer experience).
Với IMS, nhà cung cấp mạng sẽ không chỉ làm công tác vận tải thông tin
một cách đơn thuần mà trở thành tâm điểm trong việc phấn phối dung lượng thông
tin trong mạng, đóng vai trị quan trọng trong việc đảm bảo chất lượng dịch vụ cũng
như kịp thời thay đổi để đáp ứng các tình huống khác nhau của khách hàng.
Tóm lại: IMS tạo thuận lợi cho các nhà cung cấp dịch vụ trong việc xây dựng
và triển khai các ứng dụng mới, giúp nhà cung cấp mạng giảm chi phí triển khai,
vận hành và quản lý, đồng thời tăng lợi nhuận nhờ các dịch vụ mới. Và cuối cùng
IMS mang lại những dịch vụ mới hướng đến sự tiện nghi cho khách hàng.
2. Kiến trúc hướng dịch vụ SOA
a. Công nghệ SOA
SOA (Service Oriented Architecture) – kiến trúc hướng dịch vụ. Ngày nay để
đạt được mức độ linh hoạt trong kinh doanh (cho ra sản phầm nhanh và hiệu quả)
nhiều cơng ty đã áp dụng SOA.
Vậy SOA là gì? SOA là một phong cách kiến trúc để xây dựng các hệ thống
phân tán. Phân phát các chức năng dưới dạng dịch vụ và các dịch vụ được người
dùng cuối sử dụng vào ứng dụng của mình hoặc được sử dụng để xây dựng một
dịch vụ khác. Vì vậy SOA cho phép tạo ra các giải pháp hoặc ứng dụng một cách dễ
dàng và nhanh chóng thơng qua việc tích hợp các dịch vụ đã được xây dựng sẵn.
SOA (Service-Oriented Architecture) - kiến trúc hướng dịch vụ. Hiểu một
cách cơ bản, SOA là tập hợp các dịch vụ kết nối “mềm dẻo” với nhau, có giao tiếp
được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng.
SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến quy trình nghiệp vụ
và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.
Nói cách khác, SOA là:
• Một kiểu kiến trúc phần mềm gồm nhiều thành phần độc lập được thể
hiện thành những dịch vụ (service), mỗi dịch vụ thực hiện quy trình
nghiệp vụ nào đó của doanh nghiệp.
• Các thành phần được nối kết qua cổng giao tiếp, có tính kế thừa các
thành phần đang tồn tại, và sự tương tác giữa chúng không cần
quan tâm đến việc chúng được phát triển trên nền tảng công nghệ
nào. Điều này khiến hệ thống có thể mở rộng và tích hợp một cách dễ
dàng.
Bản chất SOA chỉ đơn thuần là sự đáp ứng đối với một thách thức ngày càng
lớn: đó là yêu cầu thực tế của doanh nghiệp thay đổi ngày càng nhanh, đến mức
những cấu trúc ứng dụng kiểu truyền thống khó giải quyết nổi. SOA sẽ đáp ứng
được yêu cầu đó, nó sẽ trợ giúp cho hoạt động doanh nghiệp có thể quản lý được
(manageable), linh hoạt hơn và sẵn sàng thay đổi hơn. Một chun gia của IBM
từng nói: « SOA được xây dựng để thay đổi (built to change), chứ không chỉ để tồn
tại (not built to last) »
Từ góc độ doanh nghiệp thì có thể coi SOA là một phương pháp để tái cấu
trúc hạ tầng thông tin của doanh nghiệp.
b. Đặc điểm SOA
Cơng nghệ SOA có các đặc điểm sau
• Thứ nhất, tái sử dụng phần mềm. Nếu một dịch vụ có quy mơ và
kích thước phù hợp sau đó nó có thể được tái sử dụng cho lần kế
tiếp. Điều này đồng nghĩa sẽ làm giảm cơng sức phát triển và chi phí
về mặt tài chính cho cả hai phía: nhà phát triển phần mềm và các
khách hàng (doanh nghiệp).
Tái sử dụng phần mềm. Nếu gói mã mà tạo thành một dịch vụ có
quy mơ và kích thước phù hợp sau đó nó có thể được tái sử dụng cho
lần kế tiếp, một đội phát triển cần chức năng cụ thể đó cho một ứng
dụng phần mềm mới mà nó mong muốn xây dựng. Họ khơng cần biết
bất cứ thứ gì về việc mã được gói chặt như thế nào hay nó có nguồn gốc
từ đâu. Tất cả những thứ mà họ cần làm đó là xây dựng một sự kết nối
đến mã đó.
Trong một công ty mà thường xuyên xây dựng những hệ thống
mới dựa trên những chức năng tương tự - ví dụ một công ty bảo hiểm
với nhiều bộ phận, mỗi một bộ phận đảm nhận cho các sản phẩm khác
nhau hay một công ty thường xuyên thu được những công ty mới – thời
gian được tiết kiệm thông qua việc phát triển, kiểm thử và tích hợp đó
với chức năng phần mềm nhỏ bé tương tự đó có thể thêm vào.Năng suất
gia tăng. Nếu các lập trình viên tái sử dụng các dịch vụ điều đó có nghĩa
là các dự án phần mềm có thể tiến xa hơn và đội phát triển tương tự có
thể tiếp tục nhiều dự án hơn. Sự tích hợp trở nên rẻ hơn nhiều( theo ước
tính của Gartner thì ít nhất sẽ rẻ hơn 30%) và cũng nhanh hơn, chu trình
phát triển các dự án mới sẽ giảm bớt thời gian đi vài tháng.
• Thứ hai, linh hoạt khi mở rộng, kết nối và tích hợp. Giả sử rằng các
dịch vụ sẽ không được tái sử dụng, thì ta có thể đưa ra nhiều giá trị
nếu ta làm cho hệ thống CNTT chỉnh sửa dễ dàng hơn.
Thậm chí nếu các dịch vụ sẽ khơng được tái sử dụng, thì họ có
thể đưa ra nhiều giá trị nếu họ làm cho hệ thống CNTT chỉnh sửa dễ
dàng hơn. Ví dụ tại website ProFlowers.com có nhiều ứng dụng dư thừa
hoặc tình trạng kêu la của nhiều đơn vị doanh nghiệp. Tuy nhiên theo
ông Kevin Hall giám đốc CNTT của ProFlowers thì việc phân chia quá
trình đặt hoa thành các dịch vụ riêng rẽ có nghĩa là mỗi một cấu phần có
thể được tách biệt và được thay đổi như mong muốn để xử lý các cụm
hoa theo yêu cầu nảy sinh xung quanh các ngày nghỉ. Khi ProFlowers
đã có một ứng dụng nguyên khối, đơn lẻ xử lý q trình đó thì một sự
thay đổi đơn lẻ trong quy trình đó hay một sự gia tăng số lượng giao
dịch( nói vào ngày Lễ tình nhân) đồng nghĩa với việc xé nhỏ toàn bộ hệ
thống và xây dựng lại hệ thống đó.
Dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ như
là hàm chức năng (mô-đun phần mềm) thực hiện qui trình nghiệp vụ
nào đó. Một cách cơ bản, SOA là tập hợp các dịch vụ kết nối 'mềm dẻo'
với nhau (nghĩa là một ứng dụng có thể 'nói chuyện' với một ứng dụng
khác mà khơng cần biết các chi tiết kỹ thuật bên trong), có giao tiếp
(dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền
tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của phát
triển ứng dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp
chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.
Thiết kế SOA tách riêng phần thực hiện dịch vụ (phần mềm) với
giao tiếp gọi dịch vụ. Điều này tạo nên một giao tiếp nhất quán cho ứng
dụng khách (client) sử dụng dịch vụ bất chấp cơng nghệ thực hiện dịch
vụ. Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ, nhà phát triển sẽ
xây dựng các dịch vụ tinh gọn có thể triển khai và tái sử dụng trong
tồn bộ quy trình nghiệp vụ. Điều này cho phép tái sử dụng phần mềm
tốt hơn, cũng như tăng sự linh hoạt vì nhà phát triển có thể cải tiến dịch
vụ mà khơng làm ảnh hưởng đến ứng dụng client sử dụng dịch vụ.
Ưu điểm quan trọng nhất của SOA là khả năng kết nối “mềm
dẻo” (nhờ sự chuẩn hóa giao tiếp) và tái sử dụng. Các dịch vụ có thể
được sử dụng với trình client chạy trên nền tảng bất kỳ và được viết với
ngơn ngữ bất kỳ. (Ví dụ, ứng dụng Java có thể liên kết với dịch vụ
web .NET và ngược lại).
SOA dựa trên 2 nguyên tắc thiết kế quan trọng:
• Mơ-đun: Tách vấn đề lớn thành nhiều vấn đề nhỏ.
• Đóng gói: Che đi dữ liệu và lơ-gic trong từng mơ-dun (hay “hộp
đen”) đối với truy cập từ ngồi.
SOA và OOP : khơng loại trừ nhau.
Có ý kiến cho rằng SOA (Service-Oriented - định hướng dịch vụ) sẽ thay thế
phương thức lập trình hướng đối tượng - OOP (Object Oriented Programming). Ít
nhất thì đây là thơng điệp của Don Box, phụ trách bộ phận thiết kế Indigo - cơng
nghệ tích hợp trong hệ điều hành Windows Longhorn (phiên bản hệ điều hành
Windows thế hệ kế tiếp) mà theo Microsoft sẽ hỗ trợ hoàn toàn SOA. Thực sự đây
chỉ là tuyên bố mang tính 'giật gân', gần giống như tuyên bố AOP thay thế OOP
(tham khảo « AOP=Aspect Oriented Programming », TGVT A số 01/2003 - trang
60).
Hình 3 - Kiến trúc cấp 3 tiêu biểu của mơ hình hướng đối tượng
SOA sử dụng cùng một số nguyên lý như OOP, tuy nhiên triết lý SOA có
khác biệt đáng kể so với OOP. SOA có thể thực hiện với cả chương trình theo
hướng đối tượng (OO) và chương trình khơng hướng đối tượng.
Chúng ta có thể thấy sự ràng buộc giữa lớp thể hiện và các đối tượng của lớp
nghiệp vụ. Chương trình client phải tương tác với mơ hình đối tượng của lớp nghiệp
vụ, điều này làm tăng sự ràng buộc và yêu cầu số lượng đáng kể các “gọi hàm” giữa
các 2 lớp. Khi các đối tượng nghiệp vụ nằm ở máy tính xa thì đây sẽ là vấn đề.
Tương tự, số lượng đối tượng nghiệp vụ mà lớp thể hiện phải thao tác làm giảm sự
độc lập giữa các lớp và làm cho khó sử dụng lớp nghiệp vụ.
Ví dụ, xét đoạn mã sau:
Customers customers = Customer.List();
Orders orders = customers[0].Orders;
Order order = orders.Add('ORDER001',
customerData.Customers[0]);
Order.Lines.Add(new Product('53XYPR0D8', 2);
Orders.Save(); // Nếu việc cập nhật không được thực hiện theo
thời gian thực.
Chương trình làm việc với các đối tượng nghiệp vụ Customer,
Order và Product. Ở đây sử dụng đối tượng Order để thực hiện
việc cập nhật. Trong một số mơ hình, việc cập nhật được thực
hiện trực tiếp ngay trong từng lời gọi đến đối tượng nghiệp vụ.
Những lời gọi đến máy chủ được tơ đậm.
Hình 4 - Mơ hình SOA phát triển từ mơ hình hướng đối tượng.
Hình 4 là mơ hình SOA. Khác biệt giữa SOA và mơ hình đối tượng chính là
lớp mới “Services”. Lớp thể hiện giờ đây khơng cịn thao tác trực tiếp lên các đối
tượng nghiệp vụ nữa, mà sử dụng dịch vụ để truy cập chúng. Các đối tượng nghiệp
vụ được đặt trong thư viện và được dịch vụ nạp vào bộ nhớ - lớp dịch vụ và lớp
nghiệp vụ nằm trong cùng tiến trình, nhờ vậy lời gọi hàm đến đối tượng nghiệp vụ
sẽ không hề bị quá tải.
Dịch vụ đóng vai trị như 'hộp đen': cung cấp một lớp trung gian cho mơ hình
đối tượng và đưa ra tập chức năng rút gọn, làm giảm nhu cầu trao đổi giữa các lớp.
Đoạn mã ví dụ trên được thực hiện theo kiến trúc SOA như sau:
CustomerData customerData = CustomerService.ListCustomers();
OrderData orderData = new OrderData();
OrderEntity order = orderData.Orderss.Add('ORDER001',
CustomerData.Customers[0].CustomerID);
Order.Lines.Add('53XYPR0D8', 2);
CustomerService.AddOrders(orderData);
CustomerService làm việc với các đối tượng dữ liệu CustomersData và
OrderData. Trình client chuẩn bị các đối tượng dữ liệu và gửi chúng đi trong 1 lời
gọi. Giờ đây nó tùy thuộc vào dịch vụ thực hiện cập nhật. Phương thức này thực
hiện nhóm dữ liệu lại với nhau và làm giảm số lượng lời gọi đến server.
SOA và dịch vụ Web: Không phải là một.
Đặc điểm chính của SOA là tách rời phần giao tiếp với phần thực hiện dịch
vụ. Điều này có thể làm bạn liên tưởng đến một công nghệ được đề cập nhiều gần
đây: Dịch vụ web. Dịch vụ web cho phép truy cập thông qua định nghĩa giao thứcvà-giao tiếp. SOA và dịch vụ web thoạt trơng có vẻ giống nhau nhưng chúng không
phải là một.
Về cơ bản, SOA là kiến trúc phần mềm phát xuất từ định nghĩa giao tiếp và
xây dựng tồn bộ mơ hình ứng dụng như là mơ hình các giao tiếp, hiện thực giao
tiếp và phương thức gọi giao tiếp. Giao tiếp là trung tâm của toàn bộ triết lý kiến
trúc này; thực ra, tên gọi “kiến trúc định hướng giao tiếp” thích hợp hơn cho SOA.
Dịch vụ và module phần mềm nghiệp vụ được truy cập thông qua giao tiếp, thường
theo cách thức yêu cầu - đáp trả. Ngay cả với yêu cầu dịch vụ 1 chiều thì nó vẫn là
u cầu trực tiếp có chủ đích từ một phần mềm này đến một phần mềm khác. Một
tương tác định hướng dịch vụ luôn bao hàm một cặp đối tác: nguồn cung cấp dịch
vụ và khách hàng sử dụng dịch vụ.
c. Lợi ích của SOA và IMS
Từ sự kết hợp này, ta có thể xây dựng các dịch vụ viễn thông tăng doanh thu
cho tương lai nhờ hình thành một hệ thống đa dịch vụ.
Ngành viễn thông đã đáp ứng nhu cầu rõ rệt này theo hai cách. Đầu tiên là bộ
tiêu chuẩn được xây dựng ban đầu là cho thông tin di động mở trên tồn thế giới
của Dự án hợp tác về viễn thơng thế hệ ba (3GPP), được mở rộng thành Phân
hệ đa phương tiện IP (IP Multimedia Subsystem - IMS). IMS kể từ đó đã được
Viện Tiêu chuẩn Viễn thơng châu Âu (ETSI) và Liên minh Viễn thông quốc tế
(ITU) chấp nhận và cũng đã được mở rộng để bao quát không chỉ các dịch vụ di
động mà còn cả hội tụ cố định-di động (FMC) và thậm chí các dịch vụ hữu tuyến
thuần túy. Thứ hai là bộ các tiêu chuẩn phần mềm được thiết kế để tạo ra một cấu
trúc ứng dụng mở và linh hoạt, được gọi là kiến trúc hướng dịch vụ (ServiceOriented Architecture - SOA), đã được phát triển để đường hướng phát triển phần
mềm nhiều loại.
IMS và SOA đôi khi được xem như là cạnh tranh nhau, nhưng thực tế, gần
như tất cả các triển khai IMS sẽ sử dụng SOA, và nhiều ứng dụng SOA cho các nhà
cung cấp dịch vụ cũng bao gồm IMS. Cả IMS và SOA thực sự đáp ứng các mục tiêu
tương thích, liên quan nhưng khơng thường xun là như nhau. IMS xác định
một kiến trúc dịch vụ, theo đó một thiết bị tuân thủ các nguyên tắc báo hiệu chuẩn
có thể yêu cầu các dịch vụ từ bất cứ mạng nào, mà không phải quan tâm đến nhận
dạng của nhà khai thác mạng đã cung cấp thiết bị, và có các quy trình tính cước và
an ninh ứng dụng phù hợp được đảm bảo để đáp ứng yêu cầu.
Không có IMS, NSD đã gặp rủi ro khi có những dịch vụ tiên tiến không
chuyển vùng như các dịch vụ di động hiện nay. Các dịch vụ đó cũng có thể phải
cung cấp các thơng tin tính cước cho bất kỳ yêu cầu dịch vụ nào được gửi từ ngoài
mạng thường trú – một rủi ro an ninh rõ ràng. IMS cũng cho phép cung cấp một
cách thức chuẩn để liên kết các yêu cầu dịch vụ đến các yêu cầu nguồn lực mạng
do đó chất lượng dịch vụ (QoS) có thể được đảm bảo, thậm chí khi dịch vụ trung
chuyển qua nhiều mạng khác nhau. Cuối cùng, IMS tạo ra một cách thức kết nối
báo hiệu chuẩn đến các ứng dụng để cung cấp các đặc điểm tiên tiến, bao gồm việc
cung cấp nội dung. SOA là một cấu trúc phần mềm mà ở đó các thành phần chức
năng (“các dịch vụ”) có thể được yêu cầu theo cách chuẩn hóa và do đó có thể được
tạo thành các ứng dụng với độ linh hoạt lớn. Các đặc điểm ứng dụng mới có thể
được “khám phá” từ các danh mục, và các dịch vụ mới tạo ra nhờ sử dụng các công
cụ đơn giản và các thành phần hiện nay.
Tuy nhiên, SOA không đảm bảo rằng tất cả “các dịch vụ” có thể được tích
hợp thành các ứng dụng phù hợp. Các nhà phát triển vẫn phải hợp tác để sử dụng
các giao diện chính xác và yêu cầu các hành vi hợp lý. Liệu một cơ hội dịch vụ cụ
thể nên được xem như là một hệ thống SOA hay IMS, hay là một sự kết hợp của cả
hai, sẽ dựa trên một số các yếu tố, trong đó có yếu tố thị trường mục tiêu, các mục
tiêu dịch vụ, nhóm dịch vụ và hạ tầng hiện nay, và khung quản lý. Bước đầu tiên
trong quy hoạch hệ thống dịch vụ là đánh giá các yếu tố này để thiết lập một mục
tiêu rộng. Nên nhớ là SOA sẽ gần như thường xuyên được sử dụng trong các triển
khai IMS tại lớp ứng dụng, do đó vấn đề chủ yếu là hệ thống kinh tế nào được xây
dựng xung quanh SOA hay IMS, và sau đó phạm vi và cách nào hệ thống kia sẽ
được tích hợp.
IMS được cho là công nghệ lõi của hệ thống nếu các mục tiêu dịch vụ bao
gồm việc cần thiết cung cấp các dịch vụ thông qua các mạng đa nhà cung cấp, hoặc
do các mục tiêu chuyển vùng di động hay FMC. IMS cũng có thể rất giá trị khi
công nghệ lõi cho các dịch vụ sẽ bao gồm các ứng dụng mở được các bên thứ ba
cung cấp, bởi vì nó bao gồm các thiết bị để cơng nhận các ứng dụng này và kiểm
soát hành vi của chúng liên quan cả đến NSD và mạng. IMS cũng cung cấp tích hợp
tính cước trực tiếp để thanh tốn.
SOA có thể được xem là cơng nghệ lõi cho hệ thống vì cơ bản được dựa trên
nỗ lực tối đa (best-effort), cung cấp thông tin dạng Web mà không cần thanh
toán với các đối tác mạng, và ở đâu sự tích hợp với các hệ thống tính cước và vận
hành không quan trọng. Trong tất cả các trường hợp, các nguyên tắc của SOA là cần
thiết trong việc phát triển các ứng dụng, và đặc biệt trong việc tích hợp các thành
phần phần mềm từ các bên thứ ba hoặc với các thành phần khác của phần mềm
OSS/BSS.
Vai trò của IMS và SOA trong hệ thống dịch vụ
Nếu tương lai của các dịch vụ tiên tiến phụ thuộc vào sự linh hoạt, sáng tạo
và tối ưu hóa hạ tầng và các dịch vụ và các mối quan hệ khách hàng, thì vấn đề tiếp
theo là làm thế nào IMS và SOA có thể từng cái đóng góp vào tương lai này.
Trong khi hai khái niệm là tương hợp và thậm chí cộng sinh, thì chúng
được thiết kế để giải quyết các vấn đề có phần khác nhau, và các nhà quy hoạch
sẽ cần tập trung quan tâm vào từng vai trị thích hợp của từng khái niệm và định
thời khi nào thì IMS hay SOA có thể .
Hướng dẫn để hoạch định sử dụng phần mềm các hoạt động SOA là
eTOM (Telecommunications Operations Map) của Diễn đàn TM, cũng được chấp
nhận như là một kiến trúc quản lý chuẩn của ITU. eTOM mơ tả các điểm ở đó các
đặc điểm dịch vụ cần được kết nối để quy hoạch, cung cấp và kích hoạt, và các chức
năng hỗ trợ tiếp diễn. Phần lớn các nhà khai thác sẽ muốn quy hoạch rõ ràng các
khía cạnh hoạt động này sớm để đảm bảo sự tương thích với các quy trình kinh
doanh của họ, và cũng để đảm bảo rằng bất cứ sự tương tác dịch vụ nào khác là
tương thích với các quy tắc hoạt động đã được thiết lập.
Nhiệm vụ hoạt động của dịch vụ IMS
Trong eTOM, IMS là một kiến trúc nền tảng hỗ trợ một cơ cấu cung cấp dịch
vụ. TMF chủ động mối quan hệ giữa các thành phần SDF và eTOM, nhưng
khơng có quy định cuối cùng. Do vậy, công việc này mang lại hướng dẫn cụ thể
cho việc làm thế nào để nhận thấy vai trị của phần mềm tạo ra các đặc tính dịch vụ
và các hành vi (nhiệm vụ của IMS) và phần mềm tạo ra cơ cấu kinh doanh dịch vụ
và hỗ trợ (nhiệm vụ của eTOM). Cả eTOM và IMS/SDF sẽ sử dụng SOA để
tích hợp trong các thành phần phần mềm riêng, và với các thành phần phần
mềm ngoài. Nhưng cần chú ý đến các mối quan hệ giữa các dịch vụ và giữa nhà
khai thác mạng và các bên thứ ba đang thực hiện cả truy nhập mạng và các đặc
điểm thơng qua một chương trình đối tác do nhà khai thác thực hiện, hoặc cung cấp
các thông tin hay đặc điểm riêng cho nhà khai thác mạng. Mỗi một quan hệ trong
các giao diện cần sự chú ý đặc biệt. Nơi nhà khai thác mạng đưa ra một API cho các
nhà phát triển và các đối tác, SOA có thể thực hiện an ninh và nhận thực cần thiết để
đảm bảo giao diện không bị tấn công. Điều này cần thiết để quy hoạch kiểu dịch vụ
SOA được trình bày cho đối tác để đảm bảo là nó đáp ứng các nhu cầu thị trường và
dễ dàng hợp lý để tích hợp vào các ứng dụng của đối tác. Nó cũng quan trọng để
đảm bảo giao diện có hình thức “lược bỏ” để ngăn chặn phần mềm của nhà khai
thác khỏi bị tràn bởi một số các yêu cầu của đối tác vượt quá, dù qua một lỗi phần
mềm hay một tải không dự kiến trước.
Các tiêu chuẩn quốc tế Parlay X và Parlay OSA, được dựa trên một giao diện
SOA, là một điểm khởi đầu thuận lợi để định nghĩa các giao diện này. Nó cũng quan
trọng là các yêu cầu về đặc điểm hay các nguồn lực được thực hiện thơng qua giao
diện được tích hợp với các quy trình OSS do đó các quy trình có thể được đảm bảo
và được tính cước hợp lý. Ở đâu một nhà khai thác mạng duy trì được các đặc
điểm với bên ngoài, báo cáo truy nhập tương tự sẽ là cần thiết để thanh toán,
nhưng ở đây vấn đề là đảm bảo sự ổn định dịch vụ của nhà khai thác mạng. Điều
này có nghĩa là biên tập chu đáo các thơng số sẽ đạt được bên ngồi. SOA bản thân
không cung cấp giao diện dịch vụ cụ thể cho NSD, do vậy xây dựng một giao diện
như là một phần ứng dụng là việc bình thường. Tương tự, SOA không cung cấp sự
sắp xếp báo hiệu dịch vụ, do đó khơng có sự bảo vệ hay tính tốn các yêu cầu dịch
vụ sẵn sàng theo một cách chuẩn. IMS cung cấp những phương tiện này, cũng như
một cơ chế để kiểm soát số yêu cầu dịch vụ (kiểm soát đầu vào) và chất lượng dịch
vụ (kiểm soát nguồn lực). IMS nhận thấy một quá trình kiểu cuộc gọi sử dụng giao
thức SIP sẽ khởi tạo một mối quan hệ giữa khách hàng/NSD và một ứng dụng.
Ứng dụng đó có thể sau đó hình thành các dịch vụ dựa trên kết nối hay cung cấp
một cổng đến các trải nghiệm và dịch vụ khác sử dụng các công cụ kiểu Web, SMS,
MMS và hơn thế. Nơi kiểm soát nguồn lực, kiểm soát đầu vào, hay kiểm soát báo
hiệu ứng dụng là một yêu cầu, IMS nên được xem là một lựa chọn. Một lắp đặt IMS
được kế hoạch chi tiết khơng cần cung cấp tất cả các kiểm sốt này, nhưng khả năng
thực hiện chúng là sẵn sàng nếu các yêu cầu dịch vụ phát triển để tạo ra nhu cầu. Về
mặt lý thuyết, có thể xây dựng một phần mềm ứng dụng IMS hỗ trợ khơng gì ngồi
u cầu SIP sẽ được kết nối với một cổng dịch vụ, và sau đó để sử dụng các
cơng cụ SOA để xây dựng phần còn lại của dịch vụ cùng với Web 2.0. Mục tiêu
này có ưu điểm cho phép sự tham gia và kiểm soát nguồn lực của IMS được sử
dụng để đóng cửa NSD và các nguồn lực để ngăn chặn nghẽn và việc tràn dịch vụ
xuất phát từ điều đó. IMS có thể linh hoạt cao theo mối quan hệ giữa các thành phần
báo hiệu của IMS và giao thức SIP, và các ứng dụng và dịch vụ được cung cấp.
Thực sự thì khơng cần thiết là mọi dịch vụ cần một phiên độc lập, mà mọi mối quan
hệ khách hàng sẽ được dựa trên ít nhất một phiên như vậy. Thậm chí u cầu đó có
thể tránh được cho một số ứng dụng và là bằng một số giới hạn. Các nhà quy hoạch
nên đánh giá cách mà ở đó các nhà cung cấp IMS triển vọng giải quyết các hành vi
không theo phiên để quyết định toàn diện các ứng dụng và dịch vụ mà IMS có thể
được sử dụng để hỗ trợ. Một lợi ích IMS cuối cùng là tích hợp OSS/BSS, và các
phương tiện này cũng phụ thuộc vào nhà cung cấp IMS. Nhiều nhà cung cấp cung
cấp API và các kết nối đến các quy trình OSS/BSS như là một phần của triển khai
IMS. Nếu đây là một trường hợp, nó có thể đơn giản hóa mối quan hệ giữa các ứng
dụng dịch vụ và các hệ thống OSS/BSS. Bên cạnh đó, HSS/HLR của IMS là một
nơi lưu trữ thông tin thuê bao có thể được kết nối tới bất kỳ dịch vụ nào qua ứng
dụng và API hợp lý, và các mở rộng đến cơ sở dữ liệu có thể hỗ trợ nhiều ứng dụng,
bao gồm tập trung quảng cáo đến những NSD di động.
SOA và IMS có một loạt các nhiệm vụ có tính bổ sung cao, và nhiều nhà
khai thác mạng sẽ cần cả hai trong các kế hoạch dịch vụ tương lai. Vấn đề chính có
thể là sự ưu tiên triển khai và các mục tiêu dịch vụ sớm sủa, và các mục tiêu này
liên quan tới mơ hình kinh doanh để thúc đẩy triển khai dịch vụ.
Tăng lợi nhuận thông qua các hợp tác
Với việc cả hai cùng có lợi, bổ sung các cơ hội để tăng lợi nhuận, IMS và
SOA có thể là những cơng cụ giá trị trong việc thực hiện tăng lợi nhuận. Cơ hội lợi
nhuận giá trị đặc biệt nằm ở mối quan hệ giữa nhà khai thác mạng và các đối tác
dịch vụ. Các thăm dị của các nhà khai thác mạng trên tồn cầu tiếp tục cho thấy
việc hình thành đối tác là một ưu tiên cao nhất khi họ nhận thấy xu hướng
chuyển đổi mơ hình kinh doanh. Mạng của tương lai sẽ được nhà khai thác xây
dựng có thể mang lại doanh thu dựa trên sự đóng góp của các đối tác.
Các đối tác cung cấp cho các nhà khai thác hai khía cạnh khả thi để mở rộng
kinh doanh:
Đầu tiên là đối tác có thể là một kênh để bán lại một số hoặc tất cả các
dịch vụ của nhà khai thác. Trong một thế giới nơi việc các chi phí thu
hút khách hàng đang tăng lên và trong một số trường hợp trở thành
những chi phí chính, đây là một sự mở rộng giá trị khác thường.
Thứ hai, đối tác có thể là một nguồn thơng tin đặc biệt và các đặc điểm
cho các dịch vụ, đặc biệt cho các phân đoạn thị trường cụ thể hoặc đỉnh.
Nếu một nhà khai thác mạng có thể “nhập khẩu” các đặc điểm đã được
khách hàng hóa cho các thị trường cụ thể, nhà khai thác có thể thành
cơng ở những thị trường đó.
Phần lớn các nhà khai thác hiện nay đã sẵn sàng tạo ra một số tính năng thoại
qua các API hay tìm hiểu việc này, nhưng một sự thay đổi như vậy có thể tạo ra sự
ổn định và các rủi ro an ninh cho mạng và NSD. Các cơng cụ SOA có thể hỗ trợ cả
việc “xuất khẩu” các dịch vụ cho đối tác và “nhập khẩu” các tính năng hay các dịch
vụ từ các đối tác, nhưng họ khơng cung cấp một giải pháp hồn hảo cho sự ổn định
và an ninh. Ví dụ, nó khả thi cho các đối tác tải một tính năng dịch vụ bằng cách
tiếp cận tính năng khơng hạn chế, có một tác động tới việc sử dụng tính năng này
đâu đó. Nó cũng khả thi để bỏ qua việc kết nối giữa một yêu cầu tính năng và NSD
tạo ra nó, tạo ra việc tính cước sử dụng khơng thể xảy ra.
IMS và SOA mang lại giá trị đối tác
IMS và SOA cùng tạo ra việc tích hợp các đặc điểm đối tác và xuất khẩu các
đặc điểm và thông tin nhà khai thác mạng cho đối tác hiệu quả. Mơi trường SOA
có thể kiểm sốt giao diện đối tác thực tế, và mơi trường IMS có thể kiểm sốt giao
diện giữa NSD và dịch vụ do đối tác hỗ trợ. Điều này cung cấp một bộ đệm hoàn
thiện giữa các đặc điểm đo đối tác hỗ trợ và các thành phần hạ tầng của nhà khai
thác mạng quan trọng. Một lợi ích của IMS/SOA trong các ứng dụng liên quan đến
đối tác là khả năng cung cấp dịch vụ do đối tác hỗ trợ trong chuyển vùng di động và
các ứng dụng FMC, cũng như cho khu vực gia đình hay chỉ cố định. Điều này chấm
dứt rủi ro mà một NSD di động có thể phụ thuộc vào đặc điểm chỉ sẵn sàng trong
một khu vực hộ gia đình, cũng tạo ra mối quan hệ đối tác giá trị hơn với cả hai
bên liên quan. Các dịch vụ do đối tác hỗ trợ có thể là một nền tảng tốt cho các nhà
khai thác mạng di động ảo mới (MVNO). Các mối quan hệ MVNO di động truyền
thống phụ thuộc việc trải rộng giữa các mức dịch vụ bán lẻ và bán sỉ và phụ thuộc
khả năng của đối tác MVNO để giảm các chi phí thu hút khách hàng và các chi phí
duy trì để đáp ứng sự trải rộng. Nếu đối tác MVNO có thể thúc đẩy các đặc điểm cụ
thể của nhà khai thác chính và nếu đối tác có thể bổ sung các đặc điểm chuyên biệt
cao cho dịch vụ theo cách tin cậy và bảo đảm, mối quan hệ MVNO trở thành có lời
và là mong ước cho cả hai bên. Chuyển đổi mơ hình kinh doanh là một ưu tiên của
các nhà khai thác mạng trên toàn thế giới. SOA và IMS không đảm bảo một việc
chuyển đổi như vậy sẽ diễn ra, nhưng SOA và IMS là những công cụ quan trọng để
hình thành một loạt các cơng việc chuyển đổi và đảm bảo sự chuyển đổi đó đưa nhà
khai thác mạng tới một tương lai kinh doanh có lãi.
III.
Tổng quan về SIP Servlet
Chương này mô tả giao thức SIP và nền tảng cần để phát triển ứng dụng SIP
sử dụng ngơn ngữ lập trình JAVA.
1. Tổng quan về giao thức SIP
a. SIP là gì?
SIP là một giao thức báo hiệu thường được sử dụng để thiết lập, chỉnh sửa,
và kết thúc một phiên giữa hai điểm đầu cuối. SIP có thể được sử dụng để thiết lập
một cuộc gọi giữa hai bên, một cuộc gọi nhiều bên, hoặc một phiên multicast cho
các cuộc gọi Internet, các cuộc gọi đa phương tiện và phân phối đa phương tiện.
Một cách đơn giản để mô tả SIP là xem xét một mơ hình sử dụng. Giả sử một
người dùng có định danh là A muốn thiết lập cuộc gọi với người dùng có định danh
là B. Trong viễn thơng, người dùng A và người dùng B có thể giao tiếp thơng qua
một thiết bị được gọi là tác nhân người dùng (User Agent). Một ví dụ về User Agent
là một soft phone, một chương trình phần mềm sử dụng để thiết lập cuộc gọi điện
thoại qua Internet. Một ví dụ khác là VoIP Phone, một loại điện thoại cho phép sử
dụng VoIP (Voice over IP). Dưới đây là các bước cần thiết để thiết lập một cuộc gọi:
• A mời B bắt đầu cuộc hội thoại. Như một phần của lời mời, A sẽ chỉ ra
loại media nào sẽ được hỗ trợ.
• B nhận lời mời, gửi đáp ứng trung gian tới người dùng A, và sau đó đánh
giá lời mời.
• Khi B sẵn sàng chấp nhận lời mời, nó gửi một xác nhận lại cho người
dùng A. Như một phần của xác nhận, B cũng chỉ ra loại media mà nó hỗ
trợ.
• A kiểm tra xác nhận mà nó nhận được từ B và quyết định xem liệu
media hỗ trợ bởi A và B có giống nhau khơng. Nếu A và B hỗ trợ cùng
một loại media, cuộc gọi sẽ được thiết lập giữa A và B.
Hình 5 - Các bước thiết lập một cuộc gọi
SIP cung cấp một phương thức chuẩn để thực hiện các bước này. Nó thực
hiện việc này bằng cách định nghĩa ra các phương thức yêu cầu (request), đáp ứng
(response), mã đáp ứng (response code) và các trường điều khiển đặc trưng cho báo
hiệu và điều khiển cuộc gọi. Giao thức này được chuẩn hóa bởi IETF (Internet
Engineering Task Force) theo RFC 3261 và hiện nay nó được chấp nhận rộng rãi
như một chuẩn báo hiệu cho 3GPP (3rd Generation Partnership Project) và như là
một thành phần không thể thiếu trong kiến trúc IMS.
b. SIP và HTTP liên hệ với nhau như thế nào?
Như đã nói ở trên, SIP kế thừa các đặc tính quan trọng của HTTP. Nó chia sẻ
nhiều đặc điểm quan trọng với HTTP và cũng chính vì vậy nhiều người thường thắc
mắc liệu SIP có sử dụng HTTP như một giao thức nền? Câu trả lời là không. SIP là
một giao thức hoạt động ở cùng một tầng với HTTP, điều đó có nghĩa là nó hoạt
động ở tầng ứng dụng và sử dụng các giao thức TCP, UDP, SCTP như là các giao
thức nền của lớp dưới. Tuy nhiên SIP có rất nhiều điểm giống với HTTP. Ví dụ,
tương tự như HTTP, SIP cũng là một giao thức dựa trên văn bản (text-based) và
người dùng có khả năng đọc được. Cũng giống như HTTP, SIP sử dụng cơ chế yêu
cầu – đáp ứng (request – response mechanism) với các phương thức đặc trưng, mã
đáp ứng và các trường điều khiển. Tuy nhiên, một điểm khác biệt quan trọng giữa
HTTP và SIP là cơ chế yêu cầu – đáp ứng trong SIP là không đồng bộ -- một u
cầu khơng nhất thiết theo sau nó là một đáp ứng tương ứng. Thực tế, yêu cầu SIP
thường có thể gây ra một vài yêu cầu khác được tạo ra.
SIP là một giao thức ngang hàng (peer-to-peer protocol). Điều này có nghĩa
là người dùng cuối (User Agent) có thể hoạt động như một Server cũng như có thể
hoạt động như một Client. Đây là một điểm khác biệt giữa SIP và HTTP. Trong
HTTP, máy client thì sẽ luôn luôn là máy client, máy chủ sẽ luôn luôn là máy chủ.
SIP hỗ trợ các phương thức yêu cầu và mã đáp ứng sau:
• REGISTER: sử dụng bởi client để đăng ký địa chỉ với máy chủ ứng
dụng.
• INVITE: chỉ ra rằng người dùng hay dịch vụ đang được mời tham gia
vào một phiên. Phần thân của bản tin này bao gồm một mô tả phiên mà
người dùng dịch vụ đang được mời.
• ACK: xác nhận rằng client nhận được đáp ứng cuối cùng của một bản
tin invite. Phương thức này chỉ được sử dụng với yêu cầu invite.
• CANCEL: sử dụng để bỏ qua một yêu cầu đang chờ xử lý.
• BYE: gửi một user client agent để chỉ định với máy chủ là nó muốn kết
thuc cuộc gọi.
• OPTIONS: sử dụng để truy vấn máy chủ về khả năng của nó.
Mã hồi đáp:
• 1xx: thăm dị. Một ACK chỉ định một hành động đã được nhận thành
công, được hiểu và được chấp nhận.
• 3xx: chuyển hướng. Yêu cầu thêm các hành động khác để xử lý yêu
cầu.
• 4xx: lỗi client. Yêu cầu có chứa cú pháp sai và khơng thể hồn thành ở
máy chủ.
• 5xx: lỗi máy chủ. Máy chủ thất bại trong việc hoàn thành một u cầu
hợp lệ.
• 6xx: lỗi tồn cục. u cầu khơng thể hoàn thành ở bất cứ máy chủ nào.
Giao thức mô tả phiên (SDP) là một định dạng cho việc mô tả định
dạng media và loại media được dùng trong một phiên. SIP sử dụng SDP
như là một phần tải trong bản tin của nó để thực hiện chức năng trao đổi
khả năng giữa các người dùng. Ví dụ, nội dung của SDP có thể chỉ ra loại
mã hóa hỗ trợ bởi user agent và giao thức sử dụng trao đổi thời gian thực
(RTP).
2. SIP Servlet là gì?
SIP Servlet là một thành phần ứng dụng của Java cơ bản, được quản lý bởi
một SIP Servlet container và được thực thi bởi các bản tin SIP. Giống như các thành
phần Java cơ bản khác, các servlet là các lớp Java trên nền tảng độc lạp mà nó được
biên dịch thành mã máy, các mã máy này có thể được nạp tự động vào và chạy như
là một máy chủ ứng dụng SIP. Các container thi thoảng còn được gọi là các phương
tiện servlet, là các phần mở rộng của máy chủ cung cấp các chức năng servlet.
Servlet tương tác với các client này bằng cách trao đổi các bản tin yêu cầu (request)
và hồi đáp (response) thông qua các servlet container.
Servlet container là một bộ phận máy chủ là một bộ phận máy chủ ứng dụng
cung cấp dịch vụ mạng thông qua các yêu cầu nhận được và hồi đáp gửi đi. Servlet
containter quyết định các ứng dụng nào để gọi và trong lệnh nào. Một servlet
container vừa chứa và vừa quản lý các servlet thơng qua vịng đời của chúng. Một
servlet container có thể được dựng lên bởi một máy chủ SIP, hoặc được cài đặt như
là một bộ phận bổ xung tới SIP server thông qua các giao diện lập trình ứng dụng
mở rộng riêng của server đó. Một SIP servlet container có thể vừa được dựng lên
hoặc có khả năng được cài vào servlet, kích hoạt các máy chủ ứng dụng. Một SIP
servlet container quản lý các điểm lắng nghe (listener) của mạng và các điểm đó
lắng nghe các luồng lưu lượng SIP theo chiều đến (một điểm lắng nghe được tổ hợp
bởi giao thức vận chuyển, địa chỉ IP và số hiệu cổng). Các đặc tính SIP yêu cầu tất
cả các nhân tố SIP hỗ trợ cả UDP và TCP, và có thể là TLS, SCTP, và một số các
lớp vận chuyển khác. Một servlet container có thể đặt các giới hạn bảo mật ở trên
môi trường mà một servlet thực thi. Trong môi trường J2SE 1.2 và J2EE 1.3, các
giwosi hạn này nên được đặt bằng cách sử dụng các kiến trúc cho phép định nghĩa
Java2 Platform.
SIP Servlet cũng tương tự như HTTP Servlet ngoại trừ việc chúng xử lý các
yêu cầu SIP. Chúng thực hiện việc này bày cách định nghĩa các phương thức đặc tả
cho mỗi yêu cầu SIP. Ví dụ HTTP Servlet định nghĩa phương thức doPost() viết đè
lên phương thức Service() để xử lý yêu cầu Post. Trong khi đó, SIP Servlet sử dụng
giao thức doInvite() viết đè lên phương thức Service() để xử lý yêu cầu Invite. SIP
servlet và HTTP servlets có thể được đóng gói với nhau với tài nguyên khác nhau
như các thư viện và các lớp khác nhau, nội dung tĩnh (tập tin âm thanh, tệp hình
ảnh, video,…) và một vài tập tin cấu hình để tạo ra một ứng dụng hội tụ.
3. Các khái niệm chính của SIP Servlet API
Khái niệm chính của SIP Servlet tương tự như HTTP Servlet.Các phần dưới
đây sẽ mơ tả phần chính của một vài khái niệm.
a. Mục đích của SIP Servlet API
Một số thuộc tính quan trọng của API bao gồm:
• SIP Signaling: chấp nhận cho các ứng dụng thực hiện hoàn thành một
chuỗi các hành động của tín hiệu SIP, bao gồm hỗ trợ các nhiệm vụ như
User Agent Client (UAC), User Agent Server (UAS) và proxy.
• Tính đơn giản: các Container xử lý các việc phức tạp không cần thiết
như quản lý các điểm lắng nghe mạng, truyền lại, Cseq, Call-ID thơng
qua các trường điều khiển, định tuyến,…
• Các ứng dụng hội tụ: các Container có khả năng hỗ trợ cho các ứng dụng
hội tụ, đó là các ứng dụng có thể chia ra thành nhiều các giao thức và các
loại media khác nhau, ví dụ như web, telephony và presence.
• Phát triển ứng dụng tại nhà cung cấp thứ ba: mơ hình servlet hỗ trợ việc
phát triển ứng dụng cho bên thứ ba. Việc mô tả triển khai XML thường
được sử dụng để giao tiếp thông tin ứng dụng từ các bên thiết kế ứng
dụng cho tới bên triển khai.
• Thành phần ứng dụng: có thể dùng cho một vài các ứng dụng thực thi
trên các yêu cầu hoặc hồi đáp theo chiều đến hoặc đi. Mỗi một ứng dụng
có một bộ các quy tắc của nó và thực thi một cách độc lập với các ứng
dụng khác một cách rành mạch và tạo thành theo thứ tự.
• Carrier grade (cấp độ carrier): các servlet lưu trữ dữ liệu ứng dụng trong
các container quản lý các phiên đối tượng. Việc triển khai có thể tiếp tục
tái tạo dữ liệu này để đạt được hiệu quả cao.
Tại sao phải đưa ra mơ hình servlet cho SIP?
• Servlet API là một chuẩn mở rộng hỗ trợ bởi nhiều nhà cung cấp khác
nhau.
• Các container quản lý vịng đời của servlet, trạng thái của phiên, giảm
thiểu lỗi phát sinh, tăng khả năng mở rộng, bảo mật.
• Các người phát triển có thể hồn tồn tập trung vào ứng dụng của họ.
• HTTP servlet được sử dụng rộng rãi trong việc phát triển web. Cộng
đồng những người phát triển rộng lớn đã quen thuộc với khái niệm của
Servlet API.
• Một dịch vụ mới phát triển như Servlet có thể tương tác với các thành
phần có sẵn (HTTP servlet, EJB) để tạo ra các ứng dụng hội tụ.
b. SipServlet và SipServlet Container
SipServlet Container quản lý vịng đời của SipServlet, cho phép truyền thơng
trong mạng sử dụng SIP Request và Response bằng cách lắng nghe trên điểm
listening cụ thể, và cung cấp các dịch vụ tùy biến như là bảo mật và tương tác với
các thành phần server-side khác.
c. SIPServletRequest và SIPServletResponse
Phương pháp luận yêu cầu – hồi đáp trong SIP cũng tương tự như trong
HTTP Servlet. Một yêu cầu được định nghĩa trong đối tượng SipServletRequest và
một hồi đáp được định nghĩa trong đối tượng SipServlerResponse. Tuy nhiên, chỉ có
một đối tượng ServletRequest hoặc ServletReponse là có giá trị. Điều này là do một
yêu cầu SIP không đưa ra một hồi đáp đối xứng. Cũng có một giao diện chung gọi
là SipServletMessage cho cả đối tượng SipServletRequest và SipServletResponse.
Giao diện SipServletMessage định nghĩa các phương thức chung cho các đối tượng
SipServletRequest và SipServletResponse.
Hình 6 - Minh họa cấu trúc phân cấp của đối tượng SipServletRequest
và SipServletResponse
Các lớp con của SIP Servlet định nghĩa một số lượng các phương thức nằm
trong đó tồn tại trong giao diện Servlet cơ bản. Các phương thức này được gọi một
cách tự động bởi phương thức doRequest() trong các lớp SIP Servlet để giúp cho
quá trình xử lý các yêu cầu cơ bản SIP. Các phương thức này là:
• doInvite: xử lý các bản tin yêu cầu SIP INVITE.
• doAck: xử lý các bản tin yêu cầu SIP ACK.
• doOptions: xử lý bản tin các yêu cầu SIP OPTIONS.
• doBye: xử lý các bản tin yêu cầu SIP BYE.
• doCancel: xử lý các bản tin yêu cầu SIP CANCEL.
• doRegister: xử lý các bản tin yêu cầu SIP REGISTER.
• doPrack: xử lý các bản tin yêu cầu SIP PRACK.
• doSubscribe: xử lý các bản tin yêu cầu SIP SUBSCRIBE.
• doNotify: xử lý các bản tin yêu cầu SIP NOTIFY.
• doMessage: xử lý các bản tin yêu cầu SIP MESSAGE.
• doInfo: xử lý các bản tin yêu cầu SIP INFO.
Phương thức doResponse() gửi một trong những phương thức sau dựa vào
lớp của mã trạng thái của bản tin hồi đáp.
• doProvisionalResponse: xử lý các thơng tin hồi đáp SIP 1xx.
• doSuccessResponse: xử lý các hồi đáp SIP 2xx.
• doRedirectResponse: xử lý các hồi đáp SIP 3xx.
• doErrorResponse: xử lý các hồi đáp SIP 4xx, 5xx và 6xx.
d. SIP Servlet và các thành phần Java EE khác
Phần này mô tả làm thể nào SIP Servlet có thể tích hợp với các thành phần
Java EE khác trong ứng dụng hội tụ. Và ứng dụng hội tụ có một hay nhiều SIP
Servlet và một hay nhiều thành phần Java EE, như là HTTP Servlet, ứng dụng
JavaServer Face, các enterprise bean, hoặc web service.
Ứng dụng hội tụ cho phép bạn tích hợp chức năng SIP vào các ứng dụng
Java EE và các Framework. Cho ví dụ, một ứng dụng web có các địa chỉ liên hệ của
người lao động có thể được mở rộng để cho phép người sử dụng thực hiện cuộc gọi
VOIP tới người lao động đang cần tìm kiếm. Hay một ứng dụng có thể định tuyến
cuộc gọi incoming tới người lao động dựa vào lịch đặt trước ở server.
e. Cấu trúc một ứng dụng SIP
Một ứng dụng SIP bao gồm các thành phần sau:
• Một hoặc nhiều SIP Servlet.
• Các ứng dụng tùy biến hay các lớp helper như là SIP Listener.
• Tài nguyên tĩnh được sử dụng bởi các lớp.
• Metadata và file cấu hình.
f. Mơ tả triển khai
Một bản mô tả triển khai trên nền XML thường được dùng để mô tả SIP
Servlet, các nguyên tắc để khởi tạo chúng cũng như các đặc tính về nguồn tài
ngun và đặc tính mơi trường được sử dụng trong ứng dụng. Bản mô tả này nằm
trong tập tin sip.xml và cũng giống như tập tin được sử dụng trong HTTP servlet.
Sip.xml được định nghĩa bởi một giản đồ XML.
g. Đóng gói một ứng dụng SIP
Một ứng dụng SIP được đóng gói trong file SIP Archive (SAR) hoặc web
archiver (WAR). Các Archive là chuẩn JAVA Archive (JAR). Định dạng SAR tương
tự định dạng WAR, bao gồm sự có mặt của thưc mục WEB-INF (chứa file class và
file cấu hình). Kho chứa SIP sẽ khuyến nghị sử dụng mở rộng .sar hoặc .war cho
q trình đóng gói ứng dụng SIP.
Ứng dụng hội tụ có thể được đóng gói trong file WAR hoặc SAR và WAR có
thể được đóng gói chính nó trong Enterprise Archive (EAR), tương tự ứng dụng
JAVA EE. Cái này có nghĩa là một ứng dụng SIP cái mà được đóng gói trong một
SAR hay WAR có thể được đóng gói với thành phần enterprise bean, JAVA
Persistence API JAR, và các thành phần Java EE được cho phép đóng gói trong
EAR file.
IV.
Ví dụ về SIP Servlet
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 7 – 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.
4. Khởi tạo cuộc gọi Click-to-dial trong IMS
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