#
| 1. J2EE (Java 2 Enterprise Edition)架構 |
近年來,J2EE平台在企業內資訊應用系統的應用上,佔有越來越重要的地位,今天的內容,將先就J2EE的概念提供說明,而實作上的範例,我們將在後續的主題陸續提出討論。
J2EE平台提供了能支援多層(Multi-Tier)企業應用程式的技術規格,這些技術主要分為三部份,分別是元件(Component),服務(Service)及通訊(Communication)。
元件技術讓程式開發者能夠遵循標準方式建立可重用的元件,相同的企業邏輯可因此運用在不同的應用程式內。在這些元件中,可以透過標準化的API使用執行環境提供的服務以及準備好的資源,比如資料庫、名稱及目錄服務(Naming and Directory)、訊息服務(Messaging Service),並可使用交易(Transaction)管理等,這樣一來,也簡化了程式開發的複雜性。在多層架構下,各層間的通訊在J2EE中也提供解決方法。以下將針對元件及常見服務,提供介紹。
J2EE 的大略架構如下圖:
Client端如為Web Browser,則須穿過Web Container,透過JSP及Servlet呼叫EJB的方法(Method),以存取後端資料。如Client為使用Swing撰寫之Application,則不須經過Web Container,而是直接呼叫EJB提供的方法。
EJB(Enterprise JavaBeans)可看成是一組API的定義,它定義了的EJB開發及部署(Deploy)的方法以及架構。EJB具有架構上的延展性、可定義對交易的反應,而且能設定對不同使用者的存取控制。由於EJB Container提供了Networking, Transaction, Security及Bean Instance Pooling等Logic,因此EJB在EJB Container內執行,可以不須煩惱網路等問題,且可使用EJB Container已經準備好的服務。EJB分為三種,分述如下。
2.1. Session Bean
Session Bean通常在一個Client與EJB的一個Session期間存在,但是真實物件的生命週期是由EJB Container控制。一般的應用是將商業邏輯拆解成一個一個方法(Method),再將這些方法在Session Bean中實作,讓EJB Client呼叫使用。Session Bean又分為Stateful及Stateless,而Stateless Session Bean能支援同時多人使用,除非一定要儲存狀態於Session Bean內,否則建議使用Stateless Session Bean。
2.2. Entity Bean
Entity Bean是表達資料儲存內容的EJB,雖然Entity Bean目前Persistence作法以將資料存放在Database為主,但不表示僅能使用關聯式資料庫儲存。就實務上來看,在資料查詢所須的SQL Statement較複雜的情況下,則不建議使用Entity Bean,此時直接使用JDBC存取資料庫會是比較方便的作法。
2.3. MDB(Message-driven Bean)
MDB顧名思義是由Message驅動的EJB,提供J2EE平台對非同步訊息(Asynchronized Messages)的處理能力。目前MDB僅能處理透過JMS(Java Message Service)傳遞的Message,其運作原理是實作一個onMessage方法,這樣當JMS內有Message要交由MDB處理時,會由EJB Container從Pool中選一個MDB出來,接著呼叫它的onMessage方法。
接下來介紹一些常用的J2EE的API,這些服務執行在J2EE Server內,可在Web Container及EJB Containaer內使用。
3.1. JDBC
JDBC (Java DataBase Connectivity)主要提供連結至Data Source的方式,Data Source不只是Database,還包括檔案。
JDBC Driver 主要的工作有三項:
a. 建立和Data Source之間的Connection。
b. 送出相關的SQL Statement。
c. 將結果傳回。
JDBC除了可以送出一般的SQL Statement之外,也可以呼叫寫好在Database裡的Stored Procedure。
由於各種Database的連結方式可能都不同,使用JDBC的好處是,不須要自己去寫存取 Database的相關程式,只要使用DBC的API,搭配相關的Driver,就可以讓程式存取各種不同的Database了。
目前最新版的JDBC 規格是 4.0,但是,在使用JDBC的相關功能之前,要先確認所使用的JDBC Driver支援到哪一個版本。
JDBC最新的一個Implement叫做RowSet Implementation Specification,是就JDBC原本提供的RowSet再做更進一步的強化。這個部份將會被納入J2SDK1.5中。
3.2. Servlet
Servlet是用來處理Request和Response的一些Class,主要是處理HTTP Protocol。它的Package主要有javax.servlet和javax.servlet.http。
在最新的Servlet 2.3 規格裡,新增了一個叫做「Filter」的功能,Filter的作用是在Request送出之後、以及Response接到之前,再做一個判斷篩選的動作。這個Filter最常用在Reuse原本的程式的時候,為了確保原本的程式結構不被修改,但又須要加上一些新的設定時,就可以使用Filter去做處理,Filter所做的事情也都可以被Log下來。
3.3. JSP
JSP的全名是JavaServer Pages,算是Servlet技術的延伸,可以使用HTML或是XML。JSP提供了一個Create Web Content的簡便方式,在搭配JSTL(JavaServer Pages Standard Tag Library)使用的時候,由於JSTL提供了一些很簡便的Tag,所以在程式的撰寫和維護上都會容易許多。目前JSP 規格的最新版本是2.0。
早期在還沒有JSP的時候,程式和畫面的呈現都會放在Servlet裡,造成維護非常困難,在有JSP之後,可以將程式碼以及畫面切開,在維護上會比全部的東西都放在Servlet裡要方便得多。
3.4. JMS
JMS, Java Message Service, 提供了J2EE Components進行相關的Message的功能。一個JMS的應用程式可以分為以下幾個部份:
a. JMS Clients:是使用JMS API所開發的用來傳送/接收Message的應用程式。
b. Non-JMS Clients:這些應用程式並沒有使用JMS的API,而是使用Message System所提供的API。
c. Messages:定義好的一些用在Clients之間溝通的訊息。
d. JMS Provider:Message System所定義好的,使用JMS來開發的一些功能。
e. Administered Objects:提供給系統管理者方便使用的預先定義好的JMS Objects。
3.5. JNDI
JNDI, Java Naming and Directory Interface,主要是提供Naming和Directory的相關功能,使得應用程式可以更具可攜性(Portable)。應用程式中若使用JNDI相關的API來開發,只要在設定的時候指定JNDI的名稱,就可以存取不同的Directory裡的屬性(Attribute)。JNDI的相關Package有:javax.naming、javax.naming.directory、javax.naming.event、javax.naming.ldap、和javax.naming.spi。
3.6. Transactions
J2EE提供了兩組Transactions相關的規格,分別是JTA(Java Transaction API)和JTS(Java Transaction Services)。
JTA提供了控制Transaction的相關API,程式是去呼叫JTA的API,再由JTA來交給JTS做控制。所提供的Package有javax.transaction和javax.transaction.xa。目前不Support NestedTransactions。在EJB裡,建議使用Bean-managed Transaction,也就是Session Bean或是Message-driven Bean,且在使用的時候,必須先定義目前要用的是JDBC的Transaction或者是JTA的Transaction。
3.7. Web Services
在J2EE的架構中,提供了許多有關Web services的API,這些API都是以XML的語法來定義。
Web Services 相關的API有 JAXP(Java API for XML Processing)、JAXR(Java API for XML Registries)、JAX-RPC(Java API for XML-based RPC)和SAAJ(SOAP with Attachments API for Java)等。
簡單介紹一下這幾個API:
a. JAXP:這組API被定義在javax.xml.parser這個Package裡,這個Package提供了SAX和DOM相關的Parser功能。
b. JAXR:主要是提供存取不同的XML Registry的功能。XML Registry目前最有名的是ebXML和UDDI。
c. SAAJ:主要是依循 SOAP這個標準,提供了Message和Connection的相關功能。
從J2EE推出以來,已經逐漸為企業所熟知,投入J2EE相關技術的資訊從業人員也不斷增加。在J2EE的各項技術中,EJB 是十分值得投資的新技術。
你可能已經知道EJB是Enterprise Java Bean的縮寫,但是可能還不知道EJB的用處和架構。本文的主要目的就是讓讀者先有初步的認識,之後在接下來的各期爪哇藍報中再分別介紹更為入的應用介紹。
EJB從意義上來說,是一種「技術規範」,而不是一種產品,
‧Bean Instance :表示在記憶體中實際產生的物件。一個 Bean Class 可以產生多個 Bean Instance 。Bean Instance 才是真正執行 EJB method 的物件。
‧Container:容器是可提供特定元件(Components)服務的標準執行環境。例如,Web Container必須提供必要的程序(呼叫特定頁面、處理程式等),回應Client端的需求,並將處理結果傳回Client端。
‧EJB Container: 是EJB 標準執行環境,所有 EJB 的產生,或是消滅,或是執行等等,均透過 EJB Container 來處理。當使用者呼叫某個EJB 的時候,實際上也是透過 EJB Container 來執行。
‧Deploy:一個寫好的 EJB 並不能單獨執行,他必須被「放」到EJB Container 之後才能夠執行,而這個動作就是Deploy。Deploy通常只是執行某個動作、按鈕,之後的動作就交由Application Server自行處理。
‧EJB Client:負責使用者介面呈現的元件,可能是JSP/Servlet,或者是一個Standalone Java Application。
‧Message Queue:在程式中要傳達的資料片斷稱為Message,存在於記憶體中,而Message都可經由Message Queue提供給不同的Process進行處理。Message Queue儲存了每個的Message的位址(Address)、型態(Type)、大小(size)、指到下一個Message的指標(pointer)等,它的資料結構基本上是一個Linked List。
EJB 依照特性的不同,區分為幾種。
‧Session Bean:主要的目的是讓程式開發者將邏輯層抽離,這些「邏輯」通常就是一個應用程式中的Business Logic,在整個系統開發中佔有相當重要的一部份。系統開發者可以多加利用Session Bean,將複雜的邏輯放在 Session Bean 的Method中。
| |
‧ Stateful Session Bean:可以記錄呼叫者的狀態,因此通常來說,一個使用者會有一個相對應的 Stateful Session Bean 的實體(Instance)。
‧Stateless Session Bean:也是邏輯元件,但是他卻不負責記錄使用者狀態,也就是說當使用者呼叫 Stateless Session Bean 的時候,EJB Container 並不會找尋特定的 Stateless Session Bean 的實體來執行這個 method。 |
‧Entity Bean:它的角色是主要是資料元件,主要目的在於提供資料,讓系統開發人員直接將Entity Bean 當作程式中所要用到的資料;至於 Entity Bean如何存取一個Relational Databse或LDAP,就可以作為另外一項獨立的事情。
| |
‧Bean-Managed Persistence(BMP):由名稱上就可以直接了解到BMP是由Bean自行維護資料的一致。`而Bean從資料庫取得資料後,BMP 中需要自行宣告欄位來存放這些資料,相關的 JDBC 語法等程式,也都須要自行撰寫。適用於開發人員想要完全控制 BMP 的資料存取行為時。
‧ Container-Managed Persistence(CMP):相對於BMP,CMP是由 EJB Container 負責維護資料。撰寫 CMP 的程式設計師並不需要撰寫大多數的 JDBC 語法,通常只需要撰寫Deployment Description,就可以產生 CMP ;實際上的程式碼是 EJB Container在Deploy EJB 的時候所產生。CMP似乎有助於快速開發系統(大部份的工作都交給EJB Container了嘛),但是須要配合使用支援 CMP 的Application Server,而截至目前為止,每一家不同Application Server對CMP 的支援程度也不大相同。 |
‧ Message Driven Bean:主要的目的在於反應 Message Queue 中的事件,當 Message Queue 中有訊息傳入時,Message Driven Bean 可以被觸發,做出對應的反應;所以Message Driven Bean可以說是主動反應,而不是「呼叫某個Method」這樣的方式被動觸發。
其中 Session Bean 與Entity Bean在 EJB 規格 1.x 的時候就已經存在了,而 Message Driven Bean 則出現在 EJB 2.0 的規格中。
最近在学习oscache的相关内容,写点东西作为巩固
如果在jsp中使用如下标签
<cache:cache key="foobar" scope="session">
some jsp content
</cache:cache>
那么这中间的一段jsp代码将会以key="foobar"缓存在session中,任何其他页面中使用这个key
的cache标签都能共享这段存在缓存中的执行结果
考虑一个需求,一个页面是有许多个不同的jsp文件拼出来的
可能在页首有随机的广告,登录用户的信息,系统的即时信息,固定的目录信息等等
这其中可以考虑将固定的目录信息放入缓存中,而其他动态信息则即时刷新
再进一步考虑 有时候页面之间的信息是关联的,只有当其中一条信息的内容变化了才需要去刷新
对于这种需求就可以考虑在<cache:cache/>标签中配置group属性,将不同的具有关联关系的cache内容
分组,这样oscache会自动的帮你检查该组缓存内容的变化情况,如果有任何一子成员组的内容变化了
则会执行刷新,这样就可以在页面实现数据的动态同步
代码如下:(来源oscache:groupTest.jsp )
<%@ page import="java.util.*" %>
<%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>
<head>
<title>Test Page</title>
<style type="text/css">
body {font-family: Arial, Verdana, Geneva, Helvetica, sans-serif}
</style>
</head>
<body>
<a href="<%= request.getContextPath() %>/">Back to index</a><p>
<hr>Flushing 'group2'
<hr>
<cache:flush group='group2' scope='application'/>
<hr>
<cache:cache key='test1' groups='group1,group2' duration='5s'>
<b>Cache Time</b>: <%= (new Date()).getTime() %><br>
This is some cache content test1 that is in 'group1' and 'group2'. Normally it would refresh if it
was more than 5 seconds old, however the <cache:flush group='group2' scope='application'>
tag causes this entry to be flushed on every page refresh.<br>
</cache:cache>
<hr>
这里有两个cache分组group1和group2,将group2设置为每次都执行刷新,所以test1为key的cache每次刷新页面内容都是重新执行过的
<cache:cache key='test2' groups='group1' duration='5s'>
<b>Cache Time</b>: <%= (new Date()).getTime() %><br>
This is some cache content test2 that is in 'group1' (refreshes if more than 5 seconds old)<br>
</cache:cache>
<hr>
而test2只有当间隔时间超过5秒才会更新内容
<cache:cache key='test3' duration='20s'>
<b>Cache Time</b>: <%= (new Date()).getTime() %><br>
This is some cache content test3 that is in 'group1' and 'group2'. The groups are added using the <cache:addgroup /> tag.<br>
<cache:addgroup group='group1'/>
<cache:addgroup group='group2'/>
</cache:cache>
<hr>
<cache:cache key='test4' duration='20s'>
<b>Cache Time</b>: <%= (new Date()).getTime() %><br>
This is some cache content test4 that is in 'group1' and 'group2'. The groups are added using the <cache:addgroups /> tag.<br>
<cache:addgroups groups='group1,group2'/>
</cache:cache>
<hr>
</body>
</html>
<cache:addgroup group='{you_group}'/>可以将所在的cache加入存在的group中
摘要: 导言
在开发企业级业务应用(企业规模)时,客户往往要求在不修改系统源代码的情况下对应用对象模型的扩展性提供支持。利用可扩展域模型可以实现新功能的开发,而不需要额外的精力和成本
应用的使用周期将被延长;
外部因素改变时,系统工作流也可以随之被修改;
已经被部署的应用可以被“设定”,使其符合企业的特定情况。
完成以上功能...
阅读全文
摘要: STRUTS-MENU简介:STRUTS-MENU支持静态和动态菜单,数据来源和显示方式分开,菜单文字国际化,权限。
<menu:useMenuDisplayer name="Velocity" config="/framework/res/menucomp/templates/xtree.html" bundle="org.apache.stru...
阅读全文
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

建立一个数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://192.168.0.6:1433</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value></value>
</property>
</bean>

建立会话工厂类,这个类使用spring专门为hibernate3提供LocalSessionFactoryBean
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" /> --引用上面的数据源
</property>
<property name="mappingResources"> --调入映射文档
<list>
<value>com/yourcompany/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties"> --相关设置
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

定义事务管理器,这个也是 spring专门为hibernate3提供的HibernateTransactionManager 事务管理器
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" /> --引用会话工厂类
</property>
</bean>


定义实体DAO
<bean id="userDAO" class="com.yourcompany.UserDAOImp">
<property name="sessionFactory">
<ref local="sessionFactory" />--引用会话工厂类
</property>
</bean>

为上面的实体DAO定义一个代理(proxy)类,这是spring为解决事务问题而提供TransactionProxyFactoryBean动态事务代理类
<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" /> --指定事务管理器(需要是spring专用的)
</property>
<property name="target"> --目标实体DAO类
<ref local="userDAO" />
</property>
<property name="transactionAttributes"> --定义要使用事务的方法
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop> --所有insert开头的方法都使用事务,出错要回滚
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> --所有get开头的方法都使用只读事务
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>--所有ist开头的方法都使用只读事务
</props>
</property>
</bean>


为 path="/login" 的struts action 定义实际的action类,该action 已经进行 type="org.springframework.web.struts.DelegatingActionProxy"设置
<bean name="/login" class="com.yourcompany.struts.action.LoginAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" /> --注意,这里指定的userDAO是上面定义的代理类
</property>
</bean>
</beans>
小心「RFID 智能型陈列货架」就在你身边!
还有什么比自己的一举一动受人监控还要恐怖的事呢?现在,日本的 DNP、Tana-X 和SEARS(不是美国的那个Sears喔!)正在研发一种智能型陈列货架,可以追踪挂着RFID 标签的商品,进而分析消费者的行为模式,像是:商品的「访客率」及购买率,消费者的「平均考虑时间」及「同次购买物品」(比方说消费者可能会同时购买 PSP和UMD光盘),当消费者拿起商品扫进店内的 POP 系统,查询产品的相关信息时,系统背后的营销人员也在悄悄收集相关信息,进而获得所需的营销信息。
目前我们还不太确定今年十二月圣诞节采购旺季时,哪里的消费者会被「试用」,不过建议大家在逛街的同时,还是多回头看看,小心「RFID 智能型陈列货架」就在你身边。
IBM 发布标签箝技术,让 RFID 可靠一点点...RFID 无线辨识系统的数据安全,实在是让人冷汗直流。特别是在护照及信用卡方面,已经传出了相当多的问题之后,让人必须快点找到应对的方法。而咱们的蓝色巨人,不玩笔电很久的 IBM 公司,近来则是在不改变 RFID 运作的方法之下,改进了其安全性上的问题。
利用这个叫做标签箝的方式(clipped tag),将天线的接收讯号的范围缩小到只有短短的几吋之内,将 RFID 的读取限制在一个很小的范围,迫使有心人必须非常接近相关的卡片、卷标,才能有效的读取并窃取数据,试想,如果有人故意贴在你身上拿个扫描装置来探测你,你会不反击吗?
那这项技术广泛应用要等多久呢?一年?不用!一个月?不用!根据 InfoWorld,再过几天,他就会开始在市面上使用(特定区域、对象),而该杂志也专访了加拿大一位专家 Ann Cavoukian 博士,请教她对于这项技术的看法,她则表示,这项技术解决了相当多让人头痛的问题,进而让 RFID 技术能让消费者隐私的安全,多上了点保护。
虽然这目前只是个折冲的办法,但是只要消费者小心点,重要证件、档案不要落到有心人手里,我们就可以不用担心,没事走在路上,私人资料就被扫走的问题。
IBM 将利用 RFID 技术来防止假药流入市面RFID 无线辨识技术上的应用,算是越来越广泛了,虽然也曾经出了不少问题,但经过一番努力,这项技术,相信还是能为全体民众带来更多的便利及保障。
近来 IBM 则是要将 RFID 应用在药品运送的管控上,让有心人无机可乘。利用瓶身上的 RFID 标签,在经由各个转运站时,工作人员透过相对应的接收装置,将 RFID 里头的信息读入电脑,并上传到药厂,让药厂能够追踪药品在通路期间的转运地点,并且实时更新相关数据,到了中游的通路商、下游的药局手中时,也能利用药厂提供的数据,来作比对,确保没有被掉包之疑虑。
飞利浦推出使用 RFID 技术的植物标本箱 飞利浦公司又将触角伸向另一项前无古人的新科技-植物标本箱-运用RFID(无线射频辨识技术)的植物温室。这个植物温室能够侦测你种植在它贴了标签的花盆里植物的品种,然后针对该品种制造完美的成长环境,这样你就可以很简便地在家栽种新鲜荷兰芹、鼠尾草、迷迭香和百里香等调味植物,免除了出门去市集或是有机食物专卖超市购物的麻烦。
将行李置入 RFID 标签,从此时无走失之虑我们想有一天,这个世界应该会布满 RFID 标签, 正要出门旅行的您,手上的行李相当不能例外。位在拉斯维加司的马卡伦国际机场(McCarran International Airport),在他们三条航线中,设立了一个系统,为您家的行李装上 RFID 标签,透过单音道的扫射,可以追踪标签自动地将您的行李送到正确的目的地,停留在原地等待进一步的扫射。官方声称这套系统将有99.5%的准确性,所以朋友们,赌上一把的时候,别忘了顺别跟上帝祷告一下,您的行李不在0.5%的误差范围内。
RFID 帮消费者选择化妆用品日本 Seijo 药妆店贴心的为消费者推出了一项化妆品试用服务,今后消费者就不用将摆在架上不知几个人试用过的化妆品抹在脸上试用,可以改用一款由 NTT 设计的 RFID 仿真化妆软件来看看心仪的化妆品是否适合自己。
消费者只需要坐在电脑屏幕前,由网络摄影机帮他拍张脸部正面照,照片出现在屏幕后,消费者就可以开始把自己想要试用的化妆品用电脑内置的 RFID 扫描仪读取,然后软件会根据扫描进来的化妆品项目自动判断应该涂抹在脸部的哪个部位,消费者便可由屏幕上出现的照片来判断此化妆品的颜色或质感是否适合自己或符合自己所需。
此软件还会根据消费者选用的产品再推荐其它能够相互搭配的色彩,所有配色和试用的动作完成后,消费者还可以把屏幕上完妆后的照片印出来,做为日后购物的参考。
这个所有程序都由电脑完成的化妆品试用软件,保证比传统专柜一对一试用来得迅速方便,造福的除了女性外,应该还有常需要陪另一半逛公司,并在一旁苦等的男性朋友吧。
确保清酒瓷具组安全的 RFID 标签像这样顶级清酒瓷器组,如果不能在恒温底下保存,可能本身的质量会受影响,尤其是在长途运送的过程,更是苦煞制造商。
于是NTT和数家瓷器公司一同合作,利用监测程序来侦测贴在瓷器上具温度传感器的RFID卷标,并让运送的卡车上装载感应器,实时将标签的感应值藉由3G来传送至总部,如果有任何异状,可以实时反应(如果司机想趁机开箱行窃,是逃不过感应器法眼的!)。
当运送到买家手上,就可以调阅其温度记录,看看是否被动手脚。看来这对于其它的高档货而言,可能会是的不错的防盗措施!
美国将在八月正式对一般民众发行 RFID 护照经过了各方角力争议,最终美国还是会在八月对一般民众发行 RFID 护照 ePassport(先前已经让外交人员使用。)。而新的带有 RFID 标签的护照,里头将会包含姓名、地址、国籍、相片、数字化的指纹文件等个人相关资料。
而先前所担心的防伪、资料外泄等问题,美国政府仍然十分自信,表示他们已经做好万全的准备。不过自从荷兰发行的 RFID 护照遭破解、窃取数据后,人们就开始对 RFID 护照的可靠与否感到怀疑。而这项科技,最终将是会便利机场的安检、节省大家的时间,或是让科技罪犯更容易的侵犯他人隐私,大家可以好好观察后续的发展。
VoIP 和 RFID High 翻日本试衣间爱逛街的女生要注意啰,日本三越百货最近引进一个新系统,让消费者在试衣间时,可透过无线辨识系统 (RFID) 先将衣服上的吊牌扫入,然后使用网络语音电话 (VoIP) 查看目前店内的库存,并通知店员展示其它所需商品。
这个系统利用三越百货本身的销售端管理系统 (Point of Sale System),可实时掌控店内的库存,配合使用 Cisco 的网络电话,整个安装成本只需美金 700~800元,相较之下,成本高达美金 20,000~25,000 的触碰式银幕型导览器 (touchscreen kiosk),实在贵多了。
当衣服被扫入辨识系统之后,可供选择的尺寸、颜色及其它类似款式的服饰会显示在电话上的触碰式银幕,消费者拿起话机就可与店员通话,这可比在试衣间扯着嗓子喊着自己所需的尺寸低调多了。
系统供货商 Litescape 宣称,目前已向许多美国零售商(Abercrombie、HomeDepot、Gap、Virgin Mega…等)推销这个系统,不知何时才轮到中国?
韩国公司 Rocket 发展「纸电池」,主要应用在 RFID 等方面虽然韩国公司 Rocket 开发的这个产品被自称为「纸电池」,但似乎应该只是指它和纸一样薄(像 NEC 一年前的产品一样),而不是真的用纸做的。在技术的部份我们是一个字儿也看不懂,不过大致上就是「电池科技」+「薄膜科技」产生一个像纸一样薄、无毒、而且不会着火也不会爆炸(重要!)的新电池之类的吧。
Rocket 估计主要的应用应该是在 RFID、智能卡和「化妆品、药品输送系统」等需要迷你电池的地方。奇怪的是,Rocket 还提出了「牙齿美白、抗老化、去皱纹」的应用,我们实在猜不出电击牙齿是怎么能让它变白?总之,让我们期待看看它是如何神奇吧!
http://cn.engadget.com/search/?q=rfid