SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
1
1
Confluence as a Platform

Jonathan Gilbert

Senior Developer

Atlassian




                          2
                              2
Agenda
• Why Build on Confluence?
• Confluence Advantages
• Example Application Architecture
• Application Audience
• The Road Ahead




                                     3
                                         3
Why build on Confluence?


                   ?



               ?




                           4
                           4
When to build on Confluence?
• When to choose Confluence           • When to avoid Confluence
 • Content based                      • Structured data storage needs
 • Collaborative                      • Specific, unsupported technology
 • Confluence already being used by      requirements
   target audience                    • Core product customisation is required




                                                                                 5
                                                                                     5
Confluence Advantages
• Content Persistence
• Content Discovery
• Integration
• Easy Development




                        6
                            6
Content Persistence


 Pages & Blogs   Attachments   Comments   Bandana




                                                    7
                                                        7
Content Persistence


 Pages & Blogs   Attachments     Comments        Bandana




 Versioning           Import & Export       Backup & Restore

                                                               8
                                                                   8
Content Discovery


          Labels




                    9
                        9
Content Discovery


              Labels                  Feeds




                       Notifications           Activity Stream
     Search

                                                                10
                                                                 10
Integration


Microsoft Office Support   External Systems Integration    Users & Groups




   Integrated UI             Page Gadget      Authentication & Authorisation



                                                                           11
                                                                               11
Easy Development
• Atlassian Plugin SDK
• Dependency Injection
• Hot Deploy




                         12
                          12
Easy Development
• UI
 • Reusable Components
 • Fully Customisable

• Internationalisation
• Shared Access Layer




                         13
                          13
Easy Development
• Confluence Source Provided
• Huge Development Community
 • Forums
 • Online Documentation
 • Public issue tracking
 • Tons of examples
    • 400+ existing plugins




                               14
                                14
Architecture
• Example Application   Service     UI
                           s    jQuer
                                         Vel
                           REST API      XW
                                 API




                             Feeds
                             Plugin Core




                        Blogs
                        Label
                        Page




                        Band
                        Attac
                        Com
                        User
                        Search & Persistence
                                               15
                                                15
Architecture - Core
• Confluence Managers   Service     UI
• Labels                  s    jQuer
                                        Vel
• Bandana
                          REST API      XW
                                API




                            Feeds
                            Plugin Core




                       Blogs
                       Label
                       Page




                       Band
                       Attac
                       Com
                       User
                       Search & Persistence
                                              16
                                               16
Architecture - Core
• Dependency Injection – Spring Framework   Service     UI
                                               s    jQuer
                                                             Vel
                                               REST API      XW
                                                     API




                                                 Feeds
                                                 Plugin Core




                                            Blogs
                                            Label
                                            Page




                                            Band
                                            Attac
                                            Com
                                            User
                                            Search & Persistence
                                                                   17
                                                                    17
Architecture - Core
• Dependency Injection – Spring Framework                  Service     UI
public class ExampleProcessor {                               s    jQuer
•     public ExampleProcessor(PageManager pageManager) {                    Vel
•            ...
      }                                                       REST API      XW
      public void setSpaceManager(SpaceManager spaceManager){       API




                                                                Feeds
            ...
      }                                                         Plugin Core
}




                                                           Blogs
                                                           Label
                                                           Page




                                                           Band
                                                           Attac
                                                           Com
                                                           User
                                                           Search & Persistence
                                                                                  18
                                                                                   18
Architecture - Core
• Shared Components - OSGi   Service     UI
                                s    jQuer
                                              Vel
                                REST API      XW
                                      API




                                  Feeds
                                  Plugin Core




                             Blogs
                             Label
                             Page




                             Band
                             Attac
                             Com
                             User
                             Search & Persistence

                                                    19
Architecture - Core
• Shared Components - OSGi                                         Service              UI
  • Export                                                              s        jQuer
                                                                                             Vel
<component key="exampleService" name="Example Service" class="com.atlassian.example.impl.DefaultAppService">
    <interface>com.atlassian.example.AppService</interface>
</component>
                                                                         REST API            XW
                                                                                  API




                                                                       Feeds
                                                                            Plugin Core




                                                                  Blogs
                                                                  Label
                                                                  Page




                                                                  Band
                                                                  Attac
                                                                  Com
                                                                  User
                                                                  Search & Persistence

                                                                                                           20
Architecture - Core
• Shared Components - OSGi                                         Service              UI
  • Export                                                              s        jQuer
                                                                                             Vel
<component key="exampleService" name="Example Service" class="com.atlassian.example.impl.DefaultAppService">
    <interface>com.atlassian.example.AppService</interface>
</component>
                                                                         REST API            XW
  • Import
<component-import name="exampleService" key="exampleService">                     API




                                                                       Feeds
    <interface>com.atlassian.example.AppService</interface>
</component-import>                                                         Plugin Core




                                                                  Blogs
                                                                  Label
                                                                  Page




                                                                  Band
                                                                  Attac
                                                                  Com
                                                                  User
                                                                  Search & Persistence

                                                                                                           21
Architecture - Core
• New Features           Service     UI
 • Commentable objects      s    jQuer
 • Spaced UserStatus                      Vel
 • Custom Space Types
                            REST API      XW
 • Multi-label queries
                                  API




                              Feeds
                              Plugin Core




                         Blogs
                         Label
                         Page




                         Band
                         Attac
                         Com
                         User
                         Search & Persistence
                                                22
                                                 22
Architecture - Core
• New Features                                 Service     UI
 • Bandana 3.0                                    s    jQuer
    • Custom storage contexts                                   Vel
    • Enumeration of stored keys per context
    • Custom serialisers                          REST API      XW
                                                        API




                                                    Feeds
                                                    Plugin Core




                                               Blogs
                                               Label
                                               Page




                                               Band
                                               Attac
                                               Com
                                               User
                                               Search & Persistence
                                                                      23
                                                                       23
Architecture – Traditional UI
• XWork Actions                  Service     UI
• Velocity                          s    jQuer
                                                  Vel
• Web Resources
                                    REST API      XW
                                          API




                                      Feeds
                                      Plugin Core




                                 Blogs
                                 Label
                                 Page




                                 Band
                                 Attac
                                 Com
                                 User
                                 Search & Persistence
                                                        24
                                                         24
Architecture – Traditional UI
<xwork name="Example Actions" key="exampleactions">
    <package name="example" extends="default" namespace="/example">Service     UI
         <default-interceptor-ref name="defaultStack"/>
         <action name="doStuff" class="bean:stuffAction">             s    jQuer
                                                                                              Vel
             <result name="input" type="velocity">/example/templates/action/dostuff.vm</result>
         </action>
    </package>
</xwork>
                                                                         REST API             XW
                                                                                   API




                                                                        Feeds
                                                                             Plugin Core




                                                                   Blogs
                                                                   Label
                                                                   Page




                                                                   Band
                                                                   Attac
                                                                   Com
                                                                   User
                                                                   Search & Persistence
                                                                                                    25
                                                                                                     25
Architecture – Traditional UI
<xwork name="Example Actions" key="exampleactions">
    <package name="example" extends="default" namespace="/example">Service     UI
         <default-interceptor-ref name="defaultStack"/>
         <action name="doStuff" class="bean:stuffAction">             s    jQuer
                                                                                              Vel
             <result name="input" type="velocity">/example/templates/action/dostuff.vm</result>
         </action>
    </package>
</xwork>
                                                                         REST API             XW
                                                                                   API




                                                                        Feeds
<web-resource key=“exampleResource">
  <transformation extension="txt">
     <transformer key=“example" />                                           Plugin Core
  </transformation>




                                                                   Blogs
                                                                   Label
                                                                   Page




                                                                   Band
                                                                   Attac
                                                                   Com
                                                                   User
  <resource type="download" name="testTemplate.txt" />
</web-resource>
<web-resource-transformer key="example" class="bean:exampleTransformer" />

                                                                   Search & Persistence
                                                                                                    26
                                                                                                     26
Architecture – REST UI
• Client                       Service     UI
  • JQuery                        s    jQuer
  • Atlassian User Interface                    Vel
• Server                          REST API      XW
  • Macros                              API




                                    Feeds
  • REST Framework 2.0
     • Jersey                       Plugin Core
     • Interceptors




                               Blogs
                               Label
                               Page




                               Band
                               Attac
                               Com
                               User
                               Search & Persistence
                                                      27
                                                       27
Architecture – REST UI
<rest name="Example Rest Service" key="rest-service-example" path="/exampleService" version="1.0“/>
                                                                  Service     UI
                                                                     s    jQuer
                                                                                             Vel
                                                                        REST API            XW
                                                                                  API




                                                                       Feeds
                                                                            Plugin Core




                                                                  Blogs
                                                                  Label
                                                                  Page




                                                                  Band
                                                                  Attac
                                                                  Com
                                                                  User
                                                                  Search & Persistence
                                                                                                      28
                                                                                                       28
Architecture – REST UI
<rest name="Example Rest Service" key="rest-service-example" path="/exampleService" version="1.0“/>
                                                                    Service     UI
@XmlRootElement(name = “example")
public class ExampleEntity {                      {
                                                                       s    jQuer
•     @XmlElement public String name;                 name: name,
                                                      id: id
                                                                                             Vel
•     @XmlAttribute public long id;               }
}
                                                                         REST API            XW
                                                                                  API




                                                                         Feeds
                                                                            Plugin Core




                                                                    Blogs
                                                                    Label
                                                                    Page




                                                                    Band
                                                                    Attac
                                                                    Com
                                                                    User
                                                                    Search & Persistence
                                                                                                      29
                                                                                                       29
Architecture – REST UI
<rest name="Example Rest Service" key="rest-service-example" path="/exampleService" version="1.0"/>
                                                                    Service     UI
@XmlRootElement(name = “example")
public class ExampleEntity {                      {
                                                                       s    jQuer
•     @XmlElement public String name;                 name: name,
                                                      id: id
                                                                                             Vel
•     @XmlAttribute public long id;               }
}
                                                                         REST API            XW
@Path("/example")
                                                                                  API




                                                                         Feeds
public class ExampleResource {
      @GET
•     public Response get() {                                               Plugin Core
•             ExampleEntity exampleEntity = …




                                                                    Blogs
                                                                    Label
                                                                    Page




                                                                    Band
                                                                    Attac
                                                                    Com
                                                                    User
•             return Response.ok(exampleEntity).build();
      }
}

                                                                    Search & Persistence
                                                                                                      30
                                                                                                       30
Architecture – REST UI
• <div id="exampleArea"/>
                            Service     UI
                               s    jQuer
                                             Vel
                               REST API      XW
                                     API




                                 Feeds
                                 Plugin Core




                            Blogs
                            Label
                            Page




                            Band
                            Attac
                            Com
                            User
                            Search & Persistence
                                                   31
                                                    31
Architecture – REST UI
• <div id="exampleArea"/>
                                                    Service     UI
•
•
     <div>
         <span>{id}</span><input value="{name}"/>      s    jQuer
•    </div>                                                          Vel
                                                       REST API      XW
                                                             API




                                                         Feeds
                                                         Plugin Core




                                                    Blogs
                                                    Label
                                                    Page




                                                    Band
                                                    Attac
                                                    Com
                                                    User
                                                    Search & Persistence
                                                                           32
                                                                            32
Architecture – REST UI
• <div id="exampleArea"/>
• <script type="text/x-template" title="entity-template">   Service     UI
•
•
      <div>
          <span>{id}</span><input value="{name}"/>             s    jQuer
•     </div>                                                                 Vel
• </script>

                                                               REST API      XW
                                                                     API




                                                                 Feeds
                                                                 Plugin Core




                                                            Blogs
                                                            Label
                                                            Page




                                                            Band
                                                            Attac
                                                            Com
                                                            User
                                                            Search & Persistence
                                                                                   33
                                                                                    33
Architecture – REST UI
• <div id="exampleArea"/>
• <script type="text/x-template" title="entity-template">      Service     UI
•
•
      <div>
          <span>{id}</span><input value="{name}"/>                s    jQuer
•     </div>                                                                    Vel
• </script>

• jQuery.ajax({
                                                                  REST API      XW
•     url: contextPath + '/rest/exampleService/1.0/example',
                                                                        API




                                                                    Feeds
•     type: 'GET',
•     dataType: 'json',
•     contentType: 'application/json; charset=utf-8',               Plugin Core
•     success: function(entity) {




                                                               Blogs
                                                               Label
                                                               Page




                                                               Band
                                                               Attac
                                                               Com
                                                               User
•
•     }
• });

                                                               Search & Persistence
                                                                                      34
                                                                                       34
Architecture – REST UI
• <div id="exampleArea"/>
• <script type="text/x-template" title="entity-template">          Service     UI
•
•
      <div>
          <span>{id}</span><input value="{name}"/>                    s    jQuer
•     </div>                                                                                 Vel
• </script>

• jQuery.ajax({
                                                                         REST API            XW
•     url: contextPath + '/rest/exampleService/1.0/example',
                                                                                  API




                                                                       Feeds
•     type: 'GET',
•     dataType: 'json',
•     contentType: 'application/json; charset=utf-8',                       Plugin Core
•     success: function(entity) {




                                                                  Blogs
                                                                  Label
                                                                  Page




                                                                  Band
                                                                  Attac
                                                                  Com
                                                                  User
•          AJS.$('#exampleArea').append(AJS.template.load('entity-template').fill(entity).toString());
•     }
• });

                                                                  Search & Persistence
                                                                                                         35
                                                                                                          35
Architecture - Federation
• REST                       Service     UI
 • XML                          s    jQuer
 • JSON                                       Vel
• Feeds                         REST API      XW
• Gadgets                             API




                                  Feeds
 • Page Gadget                    Plugin Core




                             Blogs
                             Label
                             Page




                             Band
                             Attac
                             Com
                             User
                             Search & Persistence
                                                    36
                                                     36
Application Audience
• Organisation Specific
• Commercial & Open Source




                             37
                              37
Organisation Specific
• Confluence is already deployed
 • No Resource Requirements
 • Infrastructure Support
 • Political Support




                                  38
                                   38
Commercial & Open Source

• Confluence has a huge customer base (22,000)
• Hosting on plugins.atlassian.com
 • Open or closed source
 • Free or commercial

• Confluence Blog
• Codegeist
• AtlasCamp

                                                39
                                                 39
The Road Ahead
• Full REST APIs
• AppLinks
• Unified Plugin Manager
• Structured Data Storage




                            40
Summary
 • Content based & Collaborative Applications will benefit
 • Confers number of benefits
 • Development is easy
 • REST Application Architecture
 • Audience



• Confluence Rocks for Small, Content-Driven Applications!




                                                            41
                                                             41
Where next?
• Sign up to the forums
 • http://forums.atlassian.com/

• Download the plugin SDK
• Check out the Atlassian Developer Blog
 • http://blogs.atlassian.com/developer/

• Check out the Confluence docs
 • http://confluence.atlassian.com/




                                           42
                                            42

Contenu connexe

Tendances

Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Arun Gupta
 
InfoAxon Business Plan
InfoAxon Business PlanInfoAxon Business Plan
InfoAxon Business Plandahiyavin
 
Extend your CMS Investment to Video Content
Extend your CMS Investment to Video ContentExtend your CMS Investment to Video Content
Extend your CMS Investment to Video ContentBrightcove
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinsonmfrancis
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcaresetstanford
 
Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Zubair Ali
 
Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Arun Gupta
 
Reconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented ArchitecturesReconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented Architectureslseinturier
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationArun Gupta
 
Building Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxBuilding Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxelliando dias
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemTim Ellison
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGiIlya Rybak
 
Modular EJBs in OSGi - Tim Ward
Modular EJBs in OSGi - Tim WardModular EJBs in OSGi - Tim Ward
Modular EJBs in OSGi - Tim Wardmfrancis
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book SupplementChuong Nguyen
 
Collab net overview_june 30 slide show
Collab net overview_june 30 slide showCollab net overview_june 30 slide show
Collab net overview_june 30 slide showsfelsenthal
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudArun Gupta
 

Tendances (20)

Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011
 
InfoAxon Business Plan
InfoAxon Business PlanInfoAxon Business Plan
InfoAxon Business Plan
 
Extend your CMS Investment to Video Content
Extend your CMS Investment to Video ContentExtend your CMS Investment to Video Content
Extend your CMS Investment to Video Content
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcare
 
Alfresco Offering
Alfresco OfferingAlfresco Offering
Alfresco Offering
 
Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012
 
Liferay on docker
Liferay on dockerLiferay on docker
Liferay on docker
 
Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7
 
Reconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented ArchitecturesReconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented Architectures
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE Application
 
J S F For 4gl
J S F  For 4glJ S F  For 4gl
J S F For 4gl
 
Building Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxBuilding Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjax
 
Report swings
Report swingsReport swings
Report swings
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
 
Java Modularity with OSGi
Java Modularity with OSGiJava Modularity with OSGi
Java Modularity with OSGi
 
Modular EJBs in OSGi - Tim Ward
Modular EJBs in OSGi - Tim WardModular EJBs in OSGi - Tim Ward
Modular EJBs in OSGi - Tim Ward
 
03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement03.eGovFrame Runtime Environment Training Book Supplement
03.eGovFrame Runtime Environment Training Book Supplement
 
Collab net overview_june 30 slide show
Collab net overview_june 30 slide showCollab net overview_june 30 slide show
Collab net overview_june 30 slide show
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the Cloud
 

Similaire à Confluence as a Platform - Atlassian Summit 2010

Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications Munish Gupta
 
Growing Adoption of Open Source in Enterprises
Growing Adoption of Open Source in EnterprisesGrowing Adoption of Open Source in Enterprises
Growing Adoption of Open Source in EnterprisesWSO2
 
WCI 10gR3 overview
WCI 10gR3 overviewWCI 10gR3 overview
WCI 10gR3 overviewTerry Wang
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server PerformanceBIOVIA
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptOpenStack Foundation
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptOpenStack Foundation
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersBrian Huff
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management PrimerRichard Esplin
 
AWS API Framework Overview
AWS API Framework OverviewAWS API Framework Overview
AWS API Framework OverviewAPI Talent
 
7-10-2009 Sakai 3 Overview (Michael Korcuska)
7-10-2009 Sakai 3 Overview (Michael Korcuska)7-10-2009 Sakai 3 Overview (Michael Korcuska)
7-10-2009 Sakai 3 Overview (Michael Korcuska)Mathieu Plourde
 
Alfresco WCM Roadmap 2010 (Cheetah & Swift)
Alfresco WCM Roadmap 2010 (Cheetah & Swift)Alfresco WCM Roadmap 2010 (Cheetah & Swift)
Alfresco WCM Roadmap 2010 (Cheetah & Swift)Alfresco Software
 
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3SAP Portal
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?weschwee
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoMohd Safian
 

Similaire à Confluence as a Platform - Atlassian Summit 2010 (20)

Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications
 
IT Governance Portals
IT Governance   PortalsIT Governance   Portals
IT Governance Portals
 
Growing Adoption of Open Source in Enterprises
Growing Adoption of Open Source in EnterprisesGrowing Adoption of Open Source in Enterprises
Growing Adoption of Open Source in Enterprises
 
Liferay Portal Customizing to Business Needs
Liferay Portal Customizing to Business NeedsLiferay Portal Customizing to Business Needs
Liferay Portal Customizing to Business Needs
 
WCI 10gR3 overview
WCI 10gR3 overviewWCI 10gR3 overview
WCI 10gR3 overview
 
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
(ATS4-APP09)Tips and tricks for Managing Symyx Notebook Server Performance
 
zAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.pptzAgile for OpenStack Summit - v2-3.ppt
zAgile for OpenStack Summit - v2-3.ppt
 
Achieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.pptAchieving Visibility and Insight across OpenStack Projects.ppt
Achieving Visibility and Insight across OpenStack Projects.ppt
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio Developers
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
AIS SharePoint & BI Presentation 24th july 2012
AIS SharePoint & BI Presentation 24th july 2012AIS SharePoint & BI Presentation 24th july 2012
AIS SharePoint & BI Presentation 24th july 2012
 
Crx 2.2 Deep-Dive
Crx 2.2 Deep-DiveCrx 2.2 Deep-Dive
Crx 2.2 Deep-Dive
 
FISL: Content Management Primer
FISL: Content Management PrimerFISL: Content Management Primer
FISL: Content Management Primer
 
AWS API Framework Overview
AWS API Framework OverviewAWS API Framework Overview
AWS API Framework Overview
 
M meijer api management - tech-days 2015
M meijer   api management - tech-days 2015M meijer   api management - tech-days 2015
M meijer api management - tech-days 2015
 
7-10-2009 Sakai 3 Overview (Michael Korcuska)
7-10-2009 Sakai 3 Overview (Michael Korcuska)7-10-2009 Sakai 3 Overview (Michael Korcuska)
7-10-2009 Sakai 3 Overview (Michael Korcuska)
 
Alfresco WCM Roadmap 2010 (Cheetah & Swift)
Alfresco WCM Roadmap 2010 (Cheetah & Swift)Alfresco WCM Roadmap 2010 (Cheetah & Swift)
Alfresco WCM Roadmap 2010 (Cheetah & Swift)
 
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
 
What is Google App Engine?
What is Google App Engine?What is Google App Engine?
What is Google App Engine?
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 

Plus de Atlassian

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020Atlassian
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020Atlassian
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App ShowcaseAtlassian
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UIAtlassian
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge RuntimeAtlassian
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceAtlassian
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge TriggersAtlassian
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeAtlassian
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelAtlassian
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemAtlassian
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the HoodAtlassian
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAtlassian
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginAtlassian
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingAtlassian
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterAtlassian
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindAtlassian
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Atlassian
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsAtlassian
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamAtlassian
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in MindAtlassian
 

Plus de Atlassian (20)

International Women's Day 2020
International Women's Day 2020International Women's Day 2020
International Women's Day 2020
 
10 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 202010 emerging trends that will unbreak your workplace in 2020
10 emerging trends that will unbreak your workplace in 2020
 
Forge App Showcase
Forge App ShowcaseForge App Showcase
Forge App Showcase
 
Let's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UILet's Build an Editor Macro with Forge UI
Let's Build an Editor Macro with Forge UI
 
Meet the Forge Runtime
Meet the Forge RuntimeMeet the Forge Runtime
Meet the Forge Runtime
 
Forge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User ExperienceForge UI: A New Way to Customize the Atlassian User Experience
Forge UI: A New Way to Customize the Atlassian User Experience
 
Take Action with Forge Triggers
Take Action with Forge TriggersTake Action with Forge Triggers
Take Action with Forge Triggers
 
Observability and Troubleshooting in Forge
Observability and Troubleshooting in ForgeObservability and Troubleshooting in Forge
Observability and Troubleshooting in Forge
 
Trusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy ModelTrusted by Default: The Forge Security & Privacy Model
Trusted by Default: The Forge Security & Privacy Model
 
Designing Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI SystemDesigning Forge UI: A Story of Designing an App UI System
Designing Forge UI: A Story of Designing an App UI System
 
Forge: Under the Hood
Forge: Under the HoodForge: Under the Hood
Forge: Under the Hood
 
Access to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIsAccess to User Activities - Activity Platform APIs
Access to User Activities - Activity Platform APIs
 
Design Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch PluginDesign Your Next App with the Atlassian Vendor Sketch Plugin
Design Your Next App with the Atlassian Vendor Sketch Plugin
 
Tear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the BuildingTear Up Your Roadmap and Get Out of the Building
Tear Up Your Roadmap and Get Out of the Building
 
Nailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that MatterNailing Measurement: a Framework for Measuring Metrics that Matter
Nailing Measurement: a Framework for Measuring Metrics that Matter
 
Building Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in MindBuilding Apps With Color Blind Users in Mind
Building Apps With Color Blind Users in Mind
 
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
Creating Inclusive Experiences: Balancing Personality and Accessibility in UX...
 
Beyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced TeamsBeyond Diversity: A Guide to Building Balanced Teams
Beyond Diversity: A Guide to Building Balanced Teams
 
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed TeamThe Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
The Road(map) to Las Vegas - The Story of an Emerging Self-Managed Team
 
Building Apps With Enterprise in Mind
Building Apps With Enterprise in MindBuilding Apps With Enterprise in Mind
Building Apps With Enterprise in Mind
 

Dernier

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Confluence as a Platform - Atlassian Summit 2010

  • 1. 1 1
  • 2. Confluence as a Platform Jonathan Gilbert Senior Developer Atlassian 2 2
  • 3. Agenda • Why Build on Confluence? • Confluence Advantages • Example Application Architecture • Application Audience • The Road Ahead 3 3
  • 4. Why build on Confluence? ? ? 4 4
  • 5. When to build on Confluence? • When to choose Confluence • When to avoid Confluence • Content based • Structured data storage needs • Collaborative • Specific, unsupported technology • Confluence already being used by requirements target audience • Core product customisation is required 5 5
  • 6. Confluence Advantages • Content Persistence • Content Discovery • Integration • Easy Development 6 6
  • 7. Content Persistence Pages & Blogs Attachments Comments Bandana 7 7
  • 8. Content Persistence Pages & Blogs Attachments Comments Bandana Versioning Import & Export Backup & Restore 8 8
  • 9. Content Discovery Labels 9 9
  • 10. Content Discovery Labels Feeds Notifications Activity Stream Search 10 10
  • 11. Integration Microsoft Office Support External Systems Integration Users & Groups Integrated UI Page Gadget Authentication & Authorisation 11 11
  • 12. Easy Development • Atlassian Plugin SDK • Dependency Injection • Hot Deploy 12 12
  • 13. Easy Development • UI • Reusable Components • Fully Customisable • Internationalisation • Shared Access Layer 13 13
  • 14. Easy Development • Confluence Source Provided • Huge Development Community • Forums • Online Documentation • Public issue tracking • Tons of examples • 400+ existing plugins 14 14
  • 15. Architecture • Example Application Service UI s jQuer Vel REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 15 15
  • 16. Architecture - Core • Confluence Managers Service UI • Labels s jQuer Vel • Bandana REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 16 16
  • 17. Architecture - Core • Dependency Injection – Spring Framework Service UI s jQuer Vel REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 17 17
  • 18. Architecture - Core • Dependency Injection – Spring Framework Service UI public class ExampleProcessor { s jQuer • public ExampleProcessor(PageManager pageManager) { Vel • ... } REST API XW public void setSpaceManager(SpaceManager spaceManager){ API Feeds ... } Plugin Core } Blogs Label Page Band Attac Com User Search & Persistence 18 18
  • 19. Architecture - Core • Shared Components - OSGi Service UI s jQuer Vel REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 19
  • 20. Architecture - Core • Shared Components - OSGi Service UI • Export s jQuer Vel <component key="exampleService" name="Example Service" class="com.atlassian.example.impl.DefaultAppService"> <interface>com.atlassian.example.AppService</interface> </component> REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 20
  • 21. Architecture - Core • Shared Components - OSGi Service UI • Export s jQuer Vel <component key="exampleService" name="Example Service" class="com.atlassian.example.impl.DefaultAppService"> <interface>com.atlassian.example.AppService</interface> </component> REST API XW • Import <component-import name="exampleService" key="exampleService"> API Feeds <interface>com.atlassian.example.AppService</interface> </component-import> Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 21
  • 22. Architecture - Core • New Features Service UI • Commentable objects s jQuer • Spaced UserStatus Vel • Custom Space Types REST API XW • Multi-label queries API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 22 22
  • 23. Architecture - Core • New Features Service UI • Bandana 3.0 s jQuer • Custom storage contexts Vel • Enumeration of stored keys per context • Custom serialisers REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 23 23
  • 24. Architecture – Traditional UI • XWork Actions Service UI • Velocity s jQuer Vel • Web Resources REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 24 24
  • 25. Architecture – Traditional UI <xwork name="Example Actions" key="exampleactions"> <package name="example" extends="default" namespace="/example">Service UI <default-interceptor-ref name="defaultStack"/> <action name="doStuff" class="bean:stuffAction"> s jQuer Vel <result name="input" type="velocity">/example/templates/action/dostuff.vm</result> </action> </package> </xwork> REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 25 25
  • 26. Architecture – Traditional UI <xwork name="Example Actions" key="exampleactions"> <package name="example" extends="default" namespace="/example">Service UI <default-interceptor-ref name="defaultStack"/> <action name="doStuff" class="bean:stuffAction"> s jQuer Vel <result name="input" type="velocity">/example/templates/action/dostuff.vm</result> </action> </package> </xwork> REST API XW API Feeds <web-resource key=“exampleResource"> <transformation extension="txt"> <transformer key=“example" /> Plugin Core </transformation> Blogs Label Page Band Attac Com User <resource type="download" name="testTemplate.txt" /> </web-resource> <web-resource-transformer key="example" class="bean:exampleTransformer" /> Search & Persistence 26 26
  • 27. Architecture – REST UI • Client Service UI • JQuery s jQuer • Atlassian User Interface Vel • Server REST API XW • Macros API Feeds • REST Framework 2.0 • Jersey Plugin Core • Interceptors Blogs Label Page Band Attac Com User Search & Persistence 27 27
  • 28. Architecture – REST UI <rest name="Example Rest Service" key="rest-service-example" path="/exampleService" version="1.0“/> Service UI s jQuer Vel REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 28 28
  • 29. Architecture – REST UI <rest name="Example Rest Service" key="rest-service-example" path="/exampleService" version="1.0“/> Service UI @XmlRootElement(name = “example") public class ExampleEntity { { s jQuer • @XmlElement public String name; name: name, id: id Vel • @XmlAttribute public long id; } } REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 29 29
  • 30. Architecture – REST UI <rest name="Example Rest Service" key="rest-service-example" path="/exampleService" version="1.0"/> Service UI @XmlRootElement(name = “example") public class ExampleEntity { { s jQuer • @XmlElement public String name; name: name, id: id Vel • @XmlAttribute public long id; } } REST API XW @Path("/example") API Feeds public class ExampleResource { @GET • public Response get() { Plugin Core • ExampleEntity exampleEntity = … Blogs Label Page Band Attac Com User • return Response.ok(exampleEntity).build(); } } Search & Persistence 30 30
  • 31. Architecture – REST UI • <div id="exampleArea"/> Service UI s jQuer Vel REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 31 31
  • 32. Architecture – REST UI • <div id="exampleArea"/> Service UI • • <div> <span>{id}</span><input value="{name}"/> s jQuer • </div> Vel REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 32 32
  • 33. Architecture – REST UI • <div id="exampleArea"/> • <script type="text/x-template" title="entity-template"> Service UI • • <div> <span>{id}</span><input value="{name}"/> s jQuer • </div> Vel • </script> REST API XW API Feeds Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 33 33
  • 34. Architecture – REST UI • <div id="exampleArea"/> • <script type="text/x-template" title="entity-template"> Service UI • • <div> <span>{id}</span><input value="{name}"/> s jQuer • </div> Vel • </script> • jQuery.ajax({ REST API XW • url: contextPath + '/rest/exampleService/1.0/example', API Feeds • type: 'GET', • dataType: 'json', • contentType: 'application/json; charset=utf-8', Plugin Core • success: function(entity) { Blogs Label Page Band Attac Com User • • } • }); Search & Persistence 34 34
  • 35. Architecture – REST UI • <div id="exampleArea"/> • <script type="text/x-template" title="entity-template"> Service UI • • <div> <span>{id}</span><input value="{name}"/> s jQuer • </div> Vel • </script> • jQuery.ajax({ REST API XW • url: contextPath + '/rest/exampleService/1.0/example', API Feeds • type: 'GET', • dataType: 'json', • contentType: 'application/json; charset=utf-8', Plugin Core • success: function(entity) { Blogs Label Page Band Attac Com User • AJS.$('#exampleArea').append(AJS.template.load('entity-template').fill(entity).toString()); • } • }); Search & Persistence 35 35
  • 36. Architecture - Federation • REST Service UI • XML s jQuer • JSON Vel • Feeds REST API XW • Gadgets API Feeds • Page Gadget Plugin Core Blogs Label Page Band Attac Com User Search & Persistence 36 36
  • 37. Application Audience • Organisation Specific • Commercial & Open Source 37 37
  • 38. Organisation Specific • Confluence is already deployed • No Resource Requirements • Infrastructure Support • Political Support 38 38
  • 39. Commercial & Open Source • Confluence has a huge customer base (22,000) • Hosting on plugins.atlassian.com • Open or closed source • Free or commercial • Confluence Blog • Codegeist • AtlasCamp 39 39
  • 40. The Road Ahead • Full REST APIs • AppLinks • Unified Plugin Manager • Structured Data Storage 40
  • 41. Summary • Content based & Collaborative Applications will benefit • Confers number of benefits • Development is easy • REST Application Architecture • Audience • Confluence Rocks for Small, Content-Driven Applications! 41 41
  • 42. Where next? • Sign up to the forums • http://forums.atlassian.com/ • Download the plugin SDK • Check out the Atlassian Developer Blog • http://blogs.atlassian.com/developer/ • Check out the Confluence docs • http://confluence.atlassian.com/ 42 42