I'm in San Francisco attending QCon 2008 this week.
Bringing the enterprise to the web with Mule
Dan Diephouse, Architect, MuleSource
Research: SideNote.net (?)
No prescribed message format
zero code intrusion
- mule does not impose an API on service objects
- objects are fully portable
Existing objects can be managed
Easy to test
1) Declare a service
2) Define inbound router
3) Define Outbound router
Used to connect components and external systems together
Endpoints use a URI for addressing
Inbound Routers
- Idempotency
- selective consumers
- re-sequencing
- messag aggreagation
Outbound Routers
- message splitting
Core Concepts: Transformers
- converts data from one format to another
- can be chained together to form transformation pipielines
Building Services
- Annotations to expose your classes as RESTful service
- implements JAX ...?
Jersey - JAX-RS implementation
- simple annotations to create a RESTful web service
Integrating into your Messaging Layer
You can modify messages while filtering
ATOMPUB
- service
- workspace
-
ABDERA (collection adapters)
- ???
- JCR
- JDBC
- FileSystem
jcrAdapter allows instant creation of an Atom store
allows posting to the AtomPub log
Creating Atom Transformers
*** Research RSS Bandit ***
Chris Barry - research Atom Server usage
- used for vacation reservations
- used by Google?
Polling vs. Messaging
HTTP has a polling connector builtin - that supports eTags (*** need to research eTags ***)
Mule Books
--------------------
Mule In Action
Open ESB
???
There is an open debate in the REST community about what might be the best practice for communicating
the schemas for RESTful services.
WADL - Mark Hadley, WSDL for REST
Return the schema if the request is only a Head
Galaxy supports a feature called Netboot - which can facilitate deploying / synchronizing config files / components (?) - and JMX can be used to communicate an event to the servers that need to receive the update.
Ning
Jay Parikh, SVP of Engineering & Operations
AskANinja.com
TwitterMoms
Hoffspace
TheListProject.org
DIY Drones (robotics)
PickensPlan
Constraints:
- each network is different
- applications from scratch
- features built as platform APIs
- deny abuse of APIs
- support backwards compatibility
- scale BOTH individual applications and the platforms as a whole
Original Tools Used
===================================
Nagios
Splunk
Zenoss
Cacti
Keynote
EM
DDFM
InformMC
Cohesion
JMX
Segue
Loads of log files
Network gear (F5, Cisco,
Reboot
----------------------------------
Reduce MTTD and MTTR
more flexible monitoring
higher resolution
consolidate
self-service
unified infrastructure
Real-time Monitoring Overview
Visibility Challenges
---------------------------------
Real-time monitoring overview
- Erosebo (?) - custom built?
- Monitoring agent
- Archive to Hadoop
- Dashboard / Collector, aggregated event stream