移动对等消息融合:从SMS到IM的探索
立即解锁
发布时间: 2025-08-18 00:30:05 阅读量: 1 订阅数: 3 

### 移动对等消息融合:从SMS到IM的探索
#### 1. WMA参考实现
要运行WMATester,就需要实现WMA。SMS无线消息客户端依赖底层设备和移动网络基础设施来收发消息,因此WMA的每个实现都与设备和网络相关。Sun为PC模拟器开发了WMA参考实现(RI),这样就可以独立于实际手机或实时网络来开发WMA应用。目前,WMA RI可与MIDP模拟器配合使用,MIDP是针对移动电话设备的J2ME平台,未来还会有适用于其他J2ME平台(如PersonalJava、CDC)的WMA实现。
##### 1.1 运行时属性
RI提供了一种通过主机PC的TCP/IP端口模拟SMS的传输机制。所有SMS消息都作为数据报消息路由到RI运行时属性指定的主机端口。这些属性可以在内部配置文件中指定,也可以通过命令行指定。以下是命令行属性的使用示例:
```
emulator -classpath MyApp.jar \
-Xdescriptor:MyApp.jad \
-Dcom.sun.midp.io.enable_extra_protocols=true \
-Dcom.sun.midp.io.j2me.sms.Impl=com.sun.midp.io.j2me.sms.DatagramImpl \
-Dcom.sun.midp.io.j2me.sms.DatagramHost=localhost \
-Dcom.sun.midp.io.j2me.sms.DatagramPortIn=54321 \
-Dcom.sun.midp.io.j2me.sms.DatagramPortOut=12345 \
-Dcom.sun.midp.io.j2me.sms.permission.receive=true \
-Dcom.sun.midp.io.j2me.sms.permission.send=true \
-Dcom.sun.midp.io.j2me.cbs.permission.receive=true \
-Djavax.microedition.io.Connector.sms=true \
-Djavax.microedition.io.Connector.cbs=true \
-Dcom.sun.midp.io.j2me.sms.CBSPort=24680 \
-Dwireless.messaging.sms.smsc=+17815511212
```
上述命令假设WMA RI类已经预先验证并打包在MyApp.jar中。下面详细分析每个参数:
| 参数 | 说明 |
| ---- | ---- |
| com.sun.midp.io.enable_extra_protocols | 启用数据报协议,MIDP 1.0 RI默认只允许HTTP GCF连接,该属性是必需的 |
| com.sun.midp.io.j2me.sms.Impl | 指定为WMA RI中的SMS消息提供底层网络传输的类 |
| com.sun.midp.io.j2me.sms.Datagram* | 指定模拟SMS的主机和数据报端口。在示例中,所有外发SMS消息都会发送到本地主机的12345数据报端口,从54321端口接收的所有消息都会被WMA RI捕获为传入SMS消息 |
| com.sun.midp.io.j2me.sms.permission.* 和 javax.microedition.io.Connector.* | 指定访问SMS和CBS资源的默认权限,供MIDP 2.0安全管理器使用 |
| com.sun.midp.io.j2me.sms.CBSPort | 指定接收CBS消息的SMS端口 |
| wireless.messaging.sms.smsc | 指定SMS服务中心电话号码,在PC模拟器中此属性无关紧要 |
##### 1.2 J2ME WTK v2.0中的WMA控制台
Sun的J2ME无线工具包(J2ME WTK)v2.0提供了一个基于GUI的控制台,用于为每个模拟手机配置WMA设置。
##### 1.3 架构
WMA RI采用多层架构,将其移植到实际设备上使用专有SMS堆栈相对简单。底层传输层是Java本地方法对设备本地SMS库的薄包装,实现类层将这些本地方法聚合为WMA接口的具体实现类。
```mermaid
graph LR
A[无线消息API] --> B[API规范中定义的公共接口的实现类]
B --> C[特定协议的底层传输类]
C --> D[设备相关]
D --> E[MIDlet]
```
#### 2. 后端的SMS
WMA使移动Java对等方能够通过SMS相互通信,SMS还常用于将企业信息从后端服务器发送给移动用户。在一些国家,SMS已成为移动商务服务和小型网站的主要微支付机制,基于SMS的交易可以追溯到单个手机和用户,无线运营商可以作为中间人提供用户认证和计费服务。
要在服务器计算机上处理SMS,可以开发使用调制解调器或TCP/IP连接与无线运营商的SMS中心(SMSC)交互的J2SE/J2EE WMA实现。目前虽然“J2SE通用连接框架可选包”(JSR 197)为J2SE提供了GCF实现,允许将WMA移植到J2ME之外的Java平台,但与企业服务器兼容的WMA实现尚未问世。下面介绍两种已面向企业市场的Java SMS工具。
##### 2.1 jSMS API
Object XP的jSMS(v1.6)包提供了一个易于使用的Java SMS API,它运行在J2SE计算机(标准PC)上。PC要收发SMS消息,可通过以下两种技术连接到通用移动电话网络:
- **通过串口连接GSM手机**:jSMS将外发SMS消息传递给手机,由手机发送出去。当有新的SMS消息到来时,手机通过串口发送信号,监控的jSMS服务器线程接收该消息。这种模式可以快速将SMS功能集成到后端应用中。
- **通过调制解调器、ISDN线路或TCP/IP连接到SMSC**:如果在SMSC有账户,运行在PC上的jSMS应用可以连接到该SMSC,此模式适用于处理大量消息。
##### 2.2 Simplewire Java SMS SDK
Simplewire是领先的无线消息解决方案提
0
0
复制全文
相关推荐









