<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
 <channel>
  <title>Reliable Software - Michael Stiefel</title>
  <link>http://www.reliablesoftware.com</link>
  <description>Develop cost-effective, distributed software solutions for your small to mid-size business or business unit.</description>
  <lastBuildDate>Mon, 08 Mar 2010 00:19:10 GMT</lastBuildDate>
  <generator>ListGarden Program 1.3.1</generator>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <item>
   <title>What's New</title>
   <link>http://www.reliablesoftware.com</link>
   <description>Michael Stiefel will give two sessions on software architecture  at DevTeach 2010 in Toronto on March 9 and 10.&lt;br></description>
   <pubDate>Wed, 03 Feb 2010 23:16:11 GMT</pubDate>
  </item>
  <item>
   <title>Presentations by Michael Stiefel</title>
   <link>http://www.reliablesoftware.com/presentations.html</link>
   <description>&lt;p&gt;&lt;strong&gt;Architects? We Don't Need No Stinkin Architects!&lt;/strong&gt;
&lt;br&gt;
Many developers have the opinion that architecture is the job of all the developers. Not only is there no need for an architect, but having someone in that position is at best unnecessary, and at worst dangerous. This stems from a misunderstanding of what architecture is. Ironically, this misunderstanding about architecture is also shared by many of those who do believe in the importance of having an architect. The focus of this keynote will be to correct this misunderstanding of what software or technology architecture is. We will then be better architects. Our users will be happier, and developers will be more productive.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is Microsoft Dallas?&lt;/strong&gt;
&lt;br&gt;
Dallas is a data information service built on Microsoft Azure. Dallas is currently a Community Technology Preview (CTP).  Dallas accesses a variety of data from government, news, financial, traffic, and other sources. By providing a uniform method and format for retrieving and offering data, Microsoft hopes to create a data marketplace.

Both large and small data providers can provide access to data for large and small development organizations in an environment where otherwise it would be highly unlikely or impossible for these groups to partner. Potentially this could lead to the democratization of data, where data can be combined with other data, in ways that could not be foreseen by the original providers.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud Computing Is In Your Future&lt;/strong&gt;&lt;br&gt;

Computing power is available when you need it, where you need it. You only use as much as you need. Such is the dream of cloud computing. We are far from realizing this dream.

Nonetheless, there is enormous potential now for organizations to build cloud applications. Small and medium sized businesses can develop services and applications that up to now could only be provided by large companies. Startups can minimize their infrastructure costs. Businesses of all sizes can use cloud infrastructure to handle unpredictable bursts of computing activity.

Building software that lives in the cloud requires managers, architects, and developers to think differently about security, databases, and applications. As with any new technology, there is no agreement among the vendors as how to proceed, and no standards exist. Service level agreements are primitive.

This explores the opportunities and pitfalls of cloud computing, and how to think about building cloud applications, and how cloud computing could evolve in the future.
&lt;/p&gt;

&lt;p&gt;&lt;Strong&gt;Cloud Computing Will Change Electronic Commerce&lt;/strong&gt;&lt;/br&gt;

Buying and selling of goods and services electronically will be radically transformed by cloud computing. Vendors and service providers will pay for just whatever computing resources they use, instead of building or renting from a data center where they must pay for peak capacity.

Since you pay only for what you use, and the infrastructure is outsourced, it will be easier for companies to start offering services, and for units of large companies to avoid using their central IT facilities. The marketplace will be more dynamic, and existing IT infrastructure, or the availability of large capital to pay for it, will not be a barrier to offer innovative, new solutions. Small companies will find it easier to compete with large ones.

The Cloud Computing future is here now. &lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Introduction to Cloud Computing With Microsoft Azure&lt;/strong&gt;&lt;br&gt;
Cloud Computing presents a very enticing opportunity for businesses, especially small and mid-size businesses, or small business units of large corporations. You use only the compute resources that you need, which makes the economics, and the ability to scale up and down quickly huge advantages. On the other hand, there are some critical technological and social challenges. Depending on the geographic dispersion or size of your client base, you may have to think about application design very differently. In addition, if cloud computing is a utility, then the social and political implications have to be considered as well. Using Microsoft Azure as an example (but the concepts apply to Google, Amazon and other providers as well), these challenges are discussed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Software as a Service in the Cloud&lt;/strong&gt;&lt;br&gt;
Architecting and building a Software as a Service application requires solving a series of problems that are independent of a particular software platform. First, a SaaS architecture follows directly from the fundamental principles of the business model. Second, a series of difficult technical problems must be solved in addition to providing the business functionality. These include certificate security, low-IT-capable clients, business continuity when connectivity is lost, provisioning of services, scalability as the number of clients increase, database design for clients, how to use virtualization, and how to integrate and release service functionality over several different client applications. Third, you have to effectively use the platform technology such as WCF and ASP.NET. If you approach building a SaaS application on these three levels, you can then leverage your work into new platforms such as Windows Azure. This talk was first given at TechEd 2009.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do Relational Databases Belong in the Cloud?&lt;/strong&gt;&lt;br&gt;
If applications put data in a computing cloud, the requirements of consistency, availability, and partitioning can conflict. That means to have a highly available and scalable application you may have to give up classic ACID database transactions and relational database features such as foreign keys, joins, and stored procedures. How do you handle versioning of data and data latency?  Using Microsoft’s Windows Azure as an example, this talk will describe these problems and talk about how to architect and design in this new world. 
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Lap Around Windows Azure and the Azure Services Platform &lt;/strong&gt;&lt;br&gt;
Here is a tour of the Azure cloud operating system and computing platform capabilities.  It contains an overview of its various components, and explains how these fit together. It explains the unique approach Microsoft is taking to allow a developer to write a service in the cloud. Learn about the cloud services that enable developers to easily create or extend their applications and services whether they are consumer-targeted applications, social networking web sites, or enterprise class applications and services.
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Claims Based Security&lt;/strong&gt;&lt;br&gt;
How can Internet-based, collaborative applications communicate identity information about their users? How can trading partners use each other’s applications without keeping login information about each other’s every changing list of employees? How can emergency responders use each other’s databases of information only for the duration of the emergency? Claims represent an industry standard way of representing user identity that is the part of the solution to this problem that directly relates to a developer of Internet based applications. A claim can represent any relevant information about a user. For example: their age, how they were authenticated, and their job title, even what they had for breakfast. This talk will explain how to use claims in a .NET application so that applications do not have to change as the security requirements evolve, or the users of the application change over time. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows Workflow and WCF Help Make “Software + Services” a Reality&lt;/strong&gt;&lt;br&gt;
The future of software is a combination of local software and Internet services interacting with one another. Software should run in locations that have the maximum compute power while minimizing the amount of data that has to be transferred. Sometimes mission critical software has to run even when disconnected to the Internet. When reconnected, the various data sources have to be reconciled. By bringing together the worlds of rich clients and services in the cloud, you can get the best of both worlds.
Two critical technologies for putting together these two worlds are Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF). WCF makes it possible for the different worlds to talk to each other. WF makes it possible for applications to run when and where it is appropriate, and to easily wait for data to arrive.
.NET Framework 3.5 has begun the integration of these two technologies. This gateway to the world of Software + Services is what we will explore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speaking a Common Language: The OASIS Reference Model for Service Oriented Architecture&lt;/strong&gt;&lt;br&gt; 
The Reference Model for SOA is an OASIS standard. It provides a vocabulary for service oriented applications that allows people to achieve a common understanding when they talk about services. This talk will explain how to use the reference model in discussions with vendors, stakeholders, development staff, business analysts and others that participate in the development of services. This will permit everyone to speak the same language when planning, architecting, developing, and using a SOA.&lt;/p&gt;</description>
   <pubDate>Mon, 08 Mar 2010 00:19:04 GMT</pubDate>
  </item>
  <item>
   <title>.NET Presentations</title>
   <description>&lt;p&gt;&lt;strong&gt;How To Partition and Layer a Software Application&lt;br&gt;&lt;/strong&gt;
How do you make your software adaptable to changing technologies?  Everyone answers: use layering.  But exactly how do you develop software layers? How do you create application interfaces that allow you to change the underlying technology? This is especially crucial as we begin to think about cloud computing and realize that parts of applications may migrate to the cloud, while others stay on desktops and local servers.

This session will focus on techniques such as interface based design, proper use of inheritance, dependency inversion, factories, single responsibility, facades, and other patterns and techniques to accomplish this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building Web Services With Microsoft Technologies&lt;br /&gt;&lt;/strong&gt;
XML Web services technology allows component functionality to be distributed over the Internet to heterogeneous platforms. The framework classes in Microsoft .NET allow you to quickly develop Web services using standard industry protocols. This talk was given to the New England Electronic Commerce Users' Group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Refactoring, Serialization, and Version Hell&lt;br /&gt;&lt;/strong&gt;
Developers have to understand not only the logical structure of their applications based on their classes, but the physical design of how those classes are distributed among assemblies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Application Domains And Contexts and Threads, Oh My!&lt;br /&gt;&lt;/strong&gt;
Application domains are fundamental to the .NET programming model and are an excellent example of how a .NET concept such as type safety can be used to build very scalable applications (such as ASP.NET), or allow programs to control security settings. Associated with the idea of an application domain are contexts which provide a mechanism for the .NET Framework to simplify various programming tasks. Understanding how threads interact with application domains and contexts will give you the basic knowledge you need to build scalable applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stopping the Barbarians at the Gate: .NET Code Access Security&lt;br /&gt;&lt;/strong&gt;
Most programmers have difficulty understanding security issues. It is easy to take any .NET assembly and expose it to other machines through .NET remoting, or as a Web service. Programmers cannot assume that the software they are developing will only live on a single machine. Your technology can easily be exposed to the outside world, and that means exposing it to hackers. Code Access Security (CAS) helps deal with this problem by allowing you to place limitations on the code itself, irrespective of the user id under which the code runs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An Experienced Programmer's Guide to C# and .NET&lt;br/&gt;&lt;/strong&gt;
Microsoft .NET revolutionizes software development on the Windows platform.  The C# language provides a particularly clear way of working with .NET’s Common Language Runtime, and the extensible .NET Framework class library.  This session will leverage your existing programming skills from other languages such as Java, Visual Basic, or C++ to help you understand how to use C# to develop on the .NET platform. The topics covered include attributes, metadata, interface-based programming, memory management, type safety, and the basics of the framework class library. This talk was given at the SYSCON Edge 2004 East Conference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Microsoft .NET and Why Should I Care?&lt;br /&gt;&lt;/strong&gt;
Microsoft .NET revolutionizes software development on the Windows platform to provide one programming development paradigm. .NET is made up of a virtual execution environment, the Common Language Runtime, and the extensible .NET Framework class library. While understanding this technology is imperative for people who develop on Microsoft platforms, other developers need to understand this technology so that they can build applications for heterogeneous platform environments.&lt;/p&gt;</description>
   <pubDate>Wed, 28 Oct 2009 14:02:19 GMT</pubDate>
  </item>
  <item>
   <title>Reliable Software Client ITNAmerica is Microsoft Case Study for Software + Services</title>
   <link>http://www.microsoft.com/business/success/?StoryID=290</link>
   <description>Reliable Software, Inc. help architect, design and continue to implement a software + services solution that helps solve the critical social problem of senior transportation.</description>
   <pubDate>Tue, 27 Oct 2009 17:57:30 GMT</pubDate>
  </item>
  <item>
   <title>Stiefel quoted in Mass High Tech article on Cloud Computing</title>
   <link>http://www.masshightech.com/stories/2009/08/24/focus4-Cloud-computing-concerns-remain-despite-growing-acceptance.html</link>
   <description>Michael Stiefel is quoted about some of the issues surrounding the acceptance of cloud computing, including some social and legal factors that are not often talked or thought about.</description>
   <pubDate>Fri, 28 Aug 2009 21:30:22 GMT</pubDate>
  </item>
  <item>
   <title>.NET Articles by Michael Stiefel</title>
   <link>http://www.reliablesoftware.com/articles.html</link>
   <description>&quot;SOA Security with WSE 2.0&quot;  Visual Studio.NET Developer, July 2005&quot;&lt;p&gt;
&quot;WS-Security and WSE 2.0&quot;  Visual Studio.NET Developer, June 2005&quot;&lt;p&gt;
&quot;Addressing and Transport with WSE 2.0&quot;  Visual Studio.NET Developer, May 2005&quot;&lt;p&gt;
&quot;Service Oriented Architecture with WSE 2.0&quot;
Visual Studio.NET Developer, April 2005 &lt;p&gt;
&quot;Logical and Physical Software Design with Microsoft .NET&quot;  O'Reilly OnDotNet.com, August 30, 2004&lt;p&gt;
&quot;Managed Controls and Policy Resolution in the .NET Framework&quot; Hardcore Visual Studio.NET, May 2003&lt;br /&gt;&lt;p&gt;&quot;Preventing Elevation of Privilege Attacks Using .NET Security Actions&quot;  Hardcore Visual Studio.NET, March 2003&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;Understanding .NET Security Actions&quot; Hardcore Visual Studio.NET, February 2003&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;Programming .NET Code Access Security&quot; Hardcore Visual Studio.NET, January 2003&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;Code Access Security&quot; www.informit.com, February 2002 &lt;/p&gt;</description>
  </item>
  <item>
   <title>Courses Offered by Reliable Software, Inc.</title>
   <link>http://www.reliablesoftware.com/courses.html</link>
   <description>These courses will make your staff immediately productive in solving practical programming and development problems. While the underlying concepts are explained, these courses focus on solving problems rather than explaining programming technology for its own sake. Reliable Software has taught at companies like Microsoft, Dell, John Deere, Visa, OneSource, Phillips Digital, Compaq, and Autodesk. We can adapt a course to meet your company's specific needs.

&lt;p&gt;&lt;strong&gt;Service Oriented Architecture Implementation(2 days)  &lt;/strong&gt;&lt;br/&gt;

SOA is an emerging architectural style that…

·       Is business driven

·       Enhances IT’s flexibility and responsiveness to changing business needs 

·       Improves the ability of a business to respond to rapidly evolving internal and external customer requirements

·       Reduces the work necessary to integrate business solutions between companies or between divisions within the same company

·       Decreases the IT application maintenance workload

·       Shrinks the development workload for new applications via reuse of common operations 

Early experience deploying large-scale Services-Oriented Architectures clearly demonstrates that successful enterprise-SOA implementation require far more than simply building SOAP wrappers and using WSDL to document Web Services.

SOA Implementation provides a comprehensive and realistic road map for putting the Services-Oriented Architecture promise into practice. This two-day seminar examines in detail the technical, organizational and management issues surrounding the planning and implementation of a SOA. It presents practical information and guidance that will help organizations plan the deployment of SOAs that employ internal and external Web Services to execute intra-business processes and inter-business processes. 

SOA Implementation uses case studies, examples, and business language to introduce the topics and explain the choices that organizations face as they plan and build their Services-Oriented Architectures. Seminar topics include:

Decisions, issues and challenges concerning the implementation of business processes as applications using a Services-Oriented Architecture 
SOA design, deployment and implementation options and alternatives 
Best practices for implementing business processes via SOA, including major implementation phases and their component steps. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Service Oriented Architecture Security (1 day)  &lt;/strong&gt;&lt;br/&gt;
Over the past several years, businesses have used the idea of a Service Oriented Architecture (SOA) to develop high value, and flexible corporate software applications. Traditional security protocols, such as SSL, are often inadequate for these applications. The security community has developed message-based protocols that support a new security model capable of securing the expanded demands of such applications.

The seminar “Service Oriented Architecture Security” explains how to intelligently use this new model to secure an application based on a Service Oriented Architecture. To wisely secure an application requires not only knowledge of the security models, but an understanding of the often subtle security principles.
The total cost of a security system can range from hundreds to millions of dollars. You must apply the appropriate level of security based on the asset to be secured. The seminar will also teach you how to make the correct risk management tradeoffs.&lt;/p&gt;
</description>
  </item>
  <item>
   <title>.NET Rocks Show on Cloud Computing</title>
   <link>http://www.dotnetrocks.com/default.aspx?showNum=459</link>
   <description>I talk about the realities of Cloud Computing including offerings from Amazon, Google, and Microsoft Azure.</description>
   <pubDate>Thu, 02 Jul 2009 16:17:03 GMT</pubDate>
  </item>
  <item>
   <title>Case Study - Reliable Software Helps ISV with  “Painless” Product Upgrade</title>
   <link>http://www.reliablesoftware.com/cs3.html</link>
   <description>A Focus on “Clear, Clean” Code 
Plus a Thorough Knowledge of .NET Does the Trick.&lt;/em&gt;&lt;/strong&gt;&lt;p&gt;Updating a successful and widely-used software application is one of the toughest challenges an independent software vendor faces.  You need to not only get the product right, but also the process; users do not just expect flawlessly-performing software, they also expect that software be delivered to them in an efficient, painless process. And not lose any existing functionality by accident...</description>
   <pubDate>Thu, 21 Apr 2005 01:56:50 GMT</pubDate>
  </item>
  <item>
   <title>Case Study - Intelligent Decision-Making that Pushes the Limits of a Technology</title>
   <link>http://www.reliablesoftware.com/cs1.html</link>
   <description>Reliable Software, Inc. Achieves 'Extreme' SQL Server Scalability and Reliability for Leading Web-based Data-Integration Company.&lt;/em&gt;&lt;/strong&gt;&lt;p&gt;Concord, Mass.-based OneSource Information Systems, Inc. faced a dilemma. A leader in the competitive &quot;information aggregation&quot; market space, it needed to provide its customers, including American Express, Boeing, and Merrill Lynch, with the most advanced services. And yet, it was already pushing the envelope in terms of what was doable with current technology...</description>
  </item>
  <item>
   <title>Case Study - A Disciplined Approach to Software Engineering Leads to a Highly-Scaled, Ultra-High-Availability Windows NT Solution</title>
   <link>http://www.reliablesoftware.com/cs2.html</link>
   <description>Knowledge Management Associates, Inc. (KMA), Burlington, Mass., a producer of corporate portals and intranets, is known for tackling the toughest, most complex projects. Still, a project for a leading management consulting firm was tough even by KMA standards. The firm asked KMA to build an intranet that would provide its more than eight thousand worldwide consultants with fast access to a vast trove of information generated both within and outside the company...</description>
  </item>
  <item>
   <title>Application Development Using C# and .NET</title>
   <link>http://www.reliablesoftware.com/book.html</link>
   <description>Microsoft .NET is an advance in programming technology that greatly simplifies application development both for traditional, proprietary applications and for the emerging paradigm of Web-based services. .NET is a complete restructuring of Microsoft's whole system infrastructure and represents a major learning challenge for programmers developing applications on Microsoft platforms. The new platform includes a new programming language, C#, and a major class library, the .NET framework.</description>
  </item>
  <item>
   <title>Review of The Psychology of Computer Programming</title>
   <link>http://www.reliablesoftware.com/reviews/psychologyofcomputerprogramming.html</link>
   <description>I learned programming in high school from a Fortran IV manual, which was like learning how to drive a car from the owner's manual—unexciting. Later, after taking an operating systems course at MIT, I gave up entirely on programming as a profession. I did not want to spend my life doing the same thing over and over again.&lt;br>&lt;br>What made me change my mind and become a professional programmer? In large part it was Gerald M. Weinberg's The Psychology of Computer Programming, which I first read in 1982. Weinberg not only demonstrated that programming was more than technology, it is a social activity, but he showed how the social element related to the technical. In essence, he identified and addressed the types of fundamental questions that Rilke advised the young poet Franz Kappus to study. Such as&lt;br></description>
   <pubDate>Wed, 28 Jun 2006 19:18:52 GMT</pubDate>
  </item>
  <item>
   <title>The Mythical Man-Month - Review by Michael Stiefel</title>
   <link>http://www.reliablesoftware.com/reviews/manmonth.html</link>
   <description>1965 was the Dark Ages before the World Wide Web and personal computers. Computing was done by high priests hidden in an air-conditioned Holy of Holies. What possibly could Frederick Brooks' classic programming text, The Mythical Man Month, about that era of software development, tell us about software developed today?&lt;p&gt;Brooks wrote his book to help developers understand why software was late, over budget, and took several revisions to get right. He talks about the difficulty in managing complex projects and offers advice on how to navigate the inevitable difficulties. He was the first to point out many of the key concepts in software development; ideas that are taken for granted by experienced software developers.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Why is this book, despite its age, still relevant?&lt;/strong&gt; In 1965, software was late, over budget, and took several revisions to get right. When I first read the book about 17 years ago, software was late, over budget, and took several revisions to get right. Today, software is still late, still over budget, and still takes several revisions to get right.</description>
  </item>
  <item>
   <title>Blog</title>
   <link>http://www.reliablesoftware.com/dasblog/default.aspx</link>
  </item>
 </channel>
</rss>
