2. I have questions...
More questions than answers
A kind of “Cambrian Explosion” of languages
Is there any intersection?
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 2
3. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Concurrency
Performance
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 3
4. Cloud Taxonomy
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
6. Cloud Taxonomy
Next Gen Web
Utility/Efficiency
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
7. Cloud Taxonomy
Next Gen Web
Utility/Efficiency
Infrastructure aaS
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
8. Cloud Taxonomy
Next Gen Web
Utility/Efficiency
Stack aaS
Infrastructure aaS
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
9. Cloud Taxonomy
Next Gen Web
Utility/Efficiency
Platform aaS
Stack aaS
Infrastructure aaS
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
10. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
Platform aaS
Stack aaS
Infrastructure aaS
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
11. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
Platform aaS
Stack aaS
StorageInfrastructure aaS
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
12. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
Platform aaS
Stack aaS
Storage Compute aaS
Infrastructure
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
13. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
Platform aaS
Virtual Machine Images
Stack aaS
Storage Compute aaS
Infrastructure
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
14. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
AppEngine
Platform aaS
Virtual Machine Images
Stack aaS
Storage Compute aaS
Infrastructure
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
15. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
AppEngine Heroku
Platform aaS
Virtual Machine Images
Stack aaS
Storage Compute aaS
Infrastructure
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
16. Cloud Taxonomy
Next Gen Web
Software aaS
Utility/Efficiency
AppEngine Heroku Zembly
Platform aaS
Virtual Machine Images
Stack aaS
Storage Compute aaS
Infrastructure
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
17. Cloud Taxonomy
Next Gen Web
Salesforce
Software aaS
Utility/Efficiency
AppEngine Heroku Zembly
Platform aaS
Virtual Machine Images
Stack aaS
Storage Compute aaS
Infrastructure
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 4
18. IaaS Issues
No predefined software stack
You have to do everything
Languages cannot help much
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 5
19. Stack aaS Issues
You get whatever language is in the stack
Depends on the quality of the stack integration
Languages can help; part of the stack integration
Services are not explicitly part of the stack
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 6
20. PaaS in Depth
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
21. PaaS in Depth
Non Relational DB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
22. PaaS in Depth
Non Relational DB
BigTable
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
23. PaaS in Depth
Non Relational DB
BigTable Key/Value Stores
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
24. PaaS in Depth
Non Relational DB
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
25. PaaS in Depth
Identity
Non Relational DB
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
26. PaaS in Depth
MapReduce
Identity
Non Relational DB
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
27. PaaS in Depth
Asynchronous
Messaging
MapReduce
Identity
Non Relational DB
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
28. PaaS in Depth
Asynchronous
Messaging
MapReduce
Identity XMPP
Non Relational DB
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
29. PaaS in Depth
Asynchronous
Messaging
MapReduce
Identity XMPP Queuing
Non Relational DB
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
30. PaaS in Depth
Asynchronous
Messaging
MapReduce
Identity XMPP Queuing
Non Relational DB
Payments
BigTable Key/Value Stores
CouchDB
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 7
31. PaaS Issues
You get whatever language is in the platform
Platform includes network services beyond language
runtime
Leads to a service oriented system
Part of the difference is the quality of the integration
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 8
32. SaaS Issues
SaaS applications may or may not be programmable
The SaaS may have its own language
Learning curve ahead
Very good integration
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 9
33. Characteristics of Cloud Environments
Multitenant
Heterogeneous
Scalability is a goal
Elastic / Provisioned by machine
Monitored/Audited
Service Oriented
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 10
34. Agenda
Cloud Taxonomy
Where langauges intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 11
35. Areas where languages intersect the Cloud
Security / Resource Control
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 12
36. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 13
38. Language Models
Sandboxing
• Java
• PyPy
• Google AppEngine
Capabilities
• Caja
• Joe-E
• E
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 15
39. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 16
40. Data center sizes
• Google in 100,000’s
• Facebook Hadoop in the 100’s (600 last count)
Performance = reduction in the number of servers
• Unladen Swallow
Web site response times
• interactive / rich applications
• real time quotas
• pushed back into the server tiers
Yeah, and multicore
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 17
41. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 18
42. Transactional Memory
Treat main memory as a database
An MVCC database
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 19
43. Transactional Memory Pros
People understand transactions
Transactions compose
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 20
44. Transactional Memory Cons
Inefficient
Non abortable operations
• I/O
• Launch missile
Still have to find critical sections / txn boundaries
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 21
57. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 34
58. Runtime dynamic scalability
• Lots of configuration needed = bad
Erlang
• distribution via message sending built in
• error handling by crash and restart
• OTP = rich framework for distributed applications
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 35
59. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Consideration
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 36
60. Monitoring
Mainly a job for the language runtimes
DTrace or other tracing
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 37
62. Agenda
Cloud Taxonomy
Where languages intersect the cloud
Security
Performance
Concurrency
Distribution
Operational Considerations
Domain Specific Languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 39
63. Salesforce.com Apex
Multi-tenant code and data
Higher level
• the business logic level
Statically typed
Java like control structures
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 40
64. Apex
Persistent object type (SObject)
Embedded Salesforce query languages (2 of them)
• comprehension like
Transaction Control / Locking
Triggers as a construct
• before/after insert/update/delete/undelete
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 41
65. Apex
Testing built in and coverage required by the platform
SOA WSDL Generation
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 42
66. Apex Security
Classes declared as with sharing or without sharing to
enforce (or not) the current user’s sharing rules
Sharing rules specified by organizations cloud admin
Resource limiting (governing)
• resources are limited in the runtime
• can call a method to find out the values
• different for different contexts
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 43
67. Apex: Concurrency
No threads
Futures
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 44
68. APEX: Tools
Eclipse Plugin
TextBox in Salesforce UI
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 45
69. Summary
Many different cloud models
Depending on the model, languages can help the cloud
Primary contribution areas
• Security
• Performance
• Concurrency
• Distribution
• Operational Considerations
• Domain specific languages
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 46
70. For More Information
Sun Cloud Home
• http://sun.com/cloud
My blog
• http://www.sauria.com/blog
My Twitter
• @twleung
2009 CommunityOne Conference: WEST | developers.sun.com/events/communityone 47