240 likes | 406 Views
XML-RPC. Clifford Ilkay Dinamis Corporation Toronto, ON Canada +1 416-410-3326 clifford_ilkay@dinamis.com. 2004. Mark Phillips Mophilly & Associates Rancho San Diego, CA USA +1 619-444-9210 mark@mophilly.com. Distributed Omnis Apps. How do we deploy distributed Omnis applications?
E N D
XML-RPC Clifford Ilkay Dinamis Corporation Toronto, ON Canada +1 416-410-3326 clifford_ilkay@dinamis.com 2004 Mark Phillips Mophilly & Associates Rancho San Diego, CA USA +1 619-444-9210 mark@mophilly.com
Distributed Omnis Apps • How do we deploy distributed Omnis applications? • Web client • Citrix/Windows Terminal Server • OmnisIP • Fat client
Web Client • Cons: • Challenging to integrate with non Omnis applications • Problems on Linux • No multi windowing (Jeff Spicer is addressing) • Two development cycles, one for fat, one for thin • Plug-in not cryptographically signed, no checksums on download site • No download site mirrors (download plug in from one mirror, MD5 checksums from another) • Not widely deployed
Web Client • Pros: • Familiar language to Omnis developers • Very light weight deployment • Rich interface – for a web app • Relatively quick development cycle
Citrix/Windows Terminal Server • Cons: • Must run Windows on the server • Can be expensive to deploy • Pros: • No changes necessary to deploy fat client Omnis app • Good performance even on low bandwidth connections • Richness of the fat client UI • Windows is best supported Omnis deployment platform
OmnisIP • Created by Fred Haislmaier, Mark Phillips, Stephen Miller • Proprietary but open standard for communicating with Omnis as a server or as a client • Requires Studio App Server running on Server • Low level IP communications
Client/Server Fat Client Apps • Client/server apps are distributed across a LAN • Possible to distribute across a WAN/Internet using a VPN • Two tier app • Usually tightly coupled to the back end database • Tightly coupled to Omnis • Can be difficult to extend
Client/Server Fat Client Apps • Can be difficult to enforce clean separation of model, view, and controller • No support for web services • Proprietary call interface • High degree of coordination required • Not self describing • Invocation methods vary
What are web services? • Standards based means of invoking remote procedures • Uses XML to encode • Uses HTTP/HTTPS for transport • A spec and a set of implementations • Allows software running on disparate operating systems to make procedure calls over the Internet • XML-RPC Services
What is XML? • According to industry press, a magic bullet • A spec that defines a markup language – like HTML • Subset of SGML • Syntax for document markup • Syntax for document structure • Clear markup, e.g. <img src> is explicitly clear when expressed as <image source> • A W3C standard – next version of HTML is XHTML
What is XML? • Human readable documents • Adaptable – MathML, ChemML • Used for: • Configuration files • Web pages - XHTML • Transforming data from one format to another - XSLT • Open file formats – OpenOffice, Keynote • Dev tools using XML for UI specification, e.g. Qt Designer, Mozilla XUL • Web services, e.g. SOAP, XML-RPC
XML for Configuration Files • Apple Address Book Preferences File
XHTML • NYPL Style Guide for XHTML
XSLT for Data Transformations • Convert data from one format to another • attribute.xsl • csharp.xsl
XML File Formats • Apple Keynote Description File • OpenOffice.org File Format • OOo files are zip files that contain XML files • Standards based • Adopted by other Open Source office project - KOffice from the KDE project
XML User Interface Spec Files • Example Qt Designer Form • Mozilla XUL Hello World Example • <file:///X:/Work/AmerOmnis/2004/XML-RPCPresentation/XUL/HelloWorld.xul>
What is SOAP? • Simple Object Access Protocol • Simpler than CORBA, but ... • Spec is over 100 pages • Designed by committee, IBM, Microsoft, Oracle, et al. • Alphabet soup of technologies, WSDL, UDDI, etc. • DotCDI from Computer Dynamics is an implementation for Omnis
What is XML-RPC? • Very simple – no bells and whistles • Spec is only one page, can read and understand in one sitting • Designed by Dave Winer at Userland Technologies of Frontier fame • No Omnis implementation – until now • Standard way of invoking remote procedures over HTTP/HTTPS using XML to encode messages between client and server
XML-RPC Implementations • XML-RPC Howto • Show SumDiff.py – a simple Python example
XML-RPC for Omnis • First approach: • Use Open Source Windows DLL • Successful in getting proper response back from server • Windows specific • Second approach: • Use Omnis HTTPPost command • Problem: strips header • Use TCP
XML-RPC for Omnis • Opens Omnis to wide world of XML-RPC servers • Omnis is just another client, albeit a very rich one • Middle tier – application server is not Omnis, for now
Review • Covered: • Various ways of deploying distributed apps • Web services • What XML is and what it is used for • What XML-RPC is • XML-Implementations
Q & A • Any questions?