Friday 23 December 2011

Will the future of professional education be online?

I'm a great believer in on-line education. I often attend live web-casts, follow youtube videos, download shared presentations. I generally find them very helpful, but I believe that, with the current technologies,  more can be done for professional education.
Why don't offer complete courses on-line?

It looks like I'm not the only one believing that.
Over three months ago, Stanford University launched three online classes and  I joined two of them:


Both courses are offered on-line for free and they cover  very interesting subjects.
I was more interested in Machine Learning, which is just a branch of artificial intelligence, but I decided to attend also "Introduction to Artificial Intelligence" in order to have a wider idea of the whole artificial intelligence world.



Last week I completed the final assessments for both courses.
AI professors have already sent the certificate of accomplishment. I'm still waiting for the Machine Learning one.


Introduction to AI was really theoretical, and we covered the following topics:

  •     Overview of AI, Search   
  •     Statistics, Uncertainty, and Bayes networks   
  •     Machine Learning
  •     Logic and Planning   
  •     Markov Decision Processes and Reinforcement Learning   
  •     Hidden Markov Models and Filters   
  •     Adversarial and Advanced Planning   
  •     Image Processing and Computer Vision    
  •     Robotics and robot motion planning   
  •     Natural Language Processing and Information Retrieval    

Machine Leaning was really practical. We had programming exercises each week to implement using Octave, a high level, open source, interpreted language suitable for numerical computation . Below the topics we covered over the last few weeks:


  •      Introduction to Machine Learning
  •      Linear regression with one variable
  •      (Optional) Linear algebra review
  •      Linear regression with multiple variables
  •      Octave tutorial
  •      Logistic Regression
  •      One-vs-all Classification
  •      Regularization
  •      Neural Networks
  •      Backpropagation Algorithm
  •      Practical advise for applying learning algorithms
  •      How to develop and debug learning algorithms
  •      Feature and model design, setting up experiments
  •      Support Vector Machines (SVMs)
  •      Survey of other algorithms: Naive Bayes, Decision Trees, Boosting
  •      Unsupervised learning: Agglomerative clustering, k-Means, PCA
  •      Combining unsupervised and supervised learning.
  •      Independent component analysis
  •      Anomaly detection
  •      Other applications: Recommender systems. Learning to rank
  •      Large-scale/parallel machine learning and big data.
  •      Machine learning design / practical methods
  •      Team design of machine learning systems


I found both courses very interesting, I really learned a lot. While AI gave me very deep theoretical understanding of the whole artificial intelligence world, machine learning was very hands on, and I found many topics really applicable in my every day job.
How? I will talk about some of the topics I learned in the next few weeks.

In the meantime, Stanford has launched another series of online classes:



I'm planning to attend a few of them, and I strongly advise all my readers to enrol to a couple of them, at least.


I have only one suggestion to make to the Stanford University. It is about the assessments. How to prove that students are really following the Stanford Honour Code?
I think Stanford should host the examinations to other testing centres, like Prometric or others. This would give to the certificates of accomplishment  more formal value and better industry recognition.

Stay tuned, in the next few days we will talk about Machine Learning and Artificial Intelligence and see if  we can find applications in the business world.


Antonio

Saturday 3 December 2011

BPM and ESB: pick the right one

I recently noticed, in different enterprise architectures, an overlapping between BPM (Business Process Management) and ESB (Enterprise Service Bus) technologies.
Architects tend to use one or the other based on previous choices, company partnerships, costs, know-how, rather than real technical benefits or functional reasons.
It is becoming common to come across problems solved using BPM, where an ESB solution would have been more suitable and vice versa.

 I attended different ESB seminars (online and in person) and some of the most common questions have always been:

"Will BPM replace ESB in the near future? 
Do you see BPM and ESB working together in enterprise architectures? 
How do we pick one or the other?"

Let’s try to answer to those questions  discussing BPM and ESB separately.

BPM

Business Process Management assists business analysts in optimizing processes of the organizations.


They’re generally human centric long-lived processes, lasting days, weeks, months or even years, where a certain degree of human interaction is generally expected.
BPM solutions consist of process definition, execution and monitoring, and are generally orchestrated between different systems, people and processes.
BPM does provide connectivity between different systems, but doesn’t support a large number of protocols and data transformation formats
Example of human centric business processes may be HR, payroll  or low volume, high value e-commerce transactions.

In general, we can say that BPM should be used for human centric long lasting business  processes, not real time, where performances are not a key factor and  low latency time won’t affect the process execution.

 

ESB


Enterprise Service Bus (ESB) is optimized for high volume, low latency, system-to-system  real time communication, in the order of milliseconds or seconds.


ESB is also a flexible and scalable solution, which becomes very important when transactions‘ volume is significantly high.
ESB support many different transport protocols and data transformation formats.
In general, ESB should be used in high volume transaction scenarios, not human centric, where real time and low latency are key and the orchestration occurs between different systems that support different kind of protocols and data format.

BPM and ESB together

BPM and ESb are not only complimentary, but they can be used together; there are different scenario and case studies.
A very popular scenario would be an ESB kicking off different BPM processes, orchestrating them, collecting  the results and sending those results to different systems.



Another scenario, albeit less common, could be the other way around: BPM to orchestrate a main business process and ESB to handle the single tasks of communicating with different systems, managing transactions, availability, scalability and data transformation.




In conclusion, BPM and ESB are fit for different purposes, based on business scenario, transactions volume, performances, protocols and data format. But they are not only complimentary. They can be used together in different business cases.


Antonio