Friday, August 23, 2002
Web Services: Is it CORBA redux?
Web services can be implemented in basically two ways--either by exposing an application interface as a Web service or as a "document-based" Web service. One is not as good as the other. In fact, the former, commonly referred to as RPC (Remote Procedure Call) Web services, has flaws that could turn Web services into this decade's CORBA (Common Object Request Broker Architecture.#
We now know that electronic technology has no more to contribute to computing than the physical equipment. We now know that a programmable computer is no more and no less than an extremely handy device for realizing any conceivable mechanism without chaning a single wire, and that the core challenge for computing science is a conceptual one, viz. what (abstract) mechanisms we can conceive without getting lost in the complexities of our own making.
Thursday, August 22, 2002
Pull Parsing in C# and Java
As he said, while the code I presented works, my approach was not optimal for the .NET framework; I was still thinking in terms of SAX event driven state machinery. A much easier way to approach this problem is to take advantage of the fact that XmlReader does not make you think this way; and, thus, to write a recursive descent RSS transformer as outlined below.#
Wednesday, August 21, 2002
Securing SQL Server for Web Applications
If your SQL Server is exposed to the Internet, hackers are probing it. Probably right now. This article shows how to secure a SQL Server database that's being used with a Web application. By definition these servers are exposed.#
Using Forms Authentication in ASP.NET
Classic ASP developers often had to "roll their own" authentication scheme, however, in ASP.NET much of the grunt work has been taken out. This article outlines how things have changed and how FormsAuthentication can be used to secure a Web site with a minimal amount of code.#
Retrieving HTTP Content in .NET
HTTP content retrieval is an important component for applications these days. Although .NET reduces the need to explicitly retrieve content from the Web through built-in mechanisms in the Web services framework, ADO.NET and the XML classes, there are still many needs to retrieve Web content directly and manipulate it as text or data downloaded into files.
Jesu Christo I can't believe how non-intuitive the HttpWebRequest/Response classes are. At least they're feature-complete. #
Monday, August 19, 2002
Finding the First, Last, Biggest, Smallest
Sometimes you want to know which element or record is first or last in a given set, or you want to know which element or record has a value that is the greatest or smallest among the corresponding values in that set -- for example, which employee element has the lowest value for a hireDate subelement or attribute. These operations are typically performed by a query language. You don't need a separate query language, however, to do these when you're developing with XSLT.
Cool. I have to admit, at first, glancing at random XSLT documents I was put off by the syntax. But after having learned it I think XSLT rocks: it's pretty simple (can be pretty much fully grasped in a hour), it flows (the more you use it the more you master it), it's very powerful.
Most importantly, I think, XSLT offers a powerful mechanism for interop. Currently, people seem that the best way to use XML to achieve interop is for an entire vertical industry or community of understanding to come together and come up with a bunch of schemas. This is bad. The Universal Schema Approach is a centralized methodlogy (which makes it very fragile) and, worst of all, it's based on committees (comittees may be the biggest barrier to technological progress ever). Instead, I think every member should come up with their own schemas used internally and published using something akin to WSDL. Then, when two services which to communicate, they just use XSLT to transform their internal schema into the one exposed by the other member. This is the primary value proposition of XSLT: it allows for seamless, unlimited context transitions. This may seem messier than the universal schema approach but I bet it's far more flexible, scalable and maintainable. #
WebDAV (Web-based Distributed Authoring and Versioning, also called DAV) is a set of extensions to HTTP/1.1 (HyperText Transfer Protocol, the protocol spoken by Web browsers and servers) allowing you to edit documents on a remote Web server. DAV provides support for
Personally, I don't like WebDAV. It's too complex and it doesn't even do enough. Cool none the less, something to investigate.
It's a spec and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet. It's remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned.
I have severe doubts about the overall applicability of XML-RPC but it'd be nice to investigate the source code for this library. #
One Fell Swoop
The way to avoid state is to provide all the information the client needs in one fell swoop. For example, if I ask my hospital for my medical record, I want to get my medical record as a single returned message. I don't want to get back an object with "property getters" and "property setters" that I call for each interesting piece of information such as my name or Social Security number or birth date.
Interesting. This jives well with the entire concept of REST. In fact 'coarse-grained messaging' may simply be a synonym for 'REpresentational State Transfer'. #
Sunday, August 18, 2002
Introducing .NET My Services
.NET My Services is Microsoft's first attempt at creating a professional, commercial and widely available Web services platform. The .NET My Services umbrella hosts a number of different Web services, such as a Calendar service, a Contacts repository, and much, much more. These services are major building blocks for the "Everywhere, Anytime" vision, but best of all, they are relatively easy to implement and use in your own applications and Web sites!#
Excalibur AltRMI - Overview
AltRMI is a from-scratch replacement for RMI. It has a number of different features that make it easier to use. It tries as far as possible to be transparent in use.#
Apache Announces Avalon-Phoenix 4.0 Beta
Phoenix is a server of servers. Phoenix is a micro kernel for Java components. Phoenix is 'Avalon Container Enterprise Edition'. Phoenix is not an EJB server. Phoenix does not provide RPC capability out of the box, thus is not a replacement for an EJB server. Phoenix mounts applications distributed in SAR format (like EAR in a way). Phoenix has a JMX management application (MX4J) via port 8082. Phoenix likes components that implement all, some or none of the interfaces from the Avalon-Framework project.#
Javaserver Pages 2.0 Specification
This draft is available for Public Review as per Section 3.1 of the Java Community ProcessSM Program, version 2.1.#
Ovidiu Predescu: Wishlist for a Weblog Tool
I've been using MT for more than a week now, and I started to feel some of its limitations. Here's a small wish list for it, or for any other Weblog tool. In particular, I got prompted by Ugo Cei's message on cocoon-dev, to think about working on Cocoblog as the tool to use for my Weblog.#
Will patents drive us to REST?
REST, even apart from the ongoing debates over its merits, is pretty much built on HTTP and HTTP principles, with possibly a dose of XML. There isn't a whole lot in REST (or in XML) that is strikingly new, and hopefully there isn't anything there that is, well, patentable.#