Uklug 2009 Lotus Symphony
-
Upload
john-head -
Category
Technology
-
view
1.766 -
download
0
description
Transcript of Uklug 2009 Lotus Symphony
Lotus Symphony and You
How to stop giving Microsoft your money!
Before we begin …
• Please turn off/set to vibrate/mute allCell PhonesPagersComputers
• If they go off and I hear them, they are mine
Please remember to fill out your evaluations
50 Minutes of John talking about …
• Lotus Symphony
– The Executive Perspective
– The User Perspective
– The Developer Perspective
Who am I?
John D. Head
•Director of Enterprise Collaboration at PSC Group, LLC
•Involved in Lotus technology since 1993
•OpenNTF.org Steering Committee Member and IP Working Group Chairman
Speaker
•Over 30 sessions at Lotusphere since 1996
•Speaker at Lotus Developer , ILUG, UKLUG, and other conferences
Author
•Publications on Office and SmartSuite integration with Notes
•LotusUserGroup.org contributing Author and Forum moderator
•―Lotus Symphony for Dummies‖ Technical Editor
•―Self Assessment and Strategy Guide for Migrating from Domino Document
Manager ― Redbook Author
www.johndavidhead.com twitter.com/johnhead
4
PSC Group, LLC
IBM Premium Business Partner for
19+ Years
Microsoft Managed Partner
Notes & Domino 8.5 Design Partner
OpenNTF.org Alliance Member,
Steering Committee Company, & Former
Host of OpenNTF.org
Winner of 2007 & 2009 Lotus Awards!
• Host of the following blogs:• Ed Brill’s
(www.edbrill.com)
• Lotus Design Blog(Mary Beth
Raven)
(www.notesdesign.com)
• LotusStaffNotes (Brent Peters)
(www.lotusstaffnotes.com)
• Lotus Connections Team
(synch.rono.us)
• Lotus Sametime
(www.thesametimeblog.com)
• Domino Server Team
(www.dominoblog.com)
• Lotus Mashups
(www.mix-and-mash.com)
• Chris Pepin – IBM CTO’s Office
(www.chrispepin.com)
Let’s take a poll
• Who is using …
–Office 97 and earlier
–Office 2000
–Office XP
–Office 2003
–Office 2007
–OpenOffice / StarOffice
–Lotus Symphony
–Other
OpenOffice.org — The History
• StarDivision StarOffice written in the mid 80s
• Bought by Sun Microsystems in 1999, StarOffice released in August 1999
• Source code released October 2000
• OpenOffice.org 1.0 released May 2002, 2.0 in October 2005
• OpenDocument format becomes international standard ISO/IEC 26300 November 2006
• IBM Lotus Workplace Productivity Editors released 2005– Based on OpenOffice.org 1.1
• OpenOffice.org 2.2 released March 2007
• Notes 8 to include IBM Productivity Tools, based on OpenOffice.org 1.1X
• Lotus Symphony Beta 1 released in October 2007
• Lotus Symphony 1.0 May 2008
• Lotus Symphony 1.3 Spring 2009
• Lotus Notes & Domino 8.5.1 Fall 2009
What is OpenOffice.org?
• Free office suite
• Description from their Web site
– ―OpenOffice.org is a multiplatform and multilingual office suite
and an open-source project. Compatible with all other major
office suites, the product is free to download, use, and
distribute. To help build the community, join us.‖
• Their mission statement
– ―To create, as a community, the leading international office suite
that will run on all major platforms and provide access to all
functionality and data through open-component based APIs
and an XML-based file format.‖
What is OpenOffice.org? (cont.)
• Getting past the marketing message
– OpenOffice.org is an alternative to Microsoft Word, Excel, and PowerPoint, and it is free
• Provides the following applications:
– Writer — document editor
– Impress — presentation program
– Math — math function creator
– Draw — vector drawing tool
– Calc — spreadsheet
– Base — database
Why Should I Care About OpenOffice.org?
• Only office suite that supports Open Document Format (ODF) 100%
• A free alternative to Microsoft Office
• Runs on three platforms
– Windows
– Mac
– Linux
• Saves to PDF natively
• OpenOffice.org is the basis of the IBM Lotus Symphony
What is Lotus Symphony?
• IBM branded the Notes 8 Productivity Tools as Lotus Symphony
• Stand-alone Release
• Beta 1 was released in Oct 07
• IBM is on a 8 week release cycle with Symphony
• Notes 8.0.1 has Symphony Beta 4
• Notes 8.5 Beta 1 has Symphony 1.0
• Notes 8.5.1 has Symphony 1.3
• Symphony 1.3 stand-alone available
Lotus Symphony Details
• How do they relate to OpenOffice.org?
– They are based on OpenOffice.org 1.1
– IBM has made changes since the code branch
• Do they support ODF?
– Yes, as well as Microsoft Office 97 through 2003
• Do they have an API?
– Yes, an HTML-like document API
– Supported in Eclipse.org development and composite
applications
• What about LotusScript?
– No support for LotusScript or OLE/COM in 8.0.0
– 8.0.1 adds basic OLE/COM support
– 8.5.1 adds LotusScript and Java API
Lotus Symphony – The Executive Perspective
• For the past 10 years, Office has been the monopoly
• Users are changing the way they work
• Speed and mobility vs feautures
– Lightweight applications
– On-line editing
– Mobile editing
Microsoft Office is cheap!
• This is the #1 misconception in our
industry
• Microsoft is more expensive than Lotus …
• ―Prove It‖
• OK …
Lotus Symphony – The Executive Perspective
The Microsoft Desktop vs. Lotus Collaboration Suite Cost
Note: All MS prices are approximate Open Price License prices in US$
Lotus Symphony – The Executive Perspective
But that isn’t the real cost
• In 2007, Microsoft broke the Core CALS for
many of the servers
• Standard and Enterprise
• Many features now require an Enterprise CAL
Lotus Symphony – The Executive Perspective
Microsoft Exchange Server 2007
Lotus Symphony – The Executive Perspective
Microsoft Office Communication Server 2007
Lotus Symphony – The Executive Perspective
Microsoft Sharepoint Server 2007
Lotus Symphony – The Executive Perspective
Microsoft Office Enterprise 2007
Lotus Symphony – The Executive Perspective
The Microsoft Desktop vs. Lotus Collaboration Suite with Enterprise CALS
Note: All MS prices are approximate Open Price License prices in US$
Lotus Symphony – The Executive Perspective
Do you want Support?
• Now we have to add Software Assurance
• Upgrade Assurance
– Did you buy Windows SA in 2003?
– You didn’t get Windows Vista until 2006/07
– You wasted money!
Lotus Symphony – The Executive Perspective
The Microsoft Desktop vs. Lotus Collaboration Suite with Enterprise CALS and SA
Note: All MS prices are approximate Open Price License prices in US$
Lotus Symphony – The Executive Perspective
But wait … we have the OS
• You get your Operating System with your machines
– Windows OEM
– Linux
– Mac OS
• Your numbers are bloated!
• Ok … let’s fix that
Lotus Symphony – The Executive Perspective
The Microsoft Desktop vs. Lotus Collaboration SuiteCost with Enterprise CALS and SA
Note: All MS prices are approximate Open Price License prices in US$
Lotus Symphony – The Executive Perspective
What are you really paying?
• These are all Open Licensing or SRP pricing
• You won’t pay those prices
• Even with license agreement savings, you will
pay 50% to 70% more for Microsoft
Lotus Symphony – The Executive Perspective
So what am I paying for?
Lotus Symphony – The Executive Perspective
What about support?
Support Option 1
Symphony Embedded Version
–Passport Advantage support
–Included with purchase of other products
• Notes 8, 8.5, & 8.5.1
• Foundations
–No additional charge
Support Option 2
Standalone Symphony Free Support
– Web based moderated forum support
– Forums monitored by IBM and the community
– Hints and Tips
– Developer support forum
Support Option 3
Symphony Standalone Fee Based Support Offering
– Passport Advantage support – Passport Advantage or Express Contract required
– $25,000 for up to 20,000 users – Limited to 20 technical contacts
– Worldwide 24x7 Unlimited Incidents
Lotus Symphony – The Executive Perspective
Resources
Project Liberate
• SW License Optimization Can:
– Understand how to demonstrate the
alternatives to Microsoft EA bundle
so your customers could reduce
their budget and be able to invest in
mission critical projects.
– Explain Microsoft interdependencies
strategy and how customers can be
tied without being able to negotiate.
– Show customers the Real Cost of
Microsoft’s collaboration strategy
based on lessons learned from
hundreds of customers
engagements.
• www.ibm.com/software/info/liberate
Executive Briefings
• 2 Day on-site briefings
• Covers the Lotus Symphony story
for
– Executives
– Administrators
– Developers
• Includes a Microsoft Office
assessment and strategy white
paper
• Contact [email protected] for
more info
Lotus Symphony – The Executive Perspective
Lotus Symphony – The User Perspective
• Why would a user want to use something other than Office?
• Why are they using Google Docs?
Identifying Users
• Casual- Task Users• Common uses of documents, spreadsheets & presentations
• Mostly viewing and light editing
• Filling out templates (status reports, etc.)
• Use out of box with little to no customization
• Example: Customer service, and other supporting functions
• Start now!
Lotus Symphony – The User Perspective
Identifying Users
• Medium – Power Users• More robust needs for documents, spreadsheets & presentations
• Stronger interoperability requirements as need to collaborate with
Office users
• Example: Sales, marketing,
• Move over time
Lotus Symphony – The User Perspective
Identifying Users
• Power & Macro Users• Heavy Excel users
• Third-party application integration
• Heavy reliance on macros
• Example: Finance department
• Symphony 1.3 added Data Pilots (Pivot Tables)
• Symphony 2.0 will allow VBA macros to be run
Lotus Symphony – The User Perspective
Lotus Symphony Features
• Three applications• Lotus Symphony Documents
• Lotus Symphony Presentations
• Lotus Symphony Spreadsheets
Robust and complete feature set• Designed for the majority of end users
• Intuitive interface, easy to learn
• Multiple file formats supported
Lotus Symphony – The User Perspective
Lotus Symphony File Formats
• Additional supported formats– Export documents, spreadsheets and presentations to Adobe PDF
– Import Lotus SmartSuite documents, spreadsheets, and presentations
Lotus Symphony – The User Perspective
Application ISO/IEC ODF Microsoft
Office
OpenOffice.or
g XML
Other
Formats
Documents .odt .doc, dot
read .docx,
dotx
.sxw .rtf
.txt
Spreadsheets .ods .xls, xlt
read .xlsx, xltx
.sxc .csv
Presentations .odp .ppt, pot
Read .pptx,
potx
.sxi
Lotus Symphony Documents
• Create, edit, & share complex word processing documents
• Robust feature set including:
– Formatting options for text, page,
paragraph
– Headers, footers, footnotes, indexes,
table of contents
– Drawing tools
– Pre-defined document styles
– Pre-defined fields (i.e., dates, page
numbering)
Lotus Symphony – The User Perspective
Lotus Symphony Presentations
• Create, edit, and share complex presentations
• Robust feature set including:
– Pre-defined presentation
templates
– Slide show mode with animations
and page transitions
– Speaker presentation timing and
rehearsal modes
– Speaker notes
– Flexible navigation views – page
by page, text outline, page
thumbnail, and speaker note
views
Lotus Symphony – The User Perspective
Lotus Symphony Spreadsheets
• Create, edit, and share complex
spreadsheets
• Robust feature set includes:
– Supports conventional row and column
format for spreadsheets
– Spreadsheet sizes up to 256 columns
and 65,536 rows
– Supports up to 256 sheets per
spreadsheet
– Large library of pre-defined calculation
functions
Lotus Symphony – The User Perspective
Lotus Symphony Deployment
• Included with Lotus Notes
– 8.0.0 = Productivity Editors
– 8.0.1 = Lotus Symphony Beta 4
– 8.0.2 = Lotus Symphony 1.0
– 8.5.0 = Lotus Symphony 1.1
– 8.5.1 = Lotus Symphony 1.3
• Included with Lotus Foundations
• Stand-alone
Lotus Symphony – The User Perspective
Can we update the embedded tools ourselves?
• NO
• Not Yet
• Coming soon post 8.5.1
• Symphony 2.0 Beta will install on top of Notes
8.5.1
• Sametime 8.5 should also update the 8.5.1 client
Lotus Symphony – The User Perspective
Lotus Symphony – The Developer Perspective
• Symphony has multiple methods for customization
– UNO API
– Symphony Plug-ins
– Composite Applications
– 8.5.1 Symphony API for LotusScript and Java
Introduction to OpenOffice.org Development
• Designed on an interface-based component model called Universal Network Objects (UNO)
• UNO definition
– UNO offers interoperability between different programming
languages, different object models, different machine
architectures, and different processes; either in a local network
or even via the Internet
– UNO components can be implemented in, and accessed from,
any programming language for which a UNO language
binding exists
Lotus Symphony – The Developer Perspective
Does this work with Lotus Symphony
• All of the demos will be done using Lotus Symphony
• You will need Notes 8.0.1 or higher
– IBM has exposed the Lotus Symphony objects to the registry to allow COM to work
• If you want run the demos in 8.0.0, they will
invoke OpenOffice.org
• There is a way to hack 8.0.0 to work, but it is not
supported
Lotus Symphony – The Developer Perspective
What is the ServiceManager?
• ServiceManager is similar to the NotesSession class
• It is a factory class that gets you to other places
Set SM=CreateObject("com.sun.star.ServiceManager")
• Think of the ServiceManager as a back-end class, and we want the front end (like NotesUIWorkspace)
Set Desktop=SM.createInstance("com.sun.star.frame.Desktop")
Lotus Symphony – The Developer Perspective
What Did That Do?
• Calling the ServiceManager created an OpenOffice.org window, but we need to do more …
Lotus Symphony – The Developer Perspective
Let’s Start Writer — Word Processing Application
• So far we have an OpenOffice.Org window, but it doesn’t know what application it will be — we have to tell it
Dim args()
Set WriterApplication=Desktop.loadComponentFromURL
("private:factory/swriter","_blank",0,args)
• Args is a variant array
– We don’t want to pass any parameters, but it must be an array
• The ―s‖ in ―swriter‖ stands for ―Star‖
• Now we have a word processor up and running
Lotus Symphony – The Developer Perspective
The Picture So Far
• Now we have an application open
• Time to do something!
Lotus Symphony – The Developer Perspective
Let’s Add Some Text
• First, we need to get a handle to the text part of the document
Set WriterText=WriterApplication.getText()
• Next, we need a cursor position where we can insert the text
Set Cursor=WriterText.createTextCursor()
• Finally, we can make the traditional greeting
Call WriterText.insertString(Cursor,"Hello World!",False)
Lotus Symphony – The Developer Perspective
Hello World!
• After executing all of that code, this is the result• Now let’s try it for real
Lotus Symphony – The Developer Perspective
Notes to Writer/Lotus Symphony Documents
Demo — Example 1
“Hello World” from
Notes to Writer/
Lotus Symphony Documents
Lotus Symphony – The Developer Perspective
Let’s Start Calc — Spreadsheet Application
• Calc uses a different URL to define the application
Set CalcApplication =
Desktop.loadComponentFromURL_("private:factory/scalc","_bl
ank",0,args)
• The command above creates the workbook
• Next, we need to get the first sheet
Set Worksheet=CalcApplication.Sheets.getByName("Sheet1")
Lotus Symphony – The Developer Perspective
Let’s Start Calc — Spreadsheet Application (cont.)
• Finally, we access the cell into which we want to enter text
Set cell=Worksheet.getCellByPosition(3,6)
• We have set the string in a cell, but which cell is
it?
Lotus Symphony – The Developer Perspective
Calc/Lotus Symphony Spreadsheets ―Hello World‖
Demo — Example 2
“Hello World” with
Notes and Calc/
Lotus Symphony
Spreadsheets
Where will the text go?
Lotus Symphony – The Developer Perspective
Notes with Calc — D7!
• Why did the text go into cell D7?
• Didn’t we write to cell (3,6)?
Lotus Symphony – The Developer Perspective
Rows and Columns Are Numbered from Zero
• Just like arrays in Notes, the index starts at 0!
Lotus Symphony – The Developer Perspective
Introduction to Impress
• Impress and Draw are almost the same application
• Pages contain shapes
• Shapes can contain text
• Text is handled just as it is in Writer
Lotus Symphony – The Developer Perspective
Let’s Start Impress — Presentation Application
• To create the instance of Impress, call its URL
Set ImpressApplication=Desktop.loadComponentFromURL_
("private:factory/simpress","_blank",0,args)
• Next, call the getDrawPages function to create the default presentation
Set Presentation=ImpressApplication.getDrawPages()
• To get the first slide, use the getByIndex method
Set Slide=Presentation.getByIndex(0)
Lotus Symphony – The Developer Perspective
Let’s Start Impress — Presentation Application (cont.)
• Each layout type has its own number
– To create a title page, enter the following:
Slide.layout=1
• Finally, we need to get the title and handle it
like it’s a Writer text object
Set title=Slide.getbyindex(0)
Set TitleText=title.getText()
Set Cursor=TitleText.createTextCursor()
Call TitleText.insertString(Cursor,"Hello World!",False)
Lotus Symphony – The Developer Perspective
Impress and Notes — The Result
Lotus Symphony – The Developer Perspective
Impress/Lotus Symphony Presentations ―Hello World‖
Demo — Example 3
“Hello World” with
Notes and Impress/
Lotus Symphony
Presentations
Lotus Symphony – The Developer Perspective
Using OpenOffice.org/Lotus Symphony Within Your Applications
• Add value by:
– Writer — printing
– Calc — number crunching and charting
– Impress — presentations
• One of the great value adds you get is PDF
generation
• Instead of ―exporting‖ to ODF, you select PDF
Lotus Symphony – The Developer Perspective
Exporting to PDF
• Creating a PDF from any OpenOffice.org application is very easy
args1.Name = "URL"
args1.Value = "file:///"+strOutputFN
args2.Name = "FilterName"
args2.Value = "writer_pdf_Export"
Set argsFinal(0)=args1
Set argsFinal(1)=args2
Kill strKillFN
Call objDocument.storeToURL("file:///"+strOutputFN,argsFinal)
• A PDF of the same name as the file will be saved
Lotus Symphony – The Developer Perspective
OpenOffice.org Integration in a Real-World Application
Demo — Example 4
An invoicing
application that uses
OpenOffice.org
Lotus Symphony – The Developer Perspective
Using the Lotus Symphony Toolkit
• Documentation and samples for integrating the Lotus Symphony with Notes 8 Standard
• Lotus Symphony Developers API 8.0 Windows.exe
• Download this from Lotus Symphony website
• Targeted at people who know:
– Java
– HTML internals
– ODF
• Most of the time you will use this from a Composite Application (CA)
Lotus Symphony – The Developer Perspective
Productivity Tools Architecture
Lotus Symphony – The Developer Perspective
Lotus Symphony Toolkit
• Developer Guide
– Overview, development environment setup, development process, API introduction, Sample code
– How to customize Symphony and make use of UNO
API
• Samples
– Customize Symphony menu, toolbar, side shelf
– API usage (Java, UNO)
• API reference
– Javadoc
Lotus Symphony with Eclipse.org Plug-ins
• Enable deploying Eclipse plug-ins to Symphony
• API for accessing Symphony controls and document content
• Enable UI extensions
– Menu (add-ins)
– Toolbar (set of buttons)
– Stack in side shelf
– Another window
• Examples
– AutoRecognizer
– Translator
– Backend integration
– Customized editor
Lotus Symphony Plug-ins
Demo — Example 5
Insert Graphic Demo
Lotus Symphony – The Developer Perspective
More info in the ―IBM Lotus Symphony Developer's Guide.pdf‖ that
comes with the Symphony Toolkit
Notes 8.5.1 and the Symphony API
• Included with Notes 8.5.1 is the new Symphony
API
• Supports LotusScript and Java
• Must run from Notes client – does not work with
Standalone Symphony Application
(applications or plug-ins)
• API is modeled after Notes Object Model
• Symphony Container added to Composite
Applications thru the CA Editor
Symphony Documents LotusScript API
Symphony Spreadsheets LotusScript API
Symphony Presentations LotusScript API
Step 1: Symphony Application
• Create a new SymphonyApplication object
• This is a base level object, much like the
NotesSession
• You will not see anything on screen after setting
this
Dim application As SymphonyApplication
Set application = New SymphonyApplication
Step 2: Symphony Documents
• Initialize the Documents Application
You should see the Symphony Application at this
point
Dim documents As SymphonyDocuments
Set documents = application.Documents
Step 3: Open a New Document
• Create a new document
• You can also create a new document based on a
Template using the second property
Dim document As SymphonyDocument
Set document = documents.AddDocument("",False,True)
• New Document based on a template
Set document = documents.AddDocument("D:\FileTypeAssociation\test.ott",True,True)
Step 4: Set the Range
• You can set a range based on a paragraph, table,
or in this case, the entire document contents
Dim range As SymphonyTextRange
Set range = document.content.End
Step 5: Insert Text
• Using the InsertBefore or InsertAfter methods,
you can insert text based on any range or object
Call range.InsertBefore("Hello World")
“Hello World” in Symphony Documents
via LotusScript
Dim application As SymphonyApplication
Dim documents As SymphonyDocuments
Dim document As SymphonyDocument
Dim range As SymphonyTextRange
Set application = New SymphonyApplication
Set documents = application.Documents
Set document = documents.AddDocument("",False,True)
Set range = document.content.End
Call range.InsertBefore("Hello World")
Lotus Symphony API via LotusScript
Demo — Example 6
“Hello World” in
Documents using
LotusScript
Lotus Symphony – The Developer Perspective
More info in the ―Symphony Developer's Guide for Notes.pdf‖ that comes
with the Symphony Toolkit
Lotus Symphony API via LotusScript
Demo — Example 7
Generating a
Document via
LotusScript
Lotus Symphony – The Developer Perspective
More info in the ―Symphony Developer's Guide for Notes.pdf‖ that comes
with the Symphony Toolkit
Possible Future for Developers
• Content model for easy control and content manipulation
• As editor component in Expeditor
solutions
• Composite application on Symphony
• Need stand alone composite
application editor
• Interoperability with OpenOffice.org
programmability
• UNO API and StarBasic
• Interoperability with MS Office
programmability
• VBA interpreter
• Symphony in a browser
• DOM model for accessing content via JavaScript
Third-Party Application Support
• Product vs. Custom Development
• Both have their place
• Integra for Notes Symphony
Edition
• Supports Lotus Symphony and
the Notes Productivity Editors
• Requires 8.5.1
• Lotus Spreadsheets support
today
www.integra4notes.com
Lotus Symphony – The Developer Perspective
Lotus Symphony Programmability SummarySymphony in Notes 8.5.1 Symphony 1.3 Symphony in Expeditor
(future)
Eclipse Plug-in Yes Yes Yes
Composite Application
Yes (in nsf) Yes Yes (via Portal)
Lotuscript Support
Yes No No
Server Support/Managed
Domino No Lotus Expeditor Server Websphere Portal
Local services Editors/Mail/Calendar/... Editors, Web Browser Editors/DB2e/Encryption...
Development Tools
Toolkit for Productivity Tools
Domino Desinger
Symphony Toolkit Expeditor Toolkit
Support Service Symphony Web Site Service
Skills needed for developers
Notes/Java Eclipse, Java, Expeditor
Expeditor/Portal
Lotus Symphony Roadmap
2009 / 10
• Symphony 2.0
• Major rewrite
• Built on top of the OpenOffice 3.X code trunk
• Performance enhancements
• New functions
– Support for Office 2007 file format (write)
– Improved pivot table capabilities
– Macro enablement
• Continued Focus Items
– Usability
– Developer 3rd party application support
– Performance
Wrap Up
• Lotus Symphony will continue to mature
• Notes 8.5.1 includes Symphony 1.3
• We have multiple options
– Office, Symphony, OpenOffice.org, etc.
• The battle is just begun
– ODF vs. Office XML (OOXML)
• Notes 8.5.1 bring us a LotusScript and Java API
• Symphony 2.0 targeted for 1H 2010
• Competition will be good for us … if we can deal with all the changes