Tuesday, January 10, 2023

Using Database Tags in HTML File

1.     Overview

This is a small note or idea about using database tags embedded in HTML file to display data stored in a database instead of writing codes in a HTML files to query and display data.

2.     Descriptions 

Back in 2003, I developed a system with J2EE for Air Canada to display equipment on an airplane while I was working at Scanpak Inc. The GUI was developed by another developer. I got the html file, and I had to embed Java codes on the HTML file in order to query database and display proper equipment for those web pages.

Recently I had created several blogs on BlogSpot, which is owned by Google.  By viewing the html for a post, I could edit those html files for errors by BlogSpot, when it converted the word document into html for display.

As always the html tags are like spaghetti. I don’t want to read spaghetti codes, which would consume too much time for a little work or achievement.

The following ideas would be a proposal to avoid writing codes on an html file to display data stored in a table’s column in database.

Developers would create temporary or displayed table and columns in database for display on the web page. Of course, all coding process would be done in the backend to store proper data in those temporary tables.

a.       On the web page or html file, we would only need to specify connection string, table nameà column name; and then data on that column would be query and display on that web location. For example, in the html file there are 2 lines of tags

·         Open DatabaseàCanada

·         Table OntarioàToronto

The web page would open the database named Canada. It would query table Ontario and display all rows (line by line) in the column Toronto.

b.      If you wanted a table with several columns displayed on the web, then a join statement would be needed, for example

·         Open DatabaseàCanada

·         Table OntarioàToronto_Street “space or appropriated short html tag” AND OntarioàToronto_PostalCode “space or appropriated short html tag” AND OntarioàToronto_TelephoneNumber

·         Close DatabaseàCanada

Data will be displayed row by row until the end of the Toronto table.

c.       Refreshing data on the web could be done with key work such as “Refresh 2 min”. The UI would query database every 2 minutes and refresh data. 

Open DatabaseàCanada

Table OntarioàToronto_Street “space or appropriated short html tag” AND OntarioàToronto_PostalCode “space or appropriated short html tag” AND OntarioàToronto_TelephoneNumber 

Refresh 2 min 

d.      An alternative way would be create a button for user to refresh data.

e.       Automatic refresh from the backend, when new data arrived, would require communication between the UI web and its backend. You could use keyword such as update to trigger refreshing data requested by the backend. 

Open DatabaseàCanada

Table OntarioàToronto_Street “space or appropriated short html tag” AND OntarioàToronto_PostalCode “space or appropriated short html tag” AND OntarioàToronto_TelephoneNumber 

Update 
-------------------------------------

Written and posted on 2023-01-05

Thursday, December 15, 2022

Pickup/Service Alert

Inform users before coming for a pick up.

This feature could be used for food delivery, returned item pick up, registered mail with signature, service call, installation service, etc.

I have returned an item for Amazon, and it was picked up by Intelcom. The service was quick, but the driver didn’t ring me before coming. I may step out for errands and miss the pickup.

You may consider ring, email, or text customers before coming. Your customer may not be at home 24hrs/day waiting for your staff coming.

This feature could be incorporated into your app. The staff should have a list of customers to visit or serve during the day loaded on the phone. The app could be integrated with a GPS device.

The driver would select the intended address in the app to pick up for GPS or something, the app would automatically send out an email, ring, or text message as required by customer. The app should be on a mobile phone, so the driver could answer the phone, if “ring” customer was an option.

The above feature would be useful. You won't waste a trip for nothing.

Figure 1.  Simple design diagram for Pickup/Service Alert


Sunday, January 9, 2022

Improvement of Ericsson's APZ

I had worked for Ericsson Research Canada in Montreal for many years (1990's) in mobile telephony especially APZ or AXE. Since I left Ericsson, I have worked for many companies and had a chance to compare technologies with Ericsson proprietary APZ.

APZ is superior with PLEX-C and Test System as they offered features to debug and load patches on live nodes to fix issues in ASA (APZ's assembly language). With ASA, we could even develop quick features and load on switches instead of going through a complete software development cycle by developing in PLEX-C, testing system, and then deploying system normally, i.e. slower deployment of products to customer sites.

PLEX-C is an old programming language as compare to other object oriented languages such as C++, Java, Python, etc. However PLEX-C helped to decouple large and complex systems into subsystems easily. Each subsystem could communicate with each other via a pre-designed protocol, which could be verified easily by using signal descriptions. We could say that system developed with PLEX-C is like a protocol application, which is easy to understand and debug.

We could say that PLEX is a programming language specializing in packet communications such as banking transactions, telecommunication systems, IoT applications, etc. With relational database, it could offer developers an excellent platform for many applications.

You could take a look at ANSI-41 standards for TDMA, it is like sequence diagrams for PLEX-C. By the way, block diagrams could be dropped. A sequence diagram could be extended to add relevant information, which was normally in a block diagram. This would help to reduce development cost. I have never looked at a sequence diagram or block diagram to understand mobile telephony system on APZ. I had only used source codes, signal descriptions, and Test System.

Test System helps to debug and understand a complex system quickly with help of signal descriptions and PLEX-C codes. This is a data flow model as compared to other program languages as logic flow, which is harder to decouple, understand and debug.

Test System could be upgraded for tracing on live nodes. Currently we need to write scripts to limit tracing shown on live system, i.e. we couldn’t do any tracing without advanced planning.

The only draw back from PLEX-C is its file database. If APZ could be upgraded to offer relational database, it would be a winning product. PLEX-C would be extended to offer programming statements for developers to use relational database.

With this upgraded APZ, software development would be quick and easy, i.e. less expensive and possible lower price quoted to customers.

Speaking of user interface, the upgraded APZ could offer an interface or ports to external terminals, which support GUI to users. Data entered plus command actions would be committed to the upgraded APZ in format understood by the APZ, e.g. command lines. With separate GUI, Ericsson could sell upgraded APZ to customers as modern technologies. However the performance of the upgraded APZ is unchanged or un-impacted by adding many OS codes, which could slow it down.

The external interface (APY) port could be a fast proprietary Ethernet port, which would accept data from a terminal to query data from the database in order to present to clients in a graphical screen or animated results. Data or communications from the terminal to the APZ would follow specific protocols in order to exchange data OR committed changes to the database or system applications.

Regular Ethernet port(s) or telecom (CCITT) ports are also needed for APY applications communicating with other systems.

I have also written a design proposal on parallel processors, which were based on PLEX-C programming language. That means APY could offer parallel processors as super computers to customers.

To optimize development costs, the “less powerful” (less expensive parallel processors) APY could be used for RBS or RAN in addition to MSC and HLR.

The upgraded APZ (APY) is like power super computer. The PLEX-C plus relational database is very easy to learn to software developers. In some of my posts, I have called APZ with relational database as APY.

-----------------------------------------------------------------------------

2022-01-12

Developers, who had never worked with PLEX-C, could be puzzled about whatever I wrote above. You could answer the following simple questions?

·         Can you read the technical specification of a product OR its functionality on the UI, and then you can “guess” the programming logic of the application by looking into the database’s tables? I could.

·         Is it easier to read the entire flow of data (TEST SYSTEM) from beginning to the end of an operations OR using a conventional debugger to step in the entire programs to follow the logic? The debugger may jump “crazily” from a class to another class. Test System could be consider similar to “unit test” as “signals with accompany data” entered a program module (block) and out with “signals with expected data”. By setting proper traces, you will get the entire flow of data from start to end with a single action for all program modules involved, e.g. making a call from MS-A to MS-B. You don’t need to step by step following logic of a developer.

·         Is this easier to read data or reading many lines of codes?

By the way, I would prefer to write codes than reading codes by others. Many software developers “preferred” to show off their “sophisticated” mind by writing complex codes, but it was not needed. Getting applications working and deploying to a customer site would be better than spending time figuring out what a developer wrote?

During my years at Ericsson, many code reviewers were very picky to ensure that codes were written in a simple way and meet AXE’s design rules.

---------------------------------------------------

2022-01-18

If Ericsson used its APZ technology to develop PC’s OS with PLEX programming language, relational database, and GUI (similar to VB or C#), I would pick this type of PC for complex applications competing to medium powerful server’s systems. Parallel processors could be supported by this PC to enhance its processing power.

IBM Mainframe or powerful servers would be compared with APY.

I heard that PLEX-V is an upgrade of PLEX-C programming language plus relational database programming statements.

To make PC attractive to software developers, Ericsson could create a virtual holder similar to Java Virtual Machine (JVM) or VMware for legacy Microsoft Windows apps. Of course, those apps would run slower than native applications developed with PLEX-V directly.

Developing applications would be quick and easy, i.e. saving time in R&D or costs.

As many people out there said: personal computers with parallel processors like this would be competing in the rank of mini-super computers.

In computer history, many super computers have been invented and developed, but many of those have become obsolete or unpopular because its programming languages were not developer friendly. PLEX is a simple language, which makes its applications similar to TCP/IP or any popular protocols out there.

The question is if you’re familiar with a protocol and love protocols or not. Any applications offered user access remotely over Internet are using TCP/IP as transport layer, thus packet data communications.

Anyway I like protocol and Microsoft’s programming languages are not good enough for packet programming. Its “forever loop” at an Internet port does slow down a computer significantly. I did design an “Internet Interface Manager” in one of my post using PLEX to avoid forever loop, i.e. speeding up system performance.

-----------------------------------------------------------------------

2023-01-20: I spoke about this earlier for APY with PLEX-V = PLEX-C + relational database. APY coupled with parallel processors would be the best candidate for financial systems such as bank ATM, bank tellers, stock trading, etc.

Those financial systems are driven by short transactions such as withdraw, buy/sell stocks, etc.

Those are like protocol transactions, which are supported by PLEX programming languages or IoT.

The UI could be provided by a separated computer server connecting to the APY's database for display. New transactions or configurations must be via an internal protocol with the applications on APY. Using internal protocol instead of committing data changes to database directly is to avoid data corruption because system is live.

However liability of banking industry is very high as compared to telecommunication, which is around $1M/min down time. By the way, financial system is simpler than mobile telephony system.

IBM is dominating the landscape of bank systems with IBM Mainframe, and financial institutions are not jumping to another systems OR addicted to high/modern technologies.

That's reason why Ericsson should not step in this industry.

Monday, June 3, 2019

Airflow for miners using 5G technology

Recently Ericsson partnered with Ambra to provide automate ventilation, equipment tracking, etc. for underground miners using 5G technology. In the market, one of companies, which provides solution to optimize “airflow” for miners, is Bestech using active RFID tags.

Let me analyze solution that could be provided by Ericsson and Ambra using 5G technology and military telecom model, i.e. RBS equipped with an RBS Box (server), and those RBS Boxes could communicate with each other in a network as well as to its central server using wireless communication.
1. General Information

A mine must have its modelling to estimate the volume of each level, and amount of air required at each section in activity occurred.
At the junction of the shaft and each level,

·         An RBS and its Box could be installed to provide 5G communication to the entire level and staff working there. The RBS Box could be equipped with wireless LAN to communicate with the RBS Box at level above it in order to get its signals relayed back to the central center on the ground for decision making.

·         A powerful fan is installed and supplementary fans (if needed) provide necessary airflow to miners working in this level.
Above ground at the shaft position, there could be a very powerful fan blowing air along the shaft. The air will be then pumped to required level by junctional fans to each level as needed.

Depending on the number of miners and equipment operated in each level, the amount of airflow may be different. Bestech estimates that each staff would require 1 CKFM, and a pickup truck may require 2 CKFM (my guess). The speed of fans above ground and junctional fans would be operated differently to push required airflow to the area of mining activity.
2. 5G Solution

Each junctional fan would be communicated with the junctional RBS Box using wireless LAN. The communication signals/messages would be relayed to 5G central server using RBS Box’s network. The 5G central server would pass information to the fan/airflow/mining server, so it could analyze and perform required tasks. The airflow server could adjust speed of a junctional fan by sending signals or messages (command data) to 5G central server, where information will be relayed to the junctional RBS Box and then the junctional fan.
Each miner would be assigned a mobile phone with an interface to attach his equipment with his ID.

For example, John will be working on Level A with a pickup truck, thus Level A would require 3 KCFM.
·         John must open a user interface on his phone to assign a pickup truck to his ID or phone.

·         When John is in Level A, the Level A’s RBS would detect his mobile phone via registration or a phone call. The Level A’s RBS Box would relay information back to its 5G server, where information will be passed on a network to the airflow server.

·         The airflow server would calculate speeds of the above ground fan and junctional fan(s) in order to provide 3 KCFM in Level A.

·         The airflow server would send a command to required fan(s), via 5G central server and RBS Boxes, in order to set their speeds accordingly.
When John left Level A, the RBS Box and airflow server would perform required tasks to turn off junctional fans to save energy.
John could actively assign and remove any equipment associated to his ID on his phone in order to get enough airflow in his working area. The ID of his phone and associated equipment ID would be passed to the airflow server via RBS Box network and its central server, e.g. an automated application on his mobile phone fetching and sending data periodically OR after an assign or unassigned of equipment ID, an mobile phone app would send data back.

3. Tracking or automate equipment operations

Tracking a staff movement or presence in a level could be done by tracking his mobile phone. An exact location would require GPS or more RBSs in each level and the mining drift is not uniformed. I am not sure about this. The tracking server could communicate with 5G central server in similar way as the airflow server.

If Ambra and Ericsson wanted to remotely control equipment in an area, they must install special control box in the equipment, and remotely control those equipment from above ground using RBS Box network as described above.

News: https://finance.yahoo.com/news/ericsson-ambra-sign-global-contract-143100142.html

Disclaimers: I don’t know how Ericsson and Ambra positioned their RBS and fans, which could change the communication strategy described above. Each mine configuration is different too.

Wednesday, April 24, 2019

Multiple Standard Systems

1. Deployment of new standard without impacting current services
There are many radio base stations (RBS) deployed in cities supporting different telecom standards such as 3G, 4G, and 5G. Locations of those RBS had been planned to cover the entire areas effectively. Having reserved another location for a new RBS with another standard could be expensive, thus we could incorporate the new telecom standard’s subsystem in the existing RBS as shown in the figure below.

Figure 1. An example of RBS supporting 3G, 4G, and 5G standards.
Each telecom standard has been allocated a unique frequency and protocol. Their transceiver (transmitter and receiver) could pick up appropriate signals from the antenna or sending out signals using appropriate frequency to the antenna.

Those 3G, 4G, and 5G’s subsystems are loaded on the RBS as 3 separate subsystems to lower costs of software development even though developers could eliminate redundancy or duplicate components further, because those subsystems must have common modules or interface. The plus side of it was to be able to deploy another subsystem quickly and independently; and avoid impacting functionality (bugs) in existing live subsystem. 
3G, 4G, or 5G subsystem could communicate to other external telecom components or nodes via the Interface to wireless telecom network with its protocol. This Interface module would also be able to receive incoming external signals and dispatch those to correct subsystem for processing.
The above notes were for an RBS, but this model is also applicable to a mobile phone or any equipment supporting multiple standards.

2. SIU and Police sharing telecom networks

This model was originally proposed to police (5G) telecom system. The Special Investigation Unit (SIU) of police would be able to develop their own communication standard and loaded this system on police (5G) RBS. SIU’s system would include different protocol and frequency, thus they could share the RBS’s processing power, but data would be processed separately. The police (5G) system is left intact.

Figure 2. SIU and Police Systems

3.  A common practice in development of a multi-protocol system

Figure 1 showed a strategy to introduce a new subsystem without impacting existing and working system to avoid possible interruption of services to users. However, figure 3 illustrated a common practice by system providers to implement additional features from an evolved protocol into an existing system.



Figure 3. An example of implementation of 4G and 5G subsystems into an existing working 3G subsystem.

In the figure above, the (3G, 4G, or 5G) Mobile Base Station subsystems would handle the differences in protocols by 3G, 4G, and 5G standards. The output and input of MBS subsystems would be the common protocol toward the core telecom subsystem. Usually the RBS would communicate with an MSC to handle routing and voice connections for mobile users.


4. A design of multi-frequency/protocol system using a single chip

I think, Qualcomm made a modem chip, Snapdragon X55, supporting all standards, i.e. 3G, 4G, and 5G. This is probably why Qualcomm chip is so expensive. X55 source: https://www.qualcomm.com/products/snapdragon-x55-5g-modem
Figure 4. An example of a mobile phone’s design using Snapdragon X55 modem chip

5. Sharing a frequency band by different service providers

Usually telecom providers or operators used the different frequency bands to provide wireless services.

However many operators could use "frequency modulation" or "phase shift key modulation" to provide services to their users using the same frequency band as long as they provided different amplitudes in carrier waves. The wireless receiver would extract data from wave carriers with expected amplitude, i.e. allocating different amplitudes to adjacent operators in an area.

Disclaimers:

I haven't worked in RF for telecom industry. I used to work in mobile telephony networks at Ericsson.

For multiple bands, they would need either new antennae or circuitry to branch out required data. Perhaps band pass filter would be used.

For multiple protocols, it would require technical analysis to identify the differences and common between those protocols/frequencies in order to select an optimized solution.

Some references about multi-bands in telecom

* "Changing bands or modes is done automatically by phones that support these options. Usually the phone will have a default option set, such as 1900-MHz TDMA, and will try to connect at that frequency with that technology first. If it supports dual bands, it will switch to 800 MHz if it cannot connect at 1900 MHz."

* https://www.commscope.com/Blog/How-to-Efficiently-Support-Multiple-Frequency-Bands/

* https://en.wikipedia.org/wiki/Multi-band_device 

Tuesday, December 11, 2018

Locating a mobile subscriber using spare DCC (1997-08-23)

1. Abstract

In the market, a mobile unit can send and receive a short message via a mobile telephony network or satellites, but we will discuss the short message service (SMS) handling between a Message Center (MC) and a mobile unit. Furthermore, we will describe how to locate the exact position of a mobile unit by using a digital control channel (DCC).

2. Marketing Analysis

This system could be used by
·        Police department
·        Adventurer
·        Blind persons
·        Any organization
·        Tourists
·        Adventurous games’ organizers

3. System Analysis
3.1 Determine location of a mobile unit via satellites

·        There is a system available in the market that assists blind persons to find out his position and suggest a path taken to destination. That system combines with an electronic geographical maps and costs about thousands of Canadian dollars. The satellites returns longitude and latitude of user, and system computes the exact location of the user.

·        The system, which includes a laptop and a special alphanumeric keyboard, allows user requesting his exact location. This may require annual subscription to satellite services plus access to an electronic geographical map. Thus, it is an expensive product.

3.2 Determine location of a mobile unit via a mobile telephony network supporting DCC.

·        A mobile unit must register whenever it enters a new cell site or location area. Its position (cell identity) should be reported to the serving Radio Base Station (RBS), this cell identity will be relayed to the serving MSC. Thus, we can determine which cell the mobile unit is in by printing out its cell identity (applicable for both analog and digital control channel), which could be stored in the serving MSC, HLR, or an MC.

·         Remember that a mobile unit is able to register on either an analog or DCC. However, it only receives SMS that is sent from an MC or MXE over the DCC. Therefore, we will consider using DCC of the serving cell and adjacent cells to compute mobile unit’s exact location.

3.3 Short Message Services

·        This feature allows users sending an SMS from a MC to a mobile unit or a cellular phone. In the market, this feature supports mobile unit that is capable of handling messages over DCC. However, when a cellular phone is busy (on voice channel), the MS doesn’t deliver that message. The HLR will inform the MC to delay that message delivery.

·        Options: If the MSC buffered that short message, we would consider cases that the mobile unit “hands off” to another RBS belonging to another MSC, i.e. the anchor exchange no longer has controlled over the mobile unit. Thus, it may be better to get the MC resending the short message. Note that: the HLR will inform the MC when the mobile unit is free.

4. Implementation overview

·        Using the spare DCC (TDMA), we may be able to communicate with the mobile unit roaming in cellular telephony network, and report its exact location toward an HLR, an MC, or serving MSC.
Figure 1. Locating distance of a mobile unit in a location using RBS.

·        As shown in the above diagram, a mobile unit is roaming across the border of 3 cells, which 2 of them belonging to MSC-2, and 1 cell is served by MSC-1.  Thus the mobile unit has been capable of tuning to all 3 DCCs, collecting their cell identities, original transmitting power, and receiving signal strength of each cell. Based on those data, the mobile unit should be able to compute its distance from 3 RBS. It then relays the findings to the RBS that has highest signal strength. That serving MSC will send a report to the HLR or an MC. These operations are carried out on a spare DCC of each cell (each cell site is served by an RBS). This way we could avoid using the principal DCC, which is dedicated for paging mobile station (MS), delivering SMS, etc.

·        An exact location of the MS in terms of building, streets or address will require an electronic geographical map.
Figure 2. Hardware modification of a mobile unit

5. Future enhancement

·        An adaptor connected the mobile unit, e.g. MS, to a laptop computer could be serve as mobidem that allows users connect their laptop to an Internet service over the air.
·        Nokia planned to design a portable unit that looks like a mini laptop when it opens. It functions as a mobile phone if closes.

6. References

·        Mobile Communications Design Fundamentals, Williams C. Y. Lee, Section 6.5.1 on “Conversion between dBu and dBm in power delivery. See also section 9.2.1

7. Update Notes (2018-12-11): back to 1997, I didn’t know that building and construction between an RBS (radio base station) and a mobile phone would change the signal strength measurement that makes computing distance inaccurate.