160 likes | 288 Views
IMu Technology. IMu Technology. 12 October 2011 Andrew Brown. EMu Global Users’ Group 12 October 2011. What is IMu?. “ KE's strategy and toolset for distributing data held within EMu via the Internet.”. Why “IMu”?. E Mu is the electronic museum I Mu is putting this on the Internet
E N D
IMu Technology IMu Technology 12 October 2011 Andrew Brown EMu Global Users’ Group 12 October 2011
What is IMu? “KE's strategy and toolset for distributing data held within EMu via the Internet.”
Why “IMu”? • EMu is the electronic museum • IMu is putting this on the Internet • By Internet we mean any connected devices in the broadest sense: • Conventional Web Pages for Desktops • Web Publication for Mobile Devices • Web Services for Many Different Apps • Tools for Remote Data Capture • It’s more than “web pages for EMu” • (but it definitely is part of EMu)
So what actually is IMu? • A set of tools for accessing data within EMu • At its core are two components • Server • Application Programming Interfaces (APIs) • These provide the building blocks for the rest of what we call “IMu” • Web services • Web publication • Others
Runs within EMu environment Comes with 4.0.03 (many of you have it already) Independently upgradeable (mostly) Uses one or more EMu licences Like texxmlserver “Understands” EMu High-level Schema Multimedia Lookup lists etc. Server
Easily extended Plugin architecture via Perl modules Increased flexibility General or client-specific plugins Increased efficiency Operations performed on server (where appropriate) Increased security No generic query language statements Only expose controlled sets of operations Server (cont.)
APIs • Provide low-level programmer access to EMu • Available: PHP, Java, .Net, Perl • In Development: Objective C, Ruby, Python • Client/Server • Effectively RPC interface • Uses JSON as communications protocol • Stateless or “stateful” • “Anonymous” or authenticated access • Understands EMu environment • High-level access to modules, lookup lists etc. • Open Source
Basic IMu Architecture Client application Client machine PHP Java .Net Perl JSON IMu Server texapi EMu Host Machine DatabaseEngine
What can you do with IMu? • Use the APIs directly • Build client/server apps • Build highly customised web pages • PHP/JSP/ASP • CMS plugins • Build Web Services • Use IMu web framework
Web Services • No user-interface component • HTTP-based (web server) • Requests use HTTP GET/POST • Responses are XML, JSON or binary data (e.g. multimedia) • Uses stateless API (typically PHP/Java)
Kinds of web services Three kinds of services: • Standards-based • OAI • Generic • Multimedia • Communications Layer • Bespoke - Application/Site-specific • Manchester Museum iPhone app • Bristol Museum touch screen kiosks
Web Services Architecture Web Client Web service client HTML/JSON/binary HTTP Web Server (Apache, IIS, Jetty etc.) Web Server Machine IMu Web Services Framework (PHP/Java) IMu PHP/Java API JSON IMu Server texapi EMu Host Machine DatabaseEngine
Web Publication • Internet/Intranet interface to EMu collection • Web 2.0 based components (e.g. auto-complete) • Theme-able client pages • MVC setup (XML -> XSLT -> HTML) • Collection List Management • Displays results from multiple modules • Customisable interface via XSLT
Web Publication Technology • Internet/Intranet interface to EMu collection • Uses conventional web servers such as Apache and IIS • Uses IMu’sPHP API to fetch data from EMu • Marks up data as XML • Processes XML using XSLT to generate HTML (Theming) • Includes Javascript for Web 2.0 features • Auto-completion • Page transition effects • My Collection updates
Web Publication Architecture Web Browser Client PC/Mobile HTML/JSON HTTP Web Server (Apache, IIS etc.) HTML HTTP Theming Engine (XSLT Processor) Web Server Machine XML IMu Web Framework (PHP) IMu PHP API JSON IMu Server texapi EMu Host Machine DatabaseEngine
IMu is powerful framework for accessing information in EMu We are just starting to exploit what it can do New themes for web framework More dynamic (Javascript) Mobile themes for tablets and phones Google site maps Web components Pluggable components into other pages Based on JQuery Web apps Simple data capture interfaces More web services Communication Layer Mobile apps In the longer term it will be driven by you The future