WSO2Con 2011: Introduction to the WSO2 Carbon Platform
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

WSO2Con 2011: Introduction to the WSO2 Carbon Platform

on

  • 4,988 views

WSO2 Carbon platform is the base framework for all fifteen WSO2 products and Cloud services. Based on OSGi, WSO2 Carbon is lean, consistent, modular, componentized middleware platform for enterprise ...

WSO2 Carbon platform is the base framework for all fifteen WSO2 products and Cloud services. Based on OSGi, WSO2 Carbon is lean, consistent, modular, componentized middleware platform for enterprise software. The Carbon platform consists of a powerful core set of components and numerous product-specific components that are plugged together to provide a unique set of products. These highly decoupled components can easily be added or removed from any Carbon instance.
This tutorial will provide a fundamental overview of WSO2 Carbon, including:
An overview of the WSO2 Carbon architecture
The advantages of a modular framework
WSO2 Carbon platform capabilities
Insights to how Carbon is developed and built
A comprehensive demo on the lifecycle of a carbon component, explaining how a component is created, plugged into the platform and used
Carbon UI framework

Statistics

Views

Total Views
4,988
Views on SlideShare
4,056
Embed Views
932

Actions

Likes
3
Downloads
182
Comments
0

10 Embeds 932

http://blog.afkham.org 907
http://www.linkedin.com 5
http://paper.li 5
http://tweetedtimes.com 3
http://www.directrss.co.il 3
http://translate.googleusercontent.com 2
http://webcache.googleusercontent.com 2
http://feeds.feedburner.com 2
http://us-w1.rockmelt.com 2
http://127.0.0.1:8775 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

WSO2Con 2011: Introduction to the WSO2 Carbon Platform Presentation Transcript

  • 1. Introduction to WSO2 Carbon Platform
    by
    AfkhamAzeezSupunMalinga
    Director of Architecture Software Engineer
    WSO2 Inc.
    Lean, Consistent, Modular
    Enterprise Software Platform
  • 2. Agenda
    • WSO2 Platform
    • 3. In-depth look at WSO2 Carbon
    • 4. Writing a Carbon component
  • About WSO2
    • Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards and Open Source
    • 5. Producing entire middleware platform 100% open source under Apache license
    • 6. Leading contributors to the Apache Software Foundation
    • 7. Business model is to sell comprehensive support & maintenance for our products
    • 8. Venture funded by Intel Capital
    • 9. Global corporation with offices in USA, UK & Sri Lanka
    • 10. 100+ employees and growing
  • Selected Customers
  • 11. WSo2 Platform
  • 12. Challenges in Enterprise Software
    • Legacy Modernization and Integration
    • 13. Most enterprises have complex existing systems that are expensive to replace and need to be connected to web applications and new business processes
    • 14. End-to-End Flows, Straight-Thru, Business Processes, Portals
    • 15. Enterprises need to reduce human interaction as much as possible to make transactions efficient
    • 16. When human interaction is required, it needs to be high-quality and contextual (portal, task list, analysis data available)
    • 17. Performance, Scalability and Reliability
    • 18. For Straight-Through-Processing and consumer-fronting applications there needs to be very high scalability and performance
    • 19. Skills
    • 20. There is a shortage of people required to build very high performance, complex, integrated applications. Simple effective systems with clear programming models are vital
    • 21. Governance
    • 22. Large enterprises have thousands of applications that need to be tracked, with lifecycle and dependency management
    • 23. Identity Management
    • 24. Need to integrate Web-based Identity management and federated identities
    • 25. A strong move to Policy-based authorization and entitlement with central management
    © WSO2 2011
  • 26. How does WSO2 help?A complete platform to enable modern Enterprise Software
    • Legacy Modernization and Integration
    • 27. Enterprise Service Bus, Business Adapters and Data Services connects to multiple existing systems
    • 28. End-to-End Flows, Straight-Thru, Business Processes, Portals
    • 29. Straight through processing supported by ESB flows and Business Process Server
    • 30. Human Task management and Rich User Interfaces with Gadgets and Portals
    • 31. Performance, Scalability and Reliability
    • 32. Industry leading performance: eBay 5B transactions/day, Fox Mobile 150m transactions/day
    • 33. Systems in full Continuous Availability mode (no downtime even for system updates)
    • 34. Skills
    • 35. WSO2 systems use industry standard programming models and effective tools and UIs
    • 36. Java/POJO, HTML/JavaScript, XML, Eclipse and Web-based consoles
    • 37. Governance
    • 38. WSO2 has a leading governance solution based
    • 39. Business Activity Monitoring allows Key Performance Indicators to be monitored
    • 40. Identity
    • 41. A full web-based identity management system with support for Java, .NET, C, C++, PHP
    • 42. Full Policy-based entitlement and authorization engine
    © WSO2 2011
  • 43. Other Enterprise Challenges
    WSO2 Solution
    • 100% Open Source and Open Standards
    • 44. Straightforward pricing, no multi-core hikes, simple contracts
    • 45. A complete cloud-enabled approach, strong cloud vision
    • 46. Completely modular stack:
    • 47. Self-Consistent, use exactly what you need and no more
    • 48. First class support system, top-rated support and response times
    Challenge
    • Vendor Lock-in
    • 49. High Cost and Procurement complexity
    • 50. Cloud vision and migration
    • 51. Inconsistent and complex systems
    • 52. Support is often hard to use
    © WSO2 2011
  • 53. WSO2 CarbonOn-premises Platform
    © WSO2 2011
  • 54. Enterprise Expectations
    © WSO2 2011
  • 55. The WSO2 SOA platform
    © WSO2 2011
  • 56. WSO2 - A Complete Compositional Application Platform
    • Orchestration & Composition
    • 57. WSO2 Business Process Server
    • 58. WSO2 Mashup Server
    • 59. Repository and Governance
    • 60. WSO2 Governance Registry
    • 61. Monitoring
    • 62. WSO2 Business Activity Monitor
    • 63. Identity Management and Security
    • 64. WSO2 Identity Server
    • 65. Tooling
    • 66. WSO2 Carbon Studio
    © WSO2 2011
  • 67. Carbon Architecture
    • “Eclipse for Servers”
    • 68. Completely Modular Middleware
    • 69. Based on the Equinox OSGi runtime
    • 70. The most integrated composite application platform available
    • 71. Clean “front-end/back-end” separation
    • 72. Every component has a core runtime, a clean SOA management interface, a well-defined front-end console component
    • 73. All completely pluggable, versioned, etc
    • 74. Full dependency management
    • 75. Hence full re-use
    • 76. Pluggable common core services:
    • 77. Registry, Key Management, Identity Management, Clustering, Monitoring/JMX, Transports, etc
    • 78. Cloud enabled
    © WSO2 2011
  • 79. WSO2 Carbon : Component Architecture
  • 80. WSO2 Carbon
  • 81. WSO2 Carbon : Component Library
  • 82. WSO2 Carbon : Distribution Artifacts
  • 83. WSO2 Carbon : Share Runtime
  • 84. Carbon Component Manager
    © WSO2 2011
  • 85. Integration Features
    • Support for SOA, WOA, and Messaging protocols
    • 86. SOAP, WS-Security, SecureConversation, Trust, ReliableMessaging, Discovery, MetadataExchange, MTOM, Transfer, Addressing
    • 87. JMS (tested with Tibco, IBM MQSeries, Sonic, Swift, Apache QPid, ActiveMQ)
    • 88. AMQP Broker component (beta in Q2 2011)
    • 89. CORBA/IIOP connectivity
    • 90. HTTP – full REST support
    • 91. SMTP/POP3, TCP, FIX, HL7, extensible transports
    • 92. File Adapter
    • 93. Rule based mediation
    • 94. Transactional flows
    • 95. Transformation
    • 96. Smooks (Flatfile, EDI, CSV, Record)
    • 97. XSLT, XQuery
    • 98. Variable Record
    • 99. Routing
    • 100. Content and header based routing (variable parsing for efficiency)
    • 101. Message Router EIP
    • 102. Microflow engine
    • 103. Aggregate/Disaggregate, filter, clone
    • 104. Priority based queuing / mediation
    • 105. Tasks
    • 106. CRON-like ability to run flows based on timers
    • 107. Events
    • 108. Multi-protocol event distribution engine
    © WSO2 2011
  • 109. ESB / Legacy Application Integration
    © WSO2 2011
  • 110. Key Capabilities continued
    • Business Process Server
    • 111. BPEL 1.1 and BPEL 2.0 support
    • 112. Full management console including instance and process management
    • 113. Identity Server
    • 114. Support for local and federated Identity
    • 115. Full single-sign on (SAML2, OpenID, Infocard)
    • 116. Entitlement and authorization
    • 117. OAuth and XACML
    • 118. Policy based
    • 119. Integration with ESB, Registry, etc
    • 120. Portal (Gadget Server)
    • 121. Based on Google Gadget Specification
    • 122. Supports OpenID, Infocard login
    • 123. Inter-gadget communications
    • 124. Automatic generation of gadgets from WSDLs
    • 125. Registry/Repository
    • 126. Highly scalable repository
    • 127. Full versioning, lifecycle, dependency management
    • 128. Eclipse tooling (beta)
    • 129. Command line, REST, WS-* APIs
    • 130. Schema, WSDL management
    • 131. Code and configuration management
    © WSO2 2011
  • 132. Application Container
    • WSO2 Application Server
    • 133. POJO container
    • 134. Spring, JAXWS, pure POJO services
    • 135. Webapp
    • 136. WAR deployment
    • 137. WS-* Support
    • 138. Clustering and session replicatio
    • 139. Full multi-tenant deployment and management of webapps
    © WSO2 2011
  • 140. Extended Capabilities
    • Business Rules Server
    • 141. Embeddable
    • 142. Within ESB flows or POJO code
    • 143. Available as services
    • 144. Callable remotely, from BPS, etc
    • 145. Stores and manages rulesets in the Registry
    • 146. Event Server – MB and CEP
    • 147. Event distribution and topic management
    • 148. Complex Event Processing
    • 149. Business Activity Monitoring
    • 150. Out of the box monitoring of the platform (services, mediations, etc)
    • 151. Extensible to monitor business metrics
    • 152. Analytical support
    © WSO2 2011
  • 153. Business Activity Monitor
    © WSO2 2011
  • 154. Key Enhancements in Carbon 3.x
    • Improved provisioning
    • 155. Web console, remote API and command-line
    • 156. Install, Uninstall, Revert
    • 157. Patch management
    • 158. Clear dependency management and reversion
    • 159. WS-Discovery capabilities across the platform
    • 160. Automatically publish and discover services from providers and consumers
    • 161. Registry provides the WS-Discovery server
    • 162. Significantly improved registry support for large scale deployments
    • 163. Clear separation of per-cluster metadata vs enterprise metadata
    • 164. ESB 3.0.1
    • 165. Priority Queuing
    • 166. Hot deploy, undeploy, update, co-deploy
    • 167. Message Relay mode
    • 168. Governance Registry
    • 169. Tree view
    • 170. AJAX/Web XML editor
    • 171. Impact analysis gadgets
    • 172. Identity Server
    • 173. SAML2 Single Sign-on
    • 174. OAuth federated authorization
    • 175. Available as cloud-ready images
    • 176. Amazon AMI, vmWare and KVM images
    © WSO2 2011
  • 177. Tooling
    • Currently the tooling is a set of Eclipse components
    • 178. BPEL and ESB editors
    • 179. AS and Registry tools
    • 180. Carbon App and WSO2 Carbon Studio
    • 181. Taking individual components and building a complete deployment and tooling model for composite applications
    • 182. Carbon Studio provides a complete tool environment for WSO2
    • 183. Carbon App is a deployment model that can auto-provision into a distributed infrastructure
    • 184. Takes account
    • 185. Logical Topology
    • 186. Mapping to Physical Topology
    • 187. Versioning
    • 188. Dependencies
    © WSO2 2011
  • 189. BPEL Editor
    © WSO2 2011
  • 190. Gadget Editor
    © WSO2 2011
  • 191. WSO2 StratosCloud Middleware Platform
    &
    Stratoslive Platform-as-a-Service
    © WSO2 2011
  • 192. Enterprise IT in 2011
    © WSO2 2011
    © WSO2 2011
    31
  • 193. Enterprise IT in 2015+
    © WSO2 2011
    © WSO2 2011
    32
  • 194. WSO2 Stratos
    © WSO2 2011
  • 195. WSO2 Stratos
    • Cloud Middleware Platform
    • 196. Can be hosted on a private or public infrastructure Cloud (IaaS) or directly on the infrastructure
    • 197. Self-service portal for managing the platform
    • 198. Domain/sub-domain registration
    • 199. Each tenant can provision users
    • 200. Or be auto-provisioned from LDAP or AD
    • 201. Each tenant can choose “Stratos Services”
    • 202. Tenant Stratos Services are isolated and secure
    • 203. Each tenant Stratos Service has a full administration console with fine-grained user authorization
    • 204. StratosLive - PaaS
    • 205. http://stratoslive.wso2.com
    © WSO2 2011
  • 206. WSO2 Carbon and Stratos
  • 207. © WSO2 2011
  • 208. Cloud Native Middleware
    © WSO2 2011
  • 209. Design Objectives : WSO2 Carbon
    • To build a,
    • 210. Lean
    • 211. Modular
    • 212. Enterprise-class
    • 213. Middleware platform
  • Design Objectives : WSO2 Carbon
    • Self-consistent and lean
    • 214. Internal interoperability
    • 215. External interoperability
    • 216. Infinitely flexible and agile for rapid solution architecture adoption
    • 217. Open standards and Open Source
    • 218. A complete middleware platform from data to screen
  • Complete Platform – Data to Screen
  • 219. WSO2 Carbon Based Products
    WSO2 Carbon based products
    WSO2 Carbon
    Set of Features
    =
    +
    • WSO2 Carbon based products
    • 220. WSO2 WSAS
    • 221. WSO2 ESB
    • 222. WSO2 IS
    • 223. Features
    • 224. Service Management Feature
    • 225. Proxy Services Features
    • 226. Transport Management Feature
  • WSO2 Carbon, The webapp
    • Carbon can be used as an standalone server or can be deployed in application servers.
    • 227. Carbon is itself a webapp, hence In the standalone mode, it uses an embedded tomcat instance.
    • 228. In both modes, Carbon is launched by the BridgeServlet which bridges the non-OSGi world and the OSGi world.
  • WSO2 Carbon, The webapp
  • 229. Various Technologies
    OSGi.
    Equinox P2.
    J2EE specially servlets, JSPs
    Web Services and WS-* specifications.
    ...
  • 230. Key Features
  • 231. Core Platform Services
    • Mechanisms to providing and consuming Web services
    • 232. Repository Services
    • 233. Authentication and Authorization
    • 234. Logging Service
    • 235. Clustering for HA
    • 236. UI Framework
    • 237. Multitenancy
  • Enterprise Deployments
    Enterprise ready for large deployments with
    • Clustering
    • 238. High availability
    • 239. Scalability
  • Some other Features…
    • Mechanisms to providing and consuming services,
    • 240. Message mediation,
    • 241. Service Orchestration,
    • 242. Service Governance,
    • 243. Service Monitoring,
    • 244. Business Process Management.
  • UI Framework / Easy Configuration
    • Easy configuration via a rich Web-based graphical management Console allows remote administration of the system.
    • 245. Clear interface for component configuration
    • 246. Based on Apache Tiles UI framework.
  • Development and Release Process
    • Open and agile development model
    • 247. All binaries and source code distributed under the Apache Software License 2.0
    • 248. Source code repository (Subversion)
    https://svn.wso2.org/repos/wso2
    • Issue tracker (JIRA)
    http://wso2.org/jira
    • All design and development discussions are carried out on public mailing lists
  • Building and Testing
    • Build system based on Apache Maven2
    • 249. Continuous integration system powered by Hudson
    • 250. Automated nightly builds
    • 251. Automated testing
  • Documentation
    • Context sensitive help on the UI
    • 252. A documentation distribution as well as an on-line documentation
    http://wso2.org/project/carbon/3.2.0/docs/
    • Articles and tutorials can be found on WSO2 Oxygen Tank
    http://wso2.org/library/carbon
    • Many publications on external websites
  • What is a Carbon Component
    • A set of OSGiBundles.
    • 253. Lives in the Carbon Framework. Hence should conform to rules define in the Carbon Framework.
    • 254. Two aspects/ BE-FE Separation
    • 255. Every component has a core runtime, a clean SOA management interface, a well-defined front-end console component
    • 256. Back-end Runtime
    • 257. Front-end Console
    • 258. Uses Core Carbon Services
    • 259. Via OSGi service registry
    e.g. Registry Service, UserManager Service, etc.
  • 260. What is a Feature
    • In Eclipse world
    • 261. Feature is a grouping of set of logically related plug-ins/ OSGi bundles
    • 262. Feature can be installed into Eclipse platform using its Update Manager
    • 263. In Carbon world
    • 264. Feature can be thought of as an installable form of one or more logically related Carbon component
    • 265. Service Management Component
    • 266. What you develop
    • 267. Service Management Feature
    • 268. What you install
    • 269. Feature is a grouping of one or more logically related Carbon components
    • 270. Features can be installed into Carbon based product using Feature Manager
  • Features
    • Allows you to specify pre-requisites of your Carbon component.
    • 271. Other dependent features, bundles.
    • 272. Dependency Management.
    • 273. Are installable Units which can be installed into any Carbon based product.
    • 274. Can be install using the WSO2 Carbon Feature Manager
    • 275. Can be shared with others by packaging features as a Repository (Update Site in eclipse terms).
  • Carbon Component: Development Process
    • Develop the Carbon component
    • 276. Back-end component (BE OSGi bundles)
    • 277. Front-end component (FE OSGi bundles)
    • 278. Common bundles, if any
    • 279. Develop the corresponding feature
    • 280. BE/Server Feature
    • 281. FE/UI Feature
    • 282. Composite Feature
    • 283. Install into a Carbon based product
    • 284. By integrating with the product build system
    • 285. By developing a feature repository and installing using Feature Manager
  • Carbon Component: Build Process
    • We use Maven as our build tool.
    • 286. Building Carbon components/OSGi bundles
    • 287. Use Maven Bundle plugin to build OSGi bundles
    • 288. http://svn.wso2.org/repos/wso2/branches/carbon/3.0.0/components/logging/org.wso2.carbon.logging.service/3.0.0/pom.xml
    • 289. Building Features
    • 290. Use Maven P2 Feature plugin (Developed at WSO2)
    • 291. User p2-feature-gen goal
    • 292. http://svn.wso2.org/repos/wso2/branches/carbon/3.0.0/features/logging-mgt/org.wso2.carbon.logging.mgt.server.feature/3.0.0/pom.xml
    • 293. Building a Repository
    • 294. Use Maven P2 plugin
    • 295. P2-repo-generator goal
    • 296. http://svn.wso2.org/repos/wso2/branches/carbon/3.0.0/features/repository/pom.xml
  • What do you need to know to develop a Carbon component?
    • Java – to write some code
    • 297. Carbon - Understand the architecture and the usage
    • 298. Apache Axis2 - enough to create a service and consume it
    • 299. JSP
    • 300. XML
    • 301. SVN - To check out the code
    • 302. Maven - To build the code
    • 303. Plus a little OSGi and a little p2
    • 304. OSGI is useful for:
    • 305. Getting OSGi services (e.g. Registry) injected into your code
    • 306. Handling activation of bundles
  • Let’s write some code!
    Enough talking!
  • 307. Student Manager Component
    • Lets develop a sample Carbon component to understand the development process as well as the build process.
    • 308. Student Manager component
    • 309. consists of a BE runtime which exposes a Web services to
    • 310. Add new students
    • 311. Get the list of students
    • 312. Consist of a FE console which displays the available student information on the Carbon management console.
    • 313. Student Manager Feature
    • 314. org.wso2.carbon.student.mgt.server.feature
    • 315. org.wso2.carbon.student.mgt.ui.feature
    • 316. org.wso2.carbon.student.mgt.feature
  • Developing the BE Component
    • Some actual server logic plus an admin service to manage it
    • 317. Add some special sauce into the services.xml to let us know it’s an admin service
    • 318. component.xml -> configures permissions
  • BE Component: Directory Structure
    • org.wso2.carbon.student.mgt
    - src/
    - main/
    - java/
    - org/wso2/carbon/student/mgt
    - Resources/
    - META-INF/
    - services.xml
    - component.xml
    -test/
    - pom.xml
  • 319. Developing the FE Component
    • Admin service client – standard Axis2 WSDL client
    • 320. JSP
    • 321. Helper code sets correct security
    • 322. component.xml
    • 323. Defines the menu structure to place the JSP in the right place
  • FE Component: Directory Structure
    • org.wso2.carbon.student.mgt.ui
    - src/
    - main/
    - java/
    - resources/
    studentmgt.wsdl
    org/wso2/carbon/student/mgt/ui/i18n/Resources.properties
    META-INF/
    - component.xml
    web/
    student-mgt/ (web context of the FE console)
    doc/
    userguide.html
    images/
    js/
    *.jsp files
    pom.xml
  • 324. Resources
    • How to develop OSGi Bundles using the Maven Plugin
    http://bit.ly/9TPMjl
    • Getting Started with WSO2 Carbon
    http://bit.ly/9CdzTO
  • 325. Thank You!