老狗吠程式

  點部落 :: Home :: Syndication :: 我的收藏 ::  :: Login
  文章數 - 32, 回應數 - 84, 引用數 - 0

每月文章


這次的作品是從事 MS Windows CE 平台應用軟體開發十年來,  個人最滿意的原創.
或許是太不實用了吧?!  也或許有太多自己不知道的盲點...
但它卻讓我看到一條未來不同的路...
在此留下紀錄以茲紀念月光下埋首熬夜的日子

 

Demo 影片: www.imobilemind.com/imAgent/

軟體下載(整理中)

 

 

 

1、研發思路

 

 

根據統計資料顯示,全球手機市場可分為兩大部分:一是占有率約為30%,可上網、可安裝第三方軟體的Smartphone(如:Windows Mobile、Symbian、Android、iPhone等);而其餘的70%為不可上網、不能隨意安裝卸載應用軟體的Feature Phone

image

隨著科技的進步,Smartphone的運算能力越來越強,但其大部分的時間皆是處於待機、沒有運行應用軟體的狀態,這無疑是白白浪費了一台要價四、五百美元以上的硬體資源。另一方面,Feature Phone則因為沒有聯網功能,除了Voice通話之外,無法利用『Data』與外界溝通,在使用上常常感到功能不足。

因此,針對上述問題,我們提出一個新的想法:將Smartphone視為一台小Server,而Feature Phone則視為Client端;Smartphone提供運算資源與服務給Feature Phone使用。至於兩者之間的資料傳輸,則利用每隻手機皆具有的SMS簡訊功能來當作媒介。我們希望如此一來,能讓Smartphone的運算資源可以盡到最大的利用價值;同時也可以幫助持有Feature Phone的使用者,能做到更多的事情。

image

SMS (Short Messaging Service) 簡訊服務主要的目的係可以在手機間傳送簡短的文字訊息。對於某些使用者族群(如學生、年輕人)而言,使用簡訊的頻率有時甚至大於打電話,可謂是手機最重要的應用。雖然使用SMS有成本上的考量及不能保證即時傳遞的缺點,但卻能在不依賴任何第三方伺服器的條件下,就可以在Feature Phone及Smartphone間達成資料訊息溝通的要求。

目前主流看法認為:未來手機將會普遍採用雲端運算(Cloud Computing),就是將程式儲存於伺服器端,並由伺服器負責執行後,經由網路把運算結果傳回手機。如果把這種方式稱為『以下連上』,我們更希望可以看到由眾多行動裝置相互連結的端對端『橫向發展』。

我們進一步將此種由Smartphone作為Server、提供服務的概念擴展為兩類:一是由使用者主動在Feature Phone上發出SMS去使用Smartphone的被動服務【F -> S;另一類則是在一台Smartphone上由應用軟體自動傳輸SMS來聯繫另外一台Smartphone上的應用服務【S <-> S】。

根據上述的分類,我們提出以下幾種應用:
 

項目

服務類別

說明

SMS Mail

F -> S

1.由Feature Phone 發出SMS即能將內容傳送至特定的Email信箱

2.在PC、PDA上發出Email 即能轉換為SMS傳送至Feature Phone

SMS Remote Control

F -> S

利用Feature Phone發出SMS傳送控制字串至Smartphone,即能在背景控制Smartphone並可利用SMS或Email傳回相關訊息。例如:傳回使用者資料、IP Address及通訊錄內容等。

SMS Survey

F -> S

1.在Smartphone上利用提供的工具發送大量的問卷簡訊

2.在Smartphone上利用工具製作自動回覆簡訊的格式

3. Feature Phone的使用者可利用SMS回覆問卷內容

4.於Smartphone可以瀏覽問卷回覆狀況、並自動統計、輸出報表

SMS Home Page

F -> S

此功能的主要目的是在Windows Mobile上製作樹狀結構般的目錄選單,其中目錄選項可分為簡單的訊息回覆、巢狀子目錄、RSS自動擷取產生項目及執行其他函數的功能。Feature Phone的使用者可利用SMS在樹狀目錄中瀏覽,並取得相關訊息。

SMS Location

F - > S

S <-> S

1. Feature Phone可利用SMS傳送『目前地址』即能在Smartphone上用 Map 秀出

2.若兩端皆為Smartphone並具備GPS,即能定時利用SMS相互追蹤

SMS My Status

F - > S

S <-> S

1. Feature Phone的使用者可利用SMS查詢Smartphone上目前及未來的行事曆

2. 若兩端皆為Smartphone, 則可利用SMS邀約對方並自動設定行事曆

 

然而,在實作此系統的中間階段,我們發現一個問題:這些應用服務皆是一個個小小的程式,所以必須要有某種方式來統整它們。因此,我們採取動態Plug In 的架構來建構系統,並利用一主程式來Host這些服務。

image

 

 

更進一步的發想: 目前,幾乎所有人都在使用行動電話;可以預估在未來,或許會有很多人沒有PC、Notebook,但他們會持有一台Smartphone來當成個人的資訊處理工具、行動化的秘書。這時候如果在Smartphone上有個代理人 【Agent】程式,則能自動化處理掉許多繁文褥節、瑣碎的事。Agent的主要功能是與外界溝通,然後提供服務給其他人。當下有許多人使用即時通訊軟體(Instant Messenger,例如:Windows Live Messenger)來相互溝通;如果我們可以提供一個在Smartphone上能自動回覆使用者IM詢問的Agent,這或許可以當作實現『Smartphone上泛用Agent』的第一步。

因此,我們實作了一個以流程為基礎的IM對話引擎;除了可以提供一般簡單對話功能之外,還能同時監控多位不同使用者的即時對話狀況。由於對話的過程是一問一答的形式,所以之前所提到做成Plug In架構的那些SMS 服務小程式剛好成為此Agent可以提供的Service!

image

 

圖1-4 Agent Flow Designer

image

 

綜合以上所言:我們提供了一個 Windows Mobile上imAgent的小平台. Feature Phone的使用者可以透過SMS來使用Smartphone所提供的服務;PC或PDA的用戶可以透過MSN Messenger來存取WM手機上的功能。藉由可擴充的架構,能將不同的Plug In 加入系統。

 

2、系統安裝需求

 

硬體要求:須具備支援下列任何一種作業系統之智慧型手機

l Microsoft Windows Mobile® 5.0 for Pocket PC

l Microsoft Windows Mobile 6.0 Professional(or later)

軟體要求:須事先安裝檔案:

l Microsoft ActiveSync® 4.0(or later)

l Microsoft .NET Compact Framework 3.5

l Microsoft SQL Server Compact Edition 3.5 (SQL Server CE)

 

 

3、簡易操作手冊

3-1 主畫面 [影片]

打開imAgent主程式之後,即可看見主畫面包含3個頁籤,分別為【Services】、【IM】與【SMS

image image image

Services】頁籤主要列出目前系統所提供的服務,點選列表中的項目即可進入個別Plug in功能畫面。在列表項目右側的小圖示 表示目前此項目關閉接受來源資料,按下此按鈕,則會接受來源資料。而 表示此項目正在接受外界傳來之訊息,按下此按鈕,則會關閉接受來源資料。 則表示個別項目有異常消息顯示,點選按鈕會秀出相關訊息。

SMS】頁籤則提供以對話的形式瀏覽此手機SMS歷史傳輸資料;使用者亦可利用此介面來發送SMS:

image

至於【IM】頁籤功能將於之後章節再行介紹。

 

3-2 SMS Mail [影片]

image image

 

1. 由Feature Phone 發出SMS即能將內容傳送至特定的Email信箱

格式: email:[email Address] [Content]

例如: email:ren@imobilemind.com This is a test. From SMS!

2. 在PC、PDA上發出Email 即能轉換為SMS傳送至Feature Phone

格式: sms:[phone number] [Content]

例如: sms:0918123456 這是中文測試. 來自Outlook.

 

3-3 SMS Remote Control [影片]

 

本功能係利用Feature Phone發出SMS傳送控制字串至Smartphone,如此一來,即能在遠端控制Smartphone並可利用SMS或email傳回相關訊息。

格式: rc#[command]#[mobile number or email]#password

 

指令command

功能

callback

自動回撥電話

getowner (egetowner)

傳回使用者資料

reset

Soft Reset

alarm

播放預設聲音檔

getinfo

傳回 IMSI 和 IMEI

message

秀出訊息

phonebook (ephonebook)

傳回通訊錄內容

delsim

刪除通訊錄內容

gip

傳回PDA的IP 位置

範例:

rc#go – 利用簡訊傳回使用者訊息, 沒有使用密碼

rc# ephonebook##123 – 利用預設email帳號傳回通訊錄, 以123為密碼

rc# getinfo#0918123456 – 以簡訊傳回IMSI 和 IMEI值至0918123456, 沒有使用密碼

rc# egetowner#tester@host.com#123 – 傳回使用者訊息至tester的email, 以123為密碼

 

3-4 SMS Survey [影片]

 

我們以製作一個SMS樂透投注系統為例:  

1. 首先點選選單【Options】【New / Properties】即出現設定視窗,在輸入欄【Prefix】處填入 lottery

2. 點選【Format】頁籤,依序加入七個 integer 型別的Field:【L1】~【L6】、【Count】,分別表示六個投注號碼及金額

 

imageimageimage

 

3. 點選【Question】頁籤,可以選擇性的群發簡訊給使用者

4. 點選【Reply】頁籤,可以選擇性的用SMS 回傳投注成功消息。並可利用預設的Tag加入投注者的相關資料與隨機認證碼

image image

5. 按下【OK】, 系統即可接受大量SMS投注

6. 之後,可點選選單【Options】【Show Results】和【Options】【Show Results(Chart)】觀看結果

image image image

7. 亦可利用【Options】【Export Data to Excel】輸出報表

image

 

3-5 SMS Home Page [影片]

本功能的主要目的是在Windows Mobile上製作樹狀結構般的目錄選單,其中目錄選項可分為簡單的訊息回覆、巢狀子目錄、RSS自動擷取產生項目及執行其他函數的功能。Feature Phone的使用者可利用SMS在樹狀目錄中瀏覽,並取得相關訊息。

主畫面分為三個頁籤:【Group setting】、【Group Test】和【Session】

image image image

在本功能裡所提到的『Group』是指一些聯絡人的集合,它們彼此共用一個Page檔案。每個聯絡人有各自的使用狀態,不會彼此干擾。系統預設兩個群組:一是『Default』,表示已經存在本機聯絡人裡,但沒有加入其他群組的使用者。另一是『Unknown』群組,表示尚未加入聯絡人清單的陌生人。我們可以按【New Group】新增不同的群組,而後利用【Contacts…】加入成員。

製作Page內容的方式有兩種:一是只有一層選單的Simple Page Designer

image image

另一種是功能完整、Sub Menu可以無限制層級的Standard Page Designer

image image image

image image

製作完成後,可用【Group Test】頁籤模擬外來SMS作測試:

image image image

image image image

 

3-6 SMS Location [影片]

本項目提供以下功能:

1. Feature Phone可利用SMS傳送『目前地址』(如:台北市…)即能在Windows Mobile上用Map秀出

2. 若兩端皆為Windows Mobile手機,並具備GPS,則可定時發送SMS追蹤位置

主畫面為四個頁籤:【Send】、【Map】、【History】和【Geocoder】。在【Send】頁籤中,只要勾選【GPS】選項,就能啟動GPS。點選『Contact』及勾選【Auto Send】即能定時經由SMS傳遞經緯度供另一台裝有本程式的手機追縱位置。【History】頁籤為歷史紀錄,顯示所有接受之經緯度座標,點選項目可以在地圖顯示。

image image image

 

3-7 SMS My Status [影片]

本項目提供使用者下列功能:

1. Feature Phone的使用者可利用SMS查詢Windows Mobile 手機上目前及未來的行事曆

查詢目前狀態

格式:status:now

範例:status:now

查詢行事曆

格式:status:yyyyMMddHHmm

範例:status:200909161525

 

 

2. 若兩端皆為Windows Mobile手機, 則可利用SMS邀約對方並自動設定行事曆

點選【Appointment Over SMS】頁籤,選取欲邀約的行程,系統會帶出填寫邀請對象之視窗。

待傳送後,若對方手機收到此SMS邀約訊息時,則會跳出【Appointment Request】視窗。

若接受邀約,系統會自動將此行程加入對方手機行事曆。

 

 

3-8 Messenger Agent [影片]

本功能的主要目的是在Windows Mobile上提供一個相容於MSN Messenger的對話代理人系統;透過PC上之 Agent Flow Designer (圖1-4) 的協助,設計對話流程。系統畫面包含四個頁籤:【Account】、【Buddy】、【Conversation】及【Misc】。首先,在【Account】裡填入帳號及密碼以便登錄IM伺服器。待登錄成功後,畫面會自動跳到【Buddy】頁籤。使用者可以根據每位好友設定一個預設的Agent File;一旦該好友有任何訊息傳輸進來,系統會立即執行所設定的檔案。

image image

系統會同時監控多位好友的對話過程;詳細的內容,可以在imAgent主畫面裡的【IM】頁籤看到。使用者可在任何時刻點擊【Talk】按鈕以介入對話,此時畫面會轉至【Conversation】頁籤。

image image

您可以輸入文字後點擊【Send】以傳送對話;或是按下【Agent】鈕以控制Agent File的執行。

畫面會出現一個標題為Agent的小對話窗;其中【Reset】是重啟Agent File、而【Pause】是暫停。【New】則可以重新選擇一個Agent File 來自動執行對話。

image image

在【Misc】頁籤有個Agent Session的選項,它的作用是保存當下對話的狀態。一旦雙方停止對話超過該時間,接下來若對方有新訊息傳入,則Agent會重新從頭執行起。


posted on 2009/9/25 16:47 | 1 人收藏 3 人推薦 我要推薦 | 閱讀數 : 1896 | 訂閱

關連文章


Feedback

# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/25 下午 05:38 Levi 回覆
裁判真是沒眼光…XD

# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/25 下午 06:16 sanctuary 回覆

to Levi :
謝謝您的支持, 但不要這樣說裁判啦. 我自己也當過兩三次這種比賽的裁判. :)  比賽本來就有該比賽的目地:  一個作品的好壞不完全在於作品本身, 而是在於什麼人  用什麼角度來看...



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/25 下午 06:29 wysiwug 回覆
如果是一個人獨立完成
程度真的還真不賴

未來很有發展呦
加油

# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/25 下午 07:46 janyeh 回覆

老狗,

到這種境界了,比賽有沒有進決賽,不是挺重要的,重點在能否讓後輩們有效法的標竿啊~

能把腦袋裡的東西實現,就是一種能力!

共勉之~



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/25 下午 09:51 regionbbs 回覆

to janyeh :
我也同意...

況且沒進決賽,也仍然不會把你的身價給抺煞掉啊 :)



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/27 下午 04:37 Sanctuary 回覆
to janyeh :
to regionbbs :

謝謝支持 鼓勵...

我會再找更有意思的挑戰,有機會再與你們討論...

# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/28 上午 09:26 hunterpo 回覆

前輩你好,對於你的大方分享,小弟深感受用無窮,特別是解說詳盡,著實可以提供給我們這些後輩一個良好示範。非常感謝!



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/28 下午 05:06 code6421 回覆

 

功能很好,或許是畫面吧,美工很重要 ^_^

繼續加油!! 程式是看用的人需求的.



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/28 下午 05:33 sanctuary 回覆

to code6421 :

謝謝!  美工一直是最重要的!!  它跟"需求"是一樣重要的!!!

只是此次為什麼會說這是幾年來個人最重要的原創?! 或許說出來也好笑... 當你天天看到網路上很多不同的軟體, iPhone  Android  WM , 長久下來, 會感覺這成千上萬在手機上的軟體"就是這樣"... 所以當想到可以去照顧 "Feature Phone" 時, 把SmartPhone 當成 "Server" 來用, 這就有很多不同的可能性 (因為幾乎沒人這樣做). 既然可以當成 Server, 那配合個人的使用, 一個智慧型的代理人的觀念 (雖然已經有很多學術研究, 但就是沒在市面看到...), 不就是我們往後要追求的目標?!

呵呵, 如果真的要比賽, 是不會拿這樣的東西的比的...



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/28 下午 05:36 lolota 回覆

前輩很強, 要繼續在程式界拉拔一下我們阿..



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/28 下午 05:39 lolota 回覆

看了一下入圍名單, 看起來是以能在市場被下載的量大小來決定. 簡單來講 就是商業的趣味軟體.

可是整個技術面, 前輩你大勝阿, 不過就像黃老大講的, 程式是看人的需求. 前輩繼續加油啦~

 



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/28 下午 05:56 sanctuary 回覆

to lolota :
謝謝!
就是為了再寫十年, 所以才會做這個呀! 說來悲傷吧?! 這十年來看到台灣同業寫Consumer手機軟體的幾乎全倒, 所以才沒碰這東西呀. 或許現在很多"Store"出現, 會是另一個光景.

 



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/9/29 上午 08:36 sanctuary 回覆
微軟也打 feature phones 的主意了 - Microsoft OneApp ( http://www.microsoft.com/oneapp/ )

# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/10/6 上午 01:40 kennyshu 回覆

好文!技術和idea真是沒話說,這種設計幾乎是一種服務的平台(框架)了,真想拿原始碼來學習膜拜啊~



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/10/6 上午 11:33 sanctuary 回覆

to kennyshu :
我也努力學習中...  :)



# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/10/21 下午 07:41 洛克仔 回覆
有點深,看得不是完全懂
不過好像是要提供給Feature phone許多之前沒有的功能!
像講MSN這個就蠻屌的,之前Feature phone是想都不用想,現在可以藉著一台Agent來用SMS傳送!
應該以此概念可以幫Feature phone想更多有趣的事出來!不過有關於
SMS Location的部份,我不太瞭解 ,Feature Phone輸入地址,在Agent上顯現地圖對Feature Phone有什麼幫助嗎??
還是說未來可以加上 打入地址+吃東西 ,就會自動回傳 往南20公尺有牛肉麵店等等~~

Anyway 這是個好梗!!!謝謝分享囉~

# re: 老狗吠程式 - 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2009/10/22 下午 07:39 sanctuary 回覆

to 洛克仔 :
呵呵 ...

SMS Location的部份原本是要作一些 Location-based service 的東西, 但沒有時間作, 我也還沒想清楚... :)

 



# re: 一個沒進Windows Mobile程式比賽決選的作品 - imAgent 2010/1/29 上午 10:58 pou 回覆

這個應用真的太厲害了,我正還在搞不太清楚怎麼寫一個可以常註在手機裡用來自動判斷收到訊息的應用,您真是太厲害了。不知道可否跟您請教怎麼寫常註的部分,讓手機一啟動就自動載入這個程式呢?謝謝謝謝。



回應

標題:
姓名:
電子郵件:(將不會被顯示)
個人網頁:
內容: 

登入後使用進階評論
Please add 8 and 4 and type the answer here: