前文写过使用HTTP.sys转输层(TkbmMWHTTPSysServerTransport),实现一个kbmMW应用服务器. 如果在一台服务器上,同时运行多个,基于TkbmMWHTTPSysServerTransport实现的kbmMW应用服务器,该怎么配置呢? 通常会遇到这样的错误信息,如:“Unable to bind to the underlying transport for … The IP Listen-Only list may contain a reference to a…
介绍 关于如何使用授权和登录管理来构建应用服务器还存在一些问题,其中之一就是用户及其角色如何在在数据库中定义.该文将解释使用TkbmMWAuthorizationManager解决此问题的一种方法.有关其他的信息,可以参考前文REST easy with kbmMW #4 – Access management 首先,我们应该有一些需要登录支持的服务器.对于此示例,我选择了FishFact REST服务器.该服务器的实现可参考kbmMW #12 – Fishfact demo using HTT…
我在前两篇文章中展示了“REST easy with kbmMW”文章,如何使用kbmMW制作REST服务器,以及如何使用该REST服务器轻松地从数据库返回和存储数据,所有这些都在不到30行的真实数据库中码. 此文章将围绕如何确保使用SSL(安全套接字层)保持与服务器的通信受到保护.换句话说,如何使REST服务器与HTTPS而不是HTTP进行通信. 有多种方法可以使用SSL保护基于kbmMW的应用程序服务器,但我将重点介绍使用OpenSSL执行此操作的一种简单方法. 首先,我们应该创建一个可以使…
即将推出的kbmMW更新不仅是一些bug修正,同时将包含一个新的主要功能:客户端存根生成器框架. 那什么是客户端存根生成器框架呢? 他是一个基于kbmMW smart services,可以生成由各种类型的客户端直接使用的代码,以访问基于kbmMW应用服务器的HTTP smart services.(什么是HTTP Smart Service呢?可参考洞主写的文章:kbmmw 的HTTP Smart Service入门) 当前,kbmMW已经实现智能客户端(smart client)功能,通过这…
在之前的博文中,我提到新的存根生成器框架具有生成Delphi客户端存根所需的功能,使得开发Delphi智能客户端非常容易,完全支持编译时的类型检查和IDE类/属性帮助. 我没想到会把它包含在即将发布的kbmMW版本中,但我无法自控.... 必须添加它才能生成相当完整的初始存根生成器. 存根生成器将生成普通的Delphi代码,需要kbmMW智能客户端功能进行编译.但代码已完成,并包含所需的所有单元引用.如果您使用的是包含对象的自定义单元,则必须将这些单元与生成的存根代码一起提供给Delphi客户端…
我被问到有关如何通过基于kbmMW智能服务(Smart Service)的REST处理POST的问题. 这篇博客文章解释了典型的POST各种形式的访问,以及如何在kbmMW中处理它们. POST变种Web/REST客户端可以通过多种方式POST数据: 1.作为URL的路径部分中的值数据    例如:POST http://localhost/myservice/myfunction/10/202.作为URL的查询部分中的键/值数据    例如:POST http://localhost/myse…
你想过没有,把一个给定的xml或json生成一个Delphi类,并通过这个类完成对xml或json的读写操作吗? 不管有没有,现在kbmMW为我们实现了,看下面这行代码: var s:string; ... s:=TkbmMWJSONMarshal.GenerateDelphiClassFromUTF8File('auctions.json','Unit2','JSONData'); ... { "realm":{"name":"Aegwynn"…
kbmMW已经包含了非常精细的功能来确定和解释数据库中表的元数据. 在下一版本中,这个功能将得到进一步加强,可以导入现有数据库中的表,自动创建与表相匹配的ORM实体类. 这意味着你能够使用kbmMW的ORM智能来查询表,将数据保存回表并操纵表元数据,例如添加,更改或删除字段.索引以及需要能够升级数据库用于匹配已更改的ORM表实体类的更高版本的表. 当你意识到需要更改数据库表以允许其他或不同的字段时,ORM的设计目标之一始终是抽象掉所需的所有枯燥工作.在kbmMW中,它就像更改ORM类一样简单,并…
在前面有关如何使用kbmMW创建REST服务器的基础上,现在已经到了考虑该如何控制用户的访问.什么是访问管理?就是“允许谁做什么"的问题. 显然,这个世界中存在数据,应该保护他而不被未授权的人/进程来读取,创建或更改.反过来说,这些数据应该得到保护,只有信任的人/进程才可以访问.另外,有的数据可以被人或进程来访问,但不允许被修改等等. 幸运的是,kbmMW内置了一些功能来解决上面的问题,核心是TkbmMWAuthorizationManager类. 首先在main form中添加一个TkbmMW…
kbmMW 5.0支持REST服务器的开发,并且非常简单,下面看看如何实作一个REST服务器. 首先我们制作一个服务器应用程序,增加一个简单的Form,并放置kbmMW组件. 在Delphi中单击File - New - VCL Forms Application 然后将以下kbmMW组件添加到Form中: TkbmMWServer TkbmMWTCPIPIndyServerTransport 将kbmMWTCPIPIndyServerTransport1的Server属性设置为kbmMWSer…