Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft...

35
Groove: Building Enterprise Groove: Building Enterprise Workgroup Applications Workgroup Applications Hugh Pyle Hugh Pyle OFF303 OFF303 Senior Product Manager Senior Product Manager Microsoft Corporation Microsoft Corporation

Transcript of Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft...

Page 1: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

Groove: Building Enterprise Groove: Building Enterprise Workgroup ApplicationsWorkgroup Applications

Hugh PyleHugh PyleOFF303OFF303Senior Product ManagerSenior Product ManagerMicrosoft CorporationMicrosoft Corporation

Page 2: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft 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/

Page 3: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 4: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 5: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

Relay Server

DisconnectedEmployee

Employee

Partner

How Groove WorksHow Groove WorksA hybrid architectureA hybrid architecture

Page 6: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 7: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 8: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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”

Page 9: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 10: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 11: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 12: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

Agenda: Groove FormsAgenda: Groove Forms

What, whyWhat, why

Example applicationsExample applications

Demo: build a simple formDemo: build a simple form

Page 13: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 14: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 15: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 16: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 17: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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”

Page 18: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

Demo: Building a FormDemo: Building a Form

Page 19: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 20: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 21: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 22: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 23: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 24: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 25: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 26: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 27: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 28: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

Groove EDB UIGroove EDB UI

Page 29: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 30: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 31: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 32: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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

Page 33: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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/

Page 34: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

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/

Page 35: Groove: Building Enterprise Workgroup Applications Hugh Pyle OFF303 Senior Product Manager Microsoft Corporation.

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.