Sử dụng các tính năng cốt lõi của mạng viễn thông để phát triển các ứng dụng web: Phần 1. Phương thức các dịch vụ Web

Theo truyền thống, việc xây dựng các ứng dụng viễn thông đã bao hàm việc đối phó với những khó khăn rắc rối của mạng viễn thông và việc có kỹ năng kỹ thuật về các giao thức viễn thông, chẳng hạn như SMPP, MLP và Parlay. Bài này mô tả cách một nhà phát triển ứng dụng của bên thứ ba có thể xây dựng các ứng dụng web bằng cách sử dụng các tính năng viễn thông cốt lõi có sẵn trong mạng của nhà cung cấp dịch vụ. Nó cũng giải thích các cách tiếp cận khác, như cách sử dụng các khả năng REST và các dịch vụ web có trong IBM® WebSphere® Telecom Web Services Server (TWSS - Máy chủ các dịch vụ Web viễn thông WebSphere của IBM) để xây dựng các ứng dụng viễn thông một cách dễ dàng.

Raghunath Nair, Kỹ sư phần mềm, I.B.M.

author photoRaghunath E. Nair là một kỹ sư phần mềm chính trong Phòng thí nghiệm Phần mềm Ấn Độ của IBM ở Bangalore. Ông gia nhập IBM vào năm 2006. Hầu hết các vai trò gần đây của ông là thiết kế, phát triển và hỗ trợ phần mềm viễn thông cho phần mềm WebSphere của IBM, gồm cả IBM WebSphere TWSS và IBM WebSphere IMS Connector. Các lĩnh vực chuyên môn của ông là tích hợp phần mềm trung gian, SOA, các dịch vụ web và viễn thông. Ông là đồng tác giả của bài Sử dụng người môi giới thông báo WebSphere (WebSphere Message Broker) như là một ESB với WebSphere Process Server (Máy chủ qui trình WebSphere) trong loạt Sách Đỏ của IBM và ông có bằng cử nhân công nghệ về Điện tử và Truyền thông của trường Đại học Calicut.



Chandrashekar Naik, Kỹ sư phần mềm, I.B.M.

author photoChandrashekar B. Naik là một kỹ sư phần mềm trong Phòng thí nghiệm Phần mềm Ấn Độ của IBM. Ông gia nhập IBM vào năm 2004 và có kinh nghiệm trong việc thiết kế, phát triển và thử nghiệm phần mềm. Các lĩnh vực chuyên môn của ông gồm lập trình Java, J2EE và lập trình các dịch vụ web, bao gồm WebSphere Application Server (Máy chủ ứng dụng WebSphere), Telecom Web Services Server (Máy chủ các dịch vụ Web viễn thông), Mobile Portal Accelerator (Bộ tăng tốc công thông tin di động), điện toán lan tỏa và phần mềm WebSphere cho viễn thông. Ông hiện đang tập trung vào phát triển, hỗ trợ và thử nghiệm WebSphere Telecom Web Services Server. Chandrashekar cũng là một lập trình viên có chứng chỉ Sun và ông có bằng cử nhân kỹ thuật về Khoa học Máy tính của trường Đại học Công nghệ Visveswaraiah, Belgaum.



12 07 2012

Giới thiệu về TWSS của IBM

Phiên bản 7.1 của IBM® WebSphere® Telecom Web Services Server (Máy chủ các dịch vụ Web viễn thông WebSphere của IBM) cung cấp cho các nhà cung cấp dịch vụ viễn thông nhiều cách để trưng ra các chức năng mạng thông qua các kết buộc RESTful (dựa trên các đặc tả OneAPI đang phát triển) ngoài việc truy cập các dịch vụ web dựa trên SOAP. Các giao diện dịch vụ web và RESTful đồng thời cung cấp sự truy cập dễ dàng vào các khả năng dịch vụ một cách độc lập với công nghệ, khi sử dụng các ngôn ngữ lập trình.

Để bổ sung các dịch vụ RESTful trong TWSS, các tiện ích Dojo đã được cung cấp đầy đủ các dịch vụ Định vị thiết bị cuối (Terminal Location), SMS và Thanh toán trong Bộ công cụ Viễn thông WebSphere (WebSphere Telecom Toolkit). Các tiện ích này có thể dễ dàng được nhúng vào trong một trang web để tạo ra các ứng dụng kiểu Web 2.0.


Máy chủ phù hợp với ngành công nghiệp viễn thông như thế nào

Các nhà cung cấp dịch vụ truyền thông đang phải đối mặt với sự cạnh tranh gay gắt để tăng doanh thu trung bình trên mỗi người dùng (ARPU) và giảm số thuê bao ảo. Có một nhu cầu khẩn cấp là tận dụng các khả năng của mạng hiện có của các nhà cung cấp (gồm cơ sở hạ tầng di sản, chẳng hạn như các hệ thống báo gọi) và đưa chúng ra sử dụng với các ứng dụng của bên thứ ba một cách dễ dàng và có thể kiểm soát được.

Hình 1. TWSS trong Cơ sở hạ tầng viễn thông
Các ứng dụng viễn thông truy cập các khả năng mạng thông qua TWSS

Xem Hình 1 lớn hơn.

Như Hình 1 minh họa, mục tiêu chính của TWSS là mở các dịch vụ viễn thông như là dịch vụ web có thể tiêu dùng được, cũng như các URI kiểu REST. Các nhà cung cấp ứng dụng của bên thứ ba được hưởng lợi bằng cách tận dụng các API này để tạo ra các dịch vụ giá trị gia tăng cho các khách hàng, do đó loại bỏ yêu cầu biết lập trình mức giao thức. Điều này làm giảm các rào cản tham gia với các nhà cung cấp Ứng dụng bên thứ ba tầm trung, còn thiếu các nhân viên có các bộ kỹ năng rộng nhưng lại muốn tạo ra các dịch vụ viễn thông đổi mới cho khách hàng của họ. Ví dụ, sự hiểu biết dịch vụ dựa vào chính sách đảm bảo rằng dịch vụ có thể tùy chỉnh với các Thỏa thuận mức dịch vụ (SLA) khác nhau cho các loại khách hàng khác nhau.


Kiến trúc của TWSS

Phần này mô tả ngắn gọn kiến trúc IBM WebSphere Telecom Web Services Server (TWSS), với ba thành phần:

  • Cổng kết nối truy cập (AG - Access Gateway).
  • Trình quản lý Chính sách dịch vụ (SPM - Service Policy Manager).
  • Triển khai dịch vụ.

Cổng kết nối truy cập

Cổng kết nối truy cập lo liệu việc ủy quyền, bắt giữ tin nhắn, theo dõi lưu lượng, hướng chính sách và các khả năng quản lý. Các dịch vụ này được cung cấp ở tầng ứng dụng và được thực thi với mỗi yêu cầu dịch vụ web khi sử dụng kiến thức về bộ yêu cầu, dịch vụ mục tiêu và hoạt động được gọi. Cổng kết nối truy cập có sẵn tính linh hoạt để xây dựng logic xử lý tin nhắn có điều chỉnh, phù hợp với các chính sách mạng của doanh nghiệp của bạn. Logic này có thể được tùy chỉnh để đáp ứng các yêu cầu mạng của bạn. Các dịch vụ được triển khai trong tầng Thực hiện dịch vụ (Service Implementation) của TWSS không được trưng ra trực tiếp cho các ứng dụng của bên thứ ba. Thay vào đó, chúng được tạo sẵn thông qua Cổng kết nối truy cập của TWSS (Telecom Web Services Server Access Gateway), chạy trên IBM WebSphere Enterprise Service Bus (Bus của dịch vụ Doanh nghiệp WebSphere của IBM).

Triển khai Cổng kết nối truy cập (AG) tiếp sau mô hình thành phần Kiến trúc thành phần dịch vụ (SCA - Service Component Architecture). Việc triển khai Cổng kết nối truy cập gồm các nguyên hàm trung gian, là những mảnh nhỏ, dựa vào mục tiêu của logic xử lý tin nhắn có thể được kết hợp và sắp xếp lại với nhau theo bất kỳ thứ tự mong muốn nào để tạo ra các luồng trung gian.

Xem phiên bản 7.1 của IBM Telecom Web Services Access Gateway Information Center (Trung tâm thông tin Cổng kết nối truy cập các dịch vụ web viễn thông của IBM) để biết các chi tiết. Có một liên kết đến phiên bản này trong phần Tài nguyên.

Trình quản lý Chính sách dịch vụ (SPM)

Như phần trước đã giải thích, các thành phần Cổng kết nối truy cập dựa vào chính sách, có nghĩa là các chính sách được cấu hình chi phối hành vi của nguyên hàm trung gian trong các luồng trung gian của Cổng kết nối truy cập. Trình quản lý Chính sách dịch vụ cung cấp các hàm quản lý, lưu trữ và gọi lại cho dữ liệu cấu hình chính sách này và dữ liệu thời gian chạy được sử dụng để tùy chỉnh việc phân phối dịch vụ cho một bộ yêu cầu cụ thể.

Xem phần Trình quản lý Chính sách dịch vụ trong Trung tâm Thông tin Phiên bản 7.1 của IBM WebSphere Telecom Web Services Server để biết các chi tiết. Có một liên kết đến phần này trong phần Tài nguyên.

Triển khai dịch vụ

Triển khai dịch vụ (SI) thực sự lưu trữ hoặc triển khai rất nhiều dịch vụ, mà các ứng dụng của bên thứ ba cần truy cập. Nói chung, việc triển khai dịch vụ này có thể được phân loại như sau:

  • Triển khai dịch vụ Web hoạt động trên SIP/IMS.
  • Triển khai dịch vụ Web dựa trên phần mềm IBM® WebSphere®.
  • Triển khai dịch vụ Web dựa trên các giao thức Direct Connect (Kết nối trực tiếp).
  • Triển khai dịch vụ Web dựa trên Parlay.

Xem Triển khai dịch vụ Web trong trung tâm thông tin Phiên bản 7.1 của IBM WebSphere Telecom Web Services Server để biết thêm về các dịch vụ có sẵn trong mỗi thể loại. Có một liên kết đến phần này trong phần Tài nguyên.

Hỗ trợ REST trong phiên bản 7.1 của TWSS

Từ phiên bản 7.1 của TWSS trở đi, một số triển khai dịch vụ có sẵn thông qua giao diện REST (Representational State Transfer - Chuyển đổi trạng thái đại diện) đơn giản hơn ngoài các dịch vụ web tiêu chuẩn. Việc này dựa vào đặc tả phiên bản 0.9 của GSMA OneAPI (Open Network Enabler API - API của trình cho phép mạng mở), là một tập các đặc tả cho các nhà khai thác mạng để trưng ra các khả năng mạng của họ cho các nhà phát triển ứng dụng của bên thứ ba. Có một liên kết đến đặc tả này trong phần Tài nguyên. Trong phiên bản 7.1 của TWSS, các hoạt động sau đây được hỗ trợ thông qua REST:

Định vị thiết bị đầu cuối

  • getLocation

Thanh toán

  • chargeAmount
  • refundAmount

SMS (Dịch vụ tin nhắn ngắn)

  • sendSms
  • getSmsDeliveryStatus
  • getReceivedSms


Xem truy cập kiểu REST bằng cách sử dụng HTTP trong trung tâm thông tin Phiên bản 7.1 của IBM WebSphere Telecom Web Services Server để biết các chi tiết về từng hoạt động nói trên. Có một liên kết đến truy cập này trong phần Tài nguyên.

Phần còn lại của bài này tập trung vào các cách khác nhau, trong đó có thể sử dụng các khả năng mạng do IBM TWSS trưng ra để phát triển các ứng dụng viễn thông.


Kịch bản 1. Tạo một ứng dụng viễn thông với các dịch vụ web

Kịch bản này thể hiện cách phát triển một ứng dụng viễn thông bằng cách sử dụng Dịch vụ thông báo ngắn (SMS) và các dịch vụ web Định vị thiết bị đầu cuối do TWSS trưng ra.

Trường hợp sử dụng

  1. Debbie đăng ký một thuê bao dùng một ứng dụng của bên thứ ba là GeoAlert (Cảnh báo địa lý), ở đây cô đã đăng ký một dịch vụ nhắc nhở dựa vào vị trí để nhắc cho cô ấy biết khi cô ở gần một khu vực địa lý cụ thể.
  2. Khi nhận được yêu cầu, ứng dụng GeoAlert bắt đầu khai báo địa lý bằng cách sử dụng dịch vụ web Parlay X Terminal Location (Định vị thiết bị đầu cuối Parlay X) . Khi Debbie đi vào khu vực đã quy định, GeoAlert yêu cầu dịch vụ web Định vị thiết bị đầu cuối gửi một khai báo tại một URL cụ thể .
  3. Khi Debbie đi vào khu vực đã quy định, một khai báo vị trí được kích hoạt. Trong lúc bắt đầu khai báo địa lý, GeoAlert được thông báo tại URL đã định. URL này thường được gọi là "Catcher URL" hoặc chỉ đơn giản là Catcher (Bộ bắt giữ)..
  4. Khi nhận được khai báo vị trí, GeoAlert gửi một tin nhắn SMS (tin nhắn nhắc nhở) tới Debbie.

Phát triển ứng dụng web

Theo dõi các bước sau để bắt đầu phát triển ứng dụng:

  1. Tạo máy khách dịch vụ web TerminalLocationNotificationManager
    Việc này cung cấp một máy khách dịch vụ web để gọi dịch vụ web Parlay X Terminal Location (Định vị thiết bị đầu cuối Parlay X). Máy khách gọi hoạt động startGeographicalNotification (bắt đầu khai báo địa lý) của giao diện TerminalLocationNotificationManager (Trình quản lý khai báo Vị trí thiết bị đầu cuối).
  2. Phát triển việc thực hiện dịch vụ web TerminalLocationNotification
    Việc này tạo ra một Catcher dịch vụ web (để nhận khai báo được kích hoạt). Điểm cuối (endpoint) dịch vụ web này được thiết lập trong khi kích hoạt startGeographicalNotification, sao cho nó dùng làm một ứng dụng Catcher để nhận các khai báo. Để thực hiện trường hợp sử dụng của mình, chúng ta sẽ gửi một tin nhắn (lời nhắc) SMS dựa vào việc nhận khai báo, từ việc thực hiện dịch vụ web này.
  3. Kiểm tra ứng dụng của bạn
    Các bước này trình bày cách kiểm tra ứng dụng được phát triển, khi sử dụng IBM WebSphere Telecom Toolkit (Bộ công cụ Viễn thông WebSphere của IBM).

Các công cụ

  • Phiên bản 7.5.1 của IBM Rational Application Developer (Nhà phát triển ứng dụng Rational của IBM). Chúng ta sử dụng công cụ này cho tất cả các bước, bởi vì nó đơn giản hoá việc tạo máy khách và thực hiện dịch vụ web.
  • Phiên bản 7 của IBM WebSphere Telecom Toolkit (Bộ công cụ Viễn thông WebSphere của IBM). Bộ công cụ sẽ được cài đặt trong Rational Application Developer. Nó cho phép các nhà phát triển ứng dụng của bên thứ ba nhanh chóng xây dựng và kiểm tra nhiều ứng dụng gồm có việc kiểm soát SMS, MMS, Location (Vị trí), Presence (Có mặt) và Call (Cuộc gọi). Nó cũng cung cấp một nền tảng để phát triển Kiểm nghiệm Công nghệ (các trình diễn), đánh giá các giải pháp và khám phá các khả năng khác nhau được cung cấp. Ngoài ra nó còn dùng làm một bộ mô phỏng cho IBM WebSphere Telecom Web Services Server (Máy chủ các dịch vụ Web Viễn thông WebSphere của IBM).

Tạo một máy khách dịch vụ web TerminalLocationNotificationManager (Trình quản lý khai báo vị trí thiết bị đầu cuối)

  1. Khởi động Rational Application Developer và tạo một dự án Java mới gọi là StartNotificationClient.
  2. Tạo một thư mục có tên là WSDL trong dự án Java.
  3. Tải về và sao chép các tệp WSDL của Parlay X 2.1 Terminal Location vào thư mục WSDL mà bạn đã tạo ra. Để tải về, hãy xem Các đặc tả Parlay X 2.1. Có một liên kết đến các đặc tả này trong phần Tài nguyên.
  4. Xác định vị trí parlayx_terminal_location_notification_manager_service_2_3.wsdl trong thư mục WSDL, nhấn phím chuột phải và từ các trình đơn thả xuống, chọn Web Services > Generate Client (Tạo máy khách).
Hình 2. Tạo Máy khách của Trình quản lý khai báo vị trí thiết bị đầu cuối
Tạo máy khách ứng dụng Web từ WSDL khi sử dụng Rational Application Developer

Xem Hình 2 lớn hơn.

5. Hãy chắc chắn rằng bạn chọn các tùy chọn sau:

  • Web service runtime (Thời gian chạy dịch vụ Web): IBM WebSphere JAX-RPC
  • Client project (Dự án máy khách): StartNotificationClient
Hình 3. Chọn tùy chọn thời gian chạy dịch vụ web
THiết lập cấu hình cho máy khách dịch vụ Web

Xem Hình 3 lớn hơn.

  1. Nhấn Finish.
  2. Bây giờ, hãy tạo ra một lớp Java trong gói com.ibm.client có tên là StartNotificationClient.java.

Lưu ý: Toàn bộ mã Java được cung cấp như là Sự trao đổi dự án (Project Interchange) trong phần Tải về. Hãy chắc chắn rằng đường dẫn xây dựng của dự án StartNotificationClient có một tài liệu tham khảo đến tệp com.ibm.ws.webservices.thinclient_7.0.0.jar có sẵn trong <RAD75Home>\runtimes\base_v7\runtimes.

Mã trong Liệt kê 1 cho thấy mã mẫu với gói StartNotificationClient.java, thực sự gọi hoạt động startGeographicalNotification của dịch vụ Định vị thiết bị đầu cuối (Terminal Location). Đoạn mã này, khi có hiệu lực, bắt đầu theo dõi vị trí của Debbie. Mã trong Liệt kê 1 tạo ra các đối tượng khác nhau theo yêu cầu của hoạt động startGeographicalNotification.

Liệt kê 1. StartNotificationClient.java – Thiết lập các tham số
// Subscriber sends location information in the form of Latitude and Longitude
String address = args[0];
float fLat = (float) Float.parseFloat(args[1]);
float fLong = (float) Float.parseFloat(args[2]);

/*Setting the Reference object. Reference specifies the endpoint where the 
location notification need to sent by the terminal location web service */
	
SimpleReference reference = new SimpleReference();
URI endpoint = 
new URI("http://localhost:9081/TestWeb/services/TerminalLocationNotification");
reference.setEndpoint(endpoint);
reference.setInterfaceName("TerminalLocation");
reference.setCorrelator("DemoCorr"+Calendar.getInstance().getTimeInMillis());
		
//Converting the address to URI. 
URI[] addresses = new URI[1];
addresses[0]=new URI(address);
			
//Setting the radius and accuracy
float fRad = (float) 5.0;
float tAcc= (float) 100.0;
	
/*Setting the criteria.
ENTERING - Triggers the notification when subscriber enters the region specified 
by Latitude, Longitude and Radius
LEAVING - Triggers the notification when subscriber leaves the region specified 
by Latitude, Longitude and Radius */

EnteringLeavingCriteria crt = new EnteringLeavingCriteria("Entering");
			
//CheckImmediate specifies, if the location of subscriber needs to checked immediately
boolean chkImm = false;
	
//The frequency of the notification
TimeMetric freq = new TimeMetric();
freq.setMetric(new TimeMetrics("Millisecond"));
freq.setUnits(10000);

Mã trong Liệt kê 2 cho thấy hoạt động dịch vụ web startGeographicalNotification được gọi như thế nào.

Liệt kê 2. StartNotificationClient.java – Gọi hoạt động này
//Obtain TL Manager Proxy
TerminalLocationNotificationManagerProxy tlProxy = 
new TerminalLocationNotificationManagerProxy();
			
//Set the endpoint where the Terminal Location Notification Manager web service
tlProxy.setEndpoint(url);
			
//Obtain the TL Manager
TerminalLocationNotificationManager  tlMgr = 
tlProxy.getTerminalLocationNotificationManager();
			
//Invoke the startGeographicalNotification
System.out.println("Calling the web service");
tlMgr.startGeographicalNotification(reference, addresses, 
fLat, fLong, fRad, tAcc, crt, chkImm, freq);

Lưu ý:
Nếu có các lớp còn do dự, ví dụ, lớp EnteringLeavingCriteria, hãy thay đổi khả năng hiển thị của lớp đó là public (Công khai).

Phát triển việc thực hiện dịch vụ web TerminalLocationNotification

Để nhận được các khai báo, GeoAlert phải thực hiện dịch vụ web Khai báo Vị trí thiết bị đầu cuối và việc thực hiện này sẽ được sử dụng như là một Catcher để nhận các khai báo đã kích hoạt.

  1. Tạo một dự án web động và gọi nó là TLCatcherWeb.
  2. Đảm bảo đã đánh dấu chọn hộp kiểm Add project to an EAR (Thêm một dự án vào một EAR) với EAR Project Name (Tên dự án EAR) là TLCatcherWebEAR.
  3. Tải về và sao chép các tệp WSDL của Parlay X 2.1 Terminal Location vào thư mục TLCatcherWeb > WebContent > WEB-INF > wsdl. Để tải về, hãy xem Các đặc tả Parlay X 2.1. Có một liên kết đến các đặc tả này trong phần Tài nguyên.
  4. Xác định vị trí tệp parlayx_terminal_location_notification_service_2_2.wsdl trong thư mục WSDL, nhấn phím chuột phải vào nó và, từ các trình đơn thả xuống, chọn dịch vụ Web Services > Generate JavaBean skeleton (Tạo bộ khung JavaBean).
Hình 4. Tạo bộ khung JavaBean
Các lựa chọn từ ba trình đơn, như được mô tả

Xem Hình 4 lớn hơn.

  1. Hãy chắc chắn rằng bạn chọn các tùy chọn sau đây cho các trường (xem Hình 5):
    • Web service runtime: IBM WebSphere JAX-RPC
    • Service project: TLCatcherWeb
    • Service EAR project (Dự án EAR dịch vụ): TLCatcherWebEAR
Hình 5. Các thiết lập cấu hình
Cửa sổ hộp thoại cấu hình dịch vụ Web

Xem Hình 5 lớn hơn.

  1. Nhấn Finish. Sau khi nhấn chuột vào Finish, nếu bạn được nhắc khởi động máy chủ, hãy nhấn Cancel (Hủy bỏ).
  2. Bean của bộ khung được tạo ra trong bước trước có chứa một tập các phương thức tương ứng với các hoạt động được mô tả trong WSDL Khai báo Vị trí thiết bị đầu cuối. Khi tạo bean, một bộ khung cho từng phương thức được cung cấp, như trong Liệt kê.
Liệt kê 3. Mã của bộ khung Khai báo Vị trí thiết bị đầu cuối
package org.csapi.www;
public class TerminalLocationNotificationBindingImpl 
implements org.csapi.www.TerminalLocationNotification{
	
//This operation is invoked on a successful location notification
public void locationNotification(java.lang.String correlator, 
org.csapi.www.LocationData[] data, 
org.csapi.www.EnteringLeavingCriteria criteria) throws java.rmi.RemoteException {
}

//This operation is invoked on a location notification error
public void locationError(java.lang.String correlator, java.net.URI address, 
org.csapi.www.ServiceError reason) throws java.rmi.RemoteException {
}

//This operation is invoked upon location notification end
public void locationEnd(java.lang.String correlator) throws java.rmi.RemoteException {
}
}

Khi nhận được một Location Notification (Khai báo Vị trí), đáp ứng tiêu chí của Debbie, ứng dụng GeoAlert gửi một tin nhắn nhắc nhở SMS đến điện thoại di động của Debbie. Để thực hiện việc này, dịch vụ này cần triển khai máy khách sendSMS trong hoạt động locationNotification và gọi hoạt động sendSMS.

  1. Để tạo máy khách SMS, hãy tải về và sao chép tệp parlayx_sms_send_service_2_2.wsdl vào thư mục WSDL, nhấn phím chuột phải và chọn > Web Services > Generate Client. Để tải về, hãy xem Các đặc tả Parlay X 2.1. Có một liên kết đến các đặc tả này trong phần Tài nguyên.
  2. Hãy chắc chắn rằng bạn chọn các tùy chọn sau:
    • Web service runtime: IBM WebSphere JAX-RPC
    • Client project: TLCatcherWeb
    • Client EAR project: TLCatcherWebEAR
Hình 6. Cấu hình máy khách dịch vụ web
Cửa sổ hộp thoại máy khách dịch vụ web

Xem Hình 6 lớn hơn.

Việc này sẽ tạo ra một cấu trúc gói với các nhánh rẽ cho hoạt động sendSMS.

Phương thức locationNotification trong lớp TerminalLocationNotificationBindingImpl là một phương thức được gọi hoặc được thông báo khi thỏa mãn tiêu chí của Debbie. Theo định nghĩa của trường hợp sử dụng này, GeoAlert gửi một lời nhắc tới Debbie qua SMS. Liệt kê 3 cho thấy mã mẫu để gọi hoạt động sendSMS của dịch vụ tin nhắn ngắn (SMS).

Liệt kê 4. Mã mẫu Khai báo Vị trí thiết bị đầu cuối
//This operation is invoked on a successful location notification
public void locationNotification(java.lang.String correlator, 
org.csapi.www.LocationData[] data, 
org.csapi.www.EnteringLeavingCriteria criteria)
throws java.rmi.RemoteException {
      	
String smsResp = "";
		
/*Fetch the address from the LocationData element. 
Later use this address for sendSms operation */
URI[] addresses = new URI[1];
addresses[0] = data[0].getAddress();
		
/*Fetch the Location Info in the form of Latitude and Longitude.
Send this information in the SMS message to the subscriber*/
float lat = data[0].getCurrentLocation().getLatitude();
float lon = data[0].getCurrentLocation().getLongitude();
	
//Set the URL where Send SMS web service is running
String url = "http://localhost:9081/ParlayX21Web/services/SendSms";
		
try{
//Obtain SendSMS proxy
SendSmsProxy smsProxy = new SendSmsProxy();
		
//Set endpoint where web service is running
smsProxy.setEndpoint(url);
System.out.println("---Endpoint set---");
		
//Obtain the service handler
SendSms smsSvc = smsProxy.getSendSms();
System.out.println("---Handle to Service obtained. Invoking Web Service---");
		
//Compose the SMS message
String msg = "Hello Customer, Greetings from Location Based Reminder App. " +
"You have reached the Location where you had set a reminder. " +
"Your current location is Latitude = " + lat +
"Longitude = " + lon;
		
//Invoke sendSms operation of Short Message Service
smsResp= smsSvc.sendSms(addresses, "LocationBasedReminderAPP", null, msg, null);
System.out.println("---Sent Web Service request---");
}
catch(Exception e)
{	
}
}

Khi phương thức locationNotification được gọi, nó sẽ gửi một tin nhắn SMS đến điện thoại di động của Debbie.


Kiểm tra ứng dụng trên Bộ công cụ WebSphere Telecom

Để kiểm tra ứng dụng mà bạn đã phát triển, hãy tải về và sử dụng bộ công cụ IBM WebSphere Telecom. Có một liên kết đến bộ công cụ đó trong phần Tài nguyên. Bộ công cụ miễn phí này cho phép các nhà phát triển ứng dụng của bên thứ ba nhanh chóng xây dựng và kiểm tra nhiều ứng dụng liên quan đến điều khiển SMS, MMS, Location, Presence và Call. Nó cũng cung cấp một nền tảng để phát triển Kiểm nghiệm các trình diễn công nghệ, để đánh giá các giải pháp và để khám phá các khả năng khác nhau được cung cấp.

Xem IBM Education Assistant (Trợ lý giáo dục của IBM) - Bộ dụng cụ WebSphere Telecom để biết thêm chi tiết. Có một liên kết đến IBM Education Assistant trong phần Tài nguyên.

Các lưu ý:

  • Lược tả phiên bản 7 của WebSphere Application Server đã được tạo ra trong các thời gian chạy (runtimes) của Rational Application Developer.
  • Phiên bản 7.1 của Bộ công cụ IBM WebSphere Telecom được cài đặt trên phiên bản 7.5.1 của Rational Application Developer.

Triển khai và chạy Bộ mô phỏng các dịch vụ web Viễn thông (Telecom Web Services Simulator)

  1. Tạo một lược tả phiên bản 7 của WebSphere Application Server trong Rational Application Developer.
  2. Khởi động máy chủ WebSphere.
  3. Nhấn phím chuột phải vào máy chủ và chọn Deploy Telecom Web Services Simulator - Triển khai Bộ mô phỏng các dịch vụ web Viễn thông (xem Hình 7). Bước này triển khai một ứng dụng có tên là WSSimulatorEAR.
Hình 7. Triển khai Bộ mô phỏng các dịch vụ web Viễn thông
Triển khai Bộ mô phỏng các dịch vụ web viễn thông trên WebSphere Application Server khi sử dụng Rational Application Developer

Xem Hình 7 lớn hơn.

  1. Sau khi triển khai xong, nhấn chuột phải vào máy chủ (xem Hình 8) và chọn Run Telecom Web Services Simulator Client (Chạy máy khách Bộ mô phỏng các dịch vụ web Viễn thông).
Hình 8. Chạy máy khách Bộ mô phỏng các dịch vụ web Viễn thông
Các khung nhìn Project Explorer và Java tab

Xem Hình 8 lớn hơn.

Có sáu khung nhìn thời gian chạy hiển thị tất cả dữ liệu cấu hình và dữ liệu thời gian chạy của bộ mô phỏng: Activity (Hoạt động), Call (Cuộc gọi), Device (Thiết bị), Group (Nhóm), Presence (Có mặt) và Map (Bản đồ). Xem cấu hình IBM Education Assistant - Bộ dụng cụ WebSphere Telecom để biết thêm thông tin về các khung nhìn này.


Triển khai ứng dụng

StartNotificationClient là một ứng dụng Java độc lập.

Dự án EAR, TLCatcherWebEAR, cần được triển khai theo thời gian chạy của máy chủ. Với mục đích này, hãy sử dụng WebSphere Application Server 7 làm công cụ thời gian chạy cho ứng dụng này.

  1. Nhấn phím chuột phải vào WebSphere Application Server 7 (WAS 7), chọn Add and Remove Projects (Thêm và Loại bỏ dự án).
  2. Trong cửa sổ Add and Remove Projects, thêm vào TLCatcherWebEAR.
  3. Nhấn Finish.

Bây giờ Dịch vụ Web Khai báo Vị trí thiết bị đầu cuối (Catcher) được triển khai và đang chạy.

Kiểm tra ứng dụng của bạn

Trước khi kiểm tra chức năng ứng dụng GeoAlert, hãy xác minh những điều sau đây:

  • TerminalLocationNotificationManager Endpoint (Điểm cuối của Trình quản lý Khai báo vị trí thiết bị đầu cuối) đang chạy. Dịch vụ web này có sẵn là một phần của bộ công cụ của Bộ mô phỏng các dịch vụ Web Viễn thông. http://localhost:9081/ParlayX21Web/services/TerminalLocationNotificationManager (Số cổng thực tế có thể khác.)
  • TerminalLocationNotification Endpoint (Điểm cuối của Trình quản lý Khai báo vị trí thiết bị đầu cuối) đang chạy. Dịch vụ web này được phát triển trong thao tác trước (TLCatcherWebEAR). http://localhost:9081/TLCatcherWeb/services/TerminalLocationNotification. (Số cổng thực tế có thể khác.)
  • Hãy chắc chắn rằng bạn đã thiết lập đúng các điểm cuối trong lớp Java StartNotificationClient.java
  1. Chạy lớp Java StartNotificationClient, cung cấp các đối số sau:
    • arg1: số_ điện thoại_ thuê bao. Số điện thoại này nên tồn tại trong Bộ mô phỏng các dịch vụ Web Viễn thông. Ví dụ, số điện thoại:+1-2225552003
    • arg2: vĩ độ. Ví dụ, 0.03
    • arg3: kinh độ. Ví dụ, 0.002

    Ví dụ: java StartNotificationClient tel:+1-2225552003 0.03 0.002
  2. Hãy chắc chắn rằng vĩ độ và kinh độ được chuyển giao làm tham số trong vùng lân cận của khung nhìn bản đồ trong bộ mô phỏng.
    Lưu ý: Để có được vĩ độ và kinh độ của một vị trí cụ thể trong bản đồ, kéo bất kỳ biểu tượng nào vào địa điểm cụ thể và các tọa độ của vị trí đó sẽ được hiển thị, như trong Hình 9.
  3. Chuyển đến khung nhìn Map (Bản đồ) của bộ mô phỏng. Chọn số thuê bao của Debbie (tel:+1-2225552003) bằng cách chọn biểu tượng của cô, là một hình ảnh điện thoại di động.
Hình 9. Khung nhìn Map của bộ mô phỏng các dịch vụ Web Viễn thông
Hộp văn bản với biểu tượng hiển thị thông tin của Debbie, các tọa độ

Xem Hình 9 lớn hơn.

Khi nhận được yêu cầu từ Debbie, GeoAlert khởi động Khai báo địa lý (Geographical Notification) trên tài khoản của Debbie. Ứng dụng Java độc lập mà bạn phát triển bắt đầu khai báo địa lý.

Có thể xác minh Khai báo đã khởi động (Notification Started) trong khung nhìn Map của bộ mô phỏng của bộ công cụ, như trong Hình 10.

Lưu ý:
Nếu khu vực khai báo tròn không xuất hiện, hãy nhấn vào biểu tượng điện thoại di động của Debbie.

Hình 10. Thiết lập khai báo cho Debbie
Khung nhìn Map hiển thị vùng khai báo được đặt cho Debbie

Xem Hình 10 lớn hơn.

  1. Chuyển sang khung nhìn Activity của bộ mô phỏng và xác minh rằng hoạt động khai báo đã được tạo ra trong Brown Motors > Debbie.
Hình 11. Khung nhìn Activity hiển thị khai báo được tạo ra cho Debbie
Khung nhìn cho thấy danh sách các thuê bao của Brown Motors

Xem Hình 11 lớn hơn.

  1. Quay về khung nhìn Map.

Bây giờ Debbie đi mua sắm và đi vào khu vực khai báo mà cô ấy muốn được nhắc về khu vực đó khi cô gần nó. Trong bộ công cụ này, bạn có thể mô phỏng sự kiện này bằng cách kéo biểu tượng điện thoại của Debbie vào trong vòng khai báo.

Hình 12. Debbie đi vào khu vực đã định
Khung nhìn Map cho thấy Debbie ở trong vùng khai báo

Xem Hình 12 lớn hơn.

Sau khi Debbie đi vào vòng tròn khai báo, dịch vụ web Định vị thiết bị đầu cuối kích hoạt một phương thức locationNotification. Ứng dụng GeoAlert Catcher mà bạn đã phát triển trước đó (TLCatcherWebEAR) bắt giữ khai báo được kích hoạt, vì vậy Catcher sẽ gửi một tin nhắn SMS tới Debbie để nhắc. Lưu ý rằng bạn gọi hoạt động sendSMS trong phương thức locationNotification của Catcher.

  1. Quay về khung nhìn Activity và xác minh xem Debbie đã nhận được lời nhắc SMS chưa.
Hình 13. Lời nhắc được gửi đến Debbie
Khung nhìn Activity hiển thị SMS

Xem Hình 13 lớn hơn.

Trao đổi Dự án (Project Interchange) với mã mẫu
Đảm bảo rằng đường dẫn xây dựng của dự án StartNotificationClient có một tài liệu tham khảo đến tệp com.ibm.ws.webservices.thinclient_7.0.0.jar có sẵn trong RAD75Home\runtimes\base_v7\runtimes.

Tải về

Mô tảTênKích thước
Source code for Scenario 1TWSS_Usage_Sample_PI.zip115KB

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Rational
ArticleID=825496
ArticleTitle=Sử dụng các tính năng cốt lõi của mạng viễn thông để phát triển các ứng dụng web: Phần 1. Phương thức các dịch vụ Web
publish-date=07122012