Introducing MobaSiF Mobile Simple Framework - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Introducing MobaSiF Mobile Simple Framework

Description:

Introducing MobaSiF Mobile Simple Framework – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 28
Provided by: NOTO7
Category:

less

Transcript and Presenter's Notes

Title: Introducing MobaSiF Mobile Simple Framework


1
Introducing MobaSiF(Mobile Simple Framework)
  • Tokiharu Noto
  • Shuhei Kawasaki
  • noto,kawasaki_at_dena.jp

2
presenter
  • Shuhei Kawasaki
  • author of MobaSiF (today in charge of QA)
  • mobile service creator
  • Moba-oku (mobile auction, http//mbok.jp/)
  • Pocket Affiliate (affiliate ASP, http//smaf.jp/)
  • Mobage-town (mobile game town, portal, SNS,
    http//mbga.jp/)
  • 150? (15 billion) page views / month
  • 1000? (10 million) registered customers
  • director of DeNA Co., Ltd.
  • Tokiharu Noto
  • search technology engineer in DeNA
  • PR of engineering

3
agenda
  • MobaSiFs feature
  • requirement
  • modules for mobile web applications
  • carrier, handset type/ID detector
  • pictograph
  • template engine
  • dispatcher / MVC controller
  • benchmark
  • conclusion

4
what is MobaSiF?
  • Mobile Simple Framework
  • released as an open source project today
  • developed since Nov, 2003
  • ? brand-new architecture (somewhat legacy?)
  • used in
  • Mar, 2004 Moba-oku (mobile auction)
  • Jul, 2004 Pocket Affiliate
  • Jan, 2005 au Auction
  • Jan, 2006 Mobage-town
  • Apr, 2006 Moba-kore (mobile collection)

5
what is MobaSiF?
  • Mobile Simple Framework
  • released as an open source project
  • developed since 2003-11
  • ? brand-new architecture (somewhat legacy?)
  • used in
  • Mar, 2004 Moba-oku (mobile auction)
  • Jul, 2004 Pocket Affiliate
  • Jan, 2005 au Auction
  • Jan, 2006 Mobage-town
  • Apr, 2006 Moba-kore (mobile collection)
  • Moba Simple Framework

6
feature
  • modules commonly used in mobile web applications
  • pictograph converter
  • carrier, handset type / ID detector
  • template engine
  • simple, thin, easy-to-understand, light-weight
  • fast XS implementations for the better
    performance
  • used in large-scale mobile services for a long
    time

7
requirement
  • Server
  • Linux (CentOS 4.x in DeNA)
  • Perl 5.8.0 or later
  • Apache (1.3.x in DeNA)
  • FastCGI or mod_perl (FastCGI in DeNA)
  • MySQL 5.0.x
  • Cellular Phone
  • NTT DoCoMo FOMA
  • i-mode ID / HTTPS will be supported soon
  • au WIN
  • Softbank Mobile 3GC

8
modules for mobile web applications
9
MobileEnv.pm
  • MB_CARRIER_IP D, A, V, I, X, -
  • MB_MODEL_TYPE DM, DF, AU, AH, VC,
    VP, VW, VG
  • MB_MODEL_NAME ex. N905i
  • MB_SERV_LV -1 unsupported
  • MB_SERIAL, MB_SERIAL2 utn of NTT DoCoMo
  • MB_UID i-mode ID, EZ number, Softbank UID
  • other

10
difficulty in pictograph
  • compatibility
  • three carriers have their own pictograph set
  • DoCoMo 252, au 822, Softbank 474
  • three carriers have their own encoding and code
  • only au handsets can display them from DoCoMo
    code
  • users among different carriers would like to
    communicate each other with pictographs
  • ? converter needed
  • how to be stored in DB

11
pictograph in MobaSiF
  • developers write only one template for three
    carriers with i ??? ( a pictograph input
    application for PCs, provided by NTT DoCoMo)
  • users can input pictograph in ltFORMgt
  • among users using a same common carrier
  • exactly same pictograph can be exchanged
  • among users using different carriers
  • similar pictograph can be exchanged
  • with our original mapping
  • own encoding for DB

12
i ??? input application
13
pictographs in MobaSiF
MobaSiF
D bin template (d-sjis)
D page (d-sjis)
compile
text template (d-sjis)
A bin template (d-sjis)
A page (a-sjis)
Mcode u2any()
D form (d-sjis)
Mcodeany2u()
V bin template (d-sjis)
A form (a-sjis)
(v-sjis-w)
V form (v-utf-8)
V page (v-utf-8)
SoftbankEncode sjis_to_utf8()
SoftbankEncode utf8_to_sjis()
output
input
universal code (d-sjis a-sjis v-sjis-u)
14
encoding for Softbank Mobile
  • v-sjis-w Softbanks official encoding Web
    code
  • 0x1B 0x24 C1 C2 0x0F ( max 5 bytes)
  • v-sjis-u MobaSiFs original encoding
  • 0x0B C1 C2 ( 3 bytes)

15
MTemplate - feature
  • developers write a template only once for three
    carriers
  • template compiler makes binary template
  • 1 HTTP request ? 1 parse
  • XS / C implementation for the better performance
  • simple syntax

16
MTemplate - tags (1)
  • variable replacement
  • OPTIONSNAME
  • h html encode (ex. ? amp)
  • e uri escape
  • b bare
  • conditional clause (nest supported)
  • if (COND)
  • elsif (COND1 COND2)
  • elsif (COND1 COND2)
  • else

17
MTemplate tags (2)
  • loop (nest and conditions supported)
  • Perl
  • my _at_fruits (
  • name gt 'apple', price gt '100',
  • name gt 'orange', price gt '120',
  • name gt 'melon', price gt '500', )
  • rhData-gtList \_at_fruits
  • template
  • loop (List)
  • hname ? hprice ?! ltbrgt

18
MTemplate tags (3)
  • switch by the carrier
  • DOMd,v
  • only for DoCoMo and SoftBank
  • /DOM
  • DOMa only for au /DOM
  • other
  • INCNAME ? include common element
  • CONNAME ? constant
  • STYNAME ? style definition

19
dispatcher / MVC controller
20
dispatcher / MVC Controller
  • URL (http//example.com/_func)
  • ? RewriteRule ? index.fcgi?ffunc ? Main.pm
  • Main.pm
  • MobileEnvset()
  • _F new Request() conv pictographs
  • _U new UserData()
  • ...
  • callPage(func)
  • pages.conf
  • func gt user_st, uid_st, serv_st, module, sub,
  • pm/Page/.pm

21
benchmark
22
benchmark (1)
  • template engine (w/Benchmarkcmpthese)
  • user registration page (mbga.jp)
  • Template Toolkit 2,812/s
  • MTemplate 29,260/s (940)
  • diary list page (mbga.jp, loop with 10 items)
  • Template Toolkit 612/s
  • MTemplate 14,312/s (2237)
  • ? TTs lt 1-2 msec is enough fast
  • pictograph converter (mbga top page to Softbank?)
  • EncodeJPMobile 464/s
  • Mcode 1,916/s (313)

23
benchmark (2)
  • web application framework
  • (no DB access, hello, world!)
  • ab c10 n10000 lturlgt
  • Apache (static file) 10460.25 /sec
  • MobaSiF (FastCGI) 3297.07 /sec
  • Catalyst (mod_perl) 566.12 /sec

24
misc
  • DA.pm
  • Daemon.pm
  • daemon_queue_send, daemon_queue_recv
  • MLog.pm
  • mobamail will be available (not now)
  • Artistic License or GPL v2

25
conclusion
26
conclusion
  • MobaSiF Moba/Mobile Simple Framework
  • modules commonly used in mobile web applications
  • pictograph converter
  • carrier, handset type / ID detector
  • template engine
  • simple, thin, easy-to-understand, light-weight
  • fast XS implementations for the better
    performance
  • used in large-scale mobile services for a long
    time

27
now available!
  • http//sourceforge.jp/projects/moba/
Write a Comment
User Comments (0)
About PowerShow.com