Understanding server platform

Restful Framework is a .NET code hosting.

If you are familiar with Web hosting (a cloud one or not), you will know that this means you have:
  • Disk space.
  • FTP access.
  • Databases (SQL Server, MySQL...).
  • ...

Once you've a release version of your Web site, you just upload it to the remote host and that's all.

In our case, Restful Framework hosts packages. A package is a standard ZIP file containing:
  • Microsoft .NET assemblies (DLL only):
    • A command module (wait wait, this is explained later!).
    • Command module dependencies (other DLLs needed by command module DLL).
  • Data:
    • Optional configuration required by your custom command module.
    • Optional data files required by your custom command module.

Packages are installed in our Restful Framework servers using our Web interface (and in some very near future, using some Visual Studio extension adding a custom deployment mechanism).

Server architecture

Before some explanations, let's see an architecture diagram:

restful_architecture.jpg

Restful Framework is a Web service hosted by Internet Information Services. When you create an user in our registration server you gain access to create dedicated IIS applications which work in a dedicated application pool.

The hosted application is an instance of our server infrastructure. In few words, it is a Web service working on top of Microsoft .NET CLR / Framework.

In the other hand, once Web service has received a request, in order to response it, it parses the request data using Shell Runtime (remember Restful Framework works like a command line server and operations contained by packages are accessed using command in plain text format).

Command execution happens in a special sandbox with limited permissions:
  • You cannot use reflection to invoke a class member.
  • You cannot access the entire file system - you can only access a data folder, but this is cover in other chapters -.

But don't worry: in order to use Restful Framework you don't need to understand everything about its architecture. Basically you should remember that your command modules will work sandboxed and you need to play with its limitations.

Last edited Jul 4, 2012 at 2:32 PM by MFidemraizer, version 2

Comments

No comments yet.