Posts filed under 'Architecture'

Defining Mashups

[Cross-posted from http://blogs.jackbe.com]

Over the last year, the term mashup has become extremely popular not only in the consumer software space, but also in enterprise software. It has been a little more than a year since I joined JackBe as VP of Engineering responsible for executing our vision. Over this time, I and our team at JackBe has been busy creating our enterprise mashup platform, which is a unique innovative offering in enterprise software today, by combining the benefits of RIA technologies such as Ajax/RIA, Web Services, Service Oriented Architecture and Mashups.

At the internal technology briefing last week, I and my team presented and demonstrated the features of Presto, JackBe’s enterprise mashup family of products, to 25 developers and consultants. One of the important areas of discussion was around what we mean by a mashup and how the term ‘mashup’ has evolved over the last year to mean almost anything. For example, the following is the definition of the term mashup on Wikipedia:

A mashup is a website or application that combines content from more than one source into an integrated experience.

The problem with this definition from my perspective is that it allows you to practically label anything as a mashup, including a portal application, composite application, and what have you that brings disparate content onto a single web page.

I don’t think I want to disagree with this or any other definition of a mashup floating around in the industry. However, I feel that all the existing definitions and explanations are lacking something so important about the real intent of these mashups. This was also apparent at the discussion a few weeks ago at the IBM Mashup Ecosystem Summit. So, now I feel compelled to offer you what we at JackBe mean by a mashup:

A mashup is a shareable software block created by a user, encapsulating ad-hoc user driven processing of disparate data sources, delivered with a user focused view.

Allow me to elaborate further using the following characteristics:

  1. Mashups are made up of user driven micro-orchestrations. In other words, when I access some data or service, I am performing small operations on the way data is computed and rendered in a very informal and iterative manner. For example, consider how one uses a spreadsheet which is a great example of a canvas where mashups happen in the enterprise when a user pulls in data from different sources, combines, sorts, computes, filters and visualizes by iteratively processing it until he gets the desired results. If you really think about it, what the user is doing is really orchestrating getting data from different sources and processing using one or more operations to yield an integrated view of the data.
  2. Mashups are user focussed, i.e. they are primarily created by the user for the user. They are not the product of some developer or IT guy writing a lot of code. However, current examples of mashups that we see are primarily developer oriented, it is just the beginning. The real value of mashups comes when we enable and empower our end users to perform these mashups the way they want to do it without having to call and rely on IT needs.
  3. Mashups are ad-hoc creations and are very situational based on users immediate short term needs. They are designed by the user to meet a specific need. These mashups have a very short life span varying from hours to days. This is the reason that the users cannot wait and demand IT to create and deliver these mashups.
  4. Mashups can be visual and non-visual. The most common kind of mashup that is out there is probably something that overlays some information on some kind of a map. However, there is more to mashups than just displaying pins on a map. I can mashup disparate data to create an integrated data view. I can mashup processes to create a new process. I can mashup domain models of different application domains to create a new application domain model.
  5. And finally, mashups can be performed on the client side and on the server side. However, I think the best value of a mashup is when we combine both client side and server side mashup functions since we can defer heavy lifting to the server and build intelligent clients that can enhance, complement and focus on user experience.


Before I conclude, I would like to emphasize a few points.

  1. Whether we do visual or non-visual, client-side or server-side, mashups must be user driven and user focussed.
  2. Just because mashups are user driven and user focussed does not mean that we no longer need IT. IT is still a critical part of the whole mashup infrastructure in an enterprise. However, instead of the users going to IT for every little thing they need which can be transient, situational and ad-hoc, they should be able to accomplish what they need without having to rely on traditional IT and experienced programmers to build what they need. For example, imagine what would happen if Microsoft Excel users needed IT help to write a macro or to create a chart from a table of data they put together. Mashups in the enterprise must address these kind of needs of enterprise users accessing disparate data and services to create and share new information in the Enterprise Web 2.0 world.

In my next blog entry, I will discuss more about our work in creating our comprehensive enterprise mashup platform that encompasses the above characteristics. It finally feels great to be able to talk about what we have been obsessively building over the past year!

What do you think? I am really interested to hear other opinions and thoughts around this.

Add comment July 22nd, 2007

JackBe and the IBM Mashup Ecosystem Summit

[Cross-posted from http://blogs.jackbe.com]

[As a preface to this blog, I want to give my apologies for being away from blogging for the last few months. I’ve been busy creating Enterprise Mashup software here at JackBe. Now that our software is production-ready, I’m looking forward to getting back to posting regularly and getting your feedback on my development efforts. Deepak.]

I was at the Mashup Ecosystem Summit organized by IBM at their offices in San Francisco last week. Our CTO, John Crupi, and our Chief Architect, Raj Krishnamurthy, also attended with me. It was an interesting mix of people from different backgrounds and companies all converging on the concept of Mashups. Jeff Nolan (ex-Teqlo, ex-SAP) gave an interesting talk about his experiences in a starting up a mashup company. Some notable points were: (lack of) availability of APIs; Do-it-yourself Data Formats; Performance can be a challenge; Need for strong visual composition tools; Lack of Standards. I think these are questions that this group will be able to tackle over time. (At least, I hope!)

At one point during the end of the meeting, someone asked: “What really is a Mashup?”. This led to a brief but inconclusive discussion. Which goes to show how nascent this field is that even among the experts in the industry, there is still some uncertainty about how to define and qualify a mashup. (Coincidentally, JackBe has a webcast coming up on May 23 on this very topic: ‘Enterprise Mashup Bootcamp: What, Why and How’. You can register for that webcast here.)

I managed to slip in a question at the Mashup Summit about how the group feels about Composite Applications which were a hot topic a year or more ago and how they relate (or not) to mashups. Predictably, there wasn’t a big desire for this discussion. However, my own personal take is as follows. We in the SOA software industry have been busy implementing SOA in the enterprise over the last few years in our architecture and IT infrastructure. This effort in SOA has largely ignored the end users, and mostly focused on the IT and business stakeholders. Composite Applications are, in a way, IT efforts to provide integration of data, services and processes. While there has been a proliferation of services around the internet/intranet, users have no good tools to use them to do their job more effectively. Therefore, end users do not see much direct benefit of SOA or services or even composite applications.

These SOA/services/composite applications efforts are now undergoing an (r)evolutionary transformation. Enter mashups. And enter the users! The integration is now happening at a higher level in the application stack, much closer to the user. (This is also what Dion Hinchcliffe points out in his blog, where he talks about the 5 styles of mashups.)

There was also some question/opinions about security and how to govern mashups. I think there is no need to be overly paranoid about this. However, service access control is still important in an enterprise world of mashups. Consider that today users are already doing mashups, whether you like it or not. They are doing this mostly in their heads or in a spreadsheet, mostly manually and mostly in a tedious and time consuming way, and in a not-easy-to-replicate-or-teach manner. If the users have access to the data, you don’t really have control on what they do with it in their heads or spreadsheets. So, why not make it easy for the users to do this, faster, more efficiently, collaboratively (so they can share their analysis/knowledge), and to do all this with the least amount of programming skills required (leaning towards no programming required). We are aiming for this at JackBe, as I am sure other vendors in the mashup space are.

Other notable topics of discussion at the Mashup Summit were:

  1. Microformats. My favorite topic. I think Microformats (www.microformats.org) are currently under rated/under used in an enterprise. Expect to see a lot of interesting things in this space in the coming months. We have a thing or two in the works about this as well at JackBe. (Also see Jeff Nolan’s comments on this topic.)
  2. Mashup of Data vs. Processes. It is easy to confuse the two and it’s important to remember they are not the same.
  3. Offline & Synchronization: Ross Mayfield of SocialText asked how important this feature is and whether there really are good use cases that demand this feature. He blogs on this (and related) topics quite a bit and has a interesting perspective.

Bottomline, we at JackBe believe that a mashup has to be user-focused and user driven (not IT driven). Let’s stop searching for the killer app. The killer app is here and it is the User. Let’s enable and empower them to do what they really can do with mashups.

Add comment May 15th, 2007

SandHill.com on Enterprise 2.0

[Cross Posted from JackBe blog]

Yesterday, I came across this article by M. R. Rangaswami of Sand Hill Group that discusses Web 2.0 in the Enterprise. M R goes on to say:

Enterprise 2.0 is the synergy of a new set of technologies, development models and delivery methods that are used to develop business software and deliver it to users.

Being a technologist, I get this.

In my previous post, I discussed a little about what Social Web/Web 2.0 means to the Enterprise. A couple of weeks ago, I wrote an article for eBizQ that was simply titled SOA and Ajax. In my article, I discussed the potential emergence of Enterprise 2.0, which can be defined as enterprise computing leveraging Web 2.0 principles and concepts. I predicted that consumer-oriented Web 2.0 concepts like tagging, folksonomy (informal community-based taxonomy), wikis, blogs, and RSS feeds will also gain adoption in the enterprise context. Web 2.0 concepts and techniques enable capturing the semantics of different data and resources within the enterprise. Together with SaaS, Ajax, and SOA, and the other aspects MR points out in his article, I see the emergence of Enterprise 2.0.

Whether you love or hate the term “Enterprise 2.0″, one thing is for sure. The landscape for enterprise software is changing rapidly. What do you think?

Click Here to Comment

Add comment September 7th, 2006

Enterprise 2.0 Think Tank

I was at the Enterprise Think Tank meeting this week organized by the World Internet Center. The event was sponsored by SAP to bring together SAP Labs and Research folks along with some Web 2.0 companies to talk about what we all are thinking about the impact of Web 2.0 phenomenon on the Enterprise. The companies that were invited in addition to JackBe were: Abgenial, Coveo, Google, IBM, nStien, Sitepen/Dojo, StrikeIron, SocialText, and Zoho/AdventNet. I got to meet some very sharp and talented individuals from SAP as well as from these Web 2.0 companies. Jeff Nolan from SAP led the sessions from SAP.
Someone in the audience commented that Web 2.0 is nothing but the Web As It Should Be. I feel exactly the same way about it. Anyway, while there were the usual warm up discussions about what Web 2.0 is, we also talked about other topics such as (guess we couldn’t resisting suffixing everything with 2.0):

  • Audience 2.0: The new users who have higher expectations and have experienced the joys of using the new rich Internet applications popping up all around us.
  • Developer 2.0: Too busy to design/develop software (busy reading blogs?), needs to be more productive than ever, and is heavily focused on collaboration and leveraging open source.
  • Technical Challenges: Thick vs. Thin Clients, Offline vs. Online, mashups. How it is easy to gather information in heaps, but what can we do to better understand it and analyze it.
  • Business cases/models: Situational Applications (as IBM calls it), new delivery models for software (SaaS), software appliance model, application modernization, and enterprise productivity.
  • Finally we talked about what SAP needs from us Web 2.0 companies and vice versa. As Ross Mayfield from SocialText says here, SAP has a tremendous set of assets and by leveraging/partnering with us Web 2.0 companies could end up doing something pretty unique and innovative for the enterprise. Pretty exciting! Let’s wait and see.

One of the recurring topics that kept popping up is Governance. And this is really key, because it is a very important aspect that we need to address in Enterprise 2.0. A couple of months ago, I attended the Gartner conference on SOA/Web Services where one of the analysts said something like - If you are doing SOA, you better be addressing governance. No governance, no SOA, no nada. And that is right on.

The traditional enterprise software issues such as security, scalability, manageability will clash with the Web 2.0 culture of instant gratification, unanticipated usage, less governable users and will further clash with new trends such as SaaS, situational applications, mashups, and so forth leading to Enterprise 2.0.

So what do you think is Enterprise 2.0?

1 comment August 13th, 2006

JavaOne Panel - Web 2.0 Style Invitation to Participate

Dan Malks and I have assembled what we think will be an interesting panel for this JavaOne, coming up next week in San Francisco. This is the session TS-4372 titled Java™ Technology, AJAX, Web 2.0 and SOA. The panelists include well known experts such as Dion Hinchcliffe, Rod Johnson and Craig McClanahan.

What: JavaOne Session Panel: TS-4372 - Java™ Technology, AJAX, Web 2.0 and SOA
Who: Dion Hinchcliffe, Rod Johnson, Craig McClanahan, John MacDonald, Dan Malks and Deepak Alur
When: Thursday May 18, 11:00AM - 12:00 AM
Where: Moscone Center, Gateway 102 / 103

In the spirit of Web 2.0, we invite your participation in this panel by asking any question that is relevant to the topic of the panel. That is anything to do with any combination of Java, Ajax, Web 2.0 stuff, and SOA. You can submit your questions and rank them by visiting the Reddit.com site at:

http://jackbe.reddit.com

Please visit and participate now! Whether you are attending or not, I will try to post the answers to as many questions as possible after JavaOne.

3 comments May 10th, 2006

Web 2.0 and Me

Hmmm…If Web 2.0 is nothing but read/write web as Hal Stern says it is, then I might as well disconnect my broadband and go back to reading good old fashioned printed material. At least, I know who the frick wrote and published that damn thing. Nicholas Carr points out some intersting muck about the amorality of Web 2.0 and you can see some examples of some of the mess created by good old human nature in the new Web 2.0. And then there is the news of tightening of the posting rules for Wikipedia, which is an often used example as a Web 2.0 site. If humans are going to be humans (a.k.a monkeys) and do their business good old fashioned way on the read/write Web 2.0, then this Web 2.0 will end up being a conglomeration of incoherrent, inconsistent, unreliable, uncorroborated bunch of crap. Or, the Web 2.0 will keep tightening up the rules until it is no longer the read/write web, which I think will be called Web 3.0. Or wait a minute, is that Web 1.0? Bah, Humbug!

YouRIt

Add comment December 11th, 2005

More on SOA and (WS-*) Standards


Today, I presented on Sun SOA at our Software Summit attended by Sun and our partner folks. There were lots of comments and feedback on my presentation and there were some pretty good discussions.

A discussion touched upon the topic of SOA and Standards which I blogged about a while ago. On one of the slides, I was trying to address the confusion about SOA and Web Services by saying that SOA != WebServices, but that Web Services was the current popular implementation that seems to be gaining traction with our customers and the industry. And a few slides later I showed a picture (see image map below) to show how we were trying to grasp all the standards (approved, emerging, conflicting and so forth) mapped to different SOA aspects.

I might have confused my dear audience a little (can’t blame them!), because on one hand I was saying that SOA != WebServices, and on the other hand most of the standards I was mapping to different SOA aspects were Web Services related. But the reality is that SOA today is being mostly viewed from a WebServices implementation perspective. What do you think?

PS: On the plus side, it was great to meet the John Clingan and other Sun bloggers in person.

YouRIt

Add comment November 11th, 2005

WS-Stardate: The Saga Unfolds?

You must not miss what Captain Bray posted,
here
and here, to relate (in another way) to what I was trying to say in my previous post. Very funny, Captain Bray!

YouRIt


Add comment October 24th, 2005

SOA: Standards Overload or Real Freedom?

One of the things I often hear about Service Oriented Architecture (SOA), when compared to past architecture styles, is how it is based on industry standards
and sets you free from all kinds of burdens related to integration and interoperability. But, just the mere number of standards and specifications that one has to consider when attempting to SOA is mind numbing. I happened to chance upon one of Thomas Erl’s (I realized later he has many similar) websites called specifications.ws which shows a (stained-glass-like) mosaic of standards that can put you in a kind of a trance or even a coma if you are not careful. I do like his attempt at distinguishing first and second generation web services. Not only are there many many standards/specifications to consider, you also have to consider:

  • Which ones are specifications (not yet standards) by one or more vendors?
  • Which ones are specifications (not yet standards) submitted to standard bodies?
  • Which ones are specifications ratified by the standard bodies as industry standards?
  • Which ones (standards or specifications) overlap (some do) and which to choose / use in such cases?
  • And worst of all, there is not a single place to go to for these standards!

On that last note, some of the several standard bodies you run into when investigating SOA standards are W3C, OASIS, DMTF, BPMI, WFMC, IETF, Liberty Alliance, to name a whew! And you will definitely not miss the WS-I effort underway to develop and publish interoperability profiles (not standards) based on accepted standards in the industry. (Note:WS-I is not a standards body.)

In reality there is not any holistic standard for SOA. And I seriously doubt there ever can be, will be such a holistic standard. Although there seems to
be an effort underway at OASIS to create a SOA Reference Model, you won’t learn much about how to do SOA and how all the standards relate in typical SOA environments.

Anyway, after reviewing several specifications and standards, I am exhausted. I am working on putting together a list of all relevant standards and specifications and will publish my take on all this sometime soon.

Meanwhile, if you have any words of wisdom, I am listening.

YouRIt

Add comment October 22nd, 2005

SOA: OO and SO - How You Gonna Get There?

It
is encouraging to see James Gosling blog
about Service-Oriented Architecture (SOA)
. It is encouraging because:

  1. We are not alone in this confusion about the overlaps and differences between
    all things in SOA.
  2. Hey! It is James Gosling talking about SOA!

I agree with James that there is a camp that things SOA and OO are distinct
camps. To me SOA is a goal and Object Orientation (Design/Programming/Modeling)
is one of the fundamental ways to get there. SOA is the destination and the
journey, and OO is the vehicle to get there in good shape. I say in good shape
because you can still get there without using OO, but you might not be in as
good of a shape as you would have if you had used OO.

For example, say you want to go from point A to point B and you have a choice
between using different modes of transportation (car, bicycle, skateboard, Segway,
on foot, etc.). Which one would you use? What? You want to know how far you
are going? Ok. Let’s say you are going to the next block to meet a neighbor.
What do you use? What if you are going a few blocks to get a carton of milk
from a neighborhood store? What if you are going the same few blocks but to
get your groceries for the whole week? What if you are going a few hundred miles
to visit your family? Would you use a skateboard or a Segway to travel a few
hundred miles to visit your family? (Not unless you want to make a new world
record). Now, would you choose to use the same mode of transportation for all
of these? Of course not. [If you do, you need to go back to the beginning and
read again until you get it right. :-)]

Why not think about SOA the same way? If SOA is the goal, the destination,
and the journey, then which means (modeling, design, programming, language)
would you choose to get there?

The following is an informal comparison of SO and
OO and how things fall in or out of place:

Compare Service Oriented Object Oriented
What is it? Modeling, Design, Architecture Modeling, Design, Architecture, Progamming (Languages)
Exposes Services Methods
Granularity Business-Level (Very Coarse) (also see this) Object/Component-Level (Fine to Coarse)
Interaction Service-Level, Inter-Service via service requests Object/Component-Level, Inter-objects/components via
method calls
Interaction Model Document-based exchanges with services RPC
parameters exchanges with objects/components
Programming Languages You choose - OO Languages (see
here
), Procedural Languages (see
here
)
Java, C++, C#, Smalltalk (see
more here
)
Scripting: Ruby, Python (see
more here
)
Standards No Holistic SOA standard. Bits and pieces based on Web Services Standards.
You have to figure it out on your own. Plenty of competing and overlapping
standards and specifications in Web Services space. (also see this)
CORBA (for
language-neutral distributed objects), J2EE
(for Java based distributed programming), .NET
How to model/design it? Emerging best practices. No standards yet. Lots of patterns and best practices. Excellent tools.
Mature knowledge base in industry.
Overall Maturity Low-Varies High
Overall Complexity High - lots to worry about - standards, interoperability,
integration, etc.
Medium to High depending on what you are building
Development Tools Emerging, Varied. Established Mature IDEs in the market
Hype Factor As high as Mount
Everest
- but it is not all into thin air
As low as Death
Valley
- but it is not all under the sea

To reiterate what James said,
I quote him: "Proper OO structuring is always a good idea."
Great advice from the wise. I for one am going to follow it.

YouRIt


Add comment October 18th, 2005

Previous Posts


Calendar

July 2010
M T W T F S S
« Feb    
 1234
567891011
12131415161718
19202122232425
262728293031  

Posts by Month

Posts by Category