Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft...
-
Upload
allan-armstrong -
Category
Documents
-
view
214 -
download
0
Transcript of Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft...
Groove: Building Enterprise Groove: Building Enterprise Workgroup ApplicationsWorkgroup Applications
Hugh PyleHugh PyleOFF303OFF303Senior Product ManagerSenior Product ManagerMicrosoft CorporationMicrosoft Corporation
Building Enterprise Building Enterprise Workgroup Applications Workgroup Applications With Groove 3.1With Groove 3.1
video: http://www.escapeyesterworld.com/video: http://www.escapeyesterworld.com/
AgendaAgenda
Groove: What, why, whereGroove: What, why, where
Groove FormsGroove Forms
Groove Web ServicesGroove Web Services
Groove Enterprise Data Bridge (EDB) Groove Enterprise Data Bridge (EDB) and Process Integrationand Process Integration
QuestionsQuestions
SurveysSurveys
……
DocumentsDocuments
DiscussionsDiscussions
TasksTasks ContactsContacts
MembersMembersCalendarCalendar
TeamTeam
Flexible workspace collaboration tools that match Flexible workspace collaboration tools that match how work gets donehow work gets done
Rich Rich clientclient MobileMobile
Cross-Cross-organizationorganization
Small Small teamsteamsShort Short
termterm
ThinThin clientclientBroad Broad
reachreachSearchabSearchablele
CommunitieCommunitiess
Scalability Scalability & & AvailabilitAvailabilityy
Long termLong term
Ad hocAd hoc
Collaborative WorkspacesCollaborative WorkspacesStay on the same page in a common work Stay on the same page in a common work areaarea
Relay Server
DisconnectedEmployee
Employee
Partner
How Groove WorksHow Groove WorksA hybrid architectureA hybrid architecture
Relay Server
DisconnectedEmployee
Management Server
Employee
Partner
Business Apps.(e.g. Siebel)
Databases(e.g. SQL Server)
Information Sharing(e.g. SharePoint Portal
Server)
EnterpriseData Bridge
How Groove WorksHow Groove WorksA hybrid architectureA hybrid architecture
Groove SynchronizationGroove Synchronization
Every user change creates a “Delta”Every user change creates a “Delta”Transaction applied to local copy of Transaction applied to local copy of workspaceworkspace
Queued for dissemination to each other Queued for dissemination to each other useruser
Via relay if direct connection is not availableVia relay if direct connection is not available
Queued locally if no communicationsQueued locally if no communications
Groove Dynamics: subsystem Groove Dynamics: subsystem responsible for transaction responsible for transaction synchronizationsynchronization
Guarantees that all users see the same Guarantees that all users see the same sequence of transactions (even if sequence of transactions (even if incomplete)incomplete)
““Push”; also can “fetch” missing Push”; also can “fetch” missing transactionstransactions
Groove SecurityGroove Security
All on-disk data is strongly encryptedAll on-disk data is strongly encryptedUser passphrase provides the Account User passphrase provides the Account keykey
Account file contains list of workspaces, Account file contains list of workspaces, and key for each workspaceand key for each workspace
Each workspace has its own keyEach workspace has its own key
Workspaces re-keyed on membership Workspaces re-keyed on membership changechange
All on-the-wire data is strongly All on-the-wire data is strongly encryptedencrypted
““Immune to user indifference”Immune to user indifference”
Where Should I Use Where Should I Use Groove?Groove?
Virtual workgroupsVirtual workgroupsGeographically dispersedGeographically dispersedNeed to collaborate outside the Need to collaborate outside the enterpriseenterpriseMobile or occasionally connected Mobile or occasionally connected employees employees Teams dealing with adverse Teams dealing with adverse infrastructureinfrastructure
Best fit with: professional services, IT Best fit with: professional services, IT project management and public project management and public sectorsectorSome new Office “12” integration Some new Office “12” integration comingcoming
InfoPath, RTC, WSSInfoPath, RTC, WSSExtends what we’ll see todayExtends what we’ll see today
Integration ScenarioIntegration Scenario
Contacts formContacts form
Read data from Groove into Read data from Groove into <something><something>
Using Groove clientUsing Groove client
Write data from <something> into Write data from <something> into GrooveGroove
Using Groove EDBUsing Groove EDB
OrchestrateOrchestrateCreate workspace, add data, invite Create workspace, add data, invite membersmembers
AgendaAgenda
Groove: What, why, whereGroove: What, why, where
Groove FormsGroove Forms
Groove Web ServicesGroove Web Services
Groove Enterprise Data Bridge (EDB) Groove Enterprise Data Bridge (EDB) and Process Integrationand Process Integration
QuestionsQuestions
Agenda: Groove FormsAgenda: Groove Forms
What, whyWhat, why
Example applicationsExample applications
Demo: build a simple formDemo: build a simple form
Groove FormsGroove Forms
Customizable tool for workgroup appsCustomizable tool for workgroup apps
Forms DesignerForms DesignerFields, Forms, ViewsFields, Forms, Views
Forms UIForms UI
Distributed databaseDistributed databaseRecordsRecords
Parent/Response relationshipsParent/Response relationships
Groove Forms: FieldsGroove Forms: Fields
Simple field typesSimple field typesText, Multi-LineText, Multi-Line
Numeric, CurrencyNumeric, Currency
Checkboxes, Option Buttons, Dropdown, Checkboxes, Option Buttons, Dropdown, ListboxListbox
Extended field typesExtended field typesRich TextRich Text
AttachmentsAttachments
ContactContact
Others: Script Buttons, layout Others: Script Buttons, layout elementselements
Groove Forms: ViewsGroove Forms: Views
Multiple views per toolMultiple views per tool
Easy to build viewsEasy to build viewsSelect columns (scalar, richtext, etc)Select columns (scalar, richtext, etc)
Select sorting, grouping, defaultsSelect sorting, grouping, defaults
Add selection conditionsAdd selection conditionsDisplay only records from selected formsDisplay only records from selected forms
Display only records matching particular Display only records matching particular criteriacriteria
User-visible viewsUser-visible views
Hidden views; lookup fields, lookup Hidden views; lookup fields, lookup scriptscript
ProgrammabilityProgrammability
Scripting in a FormScripting in a FormUser Interface: DHTML + CSS + ScriptUser Interface: DHTML + CSS + Script
Add/change/move/show/hide form elementsAdd/change/move/show/hide form elementsDynamic validation (on UI events)Dynamic validation (on UI events)
Record data: Script + Forms APIRecord data: Script + Forms APIRead/write fields on recordsRead/write fields on recordsNavigate related recordsNavigate related records
Send IM, navigateSend IM, navigateNon-record data (persistent & non-Non-record data (persistent & non-persistent)persistent)
Macros (script)Macros (script)Web Services: external accessWeb Services: external access
Design ChangesDesign Changes
Your Forms design is part of the Your Forms design is part of the workspaceworkspace
When design is updated,When design is updated,all workspace members receive the all workspace members receive the changeschanges
Design management facilities:Design management facilities:““Save Tool as Template” (GTA)Save Tool as Template” (GTA)
““Save Workspace as Template” (GSA)Save Workspace as Template” (GSA)
““Replace Design”Replace Design”
Demo: Building a FormDemo: Building a Form
Forms ExamplesForms Examples
More on More on http://www.groove.net/solutions/http://www.groove.net/solutions/
Downloadable solution templatesDownloadable solution templates
Run “as-is” or customizeRun “as-is” or customize
AgendaAgenda
Groove: What, why, whereGroove: What, why, where
Groove FormsGroove Forms
Groove Web ServicesGroove Web Services
Groove Enterprise Data Bridge (EDB) Groove Enterprise Data Bridge (EDB) and Process Integrationand Process Integration
QuestionsQuestions
Agenda: GWSAgenda: GWS
What, why, historyWhat, why, history
Example applicationsExample applications
Building Groove Web Services Building Groove Web Services applicationsapplications
Web referencesWeb references
Headers, securityHeaders, security
Structure: Account, Identity, Space, Tool, Structure: Account, Identity, Space, Tool, datadata
Forms Data and .NET DataSetForms Data and .NET DataSet
Groove Web ServicesGroove Web Services
Groove is a web services serverGroove is a web services serverhttp://localhost:9080/GWS/Groove/http://localhost:9080/GWS/Groove/<service><service>
SOAP access to Groove servicesSOAP access to Groove servicesAccounts, Identities, ContactsAccounts, Identities, Contacts
Presence / Awareness, MessagingPresence / Awareness, Messaging
Workspaces, Tools, Data (CRUD)Workspaces, Tools, Data (CRUD)
Local UI (navigate, open dialogs)Local UI (navigate, open dialogs)
Developer kit providesDeveloper kit providesWSDL, XSDWSDL, XSD
Code samples, DocumentationCode samples, Documentation
GWS ApplicationsGWS Applications
Local access to GrooveLocal access to GrooveLocal data integrationLocal data integration
Adding Groove services to existing Adding Groove services to existing applicationsapplications
Remote access to GrooveRemote access to GrooveSpecialized applications: server-basedSpecialized applications: server-based
SecuritySecuritySecret request key in SOAP headerSecret request key in SOAP header
Request keys in registry HKCURequest keys in registry HKCU
Demo: Reading Forms DataDemo: Reading Forms Data
Outlook addinOutlook addinRead Forms data from GrooveRead Forms data from Groove
(Groove Forms data is a serialized (Groove Forms data is a serialized DataSet)DataSet)Write to Outlook ContactsWrite to Outlook Contacts
Demo: Writing Forms DataDemo: Writing Forms Data
Standalone executable (Windows Forms)Standalone executable (Windows Forms)Read list data from WSS, to DataSetRead list data from WSS, to DataSetWrite records to GrooveWrite records to Groove
AgendaAgenda
Groove: What, why, whereGroove: What, why, where
Groove FormsGroove Forms
Groove Web ServicesGroove Web Services
Groove Enterprise Data Bridge (EDB) Groove Enterprise Data Bridge (EDB) and Process Integrationand Process Integration
QuestionsQuestions
Groove EDB ComponentGroove EDB Component
Enterprise Data Bridge: Groove data Enterprise Data Bridge: Groove data serverserver
Always-OnAlways-On
Always-ConnectedAlways-Connected
Privileged connections – host in data Privileged connections – host in data centercenter
Scalable workspace memberScalable workspace memberThousands of workspacesThousands of workspaces
Scalable GWS serverScalable GWS serverOptimized Web services HTTP stackOptimized Web services HTTP stack
Groove EDB UIGroove EDB UI
Casahl ComponentCasahl Component
Third-Party Companion Product: Third-Party Companion Product: CasahlCasahlOff-the-shelf record data Off-the-shelf record data synchronizationsynchronization
Product bundle available with Groove Product bundle available with Groove EDBEDB
EDB + Casahl ecKnowledge +EDB + Casahl ecKnowledge +Casahl’s Groove connector + one otherCasahl’s Groove connector + one other
Reduce or eliminate controller Reduce or eliminate controller developmentdevelopment
Build vs. Buy (many connectors available)Build vs. Buy (many connectors available)
Scheduled synchronization jobsScheduled synchronization jobsXML-RPC API for controllersXML-RPC API for controllers
Create synchronization targets and jobsCreate synchronization targets and jobsTrigger synchronization, query job statusTrigger synchronization, query job status
Integration ExamplesIntegration Examples
Siemens Medical LogisticsSiemens Medical LogisticsQuote (from Siebel) and/or Sales Order Quote (from Siebel) and/or Sales Order (SAP)(SAP)
Groove workspace created on EDBGroove workspace created on EDB
Initial data populated from SQL ServerInitial data populated from SQL Server
Invitations sent to membersInvitations sent to members
User data synchronized to SQL ServerUser data synchronized to SQL Server
Florida SERTFlorida SERT““Constellation” of workspacesConstellation” of workspaces
Controller listens for GWS events (data Controller listens for GWS events (data change)change)
Groove-to-Groove synchronizationGroove-to-Groove synchronization
Integration ExampleIntegration Example
Windows SharePoint Services (WSS) Windows SharePoint Services (WSS) sitesite
List of contactsList of contacts
List of workspacesList of workspaces
Create workspace from templateCreate workspace from template
Populate workspace data from WSS Populate workspace data from WSS listlist
Save invitation file as WSS Save invitation file as WSS attachmentattachment
Controller ArchitectureController Architecture
Typical controller – very repeatableTypical controller – very repeatableManage workspace status, creation, Manage workspace status, creation, archivalarchival
Manage member status, invitationsManage member status, invitations
Listen for eventsListen for events
Synchronize data on event, or on Synchronize data on event, or on scheduleschedule
Deployment optionsDeployment optionsConsole application + Task SchedulerConsole application + Task Scheduler
Windows Forms applicationWindows Forms application
Windows ServiceWindows Service
AgendaAgenda
Groove: What, why, whereGroove: What, why, where
Groove FormsGroove Forms
Groove Web ServicesGroove Web Services
Groove Enterprise Data Bridge (EDB) Groove Enterprise Data Bridge (EDB) and Process Integrationand Process Integration
QuestionsQuestions
[email protected]@microsoft.comhttp://blogs.msdn.com/hughpyle/http://blogs.msdn.com/hughpyle/
Community ResourcesCommunity Resources
At PDCAt PDCFor more information, go seeFor more information, go see
Hands-On Lab Hands-On Lab OFFHOL22: Using Groove Web Services in a Windows Forms OFFHOL22: Using Groove Web Services in a Windows Forms Application Application
OFF Track LoungeOFF Track LoungeHugh Pyle, Paresh Suthar, Bob DoyleHugh Pyle, Paresh Suthar, Bob Doyle
After PDCAfter PDCPresentation & code on DVDPresentation & code on DVD
More background: More background: http://blogs.msdn.com/hughpyle/http://blogs.msdn.com/hughpyle/
Developer resources:Developer resources:http://www.groove.net/solutions/develop/http://www.groove.net/solutions/develop/
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.