Title: Seamless sharing of Navision business logic and data structures
1Seamless sharing ofNavision business logic and
data structures
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
2Agenda for today
- 1000 NETConductor Overview Architecture
and functions Building a .NET application - 1130 Break
- 1145 Security and authentication Network
security User Identity in Navision Authenticatin
g in .NET application - 1230 Partner Cases
- 1300 Lunch and discussions
Seamless sharing ofNavision business logic and
data structures
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
3NETConductor Overview
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
4NETConductor Overview
- Why NETConductor?
- There is a vast number of industry solutions
available on the Navision platform. - It is now essential to be able to integrate these
solutions with other applications and platforms. - It is not an option to re-train all Navision
specialists in other platforms to enable
integration. - It is not an option to rewrite business logic in
other platforms to enable integration. - This is why NETConductor is needed!
Why NETConductor
5NETConductor Overview
- Where are we coming from...
- Navision developers have been developing in their
own space.
The Navision world
6NETConductor Overview
- Where are we coming from...
- Navision developers have been developing in their
own space.
- Other developers have also been developing in
their space. - Different methods of connectivity have been
coming and going through the years. - ODBC
- C/Front
- Replication
- Commerce Portal
- But those methods have been limited in different
ways.
There are more worlds
7NETConductor Overview
- Where are we heading...
- The latest method of connectivity, defined by
Microsofts .NET, are Web Services. - Wide acceptance of this new method gives hope to
long life. - Web Services allows for a new way of developing
software. - Navision should be part of this new way of
developing software.
.NET Web Servicesprovides real connectivity
8NETConductor Overview
- Where are we heading...
- The latest method of connectivity, defined by
Microsofts .NET, are Web Services. - Wide acceptance of this new method gives hope to
long life. - Web Services allows for a new way of developing
software. - Navision should be part of this new way of
developing software.
- That is what NETConductor enables.
.NET Web Servicesprovides real connectivity
9NETConductor Overview
And what does it look like...
.NET Web Servicesprovides real connectivity.
10NETConductor Overview
And what does it look like...
.NET Web Servicesprovides real connectivity.
11NETConductor Overview
And what does it look like...
Invoking Web Service operation To try out running
a Navision CodeUnit the RunCodeUnit operation can
be called using a Web Browser. Simply provide the
number of the CodeUnit to run, the parameters to
pass into Navision and press the Invoke button.
.NET Web Servicesprovides real connectivity.
12NETConductor Overview
And what does it look like...
.NET Web Servicesprovides real connectivity.
13NETConductor Overview
And what does it look like...
Running Navision CodeUnit The CodeUnit being run
can verify the parameters and return an error
message if the call is not appropriate. If there
is no error then a RecordSet can be defined and
returned back to the NETConductor, which will
construct the XML and relay it back to the caller.
.NET Web Servicesprovides real connectivity.
14NETConductor Overview
And what does it look like...
.NET Web Servicesprovides real connectivity.
15NETConductor Overview
And what does it look like...
Receiving the Result When the client receives the
reply it is always in the form of an XML
document. This document could contain an error
response or a valid response from Navision. A
valid response can contain Strings, Hashtables,
RecordSets or combination of these.
.NET Web Servicesprovides real connectivity.
16NETConductor Overview
- With NETConductor you have...
- Standard Microsoft .NET interface
- Full two-way access to data
- Full re-use of business logic
- Integration with Microsoft stack
- No additional training
- No additional servers
- Native XML conversion
- .NET enabled Navision
.NET Web Servicesprovides real connectivity.
17Using NETConductor
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
18Using NETConductor
.NET Web Servicesprovides real connectivity
19Using NETConductor
- From concept to product
- DT DataTier
- MT MiddleTier
- NAS Navision Application Server
- IIS Internet Information Service
.NET Web Servicesprovides real connectivity
20Using NETConductor
- The request contains the name of the DataTier
service to execute the command. - The MT searches for the DT
.NET Web Servicesprovides real connectivity
21Using NETConductor
- Connection is established between the MT and the
DT. - The CodeUnit is run, using the NAS, with the
given parameters.
RunCodeUnit CRONUS.DT no84922 parameters...
CRONUS.DT
.NET Web Servicesprovides real connectivity
22Using NETConductor
- CodeUnit does not create XML, but returns a
reference to the data. - The DT collects the data from Navision using
C/Front.
RecordRef
.NET Web Servicesprovides real connectivity
23Using NETConductor
- The XML is then returnedthrough the MT to the
requester.
RecordRef
.NET Web Servicesprovides real connectivity
24Using NETConductor
- Performance testing
- We have made a test with the NETConductor in
relation to its performance. - The result were as follows
- With no-op calls into Navision
- Ca. 200 calls/second
- With no calculated fields
- Ca. 5.000 large records / second
- Ca. 10.000 smaller records / second
Performance experiment.
NB These numbers depend heavily on the machine
configuration, NETConductor configuration and
the code being run within Navision. These numbers
are shown for reference only !
25NETConductor Setup
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
26NETConductor Setup
- Requirements
- Internet Information Service 5.0 or later
- Navision Application Server 3.70
- Navision Database Server 3.70
- Navision Client can beused instead of the NAS.
NETConductor Requirements
27NETConductor Setup
- Once you have the required components in place,
you are ready to download the latest version of
the NETConductor and license. - www.ruedenet.com provides all installs
- NETConductor executable
- DataTier install wizard
- MiddleTier install wizard
- NETConductor documentations
- Step by step installation guideline
- NETConductor demos
- .NET Windows demo
- .NET Web demo
- Navision to Navision demo
NETConductor Downloads
28NETConductor Setup
- Rue de Net license files can be requested using a
form at www.ruedenet.com. - The default license is a 7-day demo
- Extended periods are available
- Developer licenses are 1-year licenses
- Customer licenses are perpetual
- All license files are affiliated with a Navision
license number. - This Navision license must be available and in
order, when running the NETConductor DataTier
and MiddleTier.
NETConductor Downloads
29NETConductor Setup
- Then we install...
- MiddleTier onto IIS
- DataTier onto NAS
- Load Navision objects into Database
- Make licenses available to MT and DT
NETConductor Installations
30NETConductor Setup
- Then we start...
- IIS must be up and running
- Which makes the MT available.
Microsoft Components
Internet Information Service
Starting the NETConductor
31NETConductor Setup
- Then we start...
- IIS must be up and running
- Which makes the MT available.
- Database server must be running
- With the NETConductor objects loaded
Microsoft Components
Internet Information ServiceNavision Database
Service
32NETConductor Setup
- Then we start...
- IIS must be up and running
- Which makes the MT available.
- Database server must be running
- With the NETConductor objects loaded
- Now we can start the DT...
Microsoft Components
Internet Information ServiceNavision Database
Service
NETConductor Components
33NETConductor Setup
- Then we start...
- IIS must be up and running
- Which makes the MT available.
- Database server must be running
- With the NETConductor objects loaded
- Now we can start the DT...
- We do that using a Navision client...
Microsoft Components
Internet Information ServiceNavision Database
Service
NETConductor Components
DataTier in a Client ...
34NETConductor Setup
- Then we start...
- IIS must be up and running
- Which makes the MT available.
- Database server must be running
- With the NETConductor objects loaded
- Now we can start the DT...
- ...or we use a NAS
Microsoft Components
Internet Information ServiceNavision Database
Service
NETConductor Components
DataTier in a Client ...... or in a NAS
35NETConductor Setup
- We have now installed a very basic configuration,
which is sufficient for most installations. - But more advanced configurations are also
available.
Other configurations
36NETConductor Setup
- The NETConductor supports many DataTiers per
service name. - Which are accessed in a Round-Robin fashion.
Other configurations
37NETConductor Setup
- Many databases, or companies, can be accessed
from a single Middle-Tier using different service
names. - In general, configurations depend on applications
and network architecture...
B
B
A
Other configurations
38NETConductor Setup
- But no matter what the configuration is,the
NETConductor will start running! - And then we can access the MT using a browser...
39NETConductor Setup
- ...and we can f.ex. run CodeUnits
40NETConductor Setup
- ...and we can f.ex. run CodeUnits...
- ... which return XML files includingStrings,
Hashtables and Recordsets
41NETConductorBasic Operations
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
42NETConductor Operations
- Running a Navision CodeUnit
- RunCodeUnit
- // Provides access to any CodeUnit in Navision.
- codeunit numberand parameters
- RunCodeUnitModeless
- // Provides access to any CodeUnit in Navision.
- // The CodeUnit is simply started and no
waiting for it's completion or any replies. - codeunit numberand parameters
The Basics Web Service
RunCodeUnitRunCodeUnitModeless
Running a Navision CodeUnit
43NETConductor Operations
- Selecting data from Navision
- SelectFromTable
- // Provides access to the data of any table in
Navision. - table number, sorting,filter, fields to
calculate,fields to return, from, to,verbosity
and definition - GetTableDefinition
- // Provides the definition of any table in
Navision. - table number
The Basics Web Service
RunCodeUnitRunCodeUnitModeless SelectFromTableGe
tTableDefinition
Selecting data from Navision
44NETConductor Operations
- Inserting data into Navision
- InsertIntoTable
- // Provides insert record access to any Table
in Navision. - table number,values and validation
The Basics Web Service
RunCodeUnitRunCodeUnitModeless SelectFromTableGe
tTableDefinition InsertIntoTable
Inserting data into Navision
45NETConductor Operations
- Modification of data in Navision
- ModifyInTable
- // Provides modify record access to any table
in Navision. - table number, primarykey,values and validation
- ModifyManyInTable
- // Provides modify many records access to any
table in Navision. - table number, key, filter,values and validation
The Basics Web Service
RunCodeUnitRunCodeUnitModeless SelectFromTableGe
tTableDefinition InsertIntoTable ModifyInTableMod
ifyManyInTable
Modification of data in Navision
46NETConductor Operations
- Deleting data from Navision
- DeleteFromTable
- // Provides delete access to any Table in
Navision. - table number, primarykeyand validation
- DeleteManyFromTable
- // Provides delete many records access to any
table in Navision. - table number, key, filterand validation
The Basics Web Service
RunCodeUnitRunCodeUnitModeless SelectFromTableGe
tTableDefinition InsertIntoTable ModifyInTableMod
ifyManyInTable DeleteFromTableDeleteManyFromTable
Deleting data from Navision
47NETConductor Operations
- Custom Web Services
- Operations like
- GetCustomer(customerNo)
- GetClientValuation(clientNo,date,currency)
- GetShipments(warehouseNo)
- GetTimesheet(resourceNo)
-
- NETConductor comes with a .NET Assembly that
developers can use to create such custom Web
Services. - The NETConductor Assembly contains the same
methods as the NETConductor Basics Web Service.
The Basics Web Service
RunCodeUnitRunCodeUnitModeless SelectFromTableGe
tTableDefinition InsertIntoTable ModifyInTableMod
ifyManyInTable DeleteFromTableDeleteManyFromTable
48Building NETConductor Solutions
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
49Building NETConductor sol.
- Create Windows Forms Application
- Accepts a customers number as input
- Goes into Navision to get his name
- Then displays that name to the user
What we will do
50Building NETConductor solutions
Navision Developer
- Just to start with, we will create a CodeUnit
that accepts a customers number and just returns
his name.
51Building NETConductor solutions
Navision Developer
- NETConductor CodeUnit functions
- Start, Stop, IsRunning, IsExecuting
- GetName, GetMachine, GetPort, ...
- GetParameter
- ReturnString, ReturnHashtable
- ReturnRecordset, ReturnRecordsetPage
- ReturnComplete, ReturnError
- OutputLogString
52Building NETConductor solutions
Navision Developer
- NETConductor CodeUnit functions
- GetParameter(name)
- name // Name of the parameter to
- ReturnString(name, value)
- name // Name of the reply
- value // The string being returned
53Building NETConductor solutions
Navision Developer
- We start the NETConductor DT
- From within the Navision client
54Building NETConductor solutions
Navision Developer
- Lets execute function using the NETConductor MT
55Building NETConductor solutions
Navision Developer
- Change the function to return the complete record
56Building NETConductor solutions
Navision Developer
- NETConductor CodeUnit functions
- ReturnRecordset(name,recs,cols)
- name // Name of the reply
- recs // Reference to the Recordset to return
- cols // List of field numbers, indicating the
columns to return
57Building NETConductor solutions
Navision Developer
- Execute function using the NETConductor MT
58Building NETConductor solutions
Consuming service
- Create Windows Application
- Create a form with
- Customer number textbox
- A go button
- And a box for the customer name
59Building NETConductor solutions
Consuming service
- Consume the NETConductor Basics Web Service
60Building NETConductor solutions
Consuming service
- Open code behind go button
- Construct basics
- Call basics with customer number
- Extract customer name
- Put it into the label
61Building NETConductor sol.
- Run Windows application
- It works !!!
Running the application
62Break
63NETConductor and security
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
64NETConductor and security
- Providing access increases risk of malicious
attacks and break-ins. - Everything can be hacked.
- Security attracts hackers.
- Always balance the risks and benefits of
publishing information online. - Limit the online access to a minimum.
- Keep a low profile
- Run only what is needed
- Store only required data
- Proper security protocols will allowfor proper
mitigation of the risks.
The security problem
65NETConductor and security
- There are many types of security attacks and
holes that should be considered - Eavesdropping (sniffers encryption)
- Man-in-the-middle
- Data Modification (man-in-the-middle)
- IP Address Spoofing
- Password Attack
- Compromised keys
- Denial-of-Service (DoS)
- Web Server Attacks
- Buffer overruns
- SQL Injections
- Cross-site scripting
Ports Firewalls Encryption Authentication Hosting
The security problem
66NETConductor and security
- When installing Microsoft and the NETConductor
components then default ports are always
provided. - You should always change those ports.
8933
80
Ports Firewalls Encryption Authentication Hosting
3047
Ports
67NETConductor and security
- Firewalls can limit the machines that can
actually access a certain port on a certain
machine. - NETConductor can be installed on any side of any
firewalls.
Ports Firewalls Encryption Authentication Hosting
Firewalls
68NETConductor and security
- Encryption using SSL Certificates is very popular
with web solutions. - NETConductor is not affected by such encryption
at all.
Ports Firewalls Encryption Authentication Hosting
Encryption
69NETConductor and security
- Authentication is supported by the IIS as well as
Navision. - NETConductor is not affected by IIS
authentication. - NETConductor signs into Navision.
Ports Firewalls Encryption Authentication Hosting
Only allow machine A access to port 9471 on B
Authentication
70NETConductor and security
- Hosting web applications at third party hosting
companies is a good choice.
Web App
Machine A
Ports Firewalls Encryption Authentication Hosting
Hosting
Only allow machine A access to machine B
71NETConductor and security
- Administrators
- Configure Web server to limit loopholes
- Apply patches and hot-fixes immediately.
- SECURE SYSTEMS AND NETWORKING !
- Web Application Developers
- Pay attention to buffer overruns
- Watch out for malicious SQL injections
- Ensure input data validation
- SECURE PROGRAMMING ABOVE ALL !
Secure networkingand programming
72NETConductor and security
- NETConductor security
- All of the above security measures are
configurable entities in Navision, IIS and/or
NETConductor - None of them require theNETConductor to be
changed. - Providing access increases risk of malicious
attacks and break-ins. - Balance the risks and benefits of publishing
information online. - Limit access to a minimum.
- Proper security protocols will allowfor proper
mitigation of the risks.
Securing NETConductor
73NETConductor and authentication
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
74NETConductor and auth.
- Navision applications are not based on external
users - Instead Navision has entities like Customer,
Client, Store, etc. - An external user is usually workingon behalf of
one of those entities. - A CodeUnit should therefore return the
information relative to the entity, on behalf of
which the user is working.
The Navision user identity problem
75NETConductor and auth.
- This mapping between external user name and the
Navision entity can be done by the user of the
CodeUnit... - ...or it can be integrated within Navision by an
authentication package, which can then bebased
on NETConductor - Rue de Net Authentication Module is exactly such
a solution.
The Navision user identity problem
76NETConductor and auth.
- The Rue de Net Authentication Module allows
users, credentials and entity mappings to be
defined using Navision. - This allows easy integration of the
authentication module with the existing Navision
application
The Navision user identity problem
77NETConductor and authentication
Auth. Module
- The Authentication Module is based on
NETConductor and can therefore be used by any
capable application to authenticate users.
78NETConductor and authentication
Auth. Module
- Within Navision, there is a form to work with
usernames, passwords and contact information.
79NETConductor and authentication
Auth. Module
- The entity mapping can easily be tailored and it
is easy to map certain username to an entity.
80NETConductor and authentication
Auth. Module
- The entity can be selected using the appropriate
lookup-up-form
81NETConductor and authentication
Navision Developer
- When username has been created we can use the
Authentication Web Service to sign in.
82NETConductor and authentication
Navision Developer
- Once signed in we have a session key that can,
within Navision, be used to map to the users
entity.
83NETConductor and auth.
- Update Windows Forms Application
- Accepts a users credentials
- Goes into Navision to find the customer that the
user is working on behalf of. - Then gets and returns his name
- And finally display the name to the user
- We will be using the Rue de Net Authentication
Module to authenticate.
What we will do
84NETConductor and authentication
Navision Developer
- Change function for authentication
85NETConductor and authentication
Navision Developer
- Sign in to the authentication module
86NETConductor and authentication
Navision Developer
- Access function with session key
87NETConductor and authentication
Consuming service
- Edit Windows Application
- Edit form
- Remove customer id
- Add User id
- Add Password
- Leave the go button and label
88NETConductor and authentication
Consuming service
- Consume the Rue de Net Authentication Module
Service
89NETConductor and authentication
Consuming service
- Open code behind go button
- Add construction of auth
- Add calling of auth signin
- Add extraction session key
- Now call basics with session key
- Use same extract customer name
- Use same put it into the label
90NETConductor and authentication
Consuming service
- Open code behind go button
91NETConductor and auth.
- Run Windows application
- It works !!!
Running the application
92Partner Cases
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
93NETConductor Building
- On-line client and portfolio valuations for fund
managers
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Hosting
94NETConductor Building
- Warehousing solution
- for a global medical supplier
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Web done by RDN
95NETConductor Building
- Meter readings and bill enquiry solution for a
utility company
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Re-use of posting logic
96NETConductor Building
- On-line web based timesheet
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Custom Web Services
97NETConductor Building
- Navision Store to Head Office queries and updates
for retail
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Head office
Navision to Navision
Single Head-Office NETConductor installed
98NETConductor Building
- B2B sales and purchase ordering for a global
distributor
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Distributor
Manufactorer
Purchase to Sales Order
Order received from customer Goods required from
factory Request sent to factory Order waits for
warehouse Sales order fulfilled
Purchase order auto created Goods are
manufactured Goods sent to warehouse Sales order
updated at distributor
99NETConductor Building
- RSS News agent for industrial news on our
homepage
Fund managers Warehousing Meter
readings Timesheet Store queries Ordering RSS News
Windows Service stores into Navision
100Licensing and pricing
Adalsteinn ValdimarssonBusiness Development
Alfred B. ThordarsonSoftware Development
101Licensing and pricing
- NETConductor reseller scheme is similar to the
MBS Navision scheme - Pricing scheme
- RDN License for each FIN license
- ½ CommercePortal 21.000 C/Shells
- 20 yearly maintenance charge
- License good for 4 DataTiers
- Additional DataTiers is pricedat 25 license
price maintenance - 70/30 split between RDN/Partner
- Special pricing available, upon request, for
specific situations.
Licensing and pricing
102Thank you
www.ruedenet.com