SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
Brightcove
 
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
mfrancis
 
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
Zubair Ali
 
Reconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented ArchitecturesReconfigurable Service-Oriented Architectures
Reconfigurable Service-Oriented Architectures
lseinturier
 
Building Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjaxBuilding Secure Mashups With OpenAjax
Building Secure Mashups With OpenAjax
elliando dias
 
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
sfelsenthal
 

La actualidad más candente (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
 

Similar a Confluence as a Platform - Atlassian Summit 2010

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
WSO2
 
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
OpenStack Foundation
 
FatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio DevelopersFatWire Tutorial For Site Studio Developers
FatWire Tutorial For Site Studio Developers
Brian Huff
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
day
 
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
 

Similar a 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
 

Más de Atlassian

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
Atlassian
 

Más 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
 

Último

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
Safe Software
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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 - 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...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
+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...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 

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