Interface-Based Design With Juval Lowy on ARCast.tv

by dboynton 6/26/2008 9:42:00 AM

For those of you who didn't get the memo, Ron Jacobs is no longer hosting the very popular Channel 9 show, ARCast. After spending a couple of years traveling the world talking to hundreds of practicing architects, Ron decided he needed a change and is now a Technical Evangelist in Redmond working with the WCF and WF teams.

Because of the popularity of ARCast worldwide, I and a small team of fellow architects from across the country have been working over the past several months to bring into being what we're calling, "ARCast 2.0." Instead of having one regular host on the show, any architect evangelist in the world that has a story to tell and is willing to sit down and record it can be the host of an ARCast episode.

We published the first official episode of ARCast 2.0 last week. My colleague and good friend Bob Familiar sat down with Simon Guest, Senior Director of the Platform Architecture Team at Microsoft, and had a great conversation about what his team does and what types of content and activities his team will have for the community in the future. If you haven't had a chance to watch the interview yet, you can watch it here.

And this week it's my turn.

A few weeks ago at TechEd Developer 2008, I had an opportunity to sit down in the TechEd Online "fishbowl" and have a conversation with Juval Lowy about his ideas concerning interface-based design in software. Any conversation that starts with, "Object-orientation has completely failed us," is going to be a good one.

You can watch the full ARCast video here:


ARCast.tv - Juval Lowy on Interface Based Design

If you never want to miss an episode of ARCast, then be sure to subscribe to the show's feed here. Please let me know what you think of the interview.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Architecture | SOA | ARCast | Windows Communication Foundation

Software Plus Services and the "Thinner" Client

by dboynton 3/15/2008 2:14:00 PM

About ten years ago, a really interesting exodus took place in the software development world. Architects and developers everywhere ran away, screaming in some cases, from building applications for the desktop to building pure web-bases solutions. Why? One simple reason: Web applications are way easier to deploy and maintain.

This stampede to the data center created some new problems, however:

  • The browser, in many ways, is not the avenue to create rich user experiences
  • Offline capabilities in "occasionally connected" applications went away completely
  • Data and functionality is the desktop silo was simply relocated to a web silo

And thus it has been for the past decade.

The Return of the Client
Financial Analyst Meeting Ray Ozzie talked a lot about software plus services in his keynote address at Microsoft MIX a couple of weeks ago. Ray's vision is a world where key application functionality is written and deployed as hosted services in the cloud that can be consumed by many different application end points running on a multitude of different platforms. This model of "many pieces loosely coupled" allows you access critical data and functionality whenever you need it, wherever you happen to be.

I've always been a big fan of the client application, and have spent the better part of my career writing these types of applications. This concept of software on the computer or device significantly leveraging hosted services has been a major component of my work lately. However, in talking to people about it, I get a fairly consistent comment back when discussing this:

I don't want to go back to building fat clients again. What a pain.

This got me thinking: Is this whole S+S thing moving us backward? Are we going to end up with the same deployment and maintenance problems we had before the web came along?

 

The "Thinner" Client
In a world of software and services, we need to think about the role of the client-side software differently than we did before. Without a doubt, local software will need to be smarter than your pure web applications ("thin" clients). Likewise, many of the features that we would normally need to build into a completely local piece of software ("fat" client) are going to be managed by services in the cloud.

As this kind of application isn't "fat" or "thin," I propose the concept of the thinner client -- fatter than a thin client, but thinner than a fat client.

The thinner client is a fully functional piece of software that can:

  • Provide a compelling user experience because it can leverage the normally untapped processing powers of the client machine and fully take advantage of the strengths of the local OS software
  • It can manage and organize data online or offline
  • It provides users a piece of mind from a security perspective, sharing non-sensitive data online while locking-down sensitive data on the local machine
  • Manage and automatically install software updates via services
  • The innate extensibility of services facilitates multiple client "heads" for any particular application -- desktops, mobile devices, cell phones, game consoles, you name it

Thus, the thinner client manages only the work it needs to on the client machine, leaning on the hosted services for the rest of the required functionality.

 

 

Real World Thinner Clients at Work
TwhirlThe simplest example I can think of to illustrate this architecture is the subject of my last post: Twitter. At its core, Twitter is a hosted service that provides a communication hub, allowing people to post updates on what they're doing any time they like and people who are interested to receive those updates in near real time.

To start using Twitter, you create an account for yourself on the web site. From that point on, there is a multitude of different applications you can use to access the hosted service. As I write this, I have twhirl running on my machine pulling updates down for me. From my cell phone, I can either access a mobile friendly version of the Twitter web site or use TinyTwitter, a client application written for Windows Mobile on top of the .NET compact framework. And these are only a few examples. If you really want to get a feel for how many channels there are to distribute content from Twitter, just have a look at the Twitter Fan Wiki.

The core functionality of Twitter is exposed in its hosted services. This single architectural decision enables large scale extensibility of content delivery channels. These thinner clients offload the work of managing the stream of communications to hosted services and focus on delivering content in a way appropriate to a specific platform.

 

 

The Thinner Client In Practice
While Twitter certainly won't every be accused of being a business system, it certainly provides a solid example of how this architecture can grow and extend to meet many different user needs. Imagine this type of architecture flexibility in the line-of-business applications you're working on today.

Imagine you're working for a manufacturing company. A sales person is at your biggest customer's office and they make the decision to place a large order with you and have a very aggressive timeline for delivery. The sales person has a mobile device on which he/she can enter the order information. The data is entered, but their wireless Internet connection is not available right then and there, so the mobile application persists the data locally. As the sales person leaves the customer site, the Internet connection becomes available and the application automatically pushes the data to a service hosted in your company's data center. This service sends the data into the sales system and then forwards it on to the ERP system which queues up the order for production line processing. Production floor personnel, viewing the order via a PC based application consuming the same set of services, can then see the priority of the order and act accordingly.

At the same time, sales managers at your company are getting notifications on their cell phones alerting them to this major deal. At this point, they can send feedback via the system back to the sales person on site, generate reports to get the information to upper management or notify key personnel in the manufacturing part of the company to raise visibility of the ongoing activity.

And there's a good chance that all of this has happened while the sales person is still in their car on their way back to the office.

Hosted services in this case provide a continuity of experience for users at all client endpoints. Client applications are consuming a consistent set of functions and data based on need, priority and the role of the end user. Centralization of service-level functionality provides one version of the truth, instilling confidence that everyone involved in the process if fulfilling the order is working with the correct information in to correct portion of the workflow.

With the ability to leverage computing cycles on the fringe, run effectively in an occasionally connected world and automatically update themselves when new updates and patches become available, thinner clients represent an extremely viable alternative to pure web applications. They leverage what is best about client-side applications with the agility of the of the web to provide an engaging and valuable experience to users.

"Thinner" is the new "fat."

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

Mashups | SOA | Software Plus Services

Is the Future of Popfly in the Enterprise?

by dboynton 3/7/2008 6:15:00 PM

Note: This is a repost of a piece I published last October that received a lot of attention. The only updates I've made are to make it temporally correct.

popfly I was talking with one of my colleagues yesterday about Popfly. He'd heard of it and had a general idea of what it was all about, but was looking for more. I had been going on for awhile (as I am prone to doing from time to time) about how cool Popfly was and how it gives non-technologists an opportunity to use their creativity in building interesting composite applications.

The he asked me, "What do you think the relevance of Popfly is outside of the 'Wow, this is cool' market?"

I hadn't really thought about that. I mean, creating a mashup with Virtual Earth and Flickr to let people see where you took your photo and then actually look at them is fun, but what untapped value might be there for businesses?

 

SOA As It Is Today

I've spent the last several years of my career espousing the merits and benefits of the service-oriented approach to system architecture. While the idea itself isn't all that new, the technology we have at our fingertips these days is the component that was missing with prior attempts at making SOA practical.

The concept of implementing SOA in the real world has always been centered around identifying key business processes and capabilities and designing services to address them, while, of course, following the tenets of SOA, i.e. platform agnosticism, standards-based implementation, etc. Once these services are deployed, an organization's architecture group plans for how to extend these services, as well as how to leverage composite services which compose multiple fine-grained services. For the most part, developers were responsible for building the business applications that consume the service infrastructure. So, in the end equation, the IT organization controlled the design and development of the SOA and the line-of-business applications that consumed it. This can lead to obvious tension between the user base and IT, as well as stretching the valuable resources of the IT group very thin. Users tend to be unhappy with IT's performance, and IT's morale tends to be low, as they are always being asked to do more with less on shorter time frames.

 

Enter Popfly...To the Enterprise!

Popfly is a tool that allows users to visually design composite applications using so-called "services in the cloud." Each gadget in the Popfly tools frame represents a service out in the world somewhere that can be easily clicked and dragged onto the design pallet, configured and "mashed" with other services to produce one application. This application might enjoy long-term use, or it could be fulfilling an ad hoc need. Either way, the application is built quickly and done so without writing any code.

Now let's make a "mashup" of our own: Combine Popfly with a well constructed SOA inside the enterprise. What might that look like?

Imagine giving your business customers the ability to view a tool box of service "gadgets" that they simply drag into a design space where they can mash data together and build their own line-of-business applications on their own.

This would be a tremendous step toward empowering users to more fully leverage IT assets within their companies. The benefits would include:

  • Happier Users: I have to believe that, in most organizations, IT and the rest of the business don't skip merrily through a field of flowers together, holding hands and signing happy songs. In most cases, the business has huge requirements on short time frames and limited resources, and IT has to try to make it work. While this approach won't necessarily resolve this tension (I'm sure it can ever be truly resolved), letting users take a "self-serve" approach to addressing some of their own software needs, should go a long way to taking some of the pressure off already stretched IT teams.
  • Happier Architects: The hunt for the ideal value proposition for SOA would be achieved. When SOA becomes the foundation of most of the line-of-business applications in your company, the value and ROI become far easier to measure and realize.
  • Happier Developers: This might be a bit contentious. I mean, it could be argued that this whole thing could cost developers their jobs by reducing their relevancy in the company. I would argue, however, that this would take a lot of the menial development projects off of their plates and let them focus on the big, meaty, interesting projects. You see, this idea isn't a silver bullet solution. Using a Popfly-like application to mash some services together will take care of the "I need it now and I need it once" kind of requests IT gets from their users. In any sizable organization that significantly leverages technology to run their business, there will always be a place for more advanced applications and systems. And, thus, there will always be a place for developers, but developers focusing on the more challenging projects.

I should point out that in no way, shape or form has anyone from Microsoft suggested to me that this is even on the radar screen. I think it would be interesting to take the "cool" and "fun" technology that is Popfly and make it something that could provide real value to business in their everyday work.

What do you think?

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

SOA | Mashups

Powered by BlogEngine.NET 1.3.0.0
Theme by Mads Kristensen

About the author

Denny Boynton Denny Boynton
Microsoft Architect Evangelist by day, wannabe rock 'n roll star by night! Want more? Here's my bio.

E-mail me Send mail
Add to Technorati Favorites


Calendar

<<  July 2008  >>
MoTuWeThFrSaSu
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

View posts in large calendar

Recent comments

Authors

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008, Denny Boynton

Sign in