EclipseWorld 2006 Sep 6-8, 2006 Session 405 Eclipse Workgroup Collaboration Scott Lewis ECF Project Lead Composent, Inc. Dennis O’Flynn Corona Project Lead Compuware Corporation
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 2 Agenda Market for collaboration tools Workbench interoperability Workgroup interoperability Demo Eclipse collaboration projects –Corona – Tools Services Framework –ECF – Eclipse Communication Framework Questions & Answer
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 3 IT Business Challenges Deliver and maintain increasingly complex IT solutions –Multi-tier (distributed applications) –Multi-language (Java, XML, HTML, SQL, C#, etc.) –Multi-platform (hybrid applications as a result of application integration and legacy modernization) Increasingly complex IT organizations (project teams) –Involvement of business stakeholders –Multi-sourcing – combining in-house development with outsourcing and off-shoring in a single project –Team members in different geographic locations, in different time zones –Team member using different tools across the application life cycle The business wants IT to deliver more, faster and cheaper
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 4 Flow of Information Executive Manager Practitioner IT Governance Executive Dashboards Management Dashboards ProjectApplicationInfrastructure DevelopQualityDelivery Application Development Quality Assurance Testing Application Service Management Integrated Application Life Cycle Solutions Visibility and Control Optimize resources Measure ROI Best Practices Process maturity Expertise Reduced complexity Best Products Award-winning tools Life-cycle integration Across multiple platforms Portfolio Management ► Requirements ► Build ► Test ► Deploy ► Manage ► Support ►
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 5 Communication A key component of collaboration Communication at many different levels –Amongst developers that work on the same application –Amongst practitioners across the life cycle, business analysts, architects, developers, testers, project managers and operations –Amongst practitioners and managers Communication about many different subjects –Content – technology, business domain –Project – timelines, tasks, resources –Process – sequences, dependencies –Organization – responsibilities
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 6 Workgroup Collaboration A Workgroup is a group of people working together on a common set of tasks Workgroup Collaboration is the use of technologies that enable the workgroup’s members to work as if they were co-located –Improve communications –Common context –Sharing of information –Event notification New
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 7 Workgroup Collaboration Real or Hype? Microsoft –Team Foundation Server – Backend server for collaboration of information and rules –Visual Studio Team System – Utilizes information to create a tightly integrated tool environment IBM –Jazz, collaboration across the development environment Other Companies –Developing their own proprietary solutions for integration and collaboration
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 8 What the market needs An open collaboration solution Current solutions fall short –Meetings, conference calls/video, groupware, wiki’s, slashdot’s, etc. –IBM and Microsoft will build specific solutions to enhance their platforms – which tool do you use when your organization uses Microsoft on the front-end and J2EE on the back-end? Needed: Open Workgroup Collaboration –In context of a project, a workbench, a team, etc. –Only relevant information –Open solution owned, created and enhanced by the community –Flexible, customizable, extensible –Interoperability –Integration
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v1.0 9 Eclipse Foundation Collaboration Projects ECF (data collaboration) –Framework for building Integrated, Interoperable communications applications Corona (tool collaboration) –Framework for building contextual collaboration solutions, include server-side deployment ALF (process collaboration) –ALF Events, Provider Services, and ALF Service Flows Mylar (task collaboration) –Task focused UI for Eclipse that integrates task repositories such as Bugzilla, Trac, and JIRA.
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Workbench Interoperability The Eclipse Workbench is a Rich Client Platform Foundation for application plug-ins Common constructs such as Project Shared resources such as folders and files Resource change events OSGi runtime (Equinox) Equinox Frameworks Workbench Plug-in
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v OSGi Runtime: Equinox OSGi – Specification for services platform –Bundle Life Cycle Installed, Resolved (Starting, Active, Stopping), Uninstalled –Services Service Registration (org.osgi.framework.ServiceRegistration ) Service Tracker (org.osgi.util.tracker.ServiceTracker ) Event Service (org.eclipse.equinox.event) HTTP Service (org.eclipse.equinox.http) –Events Bundle, Framework, Log, etc… Implemented by Equinox All Eclipse plug-ins are actually OSGi bundles
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Workgroup Interoperability A Workgroup is comprised of multiple Workbenches sharing the same context Corona –Provide Eclipse server-side plug-in deployment –Framework for collaboration context (i.e. Project) –Distributed collaboration event model. ECF provides peer-to-peer communication framework ECF –APIs for peer-to-peer communications –Adapters and Extension Points for presence, data, discovery, etc… –Set of common collaboration tools Collaboration Server
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Use Case: Team Collaboration Collaboration Server
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Demo Collaboration Server Workbench ‘A’Workbench ‘B’ Workbench ‘A’ and ‘B’ belong to the same Workgroup, sharing the same Project context Workbench ‘A’ updates Project artifacts. Resource change events are published to Workgroup Workbench ‘B’ receives events and Chats with ‘A’ to discuss recent changes Workbench ‘A’ commits changes, ‘B’ receives events and synchronizes with CVS
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Corona Frameworks Core Framework Server-side platform Consistent Eclipse paradigm Equinox – OSGi runtime Common Eclipse frameworks Familiar programming model Collaboration Framework Contextual collaboration Distributed container context Workgroup communications Shared common constructs projects, resources, etc… Collaboration events SOA Framework OSGi bundles Lifecycle Services, Events, etc… Web service enablement Management via WSDM Semantic Framework Collaboration persistence History, Relationships Extensibility RDF / OWL
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Corona Server Technologies Equinox Frameworks Corona Plug-in SOA Component SOA Framework Collaboration Framework Semantic Framework Project Framework Plug-in SOA Component Corona Project Collaboration Corona Project Admin Plug-in SOA Component Plug-in SOA Component clients Server (Corona) Collaboration Events Non Eclipse Web Services Eclipse Workstation Non-Eclipse Workstation
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Context Containers Containers are used to store stuff Reference Repositories –Items and information that provide context for collaborating on a theme May be related and can be composited to create a larger contexts Extensible to assume specific context –i.e. ProjectContextContainers assume TeamMembers repository are part of the context New
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Corona Extensibility Eclipse Extension Point(s) –RepositoryAdapter Adapt existing repositories to the ContextContainer –RepositoryAdapterFactory Creates RepositoryAdapters from extension points OSGi Service(s) –ContainerEventAdmin Validates container events Forwards events to OSGi event admin service –ContainerEventRouter Routes container events to remote containers –ContextContainerManager Manages all context containers for the local environment Proxy to access remote ContextContainerManagers New
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ProjectContextContainer (exemplary implementation) Eclipse Extension Point(s) –ProjectContainerExplorer –ProjectContainerView –ProjectContainerViewPage –ProjectContainerBuilder OSGi Service(s) –ProjectContainerEventFactory Creates ProjectEvents for specific ProjectContextContainer New Project
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Corona Server Corona Client Container Container Manager Repository Repository Adapter Collaboration Event Service Container Viewer Editor Repository Repository Adapter Container Manager Proxy Collaboration Event Monitoring Corona Client Container Viewer Editor Container Manager Proxy Collaboration Event Monitoring Container Description Active Users New
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Corona: Server-Side Eclipse Corona requires server-side components to support distributed collaboration –Provides a non-UI Eclipse environment for the deployment of Eclipse plug-ins and OSGi bundles –Remote manageability via WSDM Apache Muse –Improved component deployment via SCA Apache Tuscany CoronaTuscany Apache Muse TPTP Tuscany Corona See session 605: SOA the SCA Way With Corona Friday, Sept 8, 10:45 AM – 12:15 PM New
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ECF Project Goals Support Development of distributed applications –Easier/Quicker –Extensible, Reliable, Open Interoperability –Support multi-protocol clients –No protocol lock-in: Choose your service provider and client Integration –Cleanly separate applications from protocol details –Enable communication components: ECF Extension APIs
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ECF Extension APIs Presence –IM and Chat Datashare –Channels for asynch data delivery Discovery –LAN and WAN-based service discovery File Sharing –Protocols for sending/retrieving files Shared Object –Dynamic replication of object state
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ECF Extension APIs (cont.) Call API –VOIP call signalling and media transport Publish/Subscribe –Group distribution and synchronization of data structures Bulletin Board –RSS/Atom Others (i.e. yours)...all open source/community designed/developed
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ECF Adapters org.eclipse.core.runtime.IAdaptable –public Object getAdapter(Class clazz) –Allows runtime query for container capabilities –Example: Presence/IM
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ECF Extension Points Namespace (Identity) –Define new namespaces and service identifiers (URIs) e.g. ecftcp://ecf.eclipse.org:3282/server e.g. Container Factory –Define new implementations of IContainer –Your own protocols/services exposed via existing API
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v ALM Tool Collaboration Corona provides a collaboration framework that enables a context for collaboration ALM tools can collaborate with one another based upon a shared context Collaboration events can be shared with tools residing in multiple ALM stages ECF provides communication APIs to enable peer-to-peer tool integration Tools, such as chat and shared editors, are provided by ECF that can enhance the collaboration experience The result is a richer context of integration for tools participating in ALM RequirementsDesignBuildTestManageSupport
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Commercial Business Opportunities? Customizable and flexible (control your our destiny) Eclipse RCP provides workbench interoperability Eclipse collaboration projects (Corona, ECF, etc.) provides workgroup interoperability –Your product becomes part of a solution for business analysts, architects, developers, testers, project managers, operations –Workgroup and Enterprise Eclipse provides open framework that allow your applications to participate in a larger solution
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Next Steps Corona –Milestone (remote accessibility) ECF –Release 1.0 is getting closer (v0.9.0) Corona / ECF –Align concepts of collaboration container Community involvement –Open source only works when the community is involved. New
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Resources Corona –Dennis O’Flynn, Project Lead – ECF –Scott Lewis, Project Lead – EclipseWorld –Session 605: SOA the SCA Way with Corona Friday, Sept 8, 10:45 AM – 12:15 PM –Session 805: Developing Collaborative Tools Friday, Sept 8, 3:45 PM – 5:15 PM
Eclipse Workgroup Collaboration | © 2006 by Scott Lewis, Dennis O’Flynn; made available under the EPL v Questions