7)实用的服务:LightRpc
如果单纯的推荐SICS框架本身,那么肯定大家会觉得很勉强:即使SICS的框架再好,如果一切从头开始,那还不如使用现有的资源更合适!
还好,SICS既然是为工程实践服务的,那么多少也会积累一些可以利用的资源,这些应该可以算上SICS奉上的甜点.在这类资源中,最关键的一个--也是最成功的一个--是LightRpc(轻型远程过程访问和对象服务)。
要明确的说明LightRpc到底是什么的确比较难,这里我只打算通过一个例子可以给一些概念性的认识。
//定义一个接口:银行,它可以发卡
//继承:远程对象声明接口
public interface Bank extends SysRemote
{
//为一个指定用户发一张卡
public Card createCard(String userName) throws Exception;
}
//银行卡,继承远程对象声明接口
public interface Card extends SysRemote
{
// 取得卡上的余额
public float getBalance() throws Exception;
//存钱:金额
public void checkin(float howmucn) throws Exception;
//向另一个卡上转帐:对方用户名,金额
public fload payoff(String targetName, float howmuch) throws
Exception;
//增加一个监听器:谁动了我的奶酪?
public void addListener(CardListener listener) throws
Exception;
//删除监听器:谁爱动谁动吧,反正卡上没钱!
public void removeListener(CardListener listener) throws
Exception;
}
//卡的监听器,继承远程回调接口
public interface CardListener extends SysCallback
{
//事件:当卡上有什么事情发生时触发.
//注意:监听器也要抛出异常,因为它是远程监听器!
public void onCardStatus(Card card) throws Excetpion;
}
//就这个例子,大家考虑一下现有的服务器有哪个可以做到下面的样子:
public class Main
{
public static void main(String[] args) throws Exception
{
RpcClientContorl control = new RpcControl(); //创建一个客户端控制器
//创建一个到服务器的链路,地址,端口,采用SSL链路
RpcClientAccess access = control.createAccess("192.168.18.22",
7728, true);
RpcClient
client = access.createClient(null); //创建一个客户端,包括建立一个新的会话
Bank bank
= (Bank)client.lookup("Bank"); //查找银行对象
Card card
= bank.createCard("QYD"); //创建一个卡:要是银行是自己开的就好啦
MyListener listener = new MyListener(); //创建一个监听器,准备监听卡的事件
card.addListener(listener); //注册远程事件监听器
Thread.sleep(1000 * 60 * 3); //等待别人给自己汇款哈
card.removeListener(listener); //删除远程事件监听器
client.close(); //关闭客户端
access.close(); //关闭通讯链路
}
//内部类:卡的监听器
private static class MyListener implements CardListener
{
public
void onCardStatus(Card card) throws Exception
{
System.out.println("card balance=" + card.getBalance());
}
}
}
服务器端的实现我就不写了,反正后面的LightRpc专题中还会讲到。
反正就目前的命题来说,我可以很肯定的告诉大家,除了SICS的LightRpc服务,能实现这样的编程方式的远程对象服务器还没在市面上出现!
相关推荐
因此,需要使用热插拔SICS接口硬盘和SmartStart光盘来引导安装系统。 首先,需要进入阵列卡的配置程序,按F8键进入阵列卡的配置程序。在这里,我们可以看到机器阵列卡的配置程序有四个初始选项:Create Logical ...
1. 设置连接平台SICS,选择GPRS或CSD。 2. 设置应用平台SISS,选择SOCKET、FTP、HTTP、POP或SMTP。 3. 建立TCP连接SISO。 4. 发送或接收数据SISW或SISR。 5. 关闭连接SISC。 例如,以下是一段MC55模块TCP测试的示例...
首先,通过AT指令`AT^SICS=0,conType,GPRS0`来设定连接类型为GPRS模式。这一步是告诉模块我们将使用GPRS网络进行数据传输。 2. **设置用户信息** 在中国移动的网络下,用户名称和密码通常是不必要的,因此可以...
4. **扩展AT命令**: 文档中提到了一系列的AT命令,这些是GSM模块或调制解调器的控制命令。例如,`AT+CSQ`用来查询信号质量,`AT^SICS`用于设置网络连接参数,如接入点名称(APN)等。`AT^SISS`用于设置服务器类型和...
6. **AT^SICS**:关闭Internet服务,断开与远程服务器的连接。 这些指令构成了MC55网络功能的核心,熟练掌握它们是实现高效数据传输的关键。 #### 六、总结 综上所述,MC55 TCP/IP协议栈为工业客户提供了强大的...
硬盘使用的是热插拔SICS接口设计,通过前面板的卡槽连接。 安装过程中,首先需创建阵列。在服务器启动时,当屏幕显示特定信息时,按下F8键进入阵列卡配置程序。该程序提供四个主要选项:创建逻辑驱动器、查看逻辑...
`AT+CMGF=<模式>`,其中`<模式>`为1表示文本模式。这是大多数情况下的选择。 - 接着,设置短信服务中心号码,使用`AT+CSCA="<服务中心号码>"`。 - 在文本模式下,发送短信的命令是`AT+CMGS="<接收方号码>"`,当...
LwIP是一个轻量级的TCP/IP协议栈,最初由瑞典SICS计算机网络实验室的Adam Dunkels开发。其核心设计目标在于减少运行时所需的RAM空间,同时提供完整的TCP功能,这使其非常适合于资源受限的嵌入式系统。LwIP支持多种...
梅特勒托利多电子秤是一款专为工业称重需求设计的高精度电子秤,型号为IND131/331,它通过模块化设计和多样化的结构尺寸,能够适应各种不同的工业环境,并提供精确的称重解决方案。该设备支持多种传感器灵敏度,具备...
其模块化设计允许用户根据具体需求选择不同的接口卡和模块,如FICs(Flexible Interface Cards)、SICs(Smart Interface Cards)、MSCA(Multi-Service Card A)、ESMs(Enhanced Service Modules)、VPM(Voice ...
若选择ASC1串口,在系统启动时会收到`^SYSSTART`指令,指示模块已启动;而ASC0则需通过VDD供电状态判断模块启动情况,随后发送`AT`指令协商波特率,等待3-5秒确认后,模块会回复`OK`,此时可通过`AT+IPR`设置波特率...
该路由器使用MIMs(Modular Interface Modules),而非SICs(Simple Interface Cards)或同时使用SICs和FICs。这表明在设计上,Router5232更侧重于提供高度可扩展和可定制的接口模块,以适应不同的网络连接需求。 #...
1. 硬件设备与网络准备:确保两台服务器通过SICS卡连接到SICS硬盘,并配置两块网卡,分别用于私有网络(Interconnect)和公共网络(Public Network)通信。 2. Windows 2003环境准备:修改服务器的计算机名、管理员...
- **开发者**:该系统由瑞典计算机科学研究所(SICS)网络嵌入式系统组的 Adam Dunkels 开发。 - **目标平台**:Contiki 主要面向内存非常有限的嵌入式系统,例如只有 2KB RAM 和 40KB ROM 的设备。 - **架构特点**...
SICStus Prolog是一种功能强大的逻辑编程语言和环境,由瑞典计算机科学研究院(SICS)开发和维护。它基于Prolog语言,旨在为研究人员、教育工作者以及工业领域的专业人士提供一个高效且灵活的平台。SICStus Prolog...
在1998年至2000年间,台湾雅芳顾客服务中心逐步建成,采用了高荷重、捷运钢材质的建筑结构,以及现代化的WIMS和SICS系统,确保物流作业的高效运行。 WIMS是一种仓库库存管理系统,通过将传统的人工仓储作业转变为...
- **选择秤**:根据需要选择不同的秤台。 - **清零**:清除秤上的物品重量。 - **去皮**:去除容器本身的重量。 - **单位切换**:支持不同重量单位之间的转换。 - **10倍扩展**:扩大显示范围,提高读数准确性。 - *...