Cross Desktop Application Scripting I D E a S F O R a N I M P L E M E N T a T I O N

Cross Desktop Application Scripting I D E a S F O R a N I M P L E M E N T a T I O N

Cross desktop Application Scripting I d e a s f o r a n i m p l e m e n t a t i o n D e s k t o p D e v e l o p e r C o n f e r e n c e 2 0 0 6 , O t t a w a , C a n a d a T u e s d a y J u l y 1 8 t h 2 0 0 6 H u b e r t F i g u i è r e < h u b @ f i g u i e r e . n e t> This presentation is released under the Creative Commons Attribution-ShareAlike Canada license. http://creativecommons.org/licenses/by-sa/2.5/ca/ A p p l i c a t i o n S c r i p t i n g ● High level application control. – It is telling an application to do some task the application is designed for. – Fetch data from the runing application ● It is not meant for writing complete apps like Python or Perl are used. ● Think of a high-level IPC S c r i p t i n g S y s t e m ● A language (any) ● A high-level “protocol”: Scripting Model – Preferably with an Object Oriented paradigm ● An IPC mechanism ● Applications S c r i p t i n g S y s t e m ( 2 ) W h a t a l r e a d y e x i s t s ? ● Kross http://kross.dipe.org/readme.html – KOffice scripting in Python and Ruby ● Kommander http://kommander.kdewebdev.org/ – Use UI build with QtDesigner and DCOP ● Gnome + ATK + ORBit + Python http://www.jamesh.id.au/talks/lca2004/ – control UI through the ATK W h a t a l r e a d y e x i s t s ( 2 ) ● Dogtail http://people.redhat.com/zcerza/dogtail/ – UI testing tool. Use ATK and other a11y technologies ● StepTalk http://www.gnustep.org/experience/StepTalk.html – Scripting for GNUStep – Use Objective-C introspection – Language independente W h a t a l r e a d y e x i s t s ( 3 ) ● All these applications with scripting capabilities – Gimp – Mozilla – etc. W h a t c a n u s e i t ? ● Atomato – Automation tool for GNOME – Typically benefiting from a universal way to remote control applications – Inspired from Apple Automator: http://www.apple.com/macosx/features/automator/ ● All these applications with scripting capabilities W h a t f o r ? ● Automating tasks ● Fetching data from an application – Current song being played in Music Player – Exporting data ● Integrating applications together I n s p i r a t i o n ● AppleScript – Provides all the feature wished – But specific to MacOS X G o a l s ● Maximum interoperability – KDE – Gnome – Mozilla – OOo ● Standardization of commands ● Language independence ● Security G o a l s ( 2 ) I P C ● D-Bus – Adopted by Gnome – Adopted by KDE for KDE4 – Structured IPC with access control ● DCOP – In KDE3. Will be replaced by D-Bus in KDE4 ● Other? L a n g u a g e ● Pick the language of your choice – Write an adapter to the Scripting Model ● Language by default (suggestion) – JavaScript ● Because lot of end use know it (web designer, etc) ● Easy to learn ● Light implementation – Nobody want to script in Scheme or Lisp (or at least nobody sane) A p p l i c a t i o n s ● Server: the application controled – Glue to the scripting model ● Client: controling another application – Call the scripting model APIs S c r i p t i n g M o d e l ● An object oriented model – You fetch objects ● word ● canvas ● email – You manipulates objects ● delete word ● create email – etc. – More natural S c r i p t i n g M o d e l ( 2 ) ● Translate the applications data model (functionnality) – delete word 1 of paragraph 3 of document of front window – draw rectangle with (5, 10, 100, 100) in canvas of front window ● Does not translate the user interface – at least not as a first choice S c r i p t i n g M o d e l ( 3 ) ● Standardized – Having to rewrite the script because we changed application would suck – Manipulating data should be done the same way in all “similar” applications ● Word processors ● Drawing programs ● Web browsers ● e-mail programs ● etc. S t a n d a r d i z a t i o n ● Task done the same way whatever the application is – Writing a text is writing a text be it in KWord or AbiWord – Creating a table in a spreadsheet is the same be it Gnumeric or KSpread – etc. ● Described in a “registry” “ R e g i s t r y ” ● Contain and complete description of the model ● Maintained as an open specification ● Updated periodically for additions ● The goal: interoperability ● The scripting “bible” K n o w i n g w h a t a n a p p . s u p p o r t s ? ● How do we know what an application support – Querying its interface ● What does the application provide? – A list of object and commands it understands C h a l l e n g e s ● In order to be able to have the scripting model adopted: – Write it without Qt (licensing incompatible with Gnome policy) – Provide plain C API (Gnome and its gazillion of language bindings) and C++ (KDE) ● Make it easy to use on the server side – providing scripting should be easy or nobody will do it ● Secure S e c u r i t y ● Very hard to achieve – Things shouldn't happen without user approval ● Sending mail – The “I Love You” fiasco in 2000 and later on Windows ● Worm and virus propagation – Why antivirus and anti-spyware editors do love Microsoft – But things should work ● I have no answer right now Q u e s t i o n s .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    24 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us