kbmmw 5.0 beta1 发布

简介: 经过大半年的等待,kbmmw 的新版终于来了。经过近5年的打磨, kbmmw 的版本号升级到5了。kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, .
经过大半年的等待,kbmmw 的新版终于来了。
经过近5年的打磨, kbmmw 的版本号升级到5了。

kbmMW is a portable, highly scalable, high end application server and enterprise architecture integration (EAI) development framework for Win32, ..Net and Linux with clients residing on Win32, .Net, Linux, Unix, Mainframes, Minis, Embedded and many other places. It is currently used as the backbone in hundreds of central systems, in hospitals, courts, private, industries, offshore industry, finance, telecom, governements, schools, laboratories, rentals, culture institutions, FDA approved medical devices, military and more. 5.00.00 Beta Feb 19 2017 Important notes (changes that may break existing code) ====================================================== * Officially now only supporting XE2 and forward. Support for pre XE2 may not be complete. New stuff ========= - Officially now only supporting XE2 and forward. Support for pre XE2 may not be complete. - Added RemoteLocationsPrimaryPart to TkbmMWAuthorizationTransportConstraint (default false). If set to true, will only compare primary part of clientidentity.remotelocation. Primary part is defined by everything up til the last ':'. In most cases that will mean the IP address without the port number. - Added IkbmMWLogFormatter interface to kbmMWLog. - Added TkbmMWStandardLogFormatter to kbmMWLog. It contains vastly improved features for controlling the look and layout of the log output. Its the default used log formatter. - Added TkbmMWSimpleLogFormatter to kbmMWLog. It outputs a log with only datetime, type (info/warning/error/fatal etc) and log string. - Added LogFormatter property to IkbmMWLogManager. It can be set to a custom log formatter. - Added mwldtRaw log data type and methods LogRaw to IkbmMWLog. It allows for logging bytes or strings without interpretation/reformatting. - Added global SystemLog instance which will always output to system log outputs. It is used as a fallback in case the regular log system excepts. - Added support for marshalling/unmarshalling named enum values via the new kbmMW_Enum attribute. Its useful when an enum value cant be used as an identifier or its value should be different from its presented name. - Added ExceptOnUnknownType to TkbmMWCustomRTTIMarshal. It controls if to throw an exception if an unknown type is accessed or not (default true). - Added support for marshalling/unmarshalling TDictionary<K,V> types. - Added support for correctly instantiating classes in unmarshalling that contains a capacity constructor argument. - Added Run methods to TkbmMWScheduler. It allows for one time run and forget scheduled async code. They are used in the same way as the Schedule methods, but sets Occurs to mwsoRun. The job will be automatically unscheduled after the run. - Added overloaded DelayInitial(const AInitialDelaySecs:double) to IkbmMWScheduledEvent. It allows for directly giving an initial delay in seconds. It supports fractional second values. - Added Clear to TkbmMWScheduledEvents (scheduler.Events) to allow for clearing all scheduled events. Running events will be allowed to finish. - Added GetNameSpaceByURI, DefaultNameSpace, DefaultNameSpaceURI to TkbmMWDOMXMLNameSpaceList. - Added SearchRelNodeByID, SearchNodeByID, SearchRelNodeByGivenName, SearchNodeByGivenName to IkbmMWDOMXMLParser. - Added ExpandNameSpace, GivenName, ChildrenByGivenName, ChildByGivenName, CheckChildByGivenName to TkbmMWDOMXMLNode. - Added CheckNodeByGivenName, NodeByGivenName to TkbmMWXMLNodeList. - Added missing ADSDBF support to kbmMWReg. - Added mwrtoOptionalInsert,mwrtoKeyNotNullInsert, mwrtoOptionalModify,mwrtoKeyNotNullModify, mwrtoOptionalDelete,mwrtoKeyNotNullDelete and table modifier flags OIM/OMI (optional insert/modify), OID/ODI (optional insert/delete), OMD/ODM (optional modify/delete), OI (optional insert), OD (optional delete), OM (optional modify), KIM/KMI (insert/modify on key not null), KID/KDI (insert/delete on key not null), KMD/KDM (modify(delete on key not null), KI (insert on key not null), KM (modify on key not null), KD (delete on key no null) to TkbmMWResolverTableOption They allow for more finegrained definition on when insert/update /delete should happen. If one of the optional (OIM,OMD,OID,OI,OD,OM) is given, no exception will be raised for the table when an operation did not succeed, and resolving will continue. If one of the key (KIM,KMD,KID,KI,KM,KD) is given, record resolve operation will be skipped for the specific record if key is null. - Added ReadBOM overloaded methods with default TEncoding option to TkbmMWPlatformMarshal. - Added overloaded kbmMWTextToString, kbmMWExpectText, kbmMWStringRightPad, kbmMWStringLeftPad, kbmMWGetComputerName functions to kbmMWGlobal.pas. - Added optional ACallback anonymous function to SendAsyncRequest and SendAsyncRequestEx in kbmMWClient.pas (WIB only). It allows for providing an anonymous function that should be called when an async response is returned. The function must follow this type: function(Sender:TObject; TransportStream:IkbmMWCustomTransportStream):boolean; - Added LOB blob/clob support (user fix) to DOA adapter. - Vastly improved XSD importer. - Added generic Object Notation framework for building virtual object trees consisting of TkbmMWONNative, TkbmMWONArray and TkbmMWONObject which all are based on TkbmMWONCustomObject. - Added YAML parser/generator based on object notation framework. - Added Messagepack parser/generator based on object notation framework. - Added BSON parser/generator based on object notation framework. - Added support for converting XML to and from object notation format via LoadFromObjectNotation and SaveToObjectNotation functions. - Added new TkbmMWCustomSmartService and TkbmMWCustomHTTPSmartService services, which can be selected in the service wizard to create smart services. Smart services supports tagging any function to be exported to a smart client or a REST client (TkbmMWCustomHTTPSmartService required). - Updated transports to support marshalling objects via the transport. - Added several near lock free features to kbmMWGlobal, including TkbmMWLockFreeStack, more interlocked functions, lock free array GC fixes, optional TkbmMWREWLock statistics, support for TkbmMWMREWLock can switch to TMonitor for reader/writer fair support. - Optimized many algorithms like TkbmMWStringBuilder, TkbmMWGenerateGUID, TkbmMWGenerateShortGUID and many more to improve performance overall. - Added many new general purpose functions to kbmMWGlobal. - Added direct support for salt in hash functions deriving from TkbmMWCustomHash. - Added support for anonymous functions in async kbmMWClient requests (WIB) - Added new kbmMWRTTI unit with loads of RTTI functionality. - Added YAML stream format for kbmMemTable and descendants. - Added Messagepack stream format for kbmMemTable and descendants. - Added BSON stream format for kbmMemTable and descendants. - Added object marshalling to and from YAML. - Added object marshalling to and from Messagepack. - Added object marshalling to and from BSON. - Added ServicePath property to TkbmMWClientIdentity. - Added MaxLogins to TkbmMWAuthorizationManager which is default 100 to prevent potential login spam. - Added support for HTTPSys based transport for Windows. Its specially useful for high performance RESTful applications. - Added AutoRegisterServices method to TkbmMWServer which can be used for automatically locating and registering any service that has the kbmMW_Service attribute defined. It makes use of the old RegisterService and RegisterServiceByName optional. - Added LocalSinceEpochMS, UTCSinceEpochMS, Temporenc to TkbmMWDateTime. Temporenc is a very compact binary encoding of a datetime value. - Added FastSetUTC method to TkbmMWDateTime to threadsafely very fast setting the UTC value of an already defined TkbmMWDateTime record. The record MUST be initialized before using FastSetUTC, for example by dt:=TkbmMWDateTime.Now; - Added ValueToStream, ValueFromStream, ValueToBytes and ValueFromBytes in TkbmMWCustomRTTIMarshal. Allows for easy marshalling objects to and from bytes and streams. - Added ExceptOnUnknownType boolean property to TkbmMWCustomRTTIMarshal. Controls if an exception should be thrown in case a type cant be marshalled or unmarshalled, or it should be silently skipped. - Added Devart MyDAC support (DMYDAC). - Added CORS support (Cross Origin-Resource Sharing) in TkbmMWCustomHTTPService and descendants. (OnCORS event). - Added PerformOPTIONS and PerformPATCH support to TkbmMWCestomHTTPService. (OnOptions and OnPatch in TkbmMWEventHTTPService). - Added REST transport stream format which must be used if non HTTPSys transport is used for smart services. - Added TkbmMWSmartClient which allows simple and easy access to server side smart functions. Check simpleinvocation sample. - Added high quality random functions in new kbmMWRandom unit. TkbmMWRandomDelphi (32 bit non high quality ramdom!), TkbmMWRandomSplitMix (64 bit) TkbmMWRandomXoroshiro128Plus (64 bit), TkbmMWRandomXoroshiro1024 (64 bit), TkbmMWRandomPCGUInt32 (32 bit), TkbmMWRandomMersenneTwisterUInt32 (32 bit), TkbmMWRandomMersenneTwisterUInt64 (64 bit) - Added high quality pronouncable password generators in new unit kbmMWPassword. TkbmMWMixerPasswordGen, TkbmMWKoremutakePasswordGen - Added support for ExchangeType in TkbmMWAMQPClient. - Added new GC and CloseAndGC methods in TkbmMWAMQPChannel to force getting rid of defunct/cached but unused AMQP channels. - Added IPVersion property to TkbmMWCustomTCPIPIndyClientTransport. Changes/minor additions ======================= - Removed (mwloProcessThreadInfo,mwloThreadName from TkbmMWLogOption since its now controlled by the log formatter. - Changed Activate method of IkbmMWScheduledEvent to have true as default argument AValue. - Changed SetAsDuration and GetAsDuration to use TkbmMWDuration instead of TkbmMWDateTime. - Added support for checking if path is accessible in TkbmMWBufferedFileStream.Create. - Changed JSON parser/generator to be based on the object notation framework. - Improved scalability of FastCGI services to better spread load accross multiple instances. Fixes ===== - Fixed A/V when attempting to use audit file. - Fixed missing clearing of TkbmMWDuration when parsing duration strings, resulting in an incorrect duration value (instead of null) on invalid duration strings. - Fixed TDuration.Passed(const ADuration:TkbmMWDuration) which didnt return correct value. - Fixed deactivating precise scheduled events. - Fixed events scheduled to start on day, month, week or year boundaries. - Fixed issues to initial delay in scheduled events. - Fixed parsing tags crossing line boundaries in XML parser. - Fixed various namespace issues in XML parser. - Fixed WIB compilation issue for XE. - Fixed TkbmMWStreamStore offset bug when writing first segment. - Fixed potential shutdown issue in Indy10 transports due to Indy10 bug. - Fixed kbmMWDependency non accumulating memory leaks. - Fixed NexusDB transport compilation. - Fixed Autoinc field detection in EDB (ElevateDB) adapter.
目录
相关文章
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
606 214
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
849 61
|
7天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1253 157
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
241 138
|
7天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
522 109