SlideShare a Scribd company logo
Deploying Domino
Applications to
BlackBerry
MDS Studio

Bill Buchan
HADSL

          © 2006 Wellesley Information Services. All rights reserved.
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing BlackBerry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                2
Who is the Target Audience?

•   Lotus Notes developers in BlackBerry enabled environments
•   Developers who wish to deploy applications to BlackBerries




                                                                 3
What Is This About?

•   This talk aims to demonstrate:
      How to web service enable Domino applications
      The BlackBerry MDS studio
      Developing your first BlackBerry application




                                                      4
What Is This About? (cont.)

•   Why BlackBerry?
      Market leading handheld data device
      Robust
      Loved by CIOs
      Do you have them already?
•   Who am I?
      Bill Buchan
      Dual PCLP in v3, v4, v5, v6, v7
      10+ years senior development consultancy for
      Enterprise customers
          Learn from my pain!
      5+ years code auditing
      CEO — HADSL — developing best-practice tools


                                                     5
What is this About?(cont.)

 •   Where do I find BlackBerry MDS Studio?
       The BlackBerry Web site
          www.BlackBerry.com
 •   The MDS toolkit contains:
       A BlackBerry simulator
       The BlackBerry Mobile Data Suite Engine
       An integrated development environment




Note

                                                 6
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing Blackberry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                7
MDS Architecture

•   MDS is a Java-based application stack
      May run on the BlackBerry Enterprise Server
         In a small environment
         Larger environments may require dedicated servers
      Application repository holds applications
      Can push applications to users’ BlackBerries
•   MDS also provides:
      On-line data connectivity services via web services
         Allowing handsets to utilize web services
      Application access to PIM data on the BlackBerry
         Allowing applications to interrogate the BlackBerry



                                                               8
Solution Architecture

•    MDS provides application and data to handsets

                   Sec
         RIM           u   re D
                                  a ta




                                                             ll
                                         Cha




                                                            wa
                                             n   nel




                                                          re
                                                       Fi
                            Internet
           GPRS




                                                                    BES

                                                        MDS
                                                                     W
        BlackBerry                                                  Se eb
         BlackBerry                                                   rv          Domino
           BlackBerry                                                    ice     Domino
                                                                            s     Servers
                                                                                Domino
                                                                                 Servers
    Don't
                           MDS
                           BES
                                         Mobile Data Suite
                                         BlackBerry Enterprise Server
                                                                                Servers
                           RIM           Research In Motion
      Forget               GPRS          General Packet Radio Service
                                                                                            9
Solution Architecture (cont.)

•   We are interested in:
       Web service enabling a Domino application
       Interacting with that application via a BlackBerry handset
•   Is this difficult?
       No. The Blackberry MDS Studio makes it simple for you.
•   Is the Blackberry MDS Studio lightweight?
       No. It creates enterprise applications.
•   Is it difficult to use?
       No. This presentation will lead you through your first application.
•   Oh no. Not another IDE!
       It’s yet another IDE
       Similar to Visual Studio/Rational Application Developer


                                                                             10
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing Blackberry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                11
Web Service Enabling: Introduction

•   What is a web service?
      A web service is a standard application-to-application interface
      It usually uses the “http” protocol — just like a web page
      It usually encapsulates its data into an XML file
      It can be made secure
•   How can I create a web service?
      Prior to Domino 7, using Java Servlets
      In Domino 7 you can create web services in LotusScript
•   How can I “consume” a web service:
      Quick and Dirty: MS SOAP DLL
         Use for Testing
      Better: use a Java Agent

                                                                         12
Web Services: Resources

•   www.nsftools.com
      Julian’s site is a very good repository of Domino Java Code
•   www.billbuchan.com
      My “Speaking Engagements” page has a web services example
      from ILUG
•   The sample database for this session
•   www.openNtf.org
      The “Stubby” project




                                                                    13
Web Services: Design

•   We shall create a web service that provides a single function
      GetJoke() shall return
      a string containing a
      single Joke
      Repeated calls to this
      function will return
      different jokes on a
      random basis
•   Open Designer and
    navigate to “Web
    Services”
      Create a new web
      service called
      “Simple”
                                                                    14
Web Services: Coding the Web Service
                                                       Solution
 •   Now populate our web service class
Class testWebService

     ' This function returns a single string
     Public Function getJoke() As String
        On Error Goto errorhandler

       Msgbox "Being asked for a joke.."

       getJoke = “Whats Brown and Sticky ? A Stick!”

exitFunction:
      Exit Function
errorhandler:
      getJoke = "The system experienced a run-time error: "+_
       Error$ + " at line: " +Trim(Str(Erl)) + Chr(10)
      Resume exitFunction
   End Function

End Class                                                         15
Web Services: Create a Web Service Consumer

•   Go to www.nsftools.com and download the JURST toolkit
      Copy two script libraries from the example application
      to your application
          ApacheSoap
          Jurst
•   Create a new Java agent
      Call it “GetTheJoke”
      Set the Target to “None”




                                                               16
Web Services: Create a Web Service Consumer (cont.)
import lotus.domino.*;
import com.nsftools.jurst.SoapHelper;

public class JavaAgent extends AgentBase {
   public void NotesMain() {
      try {
         Session session = getSession();
         AgentContext agentContext = session.getAgentContext();
         Database db = agentContext.getCurrentDatabase();
         String dbPath = db.getFilePath();

           Name serverName = session.createName(db.getServer());
           String wsdlUrl = "http://" + serverName.getCommon() +
               "/" + dbPath + "/Simple?WSDL";
           SoapHelper sh = new SoapHelper(wsdlUrl);
           System.out.println(sh.callSimpleMethod("GetJoke"));
        } catch(Exception e) {
           e.printStackTrace();
        }
    }
                                                              17
}
Web Services: Running the Consumer

•   Open the Notes
    Java Debug Console
       “File”, “Tools”,
       “Show Java
       Debug Console”
       This shows all “print”
       statements from our
       Java code




    Note
                                     18
Web Services: Running the Consumer (cont.)

•   Click on “Actions”,
    “GetTheJoke”
      The results will appear in
      the Java Console window




                                             19
Web Services: Performance

•   Domino reloads LotusScript on each call
      Ouch. It might not handle large concurrency.
      No persistent (in memory) data
      Don’t do complex actions during your web service
         Keep it to lookup or store operations
             Write documents that are then “completed” by a
             scheduled agent
      How can I tell if its taking a long time?
         User response
         Lack of scalability in terms of concurrent users
         “Profile” the web service using agent profiling



                                                              20
Web Services: Scalability

•   Want a heavyweight, scalable web service?
      Consider rewriting in Java:
         Persistent session data
         Caching of common lookup views
         Able to use threading to separate “heavy duty” tasks
•   Use a LotusScript web service to prototype and test
•   If performance does not scale, rewrite in Java




                                                                21
Web Services: Summary

•   Web service enabling a Domino application:
      Domino 7 makes it simple to web service enable
      an application using LotusScript
      Lots of web service tutorials on the web
•   Remember:
      Web services are a standard, platform independent, language
      independent, application-to-application interface
      Useful for exposing Domino data to other platforms
      Useful for dispelling anti-Domino bias in your company
      Web services are not the point of this presentation!




                                                                    22
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing Blackberry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                23
Installing Blackberry MDS Studio: Introduction

•   BlackBerry MDS Studio
      It’s a Windows-only installation kit
      Download from www.blackberry.com
      Obtain a Blackberry MDS Studio license key
      At the time of writing (August 2006):
           It was free!
           I installed version v1.0.4.13
      Installation is relatively painless — less than 20 mins
      Needs 1.5gb free disk space
      Needs at least 1gb RAM




                                                                24
Blackberry MDS Studio: Installation

•   Run the downloaded file, it will extract:
       “Setup.exe”
       a PDF document
•   Run “Setup.exe”




                                                25
Blackberry MDS Studio: Installation (cont.)
•   Accept all four license screens
      Including the “Bouncy Castle” License




                                              26
Blackberry MDS Studio: Installation (cont.)

•   Enter the file path
       I usually choose the default one




                                              27
Blackberry MDS Studio: Installation (cont.)

•   Enter the registration data you received from the
    BlackBerry Web site




                                                        28
Blackberry MDS Studio: Installation (cont.)

•   Enter a Uniform Resource Identifier (URI) you wish to
    associate with your applications
      I used “CompanyName.com”




                                                            29
Blackberry MDS Studio: Installation (cont.)

•   You are now prompted to select ports for various
    MDS services
      I recommend you leave defaults unless you absolutely know
      what you are doing!




                                                                  30
Blackberry MDS Studio: Installation (cont.)

•   Choose where you wish to create shortcuts




                                                31
Blackberry MDS Studio: Installation (cont.)

•   Confirm you wish to continue




                                              32
Blackberry MDS Studio: Installation (cont.)

•   Now sit back for 10-30 minutes whilst it installs




                                                        33
Blackberry MDS Studio: Installation Confirmation

•   If the installation failed
       You might want to consider uninstalling and reinstalling
•   Start up Blackberry MDS Studio
       You should see this splash screen




•   Congratulations!
                                                                  34
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing Blackberry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                35
MDS Studio First Look

•   Like many other IDEs:
      It has lots of screens
      It has a tree-style navigator to see objects
      Double-clicking on an object opens it in the editor
      Selecting an item allows you to edit its properties
•   It has two “perspectives”
      Application perspective is for editing the application
      Test perspective is for testing the application




                                                               36
MDS Studio First Look (cont.)

•   It has a BlackBerry simulator
       You can choose different models to test your code
•   Generally it is:
       Stable
       Quick
       Easy to use
•   It’s very quick for debug/test cycles
       Just change perspective, edit, and retest




                                                           37
MDS Documentation

•   The documentation is pretty good. But:
      Quite sparse in some respects
      You should rely on the online technical forum
      You might consider a technical support contract




                                                        38
MDS Demo




              Demo

       Blackberry MDS Studio

             First look




                               39
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing Blackberry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                40
First Application: Introduction

•   We shall create a BlackBerry application
      To retrieve information from our Domino Server
         Using the web service we created earlier
      That is easy for the end user
      That shows how to:
         Amend screens
         Create scripts
         Call different actions
•   We shall compile and distribute the application
      To the built-in BlackBerry simulator




                                                       41
First Application: Creating a New Project

•   Choose “File, New Project”
      And choose “Quick Start Approach Wizard”




                                                 42
First Application: Creating a New Project (cont.)

•   Now enter the URI of the Web service Application
      http://<server>/<database>/<webservicename>?WSDL




                                                         43
First Application: Creating a New Project (cont.)

•   Select the web service(s) you wish to import
      In our case, we
      just choose the
      single function
          GetJoke()




                                                    44
First Application: Creating a New Project (cont.)

•   Finally, give the project a name




                                                    45
First Application: Quick Fix

•   We shall apply a quick fix to this application
       The default application sends a web service query to our Domino
       server, and then displays a screen stating that the web service
       request has been sent
       We need to edit the Javascript routine that the “Go” button
       calls in order to allow the response event to trigger, and
       display our return value
       In the navigator screen, navigate to “Scripts”
       Open script “GETJOKERequest_onSubmit”
       Delete the second line of the script
       Click on “File”, “Save All”




                                                                         46
First Application: Quick Fix (cont.)




                                       47
First Project: Running the Project:

•   Right click on the project name in
    the explorer bar, and select “Test”
      This will compile, publish,
      and deploy the application to
      the simulator, and start
      the simulator




      If the MDS services have
      not yet started, they will
      also be started


                                          48
First Project: Running the Project (cont.)

•   The simulator will appear
      Use your mouse scroll
      wheel (or the down–arrow)
      to select the MDS Control
      Center icon on the
      BlackBerry menu
      Click the mouse scroll
      button to select (or click
      on the ScrollWheel on
      the right)

•   Can’t see the simulator? Check your taskbar.
      It often hides
      down there


GOTCHA!                                            49
First Project: Viewing the Project on the Simulator

•   On the simulator screen
      Select MDS Control Center
      Scroll down
      to your application

      Click on the
      application and choose
      “Start” from the menu




                                                      50
First Project: Running the Project on the Simulator

•    We see a single screen with a
     single button
        Select and click on “Go”




        The application will then call our
        Domino Web service and
        display the results




                                                          51
First Project: Initial Comments

•   We need to do some work
      Add more meaningful screen titles
      Bypass the “Go” button on the first screen so that the application
      automatically gets the first Joke
      Add a “Get Another” button to the second screen
      Make the Joke text read-only so that the user does not have to
      scroll past it to get to the button
         In fact — lets move the button to the top




                                                                           52
First Project: Updating the Front Screen

•   Switch back to Blackberry MDS Studio
      On the Blackberry MDS Studio,
      switch from the “Test
      Perspective” back to the
      “Development Perspective”
      On the Navigator, expand the “Test” project, expand
      “Applications”, expand “Screens”
      Double-click on the “scrMain” screen
      Remove the button
      Change the caption to “fetching the first joke”
      Click on the screen itself and change the Initialize property to run
      Script “GETJOKERequest_onSubmit”
      Change the window title to “Joke Server”
      Now click on “File”, “Save All”
                                                                             53
First Project: Updating the Front Screen (cont.)




                                                   54
First Project: Updating the Second Screen

•   Lets update the second screen
       Double click on the “scrGETJOKEResponse” screen
       Delete the “Service Response” text and icon
       Delete the “JokeResponse” label
       Drag the button to the top of the screen
       Change the button text to “Get Another Joke”
       Change the OnClick action
          To a Script
          Choose Script GETJOKERequest_onSubmit
       Change the returned text to “read-only”
       Change the window title to “Joke Server”
•   Click on “File”, “Save All”

                                                         55
First Project: Updating the Second Screen (cont.)




                                                    56
First Project: Testing

•   Right click on the project, and choose “Test”
      This will recompile and redeploy the application to the simulator
         The application will refresh on the simulator screen
      Check that the version of the application on the simulator is the
      version you expect




                                                                          57
First Project: Conclusion

•   Congratulations! We have just completed an entire test +
    development cycle
      Web service enabled a Domino application
      Tested the web service application
      Created a complete new BlackBerry application using the Web
      Service Definition Language (WSDL)
      Deployed the application to the simulator
      Tested that application making “live” web service calls
      back to Domino
      Redesigned the UI of that application
      Recompiled and redeployed the application back to the simulator



                                                                        58
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing BlackBerry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                59
A More Complex Application: Introduction

•   A more complex application allows the user to send data to
    the web service and act on its results
      In this case we shall allow the user to send a category
      or a search string
      The new version of the web service is not much more complicated.
      Only two new calls:
          GetJokeByCategory(category as String) as String
          SearchForJoke(searchString as String) as String
•   This demonstration shows:
      How to bind returned data to edit controls
      How to trigger messages when edit controls change



                                                                         60
A More Complex Application: Note

•   Note that:
      This is still not an enterprise application
      The methods used are to illustrate BlackBerry MDS Studio
      techniques, not necessarily best practice
      It is a live demo and therefore highly likely to crash!



                    Demo

            Blackberry MDS Studio

                    Demo



                                                                 61
What We'll Cover …

•   Introduction
•   Architectures
•   Web Service Enabling a Domino Application
•   Installing BlackBerry MDS Studio
•   BlackBerry MDS Studio Overview
•   First Application
•   A Complex Application
•   Wrap-up




                                                62
Resources

•   The BlackBerry MDS Studio:
      www.blackberry.com
•   The BlackBerry Developers area
      Domino Sample Code:
        www.blackberry.com/developers/resources
        /domino/samplecode.shtml
•   Example database for this presentation:




                                                  63
Key Points to Take Home

•   Domino applications can be easily web service enabled
•   You don’t need a BlackBerry or a BES Server to code and
    test BlackBerry applications
•   Deploying Domino applications to the BlackBerry
    MDS Studio
      Uses web services
      Is straightforward
•   Blackberry MDS Studio
      Is a fairly simple IDE
      Quick to code and test
      May run out of steam with more complex applications


                                                              64
Your Turn!




                Questions?

             How to Contact Me:
                Bill Buchan
              Bill@hadsl.com
                                  65

More Related Content

What's hot

What is Semantic Service provisioning
What is Semantic Service provisioningWhat is Semantic Service provisioning
What is Semantic Service provisioning
Josef Noll
 
Email
Email Email
What's new in Exchange 2013?
What's new in Exchange 2013?What's new in Exchange 2013?
What's new in Exchange 2013?
Microsoft TechNet - Belgium and Luxembourg
 
Geospatial Ontologies and GeoSPARQL Services
Geospatial Ontologies and GeoSPARQL ServicesGeospatial Ontologies and GeoSPARQL Services
Geospatial Ontologies and GeoSPARQL Services
Stephane Fellah
 
Advanced DNS/DHCP for Novell eDirectory Environments
Advanced DNS/DHCP for Novell eDirectory EnvironmentsAdvanced DNS/DHCP for Novell eDirectory Environments
Advanced DNS/DHCP for Novell eDirectory Environments
Novell
 
Os Buncetutorial
Os BuncetutorialOs Buncetutorial
Os Buncetutorial
oscon2007
 
Deployment Planning for Success - #SPSBend
Deployment Planning for Success - #SPSBendDeployment Planning for Success - #SPSBend
Deployment Planning for Success - #SPSBend
David Samoranski
 
Presentation from physical to virtual to cloud emc
Presentation   from physical to virtual to cloud emcPresentation   from physical to virtual to cloud emc
Presentation from physical to virtual to cloud emc
xKinAnx
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
deimos
 
Webinar: eFolder Expert Series: Three Myths of Cloud Recovery Revealed
Webinar: eFolder Expert Series:Three Myths of Cloud Recovery RevealedWebinar: eFolder Expert Series:Three Myths of Cloud Recovery Revealed
Webinar: eFolder Expert Series: Three Myths of Cloud Recovery Revealed
Dropbox
 
Premium Website Hosting
Premium Website HostingPremium Website Hosting
Premium Website Hosting
webhostingguy
 
Gregor Hohpe Track Intro The Cloud As Middle Ware
Gregor Hohpe Track Intro The Cloud As Middle WareGregor Hohpe Track Intro The Cloud As Middle Ware
Gregor Hohpe Track Intro The Cloud As Middle Ware
deimos
 
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
datacentersummit
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloud
Anand B Narasimhan
 
Repeater customer business presentation 5 nov-12
Repeater customer business presentation 5 nov-12Repeater customer business presentation 5 nov-12
Repeater customer business presentation 5 nov-12
Nuno Alves
 
Microsoft TechDays 2013 - IT Pro Keynote
Microsoft TechDays 2013 - IT Pro KeynoteMicrosoft TechDays 2013 - IT Pro Keynote
Microsoft TechDays 2013 - IT Pro Keynote
Microsoft TechNet - Belgium and Luxembourg
 
Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience
Developer Pitfalls & Strategies for Improving Mobile Web Developer ExperienceDeveloper Pitfalls & Strategies for Improving Mobile Web Developer Experience
Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience
Tasneem Sayeed
 
MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0
MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0
MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0
Rupert Clayton
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
deimos
 

What's hot (19)

What is Semantic Service provisioning
What is Semantic Service provisioningWhat is Semantic Service provisioning
What is Semantic Service provisioning
 
Email
Email Email
Email
 
What's new in Exchange 2013?
What's new in Exchange 2013?What's new in Exchange 2013?
What's new in Exchange 2013?
 
Geospatial Ontologies and GeoSPARQL Services
Geospatial Ontologies and GeoSPARQL ServicesGeospatial Ontologies and GeoSPARQL Services
Geospatial Ontologies and GeoSPARQL Services
 
Advanced DNS/DHCP for Novell eDirectory Environments
Advanced DNS/DHCP for Novell eDirectory EnvironmentsAdvanced DNS/DHCP for Novell eDirectory Environments
Advanced DNS/DHCP for Novell eDirectory Environments
 
Os Buncetutorial
Os BuncetutorialOs Buncetutorial
Os Buncetutorial
 
Deployment Planning for Success - #SPSBend
Deployment Planning for Success - #SPSBendDeployment Planning for Success - #SPSBend
Deployment Planning for Success - #SPSBend
 
Presentation from physical to virtual to cloud emc
Presentation   from physical to virtual to cloud emcPresentation   from physical to virtual to cloud emc
Presentation from physical to virtual to cloud emc
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
 
Webinar: eFolder Expert Series: Three Myths of Cloud Recovery Revealed
Webinar: eFolder Expert Series:Three Myths of Cloud Recovery RevealedWebinar: eFolder Expert Series:Three Myths of Cloud Recovery Revealed
Webinar: eFolder Expert Series: Three Myths of Cloud Recovery Revealed
 
Premium Website Hosting
Premium Website HostingPremium Website Hosting
Premium Website Hosting
 
Gregor Hohpe Track Intro The Cloud As Middle Ware
Gregor Hohpe Track Intro The Cloud As Middle WareGregor Hohpe Track Intro The Cloud As Middle Ware
Gregor Hohpe Track Intro The Cloud As Middle Ware
 
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
Daniel cornejo cisco. centros de datos unificados y su evolución hacia la nub...
 
Continuous delivery on the cloud
Continuous delivery on the cloudContinuous delivery on the cloud
Continuous delivery on the cloud
 
Repeater customer business presentation 5 nov-12
Repeater customer business presentation 5 nov-12Repeater customer business presentation 5 nov-12
Repeater customer business presentation 5 nov-12
 
Microsoft TechDays 2013 - IT Pro Keynote
Microsoft TechDays 2013 - IT Pro KeynoteMicrosoft TechDays 2013 - IT Pro Keynote
Microsoft TechDays 2013 - IT Pro Keynote
 
Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience
Developer Pitfalls & Strategies for Improving Mobile Web Developer ExperienceDeveloper Pitfalls & Strategies for Improving Mobile Web Developer Experience
Developer Pitfalls & Strategies for Improving Mobile Web Developer Experience
 
MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0
MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0
MWLUG 2012 BP 105 IBM SmartCloud, You Can Get There from Here 8.17.2012 v2.0
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
 

Viewers also liked

Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013
Bill Buchan
 
Softsphere - Development for administrators
Softsphere - Development for administratorsSoftsphere - Development for administrators
Softsphere - Development for administrators
Bill Buchan
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
Bill Buchan
 
The View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database ConnectivityThe View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database Connectivity
Bill Buchan
 
Michele Payn-Knoper - Authentically Agriculture
Michele Payn-Knoper - Authentically AgricultureMichele Payn-Knoper - Authentically Agriculture
Michele Payn-Knoper - Authentically Agriculture
John Blue
 
Analyze and export Lotus Notes data to Excel and Word
Analyze and export Lotus Notes data to Excel and WordAnalyze and export Lotus Notes data to Excel and Word
Analyze and export Lotus Notes data to Excel and Word
John de Giorgio
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
Bill Buchan
 

Viewers also liked (7)

Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013Connections Lotusphere Worst Practices 2013
Connections Lotusphere Worst Practices 2013
 
Softsphere - Development for administrators
Softsphere - Development for administratorsSoftsphere - Development for administrators
Softsphere - Development for administrators
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
 
The View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database ConnectivityThe View - Leveraging Lotuscript for Database Connectivity
The View - Leveraging Lotuscript for Database Connectivity
 
Michele Payn-Knoper - Authentically Agriculture
Michele Payn-Knoper - Authentically AgricultureMichele Payn-Knoper - Authentically Agriculture
Michele Payn-Knoper - Authentically Agriculture
 
Analyze and export Lotus Notes data to Excel and Word
Analyze and export Lotus Notes data to Excel and WordAnalyze and export Lotus Notes data to Excel and Word
Analyze and export Lotus Notes data to Excel and Word
 
Dev buchan leveraging the notes c api
Dev buchan leveraging the notes c apiDev buchan leveraging the notes c api
Dev buchan leveraging the notes c api
 

Similar to The View - Deploying domino applications to BlackBerry MDS Studio

Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshop
Bill Buchan
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
Dejan Glozic
 
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing WorkloaAAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
WASdev Community
 
Spring into the Cloud - JDC2012 Cairo, Egypt
Spring into the Cloud - JDC2012 Cairo, EgyptSpring into the Cloud - JDC2012 Cairo, Egypt
Spring into the Cloud - JDC2012 Cairo, Egypt
Chris Richardson
 
Softsphere 08 web services bootcamp
Softsphere 08 web services bootcampSoftsphere 08 web services bootcamp
Softsphere 08 web services bootcamp
Bill Buchan
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the Cloud
Jennifer Hickey
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 Slides
Ryan Koop
 
Cloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentations
CloudCamp Chicago
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
Thanachart Numnonda
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
Kim Kao
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
solidkim
 
CloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
CloudFest Denver When Worlds Collide: HTML5 Meets the CloudCloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
CloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
David Pallmann
 
2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices
Kim Kao
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
JAX London
 
Case Study | EdisonWeb
Case Study | EdisonWebCase Study | EdisonWeb
Case Study | EdisonWeb
The Microsoft Openness Network
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
Richard Rodger
 
Microservices Cloud Club 2015-02-26
Microservices Cloud Club 2015-02-26Microservices Cloud Club 2015-02-26
Microservices Cloud Club 2015-02-26
Casey Bisson
 
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
EuroCloud
 
Docker12 factor
Docker12 factorDocker12 factor
Docker12 factor
John Zaccone
 
Get Connected – Using Open Source Technologies on Facebook
Get Connected – Using Open Source Technologies on FacebookGet Connected – Using Open Source Technologies on Facebook
Get Connected – Using Open Source Technologies on Facebook
Binesh Gummadi
 

Similar to The View - Deploying domino applications to BlackBerry MDS Studio (20)

Entwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshopEntwicker camp2007 blackberry-workshop
Entwicker camp2007 blackberry-workshop
 
IBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New TricksIBM and Node.js - Old Doge, New Tricks
IBM and Node.js - Old Doge, New Tricks
 
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing WorkloaAAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
 
Spring into the Cloud - JDC2012 Cairo, Egypt
Spring into the Cloud - JDC2012 Cairo, EgyptSpring into the Cloud - JDC2012 Cairo, Egypt
Spring into the Cloud - JDC2012 Cairo, Egypt
 
Softsphere 08 web services bootcamp
Softsphere 08 web services bootcampSoftsphere 08 web services bootcamp
Softsphere 08 web services bootcamp
 
Spring Into the Cloud
Spring Into the CloudSpring Into the Cloud
Spring Into the Cloud
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 Slides
 
Cloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentationsCloud Camp Chicago Dec 2012 - All presentations
Cloud Camp Chicago Dec 2012 - All presentations
 
Introduction to Web Services
Introduction to Web ServicesIntroduction to Web Services
Introduction to Web Services
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
 
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
2019 04-25-agile communitymeetup-essentialcapabilitiesbehindmicroservices
 
CloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
CloudFest Denver When Worlds Collide: HTML5 Meets the CloudCloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
CloudFest Denver When Worlds Collide: HTML5 Meets the Cloud
 
2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices2019 03-23-2nd-meetup-essential capabilities behind microservices
2019 03-23-2nd-meetup-essential capabilities behind microservices
 
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark LittleKeynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
Keynote | Middleware Everywhere - Ready for Mobile and Cloud | Dr. Mark Little
 
Case Study | EdisonWeb
Case Study | EdisonWebCase Study | EdisonWeb
Case Study | EdisonWeb
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Microservices Cloud Club 2015-02-26
Microservices Cloud Club 2015-02-26Microservices Cloud Club 2015-02-26
Microservices Cloud Club 2015-02-26
 
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
Luis Alves Martins Presentation / CloudViews.Org - Cloud Computing Conference...
 
Docker12 factor
Docker12 factorDocker12 factor
Docker12 factor
 
Get Connected – Using Open Source Technologies on Facebook
Get Connected – Using Open Source Technologies on FacebookGet Connected – Using Open Source Technologies on Facebook
Get Connected – Using Open Source Technologies on Facebook
 

More from Bill Buchan

Dummies guide to WISPS
Dummies guide to WISPSDummies guide to WISPS
Dummies guide to WISPS
Bill Buchan
 
WISP for Dummies
WISP for DummiesWISP for Dummies
WISP for Dummies
Bill Buchan
 
WISP Worst Practices
WISP Worst PracticesWISP Worst Practices
WISP Worst Practices
Bill Buchan
 
Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014
Bill Buchan
 
Dev buchan best practices
Dev buchan best practicesDev buchan best practices
Dev buchan best practices
Bill Buchan
 
Dev buchan leveraging
Dev buchan leveragingDev buchan leveraging
Dev buchan leveraging
Bill Buchan
 
Dev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent designDev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent design
Bill Buchan
 
Dev buchan 30 proven tips
Dev buchan 30 proven tipsDev buchan 30 proven tips
Dev buchan 30 proven tips
Bill Buchan
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscript
Bill Buchan
 
Bp301
Bp301Bp301
Ad507
Ad507Ad507
Ad505 dev blast
Ad505 dev blastAd505 dev blast
Ad505 dev blast
Bill Buchan
 
Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101
Bill Buchan
 
Reporting on your domino environment v1
Reporting on your domino environment v1Reporting on your domino environment v1
Reporting on your domino environment v1
Bill Buchan
 
12 Step Guide to Lotuscript
12 Step Guide to Lotuscript12 Step Guide to Lotuscript
12 Step Guide to Lotuscript
Bill Buchan
 
Everything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus scriptEverything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus script
Bill Buchan
 
Admin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-adAdmin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-ad
Bill Buchan
 
Lotusphere 2009 The 11 Commandments
Lotusphere 2009 The 11 CommandmentsLotusphere 2009 The 11 Commandments
Lotusphere 2009 The 11 Commandments
Bill Buchan
 
Lotusphere 2008 Worst practices
Lotusphere 2008 Worst practicesLotusphere 2008 Worst practices
Lotusphere 2008 Worst practices
Bill Buchan
 
Lotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
Lotusphere 2008 - Jumpstart 206 - Web Services BootcampLotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
Lotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
Bill Buchan
 

More from Bill Buchan (20)

Dummies guide to WISPS
Dummies guide to WISPSDummies guide to WISPS
Dummies guide to WISPS
 
WISP for Dummies
WISP for DummiesWISP for Dummies
WISP for Dummies
 
WISP Worst Practices
WISP Worst PracticesWISP Worst Practices
WISP Worst Practices
 
Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014Marykirk raft race presentation night 2014
Marykirk raft race presentation night 2014
 
Dev buchan best practices
Dev buchan best practicesDev buchan best practices
Dev buchan best practices
 
Dev buchan leveraging
Dev buchan leveragingDev buchan leveraging
Dev buchan leveraging
 
Dev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent designDev buchan everything you need to know about agent design
Dev buchan everything you need to know about agent design
 
Dev buchan 30 proven tips
Dev buchan 30 proven tipsDev buchan 30 proven tips
Dev buchan 30 proven tips
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscript
 
Bp301
Bp301Bp301
Bp301
 
Ad507
Ad507Ad507
Ad507
 
Ad505 dev blast
Ad505 dev blastAd505 dev blast
Ad505 dev blast
 
Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101Admin2012 buchan web_services-v101
Admin2012 buchan web_services-v101
 
Reporting on your domino environment v1
Reporting on your domino environment v1Reporting on your domino environment v1
Reporting on your domino environment v1
 
12 Step Guide to Lotuscript
12 Step Guide to Lotuscript12 Step Guide to Lotuscript
12 Step Guide to Lotuscript
 
Everything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus scriptEverything you ever wanted to know about lotus script
Everything you ever wanted to know about lotus script
 
Admin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-adAdmin camp 2011-domino-sso-with-ad
Admin camp 2011-domino-sso-with-ad
 
Lotusphere 2009 The 11 Commandments
Lotusphere 2009 The 11 CommandmentsLotusphere 2009 The 11 Commandments
Lotusphere 2009 The 11 Commandments
 
Lotusphere 2008 Worst practices
Lotusphere 2008 Worst practicesLotusphere 2008 Worst practices
Lotusphere 2008 Worst practices
 
Lotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
Lotusphere 2008 - Jumpstart 206 - Web Services BootcampLotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
Lotusphere 2008 - Jumpstart 206 - Web Services Bootcamp
 

The View - Deploying domino applications to BlackBerry MDS Studio

  • 1. Deploying Domino Applications to BlackBerry MDS Studio Bill Buchan HADSL © 2006 Wellesley Information Services. All rights reserved.
  • 2. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing BlackBerry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 2
  • 3. Who is the Target Audience? • Lotus Notes developers in BlackBerry enabled environments • Developers who wish to deploy applications to BlackBerries 3
  • 4. What Is This About? • This talk aims to demonstrate: How to web service enable Domino applications The BlackBerry MDS studio Developing your first BlackBerry application 4
  • 5. What Is This About? (cont.) • Why BlackBerry? Market leading handheld data device Robust Loved by CIOs Do you have them already? • Who am I? Bill Buchan Dual PCLP in v3, v4, v5, v6, v7 10+ years senior development consultancy for Enterprise customers Learn from my pain! 5+ years code auditing CEO — HADSL — developing best-practice tools 5
  • 6. What is this About?(cont.) • Where do I find BlackBerry MDS Studio? The BlackBerry Web site www.BlackBerry.com • The MDS toolkit contains: A BlackBerry simulator The BlackBerry Mobile Data Suite Engine An integrated development environment Note 6
  • 7. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing Blackberry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 7
  • 8. MDS Architecture • MDS is a Java-based application stack May run on the BlackBerry Enterprise Server In a small environment Larger environments may require dedicated servers Application repository holds applications Can push applications to users’ BlackBerries • MDS also provides: On-line data connectivity services via web services Allowing handsets to utilize web services Application access to PIM data on the BlackBerry Allowing applications to interrogate the BlackBerry 8
  • 9. Solution Architecture • MDS provides application and data to handsets Sec RIM u re D a ta ll Cha wa n nel re Fi Internet GPRS BES MDS W BlackBerry Se eb BlackBerry rv Domino BlackBerry ice Domino s Servers Domino Servers Don't MDS BES Mobile Data Suite BlackBerry Enterprise Server Servers RIM Research In Motion Forget GPRS General Packet Radio Service 9
  • 10. Solution Architecture (cont.) • We are interested in: Web service enabling a Domino application Interacting with that application via a BlackBerry handset • Is this difficult? No. The Blackberry MDS Studio makes it simple for you. • Is the Blackberry MDS Studio lightweight? No. It creates enterprise applications. • Is it difficult to use? No. This presentation will lead you through your first application. • Oh no. Not another IDE! It’s yet another IDE Similar to Visual Studio/Rational Application Developer 10
  • 11. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing Blackberry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 11
  • 12. Web Service Enabling: Introduction • What is a web service? A web service is a standard application-to-application interface It usually uses the “http” protocol — just like a web page It usually encapsulates its data into an XML file It can be made secure • How can I create a web service? Prior to Domino 7, using Java Servlets In Domino 7 you can create web services in LotusScript • How can I “consume” a web service: Quick and Dirty: MS SOAP DLL Use for Testing Better: use a Java Agent 12
  • 13. Web Services: Resources • www.nsftools.com Julian’s site is a very good repository of Domino Java Code • www.billbuchan.com My “Speaking Engagements” page has a web services example from ILUG • The sample database for this session • www.openNtf.org The “Stubby” project 13
  • 14. Web Services: Design • We shall create a web service that provides a single function GetJoke() shall return a string containing a single Joke Repeated calls to this function will return different jokes on a random basis • Open Designer and navigate to “Web Services” Create a new web service called “Simple” 14
  • 15. Web Services: Coding the Web Service Solution • Now populate our web service class Class testWebService ' This function returns a single string Public Function getJoke() As String On Error Goto errorhandler Msgbox "Being asked for a joke.." getJoke = “Whats Brown and Sticky ? A Stick!” exitFunction: Exit Function errorhandler: getJoke = "The system experienced a run-time error: "+_ Error$ + " at line: " +Trim(Str(Erl)) + Chr(10) Resume exitFunction End Function End Class 15
  • 16. Web Services: Create a Web Service Consumer • Go to www.nsftools.com and download the JURST toolkit Copy two script libraries from the example application to your application ApacheSoap Jurst • Create a new Java agent Call it “GetTheJoke” Set the Target to “None” 16
  • 17. Web Services: Create a Web Service Consumer (cont.) import lotus.domino.*; import com.nsftools.jurst.SoapHelper; public class JavaAgent extends AgentBase { public void NotesMain() { try { Session session = getSession(); AgentContext agentContext = session.getAgentContext(); Database db = agentContext.getCurrentDatabase(); String dbPath = db.getFilePath(); Name serverName = session.createName(db.getServer()); String wsdlUrl = "http://" + serverName.getCommon() + "/" + dbPath + "/Simple?WSDL"; SoapHelper sh = new SoapHelper(wsdlUrl); System.out.println(sh.callSimpleMethod("GetJoke")); } catch(Exception e) { e.printStackTrace(); } } 17 }
  • 18. Web Services: Running the Consumer • Open the Notes Java Debug Console “File”, “Tools”, “Show Java Debug Console” This shows all “print” statements from our Java code Note 18
  • 19. Web Services: Running the Consumer (cont.) • Click on “Actions”, “GetTheJoke” The results will appear in the Java Console window 19
  • 20. Web Services: Performance • Domino reloads LotusScript on each call Ouch. It might not handle large concurrency. No persistent (in memory) data Don’t do complex actions during your web service Keep it to lookup or store operations Write documents that are then “completed” by a scheduled agent How can I tell if its taking a long time? User response Lack of scalability in terms of concurrent users “Profile” the web service using agent profiling 20
  • 21. Web Services: Scalability • Want a heavyweight, scalable web service? Consider rewriting in Java: Persistent session data Caching of common lookup views Able to use threading to separate “heavy duty” tasks • Use a LotusScript web service to prototype and test • If performance does not scale, rewrite in Java 21
  • 22. Web Services: Summary • Web service enabling a Domino application: Domino 7 makes it simple to web service enable an application using LotusScript Lots of web service tutorials on the web • Remember: Web services are a standard, platform independent, language independent, application-to-application interface Useful for exposing Domino data to other platforms Useful for dispelling anti-Domino bias in your company Web services are not the point of this presentation! 22
  • 23. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing Blackberry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 23
  • 24. Installing Blackberry MDS Studio: Introduction • BlackBerry MDS Studio It’s a Windows-only installation kit Download from www.blackberry.com Obtain a Blackberry MDS Studio license key At the time of writing (August 2006): It was free! I installed version v1.0.4.13 Installation is relatively painless — less than 20 mins Needs 1.5gb free disk space Needs at least 1gb RAM 24
  • 25. Blackberry MDS Studio: Installation • Run the downloaded file, it will extract: “Setup.exe” a PDF document • Run “Setup.exe” 25
  • 26. Blackberry MDS Studio: Installation (cont.) • Accept all four license screens Including the “Bouncy Castle” License 26
  • 27. Blackberry MDS Studio: Installation (cont.) • Enter the file path I usually choose the default one 27
  • 28. Blackberry MDS Studio: Installation (cont.) • Enter the registration data you received from the BlackBerry Web site 28
  • 29. Blackberry MDS Studio: Installation (cont.) • Enter a Uniform Resource Identifier (URI) you wish to associate with your applications I used “CompanyName.com” 29
  • 30. Blackberry MDS Studio: Installation (cont.) • You are now prompted to select ports for various MDS services I recommend you leave defaults unless you absolutely know what you are doing! 30
  • 31. Blackberry MDS Studio: Installation (cont.) • Choose where you wish to create shortcuts 31
  • 32. Blackberry MDS Studio: Installation (cont.) • Confirm you wish to continue 32
  • 33. Blackberry MDS Studio: Installation (cont.) • Now sit back for 10-30 minutes whilst it installs 33
  • 34. Blackberry MDS Studio: Installation Confirmation • If the installation failed You might want to consider uninstalling and reinstalling • Start up Blackberry MDS Studio You should see this splash screen • Congratulations! 34
  • 35. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing Blackberry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 35
  • 36. MDS Studio First Look • Like many other IDEs: It has lots of screens It has a tree-style navigator to see objects Double-clicking on an object opens it in the editor Selecting an item allows you to edit its properties • It has two “perspectives” Application perspective is for editing the application Test perspective is for testing the application 36
  • 37. MDS Studio First Look (cont.) • It has a BlackBerry simulator You can choose different models to test your code • Generally it is: Stable Quick Easy to use • It’s very quick for debug/test cycles Just change perspective, edit, and retest 37
  • 38. MDS Documentation • The documentation is pretty good. But: Quite sparse in some respects You should rely on the online technical forum You might consider a technical support contract 38
  • 39. MDS Demo Demo Blackberry MDS Studio First look 39
  • 40. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing Blackberry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 40
  • 41. First Application: Introduction • We shall create a BlackBerry application To retrieve information from our Domino Server Using the web service we created earlier That is easy for the end user That shows how to: Amend screens Create scripts Call different actions • We shall compile and distribute the application To the built-in BlackBerry simulator 41
  • 42. First Application: Creating a New Project • Choose “File, New Project” And choose “Quick Start Approach Wizard” 42
  • 43. First Application: Creating a New Project (cont.) • Now enter the URI of the Web service Application http://<server>/<database>/<webservicename>?WSDL 43
  • 44. First Application: Creating a New Project (cont.) • Select the web service(s) you wish to import In our case, we just choose the single function GetJoke() 44
  • 45. First Application: Creating a New Project (cont.) • Finally, give the project a name 45
  • 46. First Application: Quick Fix • We shall apply a quick fix to this application The default application sends a web service query to our Domino server, and then displays a screen stating that the web service request has been sent We need to edit the Javascript routine that the “Go” button calls in order to allow the response event to trigger, and display our return value In the navigator screen, navigate to “Scripts” Open script “GETJOKERequest_onSubmit” Delete the second line of the script Click on “File”, “Save All” 46
  • 47. First Application: Quick Fix (cont.) 47
  • 48. First Project: Running the Project: • Right click on the project name in the explorer bar, and select “Test” This will compile, publish, and deploy the application to the simulator, and start the simulator If the MDS services have not yet started, they will also be started 48
  • 49. First Project: Running the Project (cont.) • The simulator will appear Use your mouse scroll wheel (or the down–arrow) to select the MDS Control Center icon on the BlackBerry menu Click the mouse scroll button to select (or click on the ScrollWheel on the right) • Can’t see the simulator? Check your taskbar. It often hides down there GOTCHA! 49
  • 50. First Project: Viewing the Project on the Simulator • On the simulator screen Select MDS Control Center Scroll down to your application Click on the application and choose “Start” from the menu 50
  • 51. First Project: Running the Project on the Simulator • We see a single screen with a single button Select and click on “Go” The application will then call our Domino Web service and display the results 51
  • 52. First Project: Initial Comments • We need to do some work Add more meaningful screen titles Bypass the “Go” button on the first screen so that the application automatically gets the first Joke Add a “Get Another” button to the second screen Make the Joke text read-only so that the user does not have to scroll past it to get to the button In fact — lets move the button to the top 52
  • 53. First Project: Updating the Front Screen • Switch back to Blackberry MDS Studio On the Blackberry MDS Studio, switch from the “Test Perspective” back to the “Development Perspective” On the Navigator, expand the “Test” project, expand “Applications”, expand “Screens” Double-click on the “scrMain” screen Remove the button Change the caption to “fetching the first joke” Click on the screen itself and change the Initialize property to run Script “GETJOKERequest_onSubmit” Change the window title to “Joke Server” Now click on “File”, “Save All” 53
  • 54. First Project: Updating the Front Screen (cont.) 54
  • 55. First Project: Updating the Second Screen • Lets update the second screen Double click on the “scrGETJOKEResponse” screen Delete the “Service Response” text and icon Delete the “JokeResponse” label Drag the button to the top of the screen Change the button text to “Get Another Joke” Change the OnClick action To a Script Choose Script GETJOKERequest_onSubmit Change the returned text to “read-only” Change the window title to “Joke Server” • Click on “File”, “Save All” 55
  • 56. First Project: Updating the Second Screen (cont.) 56
  • 57. First Project: Testing • Right click on the project, and choose “Test” This will recompile and redeploy the application to the simulator The application will refresh on the simulator screen Check that the version of the application on the simulator is the version you expect 57
  • 58. First Project: Conclusion • Congratulations! We have just completed an entire test + development cycle Web service enabled a Domino application Tested the web service application Created a complete new BlackBerry application using the Web Service Definition Language (WSDL) Deployed the application to the simulator Tested that application making “live” web service calls back to Domino Redesigned the UI of that application Recompiled and redeployed the application back to the simulator 58
  • 59. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing BlackBerry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 59
  • 60. A More Complex Application: Introduction • A more complex application allows the user to send data to the web service and act on its results In this case we shall allow the user to send a category or a search string The new version of the web service is not much more complicated. Only two new calls: GetJokeByCategory(category as String) as String SearchForJoke(searchString as String) as String • This demonstration shows: How to bind returned data to edit controls How to trigger messages when edit controls change 60
  • 61. A More Complex Application: Note • Note that: This is still not an enterprise application The methods used are to illustrate BlackBerry MDS Studio techniques, not necessarily best practice It is a live demo and therefore highly likely to crash! Demo Blackberry MDS Studio Demo 61
  • 62. What We'll Cover … • Introduction • Architectures • Web Service Enabling a Domino Application • Installing BlackBerry MDS Studio • BlackBerry MDS Studio Overview • First Application • A Complex Application • Wrap-up 62
  • 63. Resources • The BlackBerry MDS Studio: www.blackberry.com • The BlackBerry Developers area Domino Sample Code: www.blackberry.com/developers/resources /domino/samplecode.shtml • Example database for this presentation: 63
  • 64. Key Points to Take Home • Domino applications can be easily web service enabled • You don’t need a BlackBerry or a BES Server to code and test BlackBerry applications • Deploying Domino applications to the BlackBerry MDS Studio Uses web services Is straightforward • Blackberry MDS Studio Is a fairly simple IDE Quick to code and test May run out of steam with more complex applications 64
  • 65. Your Turn! Questions? How to Contact Me: Bill Buchan Bill@hadsl.com 65