The View - Deploying domino applications to BlackBerry MDS Studio

614 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
614
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

The View - Deploying domino applications to BlackBerry MDS Studio

  1. 1. Deploying DominoApplications toBlackBerryMDS StudioBill BuchanHADSL © 2006 Wellesley Information Services. All rights reserved.
  2. 2. What Well 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. 3. Who is the Target Audience?• Lotus Notes developers in BlackBerry enabled environments• Developers who wish to deploy applications to BlackBerries 3
  4. 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. 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. 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 environmentNote 6
  7. 7. What Well 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. 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. 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 Dont MDS BES Mobile Data Suite BlackBerry Enterprise Server Servers RIM Research In Motion Forget GPRS General Packet Radio Service 9
  10. 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. 11. What Well 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. 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. 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. 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. 15. Web Services: Coding the Web Service Solution • Now populate our web service classClass 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 Functionerrorhandler: getJoke = "The system experienced a run-time error: "+_ Error$ + " at line: " +Trim(Str(Erl)) + Chr(10) Resume exitFunction End FunctionEnd Class 15
  16. 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. 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. 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. 19. Web Services: Running the Consumer (cont.)• Click on “Actions”, “GetTheJoke” The results will appear in the Java Console window 19
  20. 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. 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. 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. 23. What Well 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. 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. 25. Blackberry MDS Studio: Installation• Run the downloaded file, it will extract: “Setup.exe” a PDF document• Run “Setup.exe” 25
  26. 26. Blackberry MDS Studio: Installation (cont.)• Accept all four license screens Including the “Bouncy Castle” License 26
  27. 27. Blackberry MDS Studio: Installation (cont.)• Enter the file path I usually choose the default one 27
  28. 28. Blackberry MDS Studio: Installation (cont.)• Enter the registration data you received from the BlackBerry Web site 28
  29. 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. 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. 31. Blackberry MDS Studio: Installation (cont.)• Choose where you wish to create shortcuts 31
  32. 32. Blackberry MDS Studio: Installation (cont.)• Confirm you wish to continue 32
  33. 33. Blackberry MDS Studio: Installation (cont.)• Now sit back for 10-30 minutes whilst it installs 33
  34. 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. 35. What Well 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. 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. 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. 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. 39. MDS Demo Demo Blackberry MDS Studio First look 39
  40. 40. What Well 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. 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. 42. First Application: Creating a New Project• Choose “File, New Project” And choose “Quick Start Approach Wizard” 42
  43. 43. First Application: Creating a New Project (cont.)• Now enter the URI of the Web service Application http://<server>/<database>/<webservicename>?WSDL 43
  44. 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. 45. First Application: Creating a New Project (cont.)• Finally, give the project a name 45
  46. 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. 47. First Application: Quick Fix (cont.) 47
  48. 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. 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 thereGOTCHA! 49
  50. 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. 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. 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. 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. 54. First Project: Updating the Front Screen (cont.) 54
  55. 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. 56. First Project: Updating the Second Screen (cont.) 56
  57. 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. 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. 59. What Well 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. 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. 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. 62. What Well 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. 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. 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. 65. Your Turn! Questions? How to Contact Me: Bill Buchan Bill@hadsl.com 65

×