zoukankan      html  css  js  c++  java
  • KbmMW 4.40.00 正式版发布

    经过快3个月的测试,kbmmw 4.40 正式版终于在圣诞节前发布了。

    We are happy to announce the availability of a new kbmMW release!

    This is a major release that amongst other things adds support for Delphi XE5 Win32/Win64/OSX/IOS/Android.

    The release also includes the following major features (only a subset of all new features added):

    - A new highly configurable and flexible authorization manager where actors, roles, resources, authorizations and constraints can be defined.

    - New portable high performance algorithms: TkbmMWLock and TkbmMWEvent
      and detailed CPU affinity configuration for functionality groups.

    - Async progress framework for subscribing for progress and sending it,
      with the ability to cancel long running operations.

    - Multipart HTTP parsing and HTTP authentication support.

    - Numerous new bundled ciphers and hashes based on the
      discontinued DCPCrypt open source product. C4D has revived
      the code within kbmMW, and ported it to support all platforms
      supported by kbmMW.

    - New FireDAC database adapter.

    Please check the log further down in this post for more information!

    If you have an active SAU, the download of this latest kbmMW release is readily available on your portal at:

    https://portal.components4developers.com

    If your SAU has lapsed, you can extend it with another 12 months.
    If it has been lapsed for more than 24 months, contact us for a
    10% discount on a new kbmMW license replacing the old.


    This release require kbmMemTable v. 7.40.00.

     4.40.00 Dec 22 2013

            Important notes (changes that may break existing code)
            ======================================================
            - Changed JSON object marshalling (TkbmMWJSONMarshal) to not
              add double child arrays in collections.
              Notice this makes JSON incompable with previous JSON
              streaming format.

            New stuff
            =========
            - Added properties Cancel:boolean, UniqueID:string,
              UniqueCallID:string, RequesterNodeID:string and
              RequesterClusterID:string
              to TkbmMWCustomService. Enables features for cancelling
              ongoing request.
            - Added full XE5 Win32/Win64/OSX/Android and IOS support. Add
              kbmMW and kbmMemTable source directory to Library path
              when compiling for Android or IOS.
            - Added TkbmMWAuthorizationManager which can be used for
              keeping track of resources, actors, logins and authorizations
              and constraints.
            - Added AuthorizationManager property to TkbmMWServer.
            - Added OnPreServeRequest to TkbmMWServer. Provides access to a
              request before even authorization manager kicks in.
            - Added Cancel method to TkbmMWServer allowing for requesting
              cancelation of a specific request.
            - Added Enabled property to TkbmMWCustomServerTransport.
            - Modified OnAuthenticate event to include AMessage:string
              argument.
            - Added Transport:string to TkbmMWClientIdentity. Is set on
              server to let authentication know from which transport a
              request originates.
            - Added portable high performance TkbmMWLock (when
              KBMMW_SUPPORT_FASTMRWSLOCK is defined (default)) which is
              much faster
              than TEvent/TMutex and TMultiReadExclusiveWriteSynchronizer.
            - Added TkbmMWTiming which provides portable high resolution
              time functionality.
            - Added TkbmMWInterlocked which provides portable interlocking
              functions.
            - Added high performance TkbmMWEvent to replace slower TEvent.
            - Added ConfigureAffinity, Yield, Sleep, CurrentThreadID,
              CurrentThread, ThreadGroup and ThreadAffinityType to
              TkbmMWCustomThread.
              ThreadGroup allows selection of a thread group which share a
              common CPU core affinity. Max 256 threadgroups exists.
              Placement of the thread on a CPU core within the defined
              affinity is determined by the ThreadAffinityType setting.
              Allows for fine tuned thread optimization. Specify affinities
              in global variable: kbmMWThreadGroupAffinity.
            - Added TkbmMWPlatformMarshal for portable memory/bytes
              /utf8/string marshalling.
            - Changed kbmMWHashString from a simple xor hash to the better
              FNV-1A 32 bit hash.
            - Added portable kbmMWGetApplicationName:string returning the
              name (typically with path) of the current executable.
            - Added optional Mapping:string argument to LoadFromDataset.
              Specify sourcefield=destfield;... for custom mapping of
              fields.
            - Added new WIB message type mwmtEvent (EVT.). Its designed to
              be used for sending system/application events. For example
              used by the new progress management system, which allows for
              a client to subscribe for progress, and a server to push
              progress status, for example for long running synchrone or
              asynchrone requests (require WIB).
            - Added new transport heartbeat functionality via properties
              HeartbeatInterval and OnSendHeartbeat. OnSendHeartbeat is
              triggered every n seconds, and its the developers
              responsibility to then actually send a message/request to
              indicate a heartbeat from a client
              with help of the SendHeartbeat method on the client transport.
            - Added mwsloNullOnValueError as a new SQLite option. Instead
              of excepting the field is set to null.
            - Added Pause:boolean, PausePriority:byte to TkbmMWCustomQueue.
              If Pause=true will pause processing (sending if outbound
              queue) messages equal to or lower than PausePriority.
            - Added counters TotalPushCount, TotalTentativePopCount,
              TotalCommitCount, TotalRollbackCount, TotalRejectCount,
              TotalDeleteCount to TkbmMWCustomQueue.
            - Added support for multiple events for a single subscription
              via the Events property of TkbmMWSubscription.
              Now Subscribe adds an additional event if a subscription
              allready exists for a particular subscription subject.
              Use SubscribeReplace to replace all previously events for a
              subscription with another event.
              Unsubscribe method now overloaded with multiple methods,
              allowing to unsubscribe for a specific event for a subject.
              The "old" Unsubscribe unsubscribes all events for the given
              subject.
            - Added ThreadGroup and ThreadAffinityType to
              TkbmMWCustomAsyncMessageProcessor,
              TkbmMWCustomAsyncMessageQueueProcessor
              and TkbmMWCustomPooledMessageQueueProcessor.
            - Added new TkbmMWCustomEventMessage which is the basis for all
              WIB based messages that constitutes an event message.
            - Added new TkbmMWHeartbeatEventMessage.
            - Added properties AsEncodedString, UpperName to
              TkbmMWHTTPCustomValue.
            - Added Delete, Values, Names, ValueAsString, AsEncodedString
              to TkbmMWHTTPCustomValues.
            - Added TkbmMWHTTPMimeHeaderValueField,
              TkbmMWHTTPMimeHeaderValueFields, TkbmMWHTTPMimeHeaderValue,
              TkbmMWHTTPMimeHeaderValues, TkbmMWHTTPMultiPart,
              TkbmMWHTTPMultiParts in kbmMWHTTPUtils.pas.
              Thus now multipart HTTP messages can be parsed.
            - Added TkbmMWHTTPCustomAuthorization and
              TkbmMWHTTPBasicAuthorization along with
              new function kbmMWParseAuthorization(const
              AAuthorizationHeader:string):TkbmMWHTTPCustomAuthorization;
              for parsing authorization header.
            - Updated TkbmMWHTTPTransportStreamHelper to support new
              TkbmMWHTTPMimeHeaderValues, and added HTTPRealm:string
              property, and added
              Authorization:TkbmMWHTTPCustomAuthorization property.
            - Added  function
              HTTPResponseFromStream(AStream:TkbmMWMemoryStream):variant;
              to TkbmMWCustomHTTPService.
            - Updated known mimetypes (Added SVG, JSON, TTF, OTF, WOFF,
              EOT, MP4, MPEG4)
            - Updated known charsets (added JSON = UTF8).
            - Added TkbmMWSAFSyncRequestResponseStatus set
              (mwbrsTimeout,mwbrsAbort,mwbrsOK) which allows for
              a sync/async request to determined if a request has timed
              out, been cancelled or proceeded ok.
            - Added OnProcessorException to TkbmMWCustomSAFClientTransport
              which is triggered if the internal inbound or outbound
              processor encounters an exception.
            - Added optional APriority argument to AnnounceSubscriptions
              method.
            - Added OnClientWaitingResponse event to TkbmMWCustomClient.
              Its triggered when a request is sent that is blocking (sync).
            - Added new TkbmMWProgressManager which can be used to send and
              receive progress information via the WIB.
            - Added new FireDAC adapter.
            - Added new ciphers and hashes. The closed DCPCrypt library
              (www.cityinthesky.co.uk/opensource/dcpcrypt) has been
              picked up by C4D and resurrected with support for all
              platforms.
              Thus now added TkbmMWHashHaval, TkbmMWHashMD4, TkbmMWHashMD5,
              TkbmMWHashRipeMD128, TkbmMWHashRipe160,
              TkbmMWHashSHA1, TkbmMWHashSHA256, TkbmMWHashSHA512,
              TkbmMWHashTiger hashes, and
              TkbmMWCipherBlowfish, TkbmMWCipherCast128,
              TkbmMWCipherCast256, TkbmMWCipherDes, TkbmMWCipher3Des,
              TkbmMWCipherIce, TkbmMWCipherThinIce, TkbmMWCipherIdea,
              TkbmMWCipherMars, TkbmMWCipherMisty1,
              TkbmMWCipherRC2, TkbmMWCipherRC4, TkbmMWCipherRC5,
              TkbmMWCipherRC6, TkbmMWCipherRijndael, TkbmMWCipherAES,
              TkbmMWCipherSerpent, TkbmMWCipherTea, TkbmMWCipherTwofish
              ciphers.
            - Added TkbmMWCrypt transport encryption plugin, which supports
              all above ciphers and hashes.
            - Added mwsloSharedCache, mwsloExceptOnLocked options to
              TkbmMWSQLiteOptions.
            - Added MaxLockedWait property to TkbmMWSQLiteConnectionPool.
              It controls how long time a statement will wait (msecs) for
              a blocking lock to be lifted, before excepting.
            - Added support for accessing native SQLite library on Android.
              Make sure NOT to use KBMMW_SQLITE_STATIC_LINKED. On IOS
              you MUST use KBMMW_SQLITE_STATIC_LINKED.
            - Added UTF8CEncode and String2CBytes to TkbmMWPlatformMarshal.
              They will add an ending zero byte to the resulting byte array.
            - Added TkbmMWCustomHashStream, and made TkbmMWMD5Stream
              descend from it.
            - Added kbmMWCopyDigest and kbmMWZeroDigest functions to
              kbmMWGlobal.pas
            - Added support for defining null value for boolean value via
              the kbmMW_Null attribute (object marshalling).
            - Added 4 new exception error codes related to
              encryption/descruption to kbmMWExceptions.pas.
            - Added DontExceptOnEmptyString boolean property to
              TkbmMWJSONStreamer. If true, parsing an empty string will
              not cause exception, but only return an empty
              TkbmMWJSONObject instance.

            Fixes
            =====
            - Fixed compilation for D2009.
            - Fixed mime encoding/decoding in kbmMWMime.pas.
            - Fixed null validation/conversion for collection items (object
              marshalling).
            - Fixed storing/retrieving stream of size 0 in kbmMW Stream
              Store.
            - Fixed several other issues.

        Changes/minor additions
            =======================
            - Removed old TkbmMWDCPCrypt transport encryption plugin.
            - Changed TkbmMWThreadList to be a generic class.
            - Changed kbmMWImplode to optionally accept AQuote argument
              (default none).
            - Changed TkbmMWAuthorizationActor so the actor name is stored
              and compared case insensitive (uppercase).
            - Changed JSON object marshalling (TkbmMWJSONMarshal) to not
              add double child arrays in collections.
              Notice this makes JSON incompable with previous JSON
              streaming format.

  • 相关阅读:
    PHP学习九--会话控制session和cookie
    PHP学习八--正则表达式
    PHP学习六--类和对象
    PHP学习五--函数
    PHP学习四--数组
    《30天自制操作系统》day08——鼠标控制与32位模式切换
    java 中 静态块的作用
    学习(一)
    asp中 grideview 更新 无法获取值 解决办法
    ASP.NET中的GridView自带的编辑更新功能
  • 原文地址:https://www.cnblogs.com/xalion/p/3487119.html
Copyright © 2011-2022 走看看