Defining the Vision 来源: 时间:2002-09-12 11:01 作者:AMTeam.org Defining the Vision
January 10, 2001 In last week's column, I introduced the Web Services Guidance team and our mission: building, deploying, and operating sample Web Services to illustrate the kinds of issues you need to consider when you do the same. I also introduced our first sample project, the Favorites Service. Thanks to everyone for your comments and feedback. We are keeping track of the issues you raise, so keep 'em coming! Someone asked why it would take three months for us to release the sample and why we hadn't started on it before we announced the idea. In fact, we have been working on Favorites pretty much full time for the past two months. A lot of the functionality is, well, functioning… but there's still a bit of work to do before everything is packaged up nice and neat into a sample you can install on your own machines or try out over the Internet. It also takes some time to write, tech review, edit, and process all the articles that we want to ship with our sample sources. So that's why we're aiming for three-month project cycles. We're keeping our fingers crossed that we'll be able to get the first release of Favorites out sometime in February. (As I write this, the team is going through a scheduling exercise to get a better estimate of the release date.) Some of the comments also assume that we're using the .NET Framework to develop this sample. That's not necessarily the case. We'll use whatever technologies we think are best for the job. And best doesn't always mean technically superior, easier to use, or most in the news. Whatever we choose, we'll tell you why and we'll tell you what issues we ran in to when we tried to use it. This week, we'll start to look at the issues our team has encountered while building the Favorites Service. There's quite a backlog, but we'll start at the beginning: figuring out the goals and objectives for the project. Getting Started Our team began from an unusual starting point: We knew we wanted to write a Web Service, but we didn't have any particular problem domain in mind, nor did we have existing applications we had to use. So the first thing we needed to do was come up with a reasonably realistic business scenario that could justify building a scalable, reliable, etc., etc., etc. Web Service. We began by locking a bunch of people in a room and brainstorming potential businesses or industries, services, and technical issues that would make good topics for guidance. Along the way, we came up with some reasons why you might want to build Web Services: You are a source of time-sensitive or parameterized data that
end users or other businesses want to use. If the data doesn't change often and
clients almost always want all of the data, you might as well just post an XML
document on your Web site. But if clients want to execute queries against your
data, then a Web Service makes a lot of sense. If you want to push data to
clients, the subscription and notification operations are also potential Web
Services. We also quickly realized there were some other considerations when building sample services for educating a general developer audience. First, the business scenarios should not require extensive knowledge of a given industry. Second, we want you to be able to install and run the samples on your own machines. Third, many interesting scenarios require one or more data stores or feeds. There are lots of issues when it comes to shipping sample source code that shows how to access data sources we don't own. And we don't own any data sources…at least not that we're at liberty to give away with a sample. This led us away from scenarios such as online banking, control home digital video recorder, check flight status, or daily comics server to something more along the lines of an infrastructure service. We started thinking about the kinds of Web Services that MSDN could provide (real services, not samples). One idea that people really liked was a way to keep track of MSDN articles they wanted to find again, regardless of which machine they used to access MSDN. That led us to the idea of server-side favorites. The Vision, Rev 1 We are looking for ways to expand our client base for our Web
development practice and to generate a regular revenue stream. We believe that
we can achieve both objectives by providing high-quality Web Services that Web
sites will want to use. Because Web Services are a new concept, we feel that
potential customers will need to be convinced they can bet part of their
business on our services. Thus we need a teaser Web Service that: The server-side Favorites Service will enable Web surfers to
store their favorite links in a safe, secure, central location, so their
favorites are accessible anywhere, any time. We will offer the service free of
charge to all users; however because we want to protect each user's privacy,
users will need to be authenticated to access their favorites. By using the
service through a client Web site, users agree that we may use their favorite
lists after all personally identifying information is stripped from the data.
We'd need a global user identification scheme, a scheme common
enough that Web sites would be able to pass along the user identifier to our
service. The Vision, Rev 2 We also did some preliminary research into the authentication issue. There really isn't a good way today to globally identify and authenticate users over the Internet when there's an app in the middle. Microsoft Passport works great when a user is interacting with a Web site through a browser. But there's no secure way for the Web site to pass the user's credentials on to another Web site. What about the single login feature of Passport, where users don't need to re-enter their user names and passwords when they move to another Passport-enabled site? That uses client-side redirects. And our Web Service never talks directly to the end user's machine. Based on this preliminary research, we decided to implement Favorites in phases. This would give us more time to sort out the privacy implications, and maybe the Identity Web Service that was mentioned several times at last year's PDC would be available by the time we needed a global identity scheme. Our revised vision looks like this: We will implement and deploy a Favorites Web Service during
CY2001 that will enable end users to bookmark selected pages from Web sites for
later access. These favorites will be stored by the Favorites Service, so they
are accessible from any machine or device the end user is using. We defined the phases like this: In phase one, we will implement and deploy a Favorites Web
Service that can be licensed to Web site developers for use behind the scenes to
manage their customers' favorites. (Effectively each licensee has a private data
store of user favorites.) We will also provide a sample that shows how to
integrate the Favorites Service into a Web site. The Service and sample will be
available for licensing by March 1, 2001. Our goal is to license the service by
March 1, 2001, to five to 10 sites that represent approximately 10,000 new
end-users per month. (We believe this is a manageable rate of growth, given our
current staff.) The next step was to define some user profiles. It's important to think carefully about whom all your users are when you define the vision for a Web Service project. The user categories we identified during the envisioning phase are: End Users—anyone who uses a Web browser to visit Web sites.
We also spent a bit of time thinking about business goals and design goals. One of the main questions is: Why are you building the Web Service? Are you trying to make money? Trying to streamline business processes? Or something else altogether? Whatever you decide, it's likely to have an impact on your requirements. For example, the primary goals for the Favorites Service are: Showcase our commitment to quality products. From a design perspective, you should think about your overall philosophy about user privacy, security, and other non-functional requirements. You should also consider whether clients around the world will use your Web Service, and what this implies about globalization and localization. For example, a couple of our design goals are: Deliver a worldwide solution. The service and all supporting
applications must be globalized. Conclusion Writing up the vision document for Favorites was a valuable exercise for us. Without it, we would have missed at least half the requirements that ended up in our functional spec. For example, we probably wouldn't have recognized the privacy and security issues until much later in the game. The Vision document does other things for us as well. It gives us a yardstick for evaluating feature requests and prioritizing requirements. The document reminds us what we want to do in future phases—we can account for that in the sample design so we don't need to completely rewrite things down the road. Next week, we'll look at the privacy issues mentioned here in more detail. I'll let you know what I learned from our Corporate Privacy Group, talk about the hard problems we've deferred, and discuss the privacy issues that remain in phase one and how these have an impact on our design and implementation. See you then! Mary Kirtland is the architect for the MSDN Web Services Guidance team, where she does everything but coding, testing, or operations, including trying to keep the specs up to date, writing down everything the team has learned in articles for MSDN, asking annoying questions during reviews, and ordering lunch. |
关键词:
|
相关文章 |