Cross-platform Application Server for Mono and .NET Architecture
Basics LibraryTNAPS 3 uses the following main concepts:1. Component2. Application (App) Component3. Instance4. Library App ComponentLibrary contains all Components and Apps thatyou can use. Every App uses one or manyComponents to run.So, you have to intall everything you need intothe Library first, then create Instance of the Instance of an App fromApp you need to launch and execute it. Instance Library with configured settings (port, db, etc.)TNAPS allows to create as many Instances ofApp as you need. For example, it can be thesame CRM application, but hosted on differentports, using different datasources and serving Running Executed by TNAPS indifferent clients. App separate processFor every Instance you launch TNAPS executesseparate process, so all Instances workindependently.
LibraryEvery TNAPS installation creates a repositoryfor components and applications called TNAPSLibrary. Every component and application getsstored there before actually being used.TNAPS Library greatly resembles standardlibraries of magazines. Each component or App 1.0 Component 1.0application is installed into Library and is storedin multiple versions, just like standard book App 1.1 Component 1.1library store magazine issues.Each time a new version of the component is App 1.2 Component 1.2published it is downloaded and added to theLibrary along with previous versions. All olderapplications using previous versions of thecomponent are still fully functional.Usually you do not need to access library TNAPS Library contains all versions ofmanually. But Library is a directory and can be every application and component. Justviewed. However, you should edit it only using like a standart library with magazines itTNAPS Management Center. Here are library keeps tracking of older versions oflocations: components, so apps that use them wouldWindows operate normally.c:ProgramDatatnserverlibLinux/MacOSX/usr/share/tn/server/lib
ComponentIn TNAPS everything begins with the Component.The Component is the only part of TNAPS that storesand accesses the executable logic of the DLLs or JARsapplication. TNAPS Studio, Visual Studio, Eclipse, or (Business Logic)any other IDE allows the development ofcomponents.Component can be hosted by .NET / Mono Binary resourcesenvironment or by Java Virtual Machine like Component (images, data,OpenJDK or OracleJDK. TNAPS provides API for both etc)environments and special message transport layerallows components from .NET to communicate withJava components within one app. Dependency infoTNAPS comes with a set of default components that (whatare most often used in every server application. For componentsexample, Hosting Component provides functionality it depends from)to expose other components interface as RESTfulAPI or SOAP services. Component is a package thatComponent is not just a set of .NET Assemblies and contains executable logic,.JAR files, but an actual package that contains references to dependedbinary resources and all other assets that the components and any arbitarycomponent logic uses during execution. resources that component may require during execution.
ApplicationEach Application in TNAPS is a composition of CRM Appcomponents linked together like building blocks toconstruct the required business logic.Within applications there are components called“root components” that are executed right afterlaunch of the application. Those root componentsreference other components and call them when Hostneeded. ProviderExampleIn the scheme to the right there is a sample CRMApp that can build reports about customers.The entry point (root component) is Host Provider. ReportThis component opens port and exposes Report BuilderBuilder component interface to the whole worldthrough REST or SOAP. When Report Builderreceives request it calls DB component for customerdata from database and uses PDF Generatorcomponent to build PDF report based on database PDFdata. DB GeneratorConsidering Host Provider, DB and PDF Generatorcomponents are standart ones, developers task isonly to create Report Builder component and calldependent component actions.
PackageApps and Components for TNAPS are distributedin the form of package files with .tnpakextension. Package contains all the informationand data to deploy app or component intoTNAPS Library. compile and sign Component /Every software vendor who create componentor app for distribution signs resulting package App Packageand provides it to the customers. TNAPS uses vendorsignature to verify package consistency andvendor credentials. downloadWhen the end-user installs component or install intoapplication into the library TNAPS checks TNAPS Librarywhether all of the dependent components(with exact versions) are presented in thelibrary. end-userDependent component packages can also beincluded into the application package. So thatevery time users installs application all requiredcomponents are installed automatically.
Instance LibraryIt is the actuall running application in TNAPS.Once App is installed in the Library it can beused to create Instances for launching. AppConfigurationInstance is defined by its Configuration. Everytime the instance is created it gets the defaultconfiguration from the App. Later on thisconfiguration can be changed to satisfy thedesired behavior of the App. For example,creating two instance from the same App and Instance1 Instance2giving them different hosting ports anddatasources to use. config configExecutionWhen TNAPS gets request to execute instance itlaunches separate process for it. So everyrunning Instance is completely independent and DB1 DB2can not interfere with eachother. Moreover, incase of any problems within instance, TNAPScore process would continue to functionproperly.
Architecture Summary .NET .NET Java Java Component Component Component Component .NET Adapter Java Adapter Message TransportThe core level of TNAPSuses .NET / Mono forhosting. On top of it residesApplication hosting engine.TNAPS launches separate Application Hostingprocess for each AppInstance. The following slides would TNAPS Coreexplain architecture indetails. .NET / Mono Framework JVM
Managing TNAPSTNAPS has web-based management interfacecalled Management Center. It is available afterTNAPS launch: TNAPShttp://localhost:9095/tnaps/console Management REST API CenterManagement Center provides a frontend forTNAPS REST API. This API contains many end-points for managing different aspects of TNAPS.Of course, all of the REST API methods can becalled directly - via curlFor example the following request returns JSONwith all of the components installed intoLibrary. > curl http://localhost:9095/tnaps/library/components/names. json User ["HostProvider","binarycalculator","currencymonitor"]
Product Page http://tncor.com/en/tnapsGet more information, samples and downloads